Alexey Milovidov
f3bb24a3bf
Better semantic of sharing columns: development [#CLICKHOUSE-2].
2017-12-14 04:43:19 +03:00
Alexey Milovidov
3def5f03f5
Cleanup semantics of data types [#CLICKHOUSE-2].
2017-12-09 19:17:37 +03:00
Alexey Milovidov
d2cfda4d9b
Cleanup semantics of data types [#CLICKHOUSE-2].
2017-12-09 19:17:37 +03:00
Alexey Milovidov
c748493a86
Better [#CLICKHOUSE-2].
2017-12-02 05:47:12 +03:00
proller
ed848a7186
Fix warning on arm
2017-09-24 16:59:18 +03:00
Alexey Milovidov
565902fc4d
Added comment; fixed test [#CLICKHOUSE-2].
2017-09-17 20:58:30 +03:00
Alexey Milovidov
b80788a2f4
Better implementation of "roundToExp2" function [#CLICKHOUSE-2].
2017-09-17 01:12:24 +03:00
Alexey Milovidov
c2595934f1
FunctionsRound: continue [#CLICKHOUSE-2].
2017-09-16 23:17:19 +03:00
Alexey Milovidov
d48725f9a7
FunctionsRound: continue [#CLICKHOUSE-2].
2017-09-16 22:33:49 +03:00
Alexey Milovidov
84d61b501c
FunctionsRound: continue [#CLICKHOUSE-2].
2017-09-16 22:31:20 +03:00
Alexey Milovidov
ad13a8c79d
Fixed half of bad code [#CLICKHOUSE-2].
2017-09-16 21:36:16 +03:00
Alexey Milovidov
0002507598
Added function "trunc"; simplifications [#CLICKHOUSE-2].
2017-09-16 19:47:05 +03:00
Alexey Milovidov
25f2f032d1
Added function "trunc"; simplifications [#CLICKHOUSE-2].
2017-09-16 19:38:27 +03:00
Alexey Milovidov
86c46ad1bd
Unification [#CLICKHOUSE-2].
2017-09-15 15:16:12 +03:00
Alexey Milovidov
306070d2cc
Fixed error in one of prev. revisions [#CLICKHOUSE-3150].
2017-07-30 22:47:32 +03:00
Alexey Milovidov
ee81d53bd5
Functions simplification [#CLICKHOUSE-2].
2017-07-25 01:44:13 +03:00
alexey-milovidov
d4d266fa18
ColumnConst unification ( #1011 )
...
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* Fixed error in ColumnArray::replicateGeneric [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
* ColumnConst: unification (incomplete) [#CLICKHOUSE-3150].
2017-07-21 09:35:58 +03:00
Marek Vavruša
ff73394124
PKCondition: infer index use with pk subexpression
...
By default only constraints explicitly matching
primary key expression (or expression wrapped in
a monotonic function) are eligible for part and
range selection. So for example, if index is:
(toStartOfHour(dt), UserID)
Then a query such as this resorts to full scan:
SELECT count() FROM t WHERE dt = now()
Intuitively, only parts with toStartOfHour(now())
could be selected, but it is less trivial to prove.
The primary key currently can be wrapped in a chain
of monotonic functions, so following would work:
toStartOfHour(dt) = toStartOfHour(now()) AND dt = now()
It must be however explicitly stated, if we wanted
to infer that we’d have to know the inverse function,
and prove that the inverse function is monotonic
on given interval. This is not practical as
there is no inverse function that for example undos
rounding, it isn’t strictly monotonic.
There are however functions that don’t transform
output range and preserve monotonicity on the
complete input range, such as rounding or casts
to a same or wider numeric type. This eliminates
the need to find inverse function, as no check for monotonicity over arbitrary interval is needed,
and thus makes this optimisation possible.
2017-07-09 17:13:51 +03:00
Alexey Milovidov
782fe332b1
Miscellaneous [#CLICKHOUSE-31].
2017-06-13 07:13:54 +03:00
f1yegor
0882092c20
translate comments: functions
2017-05-27 17:45:25 +02:00
orantius
da83036326
Add age 55 for function roundAge. [#CLICKHOUSE-3001]
2017-05-15 22:42:39 +04:00
Alexey Milovidov
310736cd7e
Moved headers and sources to same place [#CLICKHOUSE-3].
2017-04-01 12:22:42 +03:00