Changeset: d9ba15002029 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d9ba15002029
Modified Files:
gdk/gdk_utils.c
Branch: Sep2022
Log Message:
Keep environment bats aligned when appending fails.
diffs (24 lines):
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -272,9 +272,19 @@ GDKsetenv(const char *name, const char *
conval ? conval : value, false);
} else {
rc = BUNappend(GDKkey, name, false);
- if (rc == GDK_SUCCEED)
+ if (rc == GDK_SUCCEED) {
rc = BUNappend(GDKval, conval ? conval : value, false);
+ if (rc != GDK_SUCCEED) {
+ /* undo earlier successful append to
+ * keep bats aligned (this can't really
+ * fail, but we must check the result
+ * anyway) */
+ if (BUNdelete(GDKkey, GDKkey->hseqbase +
GDKkey->batCount - 1) != GDK_SUCCEED)
+ GDKerror("deleting key failed after
failed value append");
+ }
+ }
}
+ assert(BATcount(GDKval) == BATcount(GDKkey));
GDKfree(conval);
return rc;
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]