I have committed this patch with svn 208770.

Suresh Thalamati (JIRA) wrote:
     [ http://issues.apache.org/jira/browse/DERBY-390?page=all ]

Suresh Thalamati updated DERBY-390:
-----------------------------------

    Attachment: derby390.diff

patch to handle case-sensitive SQL identifiers correctly. Import/export procedure parameters for table names , schema names , columns names should be passed in the case-sensitive form if they are quoted identfiers and in upper case if they are not quoted SQL identifiers. Import/export will generate insert/select statements with quoted table names , schema name and column names to be execute on the database after this patch.


Ran debyall test suite , all tests passed. I will create sub-task to modify the documentaion for import/export , once the patch is accepted. I would like this fix to be ported to 10.1 also.



Import/export  fails   with table names that are quoted in SQL  like import  to table  
"Order"
----------------------------------------------------------------------------------------------

        Key: DERBY-390
        URL: http://issues.apache.org/jira/browse/DERBY-390
    Project: Derby
       Type: Bug
   Versions: 10.0.2.1
   Reporter: Suresh Thalamati
   Assignee: Suresh Thalamati
Attachments: derby390.diff

import  fails   irrespective off whether the name is passed as  a quoted 
sttring or not:
ij> call SYSCS_UTIL.SYSCS_IMPORT_TABLE (null, '"ORDER"' , 'order.dat' ,
                                     null, null, null, 0) ;
ERROR XIE0M: Table '"ORDER"' does not exist.
ij> call SYSCS_UTIL.SYSCS_IMPORT_TABLE (null, 'ORDER' , 'order.dat' ,
                                     null, null, null, 0) ;
ERROR 38000: The exception 'SQL Exception: Syntax error: Encountered "ORDER" at
line 1, column 13.' was thrown while evaluating an expression.
ERROR 42X01: Syntax error: Encountered "ORDER" at line 1, column 13.
Export works with  a quoted table name but fails if the name is not quoted :
call SYSCS_UTIL.SYSCS_EXPORT_TABLE (null, '"ORDER"' , 'order.dat' ,
                                null, null, null) ;   --- PASSES
ij> call SYSCS_UTIL.SYSCS_EXPORT_TABLE (null, 'ORDER' , 'order.dat' ,
                                null, null, null) ;
ERROR 38000: The exception 'SQL Exception: Syntax error: Encountered "ORDER" at
line 1, column 15.' was thrown while evaluating an expression.
ERROR 42X01: Syntax error: Encountered "ORDER" at line 1, column 15.
Repro:
connect 'jdbc:derby:wombat;create=true';
create table "ORDER"(a int ) ;
insert into "ORDER" values(1) ;
insert into "ORDER" values(2) ;
insert into "ORDER" values(3) ;
call SYSCS_UTIL.SYSCS_EXPORT_TABLE (null, '"ORDER"' , 'order.dat' ,
                                null, null, null) ;
-- Perform Import
call SYSCS_UTIL.SYSCS_IMPORT_TABLE (null, '"ORDER"' , 'order.dat' ,
                                     null, null, null, 0) ;
ERROR XIE0M: Table '"ORDER"' does not exist.
call SYSCS_UTIL.SYSCS_IMPORT_TABLE (null, 'ORDER' , 'order.dat' ,
                                     null, null, null, 0) ;
ERROR 38000: The exception 'SQL Exception: Syntax error: Encountered "ORDER" at
line 1, column 13.' was thrown while evaluating an expression.
ERROR 42X01: Syntax error: Encountered "ORDER" at line 1, column 13.
Note: I think the same problem will occur with when quoted schema Names and column names are passed to import/export procedures.



Reply via email to