bug fixes that prevented creating ore prerequisites from being created for mig bibload
[migration-tools.git] / mig-bin / mig-loadbibs
index d89dfb6..cb03158 100755 (executable)
@@ -96,27 +96,17 @@ foreach my $arg (@ARGV) {
     }
 }
 
-$dbh->do(qq{
-       DO $$
-       DECLARE
-       t   BOOLEAN;
-       BEGIN
-       SELECT EXISTS(SELECT 1 FROM information_schema.tables WHERE table_schema = '$MIGSCHEMA' AND table_name = 'biblio_record_entry') INTO t;
-       IF t = FALSE THEN
-       PERFORM migration_tools.build_specific_base_staging_table ('$MIGSCHEMA','biblio.record_entry');
-       END IF;
-       END $$;
-});
+create_child_table($dbh);
 
 # normal stage table creation
 if ($append_is_false) { create_stage_table($dbh); }
 
-#sanity check and create stage table if --append is set but there isn't a stage table
+#sanity check and create stage table if it doesn't exist 
 my $query = "SELECT EXISTS(SELECT 1 FROM information_schema.tables WHERE table_schema = '$MIGSCHEMA' AND table_name = 'biblio_record_entry_stage')";
 my $qsth = $dbh->prepare($query);
 $qsth->execute();
 my $f;
-while (my @row = $sth->fetchrow_array) { $f = ($row[0] }
+while (my @row = $qsth->fetchrow_array) { $f = $row[0]; }
 if ($f eq 'f') { create_stage_table($dbh); }
 
 if ($append_is_false == 0) { create_stage_table($dbh); }
@@ -153,15 +143,32 @@ print "Finis.\n";
 
 sub create_stage_table {
        my $dbh = shift;
-    $dbh->do(qq{
-        DROP TABLE IF EXISTS $MIGSCHEMA.biblio_record_entry_stage;
-        CREATE UNLOGGED TABLE $MIGSCHEMA.biblio_record_entry_stage (
+
+    $dbh->do("DROP TABLE IF EXISTS $MIGSCHEMA.biblio_record_entry_stage;");
+    $dbh->do("CREATE UNLOGGED TABLE $MIGSCHEMA.biblio_record_entry_stage (
             l_bib_id    TEXT,
             x_source    TEXT,
             x_warnings  TEXT,
             x_migrate   BOOLEAN DEFAULT TRUE
-        ) INHERITS ($MIGSCHEMA.biblio_record_entry);
-    });
+        ) INHERITS ($MIGSCHEMA.biblio_record_entry);");
+
+    return();
+}
+
+sub create_child_table {
+    my $dbh = shift;
+
+    $dbh->do("DO \$\$ 
+        DECLARE
+            t   BOOLEAN;
+        BEGIN
+        SELECT EXISTS(SELECT 1 FROM information_schema.tables WHERE table_schema = '$MIGSCHEMA' AND table_name = 'biblio_record_entry') INTO t;
+        IF t = FALSE THEN
+            PERFORM migration_tools.build_specific_base_staging_table ('$MIGSCHEMA','biblio.record_entry');
+        END IF;
+        END \$\$;");
+
+    return ();
 }
 
 sub clean_marc {