Commit Graph

15652 Commits

Author SHA1 Message Date
Vitaliy Lyudvichenko
03eea193bc
Update CHANGELOG.md 2018-04-27 03:04:39 +03:00
Vitaliy Lyudvichenko
921b3c041d
Added EN changelog for 1.1.54380 version 2018-04-27 00:34:09 +03:00
Vitaliy Lyudvichenko
220398e47c
Update CHANGELOG_RU.md 2018-04-27 00:06:01 +03:00
alexey-milovidov
f5d9123d63
Merge pull request #2296 from proller/fix8
Test: fill CLICKHOUSE_CONFIG from args.configserver
2018-04-26 13:59:35 -07:00
proller
bef63d1dd0 Test: fill CLICKHOUSE_CONFIG from args.configserver 2018-04-26 23:02:10 +03:00
Vitaliy Lyudvichenko
e152f223c9 Fix nodes leak in case of session expiration. [#CLICKHOUSE-2] 2018-04-26 22:46:45 +03:00
Vitaliy Lyudvichenko
ed25e6d634 Fixed tests isolation. [#CLICKHOUSE-2] 2018-04-26 22:46:45 +03:00
pyos
a9e0b6de9f Use system LLVMConfig.cmake with minor tweaks.
Should fix Travis build, finally.
2018-04-26 22:45:39 +03:00
Ivan Zhukov
4094e21be5 Code review 2018-04-26 20:41:43 +03:00
pyos
b4d527ee85 Inline compile-time constants into jitted functions. 2018-04-26 14:30:16 +03:00
pyos
c95f8a669f Throw in untyped versions of IFunction::{isCompilable,compile}
IFunction inherits IFunctionBase for some reason despite not actually knowing
the types, so these two methods make no sense. The versions with DataTypes&
as an argument should be used instead.
2018-04-25 20:07:19 +03:00
pyos
9ae5fe1b6d Minor style fixes 2018-04-25 18:33:58 +03:00
pyos
854f85dd9b Put #if USE_EMBEDDED_COMPILER in ExpressionJIT.{cpp,h} 2018-04-25 18:19:22 +03:00
pyos
d59b0d7ec0 Add IColumn::getRawData to fixed-contiguous columns 2018-04-25 18:16:48 +03:00
pyos
6c275c27d0 Remove an unnoticed debug return 2018-04-25 16:44:24 +03:00
pyos
c419d5a1a5 Poison only columns actually used by ARRAY_JOIN and JOIN 2018-04-25 16:01:06 +03:00
pyos
5482282943 Implement informational methods for LLVMFunction 2018-04-25 16:01:06 +03:00
pyos
af7ecd4c4a Move function compilation before insertion of REMOVE_COLUMNs 2018-04-25 16:01:06 +03:00
pyos
162a0c8b33 Fix some comments' style 2018-04-25 16:01:06 +03:00
pyos
0da110234c Do not compile the jit if USE_EMBEDDED_COMPILER is disabled 2018-04-25 16:01:00 +03:00
Vitaliy Lyudvichenko
0957fd08a6
Update CHANGELOG_RU.md 2018-04-25 15:16:02 +03:00
Vitaliy Lyudvichenko
be10512066
Add RU changelog for v1.1.54380 2018-04-25 15:09:01 +03:00
pyos
1bece1de46 Support nullable columns (with default behavior) in jitted functions 2018-04-25 13:37:26 +03:00
pyos
4bd0906613 Fix some comments 2018-04-25 13:37:26 +03:00
pyos
3789eba5c4 Fix CMakeFiles syntax 2018-04-25 13:37:26 +03:00
pyos
2b1be27b1b Add missing option to CMakeFiles.txt 2018-04-25 13:37:26 +03:00
pyos
df2d2e0b25 Tweak the jit compilation API to be more amenable to lazy computation 2018-04-25 13:37:26 +03:00
pyos
b2077a466a Inline jit-compilable functions into other jit-compilable functions 2018-04-25 13:37:26 +03:00
pyos
3810173103 Remove IFunction::createResultColumn.
Given that the list of supported types is hardcoded in
LLVMContext::Data::toNativeType, this method is redundant because
LLVMPreparedFunction can create a ColumnVector itself.
2018-04-25 13:37:26 +03:00
pyos
6b526f784c Enable the default set of LLVM optimization passes
I honestly can't tell if they work. LLVM has surprisingly bad API documentation.
2018-04-25 13:37:26 +03:00
pyos
8c8a8f9c0f Extend the test jit-compilable function to arbitrary numbers 2018-04-25 13:37:25 +03:00
pyos
5f1bf11ede Implement a loop over the columns in jit-compiled code 2018-04-25 13:37:25 +03:00
pyos
407008a4d9 Separate jit-compilability checks from actual compilation 2018-04-25 13:37:25 +03:00
pyos
e96a5e8344 Implement JIT compilation, without a loop for now.
It actually seems to work, so long as you only have one row that is. E.g.

    > select something(cast(number + 6 as Float64), cast(number + 2 as Float64)) from system.numbers limit 1';
    8

with this IR:

    define void @"something(CAST(plus(number, 6), 'Float64'), CAST(plus(number, 2), 'Float64'))"(void**, i8*, double*) {
    entry:
      %3 = load void*, void** %0
      %4 = bitcast void* %3 to double*
      %5 = load double, double* %4
      %6 = getelementptr void*, void** %0, i32 1
      %7 = load void*, void** %6
      %8 = bitcast void* %7 to double*
      %9 = load double, double* %8
      %10 = fadd double %5, %9
      store double %10, double* %2
      ret void
    }
2018-04-25 13:37:25 +03:00
pyos
b398ffbaba Map all number types to LLVM types.
The example from the previous commit doesn't need a cast to Float64 anymore.
2018-04-25 13:37:25 +03:00
pyos
851684de51 Add a JIT interface for row-wise default-nullable functions.
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.
2018-04-25 13:37:25 +03:00
pyos
27d90fb941 Add an example function that uses LLVM to compile its own body 2018-04-25 13:37:25 +03:00
proller
899c65af63 Build fixes (#2275)
* Change obsolete comment

* Simpler disable logging to file in conf.d (<log/> <errorlog/>)

* Arm64 packag fixes

* Build fixes
2018-04-24 22:59:48 -07:00
alexey-milovidov
6c73fb86e3 Update FunctionsMath.h 2018-04-24 10:11:03 -07:00
Babacar Diassé
22b2099b0b use exp10 and cbrt from vectorclass when enabled 2018-04-24 10:11:03 -07:00
Tobias Adamson
ea1e167acf Upgrade librdkafka to v0.11.4 2018-04-24 10:08:47 -07:00
Tsarkova Anastasia
12c8014e5c Conditional computations. 2018-04-24 09:16:39 +02:00
sundy-li
e882acef31 fix:ODBC sqlType mapping 2018-04-23 22:55:06 -07:00
BayoNet
99b1cbb3c4 Fixed formatting of development/style.md 2018-04-24 01:16:40 +03:00
BayoNet
48ee13e2d9 Fixes of codeblock language and formatting. 2018-04-23 10:34:55 +03:00
BayoNet
765da09e4d Merge branch 'translation_en' with update of english translation. 2018-04-23 09:51:25 +03:00
BayoNet
32b6f0a8af English translation is updated. 2018-04-23 09:20:21 +03:00
Alexey Milovidov
2627a4da2e Better test #2066 2018-04-22 22:09:35 -07:00
Alexey Milovidov
afb7127c67 Better test #2066 2018-04-22 20:32:53 -07:00
Alexey Milovidov
289722e69c Merge branch 'master' of github.com:yandex/ClickHouse 2018-04-22 20:30:39 -07:00