Dennis Cote wrote:
Ulrik Petersen wrote:
I guess the next question is: Can someone verify that this is part of the SQL standard?
Yes, it looks like this is part of the SQL standards, at least for SQL:1999 and SQL:2003.
They both define a column name or table name as an identifier (directly or indirectly). An identifier is a basically an initial alphabetic or ideographic character followed by one or more characters from a larger set of characters. This larger set of characters contains alphabetic, ideographic, decimal digit, identifier combining, underscore, alternate underscore, extender, identifier ignorable, and connector characters. The details of these character classes are given in the specs. I believe that the '$' character is an ideographic character. I'm not certain since the rules are all based on unicode character properties. This seems to agree with what others have reported using other database systems. It looks like SQLite would not be able to support this and continue to use its TCL type parameter names since the latter uses the '$' character as the initial character. If the '$' character is not an ideographic character (i.e. it falls into one of the other classes like identifer combining characters), then SQLite could continue to use the initial '$' character for its TCL parameter names.
I will see if I can find a list of these unicode character properties that will clarify this.
Dennis Cote

