]> granicus.if.org Git - php/commitdiff
Update bundled library to 2.8.3 + patches from sqlite author to enable
authorWez Furlong <wez@php.net>
Fri, 6 Jun 2003 22:44:57 +0000 (22:44 +0000)
committerWez Furlong <wez@php.net>
Fri, 6 Jun 2003 22:44:57 +0000 (22:44 +0000)
authorization checks for the ATTACH database command.

26 files changed:
ext/sqlite/Makefile.frag
ext/sqlite/config.m4
ext/sqlite/libsqlite/VERSION
ext/sqlite/libsqlite/src/attach.c
ext/sqlite/libsqlite/src/btree.c
ext/sqlite/libsqlite/src/btree.h
ext/sqlite/libsqlite/src/btree_rb.c
ext/sqlite/libsqlite/src/build.c
ext/sqlite/libsqlite/src/copy.c
ext/sqlite/libsqlite/src/expr.c
ext/sqlite/libsqlite/src/insert.c
ext/sqlite/libsqlite/src/main.c
ext/sqlite/libsqlite/src/os.c
ext/sqlite/libsqlite/src/pager.c
ext/sqlite/libsqlite/src/parse.c
ext/sqlite/libsqlite/src/parse.y
ext/sqlite/libsqlite/src/pragma.c
ext/sqlite/libsqlite/src/select.c
ext/sqlite/libsqlite/src/sqlite.h.in
ext/sqlite/libsqlite/src/sqlite.w32.h
ext/sqlite/libsqlite/src/sqliteInt.h
ext/sqlite/libsqlite/src/trigger.c
ext/sqlite/libsqlite/src/update.c
ext/sqlite/libsqlite/src/util.c
ext/sqlite/libsqlite/src/vdbe.c
ext/sqlite/sqlite.c

index b800d25041435b00838418914cb093ad11512703..baefc7a70b35c142bfeb3bb42d69166ce38411f5 100644 (file)
@@ -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
index 81581308107b3f1ea48ccb262c293afc6ddbde8f..bdcf84ad2d1dcbc14ce1f6f18dcd10f6dffeccb8 100644 (file)
@@ -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
index 1817afea416c4a8e4814d22f5f4b2dcf4b0807e6..9f8d8a9164a7ba7a14228a3d2a94931bcfbdf97c 100644 (file)
@@ -1 +1 @@
-2.8.2
+2.8.3
index dd94c2118265d8b3d64a21a7cb63ee829d0d6f9e..5b57e29e16872ce6f2e42c84fe21e7b588b7e832 100644 (file)
@@ -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;
+}
index 30979d0e31e1a2a44d93bd0e7379d05a35fb5945..9f433f4036bf6dd8297dafab8a4c18d2e2adec61 100644 (file)
@@ -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];
       }
index 064b7f97dd1b473ff70752c106a6df3af4e74694..1e1b2163d7343a2a8f35778130a5eb72a9ba2afc 100644 (file)
@@ -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)))
index d4c63a5b8bad8f8488937b2104000ffeca59d084..39a842032af61676f102cb7435b5444e8b24a192 100644 (file)
@@ -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);
 
index 76077ac943fffeef210b0c347fdabeed9656d7fe..8eea830a0dbe2b6e7d22a1be3a6d01b979040533 100644 (file)
@@ -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.
index ac2d8ecd37c9b2e003a337b926343a241aa62397..5fca758d63f003f9f0864db69e3c9f802cc75410 100644 (file)
@@ -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 */
index 2a380dd5380e6dc954ae59a2df7f2d9c8ab21148..d3b4cc69b179d429db34c8623b44742faa235591 100644 (file)
@@ -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;
index 313764f51eca7317b6cf497ccbb612865f17ded9..07cb30440e9551dd5fcca79652033553363023fd 100644 (file)
@@ -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);
index ebba7cbc570099692479630047350ebe8f2a2823..e2d51d87df21d493ff7254c2db91b1226b07003c 100644 (file)
@@ -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);
index 46f22a43410cadecbc9d3ab6d6a8c8f134b706fe..d9d16ed0c191342b504ef949b468ff056826b5c8 100644 (file)
@@ -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;
   }
index e133a3cad08686cdac4896b993675790bacd63fe..4e9d0c9059f736fd797aab6057bccececc0b957e 100644 (file)
@@ -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);
index da1a6f04610842eaaea4abc70cc59e1522aaf53e..9bc27af745ae2db0fd0a06ea8a2479233e95c98a 100644 (file)
@@ -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 */
 }
 
index f319cc39229bb05e02f05cc958c838868d8ef3d5..b434fb08a7f4936c4eb1e8aa9c596e0f0513fbd1 100644 (file)
@@ -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 /////////////////////////
index 13f2bf71c46c5c0f8535b1c4c8e50491e623a0c7..252aa502db88a657f155ab33f37e9f28ffce31e7 100644 (file)
@@ -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
   /*
index 9bed641be72b622eb2d8920ccff7a36085cb5703..03153bcd8a5ead4385b6683822347dd06e232e32 100644 (file)
@@ -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 ){
index c3980043f075e8149e6831aa4b527672703e3c12..d4e22e34dafc9ba9bf7145253baa6ac064d577cb 100644 (file)
@@ -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
index 453b6fd16826daba08adb34d40f1343f8c128caf..778ef3d1c1a9a481ef5e70603e6a51d6efb6e2c3 100644 (file)
@@ -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
index 6c0713d96b0c6b3504716717a30d9ac495fa09a9..994a4ca247cb5ceb0446b709a6d325b9046dc7dd 100644 (file)
@@ -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 */
@@ -995,6 +1001,19 @@ struct TriggerStack {
   TriggerStack *pNext; /* Next trigger down on the trigger stack */
 };
 
+/*
+** 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 
@@ -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*);
index 227e471534c22efe8da7f23badf4befdbfa605bd..97891b2cb92d48b8ab5a07946b2ff4f7068daf1e 100644 (file)
@@ -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);
 }
 
 /*
@@ -531,6 +561,36 @@ int sqliteTriggersExist(
   return 0;
 }
 
+/*
+** 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;
   }
 
index 95a49590dcd22824f9241391c2db76eefbd293ba..7a69a9d6cd9b30affd14d3c4ca314e28d970bf37 100644 (file)
@@ -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
     {
index 8520704ea6bee590d8bcf08173136ff0b43142b5..129489e046a79ff7ed1abe01d5e1e6feddc086e6 100644 (file)
@@ -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.
index 3ac4a3acc80ae0c57d14b0d40803b2a5e54f334b..28ba8cd22dea4324e1f24da4115c485c9eb4e801 100644 (file)
@@ -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 );
index 657b0badc2e48d6e2ddfb1f440d6cbe9ac80351e..2c49b5078f161d593084422e207037b8639eaa93 100644 (file)
@@ -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 */