[patches] [PATCH 1/3] sql: do not uppercase system space names

Kirill Yukhin kyukhin at tarantool.org
Tue Feb 6 09:06:50 MSK 2018


Hello Alex,
My comments inlined.

On 05 Feb 19:51, AKhatskevich wrote:
>   According to ANSI ISO non-delimited identifiers comparition is performed
Extra space, typo.

> thrue normalization, which is converting to the upper case. It was decided
Typo.

> to store space names in normalized form, so that we cah create hash table
Typo.

> over tham.
Typo.

>   Storing system space names in lowercase in sql is natural, because this
Extra space.

> is the way thay are stored in Tarantool. However, it makes one to delimit
Typo.
> it.
Could you pls re-phrase last sentence?

> 
> Part of #2126
> ---
>  src/box/sql.c                                      | 34 +++++-----
>  src/box/sql/analyze.c                              | 19 +++---
>  src/box/sql/build.c                                | 59 +++++++++--------
>  src/box/sql/delete.c                               | 10 +--
>  src/box/sql/sqliteInt.h                            |  4 +-
>  src/box/sql/tarantoolInt.h                         | 14 ++--
>  src/box/sql/trigger.c                              |  9 +--
>  test/sql-tap/alter.test.lua                        | 18 ++---
>  test/sql-tap/analyze1.test.lua                     | 76 +++++++++++-----------
>  test/sql-tap/analyze3.test.lua                     |  2 +-
>  test/sql-tap/analyze4.test.lua                     |  6 +-
>  test/sql-tap/analyze5.test.lua                     | 10 +--
>  test/sql-tap/analyze9.test.lua                     | 56 ++++++++--------
>  test/sql-tap/analyzeC.test.lua                     | 28 ++++----
>  test/sql-tap/analyzeD.test.lua                     |  4 +-
>  test/sql-tap/autoinc.test.lua                      | 16 ++---
>  test/sql-tap/gh-2723-concurrency.test.lua          |  2 +-
>  test/sql-tap/index1.test.lua                       | 38 +++++------
>  test/sql-tap/intpkey.test.lua                      |  2 +-
>  test/sql-tap/select9.test.lua                      |  4 +-
>  test/sql-tap/selectA.test.lua                      |  2 +-
>  test/sql-tap/table.test.lua                        | 10 +--
>  test/sql-tap/trigger1.test.lua                     |  8 +--
>  test/sql/gh2141-delete-trigger-drop-table.result   |  4 +-
>  test/sql/gh2141-delete-trigger-drop-table.test.lua |  4 +-
>  test/sql/persistency.result                        |  8 +--
>  test/sql/persistency.test.lua                      |  8 +--
>  27 files changed, 232 insertions(+), 223 deletions(-)
> 
> diff --git a/src/box/sql.c b/src/box/sql.c
> index 498f943c0..82cdcadef 100644
> --- a/src/box/sql.c
> +++ b/src/box/sql.c
> @@ -1401,48 +1401,48 @@ void tarantoolSqlite3LoadSchema(InitData *init)
>  	sql_schema_put(
>  		init, TARANTOOL_SYS_SCHEMA_NAME,
>  		BOX_SCHEMA_ID, 0,
> -		"CREATE TABLE "TARANTOOL_SYS_SCHEMA_NAME
> -		" (key TEXT PRIMARY KEY, value)"
> +		"CREATE TABLE \""TARANTOOL_SYS_SCHEMA_NAME
> +		"\" (\"key\" TEXT PRIMARY KEY, \"value\")"
>  	);
>  
>  	sql_schema_put(
>  		init, TARANTOOL_SYS_SPACE_NAME,
>  		BOX_SPACE_ID, 0,
> -		"CREATE TABLE "TARANTOOL_SYS_SPACE_NAME
> -		" (id INT PRIMARY KEY, owner INT, name TEXT, "
> -		"engine TEXT, field_count INT, opts, format)"
> +		"CREATE TABLE \""TARANTOOL_SYS_SPACE_NAME
> +		"\" (\"id\" INT PRIMARY KEY, \"owner\" INT, \"name\" TEXT, "
> +		"\"engine\" TEXT, \"field_count\" INT, \"opts\", \"format\")"
>  	);
>  
>  	sql_schema_put(
>  		init, TARANTOOL_SYS_INDEX_NAME,
>  		BOX_INDEX_ID, 0,
> -		"CREATE TABLE "TARANTOOL_SYS_INDEX_NAME" (id INT, iid INT, "
> -		"name TEXT, type TEXT, opts, parts, "
> -		"PRIMARY KEY (id, iid))"
> +		"CREATE TABLE \""TARANTOOL_SYS_INDEX_NAME"\" "
> +		"(\"id\" INT, \"iid\" INT, \"name\" TEXT, \"type\" TEXT,"
> +		"\"opts\", \"parts\", PRIMARY KEY (\"id\", \"iid\"))"
>  	);
>  
>  	sql_schema_put(
>  		init, TARANTOOL_SYS_TRIGGER_NAME,
>  		BOX_TRIGGER_ID, 0,
> -		"CREATE TABLE "TARANTOOL_SYS_TRIGGER_NAME" ("
> -		"name TEXT, opts, PRIMARY KEY(name))"
> +		"CREATE TABLE \""TARANTOOL_SYS_TRIGGER_NAME"\" ("
> +		"\"name\" TEXT PRIMARY KEY, \"opts\")"
>  	);
>  
>  	sql_schema_put(
>  		init, TARANTOOL_SYS_TRUNCATE_NAME,
>  		BOX_TRUNCATE_ID, 0,
> -		"CREATE TABLE "TARANTOOL_SYS_TRUNCATE_NAME
> -		" (id INT PRIMARY KEY, count INT NOT NULL)"
> +		"CREATE TABLE \""TARANTOOL_SYS_TRUNCATE_NAME
> +		"\" (\"id\" INT PRIMARY KEY, \"count\" INT NOT NULL)"
>  	);
>  
>  	sql_schema_put(init, TARANTOOL_SYS_SEQUENCE_NAME, BOX_SEQUENCE_ID, 0,
> -		       "CREATE TABLE "TARANTOOL_SYS_SEQUENCE_NAME
> -		       " (id INT PRIMARY KEY, uid INT, name TEXT, step INT, "
> -		       "max INT, min INT, \"start\" INT, cache INT, cycle INT)");
> +		       "CREATE TABLE \""TARANTOOL_SYS_SEQUENCE_NAME
> +		       "\" (\"id\" INT PRIMARY KEY, \"uid\" INT, \"name\" TEXT, \"step\" INT, "
> +		       "\"max\" INT, \"min\" INT, \"start\" INT, \"cache\" INT, \"cycle\" INT)");
Two lines are more than 80 chars.

>  
>  	sql_schema_put(init, TARANTOOL_SYS_SPACE_SEQUENCE_NAME, BOX_SPACE_SEQUENCE_ID, 0,
> -		       "CREATE TABLE "TARANTOOL_SYS_SPACE_SEQUENCE_NAME
> -		       " (space_id INT PRIMARY KEY, sequence_id INT, flag INT)");
> +		       "CREATE TABLE \""TARANTOOL_SYS_SPACE_SEQUENCE_NAME
> +		       "\" (\"space_id\" INT PRIMARY KEY, \"sequence_id\" INT, \"flag\" INT)");
Ditto.


>  	/* Read _space */
>  	if (space_foreach(space_foreach_put_cb, init) != 0) {
> diff --git a/src/box/sql/analyze.c b/src/box/sql/analyze.c
> index 47f9ed943..8d442c5a8 100644
> --- a/src/box/sql/analyze.c
> +++ b/src/box/sql/analyze.c
> @@ -140,9 +140,9 @@ openStatTable(Parse * pParse,	/* Parsing context */
>  		const char *zCols;
>  	} aTable[] = {
>  		{
> -		"_SQL_STAT1", "tbl,idx,stat, PRIMARY KEY(tbl, idx)"},
> +		"_sql_stat1", "\"tbl\",\"idx\",\"stat\", PRIMARY KEY(\"tbl\", \"idx\")"},
Ditto.

>  		{
> -		"_SQL_STAT4", "tbl,idx,neq,nlt,ndlt,sample, PRIMARY KEY(tbl, idx, sample)"}
> +		"_sql_stat4", "\"tbl\",\"idx\",\"neq\",\"nlt\",\"ndlt\",\"sample\", PRIMARY KEY(\"tbl\", \"idx\", \"sample\")"}
Ditto.

