teragrep / pth_03

Data Processing Language (DPL) parser
GNU Affero General Public License v3.0
0 stars 4 forks source link

Eval commands trim, ltrim and rtrim don't work without second parameter #58

Open 51-code opened 1 month ago

51-code commented 1 month ago

Describe the bug

The following query: index=abc | eval d=trim(" xyz ")

Throws the exception:

java.lang.IllegalStateException: Parser failure on line 2, column 34 due to mismatched input ')' expecting {EVAL_LANGUAGE_MODE_COMMA, EVAL_LANGUAGE_MODE_DEQ, EVAL_LANGUAGE_MODE_EQ, EVAL_LANGUAGE_MODE_NEQ, EVAL_LANGUAGE_MODE_LT, EVAL_LANGUAGE_MODE_LTE, EVAL_LANGUAGE_MODE_GT, EVAL_LANGUAGE_MODE_GTE, EVAL_LANGUAGE_MODE_DOT, EVAL_LANGUAGE_MODE_AND, EVAL_LANGUAGE_MODE_OR, EVAL_LANGUAGE_MODE_XOR, EVAL_LANGUAGE_MODE_WILDCARD, EVAL_LANGUAGE_MODE_PLUS, EVAL_LANGUAGE_MODE_MINUS, EVAL_LANGUAGE_MODE_SLASH, EVAL_LANGUAGE_MODE_Like, EVAL_LANGUAGE_MODE_PERCENT, EVAL_LANGUAGE_MODE_LIKE}
Please check that the query is written correctly. Otherwise, please report this error and include the query used and this error.

Similar exception is thrown for ltrim and rtrim as well. In the grammar it can be seen that it is required to use two parameters for trim, ltrim and rtrim.

Expected behavior

Just one parameter should also be okay. The default behavior without the second parameter is to trim all whitespace.

How to reproduce

Run the query above. trim can be replaced with ltrim or rtrim.

Screenshots

Software version

5.11.0

Desktop (please complete the following information if relevant):

Additional context