]> jfr.im git - irc/SurrealServices/srsv.git/commitdiff
work around MySQL4.x SHOW TABLES for Schema.pm
authortabris <redacted>
Thu, 8 Sep 2011 19:08:50 +0000 (19:08 +0000)
committertabris <redacted>
Thu, 8 Sep 2011 19:08:50 +0000 (19:08 +0000)
git-svn-id: http://svn.tabris.net/repos/srsv@3569 70d4eda1-72e9-0310-a436-91e5bd24443c

branches/0.4.3/SrSv/DB/Schema.pm

index 1bdb235fb21631a854ae1d2c96df4da157f2e733..78ee1da62c8fd72f9029c3aca18caf6a4daa5acc 100644 (file)
@@ -70,18 +70,17 @@ sub check_schema() {
                connectDB();
                $disconnect = 1;
        }
-       my $findSchemaVer1 = $dbh->prepare("SHOW TABLES WHERE Tables_in_@{[sql_conf_mysql_db]}='srsv_schema'");
-       $findSchemaVer1->execute();
-       my ($found) = $findSchemaVer1->fetchrow_array();
-       $findSchemaVer1->finish();
+       # SHOW TABLES WHERE doesn't work for MySQL 4.x.
+       my $tables = $dbh->selectall_arrayref("SHOW TABLES");
+       my ($found, undef) = grep { m"srsv_schema" } map { $_->[0] } @$tables;
        if(defined $found) {
        } else {
                return 0;
        }
-       my $findSchemaVer2 = $dbh->prepare("SELECT `ver` FROM `srsv_schema`");
-       $findSchemaVer2->execute();
-       my ($ver) = $findSchemaVer2->fetchrow_array();
-       $findSchemaVer2->finish();
+       my $findSchemaVer = $dbh->prepare("SELECT `ver` FROM `srsv_schema`");
+       $findSchemaVer->execute();
+       my ($ver) = $findSchemaVer->fetchrow_array();
+       $findSchemaVer->finish();
        disconnectDB() if $disconnect;
        return $ver;
 }