[tarantool-patches] Re: [PATCH v2 1/1] sql: COLLATE after LIMIT throws an error

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Mon May 21 18:27:34 MSK 2018


Thanks a lot!

But please, apply this diff:

diff --git a/src/box/sql/select.c b/src/box/sql/select.c
index 7a7728992..0b610dca7 100644
--- a/src/box/sql/select.c
+++ b/src/box/sql/select.c
@@ -1994,8 +1994,10 @@ computeLimitRegisters(Parse * pParse, Select * p, int iBreak)
  	assert(p->pOffset == 0 || p->pLimit != 0);
  	if (p->pLimit) {
  		if((p->pLimit->flags & EP_Collate) != 0 ||
-		   (p->pOffset && (p->pOffset->flags & EP_Collate) != 0)) {
-			sqlite3ErrorMsg(pParse, "near \"COLLATE\": syntax error");
+		   (p->pOffset != NULL &&
+		    (p->pOffset->flags & EP_Collate) != 0)) {
+			sqlite3ErrorMsg(pParse, "near \"COLLATE\": "\
+					"syntax error");
  			return;
  		}
  		p->iLimit = iLimit = ++pParse->nMem;

In your patch sqlite3ErrorMsg was out of 80 symbols, and pointer p->pOffset must be checked
on != NULL explicitly. (I see, that other SQLite3 code does not this, but we will fix
this gradually).

After this the patch LGTM.




More information about the Tarantool-patches mailing list