I know we are not implmenting it, but I think the decision should include thinking about a future Derby where a single database will
support columns with different collations.   In that case what is
the "user" schema? Does this affect the decision?

Does collation association remain fixed to the compile time decision?
Does the result of the query change if executed under different schema's, or do we recognize a change in schema and recompile?

Mamta A. Satoor (JIRA) wrote:
String literal constants currently take the collation of the compilation schema 
but the wiki page 
http://wiki.apache.org/db-derby/BuiltInLanguageBasedOrderingDERBY-1478 expects 
USER schema collation.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: DERBY-2731
                 URL: https://issues.apache.org/jira/browse/DERBY-2731
             Project: Derby
          Issue Type: New Feature
          Components: SQL
    Affects Versions: 10.3.0.0
            Reporter: Mamta A. Satoor
            Assignee: Mamta A. Satoor


I checked in code some time back which sets the collation type of string 
literal to be same as the compilation schema. The advantage of this is that 
metadata queries will work without changes since those queries do character 
string literal comparisons.

But the wiki page at http://wiki.apache.org/db-derby/BuiltInLanguageBasedOrderingDERBY-1478 in Section Collation Determination, Rule 1) says that character string literal should always take the collation of user schema. This decision was based on the discussion in the Collation feature discussion thread at http://www.nabble.com/Collation-feature-discussion-tf3418026.html#a9675967. SQL spec defines the behavior here to be implementation defined (it says that in a convoluted way which can be found in the Collation feature discussion). But considering the impact it will have on the metadata queries (they will have to be changed so that we CAST character string literals so that they will take the collation of system schema and hence the comparison will not fail), should we reconsider our decision made on the wiki page.

Reply via email to