Commit Graph

776 Commits

Author SHA1 Message Date
Alexey Milovidov
60477a9aaa Enhanced time zones support: the DateTime data type can track time zone [#CLICKHOUSE-3402]. 2017-11-09 22:25:21 +03:00
Alexey Milovidov
175af4b2e9 Removed copy-paste [#CLICKHOUSE-2]. 2017-11-01 06:09:06 +03:00
Marek Vavruša
c44e3e76c8 Renamed CapnProtoInputStream to CapnProtoRowInputStream. 2017-10-27 23:03:51 +03:00
Marek Vavruša
0d942a69c5 DataStreams: added Cap’n Proto format support
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.
2017-10-27 23:03:51 +03:00
Vitaliy Lyudvichenko
a0d06c5ee0 Don't deduplicate a block inserted from MV if the source block is Ok. [#CLICKHOUSE-3381] 2017-10-26 17:58:00 +03:00
Marek Vavruša
c0458999f9 SummingSortedBlockInputStream: fix summing of multiple blocks
Previously the destination columns were only computed for the first
block, so that subsequently written blocks failed to write
aggregation results to corrent columns.
2017-10-25 22:21:59 +03:00
Marek Vavruša
e936c4d066 AggregateFunctionSum: implemented sumWithOverflow(x)
By default sum(x) promotes the result type to
largest possible integral type to avoid
arithmetic overflow when summing values from
smaller data types.

This is generally desirable behaviour, but it doesn’t
work with summing merge tree, as the result is
expected to be of same type as the input.
2017-10-25 22:21:59 +03:00
Marek Vavruša
5c87a91aaf SummingSortedBlockInputStream: fix explicitly configured columns to sum
This fixes a variant of SummingMergeTree() in which
the columns to sum are explicitly configured.
Previously columns not in that list were ignored,
instead of writing last value.

This also fixes summation of invalid maps with
with only one key column and no value columns.

Modified test to work around compaction limitation
in which a zero-value column isn’t compacted
immediately if the inputs are non-zero but the
output is zero (+1 -1).
2017-10-25 22:21:59 +03:00
proller
4ffbca2d8c Fix warnings (#1406)
* Log query id in executeQuery; Better type mismatch error; change format in report tool

* Better log query_id

* fix message

* Use c++11 thread_local instaed of gcc's __thread

* lock mutex before notifying waiting thread in sync insertion into distributed [#CLICKHOUSE-3379]

* Cmake: fix build without downloaded submodules (#1379)

* fix

* ZooKeeper: fixed stack smashing with tryGet()

The tryGet() operation creates a 1MB buffer on stack. This may or
may not work depending on the default stack size for threads,
whether the stack protector is enabled or not, recursion depth,
and the actual value size.

This is probably going to slow down some ZK operations, but I don't
see how else this could work reliably with the existing API.

* increased timeout for test_insertion_sync_fails_with_timeout

* Update CHANGELOG_RU.md

* Update ZooKeeper.cpp

* Fix warnings

* Fixes

* Dont strip debug info from  asan, tsan and other builds except releases

* Fix asan error causd by test 00144

* Fix empty log message (#CLICKHOUSE-3378)
2017-10-25 21:39:10 +03:00
alexey-milovidov
8c327e9378 Revert "Make gperftools (libtcmalloc) as submodule and update. (#1381)"
This reverts commit fa2484ea90.
2017-10-24 22:18:15 +03:00
proller
fa2484ea90 Make gperftools (libtcmalloc) as submodule and update. (#1381)
* Update tcmalloc and make submodule

* wip

* wip

* wip

* wip

* clean

* fix

* fix

* fix

* Fix tests
2017-10-24 22:11:42 +03:00
alexey-milovidov
5bfb4c213c Update JSONEachRowRowInputStream.cpp 2017-10-23 20:47:33 +03:00
Marek Vavruša
6be0ffd943 DataStreams/JSONEachRow: read exact number of rows
When using a LIMIT to reduce the number of rows
read, JSONEachRow format would always read an
extra row as it triggered a scan to seek the
EOF or beginning of the next row. This is not
an issue with physical tables, but it is
for streaming tables as an extra row is
unintentionally consumed on each read.
2017-10-23 20:47:33 +03:00
Marek Vavruša
927c0f7b74 dbms: Partially revert previous change
Instead of trying to convert long/unsigned long to Poco types, just
don't use them.
2017-10-13 23:46:10 -07:00
Marek Vavruša
8a0571af24 dbms: Better fix for missing unsigned long to Poco::UInt64 alias 2017-10-13 21:39:14 -07:00
Marek Vavruša
70543200be dbms: Fix build with clang after Poco update
In the current version of Poco, unsigned long no longer aliases to
UInt64 with LP64. The size_t aliases to unsigned long with clang,
so all the uses of size_t instead of UInt64 when interacting with
Poco interfaces are gone. I replaced uses with UInt64 where it makes
sense, and added an overloaded function for readVarUInt() to support size_t.
2017-10-13 18:26:24 -07:00
Marek Vavruša
2ac5a743cc dbms: fix build with OS X built-in clang
The built-in clang doesn’t support value() for
`std::experimental::optional`. It however supports
dereference operator, which is basically the
same thing:

```
/clickhouse/dbms/src/DataStreams/NullableAdapterBlockInputStream.cpp:83:67: error: call to unavailable member function 'value':
                    res.insert({elem.column, elem.type, rename[i].value()});
                                                        ~~~~~~~~~~^~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/optional:547:17: note: candidate function has been explicitly made unavailable
    value_type& value()
                ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/optional:539:33: note: candidate function has been explicitly made unavailable
    constexpr value_type const& value() const
```
2017-10-13 18:12:29 -07:00
alexey-milovidov
9ccdb5420b Merge branch 'master' into upstream-add-kafka 2017-10-13 23:52:42 +03:00
Marek Vavruša
41b0bea84c SummingSortedBlockInputStream: use a separate structure for MapDescription 2017-10-13 21:51:03 +03:00
Marek Vavruša
39a5ae97c9 SummingSortedBlockInputStream: added comments, destructor for state 2017-10-13 21:51:03 +03:00
alexey-milovidov
d561d8d701 Update SummingSortedBlockInputStream.cpp 2017-10-13 21:51:03 +03:00
alexey-milovidov
a2fa58a2e4 Update SummingSortedBlockInputStream.cpp 2017-10-13 21:51:03 +03:00
alexey-milovidov
fee883d7c5 Update SummingSortedBlockInputStream.cpp 2017-10-13 21:51:03 +03:00
Marek Vavruša
2edf5492d0 AggregateFunctionSumMap: support variardic arguments, specialized keys
The function is rewritten to avoid allocations on every insert with
Field deserialising each array. The key type is now specialized,
so it can be accessed directly. The value type is variant type,
but only individual values are deserialised (which is cheap, since they're PODs).
The function also support summing of multiple columns by the same key.

The SummingSortedBlockInputStream uses the function in case of
Nested structure with one numeric key and many values to sum.
2017-10-13 21:51:03 +03:00
Marek Vavruša
be2faa82ff DataStreams/test: test case for nested field with two arrays for summing 2017-10-13 21:51:03 +03:00
Marek Vavruša
c09a43a7b2 DataStreams/SummingSortedBlockInputStream: use builtin aggregated functions
This replaces custom summation function implementations with an implementation
using built-in aggregation functions (sum and sumMap). The goal is to be able to
use specialized variants of aggregation functions, and to have a single
efficient implementation.
2017-10-13 21:51:03 +03:00
Marek Vavruša
c9be3719bc DataStreams/tests: add SummingSortedBlockInputStream test variant
This is basically useful for testing SummingSortedBlockInputStream
against the AggregatingBlockInputStream, which are used in the
{Summing,Aggregating}MergeTree table engines respectively.
2017-10-13 21:51:03 +03:00
Alexey Milovidov
e57e79a5ff Proper fix for the issue: better exception message [#CLICKHOUSE-2]. 2017-10-12 22:56:47 +03:00
proller
cbc81a6a9f Received signal Segmentation fault (#1300) (#1302)
* Received signal Segmentation fault (#1300)

* Add test
2017-10-12 22:46:40 +03:00
proller
1505ad6bac Executable dictionaries: fail if program returns non zero exit code (#CLICKHOUSE-3171) 2017-10-12 22:36:27 +03:00
Marek Vavruša
4fb570fa5e IStorage: allow notification on dependency change
This allows sending notifications to supported
table engines when their dependencies change.
For example, a table can be notified when a
MATERIALIZED VIEW is attached to it.

This is a building block for building pipelines.
2017-10-10 08:33:00 -07:00
proller
7feb94357b use enum class 2017-10-03 22:12:44 +03:00
proller
5250650f65 Fixes (#1286)
* Revert "Simplification [#CLICKHOUSE-2]."

This reverts commit 98ad6a5db3.

* Fix error: comparison of unsigned expression < 0 is always false

* Fix float division by zero

* Fix float division by zero

* Disable PointInPolygon function if compiling with old clang

* Fix warning:
dbms/src/Functions/FunctionsCoding.h:336:21: error: comparison of constant -1 with expression of type 'const char' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
            if (num != -1)

* Fix
2017-09-26 23:29:34 +03:00
Alex Bocharov
55e1559733 Resolve conflict in SummingSortedBlockInputStream when moving FieldVisitorSum. 2017-09-18 18:46:10 +01:00
Alex Bocharov
1f70d0e163 Resolve conflict in SummingSortedBlockInputStream when moving FieldVisitorSum. 2017-09-18 18:43:47 +01:00
Alex Bocharov
6e74602e45 Aggregate function sumMap: use FieldVisitorSum instead of += operator. 2017-09-18 16:41:07 +01:00
Alexey Milovidov
21fe32b929 Fixed build in clang with raised up inline-depth [#CLICKHOUSE-2]. 2017-09-15 15:17:01 +03:00
Alexey Milovidov
86c46ad1bd Unification [#CLICKHOUSE-2]. 2017-09-15 15:16:12 +03:00
Vitaliy Lyudvichenko
826c354ff5 Fixed merges progress bar. [#CLICKHOUSE-2] 2017-09-15 01:04:13 +03:00
proller
a43b9ec398 Revert "Simplification [#CLICKHOUSE-2]."
This reverts commit 98ad6a5db3.
2017-09-14 23:16:31 +03:00
Alexey Milovidov
2c424c7989 Added description of possible race condition [#CLICKHOUSE-2]. 2017-09-10 06:17:05 +03:00
Alexey Milovidov
98ad6a5db3 Simplification [#CLICKHOUSE-2]. 2017-09-10 05:30:45 +03:00
Alexey Milovidov
dc5eca0beb Fixed awful translation [#CLICKHOUSE-2]. 2017-09-10 05:06:16 +03:00
Alexey Milovidov
cf5fd27b94 Clarifications [#CLICKHOUSE-2]. 2017-09-10 04:39:40 +03:00
Alexey Milovidov
cd540c2674 Replaced Mersenne Twister to PCG-Random [#CLICKHOUSE-2]. 2017-09-10 02:17:38 +03:00
Alexey Milovidov
94b975e7f9 Removed function deprecated in C++ [#CLICKHOUSE-3174]. 2017-09-09 02:31:18 +03:00
Alexey Milovidov
dc4976f562 Implemented some suggestions from clang-tidy (part 8) [#CLICKHOUSE-3301]. 2017-09-08 07:58:57 +03:00
Alexey Milovidov
8c9ec83a33 Implemented some suggestions from clang-tidy (part 4) [#CLICKHOUSE-3301]. 2017-09-08 07:10:43 +03:00
Alexey Milovidov
d29c77adea Implemented some suggestions from clang-tidy (part 3) [#CLICKHOUSE-3301]. 2017-09-08 06:47:27 +03:00
Alexey Milovidov
e9ae193870 Implemented some suggestions from clang-tidy (part 1) [#CLICKHOUSE-3301]. 2017-09-08 05:29:47 +03:00