[tarantool-patches] [PATCH v2 1/4] sql: don't increment row count on FK creation within CREATE TABLE
Nikita Pettik
korablev at tarantool.org
Tue Nov 13 19:11:20 MSK 2018
We have agreement that each successful DDL operation returns 1 (one) as
a row count (via IProto protocol or changes() SQL function), despite
the number of other created objects (e.g. indexes, sequences, FK
constraints etc).
Needed for #2181
---
src/box/sql/build.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/box/sql/build.c b/src/box/sql/build.c
index 5b3348bd2..e28856e26 100644
--- a/src/box/sql/build.c
+++ b/src/box/sql/build.c
@@ -1415,7 +1415,8 @@ vdbe_emit_fkey_create(struct Parse *parse_context, const struct fkey_def *fk)
constr_tuple_reg + 9);
sqlite3VdbeAddOp3(vdbe, OP_SInsert, BOX_FK_CONSTRAINT_ID, 0,
constr_tuple_reg + 9);
- sqlite3VdbeChangeP5(vdbe, OPFLAG_NCHANGE);
+ if (parse_context->pNewTable == NULL)
+ sqlite3VdbeChangeP5(vdbe, OPFLAG_NCHANGE);
save_record(parse_context, BOX_FK_CONSTRAINT_ID, constr_tuple_reg, 2,
vdbe->nOp - 1);
sqlite3ReleaseTempRange(parse_context, constr_tuple_reg, 10);
--
2.15.1
More information about the Tarantool-patches
mailing list