Review comment update for Query/Insert as a single txn.
diff --git a/listener.go b/listener.go
index 451fe07..f7b7157 100644
--- a/listener.go
+++ b/listener.go
@@ -15,6 +15,7 @@
package apidApigeeSync
import (
+ "database/sql"
"github.com/30x/apid-core"
"github.com/apigee-labs/transicator/common"
)
@@ -58,6 +59,13 @@
}
}
+func rollbackTxn (tx *sql.Tx) {
+ err := tx.Rollback()
+ if err != nil {
+ log.Panicf("Unable to rollback Transaction. DB in inconsistent state. Err {%v}", err)
+ }
+}
+
func processSqliteSnapshot(db apid.DB) {
var numApidClusters int
@@ -75,26 +83,20 @@
log.Panic("Illegal state for apid_cluster. Must be a single row.")
}
- prep, err := tx.Prepare("ALTER TABLE edgex_apid_cluster ADD COLUMN last_sequence text DEFAULT ''")
+ _, err = tx.Exec("ALTER TABLE edgex_apid_cluster ADD COLUMN last_sequence text DEFAULT ''")
if err != nil {
if err.Error() == "duplicate column name: last_sequence" {
- tx.Rollback()
+ rollbackTxn(tx)
return
} else {
log.Panicf("Unable to create last_sequence column on DB. Error {%v}", err.Error())
}
}
-
- _, err = prep.Exec()
+ err = tx.Commit()
if err != nil {
- log.Errorf("Snapshot processing DB exec failed. Err: {%v}", err)
- prep.Close()
- tx.Rollback()
+ rollbackTxn(tx)
return
}
- prep.Close()
- tx.Commit()
-
}
func processChangeList(changes *common.ChangeList) bool {