Steffen Goeldner wrote:
> QuotedIdentifierStart == QuotedIdentifierEnd in ODBC (see
> SQLGetInfo, SQL_IDENTIFIER_QUOTE_CHAR).
> Of course, your proposal is more general.
Yes, in most cases they are the same and SQL92 says they should be but
there are cases like MS Access that use [ ], although it does accept
double quotes too. I thought it would help make it more flexible for the
sake of a byte or two of RAM.
>> QuotedIdentifiers (boolean, inherited), disabled by default
>> indicates if quoted identifiers are in use
>
> ???
This attribute indicates if the current connection is using (requires,
allows) quoted identifiers. If it is not set then the QuoteIdentifier
method shopuld return the identifier unquoted.
Some DBMSs and APIs such as JDBC and Trabnsact SQL in Sybase Adaptive
Server Enterprise don't allow quoted identifiers by default and this
feature must be enabled by setting a database option for the connection.
This is one of the reasons why this issue of quoting needs to be cleaned up.
>> TableIdentifiers (arrayref, inherited), [1,2] by default
>> list of identifiers that uniquely describe a table,
>> an array of zero based column indexes as returned from
$dbh->table_info()
>
> We reflected on this point a long time: Do we really need that?
> Maybe a driver returns a catalog name, but does not permit it in
> SQL statements? Do you have an example?
Yes, MS Access returns the the path to the database file as the catalog
name, Sybase Studio Anywhere sets this to null, and MS-SQL server uses
the name of the Database. So for Access connections, including the
catalog identifier would cause an error, but having the option of using
the catalog name (not currently implented in tables()) might be useful
when dealing with MS-SQL server connections.
--
Simon Oliver