IdList
IdList *pFromCol, /* Columns in this table that point to other table */
IdList *pToCol, /* Columns in the other table */
IdList *pList, /* A list of columns to be indexed */
IdList *sqliteIdListAppend(IdList *pList, Token *pToken){
pList = sqliteMalloc( sizeof(IdList) );
void sqliteIdListDelete(IdList *pList){
int sqliteIdListIndex(IdList *pList, const char *zName){
void sqliteAddPrimaryKey(Parse *pParse, IdList *pList, int onError){
IdList *sqliteIdListDup(IdList *p){
IdList *pNew;
IdList *pColumn, /* Column names corresponding to IDLIST. */
%type using_opt {IdList*}
%type inscollist_opt {IdList*}
%type inscollist {IdList*}
struct TrigEvent { int a; IdList * b; };
%type idxlist {IdList*}
%type idxlist_opt {IdList*}
IdList *pList;
IdList *pIdList; /* Valid for INSERT statements only */
void sqliteAddPrimaryKey(Parse*, IdList*, int);
void sqliteInsert(Parse*, SrcList*, ExprList*, Select*, IdList*, int);
IdList *sqliteIdListAppend(IdList*, Token*);
int sqliteIdListIndex(IdList*,const char*);
void sqliteIdListDelete(IdList*);
void sqliteCreateIndex(Parse*,Token*,SrcList*,IdList*,int,Token*,Token*);
IdList *sqliteIdListDup(IdList*);
void sqliteBeginTrigger(Parse*, Token*,int,int,IdList*,SrcList*,int,Expr*,int);
TriggerStep *sqliteTriggerInsertStep(Token*, IdList*, ExprList*, Select*, int);
void sqliteCreateForeignKey(Parse*, IdList*, Token*, IdList*, int);
typedef struct IdList IdList;
IdList *pUsing; /* The USING clause of a join */
IdList *pColumns; /* If this is an UPDATE OF <column-list> trigger,
IdList *pNew = sqliteIdListDup(p->pIdList);
IdList *pColumn, /* List of columns in pTableName to insert into */
IdList *pColumns, /* column list if this is an UPDATE OF trigger */
static int checkColumnOverLap(IdList *pIdList, ExprList *pEList){