Thanks Julian, I’ve fired a JIRA and start working on this.

Best,
Danny Chan
在 2019年6月28日 +0800 AM2:44,Julian Hyde <[email protected]>,写道:
> Unifying in general sounds like a good idea. I haven’t thought through the 
> specifics in this case.
>
> Note that each time we generate a parser using JavaCC — which we do in 
> several places in the code — it generates a new exception class. We don’t 
> want to use those generated classes. We would like to convert those 
> exceptions to non-generated exception classes, and I believe we do.
>
> It definitely be good if locations are converted to use SqlParserPos, i.e. 
> (startCol, startLine, endCol, endLine) rather than (col, line) or a position 
> embedded in a string.
>
> Julian
>
>
> > On Jun 26, 2019, at 3:54 AM, Danny Chan <[email protected]> wrote:
> >
> > Now our parser has 3 kinds of throws behavior
> >
> > [1] Use JavaCC generateParseException
> > [2] Use SqlUtil.newContextException
> > [3] Use JavaCC ParseExecption directly
> >
> > For [1] and [2] there is a position info in the exception message, a throw 
> > may like:
> > > From line 1, column 15 to line 1, column 26:
> >
> > But for 3, we only have the error message without pos info, which is not 
> > that user friendly when
> > the sql text is huge (there are 10 occurance in our parser).
> >
> > So shall we unify them ? E.G. Use only 1 and 2 is enough for all the cases, 
> > the 2 can totally replace 3.
> >
> > Do you think this is necessary ?
> >
> >
> > [1] 
> > https://github.com/apache/calcite/blob/69c8053cd98ec65c55fa1c3b282b076536ab758f/core/src/main/codegen/templates/Parser.jj#L4494
> > [2] 
> > https://github.com/apache/calcite/blob/69c8053cd98ec65c55fa1c3b282b076536ab758f/core/src/main/codegen/templates/Parser.jj#L386
> > [3] 
> > https://github.com/apache/calcite/blob/69c8053cd98ec65c55fa1c3b282b076536ab758f/core/src/main/codegen/templates/Parser.jj#L601
> >
> > Best,
> > Danny Chan
>

Reply via email to