I only have six questions so far :-)
1. Is this a good summary of our story to date?
* There is (will be) a database handle method in DBI,
get_info(), that will call a get_info() method in each DBD
that supports it and return the equivalent for that driver of
what DBD::ODBC now returns with $dbh->func( $info_type,
'GetInfo').
* The same information will be available via a database handle
attribute $value = $dbh->{ $info_type }.
* The $info_type parameter is an integer. These integers can be
found in the docs for ODBC or SQL/CLI or in the DBI %GetInfo
which has as keys the names of the constants and as values
their integer code number
e.g. $GetInfo{SQL_DBMS_NAME} == 17
and therefore DBD::ODBC->get_ifno(17)
will return 'ACCESS' if MS-Access is being used.
The most recent version of %GetInfo is found in:
http:[EMAIL PROTECTED]/msg00559.html
2. I seem to remember a GetInfo( 'All' ) call from somewhere.
Will that be supported to return a hash of all GetInfo
values?
3. Will DBI get_info() support string input e.g. let it figure
out that get_info('SQL_DBMS_NAME') is the same as
get_info(17)?
4. What about items not in one of the list of constants? Will
these be handled by something else or can we use
SQL_USER_DEFINED_FOO or SQL_DBI_FOO settings? For example, I
don't see a constant for comment styles. Or suppose there
are extensions e.g. DBD::CSV's case insensitive CLIKE?
5. Will there be a convenient way to query sub-constants? For
example, will one be able to only find a bitmask for
SQL_OJ_CAPABILITIES as a whole and have to interpret that
manually to find out if LEFT joins are supported? Or will one
be able to directly get at the SQL_OJ_LEFT (the first bit of
SQL_OJ_CAPABILITIES) setting by letting get_info() interpret
the bitmask?
6. Is it possible to encourage DBD drivers to keep all of the
get_info information in a maximally legible fashion? For
example there could easily be a function (which I'd be glad
to supply) which could recieve a string like the one below
and return the bitmask 0x00000037:
SQL_OJ_CAPABILITIES
/*
SQL_OJ_LEFT + left joins SUPPORTED
SQL_OJ_RIGHT + right joins SUPPORTED
SQL_OJ_FULL + full joins SUPPORTED
SQL_OJ_NESTED - nested joins not supported
SQL_OJ_NOT_ORDERED + on clause col order not required
SQL_OJ_INNER + inner joins SUPPORTED
SQL_OJ_ALL_COMPARISON_OPS - on clause comp op must be =
*/
Enough for now.
--
Jeff