Caideyipi commented on PR #17936:
URL: https://github.com/apache/iotdb/pull/17936#issuecomment-4705713371
Findings
1. Valid REGEXP/string literals are rejected before parsing
ColumnFilterParser.java#L139-L153
validateUnsupportedSyntax scans the raw expression and rejects <, >,
and + before tokenization, but it does not
skip quoted string literals. As a result, valid filters such as
column_name REGEXP "s[0-9]+", column_name = "a+b",
or column_name LIKE "a>%" fail at topic creation time. This should
either ignore characters inside quoted strings
or let the grammar/parser reject unsupported operators.
2. A time-only filter drops all rows for tagless tables
ColumnFilterBinder.java#L67-L75, TabletColumnPruner.java#L78-L94
A filter like column_name = "time" only sets timeSelected; it does not
add any selected physical tablet column. For
a table without TAG columns, TabletColumnPruner then sees an empty
selected column set and returns null, so
consumers receive no rows. IoTDB table model allows tagless tables such
as CREATE TABLE t (s1 INT64 FIELD), so this
is a valid case. The implementation should either support time-only
tablets or reject this unsupported shape during
bind/validation.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]