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

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

What is the meaning of "precision" for character strings in the result set? The 
Javadoc says: "For character data, this is the length in characters." But does 
this mean the actual column's length or the maximum length of the column type? 
If we have a VARCHAR(n), I think "n" just as reasonable as LENGTH(<col>) 
here... but I am not sure. If it were "n", I guess this issue would go away.. 
In any case, solving this just for the literal case isn't enough, I think. We 
need to handle the general case. 
What should happen if an UPPER(col) leads to column type overflow? The SQL 
standard says "warning: truncation", cf. section 6.29 <string value function>, 
GR 6) g) ii).
                
> Precision for UPPER function is wrong if the returned value is longer than 
> the literal argument
> -----------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5525
>                 URL: https://issues.apache.org/jira/browse/DERBY-5525
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.8.2.2
>            Reporter: Knut Anders Hatlen
>
> Seen in ij in a database with territory based collation and German locale:
> ==vv= COPIED FROM IJ CONSOLE =vv==
> ij> VALUES UCASE('Straßenbahn');
> 1
> -----------
> STRASSENBA&
> 1 Zeile ausgewählt
> ==================================
> And with JDBC calls:
>     Connection c = DriverManager.getConnection(
>             "jdbc:derby:memory:db;create=true;territory=de_DE;" +
>             "collation=TERRITORY_BASED");
>     Statement s = c.createStatement();
>     ResultSet rs = s.executeQuery("values upper('Straße')");
>     System.out.println(rs.getMetaData().getPrecision(1));
>     rs.next();
>     System.out.println(rs.getString(1));
> This prints
> 6
> STRASSE
> The precision is wrong, since the returned value is 7 characters long.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to