Not actually implemented, though. It does print out some jit-compiled stuff,
but that's about it. For example, this query:
select number from system.numbers where something(cast(number as Float64)) == 4
results in this on server's stderr:
define double @"something(CAST(number, 'Float64'))"(void**, i8*, void*) {
"something(CAST(number, 'Float64'))":
ret double 1.234500e+04
}
(and an exception, because that's what the non-jitted method does.)
As one may notice, this function neither reads the input (first argument;
tuple of arrays) nor writes the output (third argument; array), instead
returning some general nonsense.
In addition, `#if USE_EMBEDDED_COMPILER` doesn't work for some reason,
including LLVM headers requires -Wno-unused-parameter, this probably only
works on LLVM 5.0 due to rampant API instability, and I'm definitely
no expert on CMake. In short, there's still a long way to go.
* Macos test fix
* Fix freebsd build
* CLICKHOUSE-3553 Rebuild loggers on every config change
* rename clickhouse_common_configprocessor -> clickhouse_common_config; move Server/ConfigReloader.cpp -> Common/Config/
* CLICKHOUSE-3553 Set new level to all loggers on reload
* Dont use hash
* Update BaseDaemon.h
* Allow build without rt library
* fix
* Cmake misc
* CLICKHOUSE-3600 Use correct lld version
* CLICKHOUSE-3600 Use correct lld version
* Use libllvm same version as clang
* fix
* Fix build with iodbc
* Fix iodbc build
* Fix gold find
* Fix empty lines
* Make separate libs Common/ZooKeeper and Common/ConfigProcessor
renamed: dbms/src/Common/StringUtils.h -> dbms/src/Common/StringUtils/StringUtils.h
* Fix space
* Fix data in system.build_options
* merge
* merge
Interpreters/Compiler.cpp contained hard-coded paths for system's
includes needed for query compiler. These paths were not portable
between different Linux distros and gcc/clang versions. For example,
Debian/Ubuntu use /usr/lib/gcc/x86_64-linux-gnu/*/include,
RHEL/Fedora use /usr/lib/gcc/x86_64-redhat-linux/*/include,
others use /usr/lib/gcc/*/include (without x86_64-XXX triplet).
Patch 68850012b "Embedded compiler fixes" attempted to fix this problem
by adding CMAKE_LIBRARY_ARCHITECTURE after /usr/lib. Unfortunally,
CMAKE_LIBRARY_ARCHITECTURE is not defined on RHEL/Fedora because someone
decided to omit "-gnu" from x86_64-redhat-linux (see RHBZ#1531678).
Patch 70e35d0bc "Build fixes (#1718)" added a workaround for
undefined CMAKE_LIBRARY_ARCHITECTURE on RHEL/Fedora, but hasn't fixed
problem with missing /usr/lib/gcc/x86_64-redhat-linux/*/include/
in the list of hardcoded paths.
Remove hard-coded paths and get the list of `-isystem` includes directly
from bundled clickhouse-clang.
Other changes:
- Enable RPATH for the build directory to get working binaries
without installing them by `make install`.
Cap'n Proto is a binary message format.
Like Protocol Buffers and Thrift (but unlike JSON or MessagePack), Cap'n Proto messages are strongly-typed and not self-describing. Due to this, it requires a schema setting to specify schema file and the root object. The schema is parsed on runtime and cached for each SQL statement.