I compiled SQLite 3 (version 3.5.7), specifying
SQLITE_OMIT_TRIGGER to reduce the size of the
generated code.

I got the following compilation warnings in
parse.c:

-------------------------------------------------------------------------------------------------
parse.y(990) : error C2220: warning treated as error - no object file generated
parse.y(990) : warning C4013: 'sqlite3DeleteTriggerStep' undefined; assuming 
extern returning int
parse.y(959) : warning C4013: 'sqlite3FinishTrigger' undefined; assuming extern 
returning int
parse.y(965) : warning C4013: 'sqlite3BeginTrigger' undefined; assuming extern 
returning int
parse.y(1006) : warning C4013: 'sqlite3TriggerUpdateStep' undefined; assuming 
extern returning int
parse.y(1006) : warning C4047: '=' : 'TriggerStep *' differs in levels of 
indirection from 'int'
parse.y(1011) : warning C4013: 'sqlite3TriggerInsertStep' undefined; assuming 
extern returning int
parse.y(1011) : warning C4047: '=' : 'TriggerStep *' differs in levels of 
indirection from 'int'
parse.y(1014) : warning C4047: '=' : 'TriggerStep *' differs in levels of 
indirection from 'int'
parse.y(1018) : warning C4013: 'sqlite3TriggerDeleteStep' undefined; assuming 
extern returning int
parse.y(1018) : warning C4047: '=' : 'TriggerStep *' differs in levels of 
indirection from 'int'
parse.y(1021) : warning C4013: 'sqlite3TriggerSelectStep' undefined; assuming 
extern returning int
parse.y(1021) : warning C4047: '=' : 'TriggerStep *' differs in levels of 
indirection from 'int'
parse.y(1049) : warning C4013: 'sqlite3DropTrigger' undefined; assuming extern 
returning int
-------------------------------------------------------------------------------------------------

The various trigger functions are declared in
sqliteInt.h as follows:

-------------------------------------------------------------------------------------------------
#ifndef SQLITE_OMIT_TRIGGER
   void sqlite3BeginTrigger(Parse*, Token*,Token*,int,int,IdList*,SrcList*,
                            Expr*,int, int);
   void sqlite3FinishTrigger(Parse*, TriggerStep*, Token*);
   void sqlite3DropTrigger(Parse*, SrcList*, int);
   void sqlite3DropTriggerPtr(Parse*, Trigger*);
   int sqlite3TriggersExist(Parse*, Table*, int, ExprList*);
   int sqlite3CodeRowTrigger(Parse*, int, ExprList*, int, Table *, int, int,
                            int, int, u32*, u32*);
   void sqliteViewTriggers(Parse*, Table*, Expr*, int, ExprList*);
   void sqlite3DeleteTriggerStep(TriggerStep*);
   TriggerStep *sqlite3TriggerSelectStep(sqlite3*,Select*);
   TriggerStep *sqlite3TriggerInsertStep(sqlite3*,Token*, IdList*,
                                         ExprList*,Select*,int);
   TriggerStep *sqlite3TriggerUpdateStep(sqlite3*,Token*,ExprList*, Expr*, int);
   TriggerStep *sqlite3TriggerDeleteStep(sqlite3*,Token*, Expr*);
   void sqlite3DeleteTrigger(Trigger*);
   void sqlite3UnlinkAndDeleteTrigger(sqlite3*,int,const char*);
   void sqlite3SelectMask(Parse *, Select *, u32);
#else
# define sqlite3TriggersExist(A,B,C,D,E,F) 0
# define sqlite3DeleteTrigger(A)
# define sqlite3DropTriggerPtr(A,B)
# define sqlite3UnlinkAndDeleteTrigger(A,B,C)
# define sqlite3CodeRowTrigger(A,B,C,D,E,F,G,H,I,J,K) 0
# define sqlite3SelectMask(A, B, C)
#endif
-------------------------------------------------------------------------------------------------

It would seem that, in the #else section, we just need to
add 9 more no-op macros for the undefined trigger functions.

- Richard
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to