Skip to content

[feat](stream) Support ALTER STREAM ... SET/MODIFY COMMENT - #67471

Merged
morningman merged 3 commits into
apache:masterfrom
morningman:binglog-bug1
Sep 4, 2026
Merged

[feat](stream) Support ALTER STREAM ... SET/MODIFY COMMENT#67471
morningman merged 3 commits into
apache:masterfrom
morningman:binglog-bug1

Conversation

@morningman

@morningman morningman commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: close #65388, related #65418

Related PR: #65810

Problem Summary:

1. ALTER STREAM ... SET COMMENT was not supported (#65388)

A table stream can be created with a comment and the comment is fully wired up everywhere except for changing it:

step before this PR
CREATE STREAM s ON TABLE t COMMENT 'x' supported (InternalCatalog#createTableStream)
persisted in the image supported (Table#comment)
SHOW CREATE STREAM s prints the comment
information_schema.table_streams.STREAM_COMMENT exposes the comment
changing the comment not possible

There was no ALTER STREAM rule in DorisParser.g4 at all — STREAM only appeared in CREATE STREAM, DROP STREAM, SHOW STREAMS and SHOW CREATE STREAM — so the statement failed at parser stage:

errCode = 2, detailMessage = no viable alternative at input 'ALTER STREAM'(line 1, pos 6)

ALTER TABLE is not an alternative either: Alter#processAlterTable rejects the STREAM table type with Do not support alter STREAM table[...].

This PR adds:

ALTER STREAM <name> SET COMMENT 'new comment';
ALTER STREAM <name> MODIFY COMMENT 'new comment';   -- same thing

MODIFY is accepted alongside SET so the syntax stays consistent with ALTER TABLE ... MODIFY COMMENT, which is the existing Doris spelling for the same operation on a table.

Implementation notes:

  • The comment of a stream lives in the Table metadata only, so Alter#processAlterStreamComment reuses ModifyCommentOperationLog.forTable(...) and the existing replay path Alter#replayModifyComment, which already resolves a generic Table. No new edit log operation and no meta version bump.
  • Cloud Meta Service only stores stream offsets and ids (CloudInternalCatalog#beforeCreateTableStream / #afterCreateTableStream), so no extra RPC is needed and the behaviour is the same in cloud mode.
  • AlterStreamCommand extends AlterCommand, which already provides ForwardWithSync and StmtType.ALTER. It carries an AlterType enum so that other ALTER STREAM clauses can be added later without reshaping the command.
  • Privilege required is ALTER on the stream, matching ALTER TABLE. Altering a non-stream table through ALTER STREAM reports ERR_WRONG_OBJECT, the same way SHOW CREATE STREAM does.
  • Config.enable_table_stream gates the operation, consistent with CREATE STREAM and DROP STREAM.
  • The comment literal is decoded with SqlLiteralUtils.parseStringLiteral, so a doubled quote
    collapses to one quote and backslash escapes follow the session sql mode, matching the lexer
    (NereidsParser drives the lexer with SqlModeHelper.hasNoBackSlashEscapes()).
    CREATE STREAM ... COMMENT was decoding the same literal differently -- it unescaped
    backslashes but never collapsed doubled quotes and ignored NO_BACKSLASH_ESCAPES -- so it was
    moved onto the same decoder, otherwise the comment stored by CREATE and by ALTER would differ
    for the same text. Not fixed here: Env#addTableComment quotes the value with single quotes
    while escaping only double quotes, so a comment holding a ' makes SHOW CREATE emit
    non-parsable DDL. That is pre-existing, shared by all 19 call sites of every table type, and
    will be filed separately.

2. Regression coverage for immutable binlog properties (#65383)

ALTER TABLE ... SET ("binlog.format" = ...) on a ROW binlog table used to fail with a misleading light-schema-change error, because AlterOperations#checkBinlogConfigChange did not list binlog.format / binlog.need_historical_value and the statement was dispatched to the generic schema change path. That was fixed as a side effect of #65810 (f745ddf9e22), but no test locked the behaviour in. This PR adds test_binlog_property_alter_exception.groovy covering:

statement (on a binlog.format = ROW MOW table) expected
SET ("binlog.format" = "STATEMENT_AND_SNAPSHOT") not support change binlog format from ROW to STATEMENT_AND_SNAPSHOT
SET ("binlog.need_historical_value" = "false") not support change binlog.need_historical_value from true to false
SET ("binlog.enable" = "false") can't disable binlog when format is [Row]
SET ("binlog.format" = "ROW") (same value) accepted, no-op
SET ("binlog.ttl_seconds" = "7200") accepted
SET ("binlog.format" = "ROW") on a table without binlog not support change binlog format from STATEMENT_AND_SNAPSHOT to ROW

Release note

Support ALTER STREAM <name> SET|MODIFY COMMENT '<comment>' to change the comment of a table stream.

Stream comments are now decoded as proper SQL string literals: 'a''b' stores a'b, and
backslash escapes follow the session sql mode (including NO_BACKSLASH_ESCAPES). This applies to
CREATE STREAM ... COMMENT as well, which previously stored a doubled quote verbatim.

Check List (For Author)

  • Test

    • Regression test
      • regression-test/suites/table_stream_p0/test_table_stream_alter_comment.groovy
      • regression-test/suites/table_stream_p0/test_binlog_property_alter_exception.groovy
    • Unit Test
      • fe/fe-core/src/test/java/org/apache/doris/catalog/AlterTableStreamCommentTest.java (testAlterStreamComment
        and testAlterStreamCommentStringLiteral, the latter covering doubled single quotes,
        doubled double quotes, \n / \t and NO_BACKSLASH_ESCAPES)
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
      • This is a refactor/code format and no logic has been changed.
      • Previous test can cover this change.
      • No code files have been changed.
      • Other reason
  • Behavior changed:

    • No.
    • Yes. A new statement ALTER STREAM ... SET|MODIFY COMMENT is accepted. It was a
      parser error before, so no existing statement changes behaviour there. CREATE STREAM ... COMMENT does change: a doubled quote in the comment now collapses to a single quote and
      NO_BACKSLASH_ESCAPES is honoured, i.e. the literal is decoded the way every other SQL
      string literal is.
  • Does this need documentation?

    • No.
    • Yes. A doc PR for the new statement will be filed against apache/doris-website.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

🤖 Generated with Claude Code

https://claude.ai/code/session_01Xx7TgjXJCiChnzLYa6hgtL

A table stream can be created with a comment (`CREATE STREAM ... COMMENT
'x'`), the comment is persisted, shown by `SHOW CREATE STREAM` and exposed
as `information_schema.table_streams.STREAM_COMMENT`, but there was no way
to change it: the grammar had no `ALTER STREAM` rule at all, so the
statement failed with `no viable alternative at input 'ALTER STREAM'`, and
`ALTER TABLE` rejects streams with `Do not support alter STREAM table[...]`.

This adds `ALTER STREAM <name> SET COMMENT '...'`, accepting `MODIFY` as
well so the syntax stays consistent with `ALTER TABLE ... MODIFY COMMENT`.

The comment of a stream lives in the `Table` metadata only, so the new
`Alter.processAlterStreamComment()` reuses `ModifyCommentOperationLog` and
the existing generic replay path in `Alter.replayModifyComment()`. No new
edit log operation and no meta version bump are needed. Cloud Meta Service
stores only stream offsets and ids, so no extra RPC is needed either.

Also adds a regression test for the immutable binlog table properties
(`binlog.format`, `binlog.need_historical_value`, `binlog.enable`) on a ROW
binlog table. That path had no coverage; it used to report a misleading
light-schema-change error and was fixed as a side effect of apache#65810.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xx7TgjXJCiChnzLYa6hgtL
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@morningman

Copy link
Copy Markdown
Contributor Author

run buildall

@morningman

Copy link
Copy Markdown
Contributor Author

/review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Request changes: two issues are called out inline.

Goal and correctness: Plain SET/MODIFY COMMENT works, but valid escaped or doubled-quote literals are stored incorrectly and SHOW CREATE is not reliably round-trippable, so the feature is not correct for the full grammar.

Scope and parallel paths: Grammar, builder, PlanType, visitor, command dispatch, SET/MODIFY unification, and wrong-object handling are otherwise focused and connected. The separate binlog suite intentionally locks previously fixed behavior described in the PR.

Concurrency and lifecycle: No new threads or special lifecycle were added. Stream write locking plus dropped-object fencing preserves DROP ordering; no deadlock or lock-order issue was found.

Configuration, compatibility, persistence, and cloud: No new configuration was added, and the existing feature gate is enforced. Reusing OP_MODIFY_COMMENT is rolling-compatible; follower replay, inherited image serialization, cloud FE metadata ownership, and database-binlog handling are subtype-safe.

Tests: Basic positive, empty-comment, wrong-object, not-found, and immutable-binlog cases pass in current FE unit-test/P0 CI. Escaped literals, SQL modes, and SHOW round trips are missing, and the Groovy tests violate required generated-oracle and fixture-retention conventions. Replay and cloud are not directly exercised, though their production paths were verified.

Observability, transactions, protocol, and performance: This is metadata-only O(1) work with existing edit-log observability; it adds no data transaction, FE-BE protocol, or performance concern.

User focus: No additional focus was supplied.

Review completeness: Two full review rounds completed, and every Round 2 reviewer returned NO_NEW_VALUABLE_FINDINGS. Every candidate was accepted, duplicate-fenced, or dismissed with evidence. Reviewed exact head eabbe52.

@Override
public LogicalPlan visitAlterStreamComment(DorisParser.AlterStreamCommentContext ctx) {
TableNameInfo streamName = new TableNameInfo(visitMultipartIdentifier(ctx.name));
String comment = stripQuotes(ctx.comment.getText());

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please decode the token as a SQL literal here. stripQuotes only removes delimiters, so a legal ALTER STREAM s SET COMMENT 'a''b' stores a''b instead of a'b; with default SQL mode, COMMENT '\n' stores a backslash plus n instead of a newline. information_schema.table_streams then exposes the wrong metadata, and SHOW CREATE STREAM can recreate a different value because the CREATE path unescapes it. Use the mode-aware SqlLiteralUtils.parseStringLiteral decoder, make the SHOW/CREATE quoting path round-trip the decoded value, and cover doubled quotes and backslash escapes including NO_BACKSLASH_ESCAPES.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 8359bb5, with one half deliberately left out.

visitAlterStreamComment now uses SqlLiteralUtils.parseStringLiteral. visitCreateStream turned out to have the mirror image of the same bug, so it was changed too: it decoded backslash escapes through LogicalPlanBuilderAssistant.escapeBackSlash but never collapsed doubled quotes and ignored NO_BACKSLASH_ESCAPES. Before this commit the same literal therefore produced two different comments depending on whether CREATE or ALTER stored it. Both paths now decode identically and honour the sql mode the lexer is already driven by (NereidsParser feeds SqlModeHelper.hasNoBackSlashEscapes() into the lexer predicate).

Covered by the new AlterTableStreamCommentTest#testAlterStreamCommentStringLiteral: doubled single quotes, doubled double quotes, \n / \t, and NO_BACKSLASH_ESCAPES. The regression suite additionally checks the doubled-quote case end to end through information_schema.table_streams (stored value a'b, length 3).

Not doing the SHOW CREATE round-trip half here. That is Env.addTableComment (fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java:7528): it wraps the value in single quotes but escapes only double quotes, via SqlUtils.escapeQuota (fe/fe-common/src/main/java/org/apache/doris/common/util/SqlUtils.java:50). A comment containing ' already makes plain SHOW CREATE TABLE emit non-parsable DDL today. The function has 19 call sites covering every table type, so this is pre-existing and not stream specific, and fixing it changes SHOW CREATE output for all tables. I will file it separately rather than fold it into this PR.

return
}

def baseTable = "test_stream_alter_comment_base"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These new regression suites do not follow the repository's required fixture and oracle conventions: ordinary names are indirected through def, deterministic SHOW and metadata values use ad-hoc assertions instead of generated qt output, and both suites drop fixtures again at the end. Please hardcode the simple names, use generated ordered query-test output for deterministic results, and keep only the pre-test cleanup so failures leave state available for debugging.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 8359bb5. Both suites now hardcode their table and stream names, the deterministic information_schema.table_streams results are generated order_qt_* output (regression-test/data/table_stream_p0/test_table_stream_alter_comment.out, produced with -genOut against a local cluster and then verified by a second run without it), and the trailing DROPs are gone, leaving only the pre-test cleanup.

Two things kept as they were. The two SHOW CREATE STREAM checks stay substring probes instead of qt output, because the full DDL carries a PROPERTIES block that changes as the stream feature evolves. And test_binlog_property_alter_exception has no deterministic query output to capture, so it only received the naming and fixture-retention fixes.

Converting the suites surfaced a separate defect worth flagging: the skip guard of test_binlog_property_alter_exception compared the config name against enable_feature_binlog, but SHOW FRONTEND CONFIG reports that EXPERIMENTAL config as experimental_enable_feature_binlog, so the suite was skipping itself unconditionally, in CI as well. The coverage this PR claimed to add was therefore dead. It now uses the framework helper getSyncer().checkEnableFeatureBinlog(), and the run log shows all six expected error messages actually firing.

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 45.33% (34/75) 🎉
Increment coverage report
Complete coverage report

### What problem does this PR solve?

Issue Number: close apache#65388, related apache#65418

Related PR: apache#65810

Problem Summary:

Review follow-up for this PR. Two problems were found in the first revision.

1. `visitAlterStreamComment` decoded the comment with `stripQuotes`, which only
   removes the outer delimiters. `ALTER STREAM s SET COMMENT 'a''b'` therefore
   stored `a''b` instead of `a'b`, and with the default sql mode
   `COMMENT '\n'` stored a backslash plus `n` instead of a newline. The value is
   exposed by `information_schema.table_streams.STREAM_COMMENT` and printed by
   `SHOW CREATE STREAM`, so the stored metadata was simply wrong.

   `visitCreateStream` had the other half of the problem: it decoded backslash
   escapes (`LogicalPlanBuilderAssistant.escapeBackSlash`) but did not collapse
   doubled quotes and ignored `NO_BACKSLASH_ESCAPES`, so the same literal produced
   different comments depending on whether it went through CREATE or ALTER.

   Both now use `SqlLiteralUtils.parseStringLiteral`, which collapses doubled
   quotes and honours the sql mode exactly like the lexer does
   (`NereidsParser` feeds `SqlModeHelper.hasNoBackSlashEscapes()` to the lexer).

   Not addressed here: `Env.addTableComment` wraps the comment in single quotes
   but only escapes double quotes (`SqlUtils.escapeQuota`), so a comment holding
   a single quote makes `SHOW CREATE` emit non-parsable DDL. That is pre-existing,
   shared by all 19 call sites of every table type, and is not stream specific.

2. The two new regression suites did not follow the repository test standards:
   names were indirected through `def`, deterministic results were asserted by
   hand instead of a generated `.out`, and both dropped their fixtures at the end.
   Fixed all three. While converting, the skip guard of
   `test_binlog_property_alter_exception` turned out to be dead: it compared the
   config name against `enable_feature_binlog`, but `SHOW FRONTEND CONFIG` reports
   the EXPERIMENTAL config as `experimental_enable_feature_binlog`, so the suite
   skipped itself unconditionally, in CI as well. It now uses the framework helper
   `getSyncer().checkEnableFeatureBinlog()`, and the suite actually runs.

### Release note

None (the behaviour change of this PR is described in the first commit).

### Check List (For Author)

- Test:
    - Unit Test: `AlterTableStreamCommentTest#testAlterStreamCommentStringLiteral`
      covers doubled single quotes, doubled double quotes, `\n`/`\t` and
      `NO_BACKSLASH_ESCAPES`. Both tests of the class pass locally
      (`Tests run: 2, Failures: 0, Errors: 0`).
    - Regression test: `test_table_stream_alter_comment` (the `.out` was generated
      with `-genOut` against a local cluster, then verified by a second run without
      it) and `test_binlog_property_alter_exception`, both pass locally and the six
      expected error messages were observed in the run log.
- Behavior changed: Yes. A stream comment containing a doubled quote or a
  backslash escape is now stored decoded, and the sql mode is honoured.
- Does this need documentation: No (the statement itself is documented by the
  first commit's doc PR).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xx7TgjXJCiChnzLYa6hgtL
@morningman

Copy link
Copy Markdown
Contributor Author

run buildall

morrySnow
morrySnow previously approved these changes Sep 3, 2026
Address review comment: drop the `forSetComment` static factory and make
the constructor public, so the parser builds the command directly.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M2uex5qag4kC5G49J7Bm5t
@morningman

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 16862 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 4b9b16c03aa64f7ae5a59d25a47c2bf8f00ed8fb, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17612	3107	3096	3096
q2	2121	254	232	232
q3	10217	886	504	504
q4	4673	258	209	209
q5	7661	584	382	382
q6	133	111	91	91
q7	549	512	382	382
q8	9241	872	811	811
q9	3495	2387	2383	2383
q10	6491	857	715	715
q11	393	196	184	184
q12	611	262	199	199
q13	18130	1520	1179	1179
q14	157	156	134	134
q15	q16	436	392	362	362
q17	1356	912	864	864
q18	3082	2261	2221	2221
q19	1257	825	803	803
q20	371	282	198	198
q21	5655	1681	1804	1681
q22	334	266	232	232
Total cold run time: 93975 ms
Total hot run time: 16862 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	3484	3456	3418	3418
q2	515	421	386	386
q3	2222	2276	2142	2142
q4	1201	1157	897	897
q5	2174	2107	2133	2107
q6	173	117	87	87
q7	1026	922	914	914
q8	1614	1415	1427	1415
q9	3141	3105	3093	3093
q10	1859	1816	1608	1608
q11	372	273	256	256
q12	456	425	358	358
q13	1490	1505	1158	1158
q14	169	163	163	163
q15	q16	391	408	358	358
q17	3583	3261	3130	3130
q18	4819	4440	4768	4440
q19	870	926	899	899
q20	1011	981	857	857
q21	3874	3240	3231	3231
q22	409	355	337	337
Total cold run time: 34853 ms
Total hot run time: 31254 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 82478 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 4b9b16c03aa64f7ae5a59d25a47c2bf8f00ed8fb, data reload: false

query5	4259	401	341	341
query6	392	140	129	129
query7	4945	427	246	246
query8	289	125	118	118
query9	8698	2887	2907	2887
query10	395	214	185	185
query11	5377	1045	913	913
query12	116	70	67	67
query13	1189	452	319	319
query14	6057	2210	2085	2085
query14_1	2001	1993	1996	1993
query15	180	123	113	113
query16	920	399	376	376
query17	1051	474	370	370
query18	2353	341	250	250
query19	162	145	112	112
query20	94	72	70	70
query21	203	100	86	86
query22	5492	5352	5292	5292
query23	6795	6253	6138	6138
query23_1	6022	5968	6110	5968
query24	7267	1106	796	796
query24_1	799	777	806	777
query25	445	319	259	259
query26	1218	227	131	131
query27	2790	419	249	249
query28	4679	1513	1521	1513
query29	954	446	359	359
query30	252	156	140	140
query31	822	410	333	333
query32	183	80	77	77
query33	475	219	185	185
query34	1014	835	493	493
query35	410	422	349	349
query36	582	562	530	530
query37	123	82	75	75
query38	1017	846	808	808
query39	505	481	475	475
query39_1	467	449	470	449
query40	218	95	80	80
query41	60	59	55	55
query42	76	73	73	73
query43	245	243	214	214
query44	1022	560	566	560
query45	115	118	102	102
query46	767	910	537	537
query47	762	753	701	701
query48	318	308	227	227
query49	531	230	201	201
query50	724	262	200	200
query51	8418	8312	8309	8309
query52	74	65	57	57
query53	194	221	180	180
query54	220	166	157	157
query55	99	59	54	54
query56	226	180	156	156
query57	685	646	657	646
query58	193	169	164	164
query59	1230	1216	1123	1123
query60	239	201	167	167
query61	114	120	118	118
query62	357	203	179	179
query63	163	146	144	144
query64	2701	709	611	611
query65	1627	1677	1592	1592
query66	1779	252	212	212
query67	9859	9479	9688	9479
query68	3013	1276	725	725
query69	380	230	189	189
query70	678	586	612	586
query71	247	174	167	167
query72	2314	1767	1612	1612
query73	684	594	321	321
query74	1992	1221	1148	1148
query75	1167	1118	960	960
query76	2380	737	579	579
query77	242	265	216	216
query78	3904	3711	3206	3206
query79	2940	837	584	584
query80	1593	342	280	280
query81	521	152	133	133
query82	1009	120	97	97
query83	275	213	208	208
query84	248	111	93	93
query85	832	372	310	310
query86	486	178	162	162
query87	1028	968	897	897
query88	3872	2115	2105	2105
query89	277	200	178	178
query90	2196	137	133	133
query91	132	121	102	102
query92	102	62	67	62
query93	3255	1043	682	682
query94	672	255	183	183
query95	533	248	229	229
query96	833	589	294	294
query97	1028	1080	1033	1033
query98	175	138	134	134
query99	461	347	322	322
Total cold run time: 182898 ms
Total hot run time: 82478 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 14.67 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 4b9b16c03aa64f7ae5a59d25a47c2bf8f00ed8fb, data reload: false

query1	0.00	0.00	0.01
query2	0.08	0.04	0.04
query3	0.24	0.11	0.11
query4	1.60	0.10	0.10
query5	0.17	0.17	0.17
query6	1.24	0.70	0.67
query7	0.03	0.01	0.00
query8	0.05	0.03	0.03
query9	0.28	0.21	0.21
query10	0.34	0.36	0.37
query11	0.17	0.12	0.12
query12	0.15	0.12	0.12
query13	0.32	0.31	0.32
query14	0.44	0.45	0.44
query15	0.37	0.35	0.35
query16	0.24	0.23	0.23
query17	0.64	0.66	0.64
query18	0.17	0.17	0.17
query19	1.23	1.12	1.15
query20	0.01	0.01	0.01
query21	15.47	0.16	0.11
query22	5.08	0.04	0.05
query23	16.17	0.25	0.10
query24	3.05	0.32	0.29
query25	0.11	0.04	0.04
query26	0.80	0.17	0.11
query27	0.04	0.03	0.03
query28	3.57	0.54	0.28
query29	12.44	3.17	2.59
query30	0.25	0.11	0.11
query31	2.76	0.37	0.17
query32	3.53	0.33	0.22
query33	1.49	1.37	1.48
query34	15.42	2.18	1.77
query35	1.74	1.75	1.73
query36	0.46	0.28	0.29
query37	0.06	0.03	0.04
query38	0.05	0.04	0.04
query39	0.03	0.02	0.02
query40	0.11	0.08	0.07
query41	0.08	0.03	0.02
query42	0.03	0.02	0.02
query43	0.04	0.03	0.03
Total cold run time: 90.55 s
Total hot run time: 14.67 s

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 71.43% (35/49) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 0.48% (24/5022) 🎉
Increment coverage report
Complete coverage report

@morningman
morningman merged commit 60854db into apache:master Sep 4, 2026
32 of 33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug](Medium) ALTER STREAM SET COMMENT is not supported for table stream

4 participants