1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-05 15:55:57 +03:00

speed tweaks and documentation updates (CVS 167)

FossilOrigin-Name: ced90c3f93e5e0cf73ea77b62a1308cd8dd5f3b3
This commit is contained in:
drh
2000-12-10 18:23:50 +00:00
parent af90b19472
commit 8c82b3506e
14 changed files with 222 additions and 89 deletions

View File

@@ -26,7 +26,7 @@
** other files are for internal use by SQLite and should not be
** accessed by users of the library.
**
** $Id: main.c,v 1.21 2000/10/19 01:49:02 drh Exp $
** $Id: main.c,v 1.22 2000/12/10 18:23:50 drh Exp $
*/
#include "sqliteInt.h"
@@ -257,29 +257,50 @@ void sqlite_close(sqlite *db){
** Return TRUE if the given SQL string ends in a semicolon.
*/
int sqlite_complete(const char *zSql){
int i;
int lastWasSemi = 0;
i = 0;
while( i>=0 && zSql[i]!=0 ){
int tokenType;
int n;
n = sqliteGetToken(&zSql[i], &tokenType);
switch( tokenType ){
case TK_SPACE:
case TK_COMMENT:
int isComplete = 0;
while( *zSql ){
switch( *zSql ){
case ';': {
isComplete = 1;
break;
case TK_SEMI:
lastWasSemi = 1;
}
case ' ':
case '\t':
case '\n':
case '\f': {
break;
default:
lastWasSemi = 0;
}
case '\'': {
isComplete = 0;
zSql++;
while( *zSql && *zSql!='\'' ){ zSql++; }
if( *zSql==0 ) return 0;
break;
}
case '"': {
isComplete = 0;
zSql++;
while( *zSql && *zSql!='"' ){ zSql++; }
if( *zSql==0 ) return 0;
break;
}
case '-': {
if( zSql[1]!='-' ){
isComplete = 0;
break;
}
while( *zSql && *zSql!='\n' ){ zSql++; }
if( *zSql==0 ) return isComplete;
break;
}
default: {
isComplete = 0;
break;
}
}
i += n;
zSql++;
}
return lastWasSemi;
return isComplete;
}
/*