Details
Description
We are basically "just" using FIQLParser and SQLPrinterVisitor like this:
final FiqlParser<SearchBean> fiqlParser = new FiqlParser<>(SearchBean.class);
final SearchCondition<SearchBean> searchCondition = fiqlParser.parse(search);
final SQLPrinterVisitor<SearchBean> visitor = new SQLPrinterVisitor<SearchBean>(table);
searchCondition.accept(visitor);
final String sql = visitor.getQuery();
A search expression like this:
text==VAL_UE
yields an SQL query like this:
SELECT * FROM some_table WHERE text = 'VAL[backslash]_UE'
(Note [backslash] is supposed to mean a literal "\" which is swallowed here)
If the table contains a row with text "VAL_UE", the query returns no results because the underscore in the value was preceded with a backslash.