Zebediah Figura (@zfigura) commented about dlls/msado15/filter.y:
+filter: %empty
- | filter line
+;
+line: T_NEWLINE
- | TOKEN_COLUMN operations T_INT {
filter_add_integer_column(p->recordset, $1, $2, $3);
- }
- | TOKEN_COLUMN operations T_FLOAT {
filter_add_float_column(p->recordset, $1, $2, $3);
- }
- | TOKEN_COLUMN operations T_STRING {
filter_add_string_column(p->recordset, $1, $2, $3);
- }
- /* Like is always followed by a string */
That may be, but currently the way conditions are handled seems very inconsistent. I'd argue it'd be better to move *all* the "like" logic to column_match_string(), and then report an error in e.g. column_match_integer() when LIKE is encountered.