discord9
28ec3ff5aa
fix(table): require complete primary keys for hash partitioning ( #9507 )
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-10-10 12:28:47 +00:00
dennis zhuang
affc0a1b1d
fix: align ordered aggregate state type with the accumulator output ( #9340 )
...
* fix: align ordered aggregate state type with the accumulator output
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* fix: reject mismatched aggregate states and keep hard-ordered aggregates unsplit
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* fix: keep WITHIN GROUP aggregates splittable and relabel state fields by position
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
---------
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
2026-09-24 07:02:14 +00:00
dennis zhuang
def0c2ec5c
fix: only push down aggregates grouped by the partition columns themselves ( #9337 )
...
* fix: only push down aggregates grouped by the partition columns themselves
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* fix: keep grouping sets on the frontend for partitioned tables
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
---------
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
2026-09-24 06:49:52 +00:00
discord9 and discord9
5ef8a46e3f
feat(function): add mergeable binary average states ( #9062 )
...
* feat(function): add mergeable binary average states
Signed-off-by: discord9 <discord9@163.com >
* feat(function): expose avg_calc as an OSS scalar
Signed-off-by: discord9 <discord9@163.com >
* fix(function): borrow invalid AVG scalar argument type
Signed-off-by: discord9 <discord9@163.com >
* test(function): verify public AVG state SQL finalization
Signed-off-by: discord9 <discord9@163.com >
* fix(function): return canonical AVG1 state for empty window frames
DataFusion's plain-aggregate window executor bypasses the accumulator
and calls default_value() directly when a window frame contains no
rows. create_udaf's SimpleAggregateUDF derives default_value from the
return type, which yields SQL NULL for Binary output instead of the
canonical AVG1 empty state, so empty frames and frames over only NULL
inputs became observable differently (IS NULL, direct state saves,
state comparisons).
Register avg_state/avg_merge through a small AggregateUDFImpl (AvgUdaf)
that keeps the existing accumulator and declares the canonical AVG1
empty state as default_value, restoring the documented contract. Add a
unit test asserting default_value equals the empty accumulator's
evaluate() and an sqlness case covering the empty-frame window.
Signed-off-by: discord9 <discord9@outlook.com >
---------
Signed-off-by: discord9 <discord9@163.com >
Signed-off-by: discord9 <discord9@outlook.com >
Co-authored-by: discord9 <discord9@outlook.com >
2026-09-18 07:02:10 +00:00
discord9 and Ning Sun
94d7e2c7fc
feat!: upgrade DataFusion to 55 ( #8555 )
...
* feat!: upgrade DataFusion dependencies to 55
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* refactor: migrate DataFusion 55 APIs
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: preserve table function planning behavior
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: preserve PostgreSQL query compatibility
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: preserve distributed execution plan behavior
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: cover DataFusion 55 behavior regressions
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: update DataFusion 55 SQLness expectations
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: complete DataFusion 55 test API migration
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: address DataFusion 55 CI regressions
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: address remaining DataFusion 55 regressions
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: adapt latest base code to DataFusion 55
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: normalize environment-specific DataFusion 55 plans
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: align final DataFusion 55 expectations
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: isolate DataFusion 55 regression cases
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: preserve empty result schema in timestamp widening
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: preserve JSON source column order
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* chore: use released DataFusion 55 integrations
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: adapt latest execution plan mock to DataFusion 55
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: pin DataFusion recursive schema and date repairs
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix(promql): align dictionary temporality match keys
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: retain Greptime DataFusion fork behaviors on version 55
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: restore ordinary function error expectations
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: refresh distributed count compatibility plan
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix(query): adapt last-row cast hint to DataFusion 55
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: refresh instant last-row empty results for Arrow 59
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* style: simplify DataFusion expression visitor imports
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: restore sorting and PostgreSQL column-order assertions
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix(function): restore primitive numeric coercion signatures
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* refactor(function): share geo integer signature types
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: cover timestamp widening overflow boundaries
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: fix decimal coercion regression imports
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix(function): preserve scalar count_hash NULL state semantics
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: simplify decimal clamp case type inference
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: retain historical count_hash wrapper result
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: restore timestamp widening equality and IN pruning
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: carry upstream aggregate dynamic filter correctness fix
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: carry upstream null and predicate simplification fixes
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: restore baseline JSON ordering expectations
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: restore histogram JSON ordering expectations
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: refresh empty PromQL range result schemas
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: align native timestamp plan with DF55 decimal display
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: refresh native timestamp SQLness results for DF55
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: regenerate NULL sample empty result headers for DF55
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: use DF55 child replacement API in timestamp regressions
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: expose pushed scan dynamic filters to DF55 producers
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: encode string-backed PostgreSQL OID aliases in binary results
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: verify REGPROC binary and text over PostgreSQL protocol
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: register real PostgreSQL catalogs in server fixtures
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: complete DF55 expression inventories for custom query plans
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: correct RangeSelect expression fixture and column identities
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* ci: wait for Kafka WAL helper deployment rollout
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: update custom storage empty result headers
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: require exact row counts in scan statistics
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix: suppress deprecated partition_statistics warning in test
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
---------
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
Co-authored-by: Ning Sun <sunng@protonmail.com >
2026-09-15 11:42:38 +00:00
discord9
5d5f0d6d70
fix(query): prevent incomplete aggregate dynamic filtering ( #9102 )
...
* fix(query): prevent incomplete aggregate dynamic filtering
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(query): cover mixed expression and column maxima
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(query): pin upstream aggregate regression backport
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(query): assert aggregate filter behavior on datanode scans
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix(query): pin merged aggregate dynamic filter fix
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
---------
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-10 12:52:35 +00:00
discord9
7252ceb4bb
feat(flow): add generic delta merge for incremental aggregates ( #8938 )
...
* feat(function): add internal delta merge aggregates
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(function): cover delta merge aggregates in SQL
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* feat(function): add Welford delta merge aggregate
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
---------
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-01 12:27:54 +00:00
Lei, HUANG
c6b10bfbb9
feat(function): add mergeable stddev_pop state functions ( #8972 )
...
* feat(function): add Welford stddev functions
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
* test(function): cover merged Welford time windows
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
* refactor(function): use stddev_pop SQL names
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
* fix(function): make Welford arithmetic partition-stable
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
* fix(function): reject invalid singleton Welford states
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
* test(function): pin Welford state compatibility
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
* refactor(function): remove unreachable variance clamp
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
* fix(function): reject DISTINCT Welford aggregates
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
* test(compat): bound Welford downgrade targets
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
---------
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
2026-08-31 14:15:33 +00:00
Lei, HUANG
73c4140938
feat(function): expose uddsketch rank ( #8929 )
...
* feat(function): expose uddsketch rank
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
* test(function): cover uddsketch rank in sqlness
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
* fix(function): support legacy uddsketch rank
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
* docs(function): document uddsketch rank behavior
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
---------
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
2026-08-25 11:31:47 +00:00
jeremyhi
764c93bf43
perf(query): choose bounded CTE as hash join build side ( #8807 )
...
* fix(query): choose bounded CTE as hash join build side
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* perf(query): remove join estimate cap
* test(compat): accept repartition in analyze plan
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
---------
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
2026-08-13 10:51:53 +00:00
b2074e3863
chore: upgrade DataFusion family, again ( #7578 )
...
* chore: upgrade DataFusion family
Signed-off-by: luofucong <luofc@foxmail.com >
* chore: switch to released version of datafusion-pg-catalog
---------
Signed-off-by: luofucong <luofc@foxmail.com >
Co-authored-by: Ning Sun <sunning@greptime.com >
Co-authored-by: Ning Sun <sunng@protonmail.com >
2026-03-03 07:36:39 +00:00
LFC
e64c31e59a
chore: upgrade DataFusion family ( #7558 )
...
* chore: upgrade DataFusion family
Signed-off-by: luofucong <luofc@foxmail.com >
* use main proto
Signed-off-by: luofucong <luofc@foxmail.com >
* fix ci
Signed-off-by: luofucong <luofc@foxmail.com >
---------
Signed-off-by: luofucong <luofc@foxmail.com >
2026-01-14 14:02:31 +00:00
Ruihang Xia
f2288a86b0
perf: treat DISTINCT as comm/part-comm ( #7348 )
...
* perf: treat DISTINCT as comm/part-comm
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* sqlness tests
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2025-12-04 11:14:00 +00:00
discord9
68247fc9b1
fix: count_state use stat to eval&predicate w/out region ( #7116 )
...
* fix: count_state use stat to eval
Signed-off-by: discord9 <discord9@163.com >
* cleanup
Signed-off-by: discord9 <discord9@163.com >
* fix: use predicate without region
Signed-off-by: discord9 <discord9@163.com >
* test: diverge standalone/dist impl
Signed-off-by: discord9 <discord9@163.com >
---------
Signed-off-by: discord9 <discord9@163.com >
2025-10-27 02:14:45 +00:00
LFC and Ning Sun
2f637a262e
chore: update datafusion to 50 ( #7076 )
...
* chore: update datafusion to 50
Signed-off-by: luofucong <luofc@foxmail.com >
* fix ci
Signed-off-by: luofucong <luofc@foxmail.com >
* fix: update datafusion_pg_catalog import
* chore: fix toml format
* chore: fix toml format again
* fix nextest
Signed-off-by: luofucong <luofc@foxmail.com >
* fix sqlness
Signed-off-by: luofucong <luofc@foxmail.com >
* chore: switch datafusion-orc to upstream tag
* fix sqlness
Signed-off-by: luofucong <luofc@foxmail.com >
* resolve PR comments
Signed-off-by: luofucong <luofc@foxmail.com >
---------
Signed-off-by: luofucong <luofc@foxmail.com >
Co-authored-by: Ning Sun <sunning@greptime.com >
2025-10-23 07:18:36 +00:00
dennis zhuang and Copilot
8a2371a05c
feat: supports large string ( #7097 )
...
* feat: supports large string
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* chore: add doc for extract_string_vector_values
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* chore: refactor by cr comments
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* chore: changes by cr comments
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* refactor: extract_string_vector_values
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* feat: remove large string type and refactor string vector
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* chore: revert some changes
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* feat: adds large string type
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* chore: impl default for StringSizeType
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* fix: tests and test compatibility
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* test: update sqlness tests
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* chore: remove panic
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
---------
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-10-17 01:46:11 +00:00
dennis zhuang
c6e5552f05
test: migrate aggregation tests from duckdb, part4 ( #6965 )
...
* test: migrate aggregation tests from duckdb, part4
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* fix: tests
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* fix: rename tests
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* fix: comments
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* chore: ignore zero weights test
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* chore: remove duplicated sql
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
---------
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
2025-09-25 08:00:17 +00:00
LFC
f9d2a89a0c
chore: update datafusion family ( #6675 )
...
* chore: update datafusion family
Signed-off-by: luofucong <luofc@foxmail.com >
* fix ci
Signed-off-by: luofucong <luofc@foxmail.com >
* use official otel-arrow-rust
Signed-off-by: luofucong <luofc@foxmail.com >
* rebase
Signed-off-by: luofucong <luofc@foxmail.com >
* use the official orc-rust
Signed-off-by: luofucong <luofc@foxmail.com >
* resolve PR comments
Signed-off-by: luofucong <luofc@foxmail.com >
* remove the empty lines
Signed-off-by: luofucong <luofc@foxmail.com >
* try following PR comments
Signed-off-by: luofucong <luofc@foxmail.com >
---------
Signed-off-by: luofucong <luofc@foxmail.com >
2025-08-15 12:41:49 +00:00
discord9
875207d26c
feat: register all aggregate function to auto step aggr fn ( #6596 )
...
* feat: support generic aggr push down
Signed-off-by: discord9 <discord9@163.com >
* typo
Signed-off-by: discord9 <discord9@163.com >
* fix: type ck in merge wrapper
Signed-off-by: discord9 <discord9@163.com >
* test: update sqlness
Signed-off-by: discord9 <discord9@163.com >
* feat: support all registried aggr func
Signed-off-by: discord9 <discord9@163.com >
* chore: per review
Signed-off-by: discord9 <discord9@163.com >
* chore: per review
Signed-off-by: discord9 <discord9@163.com >
---------
Signed-off-by: discord9 <discord9@163.com >
2025-08-05 11:37:45 +00:00
discord9
9d08f2532a
feat: dist auto step aggr pushdown ( #6268 )
...
* wip: steppable aggr fn
Signed-off-by: discord9 <discord9@163.com >
* poc: step aggr query
Signed-off-by: discord9 <discord9@163.com >
* feat: mvp poc stuff
Signed-off-by: discord9 <discord9@163.com >
* test: sqlness
Signed-off-by: discord9 <discord9@163.com >
* chore: import missing
Signed-off-by: discord9 <discord9@163.com >
* feat: support first/last_value
Signed-off-by: discord9 <discord9@163.com >
* fix: check also include first/last value
Signed-off-by: discord9 <discord9@163.com >
* chore: clean up after rebase
Signed-off-by: discord9 <discord9@163.com >
* feat: optimize yes!
Signed-off-by: discord9 <discord9@163.com >
* fix: alias qualifled
Signed-off-by: discord9 <discord9@163.com >
* test: more testcases
Signed-off-by: discord9 <discord9@163.com >
* chore: qualified column
Signed-off-by: discord9 <discord9@163.com >
* chore: per review
Signed-off-by: discord9 <discord9@163.com >
* fix: case when can push down
Signed-off-by: discord9 <discord9@163.com >
* feat: udd/hll_merge is also the same
Signed-off-by: discord9 <discord9@163.com >
* fix: udd/hll_merge args
Signed-off-by: discord9 <discord9@163.com >
* tests: fix sqlness
Signed-off-by: discord9 <discord9@163.com >
* tests: fix sqlness
Signed-off-by: discord9 <discord9@163.com >
* fix: udd/hll merge steppable
Signed-off-by: discord9 <discord9@163.com >
* chore: per review
Signed-off-by: discord9 <discord9@163.com >
* test: REDACTED
Signed-off-by: discord9 <discord9@163.com >
* refactor: per review
Signed-off-by: discord9 <discord9@163.com >
* refactor: more formal transform action
Signed-off-by: discord9 <discord9@163.com >
* feat: support modify child plan too
Signed-off-by: discord9 <discord9@163.com >
---------
Signed-off-by: discord9 <discord9@163.com >
2025-06-20 07:18:55 +00:00
Ruihang Xia
7468a8ab2a
feat: organize EXPLAIN ANALYZE VERBOSE's output in JSON format ( #6308 )
...
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2025-06-12 09:55:53 +00:00
Ruihang Xia
bbb6f8685e
feat: implement commutativity rule for prom-related plans ( #5875 )
...
* feat: implement commutativity rule for prom-related plans
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix range manipulate deserializer
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* blocklist in commutativity rule
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* change dictionary type
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* handle partition and ordering
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippy
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update tests
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* add rate, increase and delta
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update sqlness result
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* regexp_replace uses empty string instead of null value
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update sqlness result
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update sqlness result
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update sqlness result again
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2025-05-13 09:06:25 +00:00
discord9
21044c7339
feat: uddsketch_merge udaf ( #5992 )
2025-04-27 12:43:21 +00:00
Yingwen
95d0c650ec
feat: pushdown select distinct in some cases ( #5847 )
...
* feat: pushdown select distinct
* test: add sqlness test
* test: fix analyzer test
2025-04-09 02:39:04 +00:00
Yingwen
21a209f7ba
fix: skip replacing exprs of the DistinctOn node ( #5823 )
...
* fix: handle distinct on specially
* chore: update comment
2025-04-07 08:59:40 +00:00
Ruihang Xia
7bd108e2be
feat: impl hll_state, hll_merge and hll_calc for incremental distinct counting ( #5579 )
...
* basic impl
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* more tests
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* sqlness test
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippy
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update with more test and logs
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* impl
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* impl merge fn
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* rename function names
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2025-02-24 19:07:37 +00:00
Ruihang Xia
7981c06989
feat: implement uddsketch function to calculate percentile ( #5574 )
...
* basic impl
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* more tests
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* sqlness test
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippy
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update with more test and logs
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2025-02-20 18:59:20 +00:00
35b635f639
feat!: Bump datafusion, prost, hyper, tonic, tower, axum ( #5417 )
...
* change dep
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* feat: adapt to arrow's interval array
* chore: fix compile errors in datatypes crate
* chore: fix api crate compiler errors
* chore: fix compiler errors in common-grpc
* chore: fix common-datasource errors
* chore: fix deprecated code in common-datasource
* fix promql and physical plan related
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* wip: upgrading network deps
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* block on updating `sqlparser`
* upgrade sqlparser
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* adapt new df's trait requirements
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* chore: fix compiler errors in mito2
* chore: fix common-function crate errors
* chore: fix catalog errors
* change import path
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* chore: fix some errors in query crate
* chore: fix some errors in query crate
* aggr expr and some other tiny fixes
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* chore: fix expr related errors in query crate
* chore: fix query serializer and admin command
* chore: fix grpc services
* feat: axum serve
* chore: fix http server
* remove handle_error handler
* refactor timeout layer
* serve axum
* chore: fix flow aggr functions
* chore: fix flow
* feat: fix errors in meta-srv
* boxed()
* use TokioIo
* feat!: Remove script crate and python feature (#5321 )
* feat: exclude script crate
* chore: simplify feature
* feat: remove the script crate
* chore: remove python feature and some comments
* chore: fix warning
* chore: fix servers tests compiler errors
* feat: fix tests-integration errors
* chore: fix unused
* test: fix catalog test
* chore: fix compiler errors for crates using common-meta
testing feature is enabled when check with --workspace
* test: use display for logical plan test
* test: implement rewrite for ScanHintRule
* fix: http server build panic
* test: fix mito test
* fix: sql parser type alias error
* test: fix TestClient not listen
* test: some flow tests
* test(flow): more fix
* fix: test_otlp_logs
* test: fix promql test that using deprecated method fun()
* fix: sql type replace supports Int8 ~ Int64, UInt8 ~ UInt64
* test: fix infer schema test case
* test: fix tests related to plan display
* chore: fix last flow test
* test: fix function format related assertion
* test: use larger port range for tests
* fix: test_otlp_traces
* fix: test_otlp_metrics
* fix range query and dist plan
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix: flow handle distinct use deprecated field
* fix: can't pass Join plan expressions to LogicalPlan::with_new_exprs
* test: fix deserialize test
* test: reduce split key case num
* tests: lower case aggr func name
* test: fix some sqlness tests
* tests: more sqlness fix
* tests: fixed sqlness test
* commit non-bug changes
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix: make our udf correct
* fix: implement empty methods of ContextProvider for DfContextProviderAdapter
* test: update sqlness test result
* chore: remove unused
* fix: provide alias name for AggregateExprBuilder in range plan
* test: update range query result
* fix: implement missing ContextProvider methods for DfContextProviderAdapter
* test: update timestamps, cte result
* fix: supports empty projection in mito
* test: update comment for cte test
* fix: support projection for numbers
* test: update test cases after projection fix
* fix: fix range select first_value/last_value
* fix: handle CAST and time index conflict
* fix: handle order by correctly in range first_value/last_value
* test: update sqlness result
* test: update view test result
* test: update decimal test
wait for https://github.com/apache/datafusion/pull/14126 to fix this
* feat: remove redundant physical optimization
todo(ruihang): Check if we can remove this.
* test: update sqlness test result
* chore: range select default sort use nulls_first = false
* test: update filter push down test result
* test: comment deciaml test to avoid different panic message
* test: update some distributed test result
* test: update test for distributed count and filter push down
* test: update subqueries test
* fix: SessionState may overwrite our UDFs
* chore: fix compiler errors after merging main
* fix: fix elasticsearch and dashboard router panic
* chore: fix common-functions tests
* chore: update sqlness result
* test: fix id keyword and update sqlness result
* test: fix flow_null test
* fix: enlarge thread size in debug mode to avoid overflow
* chore: fix warnings in common-function
* chore: fix warning in flow
* chore: fix warnings in query crate
* chore: remove unused warnings
* chore: fix deprecated warnings for parquet
* chore: fix deprecated warning in servers crate
* style: fix clippy
* test: enlarge mito cache tttl test ttl time
* chore: fix typo
* style: fmt toml
* refactor: reimplement PartialOrd for RangeSelect
* chore: remove script crate files introduced by merge
* fix: return error if sql option is not kv
* chore: do not use ..default::default()
* chore: per review
* chore: update error message in BuildAdminFunctionArgsSnafu
Co-authored-by: jeremyhi <jiachun_feng@proton.me >
* refactor: typed precision
* update sqlness view case
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* chore: flow per review
* chore: add example in comment
* chore: warn if parquet stats of timestamp is not INT64
* style: add a newline before derive to make the comment more clear
* test: update sqlness result
* fix: flow from substrait
* chore: change update_range_context log to debug level
* chore: move axum-extra axum-macros to workspace
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Co-authored-by: Ruihang Xia <waynestxia@gmail.com >
Co-authored-by: luofucong <luofc@foxmail.com >
Co-authored-by: discord9 <discord9@163.com >
Co-authored-by: shuiyisong <xixing.sys@gmail.com >
Co-authored-by: jeremyhi <jiachun_feng@proton.me >
2025-01-23 06:15:40 +00:00
Yingwen and Ruihang Xia
3e17c09e45
feat: skip caching uncompressed pages if they are large ( #4705 )
...
* feat: cache each uncompressed page
* chore: remove unused function
* chore: log
* chore: log
* chore: row group pages cache kv
* feat: also support row group level cache
* chore: fix range count
* feat: don't cache compressed page for row group cache
* feat: use function to get part
* chore: log whether scan is from compaction
* chore: avoid get column
* feat: add timer metrics
* chore: Revert "feat: add timer metrics"
This reverts commit 4618f57fa2ba13b1e1a8dec83afd01c00ae4c867.
* feat: don't cache individual uncompressed page
* feat: append in row group level under append mode
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* chore: fetch pages cost
* perf: yield
* Update src/mito2/src/sst/parquet/row_group.rs
* refactor: cache key
* feat: print file num and row groups num in explain
* test: update sqlness test
* chore: Update src/mito2/src/sst/parquet/page_reader.rs
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Co-authored-by: Ruihang Xia <waynestxia@gmail.com >
2024-09-10 11:52:16 +00:00
Ruihang Xia
d2d62e0c6f
fix: unconditional statistics ( #4694 )
...
* fix: unconditional statistics
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* add more sqlness case
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2024-09-07 04:28:11 +00:00
Yingwen and dennis zhuang
f382a7695f
perf: reduce lock scope and improve log ( #4453 )
...
* feat: refine logs for scan
* feat: improve build parts and unordered scan metrics
* feat: change to debug log
* fix: release lock before reading part
* test: replace region id
* test: fix sqlness
* chore: add todo
Co-authored-by: dennis zhuang <killme2008@gmail.com >
---------
Co-authored-by: dennis zhuang <killme2008@gmail.com >
2024-07-31 04:07:34 +00:00
Ruihang Xia
2d992f4f12
fix: check_partition uses unqualified name ( #4452 )
...
* fix: check_partition uses unqualified name
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update sqlness result
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2024-07-30 11:28:28 +00:00
Ruihang Xia and Jeremyhi
c2218f8be8
build(deps): bump datafusion 20240528 ( #4061 )
...
* build(deps): bump datafusion 20240528
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* another update
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update expected sqlness result
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix first/last value
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* reformat comment
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix remaining errors
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* revert toml format
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix pyo3 feature
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* remove dead code
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* Apply suggestions from code review
Co-authored-by: Jeremyhi <jiachun_feng@proton.me >
* format file
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Co-authored-by: Jeremyhi <jiachun_feng@proton.me >
2024-06-01 14:03:00 +00:00
Ruihang Xia
e6eca8ca0c
fix: count_wildcard_to_time_index_rule doesn't handle table reference properly ( #3847 )
...
* validate time index col
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* use TableReference instead
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* add more tests
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2024-04-30 15:59:56 +00:00
314f2704d4
build(deps): update datafusion to latest and arrow to 51.0 ( #3661 )
...
* chore: update datafusion
* update sqlness case of time.sql
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix: adjust range query partition
* fix: hisogram incorrect result
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix: ignore filter pushdown temporarily
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix: update limit sqlness result
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix: histogram with wrong distribution
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix: update negative ordinal sqlness case
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* feat: bump df to cd7a00b
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* resolve conflicts
* ignore test_range_filter
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix promql exec panic
* fix "select count(*)" exec error
* re-enable the "test_range_filter" test since the filter push down seems not necessary to be removed
* fix: range query schema error
* update sqlness results
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* resolve conflicts
* update datafusion, again
* fix pyo3 compile error, and update some sqlness results
* update decimal sqlness cases
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix: promql literal
* fix udaf tests
* fix filter pushdown sqlness tests
* fix?: test_cast
* fix: rspy test fail due to datafusion `sin` signature change
* rebase main to see if there are any failed tests
* debug ci
* debug ci
* debug ci
* enforce input partition
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* debug ci
* fix ci
* fix ci
* debug ci
* debug ci
* debug ci
* fix sqlness
* feat: do not return error while creating a filter
* chore: remove array from error
* chore: replace todo with unimplemented
* Update src/flow/clippy.toml
Co-authored-by: Yingwen <realevenyag@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Co-authored-by: Ruihang Xia <waynestxia@gmail.com >
Co-authored-by: WUJingdi <taylor-lagrange@qq.com >
Co-authored-by: discord9 <discord9@163.com >
Co-authored-by: evenyag <realevenyag@gmail.com >
Co-authored-by: tison <wander4096@gmail.com >
2024-04-18 12:07:18 +00:00
Ruihang Xia
56fc77e573
fix: add missing error display message ( #2791 )
...
* fix: add missing error display message
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update sqlness result
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-11-23 02:59:49 +00:00
JeremyHi
52ac093110
fix: drop table 0 rows affected ( #2515 )
2023-09-28 06:21:18 +00:00
dennis zhuang
db89235474
feat: only allow timestamp type as time index ( #2281 )
...
* feat: only allow timestamp data type as time index
* test: update sqltest cases, todo: need some fixes
* fix: sqlness tests
* fix: forgot adding back cte test
* chore: style
2023-09-12 07:57:15 -05:00
Ruihang Xia and Lei, HUANG
4c693799d8
fix: bugs related to merge scan ( #2118 )
...
* fix: prevent optimize merge scan, mark distinct as unsupported
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix some other problems
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix unit tests
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* remove deadcode
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* add some comments
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* Update src/query/src/optimizer/type_conversion.rs
Co-authored-by: Lei, HUANG <6406592+v0y4g3r@users.noreply.github.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Co-authored-by: Lei, HUANG <6406592+v0y4g3r@users.noreply.github.com >
2023-08-08 11:42:57 +00:00
Ruihang Xia
44f3ed2f74
chore(deps): bump datafusion to the latest commit ( #1967 )
...
* bump deps
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix compile except pyo3 backend
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix promql-parser metric name matcher
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix tests
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix pyarrow convert
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix pyo3 compiling
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix tests
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippy
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* remove deadcode
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update stream adapter display format
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix physical optimizer rule
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-08-01 02:10:49 +00:00
Ruihang Xia
bee8323bae
chore: bump sqlness to 0.5.0 ( #1877 )
...
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-07-04 19:49:12 +08:00
Ruihang Xia
ac3666b841
chore(deps): bump arrow/parquet to 40.0, datafuson to the latest HEAD ( #1677 )
...
* fix compile error
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* remove deprecated substrait
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippy
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update deps
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* downgrade opendal to 0.33.1
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* change finish's impl
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update test results
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* ignore failing cases
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-05-31 18:55:02 +08:00
Ruihang Xia and Lei, HUANG
939a51aea9
feat: adopt REPLACE interceptor and quit all processes on exit ( #1478 )
...
* bump version and update test
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* quit all processes on drop
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* Update tests/runner/src/env.rs
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Co-authored-by: Lei, HUANG <6406592+v0y4g3r@users.noreply.github.com >
2023-04-27 07:16:41 +00:00
LFC
0fc816fb0c
test: add "numbers" table in distributed mode ( #1374 )
2023-04-14 11:52:04 +08:00
LFC
11d45e2918
refactor: upgrade DataFusion, Arrow and Sqlparser ( #1074 )
...
* refactor: upgrade DataFusion, Arrow and Sqlparser
* fix: resolve PR comments
2023-02-27 22:20:08 +08:00
LFC
9ad6c45913
test: Sqlness tests for distribute mode ( #979 )
...
* test: Sqlness tests for distribute mode
* ci
* fix: resolve PR comments
* fix: resolve PR comments
2023-02-14 10:24:09 +08:00