[tarantool-patches] Re: [PATCH v2 1/1] sql: disallow returning many rows from subselect

  • From: Vladislav Shpilevoy <v.shpilevoy@xxxxxxxxxxxxx>
  • To: Kirill Shcherbatov <kshcherbatov@xxxxxxxxxxxxx>, tarantool-patches@xxxxxxxxxxxxx
  • Date: Mon, 2 Jul 2018 17:42:17 +0300

Thanks for the fixes!

3. I do not see where do you set an appropriate error code (p5).
4. Same.
@@ -2145,6 +2145,7 @@ computeLimitRegisters(Parse * pParse, Select * p, int 
iBreak)
                                 sqlite3VdbeAddOp4(v, OP_Halt,
                                                   SQL_TARANTOOL_ERROR,
                                                   0, 0, error, P4_STATIC);
+                               sqlite3VdbeChangeP5(v, ER_SQL_EXECUTE);
                                 sqlite3VdbeResolveLabel(v, no_err);
                                 sqlite3ReleaseTempReg(pParse, r1);
@@ -5452,6 +5453,7 @@ vdbe_code_raise_on_multiple_rows(struct Parse *parser, int limit_reg, int end_ma
         sqlite3VdbeAddOp4(v, OP_Halt, SQL_TARANTOOL_ERROR,
                           ON_CONFLICT_ACTION_FAIL, 0,
                           error, P4_STATIC);
+       sqlite3VdbeChangeP5(v, SQL_TARANTOOL_ERROR);

SQL_TARANTOOL_ERROR is not error code. See errcode.h. The previous
hunk is correct.

Other related posts: