db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dag H. Wanvik (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-3664) Trailing white space in varchar field is trimmed off.
Date Wed, 07 May 2008 13:52:55 GMT

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

Dag H. Wanvik commented on DERBY-3664:
--------------------------------------

Shawn> I changed LOGIN VARCHAR(60) to LOGIN CHAR(60) and it still behaves the same. 

The docs for CHAR datatype says:

  "When comparison boolean operators are applied to CHARs, the shorter
   string is padded with spaces to the length of the longer string."

so I guess thats to be expected as well. 

The SQL standard allows this behavior to be controlled for collations
with the <pad characteristic> when a collation is defined. It is
implementation defined what the pad characteristic is for the default
collation, see section 10.5, general rule 3) in ISO/IEC 9075-2:2003.
So Derby seems to have the PAD SPACE characteristic.
It would be good to add the possibility of NO PAD also! Any takers? :)


> Trailing white space in varchar field is trimmed off.
> -----------------------------------------------------
>
>                 Key: DERBY-3664
>                 URL: https://issues.apache.org/jira/browse/DERBY-3664
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.3.1.4, 10.3.2.1, 10.4.1.3
>         Environment: Win XP, Derby 10.4.1.3
>            Reporter: Shawn Aucoin
>
> When executing an insert statement with a varchar field containing trailing whitespace,
the trailing whitespace is removed.  This results in unique constraint issues.  If  index
is not unique, select * from login where login = 'first_test'  will return both records. 
Preceeding whitespace doesn't appear to be affected.  I tested this from IJ and from java
api.  I included an example below
> CREATE TABLE LOGIN
> (
> 	LOGIN_ID INT PRIMARY KEY,
> 	LOGIN VARCHAR(60)
> );
> CREATE UNIQUE INDEX LOGIN_LOGIN_IDX 
> ON LOGIN (LOGIN DESC);
> insert into login (LOGIN_ID, LOGIN) values (1, 'first_test');
> insert into login (LOGIN_ID, LOGIN) values (2, 'first_test ');
> Now, i fully admit that there is no logical reason for trailing whitespace, but it is
client data that i am dealing with and I may not be able to get it changed.  Thanks, derby
is a sweet product!

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


Mime
View raw message