]> git.sur5r.net Git - bacula/bacula/commitdiff
Lets call it COMMIT and not END as that seems to be the counterpart of BEGIN for...
authorMarco van Wieringen <mvw@planets.elm.net>
Mon, 5 Apr 2010 13:42:24 +0000 (15:42 +0200)
committerMarco van Wieringen <mvw@planets.elm.net>
Fri, 9 Apr 2010 11:34:19 +0000 (13:34 +0200)
Updated Ingres lock queries to only start a transaction as the current SQL is not valid Ingres SQL.

bacula/src/cats/dbi.c
bacula/src/cats/ingres.c

index fad2d03fa49b93f6419663133572cd63f69870ec..dd2a9bba9c1897fd3d716c50ac3350fdae38709b 100644 (file)
@@ -1274,7 +1274,10 @@ const char *my_dbi_batch_lock_path_query[4] = {
    /* SQLite */
    "BEGIN",
    /* SQLite3 */
-   "BEGIN"};
+   "BEGIN",
+   /* Ingres */
+   "BEGIN"
+};
 
 const char *my_dbi_batch_lock_filename_query[4] = {
    /* Mysql */
@@ -1284,7 +1287,10 @@ const char *my_dbi_batch_lock_filename_query[4] = {
    /* SQLite */
    "BEGIN",
    /* SQLite3 */
-   "BEGIN"};
+   "BEGIN",
+   /* Ingres */
+   "BEGIN"
+};
 
 const char *my_dbi_batch_unlock_tables_query[4] = {
    /* Mysql */
@@ -1314,7 +1320,13 @@ const char *my_dbi_batch_fill_path_query[4] = {
    /* SQLite3 */
    "INSERT INTO Path (Path)"
    " SELECT DISTINCT Path FROM batch"
-   " EXCEPT SELECT Path FROM Path"};
+   " EXCEPT SELECT Path FROM Path",
+   /* Ingres */
+   "INSERT INTO Path (Path) "
+   "SELECT a.Path FROM "
+   "(SELECT DISTINCT Path FROM batch) AS a "
+   "WHERE NOT EXISTS (SELECT Path FROM Path WHERE Path = a.Path) "
+};
 
 const char *my_dbi_batch_fill_filename_query[4] = {
    /* Mysql */
@@ -1335,7 +1347,14 @@ const char *my_dbi_batch_fill_filename_query[4] = {
    /* SQLite3 */
    "INSERT INTO Filename (Name)"
    " SELECT DISTINCT Name FROM batch "
-   " EXCEPT SELECT Name FROM Filename"};
+   " EXCEPT SELECT Name FROM Filename",
+   /* Ingres */
+   "INSERT INTO Filename (Name) "
+   "SELECT a.Name FROM "
+   "(SELECT DISTINCT Name FROM batch) as a "
+   "WHERE NOT EXISTS "
+   "(SELECT Name FROM Filename WHERE Name = a.Name)"
+};
 
 #endif /* HAVE_BATCH_FILE_INSERT */
 
index c8799a7cfd39e414eb2bd5584e23d6d8d2acd539..9d68edac4e039a734aadc836e4da263435ae10d8 100755 (executable)
@@ -561,7 +561,7 @@ int my_ingres_query(B_DB *mdb, const char *query)
       Dmsg0(500,"my_ingres_query: Start of transaction\n");
       mdb->transaction = true;
       return 0;
-   } else if (strcasecmp(new_query, "END") != NULL) {
+   } else if (strcasecmp(new_query, "COMMIT") != NULL) {
       /*
        * End of a transaction.
        */
@@ -776,12 +776,9 @@ char *my_ingres_copy_escape(char *dest, char *src, size_t len)
 }
 
 #ifdef HAVE_BATCH_FILE_INSERT
-const char *my_ingres_batch_lock_path_query = 
-   "BEGIN; LOCK TABLE Path IN SHARE ROW EXCLUSIVE MODE";
+const char *my_ingres_batch_lock_path_query = "BEGIN";
 
-
-const char *my_ingres_batch_lock_filename_query = 
-   "BEGIN; LOCK TABLE Filename IN SHARE ROW EXCLUSIVE MODE";
+const char *my_ingres_batch_lock_filename_query = "BEGIN";
 
 const char *my_ingres_batch_unlock_tables_query = "COMMIT";