summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2003-06-06 22:44:57 +0000
committerWez Furlong <wez@php.net>2003-06-06 22:44:57 +0000
commit30fc9e152f6279df812bfc32da309c2c8397671d (patch)
treedec0b645f8a7faafc92ebffd4df9a7ce2e8b9446 /ext
parent6610183236b88cf1017fbd71b0561fac9cee9c8f (diff)
downloadphp-git-30fc9e152f6279df812bfc32da309c2c8397671d.tar.gz
Update bundled library to 2.8.3 + patches from sqlite author to enable
authorization checks for the ATTACH database command.
Diffstat (limited to 'ext')
-rw-r--r--ext/sqlite/Makefile.frag5
-rw-r--r--ext/sqlite/config.m44
-rw-r--r--ext/sqlite/libsqlite/VERSION2
-rw-r--r--ext/sqlite/libsqlite/src/attach.c183
-rw-r--r--ext/sqlite/libsqlite/src/btree.c2
-rw-r--r--ext/sqlite/libsqlite/src/btree.h2
-rw-r--r--ext/sqlite/libsqlite/src/btree_rb.c3
-rw-r--r--ext/sqlite/libsqlite/src/build.c66
-rw-r--r--ext/sqlite/libsqlite/src/copy.c3
-rw-r--r--ext/sqlite/libsqlite/src/expr.c1
-rw-r--r--ext/sqlite/libsqlite/src/insert.c89
-rw-r--r--ext/sqlite/libsqlite/src/main.c8
-rw-r--r--ext/sqlite/libsqlite/src/os.c63
-rw-r--r--ext/sqlite/libsqlite/src/pager.c4
-rw-r--r--ext/sqlite/libsqlite/src/parse.c1134
-rw-r--r--ext/sqlite/libsqlite/src/parse.y2
-rw-r--r--ext/sqlite/libsqlite/src/pragma.c6
-rw-r--r--ext/sqlite/libsqlite/src/select.c1
-rw-r--r--ext/sqlite/libsqlite/src/sqlite.h.in4
-rw-r--r--ext/sqlite/libsqlite/src/sqlite.w32.h8
-rw-r--r--ext/sqlite/libsqlite/src/sqliteInt.h32
-rw-r--r--ext/sqlite/libsqlite/src/trigger.c105
-rw-r--r--ext/sqlite/libsqlite/src/update.c9
-rw-r--r--ext/sqlite/libsqlite/src/util.c189
-rw-r--r--ext/sqlite/libsqlite/src/vdbe.c24
-rw-r--r--ext/sqlite/sqlite.c14
26 files changed, 1056 insertions, 907 deletions
diff --git a/ext/sqlite/Makefile.frag b/ext/sqlite/Makefile.frag
index b800d25041..baefc7a70b 100644
--- a/ext/sqlite/Makefile.frag
+++ b/ext/sqlite/Makefile.frag
@@ -5,7 +5,7 @@
# We avoid building these last three by bundling the generated versions
# in our release packages
-$(srcdir)/libsqlite/src/opcodes.c: $(srcdir)/libsqlite/src/vdbe.c
+$(srcdir)/libsqlite/src/opcodes.c: $(srcdir)/libsqlite/src/opcodes.h $(srcdir)/libsqlite/src/sqlite.h
echo '/* Automatically generated file. Do not edit */' >$@
echo 'char *sqliteOpcodeNames[] = { "???", ' >>$@
grep '^case OP_' $(srcdir)/libsqlite/src/vdbe.c | \
@@ -18,6 +18,9 @@ $(srcdir)/libsqlite/src/opcodes.h: $(srcdir)/libsqlite/src/vdbe.c
sed -e 's/://' | \
awk '{printf "#define %-30s %3d\n", $$2, ++cnt}' >>$@
+$(srcdir)/libsqlite/src/sqlite.h: $(srcdir)/libsqlite/src/sqlite.h.in
+ sed -e s/--VERS--/$(SQLITE_VERSION)/ -e s/--ENCODING--/$(SQLITE_ENCODING)/ $(srcdir)/libsqlite/src/sqlite.h.in >$(srcdir)/libsqlite/src/sqlite.h
+
$(srcdir)/libsqlite/src/sqlite.c: $(srcdir)/libsqlite/src/sqlite.h
$(srcdir)/libsqlite/src/parse.c: $(srcdir)/libsqlite/src/parse.y
diff --git a/ext/sqlite/config.m4 b/ext/sqlite/config.m4
index 8158130810..bdcf84ad2d 100644
--- a/ext/sqlite/config.m4
+++ b/ext/sqlite/config.m4
@@ -71,7 +71,7 @@ if test "$PHP_SQLITE" != "no"; then
AC_DEFINE(OS_WIN, 0, [if this is windows])
dnl use latin 1 for now; the utf-8 handling in funcs.c uses assert(),
dnl which is a bit silly and something we want to avoid
- SQLITE_ENCODING="iso8859"
+ SQLITE_ENCODING="ISO8859"
dnl SQLITE_ENCODING="UTF-8"
dnl AC_DEFINE(SQLITE_UTF8,1,[if SQLite should use utf-8 encoding])
PHP_SUBST(SQLITE_ENCODING)
@@ -97,8 +97,6 @@ if test "$PHP_SQLITE" != "no"; then
#endif
EOF
- sed -e s/--VERS--/`cat $ext_srcdir/libsqlite/VERSION`/ -e s/--ENCODING--/$SQLITE_ENCODING/ $ext_srcdir/libsqlite/src/sqlite.h.in >$ext_srcdir/libsqlite/src/sqlite.h
-
PHP_ADD_MAKEFILE_FRAGMENT
fi
diff --git a/ext/sqlite/libsqlite/VERSION b/ext/sqlite/libsqlite/VERSION
index 1817afea41..9f8d8a9164 100644
--- a/ext/sqlite/libsqlite/VERSION
+++ b/ext/sqlite/libsqlite/VERSION
@@ -1 +1 @@
-2.8.2
+2.8.3
diff --git a/ext/sqlite/libsqlite/src/attach.c b/ext/sqlite/libsqlite/src/attach.c
index dd94c21182..5b57e29e16 100644
--- a/ext/sqlite/libsqlite/src/attach.c
+++ b/ext/sqlite/libsqlite/src/attach.c
@@ -43,6 +43,32 @@ void sqliteAttach(Parse *pParse, Token *pFilename, Token *pDbname){
pParse->rc = SQLITE_ERROR;
return;
}
+
+ zFile = 0;
+ sqliteSetNString(&zFile, pFilename->z, pFilename->n, 0);
+ if( zFile==0 ) return;
+ sqliteDequote(zFile);
+#ifndef SQLITE_OMIT_AUTHORIZATION
+ if( sqliteAuthCheck(pParse, SQLITE_ATTACH, zFile, 0, 0)!=SQLITE_OK ){
+ sqliteFree(zFile);
+ return;
+ }
+#endif /* SQLITE_OMIT_AUTHORIZATION */
+
+ zName = 0;
+ sqliteSetNString(&zName, pDbname->z, pDbname->n, 0);
+ if( zName==0 ) return;
+ sqliteDequote(zName);
+ for(i=0; i<db->nDb; i++){
+ if( db->aDb[i].zName && sqliteStrICmp(db->aDb[i].zName, zName)==0 ){
+ sqliteErrorMsg(pParse, "database %z is already in use", zName);
+ pParse->rc = SQLITE_ERROR;
+ sqliteFree(zFile);
+ sqliteFree(zName);
+ return;
+ }
+ }
+
if( db->aDb==db->aDbStatic ){
aNew = sqliteMalloc( sizeof(db->aDb[0])*3 );
if( aNew==0 ) return;
@@ -58,24 +84,7 @@ void sqliteAttach(Parse *pParse, Token *pFilename, Token *pDbname){
sqliteHashInit(&aNew->idxHash, SQLITE_HASH_STRING, 0);
sqliteHashInit(&aNew->trigHash, SQLITE_HASH_STRING, 0);
sqliteHashInit(&aNew->aFKey, SQLITE_HASH_STRING, 1);
-
- zName = 0;
- sqliteSetNString(&zName, pDbname->z, pDbname->n, 0);
- if( zName==0 ) return;
- sqliteDequote(zName);
- for(i=0; i<db->nDb; i++){
- if( db->aDb[i].zName && sqliteStrICmp(db->aDb[i].zName, zName)==0 ){
- sqliteErrorMsg(pParse, "database %z is already in use", zName);
- db->nDb--;
- pParse->rc = SQLITE_ERROR;
- return;
- }
- }
aNew->zName = zName;
- zFile = 0;
- sqliteSetNString(&zFile, pFilename->z, pFilename->n, 0);
- if( zFile==0 ) return;
- sqliteDequote(zFile);
rc = sqliteBtreeFactory(db, zFile, 0, MAX_PAGES, &aNew->pBt);
if( rc ){
sqliteErrorMsg(pParse, "unable to open database: %s", zFile);
@@ -117,6 +126,11 @@ void sqliteDetach(Parse *pParse, Token *pDbname){
sqliteErrorMsg(pParse, "cannot detach database %T", pDbname);
return;
}
+#ifndef SQLITE_OMIT_AUTHORIZATION
+ if( sqliteAuthCheck(pParse,SQLITE_DETACH,db->aDb[i].zName,0,0)!=SQLITE_OK ){
+ return;
+ }
+#endif /* SQLITE_OMIT_AUTHORIZATION */
sqliteBtreeClose(db->aDb[i].pBt);
db->aDb[i].pBt = 0;
sqliteFree(db->aDb[i].zName);
@@ -128,3 +142,138 @@ void sqliteDetach(Parse *pParse, Token *pDbname){
sqliteResetInternalSchema(db, i);
}
}
+
+/*
+** Initialize a DbFixer structure. This routine must be called prior
+** to passing the structure to one of the sqliteFixAAAA() routines below.
+**
+** The return value indicates whether or not fixation is required. TRUE
+** means we do need to fix the database references, FALSE means we do not.
+*/
+int sqliteFixInit(
+ DbFixer *pFix, /* The fixer to be initialized */
+ Parse *pParse, /* Error messages will be written here */
+ int iDb, /* This is the database that must must be used */
+ const char *zType, /* "view", "trigger", or "index" */
+ const Token *pName /* Name of the view, trigger, or index */
+){
+ sqlite *db;
+
+ if( iDb<0 || iDb==1 ) return 0;
+ db = pParse->db;
+ assert( db->nDb>iDb );
+ pFix->pParse = pParse;
+ pFix->zDb = db->aDb[iDb].zName;
+ pFix->zType = zType;
+ pFix->pName = pName;
+ return 1;
+}
+
+/*
+** The following set of routines walk through the parse tree and assign
+** a specific database to all table references where the database name
+** was left unspecified in the original SQL statement. The pFix structure
+** must have been initialized by a prior call to sqliteFixInit().
+**
+** These routines are used to make sure that an index, trigger, or
+** view in one database does not refer to objects in a different database.
+** (Exception: indices, triggers, and views in the TEMP database are
+** allowed to refer to anything.) If a reference is explicitly made
+** to an object in a different database, an error message is added to
+** pParse->zErrMsg and these routines return non-zero. If everything
+** checks out, these routines return 0.
+*/
+int sqliteFixSrcList(
+ DbFixer *pFix, /* Context of the fixation */
+ SrcList *pList /* The Source list to check and modify */
+){
+ int i;
+ const char *zDb;
+
+ if( pList==0 ) return 0;
+ zDb = pFix->zDb;
+ for(i=0; i<pList->nSrc; i++){
+ if( pList->a[i].zDatabase==0 ){
+ pList->a[i].zDatabase = sqliteStrDup(zDb);
+ }else if( sqliteStrICmp(pList->a[i].zDatabase,zDb)!=0 ){
+ sqliteErrorMsg(pFix->pParse,
+ "%s %z cannot reference objects in database %s",
+ pFix->zType, sqliteStrNDup(pFix->pName->z, pFix->pName->n),
+ pList->a[i].zDatabase);
+ return 1;
+ }
+ if( sqliteFixSelect(pFix, pList->a[i].pSelect) ) return 1;
+ if( sqliteFixExpr(pFix, pList->a[i].pOn) ) return 1;
+ }
+ return 0;
+}
+int sqliteFixSelect(
+ DbFixer *pFix, /* Context of the fixation */
+ Select *pSelect /* The SELECT statement to be fixed to one database */
+){
+ while( pSelect ){
+ if( sqliteFixExprList(pFix, pSelect->pEList) ){
+ return 1;
+ }
+ if( sqliteFixSrcList(pFix, pSelect->pSrc) ){
+ return 1;
+ }
+ if( sqliteFixExpr(pFix, pSelect->pWhere) ){
+ return 1;
+ }
+ if( sqliteFixExpr(pFix, pSelect->pHaving) ){
+ return 1;
+ }
+ pSelect = pSelect->pPrior;
+ }
+ return 0;
+}
+int sqliteFixExpr(
+ DbFixer *pFix, /* Context of the fixation */
+ Expr *pExpr /* The expression to be fixed to one database */
+){
+ while( pExpr ){
+ if( sqliteFixSelect(pFix, pExpr->pSelect) ){
+ return 1;
+ }
+ if( sqliteFixExprList(pFix, pExpr->pList) ){
+ return 1;
+ }
+ if( sqliteFixExpr(pFix, pExpr->pRight) ){
+ return 1;
+ }
+ pExpr = pExpr->pLeft;
+ }
+ return 0;
+}
+int sqliteFixExprList(
+ DbFixer *pFix, /* Context of the fixation */
+ ExprList *pList /* The expression to be fixed to one database */
+){
+ int i;
+ if( pList==0 ) return 0;
+ for(i=0; i<pList->nExpr; i++){
+ if( sqliteFixExpr(pFix, pList->a[i].pExpr) ){
+ return 1;
+ }
+ }
+ return 0;
+}
+int sqliteFixTriggerStep(
+ DbFixer *pFix, /* Context of the fixation */
+ TriggerStep *pStep /* The trigger step be fixed to one database */
+){
+ while( pStep ){
+ if( sqliteFixSelect(pFix, pStep->pSelect) ){
+ return 1;
+ }
+ if( sqliteFixExpr(pFix, pStep->pWhere) ){
+ return 1;
+ }
+ if( sqliteFixExprList(pFix, pStep->pExprList) ){
+ return 1;
+ }
+ pStep = pStep->pNext;
+ }
+ return 0;
+}
diff --git a/ext/sqlite/libsqlite/src/btree.c b/ext/sqlite/libsqlite/src/btree.c
index 30979d0e31..9f433f4036 100644
--- a/ext/sqlite/libsqlite/src/btree.c
+++ b/ext/sqlite/libsqlite/src/btree.c
@@ -2477,7 +2477,7 @@ static int balance(Btree *pBt, MemPage *pPage, BtCursor *pCur){
int minV = pgnoNew[i];
int minI = i;
for(j=i+1; j<k; j++){
- if( pgnoNew[j]<minV ){
+ if( pgnoNew[j]<(unsigned)minV ){
minI = j;
minV = pgnoNew[j];
}
diff --git a/ext/sqlite/libsqlite/src/btree.h b/ext/sqlite/libsqlite/src/btree.h
index 064b7f97dd..1e1b2163d7 100644
--- a/ext/sqlite/libsqlite/src/btree.h
+++ b/ext/sqlite/libsqlite/src/btree.h
@@ -95,7 +95,7 @@ struct BtCursorOps {
#define SQLITE_N_BTREE_META 10
int sqliteBtreeOpen(const char *zFilename, int mode, int nPg, Btree **ppBtree);
-int sqliteRBtreeOpen(const char *zFilename, int mode, int nPg, Btree **ppBtree);
+int sqliteRbtreeOpen(const char *zFilename, int mode, int nPg, Btree **ppBtree);
#define btOps(pBt) (*((BtOps **)(pBt)))
#define btCOps(pCur) (*((BtCursorOps **)(pCur)))
diff --git a/ext/sqlite/libsqlite/src/btree_rb.c b/ext/sqlite/libsqlite/src/btree_rb.c
index d4c63a5b8b..39a842032a 100644
--- a/ext/sqlite/libsqlite/src/btree_rb.c
+++ b/ext/sqlite/libsqlite/src/btree_rb.c
@@ -580,8 +580,9 @@ int sqliteRbtreeOpen(
const char *zFilename,
int mode,
int nPg,
- Rbtree **ppRbtree
+ Btree **ppBtree
){
+ Rbtree **ppRbtree = (Rbtree**)ppBtree;
*ppRbtree = (Rbtree *)sqliteMalloc(sizeof(Rbtree));
sqliteHashInit(&(*ppRbtree)->tblHash, SQLITE_HASH_INT, 0);
diff --git a/ext/sqlite/libsqlite/src/build.c b/ext/sqlite/libsqlite/src/build.c
index 76077ac943..8eea830a0d 100644
--- a/ext/sqlite/libsqlite/src/build.c
+++ b/ext/sqlite/libsqlite/src/build.c
@@ -118,6 +118,12 @@ void sqliteExec(Parse *pParse){
** of that table and (optionally) the name of the database
** containing the table. Return NULL if not found.
**
+** If zDatabase is 0, all databases are searched for the
+** table and the first matching table is returned. (No checking
+** for duplicate table names is done.) The search order is
+** TEMP first, then MAIN, then any auxiliary databases added
+** using the ATTACH command.
+**
** See also sqliteLocateTable().
*/
Table *sqliteFindTable(sqlite *db, const char *zName, const char *zDatabase){
@@ -137,38 +143,22 @@ Table *sqliteFindTable(sqlite *db, const char *zName, const char *zDatabase){
** a particular database table given the name
** of that table and (optionally) the name of the database
** containing the table. Return NULL if not found.
+** Also leave an error message in pParse->zErrMsg.
**
-** If pParse->useDb is not negative, then the table must be
-** located in that database. If a different database is specified,
-** an error message is generated into pParse->zErrMsg.
+** The difference between this routine and sqliteFindTable()
+** is that this routine leaves an error message in pParse->zErrMsg
+** where sqliteFindTable() does not.
*/
Table *sqliteLocateTable(Parse *pParse, const char *zName, const char *zDbase){
- sqlite *db;
- const char *zUse;
Table *p;
- db = pParse->db;
- if( pParse->useDb<0 ){
- p = sqliteFindTable(db, zName, zDbase);
- }else {
- assert( pParse->useDb<db->nDb );
- assert( db->aDb[pParse->useDb].pBt!=0 );
- zUse = db->aDb[pParse->useDb].zName;
- if( zDbase && pParse->useDb!=1 && sqliteStrICmp(zDbase, zUse)!=0 ){
- sqliteErrorMsg(pParse,"cannot use database %s in this context", zDbase);
- return 0;
- }
- p = sqliteFindTable(db, zName, zUse);
- if( p==0 && pParse->useDb==1 && zDbase==0 ){
- p = sqliteFindTable(db, zName, 0);
- }
- }
+
+ p = sqliteFindTable(pParse->db, zName, zDbase);
if( p==0 ){
if( zDbase ){
sqliteErrorMsg(pParse, "no such table: %s.%s", zDbase, zName);
- }else if( (pParse->useDb==0 || pParse->useDb>=2)
- && sqliteFindTable(db, zName, 0)!=0 ){
+ }else if( sqliteFindTable(pParse->db, zName, 0)!=0 ){
sqliteErrorMsg(pParse, "table \"%s\" is not in database \"%s\"",
- zName, zUse);
+ zName, zDbase);
}else{
sqliteErrorMsg(pParse, "no such table: %s", zName);
}
@@ -181,6 +171,12 @@ Table *sqliteLocateTable(Parse *pParse, const char *zName, const char *zDbase){
** a particular index given the name of that index
** and the name of the database that contains the index.
** Return NULL if not found.
+**
+** If zDatabase is 0, all databases are searched for the
+** table and the first matching index is returned. (No checking
+** for duplicate index names is done.) The search order is
+** TEMP first, then MAIN, then any auxiliary databases added
+** using the ATTACH command.
*/
Index *sqliteFindIndex(sqlite *db, const char *zName, const char *zDb){
Index *p = 0;
@@ -1046,6 +1042,7 @@ void sqliteCreateView(
int n;
const char *z;
Token sEnd;
+ DbFixer sFix;
sqliteStartTable(pParse, pBegin, pName, isTemp, 1);
p = pParse->pNewTable;
@@ -1053,6 +1050,12 @@ void sqliteCreateView(
sqliteSelectDelete(pSelect);
return;
}
+ if( sqliteFixInit(&sFix, pParse, p->iDb, "view", pName)
+ && sqliteFixSelect(&sFix, pSelect)
+ ){
+ sqliteSelectDelete(pSelect);
+ return;
+ }
/* Make a copy of the entire SELECT statement that defines the view.
** This will force all the Expr.token.z values to be dynamically
@@ -1297,12 +1300,8 @@ void sqliteDropTable(Parse *pParse, Token *pName, int isView){
/* Drop all triggers associated with the table being dropped */
pTrigger = pTable->pTrigger;
while( pTrigger ){
- SrcList *pNm;
assert( pTrigger->iDb==pTable->iDb || pTrigger->iDb==1 );
- pNm = sqliteSrcListAppend(0, 0, 0);
- pNm->a[0].zName = sqliteStrDup(pTrigger->name);
- pNm->a[0].zDatabase = sqliteStrDup(db->aDb[pTable->iDb].zName);
- sqliteDropTrigger(pParse, pNm, 1);
+ sqliteDropTriggerPtr(pParse, pTrigger, 1);
if( pParse->explain ){
pTrigger = pTrigger->pNext;
}else{
@@ -1538,10 +1537,17 @@ void sqliteCreateIndex(
Index *pIndex; /* The index to be created */
char *zName = 0;
int i, j;
- Token nullId; /* Fake token for an empty ID list */
+ Token nullId; /* Fake token for an empty ID list */
+ DbFixer sFix; /* For assigning database names to pTable */
sqlite *db = pParse->db;
if( pParse->nErr || sqlite_malloc_failed ) goto exit_create_index;
+ if( !isTemp && pParse->initFlag
+ && sqliteFixInit(&sFix, pParse, pParse->iDb, "index", pName)
+ && sqliteFixSrcList(&sFix, pTable)
+ ){
+ goto exit_create_index;
+ }
/*
** Find the table that is to be indexed. Return early if not found.
diff --git a/ext/sqlite/libsqlite/src/copy.c b/ext/sqlite/libsqlite/src/copy.c
index ac2d8ecd37..5fca758d63 100644
--- a/ext/sqlite/libsqlite/src/copy.c
+++ b/ext/sqlite/libsqlite/src/copy.c
@@ -96,7 +96,8 @@ void sqliteCopy(
sqliteVdbeAddOp(v, OP_FileColumn, i, 0);
}
}
- sqliteGenerateConstraintChecks(pParse, pTab, 0, 0, 0, 0, onError, addr);
+ sqliteGenerateConstraintChecks(pParse, pTab, 0, 0, pTab->iPKey>=0,
+ 0, onError, addr);
sqliteCompleteInsertion(pParse, pTab, 0, 0, 0, 0, -1);
if( (db->flags & SQLITE_CountRows)!=0 ){
sqliteVdbeAddOp(v, OP_AddImm, 1, 0); /* Increment row count */
diff --git a/ext/sqlite/libsqlite/src/expr.c b/ext/sqlite/libsqlite/src/expr.c
index 2a380dd538..d3b4cc69b1 100644
--- a/ext/sqlite/libsqlite/src/expr.c
+++ b/ext/sqlite/libsqlite/src/expr.c
@@ -191,6 +191,7 @@ SrcList *sqliteSrcListDup(SrcList *p){
if( pNew==0 ) return 0;
pNew->nSrc = p->nSrc;
for(i=0; i<p->nSrc; i++){
+ pNew->a[i].zDatabase = sqliteStrDup(p->a[i].zDatabase);
pNew->a[i].zName = sqliteStrDup(p->a[i].zName);
pNew->a[i].zAlias = sqliteStrDup(p->a[i].zAlias);
pNew->a[i].jointype = p->a[i].jointype;
diff --git a/ext/sqlite/libsqlite/src/insert.c b/ext/sqlite/libsqlite/src/insert.c
index 313764f51e..07cb30440e 100644
--- a/ext/sqlite/libsqlite/src/insert.c
+++ b/ext/sqlite/libsqlite/src/insert.c
@@ -293,10 +293,14 @@ void sqliteInsert(
}
}
if( j>=pTab->nCol ){
- sqliteErrorMsg(pParse, "table %S has no column named %s",
- pTabList, 0, pColumn->a[i].zName);
- pParse->nErr++;
- goto insert_cleanup;
+ if( sqliteIsRowid(pColumn->a[i].zName) ){
+ keyColumn = i;
+ }else{
+ sqliteErrorMsg(pParse, "table %S has no column named %s",
+ pTabList, 0, pColumn->a[i].zName);
+ pParse->nErr++;
+ goto insert_cleanup;
+ }
}
}
}
@@ -482,7 +486,8 @@ void sqliteInsert(
/* Generate code to check constraints and generate index keys and
** do the insertion.
*/
- sqliteGenerateConstraintChecks(pParse, pTab, base, 0,0,0,onError,endOfLoop);
+ sqliteGenerateConstraintChecks(pParse, pTab, base, 0, keyColumn>=0,
+ 0, onError, endOfLoop);
sqliteCompleteInsertion(pParse, pTab, base, 0,0,0,
after_triggers ? newIdx : -1);
}
@@ -660,7 +665,6 @@ void sqliteGenerateConstraintChecks(
*/
for(i=0; i<nCol; i++){
if( i==pTab->iPKey ){
- /* Fix me: Make sure the INTEGER PRIMARY KEY is not NULL. */
continue;
}
onError = pTab->aCol[i].notNull;
@@ -711,10 +715,8 @@ void sqliteGenerateConstraintChecks(
/* If we have an INTEGER PRIMARY KEY, make sure the primary key
** of the new record does not previously exist. Except, if this
** is an UPDATE and the primary key is not changing, that is OK.
- ** Also, if the conflict resolution policy is REPLACE, then we
- ** can skip this test.
*/
- if( (recnoChng || !isUpdate) && pTab->iPKey>=0 ){
+ if( recnoChng ){
onError = pTab->keyConf;
if( overrideError!=OE_Default ){
onError = overrideError;
@@ -723,37 +725,49 @@ void sqliteGenerateConstraintChecks(
}else if( onError==OE_Default ){
onError = OE_Abort;
}
- if( onError!=OE_Replace ){
- if( isUpdate ){
- sqliteVdbeAddOp(v, OP_Dup, nCol+1, 1);
- sqliteVdbeAddOp(v, OP_Dup, nCol+1, 1);
- jumpInst1 = sqliteVdbeAddOp(v, OP_Eq, 0, 0);
+
+ if( isUpdate ){
+ sqliteVdbeAddOp(v, OP_Dup, nCol+1, 1);
+ sqliteVdbeAddOp(v, OP_Dup, nCol+1, 1);
+ jumpInst1 = sqliteVdbeAddOp(v, OP_Eq, 0, 0);
+ }
+ sqliteVdbeAddOp(v, OP_Dup, nCol, 1);
+ jumpInst2 = sqliteVdbeAddOp(v, OP_NotExists, base, 0);
+ switch( onError ){
+ default: {
+ onError = OE_Abort;
+ /* Fall thru into the next case */
}
- sqliteVdbeAddOp(v, OP_Dup, nCol, 1);
- jumpInst2 = sqliteVdbeAddOp(v, OP_NotExists, base, 0);
- switch( onError ){
- case OE_Rollback:
- case OE_Abort:
- case OE_Fail: {
- sqliteVdbeAddOp(v, OP_Halt, SQLITE_CONSTRAINT, onError);
- sqliteVdbeChangeP3(v, -1, "PRIMARY KEY must be unique", P3_STATIC);
- break;
- }
- case OE_Ignore: {
- sqliteVdbeAddOp(v, OP_Pop, nCol+1+hasTwoRecnos, 0);
- sqliteVdbeAddOp(v, OP_Goto, 0, ignoreDest);
- break;
+ case OE_Rollback:
+ case OE_Abort:
+ case OE_Fail: {
+ sqliteVdbeAddOp(v, OP_Halt, SQLITE_CONSTRAINT, onError);
+ sqliteVdbeChangeP3(v, -1, "PRIMARY KEY must be unique", P3_STATIC);
+ break;
+ }
+ case OE_Replace: {
+ sqliteGenerateRowIndexDelete(pParse->db, v, pTab, base, 0);
+ if( isUpdate ){
+ sqliteVdbeAddOp(v, OP_Dup, nCol+hasTwoRecnos, 1);
+ sqliteVdbeAddOp(v, OP_MoveTo, base, 0);
}
- default: assert(0);
+ seenReplace = 1;
+ break;
}
- contAddr = sqliteVdbeCurrentAddr(v);
- sqliteVdbeChangeP2(v, jumpInst2, contAddr);
- if( isUpdate ){
- sqliteVdbeChangeP2(v, jumpInst1, contAddr);
- sqliteVdbeAddOp(v, OP_Dup, nCol+1, 1);
- sqliteVdbeAddOp(v, OP_MoveTo, base, 0);
+ case OE_Ignore: {
+ assert( seenReplace==0 );
+ sqliteVdbeAddOp(v, OP_Pop, nCol+1+hasTwoRecnos, 0);
+ sqliteVdbeAddOp(v, OP_Goto, 0, ignoreDest);
+ break;
}
}
+ contAddr = sqliteVdbeCurrentAddr(v);
+ sqliteVdbeChangeP2(v, jumpInst2, contAddr);
+ if( isUpdate ){
+ sqliteVdbeChangeP2(v, jumpInst1, contAddr);
+ sqliteVdbeAddOp(v, OP_Dup, nCol+1, 1);
+ sqliteVdbeAddOp(v, OP_MoveTo, base, 0);
+ }
}
/* Test all UNIQUE constraints by creating entries for each UNIQUE
@@ -788,6 +802,11 @@ void sqliteGenerateConstraintChecks(
}else if( onError==OE_Default ){
onError = OE_Abort;
}
+ if( seenReplace ){
+ if( onError==OE_Ignore ) onError = OE_Replace;
+ else if( onError==OE_Fail ) onError = OE_Abort;
+ }
+
/* Check to see if the new index entry will be unique */
sqliteVdbeAddOp(v, OP_Dup, extra+nCol+1+hasTwoRecnos, 1);
diff --git a/ext/sqlite/libsqlite/src/main.c b/ext/sqlite/libsqlite/src/main.c
index ebba7cbc57..e2d51d87df 100644
--- a/ext/sqlite/libsqlite/src/main.c
+++ b/ext/sqlite/libsqlite/src/main.c
@@ -80,7 +80,6 @@ int sqliteInitCallback(void *pInit, int argc, char **argv, char **azColName){
sParse.db = pData->db;
sParse.initFlag = 1;
sParse.iDb = atoi(argv[4]);
- sParse.useDb = -1;
sParse.newTnum = atoi(argv[2]);
sParse.useCallback = 1;
sqliteRunParser(&sParse, argv[3], pData->pzErrMsg);
@@ -322,7 +321,7 @@ static int sqliteInitOne(sqlite *db, int iDb, char **pzErrMsg){
db->aDb[iDb].pBt = 0;
return SQLITE_FORMAT;
}
- sqliteBtreeSetCacheSize(db->aDb[iDb].pBt, size);
+ sqliteBtreeSetCacheSize(db->aDb[iDb].pBt, db->cache_size);
sqliteBtreeSetSafetyLevel(db->aDb[iDb].pBt, meta[4]==0 ? 2 : meta[4]);
/* Read the schema information out of the schema tables
@@ -332,7 +331,6 @@ static int sqliteInitOne(sqlite *db, int iDb, char **pzErrMsg){
sParse.xCallback = sqliteInitCallback;
sParse.pArg = (void*)&initData;
sParse.initFlag = 1;
- sParse.useDb = -1;
sParse.useCallback = 1;
if( iDb==0 ){
sqliteRunParser(&sParse,
@@ -442,6 +440,9 @@ sqlite *sqlite_open(const char *zFilename, int mode, char **pzErrMsg){
}
/* Open the backend database driver */
+ if( zFilename[0]==':' && strcmp(zFilename,":memory:")==0 ){
+ db->temp_store = 2;
+ }
rc = sqliteBtreeFactory(db, zFilename, 0, MAX_PAGES, &db->aDb[0].pBt);
if( rc!=SQLITE_OK ){
switch( rc ){
@@ -623,7 +624,6 @@ static int sqliteMain(
sParse.db = db;
sParse.xCallback = xCallback;
sParse.pArg = pArg;
- sParse.useDb = -1;
sParse.useCallback = ppVm==0;
if( db->xTrace ) db->xTrace(db->pTraceArg, zSql);
sqliteRunParser(&sParse, zSql, pzErrMsg);
diff --git a/ext/sqlite/libsqlite/src/os.c b/ext/sqlite/libsqlite/src/os.c
index 46f22a4341..d9d16ed0c1 100644
--- a/ext/sqlite/libsqlite/src/os.c
+++ b/ext/sqlite/libsqlite/src/os.c
@@ -992,6 +992,13 @@ int sqliteOsFileSize(OsFile *id, off_t *pSize){
/*
** Return true (non-zero) if we are running under WinNT, Win2K or WinXP.
** Return false (zero) for Win95, Win98, or WinME.
+**
+** Here is an interesting observation: Win95, Win98, and WinME lack
+** the LockFileEx() API. But we can still statically link against that
+** API as long as we don't call it win running Win95/98/ME. A call to
+** this routine is used to determine if the host is Win95/98/ME or
+** WinNT/2K/XP so that we will know whether or not we can safely call
+** the LockFileEx() API.
*/
int isNT(void){
static osType = 0; /* 0=unknown 1=win95 2=winNT */
@@ -1006,10 +1013,10 @@ int isNT(void){
#endif
/*
-** Windows file locking notes: [the same/equivalent applies to MacOS]
+** Windows file locking notes: [similar issues apply to MacOS]
**
-** We cannot use LockFileEx() or UnlockFileEx() because those functions
-** are not available under Win95/98/ME. So we use only LockFile() and
+** We cannot use LockFileEx() or UnlockFileEx() on Win95/98/ME because
+** those functions are not available. So we use only LockFile() and
** UnlockFile().
**
** LockFile() prevents not just writing but also reading by other processes.
@@ -1034,6 +1041,14 @@ int isNT(void){
** another process jumping into the middle and messing us up. The same
** argument applies to sqliteOsWriteLock().
**
+** On WinNT/2K/XP systems, LockFileEx() and UnlockFileEx() are available,
+** which means we can use reader/writer locks. When reader writer locks
+** are used, the lock is placed on the same range of bytes that is used
+** for probabilistic locking in Win95/98/ME. Hence, the locking scheme
+** will support two or more Win95 readers or two or more WinNT readers.
+** But a single Win95 reader will lock out all WinNT readers and a single
+** WinNT reader will lock out all other Win95 readers.
+**
** Note: On MacOS we use the resource fork for locking.
**
** The following #defines specify the range of bytes used for locking.
@@ -1096,14 +1111,22 @@ int sqliteOsReadLock(OsFile *id){
int lk = (sqliteRandomInteger() & 0x7ffffff)%N_LOCKBYTE+1;
int res;
int cnt = 100;
- int page = isNT() ? 0xffffffff : 0;
- while( cnt-->0 && (res = LockFile(id->h, FIRST_LOCKBYTE, page, 1, 0))==0 ){
+ while( cnt-->0 && (res = LockFile(id->h, FIRST_LOCKBYTE, 0, 1, 0))==0 ){
Sleep(1);
}
if( res ){
- UnlockFile(id->h, FIRST_LOCKBYTE+1, page, N_LOCKBYTE, 0);
- res = LockFile(id->h, FIRST_LOCKBYTE+lk, page, 1, 0);
- UnlockFile(id->h, FIRST_LOCKBYTE, page, 1, 0);
+ UnlockFile(id->h, FIRST_LOCKBYTE+1, 0, N_LOCKBYTE, 0);
+ if( isNT() ){
+ OVERLAPPED ovlp;
+ ovlp.Offset = FIRST_LOCKBYTE+1;
+ ovlp.OffsetHigh = 0;
+ ovlp.hEvent = 0;
+ res = LockFileEx(id->h, LOCKFILE_FAIL_IMMEDIATELY,
+ 0, N_LOCKBYTE, 0, &ovlp);
+ }else{
+ res = LockFile(id->h, FIRST_LOCKBYTE+lk, 0, 1, 0);
+ }
+ UnlockFile(id->h, FIRST_LOCKBYTE, 0, 1, 0);
}
if( res ){
id->locked = lk;
@@ -1191,18 +1214,23 @@ int sqliteOsWriteLock(OsFile *id){
}else{
int res;
int cnt = 100;
- int page = isNT() ? 0xffffffff : 0;
- while( cnt-->0 && (res = LockFile(id->h, FIRST_LOCKBYTE, page, 1, 0))==0 ){
+ while( cnt-->0 && (res = LockFile(id->h, FIRST_LOCKBYTE, 0, 1, 0))==0 ){
Sleep(1);
}
if( res ){
- if( id->locked==0
- || UnlockFile(id->h, FIRST_LOCKBYTE + id->locked, page, 1, 0) ){
- res = LockFile(id->h, FIRST_LOCKBYTE+1, page, N_LOCKBYTE, 0);
+ if( id->locked>0 ){
+ if( isNT() ){
+ UnlockFile(id->h, FIRST_LOCKBYTE+1, 0, N_LOCKBYTE, 0);
+ }else{
+ res = UnlockFile(id->h, FIRST_LOCKBYTE + id->locked, 0, 1, 0);
+ }
+ }
+ if( res ){
+ res = LockFile(id->h, FIRST_LOCKBYTE+1, 0, N_LOCKBYTE, 0);
}else{
res = 0;
}
- UnlockFile(id->h, FIRST_LOCKBYTE, page, 1, 0);
+ UnlockFile(id->h, FIRST_LOCKBYTE, 0, 1, 0);
}
if( res ){
id->locked = -1;
@@ -1291,15 +1319,14 @@ int sqliteOsUnlock(OsFile *id){
#endif
#if OS_WIN
int rc;
- int page = isNT() ? 0xffffffff : 0;
if( id->locked==0 ){
rc = SQLITE_OK;
- }else if( id->locked<0 ){
- UnlockFile(id->h, FIRST_LOCKBYTE+1, page, N_LOCKBYTE, 0);
+ }else if( isNT() || id->locked<0 ){
+ UnlockFile(id->h, FIRST_LOCKBYTE+1, 0, N_LOCKBYTE, 0);
rc = SQLITE_OK;
id->locked = 0;
}else{
- UnlockFile(id->h, FIRST_LOCKBYTE+id->locked, page, 1, 0);
+ UnlockFile(id->h, FIRST_LOCKBYTE+id->locked, 0, 1, 0);
rc = SQLITE_OK;
id->locked = 0;
}
diff --git a/ext/sqlite/libsqlite/src/pager.c b/ext/sqlite/libsqlite/src/pager.c
index e133a3cad0..4e9d0c9059 100644
--- a/ext/sqlite/libsqlite/src/pager.c
+++ b/ext/sqlite/libsqlite/src/pager.c
@@ -496,7 +496,7 @@ static int pager_playback_one_page(Pager *pPager, OsFile *jfd, int format){
if( pgRec.pgno==0 ){
return SQLITE_DONE;
}
- if( pgRec.pgno>pPager->dbSize ){
+ if( pgRec.pgno>(unsigned)pPager->dbSize ){
return SQLITE_OK;
}
if( format>=JOURNAL_FORMAT_3 ){
@@ -944,7 +944,7 @@ int sqlitepager_truncate(Pager *pPager, Pgno nPage){
rc = pager_errcode(pPager);
return rc;
}
- if( nPage>=pPager->dbSize ){
+ if( nPage>=(unsigned)pPager->dbSize ){
return SQLITE_OK;
}
syncAllPages(pPager);
diff --git a/ext/sqlite/libsqlite/src/parse.c b/ext/sqlite/libsqlite/src/parse.c
index da1a6f0461..9bc27af745 100644
--- a/ext/sqlite/libsqlite/src/parse.c
+++ b/ext/sqlite/libsqlite/src/parse.c
@@ -4,7 +4,7 @@
/* First off, code is include which follows the "include" declaration
** in the input file. */
#include <stdio.h>
-#line 35 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 35 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
#include "sqliteInt.h"
#include "parse.h"
@@ -30,7 +30,7 @@ struct LimitVal {
struct TrigEvent { int a; IdList * b; };
-#line 34 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 34 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* Next is all token values, in a form suitable for use by makeheaders.
** This section will be null unless lemon is run with the -m switch.
*/
@@ -4375,144 +4375,144 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){
** inside the C code.
*/
case 135:
-#line 673 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 673 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprListDelete((yypminor->yy62));}
-#line 4380 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4380 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 157:
-#line 520 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 520 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprDelete((yypminor->yy334));}
-#line 4385 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4385 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 158:
-#line 692 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 692 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprDelete((yypminor->yy334));}
-#line 4390 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4390 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 159:
-#line 690 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 690 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprListDelete((yypminor->yy62));}
-#line 4395 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4395 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 161:
-#line 341 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 341 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteSrcListDelete((yypminor->yy335));}
-#line 4400 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4400 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 162:
-#line 435 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 435 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprListDelete((yypminor->yy62));}
-#line 4405 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4405 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 163:
-#line 440 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 440 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprDelete((yypminor->yy334));}
-#line 4410 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4410 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 167:
-#line 715 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 715 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteIdListDelete((yypminor->yy92));}
-#line 4415 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4415 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 168:
-#line 717 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 717 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteIdListDelete((yypminor->yy92));}
-#line 4420 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4420 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 171:
-#line 498 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 498 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteIdListDelete((yypminor->yy92));}
-#line 4425 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4425 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 172:
-#line 496 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 496 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteIdListDelete((yypminor->yy92));}
-#line 4430 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4430 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 174:
-#line 490 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 490 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprListDelete((yypminor->yy62));}
-#line 4435 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4435 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 183:
-#line 396 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 396 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprDelete((yypminor->yy334));}
-#line 4440 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4440 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 185:
-#line 276 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 276 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteSelectDelete((yypminor->yy11));}
-#line 4445 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4445 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 187:
-#line 407 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 407 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprListDelete((yypminor->yy62));}
-#line 4450 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4450 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 194:
-#line 312 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 312 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprListDelete((yypminor->yy62));}
-#line 4455 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4455 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 195:
-#line 310 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 310 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprListDelete((yypminor->yy62));}
-#line 4460 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4460 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 196:
-#line 274 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 274 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteSelectDelete((yypminor->yy11));}
-#line 4465 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4465 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 197:
-#line 337 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 337 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteSrcListDelete((yypminor->yy335));}
-#line 4470 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4470 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 198:
-#line 465 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 465 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprListDelete((yypminor->yy62));}
-#line 4475 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4475 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 200:
-#line 411 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 411 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprDelete((yypminor->yy334));}
-#line 4480 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4480 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 201:
-#line 409 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 409 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprListDelete((yypminor->yy62));}
-#line 4485 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4485 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 203:
-#line 339 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 339 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteSrcListDelete((yypminor->yy335));}
-#line 4490 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4490 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 207:
-#line 807 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 807 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteDeleteTriggerStep((yypminor->yy347));}
-#line 4495 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4495 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 208:
-#line 799 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 799 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteDeleteTriggerStep((yypminor->yy347));}
-#line 4500 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4500 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 210:
-#line 783 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 783 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteIdListDelete((yypminor->yy234).b);}
-#line 4505 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4505 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 215:
-#line 401 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 401 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteIdListDelete((yypminor->yy92));}
-#line 4510 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4510 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 217:
-#line 459 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 459 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteExprDelete((yypminor->yy334));}
-#line 4515 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 4515 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
default: break; /* If no destructor action specified: do nothing */
}
@@ -5000,26 +5000,26 @@ static void yy_reduce(
/* No destructor defined for SEMI */
break;
case 5:
-#line 77 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 77 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ sqliteExec(pParse); }
-#line 5005 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5005 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for cmd */
break;
case 6:
-#line 78 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 78 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ sqliteBeginParse(pParse, 1); }
-#line 5011 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5011 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for EXPLAIN */
break;
case 7:
-#line 79 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 79 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ sqliteBeginParse(pParse, 0); }
-#line 5017 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5017 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 8:
-#line 84 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 84 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteBeginTransaction(pParse,yymsp[0].minor.yy52);}
-#line 5022 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5022 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for BEGIN */
/* No destructor defined for trans_opt */
break;
@@ -5033,23 +5033,23 @@ static void yy_reduce(
/* No destructor defined for nm */
break;
case 12:
-#line 88 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 88 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteCommitTransaction(pParse);}
-#line 5038 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5038 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for COMMIT */
/* No destructor defined for trans_opt */
break;
case 13:
-#line 89 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 89 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteCommitTransaction(pParse);}
-#line 5045 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5045 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for END */
/* No destructor defined for trans_opt */
break;
case 14:
-#line 90 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 90 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteRollbackTransaction(pParse);}
-#line 5052 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5052 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ROLLBACK */
/* No destructor defined for trans_opt */
break;
@@ -5058,41 +5058,41 @@ static void yy_reduce(
/* No destructor defined for create_table_args */
break;
case 16:
-#line 95 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 95 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
sqliteStartTable(pParse,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy210,yymsp[-2].minor.yy52,0);
}
-#line 5065 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5065 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for TABLE */
break;
case 17:
-#line 99 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 99 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = 1;}
-#line 5071 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5071 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for TEMP */
break;
case 18:
-#line 100 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 100 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = 0;}
-#line 5077 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5077 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 19:
-#line 101 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 101 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
sqliteEndTable(pParse,&yymsp[0].minor.yy0,0);
}
-#line 5084 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5084 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LP */
/* No destructor defined for columnlist */
/* No destructor defined for conslist_opt */
break;
case 20:
-#line 104 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 104 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
sqliteEndTable(pParse,0,yymsp[0].minor.yy11);
sqliteSelectDelete(yymsp[0].minor.yy11);
}
-#line 5095 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5095 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for AS */
break;
case 21:
@@ -5109,72 +5109,72 @@ static void yy_reduce(
/* No destructor defined for carglist */
break;
case 24:
-#line 116 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 116 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddColumn(pParse,&yymsp[0].minor.yy210);}
-#line 5114 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5114 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 25:
-#line 122 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 122 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[0].minor.yy0;}
-#line 5119 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5119 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 26:
-#line 138 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 138 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[0].minor.yy0;}
-#line 5124 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5124 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 27:
-#line 139 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 139 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[0].minor.yy0;}
-#line 5129 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5129 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 28:
-#line 144 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 144 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[0].minor.yy0;}
-#line 5134 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5134 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 29:
-#line 145 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 145 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[0].minor.yy0;}
-#line 5139 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5139 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 30:
-#line 146 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 146 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[0].minor.yy0;}
-#line 5144 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5144 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 31:
break;
case 32:
-#line 149 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 149 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddColumnType(pParse,&yymsp[0].minor.yy210,&yymsp[0].minor.yy210);}
-#line 5151 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5151 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 33:
-#line 150 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 150 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddColumnType(pParse,&yymsp[-3].minor.yy210,&yymsp[0].minor.yy0);}
-#line 5156 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5156 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LP */
/* No destructor defined for signed */
break;
case 34:
-#line 152 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 152 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddColumnType(pParse,&yymsp[-5].minor.yy210,&yymsp[0].minor.yy0);}
-#line 5163 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5163 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LP */
/* No destructor defined for signed */
/* No destructor defined for COMMA */
/* No destructor defined for signed */
break;
case 35:
-#line 154 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 154 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[0].minor.yy210;}
-#line 5172 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5172 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 36:
-#line 155 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 155 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[-1].minor.yy210;}
-#line 5177 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5177 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ids */
break;
case 37:
@@ -5203,54 +5203,54 @@ static void yy_reduce(
/* No destructor defined for ccons */
break;
case 44:
-#line 163 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 163 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);}
-#line 5208 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5208 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DEFAULT */
break;
case 45:
-#line 164 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 164 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);}
-#line 5214 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5214 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DEFAULT */
break;
case 46:
-#line 165 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 165 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);}
-#line 5220 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5220 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DEFAULT */
break;
case 47:
-#line 166 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 166 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);}
-#line 5226 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5226 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DEFAULT */
/* No destructor defined for PLUS */
break;
case 48:
-#line 167 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 167 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,1);}
-#line 5233 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5233 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DEFAULT */
/* No destructor defined for MINUS */
break;
case 49:
-#line 168 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 168 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);}
-#line 5240 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5240 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DEFAULT */
break;
case 50:
-#line 169 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 169 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);}
-#line 5246 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5246 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DEFAULT */
/* No destructor defined for PLUS */
break;
case 51:
-#line 170 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 170 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,1);}
-#line 5253 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5253 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DEFAULT */
/* No destructor defined for MINUS */
break;
@@ -5263,24 +5263,24 @@ static void yy_reduce(
/* No destructor defined for onconf */
break;
case 54:
-#line 177 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 177 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddNotNull(pParse, yymsp[0].minor.yy52);}
-#line 5268 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5268 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for NOT */
/* No destructor defined for NULL */
break;
case 55:
-#line 178 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 178 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddPrimaryKey(pParse,0,yymsp[0].minor.yy52);}
-#line 5275 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5275 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for PRIMARY */
/* No destructor defined for KEY */
/* No destructor defined for sortorder */
break;
case 56:
-#line 179 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 179 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteCreateIndex(pParse,0,0,0,yymsp[0].minor.yy52,0,0,0);}
-#line 5283 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5283 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for UNIQUE */
break;
case 57:
@@ -5291,117 +5291,117 @@ static void yy_reduce(
/* No destructor defined for onconf */
break;
case 58:
-#line 182 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 182 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteCreateForeignKey(pParse,0,&yymsp[-2].minor.yy210,yymsp[-1].minor.yy92,yymsp[0].minor.yy52);}
-#line 5296 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5296 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for REFERENCES */
break;
case 59:
-#line 183 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 183 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteDeferForeignKey(pParse,yymsp[0].minor.yy52);}
-#line 5302 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5302 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 60:
-#line 184 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 184 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
sqliteAddCollateType(pParse, sqliteCollateType(yymsp[0].minor.yy210.z, yymsp[0].minor.yy210.n));
}
-#line 5309 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5309 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for COLLATE */
break;
case 61:
-#line 194 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 194 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_Restrict * 0x010101; }
-#line 5315 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5315 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 62:
-#line 195 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 195 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = (yymsp[-1].minor.yy52 & yymsp[0].minor.yy279.mask) | yymsp[0].minor.yy279.value; }
-#line 5320 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5320 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 63:
-#line 197 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 197 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy279.value = 0; yygotominor.yy279.mask = 0x000000; }
-#line 5325 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5325 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for MATCH */
/* No destructor defined for nm */
break;
case 64:
-#line 198 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 198 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy279.value = yymsp[0].minor.yy52; yygotominor.yy279.mask = 0x0000ff; }
-#line 5332 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5332 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ON */
/* No destructor defined for DELETE */
break;
case 65:
-#line 199 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 199 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy279.value = yymsp[0].minor.yy52<<8; yygotominor.yy279.mask = 0x00ff00; }
-#line 5339 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5339 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ON */
/* No destructor defined for UPDATE */
break;
case 66:
-#line 200 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 200 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy279.value = yymsp[0].minor.yy52<<16; yygotominor.yy279.mask = 0xff0000; }
-#line 5346 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5346 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ON */
/* No destructor defined for INSERT */
break;
case 67:
-#line 202 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 202 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_SetNull; }
-#line 5353 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5353 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for SET */
/* No destructor defined for NULL */
break;
case 68:
-#line 203 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 203 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_SetDflt; }
-#line 5360 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5360 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for SET */
/* No destructor defined for DEFAULT */
break;
case 69:
-#line 204 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 204 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_Cascade; }
-#line 5367 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5367 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for CASCADE */
break;
case 70:
-#line 205 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 205 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_Restrict; }
-#line 5373 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5373 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for RESTRICT */
break;
case 71:
-#line 207 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 207 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = yymsp[0].minor.yy52;}
-#line 5379 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5379 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for NOT */
/* No destructor defined for DEFERRABLE */
break;
case 72:
-#line 208 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 208 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = yymsp[0].minor.yy52;}
-#line 5386 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5386 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DEFERRABLE */
break;
case 73:
-#line 210 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 210 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = 0;}
-#line 5392 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5392 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 74:
-#line 211 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 211 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = 1;}
-#line 5397 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5397 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for INITIALLY */
/* No destructor defined for DEFERRED */
break;
case 75:
-#line 212 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 212 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = 0;}
-#line 5404 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5404 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for INITIALLY */
/* No destructor defined for IMMEDIATE */
break;
@@ -5428,18 +5428,18 @@ static void yy_reduce(
/* No destructor defined for nm */
break;
case 82:
-#line 224 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 224 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteAddPrimaryKey(pParse,yymsp[-2].minor.yy92,yymsp[0].minor.yy52);}
-#line 5433 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5433 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for PRIMARY */
/* No destructor defined for KEY */
/* No destructor defined for LP */
/* No destructor defined for RP */
break;
case 83:
-#line 226 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 226 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteCreateIndex(pParse,0,0,yymsp[-2].minor.yy92,yymsp[0].minor.yy52,0,0,0);}
-#line 5442 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5442 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for UNIQUE */
/* No destructor defined for LP */
/* No destructor defined for RP */
@@ -5450,12 +5450,12 @@ static void yy_reduce(
/* No destructor defined for onconf */
break;
case 85:
-#line 229 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 229 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
sqliteCreateForeignKey(pParse, yymsp[-6].minor.yy92, &yymsp[-3].minor.yy210, yymsp[-2].minor.yy92, yymsp[-1].minor.yy52);
sqliteDeferForeignKey(pParse, yymsp[0].minor.yy52);
}
-#line 5458 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5458 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for FOREIGN */
/* No destructor defined for KEY */
/* No destructor defined for LP */
@@ -5463,108 +5463,108 @@ static void yy_reduce(
/* No destructor defined for REFERENCES */
break;
case 86:
-#line 234 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 234 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = 0;}
-#line 5468 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5468 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 87:
-#line 235 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 235 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = yymsp[0].minor.yy52;}
-#line 5473 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5473 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 88:
-#line 243 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 243 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_Default; }
-#line 5478 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5478 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 89:
-#line 244 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 244 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = yymsp[0].minor.yy52; }
-#line 5483 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5483 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ON */
/* No destructor defined for CONFLICT */
break;
case 90:
-#line 245 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 245 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_Default; }
-#line 5490 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5490 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 91:
-#line 246 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 246 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = yymsp[0].minor.yy52; }
-#line 5495 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5495 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for OR */
break;
case 92:
-#line 247 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 247 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_Rollback; }
-#line 5501 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5501 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ROLLBACK */
break;
case 93:
-#line 248 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 248 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_Abort; }
-#line 5507 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5507 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ABORT */
break;
case 94:
-#line 249 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 249 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_Fail; }
-#line 5513 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5513 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for FAIL */
break;
case 95:
-#line 250 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 250 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_Ignore; }
-#line 5519 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5519 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for IGNORE */
break;
case 96:
-#line 251 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 251 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_Replace; }
-#line 5525 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5525 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for REPLACE */
break;
case 97:
-#line 255 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 255 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteDropTable(pParse,&yymsp[0].minor.yy210,0);}
-#line 5531 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5531 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DROP */
/* No destructor defined for TABLE */
break;
case 98:
-#line 259 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 259 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
sqliteCreateView(pParse, &yymsp[-5].minor.yy0, &yymsp[-2].minor.yy210, yymsp[0].minor.yy11, yymsp[-4].minor.yy52);
}
-#line 5540 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5540 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for VIEW */
/* No destructor defined for AS */
break;
case 99:
-#line 262 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 262 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
sqliteDropTable(pParse, &yymsp[0].minor.yy210, 1);
}
-#line 5549 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5549 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DROP */
/* No destructor defined for VIEW */
break;
case 100:
-#line 268 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 268 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
sqliteSelect(pParse, yymsp[0].minor.yy11, SRT_Callback, 0, 0, 0, 0);
sqliteSelectDelete(yymsp[0].minor.yy11);
}
-#line 5559 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5559 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 101:
-#line 278 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 278 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy11 = yymsp[0].minor.yy11;}
-#line 5564 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5564 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 102:
-#line 279 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 279 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
if( yymsp[0].minor.yy11 ){
yymsp[0].minor.yy11->op = yymsp[-1].minor.yy52;
@@ -5572,137 +5572,137 @@ static void yy_reduce(
}
yygotominor.yy11 = yymsp[0].minor.yy11;
}
-#line 5575 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5575 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 103:
-#line 287 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 287 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = TK_UNION;}
-#line 5580 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5580 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for UNION */
break;
case 104:
-#line 288 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 288 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = TK_ALL;}
-#line 5586 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5586 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for UNION */
/* No destructor defined for ALL */
break;
case 105:
-#line 289 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 289 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = TK_INTERSECT;}
-#line 5593 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5593 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for INTERSECT */
break;
case 106:
-#line 290 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 290 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = TK_EXCEPT;}
-#line 5599 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5599 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for EXCEPT */
break;
case 107:
-#line 292 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 292 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy11 = sqliteSelectNew(yymsp[-6].minor.yy62,yymsp[-5].minor.yy335,yymsp[-4].minor.yy334,yymsp[-3].minor.yy62,yymsp[-2].minor.yy334,yymsp[-1].minor.yy62,yymsp[-7].minor.yy52,yymsp[0].minor.yy280.limit,yymsp[0].minor.yy280.offset);
}
-#line 5607 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5607 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for SELECT */
break;
case 108:
-#line 300 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 300 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = 1;}
-#line 5613 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5613 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DISTINCT */
break;
case 109:
-#line 301 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 301 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = 0;}
-#line 5619 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5619 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ALL */
break;
case 110:
-#line 302 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 302 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = 0;}
-#line 5625 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5625 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 111:
-#line 313 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 313 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy62 = yymsp[-1].minor.yy62;}
-#line 5630 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5630 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for COMMA */
break;
case 112:
-#line 314 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 314 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy62 = 0;}
-#line 5636 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5636 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 113:
-#line 315 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 315 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy62 = sqliteExprListAppend(yymsp[-2].minor.yy62,yymsp[-1].minor.yy334,yymsp[0].minor.yy210.n?&yymsp[0].minor.yy210:0);
}
-#line 5643 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5643 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 114:
-#line 318 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 318 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy62 = sqliteExprListAppend(yymsp[-1].minor.yy62, sqliteExpr(TK_ALL, 0, 0, 0), 0);
}
-#line 5650 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5650 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for STAR */
break;
case 115:
-#line 321 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 321 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
Expr *pRight = sqliteExpr(TK_ALL, 0, 0, 0);
Expr *pLeft = sqliteExpr(TK_ID, 0, 0, &yymsp[-2].minor.yy210);
yygotominor.yy62 = sqliteExprListAppend(yymsp[-3].minor.yy62, sqliteExpr(TK_DOT, pLeft, pRight, 0), 0);
}
-#line 5660 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5660 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DOT */
/* No destructor defined for STAR */
break;
case 116:
-#line 331 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 331 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy210 = yymsp[0].minor.yy210; }
-#line 5667 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5667 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for AS */
break;
case 117:
-#line 332 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 332 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy210 = yymsp[0].minor.yy210; }
-#line 5673 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5673 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 118:
-#line 333 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 333 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy210.n = 0; }
-#line 5678 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5678 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 119:
-#line 345 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 345 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy335 = sqliteMalloc(sizeof(*yygotominor.yy335));}
-#line 5683 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5683 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 120:
-#line 346 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 346 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy335 = yymsp[0].minor.yy335;}
-#line 5688 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5688 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for FROM */
break;
case 121:
-#line 351 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 351 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy335 = yymsp[-1].minor.yy335;
if( yygotominor.yy335 && yygotominor.yy335->nSrc>0 ) yygotominor.yy335->a[yygotominor.yy335->nSrc-1].jointype = yymsp[0].minor.yy52;
}
-#line 5697 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5697 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 122:
-#line 355 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 355 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy335 = 0;}
-#line 5702 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5702 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 123:
-#line 356 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 356 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy335 = sqliteSrcListAppend(yymsp[-5].minor.yy335,&yymsp[-4].minor.yy210,&yymsp[-3].minor.yy210);
if( yymsp[-2].minor.yy210.n ) sqliteSrcListAddAlias(yygotominor.yy335,&yymsp[-2].minor.yy210);
@@ -5715,10 +5715,10 @@ static void yy_reduce(
else { sqliteIdListDelete(yymsp[0].minor.yy92); }
}
}
-#line 5718 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5718 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 124:
-#line 368 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 368 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy335 = sqliteSrcListAppend(yymsp[-6].minor.yy335,0,0);
yygotominor.yy335->a[yygotominor.yy335->nSrc-1].pSelect = yymsp[-4].minor.yy11;
@@ -5732,318 +5732,318 @@ static void yy_reduce(
else { sqliteIdListDelete(yymsp[0].minor.yy92); }
}
}
-#line 5735 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5735 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LP */
/* No destructor defined for RP */
break;
case 125:
-#line 383 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 383 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210.z=0; yygotominor.yy210.n=0;}
-#line 5742 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5742 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 126:
-#line 384 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 384 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[0].minor.yy210;}
-#line 5747 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5747 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DOT */
break;
case 127:
-#line 388 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 388 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = JT_INNER; }
-#line 5753 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5753 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for COMMA */
break;
case 128:
-#line 389 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 389 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = JT_INNER; }
-#line 5759 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5759 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for JOIN */
break;
case 129:
-#line 390 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 390 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = sqliteJoinType(pParse,&yymsp[-1].minor.yy0,0,0); }
-#line 5765 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5765 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for JOIN */
break;
case 130:
-#line 391 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 391 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = sqliteJoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy210,0); }
-#line 5771 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5771 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for JOIN */
break;
case 131:
-#line 393 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 393 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = sqliteJoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy210,&yymsp[-1].minor.yy210); }
-#line 5777 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5777 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for JOIN */
break;
case 132:
-#line 397 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 397 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = yymsp[0].minor.yy334;}
-#line 5783 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5783 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ON */
break;
case 133:
-#line 398 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 398 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = 0;}
-#line 5789 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5789 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 134:
-#line 402 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 402 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy92 = yymsp[-1].minor.yy92;}
-#line 5794 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5794 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for USING */
/* No destructor defined for LP */
/* No destructor defined for RP */
break;
case 135:
-#line 403 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 403 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy92 = 0;}
-#line 5802 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5802 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 136:
-#line 413 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 413 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy62 = 0;}
-#line 5807 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5807 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 137:
-#line 414 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 414 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy62 = yymsp[0].minor.yy62;}
-#line 5812 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5812 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ORDER */
/* No destructor defined for BY */
break;
case 138:
-#line 415 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 415 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy62 = sqliteExprListAppend(yymsp[-4].minor.yy62,yymsp[-2].minor.yy334,0);
if( yygotominor.yy62 ) yygotominor.yy62->a[yygotominor.yy62->nExpr-1].sortOrder = yymsp[-1].minor.yy52+yymsp[0].minor.yy52;
}
-#line 5822 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5822 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for COMMA */
break;
case 139:
-#line 419 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 419 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy62 = sqliteExprListAppend(0,yymsp[-2].minor.yy334,0);
if( yygotominor.yy62 ) yygotominor.yy62->a[0].sortOrder = yymsp[-1].minor.yy52+yymsp[0].minor.yy52;
}
-#line 5831 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5831 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 140:
-#line 423 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 423 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = yymsp[0].minor.yy334;}
-#line 5836 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5836 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 141:
-#line 428 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 428 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = SQLITE_SO_ASC;}
-#line 5841 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5841 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ASC */
break;
case 142:
-#line 429 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 429 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = SQLITE_SO_DESC;}
-#line 5847 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5847 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DESC */
break;
case 143:
-#line 430 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 430 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = SQLITE_SO_ASC;}
-#line 5853 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5853 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 144:
-#line 431 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 431 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = SQLITE_SO_UNK;}
-#line 5858 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5858 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 145:
-#line 432 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 432 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = sqliteCollateType(yymsp[0].minor.yy210.z, yymsp[0].minor.yy210.n);}
-#line 5863 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5863 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for COLLATE */
break;
case 146:
-#line 436 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 436 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy62 = 0;}
-#line 5869 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5869 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 147:
-#line 437 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 437 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy62 = yymsp[0].minor.yy62;}
-#line 5874 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5874 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for GROUP */
/* No destructor defined for BY */
break;
case 148:
-#line 441 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 441 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = 0;}
-#line 5881 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5881 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 149:
-#line 442 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 442 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = yymsp[0].minor.yy334;}
-#line 5886 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5886 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for HAVING */
break;
case 150:
-#line 445 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 445 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy280.limit = -1; yygotominor.yy280.offset = 0;}
-#line 5892 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5892 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 151:
-#line 446 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 446 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy280.limit = atoi(yymsp[0].minor.yy0.z); yygotominor.yy280.offset = 0;}
-#line 5897 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5897 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LIMIT */
break;
case 152:
-#line 448 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 448 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy280.limit = atoi(yymsp[-2].minor.yy0.z); yygotominor.yy280.offset = atoi(yymsp[0].minor.yy0.z);}
-#line 5903 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5903 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LIMIT */
/* No destructor defined for OFFSET */
break;
case 153:
-#line 450 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 450 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy280.limit = atoi(yymsp[0].minor.yy0.z); yygotominor.yy280.offset = atoi(yymsp[-2].minor.yy0.z);}
-#line 5910 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5910 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LIMIT */
/* No destructor defined for COMMA */
break;
case 154:
-#line 454 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 454 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
sqliteDeleteFrom(pParse, sqliteSrcListAppend(0,&yymsp[-2].minor.yy210,&yymsp[-1].minor.yy210), yymsp[0].minor.yy334);
}
-#line 5919 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5919 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DELETE */
/* No destructor defined for FROM */
break;
case 155:
-#line 461 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 461 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = 0;}
-#line 5926 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5926 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 156:
-#line 462 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 462 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = yymsp[0].minor.yy334;}
-#line 5931 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5931 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for WHERE */
break;
case 157:
-#line 470 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 470 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteUpdate(pParse,sqliteSrcListAppend(0,&yymsp[-4].minor.yy210,&yymsp[-3].minor.yy210),yymsp[-1].minor.yy62,yymsp[0].minor.yy334,yymsp[-5].minor.yy52);}
-#line 5937 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5937 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for UPDATE */
/* No destructor defined for SET */
break;
case 158:
-#line 473 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 473 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy62 = sqliteExprListAppend(yymsp[-4].minor.yy62,yymsp[0].minor.yy334,&yymsp[-2].minor.yy210);}
-#line 5944 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5944 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for COMMA */
/* No destructor defined for EQ */
break;
case 159:
-#line 474 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 474 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy62 = sqliteExprListAppend(0,yymsp[0].minor.yy334,&yymsp[-2].minor.yy210);}
-#line 5951 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5951 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for EQ */
break;
case 160:
-#line 480 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 480 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteInsert(pParse, sqliteSrcListAppend(0,&yymsp[-6].minor.yy210,&yymsp[-5].minor.yy210), yymsp[-1].minor.yy62, 0, yymsp[-4].minor.yy92, yymsp[-8].minor.yy52);}
-#line 5957 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5957 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for INTO */
/* No destructor defined for VALUES */
/* No destructor defined for LP */
/* No destructor defined for RP */
break;
case 161:
-#line 482 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 482 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteInsert(pParse, sqliteSrcListAppend(0,&yymsp[-3].minor.yy210,&yymsp[-2].minor.yy210), 0, yymsp[0].minor.yy11, yymsp[-1].minor.yy92, yymsp[-5].minor.yy52);}
-#line 5966 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5966 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for INTO */
break;
case 162:
-#line 485 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 485 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = yymsp[0].minor.yy52;}
-#line 5972 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5972 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for INSERT */
break;
case 163:
-#line 486 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 486 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = OE_Replace;}
-#line 5978 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5978 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for REPLACE */
break;
case 164:
-#line 492 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 492 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy62 = sqliteExprListAppend(yymsp[-2].minor.yy62,yymsp[0].minor.yy334,0);}
-#line 5984 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5984 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for COMMA */
break;
case 165:
-#line 493 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 493 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy62 = sqliteExprListAppend(0,yymsp[0].minor.yy334,0);}
-#line 5990 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5990 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 166:
-#line 500 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 500 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy92 = 0;}
-#line 5995 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 5995 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 167:
-#line 501 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 501 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy92 = yymsp[-1].minor.yy92;}
-#line 6000 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6000 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LP */
/* No destructor defined for RP */
break;
case 168:
-#line 502 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 502 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy92 = sqliteIdListAppend(yymsp[-2].minor.yy92,&yymsp[0].minor.yy210);}
-#line 6007 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6007 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for COMMA */
break;
case 169:
-#line 503 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 503 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy92 = sqliteIdListAppend(0,&yymsp[0].minor.yy210);}
-#line 6013 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6013 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 170:
-#line 522 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 522 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = yymsp[-1].minor.yy334; sqliteExprSpan(yygotominor.yy334,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); }
-#line 6018 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6018 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 171:
-#line 523 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 523 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_NULL, 0, 0, &yymsp[0].minor.yy0);}
-#line 6023 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6023 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 172:
-#line 524 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 524 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy0);}
-#line 6028 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6028 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 173:
-#line 525 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 525 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy0);}
-#line 6033 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6033 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 174:
-#line 526 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 526 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
Expr *temp1 = sqliteExpr(TK_ID, 0, 0, &yymsp[-2].minor.yy210);
Expr *temp2 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy210);
yygotominor.yy334 = sqliteExpr(TK_DOT, temp1, temp2, 0);
}
-#line 6042 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6042 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DOT */
break;
case 175:
-#line 531 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 531 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
Expr *temp1 = sqliteExpr(TK_ID, 0, 0, &yymsp[-4].minor.yy210);
Expr *temp2 = sqliteExpr(TK_ID, 0, 0, &yymsp[-2].minor.yy210);
@@ -6051,124 +6051,124 @@ static void yy_reduce(
Expr *temp4 = sqliteExpr(TK_DOT, temp2, temp3, 0);
yygotominor.yy334 = sqliteExpr(TK_DOT, temp1, temp4, 0);
}
-#line 6054 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6054 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DOT */
/* No destructor defined for DOT */
break;
case 176:
-#line 539 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 539 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = yymsp[-1].minor.yy334; ExprSetProperty(yygotominor.yy334,EP_Oracle8Join);}
-#line 6061 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6061 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ORACLE_OUTER_JOIN */
break;
case 177:
-#line 540 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 540 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_INTEGER, 0, 0, &yymsp[0].minor.yy0);}
-#line 6067 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6067 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 178:
-#line 541 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 541 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_FLOAT, 0, 0, &yymsp[0].minor.yy0);}
-#line 6072 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6072 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 179:
-#line 542 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 542 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_STRING, 0, 0, &yymsp[0].minor.yy0);}
-#line 6077 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6077 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 180:
-#line 543 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 543 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExprFunction(yymsp[-1].minor.yy62, &yymsp[-3].minor.yy0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
}
-#line 6085 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6085 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LP */
break;
case 181:
-#line 547 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 547 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExprFunction(0, &yymsp[-3].minor.yy0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
}
-#line 6094 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6094 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LP */
/* No destructor defined for STAR */
break;
case 182:
-#line 551 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 551 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_AND, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6101 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6101 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for AND */
break;
case 183:
-#line 552 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 552 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_OR, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6107 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6107 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for OR */
break;
case 184:
-#line 553 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 553 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_LT, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6113 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6113 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LT */
break;
case 185:
-#line 554 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 554 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_GT, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6119 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6119 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for GT */
break;
case 186:
-#line 555 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 555 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_LE, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6125 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6125 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LE */
break;
case 187:
-#line 556 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 556 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_GE, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6131 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6131 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for GE */
break;
case 188:
-#line 557 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 557 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_NE, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6137 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6137 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for NE */
break;
case 189:
-#line 558 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 558 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_EQ, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6143 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6143 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for EQ */
break;
case 190:
-#line 559 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 559 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_BITAND, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6149 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6149 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for BITAND */
break;
case 191:
-#line 560 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 560 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_BITOR, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6155 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6155 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for BITOR */
break;
case 192:
-#line 561 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 561 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_LSHIFT, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6161 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6161 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LSHIFT */
break;
case 193:
-#line 562 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 562 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_RSHIFT, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6167 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6167 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for RSHIFT */
break;
case 194:
-#line 563 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 563 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
ExprList *pList = sqliteExprListAppend(0, yymsp[0].minor.yy334, 0);
pList = sqliteExprListAppend(pList, yymsp[-2].minor.yy334, 0);
@@ -6176,10 +6176,10 @@ static void yy_reduce(
if( yygotominor.yy334 ) yygotominor.yy334->op = yymsp[-1].minor.yy52;
sqliteExprSpan(yygotominor.yy334, &yymsp[-2].minor.yy334->span, &yymsp[0].minor.yy334->span);
}
-#line 6179 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6179 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 195:
-#line 570 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 570 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
ExprList *pList = sqliteExprListAppend(0, yymsp[0].minor.yy334, 0);
pList = sqliteExprListAppend(pList, yymsp[-3].minor.yy334, 0);
@@ -6188,144 +6188,144 @@ static void yy_reduce(
yygotominor.yy334 = sqliteExpr(TK_NOT, yygotominor.yy334, 0, 0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-3].minor.yy334->span,&yymsp[0].minor.yy334->span);
}
-#line 6191 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6191 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for NOT */
break;
case 196:
-#line 579 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 579 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = TK_LIKE;}
-#line 6197 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6197 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LIKE */
break;
case 197:
-#line 580 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 580 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy52 = TK_GLOB;}
-#line 6203 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6203 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for GLOB */
break;
case 198:
-#line 581 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 581 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_PLUS, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6209 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6209 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for PLUS */
break;
case 199:
-#line 582 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 582 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_MINUS, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6215 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6215 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for MINUS */
break;
case 200:
-#line 583 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 583 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_STAR, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6221 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6221 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for STAR */
break;
case 201:
-#line 584 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 584 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_SLASH, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6227 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6227 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for SLASH */
break;
case 202:
-#line 585 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 585 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_REM, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6233 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6233 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for REM */
break;
case 203:
-#line 586 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 586 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = sqliteExpr(TK_CONCAT, yymsp[-2].minor.yy334, yymsp[0].minor.yy334, 0);}
-#line 6239 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6239 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for CONCAT */
break;
case 204:
-#line 587 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 587 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_ISNULL, yymsp[-1].minor.yy334, 0, 0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-1].minor.yy334->span,&yymsp[0].minor.yy0);
}
-#line 6248 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6248 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 205:
-#line 591 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 591 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_ISNULL, yymsp[-2].minor.yy334, 0, 0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-2].minor.yy334->span,&yymsp[0].minor.yy0);
}
-#line 6256 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6256 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for IS */
break;
case 206:
-#line 595 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 595 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_NOTNULL, yymsp[-1].minor.yy334, 0, 0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-1].minor.yy334->span,&yymsp[0].minor.yy0);
}
-#line 6265 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6265 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 207:
-#line 599 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 599 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_NOTNULL, yymsp[-2].minor.yy334, 0, 0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-2].minor.yy334->span,&yymsp[0].minor.yy0);
}
-#line 6273 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6273 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for NOT */
break;
case 208:
-#line 603 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 603 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_NOTNULL, yymsp[-3].minor.yy334, 0, 0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-3].minor.yy334->span,&yymsp[0].minor.yy0);
}
-#line 6282 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6282 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for IS */
/* No destructor defined for NOT */
break;
case 209:
-#line 607 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 607 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_NOT, yymsp[0].minor.yy334, 0, 0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy334->span);
}
-#line 6292 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6292 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 210:
-#line 611 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 611 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_BITNOT, yymsp[0].minor.yy334, 0, 0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy334->span);
}
-#line 6300 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6300 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 211:
-#line 615 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 615 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_UMINUS, yymsp[0].minor.yy334, 0, 0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy334->span);
}
-#line 6308 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6308 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 212:
-#line 619 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 619 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_UPLUS, yymsp[0].minor.yy334, 0, 0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy334->span);
}
-#line 6316 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6316 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 213:
-#line 623 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 623 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_SELECT, 0, 0, 0);
if( yygotominor.yy334 ) yygotominor.yy334->pSelect = yymsp[-1].minor.yy11;
sqliteExprSpan(yygotominor.yy334,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
}
-#line 6325 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6325 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 214:
-#line 628 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 628 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
ExprList *pList = sqliteExprListAppend(0, yymsp[-2].minor.yy334, 0);
pList = sqliteExprListAppend(pList, yymsp[0].minor.yy334, 0);
@@ -6333,12 +6333,12 @@ static void yy_reduce(
if( yygotominor.yy334 ) yygotominor.yy334->pList = pList;
sqliteExprSpan(yygotominor.yy334,&yymsp[-4].minor.yy334->span,&yymsp[0].minor.yy334->span);
}
-#line 6336 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6336 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for BETWEEN */
/* No destructor defined for AND */
break;
case 215:
-#line 635 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 635 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
ExprList *pList = sqliteExprListAppend(0, yymsp[-2].minor.yy334, 0);
pList = sqliteExprListAppend(pList, yymsp[0].minor.yy334, 0);
@@ -6347,283 +6347,283 @@ static void yy_reduce(
yygotominor.yy334 = sqliteExpr(TK_NOT, yygotominor.yy334, 0, 0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-5].minor.yy334->span,&yymsp[0].minor.yy334->span);
}
-#line 6350 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6350 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for NOT */
/* No destructor defined for BETWEEN */
/* No destructor defined for AND */
break;
case 216:
-#line 643 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 643 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_IN, yymsp[-4].minor.yy334, 0, 0);
if( yygotominor.yy334 ) yygotominor.yy334->pList = yymsp[-1].minor.yy62;
sqliteExprSpan(yygotominor.yy334,&yymsp[-4].minor.yy334->span,&yymsp[0].minor.yy0);
}
-#line 6362 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6362 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for IN */
/* No destructor defined for LP */
break;
case 217:
-#line 648 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 648 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_IN, yymsp[-4].minor.yy334, 0, 0);
if( yygotominor.yy334 ) yygotominor.yy334->pSelect = yymsp[-1].minor.yy11;
sqliteExprSpan(yygotominor.yy334,&yymsp[-4].minor.yy334->span,&yymsp[0].minor.yy0);
}
-#line 6373 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6373 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for IN */
/* No destructor defined for LP */
break;
case 218:
-#line 653 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 653 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_IN, yymsp[-5].minor.yy334, 0, 0);
if( yygotominor.yy334 ) yygotominor.yy334->pList = yymsp[-1].minor.yy62;
yygotominor.yy334 = sqliteExpr(TK_NOT, yygotominor.yy334, 0, 0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-5].minor.yy334->span,&yymsp[0].minor.yy0);
}
-#line 6385 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6385 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for NOT */
/* No destructor defined for IN */
/* No destructor defined for LP */
break;
case 219:
-#line 659 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 659 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_IN, yymsp[-5].minor.yy334, 0, 0);
if( yygotominor.yy334 ) yygotominor.yy334->pSelect = yymsp[-1].minor.yy11;
yygotominor.yy334 = sqliteExpr(TK_NOT, yygotominor.yy334, 0, 0);
sqliteExprSpan(yygotominor.yy334,&yymsp[-5].minor.yy334->span,&yymsp[0].minor.yy0);
}
-#line 6398 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6398 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for NOT */
/* No destructor defined for IN */
/* No destructor defined for LP */
break;
case 220:
-#line 667 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 667 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_CASE, yymsp[-3].minor.yy334, yymsp[-1].minor.yy334, 0);
if( yygotominor.yy334 ) yygotominor.yy334->pList = yymsp[-2].minor.yy62;
sqliteExprSpan(yygotominor.yy334, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0);
}
-#line 6410 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6410 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 221:
-#line 674 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 674 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy62 = sqliteExprListAppend(yymsp[-4].minor.yy62, yymsp[-2].minor.yy334, 0);
yygotominor.yy62 = sqliteExprListAppend(yygotominor.yy62, yymsp[0].minor.yy334, 0);
}
-#line 6418 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6418 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for WHEN */
/* No destructor defined for THEN */
break;
case 222:
-#line 678 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 678 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy62 = sqliteExprListAppend(0, yymsp[-2].minor.yy334, 0);
yygotominor.yy62 = sqliteExprListAppend(yygotominor.yy62, yymsp[0].minor.yy334, 0);
}
-#line 6428 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6428 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for WHEN */
/* No destructor defined for THEN */
break;
case 223:
-#line 683 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 683 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = yymsp[0].minor.yy334;}
-#line 6435 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6435 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ELSE */
break;
case 224:
-#line 684 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 684 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = 0;}
-#line 6441 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6441 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 225:
-#line 686 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 686 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = yymsp[0].minor.yy334;}
-#line 6446 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6446 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 226:
-#line 687 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 687 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = 0;}
-#line 6451 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6451 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 227:
-#line 695 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 695 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy62 = sqliteExprListAppend(yymsp[-2].minor.yy62,yymsp[0].minor.yy334,0);}
-#line 6456 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6456 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for COMMA */
break;
case 228:
-#line 696 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 696 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy62 = sqliteExprListAppend(0,yymsp[0].minor.yy334,0);}
-#line 6462 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6462 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 229:
-#line 697 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 697 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = yymsp[0].minor.yy334;}
-#line 6467 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6467 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 230:
-#line 698 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 698 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy334 = 0;}
-#line 6472 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6472 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 231:
-#line 703 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 703 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
SrcList *pSrc = sqliteSrcListAppend(0, &yymsp[-5].minor.yy210, &yymsp[-4].minor.yy210);
if( yymsp[-9].minor.yy52!=OE_None ) yymsp[-9].minor.yy52 = yymsp[0].minor.yy52;
if( yymsp[-9].minor.yy52==OE_Default) yymsp[-9].minor.yy52 = OE_Abort;
sqliteCreateIndex(pParse, &yymsp[-7].minor.yy210, pSrc, yymsp[-2].minor.yy92, yymsp[-9].minor.yy52, yymsp[-10].minor.yy52, &yymsp[-11].minor.yy0, &yymsp[-1].minor.yy0);
}
-#line 6482 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6482 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for INDEX */
/* No destructor defined for ON */
/* No destructor defined for LP */
break;
case 232:
-#line 711 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 711 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_Abort; }
-#line 6490 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6490 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for UNIQUE */
break;
case 233:
-#line 712 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 712 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = OE_None; }
-#line 6496 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6496 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 234:
-#line 720 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 720 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy92 = 0;}
-#line 6501 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6501 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 235:
-#line 721 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 721 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy92 = yymsp[-1].minor.yy92;}
-#line 6506 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6506 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LP */
/* No destructor defined for RP */
break;
case 236:
-#line 722 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 722 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy92 = sqliteIdListAppend(yymsp[-2].minor.yy92,&yymsp[0].minor.yy210);}
-#line 6513 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6513 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for COMMA */
break;
case 237:
-#line 723 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 723 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy92 = sqliteIdListAppend(0,&yymsp[0].minor.yy210);}
-#line 6519 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6519 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 238:
-#line 724 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 724 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[-1].minor.yy210;}
-#line 6524 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6524 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for sortorder */
break;
case 239:
-#line 729 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 729 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
sqliteDropIndex(pParse, sqliteSrcListAppend(0,&yymsp[-1].minor.yy210,&yymsp[0].minor.yy210));
}
-#line 6532 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6532 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DROP */
/* No destructor defined for INDEX */
break;
case 240:
-#line 737 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 737 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteCopy(pParse,sqliteSrcListAppend(0,&yymsp[-6].minor.yy210,&yymsp[-5].minor.yy210),&yymsp[-3].minor.yy210,&yymsp[0].minor.yy0,yymsp[-7].minor.yy52);}
-#line 6539 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6539 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for COPY */
/* No destructor defined for FROM */
/* No destructor defined for USING */
/* No destructor defined for DELIMITERS */
break;
case 241:
-#line 739 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 739 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteCopy(pParse,sqliteSrcListAppend(0,&yymsp[-3].minor.yy210,&yymsp[-2].minor.yy210),&yymsp[0].minor.yy210,0,yymsp[-4].minor.yy52);}
-#line 6548 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6548 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for COPY */
/* No destructor defined for FROM */
break;
case 242:
-#line 743 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 743 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteVacuum(pParse,0);}
-#line 6555 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6555 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for VACUUM */
break;
case 243:
-#line 744 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 744 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqliteVacuum(pParse,&yymsp[0].minor.yy210);}
-#line 6561 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6561 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for VACUUM */
break;
case 244:
-#line 748 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 748 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqlitePragma(pParse,&yymsp[-2].minor.yy210,&yymsp[0].minor.yy210,0);}
-#line 6567 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6567 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for PRAGMA */
/* No destructor defined for EQ */
break;
case 245:
-#line 749 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 749 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqlitePragma(pParse,&yymsp[-2].minor.yy210,&yymsp[0].minor.yy0,0);}
-#line 6574 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6574 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for PRAGMA */
/* No destructor defined for EQ */
break;
case 246:
-#line 750 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 750 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqlitePragma(pParse,&yymsp[-2].minor.yy210,&yymsp[0].minor.yy210,0);}
-#line 6581 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6581 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for PRAGMA */
/* No destructor defined for EQ */
break;
case 247:
-#line 751 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 751 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqlitePragma(pParse,&yymsp[-2].minor.yy210,&yymsp[0].minor.yy210,1);}
-#line 6588 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6588 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for PRAGMA */
/* No destructor defined for EQ */
break;
case 248:
-#line 752 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 752 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqlitePragma(pParse,&yymsp[-3].minor.yy210,&yymsp[-1].minor.yy210,0);}
-#line 6595 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6595 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for PRAGMA */
/* No destructor defined for LP */
/* No destructor defined for RP */
break;
case 249:
-#line 753 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 753 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{sqlitePragma(pParse,&yymsp[0].minor.yy210,&yymsp[0].minor.yy210,0);}
-#line 6603 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6603 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for PRAGMA */
break;
case 250:
-#line 754 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 754 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[0].minor.yy210;}
-#line 6609 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6609 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for plus_opt */
break;
case 251:
-#line 755 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 755 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[0].minor.yy210;}
-#line 6615 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6615 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for MINUS */
break;
case 252:
-#line 756 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 756 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[0].minor.yy0;}
-#line 6621 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6621 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 253:
-#line 757 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 757 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy210 = yymsp[0].minor.yy0;}
-#line 6626 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6626 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 254:
/* No destructor defined for PLUS */
@@ -6631,133 +6631,133 @@ static void yy_reduce(
case 255:
break;
case 256:
-#line 763 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 763 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
Token all;
all.z = yymsp[-4].minor.yy0.z;
all.n = (yymsp[0].minor.yy0.z - yymsp[-4].minor.yy0.z) + yymsp[0].minor.yy0.n;
sqliteFinishTrigger(pParse, yymsp[-1].minor.yy347, &all);
}
-#line 6641 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6641 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for trigger_decl */
/* No destructor defined for BEGIN */
break;
case 257:
-#line 771 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 771 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
SrcList *pTab = sqliteSrcListAppend(0, &yymsp[-3].minor.yy210, &yymsp[-2].minor.yy210);
sqliteBeginTrigger(pParse, &yymsp[-7].minor.yy210, yymsp[-6].minor.yy52, yymsp[-5].minor.yy234.a, yymsp[-5].minor.yy234.b, pTab, yymsp[-1].minor.yy52, yymsp[0].minor.yy270, yymsp[-9].minor.yy52);
}
-#line 6651 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6651 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for TRIGGER */
/* No destructor defined for ON */
break;
case 258:
-#line 777 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 777 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = TK_BEFORE; }
-#line 6658 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6658 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for BEFORE */
break;
case 259:
-#line 778 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 778 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = TK_AFTER; }
-#line 6664 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6664 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for AFTER */
break;
case 260:
-#line 779 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 779 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = TK_INSTEAD;}
-#line 6670 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6670 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for INSTEAD */
/* No destructor defined for OF */
break;
case 261:
-#line 780 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 780 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = TK_BEFORE; }
-#line 6677 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6677 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 262:
-#line 784 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 784 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy234.a = TK_DELETE; yygotominor.yy234.b = 0; }
-#line 6682 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6682 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DELETE */
break;
case 263:
-#line 785 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 785 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy234.a = TK_INSERT; yygotominor.yy234.b = 0; }
-#line 6688 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6688 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for INSERT */
break;
case 264:
-#line 786 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 786 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy234.a = TK_UPDATE; yygotominor.yy234.b = 0;}
-#line 6694 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6694 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for UPDATE */
break;
case 265:
-#line 787 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 787 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy234.a = TK_UPDATE; yygotominor.yy234.b = yymsp[0].minor.yy92; }
-#line 6700 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6700 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for UPDATE */
/* No destructor defined for OF */
break;
case 266:
-#line 790 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 790 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = TK_ROW; }
-#line 6707 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6707 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 267:
-#line 791 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 791 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = TK_ROW; }
-#line 6712 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6712 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for FOR */
/* No destructor defined for EACH */
/* No destructor defined for ROW */
break;
case 268:
-#line 792 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 792 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy52 = TK_STATEMENT; }
-#line 6720 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6720 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for FOR */
/* No destructor defined for EACH */
/* No destructor defined for STATEMENT */
break;
case 269:
-#line 795 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 795 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy270 = 0; }
-#line 6728 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6728 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 270:
-#line 796 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 796 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy270 = yymsp[0].minor.yy334; }
-#line 6733 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6733 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for WHEN */
break;
case 271:
-#line 800 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 800 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yymsp[-2].minor.yy347->pNext = yymsp[0].minor.yy347;
yygotominor.yy347 = yymsp[-2].minor.yy347;
}
-#line 6742 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6742 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for SEMI */
break;
case 272:
-#line 804 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 804 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy347 = 0; }
-#line 6748 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6748 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 273:
-#line 810 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 810 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{ yygotominor.yy347 = sqliteTriggerUpdateStep(&yymsp[-3].minor.yy210, yymsp[-1].minor.yy62, yymsp[0].minor.yy334, yymsp[-4].minor.yy52); }
-#line 6753 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6753 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for UPDATE */
/* No destructor defined for SET */
break;
case 274:
-#line 815 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 815 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy347 = sqliteTriggerInsertStep(&yymsp[-5].minor.yy210, yymsp[-4].minor.yy92, yymsp[-1].minor.yy62, 0, yymsp[-7].minor.yy52);}
-#line 6760 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6760 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for INSERT */
/* No destructor defined for INTO */
/* No destructor defined for VALUES */
@@ -6765,86 +6765,86 @@ static void yy_reduce(
/* No destructor defined for RP */
break;
case 275:
-#line 818 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 818 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy347 = sqliteTriggerInsertStep(&yymsp[-2].minor.yy210, yymsp[-1].minor.yy92, 0, yymsp[0].minor.yy11, yymsp[-4].minor.yy52);}
-#line 6770 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6770 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for INSERT */
/* No destructor defined for INTO */
break;
case 276:
-#line 822 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 822 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy347 = sqliteTriggerDeleteStep(&yymsp[-1].minor.yy210, yymsp[0].minor.yy334);}
-#line 6777 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6777 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DELETE */
/* No destructor defined for FROM */
break;
case 277:
-#line 825 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 825 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{yygotominor.yy347 = sqliteTriggerSelectStep(yymsp[0].minor.yy11); }
-#line 6784 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6784 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
break;
case 278:
-#line 828 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 828 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_RAISE, 0, 0, 0);
yygotominor.yy334->iColumn = OE_Ignore;
sqliteExprSpan(yygotominor.yy334, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0);
}
-#line 6793 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6793 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LP */
/* No destructor defined for IGNORE */
break;
case 279:
-#line 833 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 833 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy210);
yygotominor.yy334->iColumn = OE_Rollback;
sqliteExprSpan(yygotominor.yy334, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0);
}
-#line 6804 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6804 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LP */
/* No destructor defined for ROLLBACK */
/* No destructor defined for COMMA */
break;
case 280:
-#line 838 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 838 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy210);
yygotominor.yy334->iColumn = OE_Abort;
sqliteExprSpan(yygotominor.yy334, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0);
}
-#line 6816 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6816 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LP */
/* No destructor defined for ABORT */
/* No destructor defined for COMMA */
break;
case 281:
-#line 843 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 843 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
yygotominor.yy334 = sqliteExpr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy210);
yygotominor.yy334->iColumn = OE_Fail;
sqliteExprSpan(yygotominor.yy334, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0);
}
-#line 6828 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6828 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for LP */
/* No destructor defined for FAIL */
/* No destructor defined for COMMA */
break;
case 282:
-#line 850 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 850 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
- sqliteDropTrigger(pParse,sqliteSrcListAppend(0,&yymsp[-1].minor.yy210,&yymsp[0].minor.yy210),0);
+ sqliteDropTrigger(pParse,sqliteSrcListAppend(0,&yymsp[-1].minor.yy210,&yymsp[0].minor.yy210));
}
-#line 6838 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6838 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DROP */
/* No destructor defined for TRIGGER */
break;
case 283:
-#line 855 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 855 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
sqliteAttach(pParse, &yymsp[-2].minor.yy210, &yymsp[0].minor.yy210);
}
-#line 6847 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6847 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for ATTACH */
/* No destructor defined for database_kw_opt */
/* No destructor defined for AS */
@@ -6855,11 +6855,11 @@ static void yy_reduce(
case 285:
break;
case 286:
-#line 863 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 863 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
{
sqliteDetach(pParse, &yymsp[0].minor.yy210);
}
-#line 6862 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6862 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
/* No destructor defined for DETACH */
/* No destructor defined for database_kw_opt */
break;
@@ -6904,7 +6904,7 @@ static void yy_syntax_error(
){
sqliteParserARG_FETCH;
#define TOKEN (yyminor.yy0)
-#line 23 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.y"
+#line 23 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.y"
if( pParse->zErrMsg==0 ){
if( TOKEN.z[0] ){
@@ -6916,7 +6916,7 @@ static void yy_syntax_error(
}
pParse->nErr++;
-#line 6919 "/home/wez/src/php/pear/PECL/sqlite/libsqlite/src/parse.c"
+#line 6919 "/home/wez/src/php/php4.3-cvs/ext/sqlite/libsqlite/src/parse.c"
sqliteParserARG_STORE; /* Suppress warning about unused %extra_argument variable */
}
diff --git a/ext/sqlite/libsqlite/src/parse.y b/ext/sqlite/libsqlite/src/parse.y
index f319cc3922..b434fb08a7 100644
--- a/ext/sqlite/libsqlite/src/parse.y
+++ b/ext/sqlite/libsqlite/src/parse.y
@@ -848,7 +848,7 @@ expr(A) ::= RAISE(X) LP FAIL COMMA nm(Z) RP(Y). {
//////////////////////// DROP TRIGGER statement //////////////////////////////
cmd ::= DROP TRIGGER nm(X) dbnm(D). {
- sqliteDropTrigger(pParse,sqliteSrcListAppend(0,&X,&D),0);
+ sqliteDropTrigger(pParse,sqliteSrcListAppend(0,&X,&D));
}
//////////////////////// ATTACH DATABASE file AS name /////////////////////////
diff --git a/ext/sqlite/libsqlite/src/pragma.c b/ext/sqlite/libsqlite/src/pragma.c
index 13f2bf71c4..252aa502db 100644
--- a/ext/sqlite/libsqlite/src/pragma.c
+++ b/ext/sqlite/libsqlite/src/pragma.c
@@ -421,6 +421,7 @@ void sqlitePragma(Parse *pParse, Token *pLeft, Token *pRight, int minusFlag){
static VdbeOp indexListPreface[] = {
{ OP_ColumnName, 0, 0, "seq"},
{ OP_ColumnName, 1, 0, "name"},
+ { OP_ColumnName, 2, 0, "file"},
};
sqliteVdbeAddOpList(v, ArraySize(indexListPreface), indexListPreface);
@@ -430,7 +431,10 @@ void sqlitePragma(Parse *pParse, Token *pLeft, Token *pRight, int minusFlag){
sqliteVdbeAddOp(v, OP_Integer, i, 0);
sqliteVdbeAddOp(v, OP_String, 0, 0);
sqliteVdbeChangeP3(v, -1, db->aDb[i].zName, P3_STATIC);
- sqliteVdbeAddOp(v, OP_Callback, 2, 0);
+ sqliteVdbeAddOp(v, OP_String, 0, 0);
+ sqliteVdbeChangeP3(v, -1, sqliteBtreeGetFilename(db->aDb[i].pBt),
+ P3_STATIC);
+ sqliteVdbeAddOp(v, OP_Callback, 3, 0);
}
}else
/*
diff --git a/ext/sqlite/libsqlite/src/select.c b/ext/sqlite/libsqlite/src/select.c
index 9bed641be7..03153bcd8a 100644
--- a/ext/sqlite/libsqlite/src/select.c
+++ b/ext/sqlite/libsqlite/src/select.c
@@ -1657,6 +1657,7 @@ static int flattenSubquery(
if( pSrc->a[iFrom].pTab && pSrc->a[iFrom].pTab->isTransient ){
sqliteDeleteTable(0, pSrc->a[iFrom].pTab);
}
+ sqliteFree(pSrc->a[iFrom].zDatabase);
sqliteFree(pSrc->a[iFrom].zName);
sqliteFree(pSrc->a[iFrom].zAlias);
if( nSubSrc>1 ){
diff --git a/ext/sqlite/libsqlite/src/sqlite.h.in b/ext/sqlite/libsqlite/src/sqlite.h.in
index c3980043f0..d4e22e34da 100644
--- a/ext/sqlite/libsqlite/src/sqlite.h.in
+++ b/ext/sqlite/libsqlite/src/sqlite.h.in
@@ -391,6 +391,7 @@ int sqlite_get_table_vprintf(
va_list ap /* Arguments to the format string */
);
char *sqlite_mprintf(const char*,...);
+char *sqlite_vmprintf(const char*, va_list);
/*
** Windows systems should call this routine to free memory that
@@ -554,6 +555,9 @@ int sqlite_set_authorizer(
#define SQLITE_SELECT 21 /* NULL NULL */
#define SQLITE_TRANSACTION 22 /* NULL NULL */
#define SQLITE_UPDATE 23 /* Table Name Column Name */
+#define SQLITE_ATTACH 24 /* Filename NULL */
+#define SQLITE_DETACH 25 /* Database Name NULL */
+
/*
** The return value of the authorization function should be one of the
diff --git a/ext/sqlite/libsqlite/src/sqlite.w32.h b/ext/sqlite/libsqlite/src/sqlite.w32.h
index 453b6fd168..778ef3d1c1 100644
--- a/ext/sqlite/libsqlite/src/sqlite.w32.h
+++ b/ext/sqlite/libsqlite/src/sqlite.w32.h
@@ -28,7 +28,7 @@ extern "C" {
/*
** The version of the SQLite library.
*/
-#define SQLITE_VERSION "2.8.2"
+#define SQLITE_VERSION "2.8.3"
/*
** The version string is also compiled into the library so that a program
@@ -42,7 +42,7 @@ extern const char sqlite_version[];
** UTF-8 encoded data. The SQLITE_ISO8859 macro is defined if the
** iso8859 encoded should be used.
*/
-#define SQLITE_iso8859 1
+#define SQLITE_ISO8859 1
/*
** The following constant holds one of two strings, "UTF-8" or "iso8859",
@@ -391,6 +391,7 @@ int sqlite_get_table_vprintf(
va_list ap /* Arguments to the format string */
);
char *sqlite_mprintf(const char*,...);
+char *sqlite_vmprintf(const char*, va_list);
/*
** Windows systems should call this routine to free memory that
@@ -554,6 +555,9 @@ int sqlite_set_authorizer(
#define SQLITE_SELECT 21 /* NULL NULL */
#define SQLITE_TRANSACTION 22 /* NULL NULL */
#define SQLITE_UPDATE 23 /* Table Name Column Name */
+#define SQLITE_ATTACH 24 /* Filename NULL */
+#define SQLITE_DETACH 25 /* Database Name NULL */
+
/*
** The return value of the authorization function should be one of the
diff --git a/ext/sqlite/libsqlite/src/sqliteInt.h b/ext/sqlite/libsqlite/src/sqliteInt.h
index 6c0713d96b..994a4ca247 100644
--- a/ext/sqlite/libsqlite/src/sqliteInt.h
+++ b/ext/sqlite/libsqlite/src/sqliteInt.h
@@ -132,8 +132,13 @@ typedef unsigned INTPTR_TYPE uptr; /* Big enough to hold a pointer */
** multi-megabyte records are OK. If your needs are different, you can
** change this define and recompile to increase or decrease the record
** size.
+**
+** The 16777198 is computed as follows: 238 bytes of payload on the
+** original pages plus 16448 overflow pages each holding 1020 bytes of
+** data.
*/
#define MAX_BYTES_PER_ROW 1048576
+/* #define MAX_BYTES_PER_ROW 16777198 */
/*
** If memory allocation problems are found, recompile with
@@ -236,7 +241,7 @@ struct Db {
Hash idxHash; /* All (named) indices indexed by name */
Hash trigHash; /* All triggers indexed by name */
Hash aFKey; /* Foreign keys indexed by to-table */
- u8 inTrans; /* True if a transaction is underway for this backend */
+ u8 inTrans; /* 0: not writable. 1: Transaction. 2: Checkpoint */
u16 flags; /* Flags associated with this database */
};
@@ -852,7 +857,6 @@ struct Parse {
** while generating expressions. Normally false */
u8 iDb; /* Index of database whose schema is being parsed */
u8 useCallback; /* True if callbacks should be used to report results */
- int useDb; /* Restrict references to tables in this database */
int newTnum; /* Table number to use when reparsing CREATE TABLEs */
int nErr; /* Number of errors seen */
int nTab; /* Number of previously allocated VDBE cursors */
@@ -893,12 +897,14 @@ struct Trigger {
char *name; /* The name of the trigger */
char *table; /* The table or view to which the trigger applies */
u8 iDb; /* Database containing this trigger */
+ u8 iTabDb; /* Database containing Trigger.table */
u8 op; /* One of TK_DELETE, TK_UPDATE, TK_INSERT */
u8 tr_tm; /* One of TK_BEFORE, TK_AFTER */
Expr *pWhen; /* The WHEN clause of the expresion (may be NULL) */
IdList *pColumns; /* If this is an UPDATE OF <column-list> trigger,
the <column-list> is stored here */
int foreach; /* One of TK_ROW or TK_STATEMENT */
+ Token nameToken; /* Token containing zName. Use during parsing only */
TriggerStep *step_list; /* Link list of trigger program steps */
Trigger *pNext; /* Next trigger associated with the table */
@@ -996,6 +1002,19 @@ struct TriggerStack {
};
/*
+** The following structure contains information used by the sqliteFix...
+** routines as they walk the parse tree to make database references
+** explicit.
+*/
+typedef struct DbFixer DbFixer;
+struct DbFixer {
+ Parse *pParse; /* The parsing context. Error messages written here */
+ const char *zDb; /* Make sure all objects are contained in this database */
+ const char *zType; /* Type of the container - used for error messages */
+ const Token *pName; /* Name of the container - used for error messages */
+};
+
+/*
* This global flag is set for performance testing of triggers. When it is set
* SQLite will perform the overhead of building new and old trigger references
* even when no triggers exist
@@ -1135,7 +1154,8 @@ int sqliteSafetyCheck(sqlite*);
void sqliteChangeCookie(sqlite*, Vdbe*);
void sqliteBeginTrigger(Parse*, Token*,int,int,IdList*,SrcList*,int,Expr*,int);
void sqliteFinishTrigger(Parse*, TriggerStep*, Token*);
-void sqliteDropTrigger(Parse*, SrcList*, int);
+void sqliteDropTrigger(Parse*, SrcList*);
+void sqliteDropTriggerPtr(Parse*, Trigger*, int);
int sqliteTriggersExist(Parse* , Trigger* , int , int , int, ExprList*);
int sqliteCodeRowTrigger(Parse*, int, ExprList*, int, Table *, int, int,
int, int);
@@ -1164,3 +1184,9 @@ void sqliteAttach(Parse*, Token*, Token*);
void sqliteDetach(Parse*, Token*);
int sqliteBtreeFactory(const sqlite *db, const char *zFilename,
int mode, int nPg, Btree **ppBtree);
+int sqliteFixInit(DbFixer*, Parse*, int, const char*, const Token*);
+int sqliteFixSrcList(DbFixer*, SrcList*);
+int sqliteFixSelect(DbFixer*, Select*);
+int sqliteFixExpr(DbFixer*, Expr*);
+int sqliteFixExprList(DbFixer*, ExprList*);
+int sqliteFixTriggerStep(DbFixer*, TriggerStep*);
diff --git a/ext/sqlite/libsqlite/src/trigger.c b/ext/sqlite/libsqlite/src/trigger.c
index 227e471534..97891b2cb9 100644
--- a/ext/sqlite/libsqlite/src/trigger.c
+++ b/ext/sqlite/libsqlite/src/trigger.c
@@ -54,6 +54,7 @@ void sqliteBeginTrigger(
char *zName = 0; /* Name of the trigger */
sqlite *db = pParse->db;
int iDb; /* When database to store the trigger in */
+ DbFixer sFix;
/* Check that:
** 1. the trigger name does not already exist.
@@ -64,6 +65,12 @@ void sqliteBeginTrigger(
*/
if( sqlite_malloc_failed ) goto trigger_cleanup;
assert( pTableName->nSrc==1 );
+ if( pParse->initFlag
+ && sqliteFixInit(&sFix, pParse, pParse->iDb, "trigger", pName)
+ && sqliteFixSrcList(&sFix, pTableName)
+ ){
+ goto trigger_cleanup;
+ }
tab = sqliteSrcListLookup(pParse, pTableName);
if( !tab ){
goto trigger_cleanup;
@@ -127,11 +134,13 @@ void sqliteBeginTrigger(
nt->table = sqliteStrDup(pTableName->a[0].zName);
if( sqlite_malloc_failed ) goto trigger_cleanup;
nt->iDb = iDb;
+ nt->iTabDb = tab->iDb;
nt->op = op;
nt->tr_tm = tr_tm;
nt->pWhen = sqliteExprDup(pWhen);
nt->pColumns = sqliteIdListDup(pColumns);
nt->foreach = foreach;
+ sqliteTokenCopy(&nt->nameToken,pName);
assert( pParse->pNewTrigger==0 );
pParse->pNewTrigger = nt;
@@ -151,8 +160,9 @@ void sqliteFinishTrigger(
TriggerStep *pStepList, /* The triggered program */
Token *pAll /* Token that describes the complete CREATE TRIGGER */
){
- Trigger *nt; /* The trigger whose construction is finishing up */
+ Trigger *nt = 0; /* The trigger whose construction is finishing up */
sqlite *db = pParse->db; /* The database */
+ DbFixer sFix;
if( pParse->nErr || pParse->pNewTrigger==0 ) goto triggerfinish_cleanup;
nt = pParse->pNewTrigger;
@@ -162,6 +172,10 @@ void sqliteFinishTrigger(
pStepList->pTrig = nt;
pStepList = pStepList->pNext;
}
+ if( sqliteFixInit(&sFix, pParse, nt->iDb, "trigger", &nt->nameToken)
+ && sqliteFixTriggerStep(&sFix, nt->step_list) ){
+ goto triggerfinish_cleanup;
+ }
/* if we are not initializing, and this trigger is not on a TEMP table,
** build the sqlite_master entry
@@ -184,7 +198,7 @@ void sqliteFinishTrigger(
v = sqliteGetVdbe(pParse);
if( v==0 ) goto triggerfinish_cleanup;
sqliteBeginWriteOperation(pParse, 0, 0);
- sqliteOpenMasterTable(v, nt->iDb==1);
+ sqliteOpenMasterTable(v, nt->iDb);
addr = sqliteVdbeAddOpList(v, ArraySize(insertTrig), insertTrig);
sqliteVdbeChangeP3(v, addr+2, nt->name, 0);
sqliteVdbeChangeP3(v, addr+3, nt->table, 0);
@@ -200,15 +214,15 @@ void sqliteFinishTrigger(
Table *pTab;
sqliteHashInsert(&db->aDb[nt->iDb].trigHash,
nt->name, strlen(nt->name)+1, nt);
- pTab = sqliteLocateTable(pParse, nt->table, 0);
+ pTab = sqliteLocateTable(pParse, nt->table, db->aDb[nt->iTabDb].zName);
assert( pTab!=0 );
nt->pNext = pTab->pTrigger;
pTab->pTrigger = nt;
- }else{
- sqliteDeleteTrigger(nt);
+ nt = 0;
}
triggerfinish_cleanup:
+ sqliteDeleteTrigger(nt);
sqliteDeleteTrigger(pParse->pNewTrigger);
pParse->pNewTrigger = 0;
sqliteDeleteTriggerStep(pStepList);
@@ -353,24 +367,25 @@ void sqliteDeleteTrigger(Trigger *pTrigger){
sqliteFree(pTrigger->table);
sqliteExprDelete(pTrigger->pWhen);
sqliteIdListDelete(pTrigger->pColumns);
+ if( pTrigger->nameToken.dyn ) sqliteFree((char*)pTrigger->nameToken.z);
sqliteFree(pTrigger);
}
/*
* This function is called to drop a trigger from the database schema.
*
- * This may be called directly from the parser, or from within
- * sqliteDropTable(). In the latter case the "nested" argument is true.
+ * This may be called directly from the parser and therefore identifies
+ * the trigger by name. The sqliteDropTriggerPtr() routine does the
+ * same job as this routine except it take a spointer to the trigger
+ * instead of the trigger name.
*
* Note that this function does not delete the trigger entirely. Instead it
* removes it from the internal schema and places it in the trigDrop hash
* table. This is so that the trigger can be restored into the database schema
* if the transaction is rolled back.
*/
-void sqliteDropTrigger(Parse *pParse, SrcList *pName, int nested){
+void sqliteDropTrigger(Parse *pParse, SrcList *pName){
Trigger *pTrigger;
- Table *pTable;
- Vdbe *v;
int i;
const char *zDb;
const char *zName;
@@ -392,13 +407,29 @@ void sqliteDropTrigger(Parse *pParse, SrcList *pName, int nested){
sqliteErrorMsg(pParse, "no such trigger: %S", pName, 0);
goto drop_trigger_cleanup;
}
+ sqliteDropTriggerPtr(pParse, pTrigger, 0);
+
+drop_trigger_cleanup:
+ sqliteSrcListDelete(pName);
+}
+
+/*
+** Drop a trigger given a pointer to that trigger. If nested is false,
+** then also generate code to remove the trigger from the SQLITE_MASTER
+** table.
+*/
+void sqliteDropTriggerPtr(Parse *pParse, Trigger *pTrigger, int nested){
+ Table *pTable;
+ Vdbe *v;
+ sqlite *db = pParse->db;
+
assert( pTrigger->iDb<db->nDb );
if( pTrigger->iDb>=2 ){
sqliteErrorMsg(pParse, "triggers may not be removed from "
"auxiliary database %s", db->aDb[pTrigger->iDb].zName);
- goto drop_trigger_cleanup;
+ return;
}
- pTable = sqliteFindTable(db, pTrigger->table, db->aDb[pTrigger->iDb].zName);
+ pTable = sqliteFindTable(db, pTrigger->table,db->aDb[pTrigger->iTabDb].zName);
assert(pTable);
assert( pTable->iDb==pTrigger->iDb || pTrigger->iDb==1 );
#ifndef SQLITE_OMIT_AUTHORIZATION
@@ -409,7 +440,7 @@ void sqliteDropTrigger(Parse *pParse, SrcList *pName, int nested){
if( pTrigger->iDb ) code = SQLITE_DROP_TEMP_TRIGGER;
if( sqliteAuthCheck(pParse, code, pTrigger->name, pTable->zName, zDb) ||
sqliteAuthCheck(pParse, SQLITE_DELETE, zTab, 0, zDb) ){
- goto drop_trigger_cleanup;
+ return;
}
}
#endif
@@ -432,7 +463,7 @@ void sqliteDropTrigger(Parse *pParse, SrcList *pName, int nested){
sqliteBeginWriteOperation(pParse, 0, 0);
sqliteOpenMasterTable(v, pTrigger->iDb);
base = sqliteVdbeAddOpList(v, ArraySize(dropTrigger), dropTrigger);
- sqliteVdbeChangeP3(v, base+1, zName, 0);
+ sqliteVdbeChangeP3(v, base+1, pTrigger->name, 0);
if( pTrigger->iDb==0 ){
sqliteChangeCookie(db, v);
}
@@ -444,6 +475,8 @@ void sqliteDropTrigger(Parse *pParse, SrcList *pName, int nested){
* If this is not an "explain", then delete the trigger structure.
*/
if( !pParse->explain ){
+ const char *zName = pTrigger->name;
+ int nName = strlen(zName);
if( pTable->pTrigger == pTrigger ){
pTable->pTrigger = pTrigger->pNext;
}else{
@@ -460,9 +493,6 @@ void sqliteDropTrigger(Parse *pParse, SrcList *pName, int nested){
sqliteHashInsert(&(db->aDb[pTrigger->iDb].trigHash), zName, nName+1, 0);
sqliteDeleteTrigger(pTrigger);
}
-
-drop_trigger_cleanup:
- sqliteSrcListDelete(pName);
}
/*
@@ -532,6 +562,36 @@ int sqliteTriggersExist(
}
/*
+** Convert the pStep->target token into a SrcList and return a pointer
+** to that SrcList.
+**
+** This routine adds a specific database name, if needed, to the target when
+** forming the SrcList. This prevents a trigger in one database from
+** referring to a target in another database. An exception is when the
+** trigger is in TEMP in which case it can refer to any other database it
+** wants.
+*/
+static SrcList *targetSrcList(
+ Parse *pParse, /* The parsing context */
+ TriggerStep *pStep /* The trigger containing the target token */
+){
+ Token sDb; /* Dummy database name token */
+ int iDb; /* Index of the database to use */
+ SrcList *pSrc; /* SrcList to be returned */
+
+ iDb = pStep->pTrig->iDb;
+ if( iDb==0 || iDb>=2 ){
+ assert( iDb<pParse->db->nDb );
+ sDb.z = pParse->db->aDb[iDb].zName;
+ sDb.n = strlen(sDb.z);
+ pSrc = sqliteSrcListAppend(0, &sDb, &pStep->target);
+ } else {
+ pSrc = sqliteSrcListAppend(0, &pStep->target, 0);
+ }
+ return pSrc;
+}
+
+/*
** Generate VDBE code for zero or more statements inside the body of a
** trigger.
*/
@@ -545,11 +605,9 @@ static int codeTriggerProgram(
while( pTriggerStep ){
int saveNTab = pParse->nTab;
- int saveUseDb = pParse->useDb;
+
orconf = (orconfin == OE_Default)?pTriggerStep->orconf:orconfin;
pParse->trigStack->orconf = orconf;
- pParse->useDb = pTriggerStep->pTrig->iDb;
- if( pParse->useDb==1 ) pParse->useDb = -1;
switch( pTriggerStep->op ){
case TK_SELECT: {
Select * ss = sqliteSelectDup(pTriggerStep->pSelect);
@@ -561,7 +619,7 @@ static int codeTriggerProgram(
}
case TK_UPDATE: {
SrcList *pSrc;
- pSrc = sqliteSrcListAppend(0, &pTriggerStep->target, 0);
+ pSrc = targetSrcList(pParse, pTriggerStep);
sqliteVdbeAddOp(pParse->pVdbe, OP_ListPush, 0, 0);
sqliteUpdate(pParse, pSrc,
sqliteExprListDup(pTriggerStep->pExprList),
@@ -571,7 +629,7 @@ static int codeTriggerProgram(
}
case TK_INSERT: {
SrcList *pSrc;
- pSrc = sqliteSrcListAppend(0, &pTriggerStep->target, 0);
+ pSrc = targetSrcList(pParse, pTriggerStep);
sqliteInsert(pParse, pSrc,
sqliteExprListDup(pTriggerStep->pExprList),
sqliteSelectDup(pTriggerStep->pSelect),
@@ -581,7 +639,7 @@ static int codeTriggerProgram(
case TK_DELETE: {
SrcList *pSrc;
sqliteVdbeAddOp(pParse->pVdbe, OP_ListPush, 0, 0);
- pSrc = sqliteSrcListAppend(0, &pTriggerStep->target, 0);
+ pSrc = targetSrcList(pParse, pTriggerStep);
sqliteDeleteFrom(pParse, pSrc, sqliteExprDup(pTriggerStep->pWhere));
sqliteVdbeAddOp(pParse->pVdbe, OP_ListPop, 0, 0);
break;
@@ -590,7 +648,6 @@ static int codeTriggerProgram(
assert(0);
}
pParse->nTab = saveNTab;
- pParse->useDb = saveUseDb;
pTriggerStep = pTriggerStep->pNext;
}
diff --git a/ext/sqlite/libsqlite/src/update.c b/ext/sqlite/libsqlite/src/update.c
index 95a49590dc..7a69a9d6cd 100644
--- a/ext/sqlite/libsqlite/src/update.c
+++ b/ext/sqlite/libsqlite/src/update.c
@@ -128,8 +128,13 @@ void sqliteUpdate(
}
}
if( j>=pTab->nCol ){
- sqliteErrorMsg(pParse, "no such column: %s", pChanges->a[i].zName);
- goto update_cleanup;
+ if( sqliteIsRowid(pChanges->a[i].zName) ){
+ chngRecno = 1;
+ pRecnoExpr = pChanges->a[i].pExpr;
+ }else{
+ sqliteErrorMsg(pParse, "no such column: %s", pChanges->a[i].zName);
+ goto update_cleanup;
+ }
}
#ifndef SQLITE_OMIT_AUTHORIZATION
{
diff --git a/ext/sqlite/libsqlite/src/util.c b/ext/sqlite/libsqlite/src/util.c
index 8520704ea6..129489e046 100644
--- a/ext/sqlite/libsqlite/src/util.c
+++ b/ext/sqlite/libsqlite/src/util.c
@@ -317,7 +317,8 @@ char *sqliteStrNDup(const char *z, int n){
** Create a string from the 2nd and subsequent arguments (up to the
** first NULL argument), store the string in memory obtained from
** sqliteMalloc() and make the pointer indicated by the 1st argument
-** point to that string.
+** point to that string. The 1st argument must either be NULL or
+** point to memory obtained from sqliteMalloc().
*/
void sqliteSetString(char **pz, const char *zFirst, ...){
va_list ap;
@@ -355,7 +356,9 @@ void sqliteSetString(char **pz, const char *zFirst, ...){
/*
** Works like sqliteSetString, but each string is now followed by
** a length integer which specifies how much of the source string
-** to copy (in bytes). -1 means use the whole string.
+** to copy (in bytes). -1 means use the whole string. The 1st
+** argument must either be NULL or point to memory obtained from
+** sqliteMalloc().
*/
void sqliteSetNString(char **pz, ...){
va_list ap;
@@ -610,188 +613,6 @@ int sqliteStrNICmp(const char *zLeft, const char *zRight, int N){
return N<0 ? 0 : *a - *b;
}
-#if 0 /* NOT USED */
-/*
-** The sortStrCmp() function below is used to order elements according
-** to the ORDER BY clause of a SELECT. The sort order is a little different
-** from what one might expect. This note attempts to describe what is
-** going on.
-**
-** We want the main string comparision function used for sorting to
-** sort both numbers and alphanumeric words into the correct sequence.
-** The same routine should do both without prior knowledge of which
-** type of text the input represents. It should even work for strings
-** which are a mixture of text and numbers. (It does not work for
-** numeric substrings in exponential notation, however.)
-**
-** To accomplish this, we keep track of a state number while scanning
-** the two strings. The states are as follows:
-**
-** 1 Beginning of word
-** 2 Arbitrary text
-** 3 Integer
-** 4 Negative integer
-** 5 Real number
-** 6 Negative real
-**
-** The scan begins in state 1, beginning of word. Transitions to other
-** states are determined by characters seen, as shown in the following
-** chart:
-**
-** Current State Character Seen New State
-** -------------------- -------------- -------------------
-** 0 Beginning of word "-" 3 Negative integer
-** digit 2 Integer
-** space 0 Beginning of word
-** otherwise 1 Arbitrary text
-**
-** 1 Arbitrary text space 0 Beginning of word
-** digit 2 Integer
-** otherwise 1 Arbitrary text
-**
-** 2 Integer space 0 Beginning of word
-** "." 4 Real number
-** digit 2 Integer
-** otherwise 1 Arbitrary text
-**
-** 3 Negative integer space 0 Beginning of word
-** "." 5 Negative Real num
-** digit 3 Negative integer
-** otherwise 1 Arbitrary text
-**
-** 4 Real number space 0 Beginning of word
-** digit 4 Real number
-** otherwise 1 Arbitrary text
-**
-** 5 Negative real num space 0 Beginning of word
-** digit 5 Negative real num
-** otherwise 1 Arbitrary text
-**
-** To implement this state machine, we first classify each character
-** into on of the following categories:
-**
-** 0 Text
-** 1 Space
-** 2 Digit
-** 3 "-"
-** 4 "."
-**
-** Given an arbitrary character, the array charClass[] maps that character
-** into one of the atove categories.
-*/
-static const unsigned char charClass[] = {
- /* x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF */
-/* 0x */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0,
-/* 1x */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* 2x */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0,
-/* 3x */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
-/* 4x */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* 5x */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* 6x */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* 7x */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* 8x */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* 9x */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* Ax */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* Bx */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* Cx */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* Dx */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* Ex */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* Fx */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-};
-#define N_CHAR_CLASS 5
-
-/*
-** Given the current state number (0 thru 5), this array figures
-** the new state number given the character class.
-*/
-static const unsigned char stateMachine[] = {
- /* Text, Space, Digit, "-", "." */
- 1, 0, 2, 3, 1, /* State 0: Beginning of word */
- 1, 0, 2, 1, 1, /* State 1: Arbitrary text */
- 1, 0, 2, 1, 4, /* State 2: Integer */
- 1, 0, 3, 1, 5, /* State 3: Negative integer */
- 1, 0, 4, 1, 1, /* State 4: Real number */
- 1, 0, 5, 1, 1, /* State 5: Negative real num */
-};
-
-/* This routine does a comparison of two strings. Case is used only
-** if useCase!=0. Numeric substrings compare in numerical order for the
-** most part but this routine does not understand exponential notation.
-*/
-static int sortStrCmp(const char *atext, const char *btext, int useCase){
- register unsigned char *a, *b, *map, ca, cb;
- int result;
- register int cclass = 0;
-
- a = (unsigned char *)atext;
- b = (unsigned char *)btext;
- if( useCase ){
- do{
- if( (ca= *a++)!=(cb= *b++) ) break;
- cclass = stateMachine[cclass*N_CHAR_CLASS + charClass[ca]];
- }while( ca!=0 );
- }else{
- map = UpperToLower;
- do{
- if( (ca=map[*a++])!=(cb=map[*b++]) ) break;
- cclass = stateMachine[cclass*N_CHAR_CLASS + charClass[ca]];
- }while( ca!=0 );
- if( ca>='[' && ca<='`' ) cb = b[-1];
- if( cb>='[' && cb<='`' ) ca = a[-1];
- }
- switch( cclass ){
- case 0:
- case 1: {
- if( isdigit(ca) && isdigit(cb) ){
- cclass = 2;
- }
- break;
- }
- default: {
- break;
- }
- }
- switch( cclass ){
- case 2:
- case 3: {
- if( isdigit(ca) ){
- if( isdigit(cb) ){
- int acnt, bcnt;
- acnt = bcnt = 0;
- while( isdigit(*a++) ) acnt++;
- while( isdigit(*b++) ) bcnt++;
- result = acnt - bcnt;
- if( result==0 ) result = ca-cb;
- }else{
- result = 1;
- }
- }else if( isdigit(cb) ){
- result = -1;
- }else if( ca=='.' ){
- result = 1;
- }else if( cb=='.' ){
- result = -1;
- }else{
- result = ca - cb;
- cclass = 2;
- }
- if( cclass==3 ) result = -result;
- break;
- }
- case 0:
- case 1:
- case 4: {
- result = ca - cb;
- break;
- }
- case 5: {
- result = cb - ca;
- };
- }
- return result;
-}
-#endif /* NOT USED */
-
/*
** Return TRUE if z is a pure numeric string. Return FALSE if the
** string contains any character which is not part of a number.
diff --git a/ext/sqlite/libsqlite/src/vdbe.c b/ext/sqlite/libsqlite/src/vdbe.c
index 3ac4a3acc8..28ba8cd22d 100644
--- a/ext/sqlite/libsqlite/src/vdbe.c
+++ b/ext/sqlite/libsqlite/src/vdbe.c
@@ -2287,7 +2287,7 @@ case OP_MustBeInt: {
/* Do nothing */
}else if( aStack[tos].flags & STK_Real ){
int i = aStack[tos].r;
- double r = i;
+ double r = (double)i;
if( r!=aStack[tos].r ){
goto mismatch;
}
@@ -3168,8 +3168,9 @@ case OP_IncrKey: {
*/
case OP_Checkpoint: {
int i = pOp->p1;
- if( i>=0 && i<db->nDb && db->aDb[i].pBt ){
+ if( i>=0 && i<db->nDb && db->aDb[i].pBt && db->aDb[i].inTrans==1 ){
rc = sqliteBtreeBeginCkpt(db->aDb[i].pBt);
+ if( rc==SQLITE_OK ) db->aDb[i].inTrans = 2;
}
break;
}
@@ -3382,6 +3383,11 @@ case OP_VerifyCookie: {
** Open a read/write cursor named P1 on the table or index whose root
** page is P2. If P2==0 then take the root page number from the stack.
**
+** The P3 value is the name of the table or index being opened.
+** The P3 value is not actually used by this opcode and may be
+** omitted. But the code generator usually inserts the index or
+** table name into P3 to make the code easier to read.
+**
** This instruction works just like OpenRead except that it opens the cursor
** in read/write mode. For a given table, there can be one or more read-only
** cursors or a single read/write cursor but not both.
@@ -3890,7 +3896,7 @@ case OP_NewRecno: {
/* Opcode: PutIntKey P1 P2 *
**
-** Write an entry into the database file P1. A new entry is
+** Write an entry into the table of cursor P1. A new entry is
** created if it doesn't already exist or the data for an existing
** entry is overwritten. The data is the value on the top of the
** stack. The key is the next value down on the stack. The key must
@@ -3902,7 +3908,7 @@ case OP_NewRecno: {
*/
/* Opcode: PutStrKey P1 * *
**
-** Write an entry into the database file P1. A new entry is
+** Write an entry into the table of cursor P1. A new entry is
** created if it doesn't already exist or the data for an existing
** entry is overwritten. The data is the value on the top of the
** stack. The key is the next value down on the stack. The key must
@@ -4384,13 +4390,13 @@ case OP_Next: {
/* Opcode: IdxPut P1 P2 P3
**
-** The top of the stack hold an SQL index key made using the
+** The top of the stack holds a SQL index key made using the
** MakeIdxKey instruction. This opcode writes that key into the
** index P1. Data for the entry is nil.
**
** If P2==1, then the key must be unique. If the key is not unique,
** the program aborts with a SQLITE_CONSTRAINT error and the database
-** is rolled back. If P3 is not null, then it because part of the
+** is rolled back. If P3 is not null, then it becomes part of the
** error message returned with the SQLITE_CONSTRAINT.
*/
case OP_IdxPut: {
@@ -4690,7 +4696,8 @@ case OP_ListWrite: {
/* Opcode: ListRewind * * *
**
-** Rewind the temporary buffer back to the beginning.
+** Rewind the temporary buffer back to the beginning. This is
+** now a no-op.
*/
case OP_ListRewind: {
/* This is now a no-op */
@@ -5820,8 +5827,9 @@ int sqliteVdbeFinalize(Vdbe *p, char **pzErrMsg){
sqliteRollbackInternalChanges(db);
}
for(i=0; i<db->nDb; i++){
- if( db->aDb[i].pBt ){
+ if( db->aDb[i].pBt && db->aDb[i].inTrans==2 ){
sqliteBtreeCommitCkpt(db->aDb[i].pBt);
+ db->aDb[i].inTrans = 1;
}
}
assert( p->tos<p->pc || sqlite_malloc_failed==1 );
diff --git a/ext/sqlite/sqlite.c b/ext/sqlite/sqlite.c
index 657b0badc2..2c49b5078f 100644
--- a/ext/sqlite/sqlite.c
+++ b/ext/sqlite/sqlite.c
@@ -574,6 +574,20 @@ static int php_sqlite_authorizer(void *autharg, int access_type, const char *arg
}
}
return SQLITE_OK;
+#ifdef SQLITE_ATTACH
+ case SQLITE_ATTACH:
+ {
+ TSRMLS_FETCH();
+ if (PG(safe_mode) && (!php_checkuid(arg3, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
+ return SQLITE_DENY;
+ }
+
+ if (php_check_open_basedir(arg3 TSRMLS_CC)) {
+ return SQLITE_DENY;
+ }
+ }
+ return SQLITE_OK;
+#endif
default:
/* access allowed */