diff options
author | Andrey Chulkov <achulkov2@nebius.com> | 2024-08-20 10:59:26 +0300 |
---|---|---|
committer | robot-piglet <robot-piglet@yandex-team.com> | 2024-08-20 11:18:08 +0300 |
commit | 7081f7fd671773554680049b1c59213891e08eeb (patch) | |
tree | 452c63a62bd0a5f921ca0f52218f166d49b6cdb2 | |
parent | c24cb7350eb07563400cace520065fdcb5046031 (diff) | |
download | ydb-7081f7fd671773554680049b1c59213891e08eeb.tar.gz |
Introduce enable_optimize_read_in_order in CHYT
This PR introduces a new mode in CHYT that aims to mimic the behaviour of [optimize_read_in_order](https://clickhouse.com/docs/en/sql-reference/statements/select/order-by#optimization-of-data-reading) in native ClickHouse. This PR implements #451, albeit using a different approach.
It works by using a sorted pool to produce jobs of exponentially increasing/decreasing sizes, which turn into subqueries that are processed combined sequentially without additional sorting steps. This should allow queries described in #451 to execute without reading the whole table.
Notable modifications with generic impact:
* Support for exponentially increasing job sizes in new sorted pool and related classes.
* Chunk slice fetcher is now used when creating a sorted pool in CHYT.
* New column in query log table exporter.
---
1f9ea932d21d4b328b4be976eb39cdfbc631dffd
Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/757
-rw-r--r-- | yt/yt/client/table_client/row_base.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/yt/yt/client/table_client/row_base.h b/yt/yt/client/table_client/row_base.h index 51e84f8954..cc4a34c446 100644 --- a/yt/yt/client/table_client/row_base.h +++ b/yt/yt/client/table_client/row_base.h @@ -117,6 +117,17 @@ inline bool IsIntegralType(ESimpleLogicalValueType type) } } +inline bool IsFloatingPointType(ESimpleLogicalValueType type) +{ + switch (type) { + case ESimpleLogicalValueType::Double: + case ESimpleLogicalValueType::Float: + return true; + default: + return false; + } +} + inline bool IsStringLikeType(ESimpleLogicalValueType type) { switch (type) { |