rewrite _table_columns for Sybase as a join instead of sub-select
Rafael Kitover [Thu, 14 Jan 2010 06:44:37 +0000 (06:44 +0000)]
lib/DBIx/Class/Schema/Loader/DBI/Sybase.pm

index cfcd57b..96e2fe5 100644 (file)
@@ -59,7 +59,12 @@ sub _table_columns {
     my ($self, $table) = @_;
 
     my $dbh = $self->schema->storage->dbh;
-    my $columns = $dbh->selectcol_arrayref(qq{SELECT name FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = @{[ $dbh->quote($table) ]} AND type = 'U')});
+    my $columns = $dbh->selectcol_arrayref(qq{
+SELECT c.name
+FROM syscolumns c JOIN sysobjects o
+ON c.id = o.id
+WHERE o.name = @{[ $dbh->quote($table) ]} AND o.type = 'U'
+});
 
     return $columns;
 }