db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leshan Bashitha Wijegunawardana (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-693) Incorrect line number in the error message when parser throws syntax error in some specific examples
Date Fri, 14 Oct 2016 03:32:20 GMT

    [ https://issues.apache.org/jira/browse/DERBY-693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15574047#comment-15574047
] 

Leshan Bashitha Wijegunawardana commented on DERBY-693:
-------------------------------------------------------

Bryan, I tried with commenting all the line incrementing parts with the 'line' field. But
it doesn't give any change for the line number in the error message giving. Error message
is giving always at line 2 for the second select. I tried with giving '0' for the line field
in the class which is originally given as line = 1. But then also no change. I hope that line
number is incrementing wrongly is not directly in this piece of code. 

> Incorrect line number in the error message when parser throws syntax error in some specific
examples
> ----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-693
>                 URL: https://issues.apache.org/jira/browse/DERBY-693
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.1.6
>            Reporter: Mamta A. Satoor
>            Assignee: Leshan Bashitha Wijegunawardana
>            Priority: Minor
>              Labels: derby_triage10_5_2
>         Attachments: w.sql
>
>
> After connecting to a database through ij, parser returns correct line number for the
sql "select" the first time around but it returns incorrect line number when the same sql
is rexecuted, as shown below
> $ java org.apache.derby.tools.ij
> ij version 10.2
> ij> connect 'jdbc:derby:c:/dellater/db1';
> ij> select
> ;
> ERROR 42X01: Syntax error: Encountered "<EOF>" at line 1, column 8.
> ij> select
> ;
> ERROR 42X01: Syntax error: Encountered "<EOF>" at line 2, column 8.
> ij>
> This is caused by UCode_CharStream's UpdateLineColumn method. When the sql "select" is
executed the first time, the parser comes to UpdateLineColumn method for trailing \r and then
for trailing \n for the first line "select". The trailing \n causes the prevCharIsLF to be
set to true. Since this sql is incorrect by itself, parser will throw a syntax error. After
the exception and before the processing of next sql "select", this prevCharIsLF flag does
not get set to false(this is the problem). When the first character "s" is read, UpdateLineColumn
checks if prevCharIsLF set to true and if yes, it increments(incorrectly) the line number
to 2 and that is why the second time around, execution of "select" gives syntax error at line
2 rather than line 1.
> This also causes problem with the optimizer hints when they are used in incorrect context
as shown below. 
> $ java org.apache.derby.tools.ij
> ij version 10.2
> ij> connect 'jdbc:derby:c:/dellater/db1';
> ij> -- derby-properties
> select * from t1;
> ERROR 42X01: Syntax error: Encountered "derby-properties" at line 1, column 4.
> ij> -- derby-properties
> select * from t1;
> ERROR 42X01: Syntax error: Encountered "derby-properties" at line 2, column 4.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message