NAME
DBD::Firebird::TableInfo::Basic - A base class for lowest-common denominator Interbase table_info() querying.
SYNOPSIS
# Add support for a hypothetical IB derivative
package DBD::Firebird::TableInfo::HypotheticalIBDerivative
@ISA = qw(DBD::Firebird::TableInfo::Basic);
# What table types are supported?
sub supported_types {
('SYSTEM TABLE', 'TABLE', 'VIEW', 'SPECIAL TABLE TYPE');
}
sub table_info {
my ($self, $dbh, $table, @types) = @_;
}
INTERFACE
- list_catalogs
-
$ti->list_catalogs($dbh); # $dbh->table_info('%', '', '')
Returns a statement handle with an empty result set, as IB does not support the DBI concept of catalogs. (Rule 19a)
- list_schema
-
$ti->list_schema($dbh); # $dbh->table_info('', '%', '')
Returns a statement handle with an empty result set, as IB does not support the DBI concept of schema. (Rule 19b)
- list_tables
-
$ti->list_tables($dbh, $table, @types); # $dbh->table_info('', '', # 'FOO%', # 'TABLE,VIEW');
Called in response to $dbh->table_info($cat, $schem, $table, $types).
$cat
and$schem
are presently ignored.This is the workhorse method that must return an appropriate statement handle of tables given the requested
$table
pattern and@types
. A blank$table
pattern means "any table," and an empty@types
list means "any type."@types
is a list of user-supplied, requested types.DBD::Firebird::db::table_info
will normalize the user-supplied types, stripping quote marks, uppercasing, and removing duplicates. - list_types
-
$tbl_info->list_types($dbh); # $dbh->table_info('', '', '', '%')
Called in response to $dbh->table_info('', '', '', '%'), returning a statement handle with a TABLE_TYPE column populated with the results of supported_types. (Rule 19c)
Normally not overridden. Override supported_types, instead.
- supported_types
-
$tbl_info->supported_types($dbh);
Returns a list of supported DBI TABLE_TYPE entries. The default implementation supports 'TABLE', 'SYSTEM TABLE' and 'VIEW'.
This method is called by the default implementation of
list_types
.