02-Stream¶
¶
Stream bug feishu-6570600210
1. Check stream td37724
¶
Stream multiple stream drop
1. Check stream td37724
¶
Stream table rename
1. Check stream if drop table
¶
Stream fetch data from runner
1. Check stream interval result
¶
Stream table modify
1. Check stream table modify
¶
Stream table rename
1. Check stream table modify
2. Check stream table modify with placeholder column
3. Check stream table modify after drop table
4. Check stream table modify after alter table tag
5. Check stream table modify after alter table tag rename/drop
¶
Stream with subquery filter of more tables and data
1. Check stream with subq result
¶
Stream with subquery filter of more tables and data
1. Check stream with subq result
¶
Stream with subquery filter with multiple dnodes
1. Check stream interval result
¶
Stream with subquery filter
1. Check stream interval result
¶
Stream with subquery IN operator
1. Check stream with IN subquery for normal table
2. Check stream with IN subquery for supertable
3. Check stream with IN subquery and dynamic tbname
¶
Test virtual tables in IN subqueries - basic, window and aggregation cases
Test that streams can use virtual tables in IN subqueries correctly.
This ensures the streamVtableCalc flag is properly set and propagated.
¶
Test virtual tables in IN subqueries - edge, complex, data type and advanced cases
Test that streams can use virtual tables in IN subqueries correctly.
This ensures the streamVtableCalc flag is properly set and propagated.
¶
Test virtual tables in IN subqueries - data type and advanced cases
¶
Stream bug TD-37724
1. Check stream td37724
¶
Stream with UDF in WHERE / output_subtable on partition-by tags
¶
ins_streams sql length
1. Create a stream with SQL length > 2048
2. Verify information_schema.ins_streams.sql is not truncated
¶
Stream illegal name
1. Test stream with illegal names.
2. Test stream with special characters.
3. Test stream name length.
¶
Stream all datatypes correctness
Verify all supported data types pass through stream processing correctly,
including VARCHAR/NCHAR/VARBINARY which require varstr header wrapping in setColData.
Test design:
1. Insert ROW_COUNT rows into a super table, exactly 1 row per second (1000 ms apart).
2. Use interval(1s) stream: each 1-second window contains exactly one source row.
3. last() of a single-row window equals the original row value — no aggregation distortion.
4. Stream produces ROW_COUNT-1 output rows: the final window is unclosed (no subsequent
data arrives to trigger it), so it never appears in the stream output.
5. Compare each stream output row against the corresponding source row, column by column,
for all 15 data types.
The key insight: because each 1s window holds exactly one data point, last(col) == col.
Any data corruption, type conversion bug, or missing varstr header in setColData is
directly detected by the exact-match comparison between source table and stream output.
Covered types: bool, tinyint, smallint, int, bigint, tinyint unsigned, smallint unsigned,
int unsigned, bigint unsigned, float, double, varchar, nchar, varbinary
Data insertion uses the STMT2 (parameter-binding) API because the bug is STMT2-specific:
STMT2 submits data with SUBMIT_REQ_COLUMN_DATA_FORMAT, which takes the column-data branch
in vnodeStream.c and calls setColData() on each SColData block. Plain SQL submits data
in row format (SRow) and takes a completely different branch that never calls setColData(),
so plain SQL cannot trigger this bug. Using STMT2 is required to reproduce the crash.
¶
Stream long name
1. Test stream with excessively long names
2. Test stream with special characters in names
3. Test stream name length
4. Verify long stream name in information_schema.ins_streams
¶
Stream no snode
1. Test that streams cannot be created without snode.
2. Test creating and dropping snodes.
3. Test creating streams after snodes are created.
4. Test dropping snodes and its impact on existing streams.
5. Test stream status after snode failures.
6. Test recreating snodes and streams.
¶
Stream result match schema
1. Verify error is raised when calculation result and output table column type do not match
2. Verify error is raised when calculation result and output table column name do not match
3. Verify error is raised when calculation result and output table Tag column type do not match
4. Verify error is raised when calculation result and output table Tag column name do not match
¶
Stream same name
1. Test stream with duplicate names.
2. Verify that creating a stream with an existing name fails.
3. Test recreating a stream with the same name.
4. Verify error handling for duplicate stream names.
5. Check stream name uniqueness in information_schema.ins_streams.
6. Ensure proper error messages for duplicate stream name attempts.
¶
All remote-subquery flavours must be refreshed per stream event.
Runs all 5 subquery variants in parallel via a single checkAll
to overlap stream processing time:
1. WHERE scalar subquery (REMOTE_VALUE)
2. _twstart workaround (control)
3. IN-list subquery (REMOTE_VALUE_LIST)
4. Row-comparison subquery (REMOTE_ROW)
5. EXISTS subquery (REMOTE_ZERO_ROWS)
¶
Stream window query
1. Test the stream using window query for the calculation statement.
2. The select in the query may not use aggregate functions
3. The select in the query only uses constants
4. Other combinations of the select list in the query