Skip to main content

v1.1.0

Β· 16 min read

Release date: June 14, 2026

v1.1.0 adds online partitioning for previously unpartitioned tables, experimental incremental reads for batching flows, the experimental table semantic layer, and new CSV import options, along with performance and stability fixes.

πŸ‘ Highlights​

Partition an existing table. Previously only tables created with PARTITION ON COLUMNS could be repartitioned, via SPLIT PARTITION and MERGE PARTITION. v1.1.0 supports partitioning a table that has no partition rules, splitting its single region into multiple partitions with ALTER TABLE ... PARTITION ON COLUMNS:

ALTER TABLE sensor_readings PARTITION ON COLUMNS (device_id, area) (
device_id < 100 AND area < 'South',
device_id < 100 AND area >= 'South',
device_id >= 100 AND area <= 'East',
device_id >= 100 AND area > 'East'
);

The layout can then be adjusted further with SPLIT PARTITION and MERGE PARTITION. Repartitioning requires a distributed cluster with shared object storage and GC enabled.

Experimental incremental read for flows. Batching flows re-execute the full source query on every evaluation. With incremental read enabled, a flow only reads source rows appended since its last run, lowering overhead for large append-only sources. It is disabled by default; enable it in the flownode config:

[flow.batching_mode]
experimental_enable_incremental_read = true

It can also be set per flow with WITH (experimental_enable_incremental_read = 'true'). The source table must be append-only (append_mode = 'true'); otherwise the flow falls back to full-snapshot queries.

Table semantic layer. The experimental table semantic layer lets tables carry greptime.semantic.* metadata, such as signal type, source, metric type, unit, temporality, and ingestion pipeline. GreptimeDB stamps this metadata automatically on supported ingestion paths, and you can also set it manually with CREATE TABLE ... WITH (...). Consumers can query information_schema.table_semantics to understand what each table represents without guessing from table or column names.

MCP Server v0.5.0​

GreptimeDB MCP Server v0.5.0 uses table semantic metadata in describe_table, so AI assistants can understand metrics, logs, and traces more directly. It also expands the tool set for SQL, TQL, RANGE queries, pipelines, and dashboards, with stdio/SSE/Streamable HTTP transports, read-only defaults, masking, and audit logging.

Query performance improvements​

  • PromQL execution. Range functions such as rate and increase run faster, with benchmarks showing up to 97% lower execution time. Metric joins also improve through TSID-based joins and narrow binary join collection. Overall, compared to v1.0, v1.1 reduces average PromQL query time by 20% to 40%.
  • Scan pruning. Parquet prefiltering, prefilter-result caching, and remote dynamic filters on datanode scans reduce unnecessary row reads. The TSBS cpu-max-all-8 query was 4.5x faster with prefiltering.
  • Read efficiency. Page-index reads and range-cache reuse reduce storage reads for scan-heavy queries. Page-index reads reduced SST bytes fetched by 93.2% on one workload.

Dashboard​

  • The built-in Perses dashboard now supports trace visualization: a trace list and a per-trace detail/Gantt view from the trace table, using the GreptimeDB Perses data-source plugin.

CSV import options​

COPY FROM adds SKIP_BAD_RECORDS = 'true' for skipping invalid rows and HEADERS = 'false' for importing headerless CSV files:

COPY tbl FROM '/path/to/file.csv' WITH (
FORMAT = 'csv',
SKIP_BAD_RECORDS = 'true',
HEADERS = 'false'
);

Breaking changes​

πŸš€ Features​

πŸ› Bug Fixes​

🚜 Refactor​

πŸ“š Documentation​

⚑ Performance​

  • perf: optimize extrapolated rate op family by @waynexia in #7880
  • perf: join metrics tables on the tsid key whenever possible by @waynexia in #7927
  • perf(mito-codec): optimize SparseValues decode and lookup by @evenyag in #8057
  • perf(mito): split record batches on equal timestamps by @evenyag in #8163
  • perf: collect narrow binary join by @waynexia in #8193
  • perf: read primary key as binary if it overflows the dictionary by @evenyag in #8187
  • perf(mito): cached-size single-pass WAL entry encoder by @lyang24 in #8254

πŸ§ͺ Testing​

βš™οΈ Miscellaneous Tasks​

RFC​

New Contributors​

All Contributors​

We would like to thank the following contributors from the GreptimeDB community:

@Copilot, @daviderli614, @Detachm, @discord9, @evenyag, @fengjiachun, @fengys1996, @killme2008, @kimjune01, @lyang24, @MichaelScofield, @onepizzateam, @QuakeWang, @rogierlommers, @shuiyisong, @sunng87, @v0y4g3r, @waynexia, @WenyXu, @yihong0618, @ZonaHex