apache / apache/superset

Apache Doris Full Text Search Operators has sqlglot.errors.ParseError: Invalid expression / Unexpected token

Open
#36,770 4 comments 0 reactions 1 assignee Claimed by @betodealmeida View on GitHub
sqllab 🦾 ai-candidate
Dominant language
Python
Stars
74.8k
Forks
18.3k
Avg merge
2d 5h
Merged PRs (30d)
685

Description

### Bug description

superset_app | 2025-12-19 19:40:41,270:INFO:superset.commands.sql_lab.execute:Triggering query_id: 78
superset_app | 2025-12-19 19:40:41,276:WARNING:superset.views.error_handling:SupersetErrorException
superset_app | Traceback (most recent call last):
superset_app | File "/app/superset/sql/parse.py", line 562, in _parse
superset_app | statements = sqlglot.parse(script, dialect=dialect)
superset_app | File "/app/.venv/lib/python3.10/site-packages/sqlglot/__init__.py", line 102, in parse
superset_app | return Dialect.get_or_raise(read or dialect).parse(sql, **opts)
superset_app | File "/app/.venv/lib/python3.10/site-packages/sqlglot/dialects/dialect.py", line 1083, in parse
superset_app | return self.parser(**opts).parse(self.tokenize(sql), sql)
superset_app | File "/app/.venv/lib/python3.10/site-packages/sqlglot/parser.py", line 1623, in parse
superset_app | return self._parse(
superset_app | File "/app/.venv/lib/python3.10/site-packages/sqlglot/parser.py", line 1695, in _parse
superset_app | self.raise_error("Invalid expression / Unexpected token")
superset_app | File "/app/.venv/lib/python3.10/site-packages/sqlglot/parser.py", line 1736, in raise_error
superset_app | raise error
superset_app | sqlglot.errors.ParseError: Invalid expression / Unexpected token. Line 1, Col: 35.
superset_app | SELECT * FROM t WHERE column1 MATCH 'word1 word2'
superset_app |
superset_app | The above exception was the direct cause of the following exception:
superset_app |
superset_app | Traceback (most recent call last):
superset_app | File "/app/.venv/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request
superset_app | rv = self.dispatch_request()
superset_app | File "/app/.venv/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request
superset_app | return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
superset_app | File "/app/.venv/lib/python3.10/site-packages/flask_appbuilder/security/decorators.py", line 109, in wraps
superset_app | return f(self, *args, **kwargs)
superset_app | File "/app/superset/views/base_api.py", line 120, in wraps
superset_app | duration, response = time_function(f, self, *args, **kwargs)
superset_app | File "/app/superset/utils/core.py", line 1410, in time_function
superset_app | response = func(*args, **kwargs)
superset_app | File "/app/superset/views/base_api.py", line 92, in wraps
superset_app | return f(self, *args, **kwargs)
superset_app | File "/app/superset/utils/log.py", line 304, in wrapper
superset_app | value = f(*args, **kwargs)
superset_app | File "/app/superset/sqllab/api.py", line 406, in execute_sql_query
superset_app | command_result: CommandResult = command.run()
superset_app | File "/app/superset/utils/decorators.py", line 267, in wrapped
superset_app | return on_error(ex)
superset_app | File "/app/superset/utils/decorators.py", line 232, in on_error
superset_app | raise ex
superset_app | File "/app/superset/utils/decorators.py", line 260, in wrapped
superset_app | result = func(*args, **kwargs)
superset_app | File "/app/superset/commands/sql_lab/execute.py", line 105, in run
superset_app | status = self._run_sql_json_exec_from_scratch()
superset_app | File "/app/superset/commands/sql_lab/execute.py", line 154, in _run_sql_json_exec_from_scratch
superset_app | self._set_query_limit_if_required(rendered_query)
superset_app | File "/app/superset/commands/sql_lab/execute.py", line 220, in _set_query_limit_if_required
superset_app | self._set_query_limit(rendered_query)
superset_app | File "/app/superset/commands/sql_lab/execute.py", line 230, in _set_query_limit
superset_app | db_engine_spec.get_limit_from_sql(rendered_query),
superset_app | File "/app/superset/db_engine_specs/base.py", line 1137, in get_limit_from_sql
superset_app | script = SQLScript(sql, engine=cls.engine)
superset_app | File "/app/superset/sql/parse.py", line 1242, in __init__
superset_app | self.statements = statement_class.split_script(script, engine)
superset_app | File "/app/superset/sql/parse.py", line 602, in split_script
superset_app | cls(ast=ast, engine=engine) for ast in cls._parse(script, engine) if ast
superset_app | File "/app/superset/sql/parse.py", line 573, in _parse
superset_app | raise SupersetParseError(script, engine, **kwargs) from ex
superset_app | superset.exceptions.SupersetParseError: Error parsing near 'MATCH' at line 1:35

### Screenshots/recordings

_No response_

### Superset version

master / latest-dev

### Python version

3.9

### Node version

16

### Browser

Chrome

### Additional context

_No response_

### Checklist

- [ ] I have searched Superset docs and Slack and didn't find a solution to my problem.
- [x] I have searched the GitHub issue tracker and didn't find a similar bug report.
- [x] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.