mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 03:32:51 -06:00
bugfix in libsg
This commit is contained in:
@@ -1841,7 +1841,7 @@ sg_query_triple(SgSG *sg, SgTriple triple, GuExn* err)
|
|||||||
|
|
||||||
rc = open_exprs(sg, 0, false, &tres->ectxt, err);
|
rc = open_exprs(sg, 0, false, &tres->ectxt, err);
|
||||||
if (rc != SQLITE_OK)
|
if (rc != SQLITE_OK)
|
||||||
goto close;
|
goto close1;
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
if (gu_variant_is_null(triple[i]))
|
if (gu_variant_is_null(triple[i]))
|
||||||
@@ -1850,9 +1850,10 @@ sg_query_triple(SgSG *sg, SgTriple triple, GuExn* err)
|
|||||||
tres->i.mem[i].flags = MEM_Int;
|
tres->i.mem[i].flags = MEM_Int;
|
||||||
rc = store_expr(sg, &tres->ectxt, triple[i], &tres->i.mem[i].u.i, 0);
|
rc = store_expr(sg, &tres->ectxt, triple[i], &tres->i.mem[i].u.i, 0);
|
||||||
if (rc != SQLITE_OK)
|
if (rc != SQLITE_OK)
|
||||||
goto close;
|
goto close1;
|
||||||
if (tres->i.mem[i].u.i == 0) {
|
if (tres->i.mem[i].u.i == 0) {
|
||||||
tres->i.res = 1;
|
tres->i.res = 1;
|
||||||
|
tres->i.tctxt.n_cursors = 0; // this is important since the triples are not initialized yet
|
||||||
return tres;
|
return tres;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1866,8 +1867,9 @@ sg_query_triple(SgSG *sg, SgTriple triple, GuExn* err)
|
|||||||
return tres;
|
return tres;
|
||||||
|
|
||||||
close:
|
close:
|
||||||
close_exprs(&tres->ectxt);
|
|
||||||
close_triples(&tres->i.tctxt);
|
close_triples(&tres->i.tctxt);
|
||||||
|
close1:
|
||||||
|
close_exprs(&tres->ectxt);
|
||||||
|
|
||||||
if (sg->autoCommit) {
|
if (sg->autoCommit) {
|
||||||
sqlite3BtreeRollback(sg->pBtree, SQLITE_ABORT_ROLLBACK, 0);
|
sqlite3BtreeRollback(sg->pBtree, SQLITE_ABORT_ROLLBACK, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user