db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Hillegas <Richard.Hille...@Sun.COM>
Subject Re: Collation feature discussion
Date Fri, 30 Mar 2007 15:36:58 GMT
Mamta Satoor wrote:
> lots of thoughtful analysis...
>  
>
> The character set specification for string literals is not as well 
> defined as for <column definitions> but my proposal here will work 
> within SQL spec boundaries. SQL spec Section 5.3<literal>, Syntax Rule 
> 14b says that if the character set is not specified for character 
> string literal, then character string literal's character set will be 
> the character set of the SQL-client module. Derby does not implement 
> SQL-client module, but definition of SQL-client module in Section 13.1 
> says that SQL-client module definition has mandatory <module name 
> clause> which is defined in Section 13.2 <module name clause>. The 
> Syntax Rule 4 in this section says that if a character set is not 
> specified for the SQL-client module, then it's character set is 
> implementation-defined. I think we can use this implementation-defined 
> character set for a SQL-client module to our advantage. We can define 
> Derby's implementation-defined character set for SQL-client module as 
> current schema's character set and hence the current schema's 
> character set will become string literal's character set. Hence, if 
> the string literal reference is made while the current schema is user 
> schema, then the character set associated with string literal will be 
> USER and if the string literal reference is made while the current 
> schema is system schema, then the character set associated with the 
> string literal will be SQL_IDENTIFER. Going this path will also make 
> sure that our metadata queries don't break.
>  
I'm a bit uneasy about this interpretation. It seems to me that the 
string literal has a default character set and collation. Those are 
determined at the database level. They can be overridden at the session 
level and the client-module level. I think your interpretation of 
13.2/SR4 is a bit adventurous. To me, 13.2/SR4 says that there is a 
single, implementation-defined implicit character set for a 
client-module and not a number of different implicit character sets 
which shift based on your current schema.

Regards,
-Rick

Mime
View raw message