You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AI disclosure: this issue was prepared with AI coding agents, reviewed and revised line by line by me.
Correction (2026-09-11, same day): the original report below described this as a regression introduced between 6c726d8 and current master ("the corpus parsed fine on 6c726d8"). That was wrong: my probe back then did not check the return value of parseStatements, and on 6c726d8 it silently returns null for this corpus (the exact bug reported in #2576), which my probe misread as success. The statement with the @Prompt macros fails to parse on both commits at the same position. The only real change is that #2568 / #2594 fixed the silent null, so the long-standing corpus damage is now visible. The original text is kept below with the wrong claim struck through.
Failing SQL Feature:
src/test/resources/net/sf/jsqlparser/performance.sql contains BusinessObjects @Prompt(...) macros that JSQLParser cannot parse (and, as far as I can tell, never could: the statement fails at the same position on 6c726d8 and on current master, standalone or as part of the file).
Open questions for the maintainers: should the benchmark assert corpus integrity (non-null result, expected statement count) so incomplete-parse timings cannot happen silently, and should the @Prompt statement be repaired or supported?
SQL Example:
Excerpt of the failing spot (corpus line 497):
SELECT ... FROM ... WHERE ( COALESCE(CLM.WORKFLOW_C,0) IN @Prompt(P_WorkflowTypeInclude)
AND COALESCE(CLM_TRAIT_4.NAME,'CCA') IN @Prompt(P_CCA-TPMG) ... )
net.sf.jsqlparser.parser.ParseException: Encountered: <OPENING_BRACKET> / "(", at line 497, column 40, in lexical state DEFAULT.
Repro on both commits (statement alone, corpus lines 196-1688):
CCJSqlParserUtil.parse(content); // 6c726d8: THROWS at 302:40; 7cc86386: THROWS at 302:40 (same position)CCJSqlParserUtil.parseStatements(corpus); // 6c726d8: returns null silently; 7cc86386: throws JSQLParserException
Software Information:
JSqlParser version: 5.4-SNAPSHOT (master 7cc86386; same parse failure on 6c726d8)
Database: Oracle (BusinessObjects @Prompt macros)
Tips:
Standalone forms such as x IN @Prompt(p1) or SELECT @f(1) fail on both commits; the corpus statement is the only place this surfaces in the repo.
The timing impact is real but predates the current master: on 6c726d8 the JMH score described an incomplete parse of the corpus.
AI disclosure: this issue was prepared with AI coding agents, reviewed and revised line by line by me.
Failing SQL Feature:
src/test/resources/net/sf/jsqlparser/performance.sqlcontains BusinessObjects@Prompt(...)macros that JSQLParser cannot parse (and, as far as I can tell, never could: the statement fails at the same position on6c726d8and on current master, standalone or as part of the file).parseStatementssilently returnednullwhen a statement failed. As a consequenceJSQLParserBenchmark.parseSQLStatementsproduced timing numbers while the corpus was not fully parsed (thenullresult was simply consumed). With the fix, the benchmark now correctly fails fast with theParseExceptionbelow.@Promptstatement be repaired or supported?SQL Example:
Excerpt of the failing spot (corpus line 497):
Repro on both commits (statement alone, corpus lines 196-1688):
Software Information:
7cc86386; same parse failure on6c726d8)@Promptmacros)Tips:
x IN @Prompt(p1)orSELECT @f(1)fail on both commits; the corpus statement is the only place this surfaces in the repo.6c726d8the JMH score described an incomplete parse of the corpus.