Commit Graph

17 Commits

Author SHA1 Message Date
Tsarkova Anastasia
5ecd50ff44 Adding comments. Reversing infinities. 2018-02-08 17:28:31 +03:00
Tsarkova Anastasia
c50ccabb0a Implement MergeTree index using for IN operator with tuple of columns. 2018-02-07 18:29:00 +03:00
Alexey Milovidov
fcdd5de47d Revert "Removed questionable code (2) [#CLICKHOUSE-2]."
This reverts commit fcabe8b888.
2017-12-28 07:39:19 +03:00
Alexey Milovidov
c89041ce63 Removed questionable code (2) [#CLICKHOUSE-2]. 2017-12-26 01:51:04 +03:00
Alexey Milovidov
ec71908b00 Revert "Removed questionable code (2) [#CLICKHOUSE-2]."
This reverts commit fcabe8b888.
2017-12-26 00:57:29 +03:00
Alexey Milovidov
fcabe8b888 Removed questionable code (2) [#CLICKHOUSE-2]. 2017-12-26 00:32:33 +03:00
Alexey Milovidov
54e601019c Better [#CLICKHOUSE-2]. 2017-12-02 00:40:58 +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
e4eb6f0cfb Fixed bad translation [#CLICKHOUSE-2]. 2017-08-29 22:02:07 +03:00
Alexey Milovidov
04af7a3349 Fixed bad translation [#CLICKHOUSE-2]. 2017-08-29 21:51:48 +03:00
Alexey Milovidov
9406b6a5aa Get rid of ASTSet, because it is not really an AST and it lead to bugs [#CLICKHOUSE-3148]. 2017-07-15 06:48:36 +03:00
Alexey Milovidov
1a0f5dd7cf Getting rid of ASTSet (incomplete) [#CLICKHOUSE-2] 2017-07-14 03:33:37 +03:00
Alexey Milovidov
2bd84600d1 Miscellaneous [#CLICKHOUSE-2]. 2017-07-11 04:20:40 +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
a77369d082 Preparation: Storages do not modify query [#CLICKHOUSE-31]. 2017-05-25 04:12:41 +03:00
f1yegor
0b243a8b01 translate comments 2017-04-16 23:17:32 +03:00
Alexey Milovidov
310736cd7e Moved headers and sources to same place [#CLICKHOUSE-3]. 2017-04-01 12:22:42 +03:00