The Expression plugin uses the Python parser ("ast") to parse input into an AST and then transforms it into a DuckDB SQL string to run it within the database, rather than eval-ing the Python directly. This makes it hugely quicker but does make errors very hard to understand, especially because the parser understands far more complicated syntax than we have any intention of supporting.
Replacing this with a pypeg2 or similar parser would help. See branch nick/expression-parser
The Expression plugin uses the Python parser ("ast") to parse input into an AST and then transforms it into a DuckDB SQL string to run it within the database, rather than eval-ing the Python directly. This makes it hugely quicker but does make errors very hard to understand, especially because the parser understands far more complicated syntax than we have any intention of supporting.
Replacing this with a pypeg2 or similar parser would help. See branch nick/expression-parser