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.