Open abaranec opened 3 months ago
I think this is also wrong:
public static String of(FilterIn in, boolean invert) {
final String inner = of(in);
return (invert ? "!" : "") + inner;
}
This Strings.of
needs to be the inverse of io.deephaven.engine.table.impl.select.WhereFilterFactory#getExpression
. That is not the case for a number of filter types right now. We should blow up for the unsupported ones, and have correct Strings.of
for the rest.
Description
If you provide a QST object with a filter to a barrage subscription that mixes a structured filter with RawString filters, the BatchTableRequestBuilder does not properly stringify some of the filters. In particular in Strings.java
but FilterIn does not implement toString, so you just get an invalid string expression and the subscription fails.
Steps to reproduce You will need two Core instances running. In one create a table with at least two columns (I used a string and a double column)
In the other instance, create a Barrage session to connect to the first then fetch the table using a QST object
Expected results
A table is returned that applies the desired filters
Actual results
Additional details and attachments
If applicable, add any additional screenshots, logs, or other attachments to help explain your problem.
Versions