mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-19 21:43:15 +03:00
Record within the Token structure itself whether or not the token has
been dequoted. This steals one bit from the length of a token and thus limits the size of tokens to 1GiB. (CVS 6589) FossilOrigin-Name: 12bcb03d9b9e1a31c1a3c67cbb4263cc0af2f3d0
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
** COMMIT
|
||||
** ROLLBACK
|
||||
**
|
||||
** $Id: build.c,v 1.532 2009/04/28 13:01:09 drh Exp $
|
||||
** $Id: build.c,v 1.533 2009/05/01 21:13:37 drh Exp $
|
||||
*/
|
||||
#include "sqliteInt.h"
|
||||
|
||||
@@ -579,10 +579,13 @@ void sqlite3UnlinkAndDeleteTable(sqlite3 *db, int iDb, const char *zTabName){
|
||||
|
||||
/*
|
||||
** Given a token, return a string that consists of the text of that
|
||||
** token with any quotations removed. Space to hold the returned string
|
||||
** token. Space to hold the returned string
|
||||
** is obtained from sqliteMalloc() and must be freed by the calling
|
||||
** function.
|
||||
**
|
||||
** Any quotation marks (ex: "name", 'name', [name], or `name`) that
|
||||
** surround the body of the token are removed.
|
||||
**
|
||||
** Tokens are often just pointers into the original SQL text and so
|
||||
** are not \000 terminated and are not persistent. The returned string
|
||||
** is \000 terminated and is persistent.
|
||||
@@ -591,7 +594,7 @@ char *sqlite3NameFromToken(sqlite3 *db, Token *pName){
|
||||
char *zName;
|
||||
if( pName ){
|
||||
zName = sqlite3DbStrNDup(db, (char*)pName->z, pName->n);
|
||||
sqlite3Dequote(zName);
|
||||
if( pName->quoted ) sqlite3Dequote(zName);
|
||||
}else{
|
||||
zName = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user