zhouqingqing/qpmodel

REPEAT of SUBSTRING of CONCAT fails

pkommoju opened this issue · 0 comments

select repeat((substring('Pacific South', 9, 13) || ' Pack' || 'ard'), 3) from a;

select substring(upper('mat') || upper('he') || upper('mat') || upper('ics'), 3, 8) from a;

Fail in the parser:
Unhandled exception. qpmodel.sqlparser.AntlrParserException: expr->result_column->select_core->select_stmt->sql_stmt->sql_stmt_list->parse : 1|50|[@17,50:51='||',<14>,1:50]|no viable alternative at input 'repeat((substring('Pacific South', 9, 13) ||'
at qpmodel.sqlparser.SyntaxErrorListener.SyntaxError(IRecognizer recognizer, IToken offendingSymbol, Int32 line, Int32 charPositionInLine, String msg, RecognitionException e) in D:\qpmodel\qpmodel\SQLParser.cs:line 55
at Antlr4.Runtime.ProxyErrorListener`1.SyntaxError(IRecognizer recognizer, Symbol offendingSymbol, Int32 line, Int32 charPositionInLine, String msg, RecognitionException e)
at Antlr4.Runtime.Parser.NotifyErrorListeners(IToken offendingToken, String msg, RecognitionException e)
at Antlr4.Runtime.DefaultErrorStrategy.NotifyErrorListeners(Parser recognizer, String message, RecognitionException e)

Earlier (Aug 28, 2020) the failure was in ExecSQL.().

Another related one, possibly the problem is in SUBSTRING.

select substring(upper('mat') || upper('he') || upper('mat') || upper('ics'), 3, 8) from a;