Changeset: cba537e56f14 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cba537e56f14
Modified Files:
sql/server/sql_mvc.c
Branch: Dec2011
Log Message:
mvc_commit: send SQLSTATE 40000 for transaction aborts
Because I don't know any specifics, send generic "transaction rollback"
SQLSTATE on commit failures for bug #3052.
diffs (37 lines):
diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c
--- a/sql/server/sql_mvc.c
+++ b/sql/server/sql_mvc.c
@@ -206,7 +206,7 @@ mvc_commit(mvc *m, int chain, char *name
fprintf(stderr, "#mvc_commit %s\n", (name) ? name : "");
if (m->session->status < 0) {
- (void)sql_error(m, 010, "COMMIT: transaction is aborted, will
ROLLBACK instead");
+ (void)sql_error(m, 010, "40000!COMMIT: transaction is aborted,
will ROLLBACK instead");
mvc_rollback(m, chain, name);
return -1;
}
@@ -240,7 +240,7 @@ mvc_commit(mvc *m, int chain, char *name
cur -> parent = tr;
tr = cur;
if (ok != SQL_OK) {
- (void)sql_error(m, 010, "COMMIT: transaction is aborted, will
ROLLBACK instead");
+ (void)sql_error(m, 010, "40000!COMMIT: transaction is aborted,
will ROLLBACK instead");
mvc_rollback(m, chain, name);
return -1;
}
@@ -261,13 +261,13 @@ mvc_commit(mvc *m, int chain, char *name
/* validation phase */
if (sql_trans_validate(tr)) {
if ((ok = sql_trans_commit(tr)) != SQL_OK) {
- char *msg = sql_message("COMMIT: transation commit
failed (perhaps your disk is full?) exiting (kernel error: %s)", GDKerrbuf);
+ char *msg = sql_message("40000!COMMIT: transation
commit failed (perhaps your disk is full?) exiting (kernel error: %s)",
GDKerrbuf);
GDKfatal("%s", msg);
_DELETE(msg);
}
} else {
store_unlock();
- (void)sql_error(m, 010, "COMMIT: transaction is aborted because
of concurency conflicts, will ROLLBACK instead");
+ (void)sql_error(m, 010, "40000!COMMIT: transaction is aborted
because of concurency conflicts, will ROLLBACK instead");
mvc_rollback(m, chain, name);
return -1;
}
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list