:-) (CVS 52)

FossilOrigin-Name: c02268bdf4c28edc2542ce0ca1ba24fd6b5058fa
diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index a0a6f31..eca54c4 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -23,7 +23,7 @@
 *************************************************************************
 ** Internal interface definitions for SQLite.
 **
-** @(#) $Id: sqliteInt.h,v 1.14 2000/06/05 16:01:39 drh Exp $
+** @(#) $Id: sqliteInt.h,v 1.15 2000/06/05 18:54:46 drh Exp $
 */
 #include "sqlite.h"
 #include "dbbe.h"
@@ -162,6 +162,7 @@
   Token token;           /* An operand token */
   int iTable, iField;    /* When op==TK_FIELD, then this node means the
                          ** iField-th field of the iTable-th table */
+  Select *pSelect;       /* When the expression is a sub-select */
 };
 
 /*
@@ -191,7 +192,7 @@
     char *zName;      /* Text of the identifier. */
     char *zAlias;     /* The "B" part of a "A AS B" phrase.  zName is the "A" */
     Table *pTab;      /* Table corresponding to zName */
-    int idx;          /* Index of a field name in the table */
+    int idx;          /* Index of a field named zName in a table */
   } *a;            /* One entry for each identifier on the list */
 };
 
@@ -204,9 +205,11 @@
 */
 struct WhereInfo {
   Parse *pParse;
-  IdList *pTabList;
-  int iContinue;
-  int iBreak;
+  IdList *pTabList;    /* List of tables in the join */
+  int iContinue;       /* Jump here to continue with next record */
+  int iBreak;          /* Jump here to break out of the loop */
+  int base;            /* Index of first Open opcode */
+  Index *aIdx[32];     /* Indices used for each table */
 };
 
 /*
@@ -239,6 +242,8 @@
   int explain;         /* True if the EXPLAIN flag is found on the query */
   int initFlag;        /* True if reparsing CREATE TABLEs */
   int nErr;            /* Number of errors seen */
+  int nTab;            /* Number of previously allocated cursors */
+  int nMem;            /* Number of memory cells used so far */
 };
 
 /*
@@ -281,7 +286,7 @@
 void sqliteIdListDelete(IdList*);
 void sqliteCreateIndex(Parse*, Token*, Token*, IdList*, Token*, Token*);
 void sqliteDropIndex(Parse*, Token*);
-int sqliteSelect(Parse*, Select*, Table*, int);
+int sqliteSelect(Parse*, Select*, int, int);
 Select *sqliteSelectNew(ExprList*,IdList*,Expr*,ExprList*,Expr*,ExprList*,int);
 void sqliteSelectDelete(Select*);
 void sqliteDeleteFrom(Parse*, Token*, Expr*);