v1.2.0-beta.2
Release date: August 21, 2026
GreptimeDB v1.2.0-beta.2 is the second beta of the v1.2 line. It focuses on safer table administration, better Flow and procedure observability, continued JSON2 preparation, and query and storage correctness fixes.
π Highlightsβ
-
One-way
skip_walchanges withALTER TABLEβ You can enableskip_walon supported tables withALTER TABLE, and the change is validated against the table's leader routes before the irreversible metadata update. The transition is intentionally one-way: changingskip_walback tofalseis rejected (#8817, #8838). -
JSON2 extension and layout preparation β JSON2 now has a separate extension type, type hints can be pushed down to Parquet reads, and DDL accepts JSON2 storage-layout settings. The v2 physical-layout primitives are prepared, but the v2 physical layout is not activated by this release (#8745, #8833, #8895, #8901).
-
Procedure and administration event observability β Procedure events now carry structured context, lifecycle locators, submission context, and the actor; admin function executions are recorded as events, and the shared query-channel definition keeps event protocol information consistent (#8734, #8787, #8834, #8835, #8856, #8849, #8825).
-
Safer discard-unflushed operations β The frontend heartbeat is extensible and lifecycle-safe, while storage can discard unflushed region data while preserving persisted SST files and expose the operation through an admin function (#8726, #8600, #8768).
-
Dictionary tag group-by path restored β The columnar group-by path works again for dictionary-encoded tag columns (#8902).
Dashboardβ
The bundled GreptimeDB dashboard was updated from v0.13.10 to v0.13.13 (#8898). The update includes:
- Better table sizing, horizontal scrolling, and cell expansion, including virtual-list tables (dashboard#638).
- Full-screen query results (dashboard#639).
- Trace-table selection and edition/build information (dashboard#640, dashboard#641).
- A command palette (dashboard#642).
- Removal of the guided tour (dashboard#643).
- A fix for connections after changing hosts (dashboard#644).
Breaking changesβ
-
Soft-drop and recovery are enterprise-only again in beta2. PR #8747 gates soft-drop tables,
UNDROP TABLE,ADMIN purge_table(),information_schema.recycle_bin, and expired soft-drop garbage collection behind the enterprise feature. This reverses the beta1 behavior that made these operations available in OSS. An OSS beta2 metasrv rejectsgc.experimental_soft_drop.enable = trueduring startup, so remove that setting before upgrading. OSS beta2 also cannot recover or purge tables already soft-dropped in beta1 and does not run their expired-tombstone cleanup; recover any tables you may need before upgrading, or use Enterprise Edition to continue the soft-drop lifecycle. This is by @v0y4g3r. -
Native histogram persisted fields change signedness. PR #8824 changes persisted native-histogram span-length list elements from
UInt32toInt32and integer count fields fromUInt64toInt64, including renamingcount_u64/zero_count_u64tocount_i64/zero_count_i64. Existing native-histogram Struct data written with the previous schema may be unreadable in beta2, and rolling binaries back does not restore or convert data written with the changed fields. There is no migration, downgrade, or mixed-version compatibility layer; do not run mixed versions, and establish a migration or reingestion plan before upgrading. This is by @sunng87.
π Featuresβ
- Add
information_schema.flow_statisticsandSHOW FLOW STATUSfor Flow runtime observability; in distributed Flow,start_timeanduptime_secondsremain unavailable (NULL) in this release (#8392) by @onepizzateam. - Safely discard unflushed region data while retaining persisted SST files (#8600) by @evenyag.
- Make the frontend heartbeat extensible and lifecycle-safe (#8726) by @fengjiachun.
- Add structured event context to procedure events (#8734) by @WenyXu.
- Separate the JSON2 extension type from the legacy JSON extension type (#8745) by @MichaelScofield.
- Add an admin function to discard unflushed data (#8768) by @evenyag.
- Support enabling
skip_walwithALTER TABLE(#8817) by @evenyag. - Share the query-channel definition across components while preserving its wire values (#8825) by @WenyXu.
- Push JSON2 type hints down to Parquet reads (#8833) by @fengys1996.
- Centralize procedure event-context handling (#8834) by @WenyXu.
- Record admin function executions as events (#8835) by @WenyXu.
- Record the actor for procedure events (#8849) by @WenyXu.
- Separate procedure submission context (#8856) by @WenyXu.
- Update to pgwire 0.40.7 (#8860) by @sunng87.
- Support JSON2 storage-layout settings in DDL (#8895) by @MichaelScofield.
- Add JSON2 v2 physical-layout primitives; the v2 layout is not activated by this release (#8901) by @MichaelScofield.
π Bug Fixesβ
- Avoid unsafe
count(*)wildcard rewrites (#8522) by @discord9. - Validate remote schemas in
MergeScan(#8579) and ignore field metadata during that validation (#8818), both by @discord9. - Resolve custom timestamp and value columns in Prometheus remote reads (#8659) by @grezzko.
- Limit compaction picker threads and provide a bounded compact-runtime blocking pool (#8704) by @v0y4g3r.
- Fail open when Bloom-filter
INpredicates contain non-literal or unencodable members (#8709) by @discord9. - Add a public compactor constructor (#8724) by @sunng87.
- Fix Flow statistics aggregation and quoting in
df_plan_to_sql(#8729) by @discord9. - Remove gRPC DDL panics for
DropViewand non-timestamp time indexes (#8739) by @discord9. - Release region guards after a drop rollback (#8751) by @WenyXu.
- Handle
Utf8Viewtag and label columns without panicking (#8772) by @discord9. - Cache physical-table metadata lookups (#8777) by @shuiyisong.
- Preserve procedure lifecycle locators (#8787) by @WenyXu.
- Re-encode bulk WAL entries after filling missing columns (#8808) by @fengjiachun.
- Backport the Prometheus response
Utf8Viewhandling andskip_walleader validation in one release-branch fix (#8838) by @evenyag. This is the release-branch umbrella for upstream fixes #8754 and #8823; it is listed here only once. - Bump DataFusion to support dictionary literals in Substrait plans (#8842) by @discord9.
- Harden permission checks and process visibility (#8852) by @shuiyisong.
- Remove the
iceberg.readpermission action (#8858) by @shuiyisong. - Respect query time zones in timestamp casts (#8859) by @fzlzjerry.
- Keep deletion markers when compacting part of a window (#8872) by @fengjiachun.
- Preserve timestamp literal semantics in inserts (#8889) by @killme2008.
- Restore columnar group-by for dictionary-encoded tags (#8902) by @discord9.
- Clear pooled Prometheus Remote Write decoder state (#8921) by @shuiyisong.
All Contributorsβ
We would like to thank the following contributors from the GreptimeDB community:
@discord9, @evenyag, @fengjiachun, @fengys1996, @fzlzjerry, @grezzko, @killme2008, @MichaelScofield, @onepizzateam, @shuiyisong, @sunchanglong, @sunng87, @v0y4g3r, @WenyXu
Full Changelog: https://github.com/GreptimeTeam/greptimedb/compare/v1.2.0-beta.1...v1.2.0-beta.2