aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Chulkov <achulkov2@nebius.com>2024-08-20 10:59:26 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2024-08-20 11:18:08 +0300
commit7081f7fd671773554680049b1c59213891e08eeb (patch)
tree452c63a62bd0a5f921ca0f52218f166d49b6cdb2
parentc24cb7350eb07563400cace520065fdcb5046031 (diff)
downloadydb-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.h11
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) {