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

Mamta A. Satoor commented on DERBY-2955:
----------------------------------------

Checked in a fix for this in main with revision 557886 with following commit 
comments

We used to set the collation type of character string columns in the generate 
phase rather than the bind phase of create table. But this will cause problem 
with following query
       CREATE TABLE STAFF9 (EMPNAME CHAR(20),
       CONSTRAINT STAFF9_EMPNAME CHECK (EMPNAME NOT LIKE 'T%'))
For the query above, when run in a territory based db, we need to have the 
correct collation set in bind phase of create table so that when LIKE is 
handled in LikeEscapeOperatorNode, we have the correct collation set for 
EMPNAME otherwise it will throw an exception for 'T%' having collation of 
territory based and EMPNAME having the default collation of UCS_BASIC. The 
change in this commit will ensure that character string columns get their 
collation set early on in the bind phase so when the bind code for LIKE kicks 
in, we are all set with correct collation information.


> ERROR 42ZA2 creating table with check constraint with literal comparison
> ------------------------------------------------------------------------
>
>                 Key: DERBY-2955
>                 URL: https://issues.apache.org/jira/browse/DERBY-2955
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.4.0.0
>            Reporter: Kathey Marsden
>            Assignee: Mamta A. Satoor
>
> I cannot create the following table with a collated database.  
> EMPNAME should be TERRITORY_BASED collation I think, but perhaps is not 
> initialized in time for the check constraint processing.
> ij> connect 
> 'jdbc:derby:nordb;create=true;territory=no_NO;collation=TERRITORY_BASED';
> ij> CREATE TABLE STAFF9 (EMPNUM    CHAR(3) NOT NULL
>             CONSTRAINT STAFF9_PK PRIMARY KEY,
>             EMPNAME  CHAR(20),
>             GRADE DECIMAL(4),
>             CITY   CHAR(15),
>             CONSTRAINT STAFF9_EMPNAME CHECK (EMPNAME NOT LIKE 'T%'));
> ERROR 42ZA2: Operand of LIKE predicate with type CHAR(20) and collation 
> UCS_BASIC is not compatable with LIKE pattern op
> erand with type CHAR(2) and collation TERRITORY_BASED.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to