discord9
355527ae80
feat(flow): merge intermediate aggregate states ( #9168 )
...
I hereby agree to the terms of the [GreptimeDB
CLA](https://github.com/GreptimeTeam/.github/blob/main/CLA.md ).
## Refer to a related PR or issue link (optional)
Third PR in the stack extracted from #9035 : #9161 → #9165 → this PR →
#9171 . Based on `split/9035-exact-reads`; the diff contains only
aggregate-state merging.
## What's changed and what's your intention?
The incremental flow path already joins the sink state for ordinary
scalar aggregates. Extend that existing mechanism to aggregate families
that store intermediate state, so supported incremental flows do not
need a full snapshot only because the aggregate state cannot be merged.
- Merge existing sink state with the newly computed delta for HLL,
`stddev_state`, and UDDSketch, in addition to the existing scalar
aggregate path.
- Preserve input/output aliases and aggregate parameters when
reconstructing the final result, including repeated aliases for the same
aggregate.
- Correct NULL group-key matching in the state join and keep NULL-only
source results visible.
- Keep the existing full-snapshot/base-repair recovery for uncertain
writes or unsupported plans; this PR does not weaken that fallback.
Focused regressions cover populated old/new states, sink misses, NULL
group keys, repeated aliases, parameters, schema shape, and state-family
rejection paths. Rust formatting, compilation, and Flow unit tests
passed on the pre-stack base; CI is running on the current stacked head.
## PR Checklist
- [x] I have written the necessary rustdoc comments.
- [x] I have added the necessary unit tests and integration tests.
- [ ] This PR requires documentation updates.
- [x] API changes are backward compatible.
- [x] Schema or data changes are backward compatible.
2026-09-17 13:00:38 +08:00
discord9
9765d72b67
Merge remote-tracking branch 'upstream/main' into split/9035-state-merge
2026-09-16 22:42:43 +08:00
discord9
3942d60042
chore(ci): update compatibility test window to v1.2.1 ( #9193 )
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 13:57:45 +00:00
discord9
f5428f8a6a
test: regenerate expired TLS certificates for integration fixtures ( #9196 )
...
* test: regenerate expired TLS certificates for integration fixtures
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: restore root.srl serial file for TLS fixtures
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* chore(ci): update compatibility test window to v1.2.1
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
Signed-off-by: WenyXu <wenymedia@gmail.com >
* test: add proper TLS extensions to regenerated integration certificates
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
---------
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
Signed-off-by: WenyXu <wenymedia@gmail.com >
2026-09-16 13:48:30 +00:00
discord9
666ca8be55
style: format flow batching task regression calls
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 19:48:30 +08:00
discord9
afad6f03db
test: pass query engine to flow batching task regression calls
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 19:25:27 +08:00
discord9
346bbaba0e
Merge remote-tracking branch 'upstream/main' into split/9035-state-merge
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
# Conflicts:
# src/flow/src/batching_mode/task/test.rs
2026-09-16 18:55:44 +08:00
Yingwen
9d6c2f6c58
fix(ci): rerun semantic PR checks after pushes ( #9190 )
...
Signed-off-by: evenyag <realevenyag@gmail.com >
2026-09-16 10:19:38 +00:00
discord9
0528971aa1
test: cover aggregate state merge through the full flow path
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 18:15:23 +08:00
discord9
b19a943bc7
test: pass query engine to empty exact delta regression
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 18:13:01 +08:00
Weny Xu
e0915a8380
refactor: reuse common batching components in Prom ingestion ( #9114 )
...
* refactor: compose Prom ingestion with common batcher components
Signed-off-by: WenyXu <wenymedia@gmail.com >
* refactor: share bulk insert IPC encoding
Signed-off-by: WenyXu <wenymedia@gmail.com >
* refactor: centralize batcher worker channel creation
Signed-off-by: WenyXu <wenymedia@gmail.com >
* refactor: share timestamp extraction for batched writes
Signed-off-by: WenyXu <wenymedia@gmail.com >
* refactor: preserve sharded batcher worker lookup
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: align batcher worker lookup and configuration validation
Signed-off-by: WenyXu <wenymedia@gmail.com >
* refactor: validate batcher limits inside fallible constructors
Signed-off-by: WenyXu <wenymedia@gmail.com >
---------
Signed-off-by: WenyXu <wenymedia@gmail.com >
2026-09-16 09:21:49 +00:00
discord9
c86da03f03
Merge branch 'split/9035-exact-reads' into split/9035-state-merge
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 16:58:47 +08:00
discord9
9e9ca29fa8
test: prove executed empty exact deltas keep incremental mode
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 16:58:41 +08:00
discord9
d185a8bf76
feat: use exact sequence ranges for incremental Flow reads ( #9165 )
...
* fix: preserve structured query errors through distributed execution
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* feat: use exact sequence ranges for capable incremental flow sources
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: update SQL expectations for preserved query error codes
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* style: format exact sequence recovery tests
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: exercise dispatched exact delta failure recovery
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: record flushed exact sequence flow results
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
---------
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 08:26:58 +00:00
Dhruv Vaishnav
7e2a75f771
feat: allow re-enabling WAL after disabling ( #9130 )
...
* feat: allow re-enabling WAL after disabling
Signed-off-by: dhruvxvaishnav <dhruvvaishnav687@gmail.com >
* test: regenerate skip_wal sqlness result
The previous commit changed tests/cases/standalone/common/skip_wal.sql without
regenerating the matching .result, so every Sqlness suite failed on the
mismatch. tests/cases/distributed/common is a symlink to standalone/common, so
the single stale file accounted for all five failing variants.
Regenerated from a real run. The recorded output now covers the cases the .sql
added:
* A table created with skip_wal = 'true' has no real WAL provider, so enabling
WAL is refused with Unsupported rather than the previous InvalidArguments.
* A RaftEngine-backed table accepts the true -> false transition, and repeating
it is a no-op.
* SHOW CREATE TABLE reports skip_wal = 'false' after the transition, including
after a restart.
* A row written while WAL was skipped is absent after restart, while a row
written after WAL was restored survives.
Verified locally with nothing else running on the machine: sqlness skip_wal
passes in both the standalone and distributed environments, and the regenerated
file is byte-identical to the output of an independent earlier run.
Signed-off-by: dhruvxvaishnav <dhruvvaishnav687@gmail.com >
* test: strengthen skip_wal provider coverage
Signed-off-by: dhruvxvaishnav <dhruvvaishnav687@gmail.com >
* Fix WAL provider handling during re-enable
Signed-off-by: dhruvxvaishnav <dhruvvaishnav687@gmail.com >
* Refactor WAL provider check
Signed-off-by: dhruvxvaishnav <dhruvvaishnav687@gmail.com >
---------
Signed-off-by: dhruvxvaishnav <dhruvvaishnav687@gmail.com >
2026-09-16 07:52:59 +00:00
discord9
5e57b00a95
fix(promql): skip empty batches in SeriesDivide stream ( #9178 )
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 07:37:15 +00:00
discord9
55ebb1df03
Merge branch 'split/9035-exact-reads' into split/9035-state-merge
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 15:14:27 +08:00
discord9
b0be39fadc
merge: adapt exact read tests to latest main
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 15:14:10 +08:00
discord9
8af3a04ed7
fix: preserve structured query errors through distributed execution ( #9161 )
...
* fix: preserve structured query errors through distributed execution
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: update SQL expectations for preserved query error codes
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
---------
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 06:28:15 +00:00
Lei, HUANG
7aacc947b3
perf(mito2): lazily extract sparse primary key index values ( #9176 )
...
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
2026-09-16 06:15:52 +00:00
discord9
ab3071ef23
merge: adapt state merge tests to DataFusion 55
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 13:08:44 +08:00
discord9
3a2a084d0d
Merge commit 'fb46762431d' into split/9035-exact-reads
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 13:08:08 +08:00
discord9
fb46762431
merge: adapt structured errors to DataFusion 55
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-16 12:45:10 +08:00
fys
1c01b541ec
refactor(json2): JSON2 parquet projection and schema alignment ( #9137 )
...
* refactor(mito2): make JSON schema alignment targets explicit
Signed-off-by: fys <fengys1996@gmail.com >
* fix: cr
* fix: cargo fmt
---------
Signed-off-by: fys <fengys1996@gmail.com >
2026-09-16 04:44:32 +00:00
Lanqing Yang
67a403757d
Perf/http sql limit materialization ( #9148 )
...
perf(servers): limit HTTP SQL rows before materialization
Signed-off-by: lyang24 <lanqingy93@gmail.com >
2026-09-16 03:46:11 +00:00
jeremyhi
d7ada1761d
feat: export logical tables from Metric physical scans ( #9159 )
...
* feat: add physical Metric table exporter
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* fix: drain Metric export writes before cancellation cleanup
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* perf: construct Metric export error context lazily
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* refactor: name the logical table export entry point
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* refactor: share Parquet writer for logical table exports
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* fix: preserve Parquet destinations and cancellation boundaries
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* refactor: clarify logical table export field names
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* refactor: clarify logical table export helper responsibilities
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* fix: validate logical export membership by table ID
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* test: simplify logical table export coverage and strengthen assertions
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
---------
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
2026-09-16 02:48:47 +00:00
discord9
1a59df7f1d
test: pass query engine to state merge execution tests
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-15 20:52:16 +08:00
discord9
53d41189ec
Merge branch 'split/9035-exact-reads' into split/9035-state-merge
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-15 20:17:30 +08:00
discord9
45057abdc6
test: record flushed exact sequence flow results
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-15 20:17:21 +08: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
52f74301e1
Merge branch 'split/9035-exact-reads' into split/9035-state-merge
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-15 19:42:21 +08:00
discord9
ae5436334b
test: exercise dispatched exact delta failure recovery
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-15 19:41:53 +08:00
jeremyhi
c65e8d0962
fix: register region migration procedures before returning IDs ( #9163 )
...
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
2026-09-15 10:33:35 +00:00
LFC
9f6a79da30
fix: support native JSON2 row inserts over gRPC ( #9145 )
...
* fix: support native JSON2 row inserts over gRPC
Signed-off-by: luofucong <luofc@foxmail.com >
* test: cover unknown JSON2 schema compatibility
Signed-off-by: luofucong <luofc@foxmail.com >
---------
Signed-off-by: luofucong <luofc@foxmail.com >
2026-09-15 10:19:48 +00:00
discord9
2dabb367f1
Merge branch 'split/9035-exact-reads' into split/9035-state-merge
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-15 18:06:24 +08:00
discord9
0da1354839
feat: merge aggregate states in incremental flows
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-15 18:06:24 +08:00
discord9
da7e31842e
perf(servers): avoid rebuilding JSON records payload ( #9160 )
...
* perf(servers): avoid rebuilding JSON records payload
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test: trim json response optimization unit tests
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* perf: move bulk response items into json payload
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
---------
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-15 10:02:56 +00:00
discord9
d76ba6cb1e
style: format exact sequence recovery tests
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-15 17:46:11 +08:00
discord9
ef7dcb04e4
Merge branch 'split/9035-non-flow' into split/9035-exact-reads
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-15 17:45:10 +08:00
discord9
0aef4d02ba
test: update SQL expectations for preserved query error codes
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-15 17:44:55 +08:00
discord9
c9c86eba44
feat: use exact sequence ranges for capable incremental flow sources
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-15 17:31:02 +08:00
Lei, HUANG
6f10c0cd22
perf(metric-engine): avoid deep-cloning physical column metadata in verify_rows ( #9162 )
...
verify_rows deep-cloned the whole HashMap<String, ColumnMetadata> of the
physical region on every put batch. On a datanode serving wide physical
tables this showed up as ~18% of total CPU in a CPU flame graph (HashMap
clone + RawTable/ColumnMetadata drop).
Wrap physical_columns in an Arc inside PhysicalRegionState and take a
cheap Arc snapshot instead; add_physical_columns now goes through
Arc::make_mut.
Signed-off-by: Lei, HUANG <mrsatangel@gmail.com >
2026-09-15 09:21:53 +00:00
dennis zhuang
7cbd20a053
fix(mysql): strip leading comments before the federated statement filter ( #9156 )
...
* fix(mysql): strip leading comments before the federated statement filter
JDBC clients prefix every statement with a comment. DataGrip sends
`/* ApplicationName=DataGrip <version> */` in front of each one, and every
pattern in the federated filter is anchored with `^`, so the prefix makes all
of them miss.
Two failures follow. `SET TRANSACTION READ WRITE` reaches the SQL parser and is
rejected. Worse, the DBeaver-specific entries such as
`^(/\* ApplicationName=(.*)SELECT @@(.*))` do match DataGrip's prefix, so
`SELECT @@GLOBAL.event_scheduler` and `SHOW VARIABLES LIKE ...` are absorbed
into a zero-column output, which the MySQL writer sends as an OK packet. The
JDBC driver reports that the statement returned no cursor.
Strip leading whitespace and comments before matching, and drop the
ApplicationName-specific entries the stripping makes redundant. The three that
had no unprefixed counterpart (`SHOW PLUGINS`, `SHOW ENGINES`, `SHOW @@...`)
keep their behaviour as plain patterns.
Also covers gaps found while probing the same path:
- `BEGIN` is absorbed like `START TRANSACTION`/`COMMIT`/`ROLLBACK`.
- `SHOW [GLOBAL|SESSION|LOCAL] VARIABLES|STATUS` parses; the scope is ignored
because GreptimeDB keeps no global/session split.
- `USER()`, `CURRENT_USER()`, `SYSTEM_USER()` and `SCHEMA()` are registered.
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
* fix(mysql): keep executable comments, reject multi-statement absorption
Review follow-up on the comment stripping, plus the remaining MySQL
compatibility gaps from #9155 .
`/*!...*/` is an executable comment: mysqldump emits its initialization as
`/*!40101 SET NAMES ... */`, and the patterns match those verbatim. Stripping
it left an empty statement, so nothing matched and the original SQL reached the
parser, which rejects `SetNames` and `MultipleAssignments`. Leave executable
comments in place.
Absorbing a request also has to stop at a statement boundary, because every
pattern ends in `(.*)`. `BEGIN; INSERT INTO t VALUES (1)` used to fail on the
unsupported `BEGIN`; once `BEGIN` became absorbable the whole request would
report success and write nothing. A request is now scanned for a second
statement and handed to the query engine if it has one. The scan skips plain
comments and string literals so a `;` inside either is not a boundary, and
treats a `/*!...*/` that is not the request itself as a statement, since it
carries SQL.
`check()` now dispatches on the leading statement keyword, so INSERT, UPDATE,
CREATE and ordinary SELECTs run no regex at all — this replaces the narrower
hand-rolled INSERT shortcut. The statement scan runs only for a request the
patterns already matched, which is always a short one.
New compatibility surface:
- `SELECT CURRENT_USER|SESSION_USER|SYSTEM_USER|USER` without parentheses, and
`SELECT @var`, are answered here rather than in the parser. Both are anchored
to the whole statement, so `SELECT user FROM t` still reads the column.
- `information_schema.plugins`, `user_privileges` and `processlist` are
registered as empty tables, like the other MySQL-shape tables around them.
Sessions are reported through `information_schema.process_list` and
`SHOW PROCESSLIST`; `processlist` carries the column shape only.
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
---------
Signed-off-by: Dennis Zhuang <killme2008@gmail.com >
2026-09-15 08:59:30 +00:00
Yingwen
7c85798ad0
feat(mito2): reconcile series indexes in background ( #9086 )
...
* feat(mito2): reconcile series indexes in background
Signed-off-by: evenyag <realevenyag@gmail.com >
* fix(mito2): clean up series indexes published during region drop
Signed-off-by: evenyag <realevenyag@gmail.com >
* fix(config): align series index examples with upstream enable flag
Signed-off-by: evenyag <realevenyag@gmail.com >
* fix(mito2): run series index tasks on compaction runtime
Signed-off-by: evenyag <realevenyag@gmail.com >
---------
Signed-off-by: evenyag <realevenyag@gmail.com >
2026-09-15 08:44:18 +00:00
Weny Xu
d9b97796a6
fix: preserve count correctness after repartition ( #9154 )
...
* fix: preserve count correctness after repartition
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: restore full predicate guard for count statistics
Signed-off-by: WenyXu <wenymedia@gmail.com >
* test: update count plans for full predicate guard
Signed-off-by: WenyXu <wenymedia@gmail.com >
* fix: preserve count statistics for safe partition scans
Signed-off-by: WenyXu <wenymedia@gmail.com >
* test: retain repartition home guard and cover staging flush
Signed-off-by: WenyXu <wenymedia@gmail.com >
---------
Signed-off-by: WenyXu <wenymedia@gmail.com >
2026-09-15 08:26:57 +00:00
discord9
8a19410be5
fix: preserve structured query errors through distributed execution
...
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-15 16:20:18 +08:00
Lei, HUANG
e0552eee2d
fix(mito2): preserve effective sequences during compaction ( #9147 )
...
* fix(mito2): preserve effective row sequences during compaction
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
* fix(mito2): inherit compaction input sequence bounds
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
---------
Signed-off-by: Lei, HUANG <ratuthomm@gmail.com >
2026-09-15 07:43:16 +00:00
jeremyhi
32bf865ffb
docs: propose Metric export and import optimizations ( #9121 )
...
* docs: propose Metric export and import optimizations
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* docs: colocate Metric RFC supporting materials
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* docs: condense Metric PoC evidence into readable results
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* docs: use the tracking issue as the implementation plan
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
* docs: clarify Metric export design and ordering acceptance
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
---------
Signed-off-by: jeremyhi <fengjiachun@gmail.com >
2026-09-15 07:18:38 +00:00
Immanuel Tikhonov
5ec679fed9
fix(servers): resolve port from IPv6 bind addresses ( #9142 )
...
Signed-off-by: immanuwell <pchpr.00@list.ru >
2026-09-15 06:32:38 +00:00
discord9
ba0f7acd93
feat(mito2): add opt-in byte-stream-split encoding for float SST fields ( #9069 )
...
* feat(mito2): add opt-in byte stream split encoding
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix(mito2): correct float encoding checks
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(compat): cover float SST encoding
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix(mito2): compile float encoding tests
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix(mito2): release parquet test writer
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix(mito2): register float test primary key
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(mito2): verify BSS write lifecycles
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(metric-engine): verify BSS physical SST
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(mito2): verify bulk BSS lifecycle
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix(mito2): compile bulk BSS test
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* refactor(mito2): narrow bulk encoding constructors
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(compat): accept generated float upgrade output
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(compat): accept generated float downgrade output
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* refactor(mito2): narrow bulk encoding builder
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(perf): add default versus BSS storage comparison
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(perf): align BSS reader benchmarks with prior study
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix(perf): parse current read benchmark averages
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix(perf): retain default float encoding in direct SST fixtures
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(perf): isolate BSS user SSTs and benchmark every file
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* docs(perf): record measured BSS storage and reader tradeoffs
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* docs(perf): expose warm scan variability and evidence limits
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* docs(perf): clarify BSS baseline and storage measurement scope
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(perf): model bounded mixed integer and fractional metric series
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* docs(perf): report bounded mixed BSS measurements and query regressions
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* docs(perf): qualify timings affected by concurrent host builds
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* test(perf): include float BSS comparison in default regression cases
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
* fix(perf): omit unsupported float encoding option from baseline setup
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
---------
Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com >
2026-09-14 12:05:42 +00:00