From 8cbfa988f6f527dfa17b5b45112441f105339330 Mon Sep 17 00:00:00 2001 From: Michael Krelin Date: Wed, 21 Feb 2007 12:54:42 +0000 Subject: dev-perl/DBD-InterBase --- (limited to 'dev-perl/DBD-InterBase/files/DBD-InterBase-0.46-column_info.patch') diff --git a/dev-perl/DBD-InterBase/files/DBD-InterBase-0.46-column_info.patch b/dev-perl/DBD-InterBase/files/DBD-InterBase-0.46-column_info.patch new file mode 100644 index 0000000..17e9d5a --- a/dev/null +++ b/dev-perl/DBD-InterBase/files/DBD-InterBase-0.46-column_info.patch @@ -0,0 +1,60 @@ +diff --git a/InterBase.pm b/InterBase.pm +index bdd041e..f615cad 100644 +--- a/InterBase.pm ++++ b/InterBase.pm +@@ -210,6 +210,55 @@ sub table_info + + return $sth; + } ++ ++sub column_info ++{ ++ my $dbh = shift; ++ my ($catalog,$schema,$table,$column) = (@_); ++ my (@search)=(); ++ if(defined($table) && length($table)) { ++ push @search, "r.rdb\$relation_name ". ($table =~ /[_%]/ ? "LIKE " : "= ") .$dbh->quote($table); ++ } ++ if(defined($column) && length($column)) { ++ push @search, "rf.rdb\$field_name ". ($column =~ /[_%]/ ? "LIKE " : "= ") .$dbh->quote($column); ++ } ++ my $wherefilter = join ' AND ','',@search; ++ my $sql = qq! ++ SELECT ++ NULL TABLE_CAT, ++ r.rdb\$owner_name TABLE_SCHEM, ++ r.rdb\$relation_name TABLE_NAME, ++ rf.rdb\$field_name COLUMN_NAME, ++ t.rdb\$type_name DATA_TYPE, ++ t.rdb\$type_name TYPE_NAME, ++ f.rdb\$character_length COLUMN_SIZE, ++ f.rdb\$field_length BUFFER_LENGTH, ++ NULL DECIMAL_DIGITS, ++ NULL NUM_PREC_RADIX, ++ rf.rdb\$null_flag NULLABLE, ++ rf.rdb\$description REMARKS, ++ rf.rdb\$default_value COLUMN_DEF, ++ t.rdb\$type_name SQL_DATA_TYPE, ++ NULL SQL_DATETIME_SUB, ++ f.rdb\$field_length CHAR_OCTET_LENGTH, ++ rf.rdb\$field_position ORDINAL_POSITION, ++ rf.rdb\$null_flag IS_NULLABLE ++ FROM ++ rdb\$relations r ++ JOIN rdb\$relation_fields rf ON (r.rdb\$relation_name=rf.rdb\$relation_name) ++ JOIN rdb\$fields f ON (rf.rdb\$field_source=f.rdb\$field_name) ++ JOIN rdb\$types t ON (f.rdb\$field_type=t.rdb\$type) ++ WHERE ++ ((r.rdb\$system_flag=0) OR (r.rdb\$system_flag IS NULL)) AND (r.rdb\$view_source IS NULL) ++ $wherefilter ++ ORDER BY r.rdb\$owner_name, r.rdb\$relation_name, rf.rdb\$field_position ++ !; ++#print "[[$sql]]"; ++ my $sth = $dbh->prepare($sql); ++ $sth->execute() or return undef; ++ ++ return $sth; ++} + + sub ping + { -- cgit v0.9.0.2