On Mon, Sep 01, 2008 at 03:28:48PM +0200, H.Merijn Brand wrote:
> > > > > 
> > > > > http://search.cpan.org/~timb/DBI-1.607/lib/DBI/DBD.pm#Generating_the_get_info_method
> > > > > 
> > > > > shows the perl command without quotes and parens, so it is completely
> > > > > useless as an example
> > > > > 
> > > > > perl -MDBI::DBD::Metadata -we "write_getinfo_pm (qw{ dbi:ODBC:foo_db 
> > > > > username password Driver })"
> > > > > 
> > > > > would be a portable solution to not mix up the quotes on WinShit
> > > > 
> > > > Patches welcome. Want a commit bit (if you don't have one already)?
> > > 
> > > These are the patches I feel comfortable with, as they obviously will
> > > not clash with *opinions*. Is the repo in git? in that case, I'll take
> > > the bit. If it is in svn, I'll pass.
> > 
> > svn, pity.
> 
> OK, patch:

Thanks. Applied.

> > > > > As get_info (29) now returns a TRUE value, the 'tables ()' method is
> > > > > using a different strategy to build the list it returns:
> > > > > 
> > > > >     sub tables
> > > > >     {
> > > > >         my ($dbh, @args) = @_;
> > > > >         my $sth    = $dbh->table_info (@args[0..4]) or return;
> > > > >         my $tables = $sth->fetchall_arrayref or return;
> > > > >         my @tables;
> > > > > »       if ($dbh->get_info (29)) { # SQL_IDENTIFIER_QUOTE_CHAR
> > > > > »           @tables = map { $dbh->quote_identifier (@{$_}[0,1,2]) } 
> > > > > @$tables;
> > > > > »           }

> > > > > Unify has no support for CATALOG's, so the values in info are not
> > > > > defined, but still used in the map, causing all my tables no showing 
> > > > > up
> > > > > with and empty "". in front of it, which is illegal to the database :(
> > > > 
> > > > Seems like your quote_identifier() method is doing the wrong thing.
> > > > The docs for quote_identifier say:
> > > 
> > > I do not have a quote_identifier () method. I rely on DBI doing the
> > > right thing.
> > 
> > I believe the DBI's quote_identifier does the right thing.
> > 
> > I'd guess that the CATALOG value returned by table_info is an empty
> > string but should be an undef.
> 
> Not defined at all, so I *guess* that is the same as undefined.

I wasn't very clear (and was actually partly misleading). Sorry.

What I meant was that the TABLE_CAT and/or TABLE_SCHEM columns in the
data returned by your table_info() method are probably empty strings but
should be undefs.

What does
    Data::Dumper::Dumper($dbh->table_info(...)->fetchall_arrayref)
show for an example table?

Tim.

Reply via email to