Tim Bunce wrote:
>
>
> Does double-quoting work, and provide case sensitivity (as per the standard)?
Let me just check wavelengths here. Delimited (double quoted)
identifiers *must* be case sensitive and stored in mixed case. Other
(non-quoted) identifiers *must not* be case sensitive but can also be
stored in mixed case (that's left to the implementation).
So going that route, this is how I have things working in DBD::CSV:
$dbh->do(q/ CREATE TABLE x ( OOg INT, "BOOg" CHAR ) /);
$sth=$dbh->prepare(q/ SELECT oog FROM x /); #1 OK
$sth=$dbh->prepare(q/ SELECT "BOOg" FROM x /); #2 OK
$sth=$dbh->prepare(q/ SELECT "boog" FROM x /); #3 NO SUCH COLUMN
$sth=$dbh->prepare(q/ SELECT boog FROM x /); #4 NO SUCH COLUMN
$sth=$dbh->prepare(q/ SELECT BOOg FROM x /); #5 NO SUCH COLUMN
my $sth=$dbh->prepare("SELECT * FROM x");
print join ',' @{$sth->{NAME}} #6 prints OOg,BOOg
$sth->fetchrow_hashref->{OOg} # OK
$sth->fetchrow_hashref->{BOOg} # OK
$sth->fetchrow_hashref->{oog} # NO SUCH HASH KEY
$sth->fetchrow_hashref->{boog} # NO SUCH HASH KEY
$sth->fetchrow_hashref->{q/"BOOg"/} # NO SUCH HASH KEY
Is that how it should work assuming I want to store in mixed case? (all
this leaving aside aliases).
DBD::Pg differs from the above in that it uses oog and BOOg in the
{NAME} and hashref, otherwise the same.
DBD::ODBC with Access uses OOg and BOOg in the {NAME} and hashref as
above, but permits 3,4,5!
--
Jeff