>  	};
>  	int i;
>  	sqlite3 *db = pParse->db;
> @@ -168,7 +168,7 @@ openStatTable(Parse * pParse,	/* Parsing context */
>  				 * because the OpenWrite opcode below will be needing it.
>  				 */
>  				sqlite3NestedParse(pParse,
> -						   "CREATE TABLE %s(%s)", zTab,
> +						   "CREATE TABLE \"%s\"(%s)", zTab,
>  						   aTable[i].zCols);
>  				aRoot[i] = pParse->regRoot;
>  				aCreateTbl[i] = OPFLAG_P2ISREG;
> @@ -182,7 +182,7 @@ openStatTable(Parse * pParse,	/* Parsing context */
>  			aCreateTbl[i] = 0;
>  			if (zWhere) {
>  				sqlite3NestedParse(pParse,
> -						   "DELETE FROM %s WHERE %s=%Q",
> +						   "DELETE FROM \"%s\" WHERE \"%s\"=%Q",
Ditto.

>  						   zTab, zWhereType, zWhere);
>  			} else {
>  				/* The sql_stat[14] table already exists.  Delete all rows. */
> @@ -1658,11 +1658,12 @@ loadStat4(sqlite3 * db)
>  	Table *pTab = 0;	/* Pointer to stat table */
>  
>  	assert(db->lookaside.bDisable);
> -	if ((pTab = sqlite3FindTable(db, "_SQL_STAT4"))) {
> +	pTab = sqlite3FindTable(db, "_sql_stat4");
> +	if (pTab) {
>  		rc = loadStatTbl(db,
>  				 pTab,
> -				 "SELECT tbl,idx,count(*) FROM _sql_stat4 GROUP BY tbl,idx",
> -				 "SELECT tbl,idx,neq,nlt,ndlt,sample FROM _SQL_STAT4");
> +				 "SELECT \"tbl\",\"idx\",count(*) FROM \"_sql_stat4\" GROUP BY \"tbl\",\"idx\"",
> +				 "SELECT \"tbl\",\"idx\",\"neq\",\"nlt\",\"ndlt\",\"sample\" FROM \"_sql_stat4\"");
Ditto. (2 lines)
>  	}
>  	
>  	return rc;
> @@ -1709,8 +1710,8 @@ sqlite3AnalysisLoad(sqlite3 * db)
>  
>  	/* Load new statistics out of the _sql_stat1 table */
>  	sInfo.db = db;
> -	if (sqlite3FindTable(db, "_SQL_STAT1") != 0) {
> -		zSql = "SELECT tbl,idx,stat FROM _sql_stat1";
> +	if (sqlite3FindTable(db, "_sql_stat1") != 0) {
> +		zSql = "SELECT \"tbl\",\"idx\",\"stat\" FROM \"_sql_stat1\"";
>  		rc = sqlite3_exec(db, zSql, analysisLoader, &sInfo, 0);
>  	}
>  
> diff --git a/src/box/sql/build.c b/src/box/sql/build.c
> index df741516e..e4c1e61ce 100644
> --- a/src/box/sql/build.c
> +++ b/src/box/sql/build.c
> @@ -2291,10 +2291,10 @@ sqlite3ClearStatTables(Parse * pParse,	/* The parsing context */
>  	int i;
>  	for (i = 1; i <= 4; i++) {
>  		char zTab[24];
> -		sqlite3_snprintf(sizeof(zTab), zTab, "_SQL_STAT%d", i);
> +		sqlite3_snprintf(sizeof(zTab), zTab, "_sql_stat%d", i);
>  		if (sqlite3FindTable(pParse->db, zTab)) {
>  			sqlite3NestedParse(pParse,
> -					   "DELETE FROM \"%s\" WHERE %s=%Q",
> +					   "DELETE FROM \"%s\" WHERE \"%s\"=%Q",
>  					   zTab, zType, zName);
>  		}
>  	}
> @@ -2337,11 +2337,11 @@ sqlite3CodeDropTable(Parse * pParse, Table * pTab, int isView)
>  	 */
>  	if (pTab->tabFlags & TF_Autoincrement) {
>  		sqlite3NestedParse(pParse,
> -				   "DELETE FROM %s WHERE space_id=%d",
> +				   "DELETE FROM \"%s\" WHERE \"space_id\"=%d",
>  				   TARANTOOL_SYS_SPACE_SEQUENCE_NAME,
>  				   SQLITE_PAGENO_TO_SPACEID(pTab->tnum));
>  		sqlite3NestedParse(pParse,
> -				   "DELETE FROM %s WHERE name=%Q",
> +				   "DELETE FROM \"%s\" WHERE \"name\"=%Q",
>  				   TARANTOOL_SYS_SEQUENCE_NAME,
>  				   pTab->zName);
>  	}
> @@ -2359,28 +2359,27 @@ sqlite3CodeDropTable(Parse * pParse, Table * pTab, int isView)
>  			/*  Remove all indexes, except for primary.
>  			   Tarantool won't allow remove primary when secondary exist. */
>  			sqlite3NestedParse(pParse,
> -					   "DELETE FROM %s WHERE id=%d AND iid>0",
> +					   "DELETE FROM \"%s\" WHERE \"id\"=%d AND \"iid\">0",
Ditto.

>  					   TARANTOOL_SYS_INDEX_NAME, space_id);
>  		}
>  
>  		/*  Remove primary index. */
>  		sqlite3NestedParse(pParse,
> -				   "DELETE FROM %s WHERE id=%d AND iid=0",
> +				   "DELETE FROM \"%s\" WHERE \"id\"=%d AND \"iid\"=0",
Ditto.

>  				   TARANTOOL_SYS_INDEX_NAME, space_id);
>  	}
>  	/* Delete records about the space from the _truncate. */
> -	sqlite3NestedParse(pParse, "DELETE FROM "
> -			   TARANTOOL_SYS_TRUNCATE_NAME " WHERE id = %d",
> +	sqlite3NestedParse(pParse, "DELETE FROM \""
> +			   TARANTOOL_SYS_TRUNCATE_NAME "\" WHERE \"id\" = %d",
>  			   space_id);
>  
> -	Token _space =
> -	    { TARANTOOL_SYS_SPACE_NAME, strlen(TARANTOOL_SYS_SPACE_NAME), false };
>  	Expr *id_value = sqlite3ExprInteger(db, space_id);
> -	const char *column = "ID";
> +	const char *column = "id";
>  	/* Execute not nested DELETE of a space to account DROP TABLE
>  	 * changes.
>  	 */
> -	sqlite3DeleteByKey(pParse, &_space, &column, &id_value, 1);
> +	sqlite3DeleteByKey(pParse, TARANTOOL_SYS_SPACE_NAME,
> +			   &column, &id_value, 1);
>  
>  	/* Remove the table entry from SQLite's internal schema and modify
>  	 * the schema cookie.
> @@ -2483,7 +2482,7 @@ sqlite3DropTable(Parse * pParse, SrcList * pName, int isView, int noErr)
>  	 */
>  
>  	sqlite3BeginWriteOperation(pParse, 1);
> -	sqlite3ClearStatTables(pParse, "TBL", pTab->zName);
> +	sqlite3ClearStatTables(pParse, "tbl", pTab->zName);
>  	sqlite3FkDropTable(pParse, pName, pTab);
>  	sqlite3CodeDropTable(pParse, pTab, isView);
>  
> @@ -3279,7 +3278,7 @@ sqlite3CreateIndex(Parse * pParse,	/* All information about this parse */
>  
>  		pSysIndex =
>  		    sqlite3HashFind(&pParse->db->mdb.pSchema->tblHash,
> -				    "_INDEX");
> +				    TARANTOOL_SYS_INDEX_NAME);
>  		if (NEVER(!pSysIndex))
>  			return;
>  
> @@ -3466,18 +3465,15 @@ sqlite3DropIndex(Parse * pParse, SrcList * pName, Token * pName2, int ifExists)
>  
>  	/* Generate code to remove the index and from the master table */
>  	sqlite3BeginWriteOperation(pParse, 1);
> -
> -	Token _index =
> -	    { TARANTOOL_SYS_INDEX_NAME, strlen(TARANTOOL_SYS_INDEX_NAME), false };
> -	const char *columns[2] = { "ID", "IID" };
> +	const char *columns[2] = { "id", "iid" };
>  	Expr *values[2];
>  	values[0] =
>  	    sqlite3ExprInteger(db, SQLITE_PAGENO_TO_SPACEID(pIndex->tnum));
>  	values[1] =
>  	    sqlite3ExprInteger(db, SQLITE_PAGENO_TO_INDEXID(pIndex->tnum));
> -	sqlite3DeleteByKey(pParse, &_index, columns, values, 2);
> -
> -	sqlite3ClearStatTables(pParse, "IDX", pIndex->zName);
> +	sqlite3DeleteByKey(pParse, TARANTOOL_SYS_INDEX_NAME,
> +			   columns, values, 2);
> +	sqlite3ClearStatTables(pParse, "idx", pIndex->zName);
>  	sqlite3ChangeCookie(pParse);
>  
>  	sqlite3VdbeAddOp3(v, OP_DropIndex, 0, 0, 0);
> @@ -3662,6 +3658,21 @@ sqlite3SrcListEnlarge(sqlite3 * db,	/* Database connection to notify of OOM erro
>  	return pSrc;
>  }
>  
> +SrcList *
> +sql_alloc_src_list(sqlite3 *db)
> +{
> +	SrcList *pList;
> +
> +	pList = sqlite3DbMallocRawNN(db, sizeof(SrcList));
> +	if (pList == 0)
> +		return NULL;
> +	pList->nAlloc = 1;
> +	pList->nSrc = 1;
> +	memset(&pList->a[0], 0, sizeof(pList->a[0]));
> +	pList->a[0].iCursor = -1;
> +	return pList;
> +}
> +
>  /*
>   * Append a new table name to the given SrcList.  Create a new SrcList if
>   * need be.  A new entry is created in the SrcList even if pTable is NULL.
> @@ -3705,13 +3716,9 @@ sqlite3SrcListAppend(sqlite3 * db,	/* Connection to notify of malloc failures */
>  	struct SrcList_item *pItem;
>  	assert(db != 0);
>  	if (pList == 0) {
> -		pList = sqlite3DbMallocRawNN(db, sizeof(SrcList));
> +		pList = sql_alloc_src_list(db);
>  		if (pList == 0)
>  			return 0;
> -		pList->nAlloc = 1;
> -		pList->nSrc = 1;
> -		memset(&pList->a[0], 0, sizeof(pList->a[0]));
> -		pList->a[0].iCursor = -1;
>  	} else {
>  		pList = sqlite3SrcListEnlarge(db, pList, 1, pList->nSrc);
>  	}
> diff --git a/src/box/sql/delete.c b/src/box/sql/delete.c
> index d91362c7c..fe6da6b63 100644
> --- a/src/box/sql/delete.c
> +++ b/src/box/sql/delete.c
> @@ -608,15 +608,17 @@ sqlite3DeleteFrom(Parse * pParse,	/* The parser context */
>   * In case of error the @values elements are deleted.
>   */
>  void
> -sqlite3DeleteByKey(Parse * pParse, Token * pTab, const char **columns,
> -		   Expr ** values, int nPairs)
> +sqlite3DeleteByKey(Parse *pParse, char *zTab, const char **columns,
> +		   Expr **values, int nPairs)
>  {
>  	Expr *where = NULL;
> +	SrcList *src;
>  
> -	assert(nPairs > 0);
> +		assert(nPairs > 0);
>  	if (pParse->nErr > 0 || pParse->db->mallocFailed)
>  		goto error;
> -	SrcList *src = sqlite3SrcListAppend(pParse->db, NULL, pTab);
> +	src = sql_alloc_src_list(pParse->db);
> +	src->a[0].zName = sqlite3DbStrDup(pParse->db, zTab);
>  	if (src == NULL)
>  		goto error;
>  	/* Dummy init of INDEXED BY clause. */
> diff --git a/src/box/sql/sqliteInt.h b/src/box/sql/sqliteInt.h
> index 571f0cde4..4dee24809 100644
> --- a/src/box/sql/sqliteInt.h
> +++ b/src/box/sql/sqliteInt.h
> @@ -3165,6 +3165,8 @@ void *sqlite3ArrayAllocate(sqlite3 *, void *, int, int *, int *);
>  IdList *sqlite3IdListAppend(sqlite3 *, IdList *, Token *);
>  int sqlite3IdListIndex(IdList *, const char *);
>  SrcList *sqlite3SrcListEnlarge(sqlite3 *, SrcList *, int, int);
> +SrcList *
> +sql_alloc_src_list(sqlite3 *db);
>  SrcList *sqlite3SrcListAppend(sqlite3 *, SrcList *, Token *);
>  SrcList *sqlite3SrcListAppendFromTerm(Parse *, SrcList *, Token *,
>  				      Token *, Select *, Expr *, IdList *);
> @@ -3191,7 +3193,7 @@ Expr *sqlite3LimitWhere(Parse *, SrcList *, Expr *, ExprList *, Expr *, Expr *,
>  			char *);
>  #endif
>  void sqlite3DeleteFrom(Parse *, SrcList *, Expr *);
> -void sqlite3DeleteByKey(Parse *, Token *, const char **, Expr **, int);
> +void sqlite3DeleteByKey(Parse *, char *, const char **, Expr **, int);
>  void sqlite3Update(Parse *, SrcList *, ExprList *, Expr *, int);
>  WhereInfo *sqlite3WhereBegin(Parse *, SrcList *, Expr *, ExprList *, ExprList *,
>  			     u16, int);
> diff --git a/src/box/sql/tarantoolInt.h b/src/box/sql/tarantoolInt.h
> index 88a6b6b68..4781bf574 100644
> --- a/src/box/sql/tarantoolInt.h
> +++ b/src/box/sql/tarantoolInt.h
> @@ -11,13 +11,13 @@
>  /*
>   * Tarantool system spaces.
>   */
> -#define TARANTOOL_SYS_SEQUENCE_NAME "_SEQUENCE"
> -#define TARANTOOL_SYS_SPACE_SEQUENCE_NAME "_SPACE_SEQUENCE"
> -#define TARANTOOL_SYS_SCHEMA_NAME  "_SCHEMA"
> -#define TARANTOOL_SYS_SPACE_NAME   "_SPACE"
> -#define TARANTOOL_SYS_INDEX_NAME   "_INDEX"
> -#define TARANTOOL_SYS_TRIGGER_NAME "_TRIGGER"
> -#define TARANTOOL_SYS_TRUNCATE_NAME "_TRUNCATE"
> +#define TARANTOOL_SYS_SEQUENCE_NAME "_sequence"
> +#define TARANTOOL_SYS_SPACE_SEQUENCE_NAME "_space_sequence"
> +#define TARANTOOL_SYS_SCHEMA_NAME  "_schema"
> +#define TARANTOOL_SYS_SPACE_NAME   "_space"
> +#define TARANTOOL_SYS_INDEX_NAME   "_index"
> +#define TARANTOOL_SYS_TRIGGER_NAME "_trigger"
> +#define TARANTOOL_SYS_TRUNCATE_NAME "_truncate"
>  
>  /* Max space id seen so far. */
>  #define TARANTOOL_SYS_SCHEMA_MAXID_KEY "max_id"
> diff --git a/src/box/sql/trigger.c b/src/box/sql/trigger.c
> index fc6e91891..aeb80d0cf 100644
> --- a/src/box/sql/trigger.c
> +++ b/src/box/sql/trigger.c
> @@ -591,13 +591,10 @@ sqlite3DropTriggerPtr(Parse * pParse, Trigger * pTrigger)
>  	 */
>  	assert(pTable != 0);
>  	if ((v = sqlite3GetVdbe(pParse)) != 0) {
> -		Token _trigger = { TARANTOOL_SYS_TRIGGER_NAME,
> -			strlen(TARANTOOL_SYS_TRIGGER_NAME),
> -			false
> -		};
> -		const char *column = "NAME";
> +		const char *column = "name";
>  		Expr *value = sqlite3Expr(db, TK_STRING, pTrigger->zName);
> -		sqlite3DeleteByKey(pParse, &_trigger, &column, &value, 1);
> +		sqlite3DeleteByKey(pParse, TARANTOOL_SYS_TRIGGER_NAME,
> +				   &column, &value, 1);
>  		sqlite3ChangeCookie(pParse);
>  		sqlite3VdbeAddOp4(v, OP_DropTrigger, 0, 0, 0, pTrigger->zName,
>  				  0);


Could you pls make sure, all changed lines in tests are less than 81 chars
in length.

> diff --git a/test/sql-tap/alter.test.lua b/test/sql-tap/alter.test.lua
> index 0352062c6..18de92d00 100755
> --- a/test/sql-tap/alter.test.lua
> +++ b/test/sql-tap/alter.test.lua
> @@ -26,7 +26,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "alter-1.2",
>      [[
> -        SELECT count(*) FROM _space WHERE name IN ('T1', 't1x1', 'Space_Table')
> +        SELECT count(*) FROM "_space" WHERE "name" IN ('T1', 't1x1', 'Space_Table')
>      ]], {
>          -- <alter-1.2>
>          3
> @@ -59,7 +59,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "alter-1.5",
>      [[
> -        SELECT count(*) FROM _space WHERE name IN ('T1', 't1x1', 'Space_Table', 'SPACE_TABLE', 't1', 'T2');
> +        SELECT count(*) FROM "_space" WHERE "name" IN ('T1', 't1x1', 'Space_Table', 'SPACE_TABLE', 't1', 'T2');
>      ]], {
>          -- <alter-1.5>
>          3
> @@ -90,10 +90,10 @@ test:do_catchsql_test(
>  test:do_catchsql_test(
>      "alter-2.3",
>      [[
> -        ALTER TABLE _space RENAME TO space;
> +        ALTER TABLE "_space" RENAME TO space;
>      ]], {
>          -- <alter-2.3>
> -        1, "table _SPACE may not be altered"
> +        1, "table _space may not be altered"
>          -- </alter-2.3>
>      })
>  
> @@ -139,7 +139,7 @@ test:do_execsql_test(
>      "alter-3.3",
>      [[
>              DROP TRIGGER trig1;
> -            SELECT * FROM _TRIGGER;
> +            SELECT * FROM "_trigger";
>      ]], {
>          -- <alter-3.3>
>          -- </alter-3.3>
> @@ -242,7 +242,7 @@ test:do_execsql_test(
>      [[
>          CREATE TABLE xyz(x PRIMARY KEY);
>          ALTER TABLE xyz RENAME TO "xyz1234abc";
> -        SELECT name FROM _space WHERE name GLOB 'xyz*';
> +        SELECT "name" FROM "_space" WHERE "name" GLOB 'xyz*';
>      ]], {
>          -- <alter-5.1>
>          "xyz1234abc"
> @@ -253,7 +253,7 @@ test:do_execsql_test(
>      "alter-5.2",
>      [[
>          ALTER TABLE "xyz1234abc" RENAME TO xyzabc;
> -        SELECT name FROM _space WHERE name GLOB 'XYZ*';
> +        SELECT "name" FROM "_space" WHERE "name" GLOB 'XYZ*';
>      ]], {
>          -- <alter-5.2>
>          "XYZABC"
> @@ -285,7 +285,7 @@ test:do_execsql_test(
>      "alter-6.2",
>      [[
>          DROP TRIGGER on_t2;
> -        SELECT name FROM _TRIGGER;
> +        SELECT "name" FROM "_trigger";
>      ]], {
>          -- <alter-6.2>
>          "ON_T1", "ON_T3"
> @@ -308,7 +308,7 @@ test:do_execsql_test(
>      "alter-6.4",
>      [[
>          DROP TABLE "a";
> -        SELECT * FROM _TRIGGER;
> +        SELECT * FROM "_trigger";
>      ]], {
>          -- <alter-6.4>
>          -- </alter-6.4>
> diff --git a/test/sql-tap/analyze1.test.lua b/test/sql-tap/analyze1.test.lua
> index 4f16829b6..b11f44400 100755
> --- a/test/sql-tap/analyze1.test.lua
> +++ b/test/sql-tap/analyze1.test.lua
> @@ -33,7 +33,7 @@ test:do_catchsql_test(
>  test:do_execsql_test(
>      "analyze-1.2",
>      [[
> -        SELECT count(*) FROM _space WHERE name='_sql_stat1'
> +        SELECT count(*) FROM "_space" WHERE "name"='_sql_stat1'
>      ]], {
>          -- <analyze-1.2>
>          0
> @@ -53,7 +53,7 @@ test:do_catchsql_test(
>  test:do_execsql_test(
>      "analyze-1.6",
>      [[
> -        SELECT count(*) FROM _space WHERE name='_SQL_STAT1'
> +        SELECT count(*) FROM "_space" WHERE "name"='_sql_stat1'
>      ]], {
>          -- <analyze-1.6>
>          1
> @@ -65,7 +65,7 @@ test:do_execsql_test(
>  -- test:do_catchsql_test(
>  --     "analyze-1.6.2",
>  --     [[
> ---         CREATE INDEX stat1idx ON _sql_stat1(idx);
> +--         CREATE INDEX stat1"idx" ON _sql_stat1(idx);
>  --     ]], {
>  --         -- <analyze-1.6.2>
>  --         1, "table sqlite_stat1 may not be indexed"
> @@ -85,7 +85,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "analyze-1.7",
>      [[
> -        SELECT * FROM _sql_stat1 WHERE idx NOT NULL
> +        SELECT * FROM "_sql_stat1" WHERE "idx" NOT NULL
>      ]], {
>          -- <analyze-1.7>
>          -- </analyze-1.7>
> @@ -104,7 +104,7 @@ test:do_catchsql_test(
>  test:do_execsql_test(
>      "analyze-1.9",
>      [[
> -        SELECT * FROM _sql_stat1 WHERE idx NOT NULL
> +        SELECT * FROM "_sql_stat1" WHERE "idx" NOT NULL
>      ]], {
>          -- <analyze-1.9>
>          -- </analyze-1.9>
> @@ -125,7 +125,7 @@ test:do_catchsql_test(
>  test:do_execsql_test(
>      "analyze-1.11",
>      [[
> -        SELECT * FROM _sql_stat1
> +        SELECT * FROM "_sql_stat1"
>      ]], {
>          -- <analyze-1.11>
>          -- </analyze-1.11>
> @@ -139,7 +139,7 @@ test:do_execsql_test(
>      [[
>          CREATE INDEX t1i1 ON t1(a);
>          ANALYZE t1;
> -        SELECT * FROM _sql_stat1 ORDER BY idx;
> +        SELECT * FROM "_sql_stat1" ORDER BY "idx";
>      ]], {
>          -- <analyze-2.1>
>          -- </analyze-2.1>
> @@ -150,7 +150,7 @@ test:do_execsql_test(
>      [[
>          CREATE INDEX t1i2 ON t1(b);
>          ANALYZE t1;
> -        SELECT * FROM _sql_stat1 ORDER BY idx;
> +        SELECT * FROM "_sql_stat1" ORDER BY "idx";
>      ]], {
>          -- <analyze-2.2>
>          -- </analyze-2.2>
> @@ -161,7 +161,7 @@ test:do_execsql_test(
>      [[
>          CREATE INDEX t1i3 ON t1(a,b);
>          ANALYZE;
> -        SELECT * FROM _sql_stat1 ORDER BY idx;
> +        SELECT * FROM "_sql_stat1" ORDER BY "idx";
>      ]], {
>          -- <analyze-2.3>
>          -- </analyze-2.3>
> @@ -177,7 +177,7 @@ test:do_execsql_test(
>          INSERT INTO t1 VALUES(1, 1,2);
>          INSERT INTO t1 VALUES(2, 1,3);
>          ANALYZE t1;
> -        SELECT idx, stat FROM _sql_stat1 ORDER BY idx;
> +        SELECT "idx", "stat" FROM "_sql_stat1" ORDER BY "idx";
>      ]], {
>          -- <analyze-3.1>
>          "T1", "2 1", "T1I1", "2 2", "T1I2", "2 1", "T1I3", "2 2 1"
> @@ -190,7 +190,7 @@ test:do_execsql_test(
>          INSERT INTO t1 VALUES(3, 1,4);
>          INSERT INTO t1 VALUES(4, 1,5);
>          ANALYZE t1;
> -        SELECT idx, stat FROM _sql_stat1 ORDER BY idx;
> +        SELECT "idx", "stat" FROM "_sql_stat1" ORDER BY "idx";
>      ]], {
>          -- <analyze-3.2>
>          "T1", "4 1", "T1I1", "4 4", "T1I2", "4 1", "T1I3", "4 4 1"
> @@ -202,7 +202,7 @@ test:do_execsql_test(
>      [[
>          INSERT INTO t1 (a,b) VALUES(2,5);
>          ANALYZE;
> -        SELECT idx, stat FROM _sql_stat1 ORDER BY idx;
> +        SELECT "idx", "stat" FROM "_sql_stat1" ORDER BY "idx";
>      ]], {
>          -- <analyze-3.3>
>          "T1","5 1", "T1I1", "5 3", "T1I2", "5 2", "T1I3", "5 3 1"
> @@ -218,7 +218,7 @@ test:do_execsql_test(
>          CREATE INDEX t2i2 ON t2(b);
>          CREATE INDEX t2i3 ON t2(a,b);
>          ANALYZE;
> -        SELECT idx, stat FROM _sql_stat1 ORDER BY idx;
> +        SELECT "idx", "stat" FROM "_sql_stat1" ORDER BY "idx";
>      ]], {
>          -- <analyze-3.4>
>          "T1","5 1","T1I1","5 3","T1I2","5 2","T1I3","5 3 1","T2","5 1","T2I1","5 3","T2I2","5 2","T2I3","5 3 1"
> @@ -230,7 +230,7 @@ test:do_execsql_test(
>      [[
>          DROP INDEX t2i3 ON t2;;
>          ANALYZE t1;
> -        SELECT idx, stat FROM _sql_stat1 ORDER BY idx;
> +        SELECT "idx", "stat" FROM "_sql_stat1" ORDER BY "idx";
>      ]], {
>          -- <analyze-3.5>
>          "T1","5 1","T1I1","5 3","T1I2","5 2","T1I3","5 3 1","T2","5 1","T2I1","5 3","T2I2","5 2"
> @@ -241,7 +241,7 @@ test:do_execsql_test(
>      "analyze-3.6",
>      [[
>          ANALYZE t2;
> -        SELECT idx, stat FROM _sql_stat1 ORDER BY idx;
> +        SELECT "idx", "stat" FROM "_sql_stat1" ORDER BY "idx";
>      ]], {
>          -- <analyze-3.6>
>          "T1","5 1","T1I1","5 3","T1I2","5 2","T1I3","5 3 1","T2","5 1","T2I1","5 3","T2I2","5 2"
> @@ -253,7 +253,7 @@ test:do_execsql_test(
>      [[
>          DROP INDEX t2i2 ON t2;
>          ANALYZE t2;
> -        SELECT idx, stat FROM _sql_stat1 ORDER BY idx;
> +        SELECT "idx", "stat" FROM "_sql_stat1" ORDER BY "idx";
>      ]], {
>          -- <analyze-3.7>
>          "T1","5 1","T1I1","5 3","T1I2","5 2","T1I3","5 3 1","T2","5 1","T2I1","5 3"
> @@ -270,7 +270,7 @@ test:do_execsql_test(
>          CREATE INDEX t3i3 ON t3(d,b,c,a);
>          DROP TABLE t1;
>          DROP TABLE t2;
> -        SELECT idx, stat FROM _sql_stat1 ORDER BY idx;
> +        SELECT "idx", "stat" FROM "_sql_stat1" ORDER BY "idx";
>      ]], {
>          -- <analyze-3.8>      
>          -- </analyze-3.8>
> @@ -280,7 +280,7 @@ test:do_execsql_test(
>      "analyze-3.9",
>      [[
>          ANALYZE;
> -        SELECT idx, stat FROM _sql_stat1 ORDER BY idx;
> +        SELECT "idx", "stat" FROM "_sql_stat1" ORDER BY "idx";
>      ]], {
>          -- <analyze-3.9>
>          "T3","5 1","T3I1","5 3","T3I2","5 3 1 1 1","T3I3","5 5 2 1 1"
> @@ -297,7 +297,7 @@ test:do_execsql_test(
>  --         INSERT INTO [silly " name] (a,b,c) VALUES(1, 2, 3);
>  --         INSERT INTO [silly " name] (a,b,c) VALUES(4, 5, 6);
>  --         ANALYZE;
> ---         SELECT idx, stat FROM _sql_stat1 ORDER BY idx;
> +--         SELECT "idx", "stat" FROM "_sql_stat1" ORDER BY "idx";
>  --     ]], {
>  --         -- <analyze-3.10>
>  --         "another foolish ' name", "2 1", "foolish ' name", "2 1 1", "t3i1", "5 3", "t3i2", "5 3 1 1 1", "t3i3", "5 5 2 1 1"
> @@ -308,7 +308,7 @@ test:do_execsql_test(
>  --     "analyze-3.11",
>  --     [[
>  --         DROP INDEX "foolish ' name";
> ---         SELECT idx, stat FROM sqlite_stat1 ORDER BY idx;
> +--         SELECT "idx", "stat" FROM sqlite_stat1 ORDER BY "idx";
>  --     ]], {
>  --         -- <analyze-3.11>
>  --         "another foolish ' name", "2 1", "t3i1", "5 3", "t3i2", "5 3 1 1 1", "t3i3", "5 5 2 1 1"
> @@ -319,7 +319,7 @@ test:do_execsql_test(
>  --     "analyze-3.11",
>  --     [[
>  --         DROP TABLE "silly "" name";
> ---         SELECT idx, stat FROM sqlite_stat1 ORDER BY idx;
> +--         SELECT "idx", "stat" FROM sqlite_stat1 ORDER BY "idx";
>  --     ]], {
>  --         -- <analyze-3.11>
>  --         "t3i1", "5 3", "t3i2", "5 3 1 1 1", "t3i3", "5 5 2 1 1"
> @@ -337,7 +337,7 @@ test:do_execsql_test(
>          CREATE INDEX t4i2 ON t4(y);
>          INSERT INTO t4 SELECT id,a,b,c FROM t3;
>          ANALYZE;
> -        SELECT idx, stat FROM _sql_stat1 ORDER BY idx;
> +        SELECT "idx", "stat" FROM "_sql_stat1" ORDER BY "idx";
>      ]], {
>          -- <analyze-4.0>
>          "T3", "5 1", "T3I1", "5 3", "T3I2", "5 3 1 1 1", "T3I3", "5 5 2 1 1", "T4", "5 1", "T4I1", "5 3", "T4I2", "5 2"
> @@ -347,9 +347,9 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "analyze-4.1",
>      [[
> -        DELETE FROM _sql_stat1;
> -        INSERT INTO _sql_stat1 VALUES('t4', 't4i1', 'nonsense');
> -        INSERT INTO _sql_stat1 VALUES('t4', 't4i2', '432653287412874653284129847632');
> +        DELETE FROM "_sql_stat1";
> +        INSERT INTO "_sql_stat1" VALUES('t4', 't4i1', 'nonsense');
> +        INSERT INTO "_sql_stat1" VALUES('t4', 't4i2', '432653287412874653284129847632');
>          SELECT * FROM t4 WHERE x = 1234;
>      ]], {
>          -- <analyze-4.1>
> @@ -359,7 +359,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "analyze-4.2",
>      [[
> -        INSERT INTO _sql_stat1 VALUES('t4', 'xyzzy', '0 1 2 3');
> +        INSERT INTO "_sql_stat1" VALUES('t4', 'xyzzy', '0 1 2 3');
>          SELECT * FROM t4 WHERE x = 1234;
>      ]], {
>          -- <analyze-4.2>
> @@ -387,7 +387,7 @@ test:do_execsql_test(
>          INSERT INTO t3 (a,b,c,d) SELECT a+64, b+64, c+64, d+64 FROM t3;
>          INSERT INTO t4 (x,y,z) SELECT a, b, c FROM t3;
>          ANALYZE;
> -        SELECT DISTINCT tbl FROM _sql_stat1 ORDER BY 1;
> +        SELECT DISTINCT "tbl" FROM "_sql_stat1" ORDER BY 1;
>      ]], {
>          -- <analyze-5.0>
>          "T3", "T4"
> @@ -397,7 +397,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "analyze-5.0.1",
>      [[
> -        SELECT DISTINCT idx FROM _sql_stat1 ORDER BY 1;
> +        SELECT DISTINCT "idx" FROM "_sql_stat1" ORDER BY 1;
>      ]], {
>          -- <analyze-5.0>
>          "T3", "T3I1", "T3I2", "T3I3", "T4", "T4I1", "T4I2"
> @@ -409,7 +409,7 @@ stat = "_sql_stat4"
>  test:do_execsql_test(
>      "analyze-5.1",
>      string.format([[
> -            SELECT DISTINCT idx FROM %s ORDER BY 1;
> +            SELECT DISTINCT "idx" FROM "%s" ORDER BY 1;
>          ]], stat, stat), {
>          -- <analyze-5.1>
>          "T3", "T3I1", "T3I2", "T3I3", "T4", "T4I1", "T4I2"
> @@ -419,7 +419,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "analyze-5.1.1",
>      string.format([[
> -            SELECT DISTINCT tbl FROM %s ORDER BY 1;
> +            SELECT DISTINCT "tbl" FROM "%s" ORDER BY 1;
>          ]], stat, stat), {
>          -- <analyze-5.1>
>          "T3", "T4"
> @@ -431,7 +431,7 @@ test:do_execsql_test(
>      [[
>          DROP INDEX t3i2 ON t3;
>          ANALYZE;
> -        SELECT DISTINCT idx FROM _sql_stat1 ORDER BY 1;
> +        SELECT DISTINCT "idx" FROM "_sql_stat1" ORDER BY 1;
>      ]], {
>          -- <analyze-5.2>
>          "T3", "T3I1", "T3I3", "T4", "T4I1", "T4I2"
> @@ -441,7 +441,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "analyze-5.2.1",
>      [[
> -        SELECT DISTINCT tbl FROM _sql_stat1 ORDER BY 1;
> +        SELECT DISTINCT "tbl" FROM "_sql_stat1" ORDER BY 1;
>      ]], {
>          -- <analyze-5.2>
>          "T3", "T4"
> @@ -451,7 +451,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "analyze-5.3",
>      string.format([[
> -            SELECT DISTINCT idx FROM %s ORDER BY 1;
> +            SELECT DISTINCT "idx" FROM "%s" ORDER BY 1;
>          ]], stat, stat), {
>          -- <analyze-5.3>
>          "T3", "T3I1", "T3I3", "T4", "T4I1", "T4I2"
> @@ -461,7 +461,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "analyze-5.3.1",
>      string.format([[
> -            SELECT DISTINCT tbl FROM %s ORDER BY 1;
> +            SELECT DISTINCT "tbl" FROM "%s" ORDER BY 1;
>          ]], stat, stat), {
>          -- <analyze-5.3>
>          "T3", "T4"
> @@ -473,7 +473,7 @@ test:do_execsql_test(
>      [[
>          DROP TABLE IF EXISTS t3;
>          ANALYZE;
> -        SELECT DISTINCT idx FROM _sql_stat1 ORDER BY 1;
> +        SELECT DISTINCT "idx" FROM "_sql_stat1" ORDER BY 1;
>      ]], {
>          -- <analyze-5.4>
>          "T4", "T4I1", "T4I2"
> @@ -483,7 +483,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "analyze-5.4.1",
>      [[
> -        SELECT DISTINCT tbl FROM _sql_stat1 ORDER BY 1;
> +        SELECT DISTINCT "tbl" FROM "_sql_stat1" ORDER BY 1;
>      ]], {
>          -- <analyze-5.4>
>          "T4"
> @@ -493,7 +493,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "analyze-5.5",
>      string.format([[
> -            SELECT DISTINCT idx FROM %s ORDER BY 1;
> +            SELECT DISTINCT "idx" FROM "%s" ORDER BY 1;
>          ]], stat), {
>          -- <analyze-5.5>
>          "T4", "T4I1", "T4I2"
> @@ -503,7 +503,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "analyze-5.5.1",
>      string.format([[
> -            SELECT DISTINCT tbl FROM %s ORDER BY 1;
> +            SELECT DISTINCT "tbl" FROM "%s" ORDER BY 1;
>          ]], stat), {
>          -- <analyze-5.5>
>          "T4"
> diff --git a/test/sql-tap/analyze3.test.lua b/test/sql-tap/analyze3.test.lua
> index 59ab14dc4..26f8793ae 100755
> --- a/test/sql-tap/analyze3.test.lua
> +++ b/test/sql-tap/analyze3.test.lua
> @@ -93,7 +93,7 @@ test:do_test(
>              COMMIT;
>              ANALYZE;
>          ]])
> -        return test:execsql(" SELECT count(*)>0 FROM _sql_stat4; ")
> +        return test:execsql([[ SELECT count(*)>0 FROM "_sql_stat4"; ]])
>  
>  
>      end, {
> diff --git a/test/sql-tap/analyze4.test.lua b/test/sql-tap/analyze4.test.lua
> index e6f706c46..f71d394bd 100755
> --- a/test/sql-tap/analyze4.test.lua
> +++ b/test/sql-tap/analyze4.test.lua
> @@ -54,7 +54,7 @@ test:do_test(
>  --
>  test:do_execsql_test(
>      "analyze4-1.1",
> -    [[ SELECT idx, stat FROM _sql_stat1 WHERE tbl='T1' ORDER BY idx; ]],
> +    [[ SELECT "idx", "stat" FROM "_sql_stat1" WHERE "tbl"='T1' ORDER BY "idx"; ]],
>      {
>          -- <analyze4-1.1>
>          "T1","128 1", "T1A", "128 1", "T1B", "128 128"
> @@ -73,7 +73,7 @@ test:do_test(
>  -- pragma vdbe_debug=1;
>              ANALYZE;
>  -- pragma vdbe_debug=0;
> -            SELECT idx, stat FROM _sql_stat1 WHERE tbl='T1' ORDER BY idx;
> +            SELECT "idx", "stat" FROM "_sql_stat1" WHERE "tbl"='T1' ORDER BY "idx";
>          ]])
>      end, {
>          -- <analyze4-1.2>
> @@ -111,7 +111,7 @@ test:do_execsql_test(
>              CREATE INDEX t1cdb ON t1(c,d,b);
>              CREATE INDEX t1cbd ON t1(c,b,d);
>              ANALYZE;
> -            SELECT idx, stat FROM _sql_stat1 WHERE tbl='T1' ORDER BY idx;
> +            SELECT "idx", "stat" FROM "_sql_stat1" WHERE "tbl"='T1' ORDER BY "idx";
>      ]]
>      , {
>          -- <analyze4-1.3>
> diff --git a/test/sql-tap/analyze5.test.lua b/test/sql-tap/analyze5.test.lua
> index fe5336ba9..d68bd3c5b 100755
> --- a/test/sql-tap/analyze5.test.lua
> +++ b/test/sql-tap/analyze5.test.lua
> @@ -114,10 +114,10 @@ test:do_test(
>  
>          -- DISTINCT idx, sample -- lindex(test_decode(sample),0)
>          -- WHERE idx='t1u' ORDER BY nlt;
> -        return test:execsql([[ SELECT DISTINCT msgpack_decode(sample)
> -                                 FROM _SQL_STAT4
> -                                 WHERE idx='T1U'
> -                                 ORDER BY nlt]])
> +        return test:execsql([[ SELECT DISTINCT msgpack_decode("sample")
> +                                 FROM "_sql_stat4"
> +                                 WHERE "idx"='T1U'
> +                                 ORDER BY "nlt"]])
>      end, {
>          -- <analyze5-1.0>
>          "alpha", "bravo", "charlie", "delta"
> @@ -143,7 +143,7 @@ test:do_test(
>  test:do_test(
>      "analyze5-1.2",
>      function()
> -        return test:execsql("SELECT idx, count(*) FROM _sql_stat4 GROUP BY 1 ORDER BY 1")
> +        return test:execsql([[SELECT "idx", count(*) FROM "_sql_stat4" GROUP BY 1 ORDER BY 1]])
>      end, {
>          -- <analyze5-1.2>
>          "T1",24,"T1T",4,"T1U",4,"T1V",1,"T1W",4,"T1X",4,"T1Y",2,"T1Z",4
> diff --git a/test/sql-tap/analyze9.test.lua b/test/sql-tap/analyze9.test.lua
> index f64896f38..30d5505b4 100755
> --- a/test/sql-tap/analyze9.test.lua
> +++ b/test/sql-tap/analyze9.test.lua
> @@ -65,7 +65,7 @@ box.internal.sql_create_function("msgpack_decode_sample", msgpack_decode_sample)
>  test:do_execsql_test(
>      1.2,
>      [[
> -        SELECT tbl,idx,nEq,nLt,nDLt,msgpack_decode_sample(sample) FROM _sql_stat4 where idx = 'I1';
> +        SELECT "tbl","idx","neq","nlt","ndlt",msgpack_decode_sample("sample") FROM "_sql_stat4" where "idx" = 'I1';
>      ]], {
>          -- <1.2>
>          "T1", "I1", "1 1", "0 0", "0 0", "(0) (0)", "T1", "I1", "1 1", "1 1", "1 1", "(1) (1)", 
> @@ -77,7 +77,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      1.3,
>      [[
> -        SELECT tbl,idx,nEq,nLt,nDLt,msgpack_decode_sample(sample) FROM _sql_stat4 where idx = 'T1';
> +        SELECT "tbl","idx","neq","nlt","ndlt",msgpack_decode_sample("sample") FROM "_sql_stat4" where "idx" = 'T1';
>  
>      ]], {
>          -- <1.3>
> @@ -100,7 +100,7 @@ test:do_execsql_test(
>          INSERT INTO t1 VALUES(22.0, 'some text');
>          CREATE INDEX i1 ON t1(a, b);
>          ANALYZE;
> -        SELECT msgpack_decode_sample(sample) FROM _sql_stat4;
> +        SELECT msgpack_decode_sample("sample") FROM "_sql_stat4";
>      ]], {
>          -- <2.1>
>          "some text 14", "22 some text", "some text", 22
> @@ -185,7 +185,7 @@ test:do_execsql_test(
>      "3.3.2",
>      [[
>          ANALYZE;
> -        SELECT lrange(nEq, 1, 1) FROM _sql_stat4 WHERE idx = 'I2';
> +        SELECT lrange("neq", 1, 1) FROM "_sql_stat4" WHERE "idx" = 'I2';
>      ]], generate_tens_str(24))
>  
>  ---------------------------------------------------------------------------
> @@ -260,7 +260,7 @@ test:do_test(
>              INSERT INTO t1(id, c, b, a) VALUES(null, 201, 4, 'h');
>  
>              ANALYZE;
> -            SELECT count(*) FROM _sql_stat4;
> +            SELECT count(*) FROM "_sql_stat4";
>  
>          ]])
>          end, {
> @@ -282,8 +282,8 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      4.3,
>      [[
> -        SELECT neq, lrange(nlt, 1, 3), lrange(ndlt, 1, 3), lrange(msgpack_decode_sample(sample), 1, 3) 
> -            FROM _sql_stat4 WHERE idx = 'I1' ORDER BY sample LIMIT 16;
> +        SELECT "neq", lrange("nlt", 1, 3), lrange("ndlt", 1, 3), lrange(msgpack_decode_sample("sample"), 1, 3) 
> +            FROM "_sql_stat4" WHERE "idx" = 'I1' ORDER BY "sample" LIMIT 16;
>      ]], {
>          -- <4.3>
>          "10 10 1","0 0 8","0 0 8","0 0 0","10 10 1","10 10 10","1 1 10","1 1 1","10 10 1","20 20 28",
> @@ -299,8 +299,8 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      4.4,
>      [[
> -        SELECT neq, lrange(nlt, 1, 3), lrange(ndlt, 1, 3), lrange(msgpack_decode_sample(sample), 1, 3) 
> -        FROM _sql_stat4 WHERE idx = 'I1' ORDER BY sample DESC LIMIT 2;
> +        SELECT "neq", lrange("nlt", 1, 3), lrange("ndlt", 1, 3), lrange(msgpack_decode_sample("sample"), 1, 3) 
> +        FROM "_sql_stat4" WHERE "idx" = 'I1' ORDER BY "sample" DESC LIMIT 2;
>      ]], {
>          -- <4.4>
>          "2 1 1","295 296 296","120 122 296","201 4 h","5 3 1","290 290 291","119 119 291","200 1 b"
> @@ -331,7 +331,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      4.7,
>      [[
> -        SELECT count(*) FROM _sql_stat4 WHERE msgpack_decode_sample(sample) IN (34, 68, 102, 136, 170, 204, 238, 272);
> +        SELECT count(*) FROM "_sql_stat4" WHERE msgpack_decode_sample("sample") IN (34, 68, 102, 136, 170, 204, 238, 272);
>      ]], {
>          -- <4.7>
>          8
> @@ -352,7 +352,7 @@ test:do_test(
>          end
>          return test:execsql([[
>              ANALYZE;
> -            SELECT count(*) FROM _sql_stat4;
> +            SELECT count(*) FROM "_sql_stat4";
>          ]])
>          end, {
>              -- <4.8>
> @@ -363,7 +363,7 @@ test:do_test(
>  test:do_execsql_test(
>      4.9,
>      [[
> -        SELECT msgpack_decode_sample(sample) FROM _sql_stat4;
> +        SELECT msgpack_decode_sample("sample") FROM "_sql_stat4";
>      ]], {
>          -- <4.9>
>          "x", 1110, 2230, 2750, 3350, 4090, 4470, 4980, 5240, 5280, 5290, 5590, 5920, 
> @@ -388,9 +388,9 @@ test:do_execsql_test(
>          INSERT INTO t1 VALUES(null, 5, 5);
>          ANALYZE;
>          CREATE TABLE x1(tbl, idx, neq, nlt, ndlt, sample, PRIMARY KEY(tbl, idx, sample)); 
> -        INSERT INTO x1 SELECT * FROM _sql_stat4;
> -        DELETE FROM _sql_stat4;
> -        INSERT INTO _sql_stat4 SELECT * FROM x1;
> +        INSERT INTO x1 SELECT * FROM "_sql_stat4";
> +        DELETE FROM "_sql_stat4";
> +        INSERT INTO "_sql_stat4" SELECT * FROM x1;
>          ANALYZE;
>      ]])
>  
> @@ -416,8 +416,8 @@ test:do_execsql_test(
>          INSERT INTO t1 VALUES(null, 4, 4);
>          INSERT INTO t1 VALUES(null, 5, 5);
>          ANALYZE;
> -        UPDATE _sql_stat4 SET sample = '' WHERE sample = 
> -            (SELECT sample FROM _sql_stat4 WHERE tbl = 't1' AND idx = 'i1' LIMIT 1);
> +        UPDATE "_sql_stat4" SET "sample" = '' WHERE "sample" =
> +            (SELECT "sample" FROM "_sql_stat4" WHERE "tbl" = 't1' AND "idx" = 'i1' LIMIT 1);
>          ANALYZE;
>      ]])
>  
> @@ -438,7 +438,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      7.3,
>      [[
> -        UPDATE _sql_stat4 SET neq = '0 0 0';
> +        UPDATE "_sql_stat4" SET "neq" = '0 0 0';
>          ANALYZE;
>          SELECT * FROM t1 WHERE a = 1;
>      ]], {
> @@ -451,7 +451,7 @@ test:do_execsql_test(
>      7.4,
>      [[
>          ANALYZE;
> -        UPDATE _sql_stat4 SET ndlt = '0 0 0';
> +        UPDATE "_sql_stat4" SET "ndlt" = '0 0 0';
>          ANALYZE;
>          SELECT * FROM t1 WHERE a = 3;
>      ]], {
> @@ -464,7 +464,7 @@ test:do_execsql_test(
>      7.5,
>      [[
>          ANALYZE;
> -        UPDATE _sql_stat4 SET nlt = '0 0 0';
> +        UPDATE "_sql_stat4" SET "nlt" = '0 0 0';
>          ANALYZE;
>          SELECT * FROM t1 WHERE a = 5;
>      ]], {
> @@ -1020,7 +1020,7 @@ test:do_execsql_test(
>          INSERT INTO x1 VALUES(3, 4);
>          INSERT INTO x1 VALUES(5, 6);
>          ANALYZE;
> -        INSERT INTO _sql_stat4 VALUES('x1', 'abc', NULL, NULL, NULL, '');
> +        INSERT INTO "_sql_stat4" VALUES('x1', 'abc', NULL, NULL, NULL, '');
>      ]])
>  
>  test:do_execsql_test(
> @@ -1036,7 +1036,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      15.3,
>      [[
> -        INSERT INTO _sql_stat4 VALUES(42, 42, 42, 42, 42, 42);
> +        INSERT INTO "_sql_stat4" VALUES(42, 42, 42, 42, 42, 42);
>      ]])
>  
>  test:do_execsql_test(
> @@ -1052,7 +1052,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      15.5,
>      [[
> -        UPDATE _sql_stat1 SET stat = NULL;
> +        UPDATE "_sql_stat1" SET "stat" = NULL;
>      ]])
>  
>  test:do_execsql_test(
> @@ -1069,7 +1069,7 @@ test:do_execsql_test(
>      15.7,
>      [[
>          ANALYZE;
> -        UPDATE _sql_stat1 SET tbl = 'no such tbl';
> +        UPDATE "_sql_stat1" SET "tbl" = 'no such tbl';
>      ]])
>  
>  test:do_execsql_test(
> @@ -1086,7 +1086,7 @@ test:do_execsql_test(
>      15.9,
>      [[
>          ANALYZE;
> -        UPDATE _sql_stat4 SET neq = NULL, nlt = NULL, ndlt = NULL;
> +        UPDATE "_sql_stat4" SET "neq" = NULL, "nlt" = NULL, "ndlt" = NULL;
>      ]])
>  
>  test:do_execsql_test(
> @@ -1104,7 +1104,7 @@ test:do_execsql_test(
>      15.11,
>      [[
>          ANALYZE;
> -        UPDATE _sql_stat1 SET stat = stat || ' unordered';
> +        UPDATE "_sql_stat1" SET "stat" = "stat" || ' unordered';
>      ]])
>  
>  test:do_execsql_test(
> @@ -1210,7 +1210,7 @@ test:do_test(
>              test:execsql(string.format("INSERT INTO t1 VALUES(%s, 0);", i))
>          end
>          test:execsql("ANALYZE")
> -        return test:execsql(" SELECT count(*) FROM _sql_stat4 WHERE idx = 'I1'; ")
> +        return test:execsql([[ SELECT count(*) FROM "_sql_stat4" WHERE "idx" = 'I1'; ]])
>      end, {
>          -- <18.1>
>          9
> @@ -1257,7 +1257,7 @@ for i = 0, 15 do
>          "20.3."..i,
>          function()
>              return test:execsql(string.format(
> -                "SELECT count(*) FROM _sql_stat4 WHERE idx = 'I1' AND lrange(msgpack_decode_sample(sample), 1, 1) = '%s'", i))
> +                [[SELECT count(*) FROM "_sql_stat4" WHERE "idx" = 'I1' AND lrange(msgpack_decode_sample("sample"), 1, 1) = '%s']], i))
>          end, {
>              1
>          })
> diff --git a/test/sql-tap/analyzeC.test.lua b/test/sql-tap/analyzeC.test.lua
> index dffa2548a..a3cea7056 100755
> --- a/test/sql-tap/analyzeC.test.lua
> +++ b/test/sql-tap/analyzeC.test.lua
> @@ -18,7 +18,7 @@ testprefix = "analyzeC"
>  -------------------------------------------------------------------------
>  --
>  -- This file contains automated tests used to verify that the text terms
> --- at the end of _sql_stat1.stat are processed correctly.
> +-- at the end of "_sql_stat1".stat are processed correctly.
>  --
>  --  (1) "unordered" means that the index cannot be used for ORDER BY
>  --      or for range queries
> @@ -39,8 +39,8 @@ test:do_execsql_test(
>          CREATE INDEX t1b ON t1(b);
>          CREATE INDEX t1c ON t1(c);
>          ANALYZE;
> -        DELETE FROM _sql_stat1;
> -        INSERT INTO _sql_stat1(tbl,idx,stat) VALUES('t1','t1b','12345 2'),('t1','t1c','12345 4');
> +        DELETE FROM "_sql_stat1";
> +        INSERT INTO "_sql_stat1"("tbl","idx","stat") VALUES('t1','t1b','12345 2'),('t1','t1c','12345 4');
>          ANALYZE;
>          SELECT b,c,d, '#' FROM t1 WHERE b BETWEEN 3 AND 8 ORDER BY d;
>      ]], {
> @@ -86,7 +86,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      2.0,
>      [[
> -        UPDATE _sql_stat1 SET stat='12345 2 unordered' WHERE idx='t1b';
> +        UPDATE "_sql_stat1" SET "stat"='12345 2 unordered' WHERE "idx"='t1b';
>          ANALYZE;
>          SELECT b, c, d, '#' FROM t1 WHERE b BETWEEN 3 AND 8 ORDER BY d;
>      ]], {
> @@ -126,12 +126,12 @@ test:do_execsql_test(
>          -- </2.3>
>      })
>  
> --- Ignore extraneous text parameters in the _sql_stat1.stat field.
> +-- Ignore extraneous text parameters in the "_sql_stat1".stat field.
>  --
>  test:do_execsql_test(
>      3.0,
>      [[
> -        UPDATE _sql_stat1 SET stat='12345 2 whatever=5 unordered xyzzy=11' WHERE idx='t1b';
> +        UPDATE "_sql_stat1" SET "stat"='12345 2 whatever=5 unordered xyzzy=11' WHERE "idx"='t1b';
>          ANALYZE;
>          SELECT b, c, d, '#' FROM t1 WHERE b BETWEEN 3 AND 8 ORDER BY d;
>      ]], {
> @@ -179,8 +179,8 @@ test:do_execsql_test(
>          DROP INDEX t1b ON t1;
>          CREATE INDEX t1bc ON t1(b,c);
>          CREATE INDEX t1db ON t1(d,b);
> -        DELETE FROM _sql_stat1;
> -        INSERT INTO _sql_stat1(tbl,idx,stat) VALUES('t1','t1bc','12345 3 2 sz=10'),('t1','t1db','12345 3 2 sz=20');
> +        DELETE FROM "_sql_stat1";
> +        INSERT INTO "_sql_stat1"("tbl","idx","stat") VALUES('t1','t1bc','12345 3 2 sz=10'),('t1','t1db','12345 3 2 sz=20');
>          ANALYZE;
>          SELECT count(b) FROM t1;
>      ]], {
> @@ -202,8 +202,8 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      4.2,
>      [[
> -        DELETE FROM _sql_stat1;
> -        INSERT INTO _sql_stat1(tbl,idx,stat) VALUES('t1','t1bc','12345 3 2 sz=20'),('t1','t1db','12345 3 2 sz=10');
> +        DELETE FROM "_sql_stat1";
> +        INSERT INTO "_sql_stat1"("tbl","idx","stat") VALUES('t1','t1bc','12345 3 2 sz=20'),('t1','t1db','12345 3 2 sz=10');
>          ANALYZE;
>          SELECT count(b) FROM t1;
>      ]], {
> @@ -228,8 +228,8 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      5.0,
>      [[
> -        DELETE FROM _sql_stat1;
> -        INSERT INTO _sql_stat1(tbl,idx,stat)
> +        DELETE FROM "_sql_stat1";
> +        INSERT INTO "_sql_stat1"("tbl","idx","stat")
>            VALUES('t1','t1bc','12345 3 2 x=5 sz=10 y=10'),
>                  ('t1','t1db','12345 3 2 whatever sz=20 junk');
>          ANALYZE;
> @@ -254,8 +254,8 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      5.2,
>      [[
> -        DELETE FROM _sql_stat1;
> -        INSERT INTO _sql_stat1(tbl,idx,stat) VALUES('t1','t1db','12345 3 2 x=5 sz=10 y=10'), ('t1','t1bc','12345 3 2 whatever sz=20 junk');
> +        DELETE FROM "_sql_stat1";
> +        INSERT INTO "_sql_stat1"("tbl","idx","stat") VALUES('t1','t1db','12345 3 2 x=5 sz=10 y=10'), ('t1','t1bc','12345 3 2 whatever sz=20 junk');
>          ANALYZE;
>          SELECT count(b) FROM t1;
>      ]], {
> diff --git a/test/sql-tap/analyzeD.test.lua b/test/sql-tap/analyzeD.test.lua
> index 9b5008929..8fdadf5a7 100755
> --- a/test/sql-tap/analyzeD.test.lua
> +++ b/test/sql-tap/analyzeD.test.lua
> @@ -76,7 +76,7 @@ test:do_execsql_test(
>  test:do_test(
>  	1.3,
>  	function()
> -		test:execsql("DELETE FROM _sql_stat1;")
> +		test:execsql("DELETE FROM \"_sql_stat1\";")
>  	end, {
>          -- <1.3>
>          -- </1.3>
> @@ -120,7 +120,7 @@ test:do_execsql_test(
>  test:do_test(
>  	1.7,
>  	function()
> -		test:execsql(" DELETE FROM _sql_stat1 ")
> +		test:execsql(" DELETE FROM \"_sql_stat1\" ")
>  	end, {
>          -- <1.7> 
>          -- </1.7>
> diff --git a/test/sql-tap/autoinc.test.lua b/test/sql-tap/autoinc.test.lua
> index 31815525a..2fa48e657 100755
> --- a/test/sql-tap/autoinc.test.lua
> +++ b/test/sql-tap/autoinc.test.lua
> @@ -40,7 +40,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "autoinc-1.3",
>      [[
> -        SELECT * FROM _sequence;
> +        SELECT * FROM "_sequence";
>      ]], {
>          -- <autoinc-1.3>
>          1,1,"T1",1,0,9223372036854775807LL,1,0,4294967041
> @@ -68,17 +68,17 @@ test:do_execsql_test(
>  test:do_catchsql_test(
>      "autoinc-1.5",
>      [[
> -        DROP TABLE _sequence
> +        DROP TABLE "_sequence"
>      ]], {
>          -- <autoinc-1.5>
> -        1, "table _SEQUENCE may not be dropped"
> +        1, "table _sequence may not be dropped"
>          -- </autoinc-1.5>
>      })
>  
>  test:do_execsql_test(
>      "autoinc-1.6",
>      [[
> -        SELECT name FROM _space WHERE name NOT IN (SELECT name FROM _space WHERE name LIKE '\_%' ESCAPE '\')
> +        SELECT "name" FROM "_space" WHERE "name" NOT IN (SELECT "name" FROM "_space" WHERE "name" LIKE '\_%' ESCAPE '\')
>      ]], {
>          -- <autoinc-1.6>
>          "T1"
> @@ -331,7 +331,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "autoinc-3.1",
>      [[
> -        SELECT name FROM _sequence
> +        SELECT "name" FROM "_sequence"
>      ]], {
>          -- <autoinc-3.1>
>          "T1", "T2", "T3"
> @@ -342,7 +342,7 @@ test:do_execsql_test(
>      "autoinc-3.2",
>      [[
>          DROP TABLE t1;
> -        SELECT name FROM _sequence;
> +        SELECT "name" FROM "_sequence";
>      ]], {
>          -- <autoinc-3.2>
>         "T2", "T3"
> @@ -353,7 +353,7 @@ test:do_execsql_test(
>      "autoinc-3.3",
>      [[
>          DROP TABLE t3;
> -        SELECT name FROM _sequence;
> +        SELECT "name" FROM "_sequence";
>      ]], {
>          -- <autoinc-3.3>
>          "T2"
> @@ -364,7 +364,7 @@ test:do_execsql_test(
>      "autoinc-3.4",
>      [[
>          DROP TABLE t2;
> -        SELECT name FROM _sequence;
> +        SELECT "name" FROM "_sequence";
>      ]], {
>          -- <autoinc-3.4>
>  
> diff --git a/test/sql-tap/gh-2723-concurrency.test.lua b/test/sql-tap/gh-2723-concurrency.test.lua
> index 9ae08fbef..3f7d241c0 100755
> --- a/test/sql-tap/gh-2723-concurrency.test.lua
> +++ b/test/sql-tap/gh-2723-concurrency.test.lua
> @@ -27,7 +27,7 @@ end
>  test:do_test(
>      "concurrency:1",
>      function()
> -        return test:execsql("select count(*) from _space where name like 'table-2723-%'")[1]
> +        return test:execsql([[select count(*) from "_space" where "name" like 'table-2723-%']])[1]
>      end,
>      0)
>  
> diff --git a/test/sql-tap/index1.test.lua b/test/sql-tap/index1.test.lua
> index 1c8c3bd56..7bfcf77b1 100755
> --- a/test/sql-tap/index1.test.lua
> +++ b/test/sql-tap/index1.test.lua
> @@ -26,7 +26,7 @@ test:do_test(
>      function()
>          test:execsql "CREATE TABLE test1(id primary key, f1 int, f2 int, f3 int)"
>          test:execsql "CREATE INDEX index1 ON test1(f1)"
> -        return test:execsql "SELECT name FROM _space WHERE name='TEST1'"
> +        return test:execsql [[SELECT "name" FROM "_space" WHERE "name"='TEST1']]
>      end, {
>          -- <index-1.1>
>          "TEST1"
> @@ -36,7 +36,7 @@ test:do_test(
>  test:do_execsql_test(
>      "index-1.1.1",
>      [[
> -        SELECT name FROM _index WHERE name='INDEX1'
> +        SELECT "name" FROM "_index" WHERE "name"='INDEX1'
>      ]], {
>          -- <index-1.1.1>
>          "INDEX1"
> @@ -67,7 +67,7 @@ test:do_test(
>      "index-1.2",
>      function()
>          test:execsql "DROP TABLE test1"
> -        return test:execsql "SELECT name FROM _space WHERE name='TEST1'"
> +        return test:execsql [[SELECT "name" FROM "_space" WHERE "name"='TEST1']]
>          --execsql {SELECT name FROM sqlite_master WHERE type!='meta' ORDER BY name}
>      end, {
>          -- <index-1.2>
> @@ -191,7 +191,7 @@ test:do_test(
>          end
>          test:execsql "CREATE INDEX index9 ON test1(cnt)"
>          test:execsql "CREATE INDEX indext ON test1(power)"
> -        return test:execsql "SELECT name FROM _index WHERE name='INDEX9' OR name='INDEXT' union SELECT name FROM _space WHERE name='TEST1';"
> +        return test:execsql [[SELECT "name" FROM "_index" WHERE "name"='INDEX9' OR "name"='INDEXT' union SELECT "name" FROM "_space" WHERE "name"='TEST1';]]
>      end, {
>          -- <index-4.1>
>          "INDEX9", "INDEXT", "TEST1"
> @@ -316,7 +316,7 @@ test:do_test(
>      "index-4.13",
>      function()
>          test:execsql "DROP TABLE test1"
> -        return test:execsql "SELECT name FROM _space WHERE name='TEST1'"
> +        return test:execsql [[SELECT "name" FROM "_space" WHERE "name"='TEST1']]
>          --execsql {SELECT name FROM sqlite_master WHERE type!='meta' ORDER BY name}
>      end, {
>          -- <index-4.13>
> @@ -357,7 +357,7 @@ test:do_test(
>  test:do_execsql_test(
>      "index-6.1b",
>      [[
> -        SELECT name FROM _index WHERE name='INDEX1' union SELECT name FROM _space WHERE name='TEST1' OR name='TEST2'
> +        SELECT "name" FROM "_index" WHERE "name"='INDEX1' union SELECT "name" FROM "_space" WHERE "name"='TEST1' OR "name"='TEST2'
>      ]], {
>          -- <index-6.1b>
>          "INDEX1", "TEST1", "TEST2"
> @@ -387,7 +387,7 @@ test:do_catchsql_test(
>  test:do_execsql_test(
>      "index-6.2b",
>      [[
> -        SELECT name FROM _index WHERE name='INDEX1' union SELECT name FROM _space WHERE name='TEST1' OR name='TEST2'
> +        SELECT "name" FROM "_index" WHERE "name"='INDEX1' union SELECT "name" FROM "_space" WHERE "name"='TEST1' OR "name"='TEST2'
>      ]], {
>          -- <index-6.2b>
>          "INDEX1", "TEST1", "TEST2"
> @@ -399,7 +399,7 @@ test:do_test(
>      function()
>          test:execsql "DROP TABLE test1"
>          test:execsql "DROP TABLE test2"
> -        return test:execsql "SELECT name FROM _space WHERE name='TEST1' OR name='TEST2'"
> +        return test:execsql [[SELECT "name" FROM "_space" WHERE "name"='TEST1' OR "name"='TEST2']]
>          --execsql {SELECT name FROM sqlite_master WHERE type!='meta' ORDER BY name}
>      end, {
>          -- <index-6.3>
> @@ -415,7 +415,7 @@ test:do_execsql_test(
>          CREATE INDEX index2 ON test1(b);
>          CREATE INDEX index3 ON test1(a,b);
>          DROP TABLE test1;
> -        SELECT name FROM _space WHERE name='TEST1';
> +        SELECT "name" FROM "_space" WHERE "name"='TEST1';
>      ]], {
>          -- <index-6.4>
>          
> @@ -454,7 +454,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "index-7.3",
>      [[
> -        SELECT name FROM _index WHERE name='sqlite_autoindex_TEST1_1'
> +        SELECT "name" FROM "_index" WHERE "name"='sqlite_autoindex_TEST1_1'
>      ]], {
>          -- <index-7.3>
>          "sqlite_autoindex_TEST1_1"
> @@ -465,7 +465,7 @@ test:do_test(
>      "index-7.4",
>      function()
>          test:execsql "DROP table test1"
> -        return test:execsql "SELECT name FROM _space WHERE name='TEST1'"
> +        return test:execsql [[SELECT "name" FROM "_space" WHERE "name"='TEST1']]
>      end, {
>          -- <index-7.4>
>          
> @@ -498,7 +498,7 @@ test:do_test(
>          test:execsql "EXPLAIN CREATE INDEX idx1 ON tab1(a)"
>  
>  
> -        return test:execsql "SELECT name FROM _space WHERE name='TAB1'"
> +        return test:execsql [[SELECT "name" FROM "_space" WHERE "name"='TAB1']]
>      end, {
>          -- <index-9.1>
>          "TAB1"
> @@ -509,7 +509,7 @@ test:do_test(
>      "index-9.2",
>      function()
>          test:execsql "CREATE INDEX idx1 ON tab1(a)"
> -        return test:execsql "SELECT name FROM _index WHERE name='IDX1' union SELECT name FROM _space WHERE name='TAB1'"
> +        return test:execsql [[SELECT "name" FROM "_index" WHERE "name"='IDX1' union SELECT "name" FROM "_space" WHERE "name"='TAB1']]
>      end, {
>          -- <index-9.2>
>          "IDX1", "TAB1"
> @@ -959,7 +959,7 @@ test:do_execsql_test(
>      "index-16.1",
>      [[
>          CREATE TABLE t7(c UNIQUE PRIMARY KEY);
> -        SELECT count(*) FROM _index JOIN _space WHERE _index.id = _space.id AND _space.name='T7';
> +        SELECT count(*) FROM "_index" JOIN "_space" WHERE "_index"."id" = "_space"."id" AND "_space"."name"='T7';
>      ]], {
>          -- <index-16.1>
>          1
> @@ -971,7 +971,7 @@ test:do_execsql_test(
>      [[
>          DROP TABLE t7;
>          CREATE TABLE t7(c UNIQUE PRIMARY KEY);
> -        SELECT count(*) FROM _index JOIN _space WHERE _index.id = _space.id AND _space.name='T7';
> +        SELECT count(*) FROM "_index" JOIN "_space" WHERE "_index"."id" = "_space"."id" AND "_space"."name"='T7';
>      ]], {
>          -- <index-16.2>
>          1
> @@ -983,7 +983,7 @@ test:do_execsql_test(
>      [[
>          DROP TABLE t7;
>          CREATE TABLE t7(c PRIMARY KEY, UNIQUE(c) );
> -        SELECT count(*) FROM _index JOIN _space WHERE _index.id = _space.id AND _space.name='T7';
> +        SELECT count(*) FROM "_index" JOIN "_space" WHERE "_index"."id" = "_space"."id" AND "_space"."name"='T7';
>      ]], {
>          -- <index-16.3>
>          1
> @@ -995,7 +995,7 @@ test:do_execsql_test(
>      [[
>          DROP TABLE t7;
>          CREATE TABLE t7(c, d , UNIQUE(c, d), PRIMARY KEY(c, d) );
> -        SELECT count(*) FROM _index JOIN _space WHERE _index.id = _space.id AND _space.name='T7';
> +        SELECT count(*) FROM "_index" JOIN "_space" WHERE "_index"."id" = "_space"."id" AND "_space"."name"='T7';
>      ]], {
>          -- <index-16.4>
>          1
> @@ -1007,7 +1007,7 @@ test:do_execsql_test(
>      [[
>          DROP TABLE t7;
>          CREATE TABLE t7(c, d , UNIQUE(c), PRIMARY KEY(c, d) );
> -        SELECT count(*) FROM _index JOIN _space WHERE _index.id = _space.id AND _space.name='T7';
> +        SELECT count(*) FROM "_index" JOIN "_space" WHERE "_index"."id" = "_space"."id" AND "_space"."name"='T7';
>      ]], {
>          -- <index-16.5>
>          2
> @@ -1024,7 +1024,7 @@ test:do_execsql_test(
>      [[
>          DROP TABLE t7;
>          CREATE TABLE t7(c, d UNIQUE, UNIQUE(c), PRIMARY KEY(c, d) );
> -        SELECT _index.name FROM _index JOIN _space WHERE _index.id = _space.id AND _space.name='T7';
> +        SELECT "_index"."name" FROM "_index" JOIN "_space" WHERE "_index"."id" = "_space"."id" AND "_space"."name"='T7';
>      ]], {
>          -- <index-17.1>
>          "sqlite_autoindex_T7_3", "sqlite_autoindex_T7_2", "sqlite_autoindex_T7_1"
> diff --git a/test/sql-tap/intpkey.test.lua b/test/sql-tap/intpkey.test.lua
> index fd1a9aad2..bca7bd703 100755
> --- a/test/sql-tap/intpkey.test.lua
> +++ b/test/sql-tap/intpkey.test.lua
> @@ -39,7 +39,7 @@ test:do_execsql_test(
>  test:do_execsql_test(
>      "intpkey-1.1",
>      [[
> -        SELECT _index.name FROM _index JOIN _space WHERE _index.id = _space.id AND _space.name='T1'
> +        SELECT "_index"."name" FROM "_index" JOIN "_space" WHERE "_index"."id" = "_space"."id" AND "_space"."name"='T1'
>      ]], {
>          -- <intpkey-1.1>
>          "sqlite_autoindex_T1_1"
> diff --git a/test/sql-tap/select9.test.lua b/test/sql-tap/select9.test.lua
> index 4b7acc294..e85308c0a 100755
> --- a/test/sql-tap/select9.test.lua
> +++ b/test/sql-tap/select9.test.lua
> @@ -275,8 +275,8 @@ test:do_execsql_test(
>  
>  local t1_space_id = ""
>  local t2_space_id = ""
> -t1_space_id = test:execsql("SELECT * from _space where name='T1'")["ID"]
> -t2_space_id = test:execsql("SELECT * from _space where name='T2'")["ID"]
> +t1_space_id = test:execsql([[SELECT * from "_space" where "name"='T1']])["id"]
> +t2_space_id = test:execsql([[SELECT * from "_space" where "name"='T2']])["id"]
>  --X(276, "X!cmd", [=[["db","eval","SELECT * from _space where name='t2'","data","\n  set t2_space_id $data(id)\n"]]=])
>  --local function reverse(lhs, rhs)
>  --    return X(283, "X!cmd", [=[["string","compare",["rhs"],["lhs"]]]=])
> diff --git a/test/sql-tap/selectA.test.lua b/test/sql-tap/selectA.test.lua
> index b08e3b09b..fc482e911 100755
> --- a/test/sql-tap/selectA.test.lua
> +++ b/test/sql-tap/selectA.test.lua
> @@ -1191,7 +1191,7 @@ test:do_execsql_test(
>          CREATE UNIQUE INDEX t2x ON t2(x);
>          CREATE UNIQUE INDEX t2y ON t2(y);
>          CREATE UNIQUE INDEX t2z ON t2(z);
> -        SELECT name FROM _index WHERE name LIKE 'T%';
> +        SELECT "name" FROM "_index" WHERE "name" LIKE 'T%';
>      ]], {
>          -- <selectA-3.0>
>          "T1A", "T1B", "T1C", "T2X", "T2Y", "T2Z"
> diff --git a/test/sql-tap/table.test.lua b/test/sql-tap/table.test.lua
> index d60170beb..6e1056193 100755
> --- a/test/sql-tap/table.test.lua
> +++ b/test/sql-tap/table.test.lua
> @@ -325,7 +325,7 @@ test:do_test(
>              test:execsql(sql)
>          end
>          --execsql {SELECT name FROM sqlite_master WHERE type!='meta' ORDER BY name}
> -        return test:execsql "SELECT name FROM _space WHERE id>500"
> +        return test:execsql [[SELECT "name" FROM "_space" WHERE "id">500]]
>      end, r)
>  
>  -- do_test table-4.1b {
> @@ -348,7 +348,7 @@ test:do_test(
>              test:execsql(sql)
>          end
>          --execsql {SELECT name FROM sqlite_master WHERE type!='meta' ORDER BY name}
> -        return test:execsql("SELECT name FROM _space WHERE id>500")
> +        return test:execsql([[SELECT "name" FROM "_space" WHERE "id">500]])
>      end, r)
>  
>  --exit
> @@ -362,7 +362,7 @@ test:do_test(
>              test:execsql(sql)
>          end
>          --execsql {SELECT name FROM sqlite_master WHERE type!='meta' ORDER BY name}
> -        return test:execsql "SELECT name FROM _space WHERE id>500"
> +        return test:execsql [[SELECT "name" FROM "_space" WHERE "id">500]]
>      end, {
>          -- <table-4.3>
>          
> @@ -451,7 +451,7 @@ test:do_test(
>          test:execsql "EXPLAIN CREATE TABLE test1(f1 int primary key)"
>  
>  
> -        return test:execsql "SELECT name FROM _space WHERE id>500"
> +        return test:execsql [[SELECT "name" FROM "_space" WHERE "id">500]]
>          --execsql {SELECT name FROM sqlite_master WHERE type!='meta'}
>      end, {
>          -- <table-5.3>
> @@ -468,7 +468,7 @@ test:do_test(
>          test:execsql "EXPLAIN DROP TABLE test1"
>  
>  
> -        return test:execsql "SELECT name FROM _space WHERE id>500"
> +        return test:execsql [[SELECT "name" FROM "_space" WHERE "id">500]]
>          --execsql {SELECT name FROM sqlite_master WHERE type!='meta'}
>      end, {
>          -- <table-5.4>
> diff --git a/test/sql-tap/trigger1.test.lua b/test/sql-tap/trigger1.test.lua
> index fc31beba8..93dd3aaac 100755
> --- a/test/sql-tap/trigger1.test.lua
> +++ b/test/sql-tap/trigger1.test.lua
> @@ -537,7 +537,7 @@ test:do_execsql_test(
>      "trigger1-8.1",
>      [[
>          CREATE TRIGGER "trigger" AFTER INSERT ON t2 BEGIN SELECT 1; END;
> -        SELECT name FROM _trigger WHERE name='trigger';
> +        SELECT "name" FROM "_trigger" WHERE "name"='trigger';
>      ]], {
>          -- <trigger1-8.1>
>          "trigger"
> @@ -548,7 +548,7 @@ test:do_execsql_test(
>      "trigger1-8.2",
>      [[
>          DROP TRIGGER "trigger";
> -        SELECT name FROM _trigger WHERE name='trigger';
> +        SELECT "name" FROM "_trigger" WHERE "name"='trigger';
>      ]], {
>          -- <trigger1-8.2>
>          
> @@ -559,7 +559,7 @@ test:do_execsql_test(
>      "trigger1-8.3",
>      [[
>          CREATE TRIGGER "trigger" AFTER INSERT ON t2 BEGIN SELECT 1; END;
> -        SELECT name FROM _trigger WHERE name='trigger';
> +        SELECT "name" FROM "_trigger" WHERE "name"='trigger';
>      ]], {
>          -- <trigger1-8.3>
>          "trigger"
> @@ -570,7 +570,7 @@ test:do_execsql_test(
>      "trigger1-8.4",
>      [[
>          DROP TRIGGER "trigger";
> -        SELECT name FROM _trigger WHERE name='trigger';
> +        SELECT "name" FROM "_trigger" WHERE "name"='trigger';
>      ]], {
>          -- <trigger1-8.4>
>          
> diff --git a/test/sql/gh2141-delete-trigger-drop-table.result b/test/sql/gh2141-delete-trigger-drop-table.result
> index 541e0b71d..ba7016c48 100644
> --- a/test/sql/gh2141-delete-trigger-drop-table.result
> +++ b/test/sql/gh2141-delete-trigger-drop-table.result
> @@ -24,7 +24,7 @@ box.sql.execute("CREATE TRIGGER tt_ad AFTER DELETE ON t BEGIN SELECT 1; END")
>  ---
>  ...
>  -- check that these triggers exist
> -box.sql.execute("SELECT * FROM _trigger")
> +box.sql.execute("SELECT * FROM \"_trigger\"")
>  ---
>  - - ['TT_AD', !!binary gaNzcWzZOkNSRUFURSBUUklHR0VSIHR0X2FkIEFGVEVSIERFTEVURSBPTiB0IEJFR0lOIFNFTEVDVCAxOyBFTkQ=]
>    - ['TT_AI', !!binary gaNzcWzZOkNSRUFURSBUUklHR0VSIHR0X2FpIEFGVEVSIElOU0VSVCBPTiB0IEJFR0lOIFNFTEVDVCAxOyBFTkQ=]
> @@ -38,7 +38,7 @@ box.sql.execute("DROP TABLE t")
>  ---
>  ...
>  -- check that triggers were dropped with deleted table
> -box.sql.execute("SELECT * FROM _trigger")
> +box.sql.execute("SELECT * FROM \"_trigger\"")
>  ---
>  - []
>  ...
> diff --git a/test/sql/gh2141-delete-trigger-drop-table.test.lua b/test/sql/gh2141-delete-trigger-drop-table.test.lua
> index 9166713f8..e6a030cb4 100644
> --- a/test/sql/gh2141-delete-trigger-drop-table.test.lua
> +++ b/test/sql/gh2141-delete-trigger-drop-table.test.lua
> @@ -11,10 +11,10 @@ box.sql.execute("CREATE TRIGGER tt_bd BEFORE DELETE ON t BEGIN SELECT 1; END")
>  box.sql.execute("CREATE TRIGGER tt_ad AFTER DELETE ON t BEGIN SELECT 1; END")
>  
>  -- check that these triggers exist
> -box.sql.execute("SELECT * FROM _trigger")
> +box.sql.execute("SELECT * FROM \"_trigger\"")
>  
>  -- drop table
>  box.sql.execute("DROP TABLE t")
>  
>  -- check that triggers were dropped with deleted table
> -box.sql.execute("SELECT * FROM _trigger")
> +box.sql.execute("SELECT * FROM \"_trigger\"")
> diff --git a/test/sql/persistency.result b/test/sql/persistency.result
> index 4f47a0205..06c0bf6b7 100644
> --- a/test/sql/persistency.result
> +++ b/test/sql/persistency.result
> @@ -139,7 +139,7 @@ box.sql.execute("INSERT INTO barfoo VALUES ('foobar', 1000)")
>  box.sql.execute("CREATE TRIGGER tfoobar AFTER INSERT ON foobar BEGIN INSERT INTO barfoo VALUES ('trigger test', 9999); END")
>  ---
>  ...
> -box.sql.execute("SELECT * FROM _trigger");
> +box.sql.execute("SELECT * FROM \"_trigger\"");
>  ---
>  - - ['TFOOBAR', !!binary gaNzcWzZaUNSRUFURSBUUklHR0VSIHRmb29iYXIgQUZURVIgSU5TRVJUIE9OIGZvb2JhciBCRUdJTiBJTlNFUlQgSU5UTyBiYXJmb28gVkFMVUVTICgndHJpZ2dlciB0ZXN0JywgOTk5OSk7IEVORA==]
>  ...
> @@ -165,7 +165,7 @@ box.sql.execute("SELECT a FROM t1 ORDER BY b, a LIMIT 10 OFFSET 20;");
>  ...
>  test_run:cmd('restart server default');
>  -- prove that trigger survived
> -box.sql.execute("SELECT * FROM _trigger");
> +box.sql.execute("SELECT * FROM \"_trigger\"");
>  ---
>  - - ['TFOOBAR', !!binary gaNzcWzZaUNSRUFURSBUUklHR0VSIHRmb29iYXIgQUZURVIgSU5TRVJUIE9OIGZvb2JhciBCRUdJTiBJTlNFUlQgSU5UTyBiYXJmb28gVkFMVUVTICgndHJpZ2dlciB0ZXN0JywgOTk5OSk7IEVORA==]
>  ...
> @@ -178,7 +178,7 @@ box.sql.execute("SELECT * FROM barfoo WHERE foo = 9999");
>  - - ['trigger test', 9999]
>  ...
>  -- and still persistent
> -box.sql.execute("SELECT * FROM _trigger")
> +box.sql.execute("SELECT * FROM \"_trigger\"")
>  ---
>  - - ['TFOOBAR', !!binary gaNzcWzZaUNSRUFURSBUUklHR0VSIHRmb29iYXIgQUZURVIgSU5TRVJUIE9OIGZvb2JhciBCRUdJTiBJTlNFUlQgSU5UTyBiYXJmb28gVkFMVUVTICgndHJpZ2dlciB0ZXN0JywgOTk5OSk7IEVORA==]
>  ...
> @@ -192,7 +192,7 @@ box.sql.execute("DROP TRIGGER tfoobar")
>  - error: 'no such trigger: TFOOBAR'
>  ...
>  -- Should be empty
> -box.sql.execute("SELECT * FROM _trigger")
> +box.sql.execute("SELECT * FROM \"_trigger\"")
>  ---
>  - []
>  ...
> diff --git a/test/sql/persistency.test.lua b/test/sql/persistency.test.lua
> index 8611bf2f7..bd055457b 100644
> --- a/test/sql/persistency.test.lua
> +++ b/test/sql/persistency.test.lua
> @@ -49,7 +49,7 @@ box.sql.execute("INSERT INTO barfoo VALUES ('foobar', 1000)")
>  
>  -- create a trigger
>  box.sql.execute("CREATE TRIGGER tfoobar AFTER INSERT ON foobar BEGIN INSERT INTO barfoo VALUES ('trigger test', 9999); END")
> -box.sql.execute("SELECT * FROM _trigger");
> +box.sql.execute("SELECT * FROM \"_trigger\"");
>  
>  -- Many entries
>  box.sql.execute("CREATE TABLE t1(a,b,c,PRIMARY KEY(b,c));")
> @@ -59,21 +59,21 @@ box.sql.execute("SELECT a FROM t1 ORDER BY b, a LIMIT 10 OFFSET 20;");
>  test_run:cmd('restart server default');
>  
>  -- prove that trigger survived
> -box.sql.execute("SELECT * FROM _trigger");
> +box.sql.execute("SELECT * FROM \"_trigger\"");
>  
>  -- ... functional
>  box.sql.execute("INSERT INTO foobar VALUES ('foobar trigger test', 8888)")
>  box.sql.execute("SELECT * FROM barfoo WHERE foo = 9999");
>  
>  -- and still persistent
> -box.sql.execute("SELECT * FROM _trigger")
> +box.sql.execute("SELECT * FROM \"_trigger\"")
>  
>  -- and can be dropped just once
>  box.sql.execute("DROP TRIGGER tfoobar")
>  -- Should error
>  box.sql.execute("DROP TRIGGER tfoobar")
>  -- Should be empty
> -box.sql.execute("SELECT * FROM _trigger")
> +box.sql.execute("SELECT * FROM \"_trigger\"")
>  
>  -- prove barfoo2 still exists
>  box.sql.execute("INSERT INTO barfoo VALUES ('xfoo', 1)")
> -- 
> 2.14.1
> 



More information about the Tarantool-patches mailing list