Commit Graph

8373 Commits

Author SHA1 Message Date
alexey-milovidov
52c58d3a82
Merge pull request #2308 from ilyshnikova/master
Without std::move
2018-05-01 12:35:57 -07:00
Tsarkova Anastasia
3a36569439 Without std::move 2018-05-01 21:34:42 +02:00
alexey-milovidov
81161be755
Merge pull request #2307 from ilyshnikova/master
Without std::move
2018-05-01 12:32:37 -07:00
Tsarkova Anastasia
8245dc3f6a Without std::move 2018-05-01 21:31:01 +02:00
alexey-milovidov
cb221cee29
Merge pull request #2306 from ilyshnikova/master
struct instead of class
2018-05-01 12:20:03 -07:00
Tsarkova Anastasia
ba901ebc3f struct instead of class 2018-05-01 21:18:13 +02:00
alexey-milovidov
9be89bd0d4
Merge pull request #2272 from ilyshnikova/master
Conditional computations.
2018-05-01 12:08:46 -07:00
Tsarkova Anastasia
7c9741ed5b Fix style. 2018-05-01 15:31:38 +02:00
Tsarkova Anastasia
fe0753a128 Minor fixes, adding test case. 2018-05-01 15:24:43 +02:00
pyos
7483ed24f0 Implement jit for logic functions 2018-05-01 14:43:15 +03:00
Tsarkova Anastasia
210a389592 Getting rid of measure action, other small fixes applied. 2018-04-30 21:33:32 +02:00
pyos
e4ace21f24 Remove laziness on nullable arguments from default implementation
It breaks semantics, sadly.
2018-04-30 15:35:32 +03:00
pyos
4970b06b57 Remove outdated comments 2018-04-30 02:21:45 +03:00
pyos
039c377a7a Work around a bug in llvm::IRBuilder::CreateMaxNum 2018-04-30 02:07:39 +03:00
pyos
059bbcacca Implement jit for most arithmetic functions, remove the test function 2018-04-30 01:43:02 +03:00
pyos
7529aa55a4 Fix a bug that limited inlining depth at 2 2018-04-30 01:23:27 +03:00
Tsarkova Anastasia
a99ff6f380 Fix tests. 2018-04-29 23:48:33 +02:00
Tsarkova Anastasia
9286c98789 Fix build. 2018-04-29 23:13:01 +02:00
pyos
b4c7bee12b Merge branch 'master' of https://github.com/yandex/ClickHouse into llvm-jit 2018-04-29 23:22:18 +03:00
pyos
72f2fea837 Extract the code that compiles a single IFunctionBase from LLVMFunction 2018-04-29 21:03:58 +03:00
pyos
1be009d485 Remove getDefaultNativeValue in favor of llvm::Constant::getNullValue 2018-04-29 20:32:30 +03:00
Tsarkova Anastasia
4bce6035b1
Merge branch 'master' into master 2018-04-29 18:02:34 +02:00
Tsarkova Anastasia
2c96b1c684 Add comments. Change projection restoring function. 2018-04-29 15:49:58 +02:00
pyos
01aaf99d75 Use C++17 fold expressions to simplify FunctionsArithmetic.h 2018-04-29 16:04:28 +03:00
pyos
fb577b1049 Hide the whole JIT API behind #if USE_EMBEDDED_COMPILER
Kind ugly, but at least the conditionals are used consistently now.
2018-04-29 13:48:16 +03:00
pyos
4641e2960f Move ExpressionActions::compileFunctions to ExpressionJIT.cpp.
This means ExpressionJIT.h only has to expose one function.
2018-04-29 13:39:01 +03:00
pyos
08345628a2 Support {Date,DateTime,Interval,UUID,FixedString} in compiled functions 2018-04-28 18:55:48 +03:00
pyos
6e05c5ace4 compilePrologue() isn't particularly useful after all.
Basically the only thing it can do that compile() can't is create 'alloca'
instructions, which are only needed to get pointers to stack variables.
Given that dynamically-sized allocations aren't possible with this API,
such pointers are probably completely pointless (heh).
2018-04-28 18:11:23 +03:00
pyos
1ffc2a0775 Make LLVMFunction monotonicity computation shorter (and fix a typo-bug) 2018-04-28 17:41:24 +03:00
pyos
a1eb938ed2 Inline nullable number constants into compiled code.
Also, protect against some segfaults during compilation by checking
correctness of the type returned by compile().
2018-04-28 17:12:00 +03:00
pyos
ccc895d162 Represent nullable types as pairs instead of pointers.
Turns out LLVM has insertvalue & extractvalue for struct in registers. This is
faster than pointers because null checks are now subject to more optimizations.
2018-04-28 14:12:23 +03:00
pyos
5c75342d54 Check nativity of all types *before* calling isCompilable 2018-04-28 01:03:52 +03:00
pyos
979c4d959f Let jit-compilable functions deal with NULLs themselves.
And provide a default implementation of compile() for nullable columns
that actually works and is consistent with execute().
2018-04-28 00:34:27 +03:00
alexey-milovidov
093c054b1f
Merge pull request #2263 from luc1ph3r/arbitrary-csv-delimiter
Support an arbitrary CSV delimiter
2018-04-27 13:13:09 -07:00
alexey-milovidov
96e2dfa790
Update SettingsCommon.h 2018-04-27 13:12:26 -07:00
pyos
49b61cd27d Refactor LLVMFunction to make extending to DataTypeNullable easier 2018-04-27 18:44:38 +03:00
Vitaliy Lyudvichenko
e152f223c9 Fix nodes leak in case of session expiration. [#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
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
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
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
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
Alexey Milovidov
958a3d7ee7 Fixed error with Arrays inside Nested data type; added a test #2066 2018-04-22 20:30:28 -07:00
Ivan Zhukov
8cb45392c1 Propagate a CSV delimiter to non-basic DataTypes 2018-04-22 20:30:07 +03:00
Ivan Zhukov
e402ff3f81 Unify string checks with a new type 2018-04-22 02:42:01 +03:00
Ivan Zhukov
e84263eb3b Add a SettingChar type 2018-04-22 02:42:00 +03:00
Ivan Zhukov
a138ab2820 Add CSV delimter support in CSVRowOutputStream 2018-04-22 02:08:50 +03:00
Ivan Zhukov
91cb03bdaf Add delimiter support in CSVRowInputStream 2018-04-22 02:08:31 +03:00
Ivan Zhukov
1fc6bb6ffe Add a CSV delimiter setting 2018-04-22 01:20:39 +03:00
Alexey Milovidov
499b67642f Allow to startup with replicated tables in readonly mode when there is no ZooKeeper configured [#CLICKHOUSE-2] 2018-04-21 21:41:06 +03:00
Alexey Milovidov
5ba5e80846 Added correct code #2257 2018-04-20 22:45:23 +03:00
alexey-milovidov
60fade5de8 Revert "ISSUES-1885 UTF8 countCodePoints use SIMD" 2018-04-20 22:18:24 +03:00
Alexey Milovidov
c087449023 Fixed error #2246 2018-04-20 22:14:04 +03:00
Alexey Milovidov
ac48e1e911 Fixed error #2246 2018-04-20 20:34:09 +03:00
alexey-milovidov
21a5d2dfde Update Macros.h 2018-04-20 19:10:26 +03:00
alexey-milovidov
c783a69d6b Update Macros.cpp 2018-04-20 19:10:26 +03:00
Kirill Shvakov
918dbc2902 #2249 allow macros while creating kafka engine 2018-04-20 19:10:26 +03:00
Ivan He
c94b0a1960 fix typo of struct name 2018-04-20 16:27:48 +03:00
Alexey Milovidov
6b88a2a7a5 Better info in log #2246 2018-04-20 04:14:04 +03:00
Alexey Milovidov
70be882b64 Renamed PK to Key where it's appropriate #2246 2018-04-20 03:27:25 +03:00
Alexey Milovidov
d71b3a95ef Renamed PK to Key where it's appropriate #2246 2018-04-20 03:20:50 +03:00
Alexey Milovidov
207a8cc03c Fixed error with Sets, part 2 #2246 2018-04-20 00:36:58 +03:00
Alexey Milovidov
ce0ac3f8f8 Fixed error with Sets, part 2 #2246 2018-04-20 00:34:04 +03:00
Alexey Milovidov
fee22dac33 Merge branch 'master' of github.com:yandex/ClickHouse 2018-04-19 23:34:23 +03:00
Alexey Milovidov
c0978919e3 Fixed error with partition key IN, part 1 #2246 2018-04-19 23:34:02 +03:00
Alexey Milovidov
a6c194fa6d Insignificant change #2246 2018-04-19 23:32:56 +03:00
张健
e9b03b3abc ISSUES-2242 add default data_path & metadata_path for system.tables with temporary (#2243) 2018-04-19 23:22:08 +03:00
Vitaliy Lyudvichenko
a29a99b7d3 Add test for ZooKeeperImpl with watch and chroot. [#CLICKHOUSE-2] 2018-04-19 22:40:42 +03:00
Alexey Milovidov
9a05dd6161 ZooKeeperImpl: fixed error with watches and chroot [#CLICKHOUSE-2] 2018-04-19 22:21:37 +03:00
Alexey Milovidov
12e33cfd85 Exit from threads when ZooKeeper session is expired (non significant change) [#CLICKHOUSE-2] 2018-04-19 21:16:18 +03:00
Alexey Milovidov
da94c7dd91 Exit from queueUpdatingThread when ZooKeeper session is expired (non-significant change) [#CLICKHOUSE-2] 2018-04-19 21:01:50 +03:00
Alexey Milovidov
f9da1fce37 Addition to prev. revision #2164 2018-04-19 08:54:16 +03:00
Alexey Milovidov
41428e4a11 Allowed to read files by table function "file" inside "user_files_path" #2164 2018-04-19 08:32:09 +03:00
alexey-milovidov
08dfd8a09b
Merge pull request #2164 from topvisor/add_table_function_file
Add table function file
2018-04-19 07:53:49 +03:00
alexey-milovidov
565c31c0fb
Update TableFunctionFile.cpp 2018-04-19 07:46:29 +03:00
alexey-milovidov
8f5436e8b0
Update StorageFile.cpp 2018-04-19 07:39:48 +03:00
alexey-milovidov
4b3aa3fc11
Update StorageFile.cpp 2018-04-19 07:39:16 +03:00
alexey-milovidov
19f918512b
Update StorageFile.cpp 2018-04-19 07:36:08 +03:00
Alexey Milovidov
ef14902ef9 Style #1925 2018-04-19 07:25:08 +03:00
Alexey Milovidov
6388c916de Fixed style; added a comment about terribly wrong code [#CLICKHOUSE-2] 2018-04-19 07:23:58 +03:00
alexey-milovidov
0612977bc3
Merge pull request #1925 from zhang2014/fix/ISSUES-995
ISSUES-995 support relative path with domain
2018-04-19 07:19:23 +03:00
Alexey Milovidov
67c451e9cf Miscellaneous #2134 2018-04-19 06:08:22 +03:00
alexey-milovidov
b23db369f4
Merge pull request #2134 from zhang2014/fix/union_syntax
ISSUES-2133 Support union query with subquery
2018-04-19 05:42:52 +03:00
Alexey Milovidov
cce4c8886c Removed obsolete code #2226 2018-04-19 00:23:55 +03:00
Alexey Milovidov
b4bf2f0c09 Added comment [#CLICKHOUSE-2] 2018-04-19 00:14:47 +03:00
Alexey Milovidov
a55abd0a25 Fixed test [#CLICKHOUSE-2] 2018-04-18 23:27:27 +03:00
Alexey Milovidov
b6fcb808fe Updated old code [#CLICKHOUSE-2] 2018-04-18 23:18:18 +03:00
Alexey Milovidov
3eff0184fa Added set size checking when set from subquery is used for index; removed harmful feature for special support of (a, b) IN (SELECT (a, b)) instead of (a, b) IN (SELECT a, b) [#CLICKHOUSE-2] 2018-04-18 22:38:40 +03:00
Alexey Milovidov
3bb2fa4702 Fixed bad code [#CLICKHOUSE-2] 2018-04-18 21:44:02 +03:00
alexey-milovidov
22f7a3a545
Merge pull request #2223 from sundy-li/master
Fix:ignore the format_version check when the data is empty
2018-04-17 22:50:26 +03:00
alexey-milovidov
089e71d9a5
Merge pull request #2235 from yandex/small-enhancements
Small enhancements
2018-04-17 22:45:01 +03:00
Vitaliy Lyudvichenko
400ad55754 Support allow_databases in distributed DDL. [#CLICKHOUSE-3]
Resolves #2189
2018-04-17 22:33:58 +03:00
Vitaliy Lyudvichenko
bf832b3ea6 Fixed OPTIMIZE after RENAME of replicated table. [#CLICKHOUSE-2] 2018-04-17 20:59:42 +03:00
Vitaliy Lyudvichenko
5536bf202c Allow SELECT FROM system.processes while max_queries limit is exceeded. [#CLICKHOUSE-3670] 2018-04-17 20:08:15 +03:00
Vitaliy Lyudvichenko
604c7071c3 Fixed a long lock of ProcessList when KILL QUERY is called. [#CLICKHOUSE-3706] 2018-04-17 18:16:32 +03:00
Vitaliy Lyudvichenko
f642d0828e Avoid freezing of KILL QUERY. [#CLICKHOUSE-3706] 2018-04-17 17:29:52 +03:00
proller
27b4af9dd7 Change obsolete comment 2018-04-16 23:25:07 +03:00
alexey-milovidov
17dd218338
Merge pull request #2202 from proller/fix15
CLICKHOUSE-3700: Fix empty password on replica query
2018-04-16 23:18:47 +03:00
proller
42cb1540a1
Update ClientInfo.h 2018-04-16 23:12:44 +03:00
Nikolai Kochetov
d9ab10634a fix build 2018-04-16 18:39:12 +03:00
Nikolai Kochetov
9e05052c2a merged with master 2018-04-16 18:35:11 +03:00
Nikolai Kochetov
7b8a306e34 minor fixes 2018-04-16 18:11:13 +03:00
sundy-li
12211ffc5b Fix:ignore the format_version check when the data is empty 2018-04-16 18:04:59 +08:00
proller
0114b69f61 Fix build 2018-04-13 23:16:12 +03:00
proller
f9cd6a09e6 sql: initial EXTRACT(... FROM ...) support (#2196)
* start

* wip

* wip

* wip

* wip

* wip

* Fix clickhouse-server.postinst

* clean

* wip

* clean

* clean

* clean

* wip

* clean

* Update dump_variable.cpp
2018-04-13 22:35:08 +03:00
proller
5b19d89133 Add git hash to version info 2018-04-13 15:42:35 +03:00
proller
4034fcecf3 Merge remote-tracking branch 'upstream/master' into fix15 2018-04-10 21:27:21 +03:00
proller
0c2ba39978
Debian: Try make compatible package depends (#2194)
* Fix split shared build

* Fix build without system odbc libs

* Move dbms/src/Common/iostream_debug_helpers.h -> libs/libcommon/include/common/iostream_debug_helpers.h

* Fix build with libiodbc

* Fix clickhouse-server.postinst

* Debian: Try make compatible package depends

* Try fix fail on travis tests fail

* Try fix package

* Fix ssl test

* fix

* fix

* wip

* try fix

* clean

* fix
2018-04-10 11:25:08 -07:00
Alexey Milovidov
2392f87dca ZooKeeper: Fixed error [#CLICKHOUSE-2] 2018-04-10 19:48:43 +03:00
proller
157067b127 CLICKHOUSE-3700: Fix empty password on replica query 2018-04-10 17:49:52 +03:00
decaseal
c641a6cd57 table function file - remove unnecessary includes [#add_table_function_file] 2018-04-10 11:59:53 +03:00
decaseal
40b41c3c6e storage file - change error code [#add_table_function_file] 2018-04-10 11:54:31 +03:00
decaseal
e8ae0343ed Merge remote-tracking branch 'yandex/master' into add_table_function_file_dev 2018-04-10 10:30:46 +03:00
decaseal
50f65890dc table function file - use only FileStorage [#add_table_function_file] 2018-04-10 10:28:57 +03:00
decaseal
a2db6db50c table function file - use only FileStorage [#add_table_function_file] 2018-04-10 10:26:33 +03:00
decaseal
279fa17ff6 storage file - fix check creation is allowed [#add_table_function_file] 2018-04-10 10:09:50 +03:00
Alexey Milovidov
d3cf85057b Removed useless code [#CLICKHOUSE-2] 2018-04-09 18:49:12 +03:00
proller
c26b3bdef1
Fix split shared build; fix build without system odbc libs (#2191)
* Fix split shared build

* Fix build without system odbc libs

* Move dbms/src/Common/iostream_debug_helpers.h -> libs/libcommon/include/common/iostream_debug_helpers.h

* Fix build with libiodbc
2018-04-09 06:52:39 -07:00
Alexey Milovidov
f02239a307 Fixed linkage of tests [#CLICKHOUSE-2] 2018-04-08 07:54:23 +03:00
Alexey Milovidov
79e319a7b6 ZooKeeper: fixed error [#CLICKHOUSE-2] 2018-04-08 07:45:59 +03:00
Alexey Milovidov
a2482f120d Fixed test [#CLICKHOUSE-2] 2018-04-08 07:38:27 +03:00
Alexey Milovidov
86317fe0f9 ZooKeeper: Fixed error [#CLICKHOUSE-2] 2018-04-08 07:25:13 +03:00
proller
07b81c875e CLICKHOUSE-3444: show error for old query on replace_running_query (#2127)
* Add tests

* Fix test

* Fix test build

* CLICKHOUSE-3444: show error for replace_running_query

* fix naming

* fix

* fix test

* Update IProfilingBlockInputStream.cpp
2018-04-07 06:49:49 +03:00
Alexey Milovidov
babfc6aaf7 Fixed error [#CLICKHOUSE-2] 2018-04-07 06:46:20 +03:00
Alexey Milovidov
18bbd0e61b Moved SessionPoolHelpers #2180 2018-04-07 06:07:32 +03:00