aboutsummaryrefslogtreecommitdiff
path: root/src/insert.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2004-10-31 02:22:47 +0000
committerdrh <drh@noemail.net>2004-10-31 02:22:47 +0000
commitb7f9164e98fa24ae6995c99dd792836b81ccc91d (patch)
treef55e787ff88094cfad5dd4abf2a6230ae5e5f4ee /src/insert.c
parent27d258a3ec1cf88e2a9104650bb6221215ea4d76 (diff)
downloadsqlite-b7f9164e98fa24ae6995c99dd792836b81ccc91d.tar.gz
sqlite-b7f9164e98fa24ae6995c99dd792836b81ccc91d.zip
Insert #ifdefs that can optionally remove features at compiletime resulting
in a database engine with a smaller footprint. (CVS 2034) FossilOrigin-Name: be661acfa849bb0d5692797dd221f5a8a457f8ad
Diffstat (limited to 'src/insert.c')
-rw-r--r--src/insert.c29
1 files changed, 22 insertions, 7 deletions
diff --git a/src/insert.c b/src/insert.c
index 114942e8c..d7a202a5d 100644
--- a/src/insert.c
+++ b/src/insert.c
@@ -12,7 +12,7 @@
** This file contains C code routines that are called by the parser
** to handle INSERT statements in SQLite.
**
-** $Id: insert.c,v 1.119 2004/10/05 02:41:42 drh Exp $
+** $Id: insert.c,v 1.120 2004/10/31 02:22:49 drh Exp $
*/
#include "sqliteInt.h"
@@ -213,16 +213,31 @@ void sqlite3Insert(
goto insert_cleanup;
}
+ /* Figure out if we have any triggers and if the table being
+ ** inserted into is a view
+ */
+#ifndef SQLITE_OMIT_TRIGGER
+ before_triggers = sqlite3TriggersExist(pParse, pTab->pTrigger,
+ TK_INSERT, TK_BEFORE, TK_ROW, 0);
+ after_triggers = sqlite3TriggersExist(pParse, pTab->pTrigger,
+ TK_INSERT, TK_AFTER, TK_ROW, 0);
+ row_triggers_exist = before_triggers || after_triggers;
+ isView = pTab->pSelect!=0;
+#else
+# define before_triggers 0
+# define after_triggers 0
+# define row_triggers_exist 0
+# define isView 0
+#endif
+#ifdef SQLITE_OMIT_VIEW
+# undef isView
+# define isView 0
+#endif
+
/* Ensure that:
* (a) the table is not read-only,
* (b) that if it is a view then ON INSERT triggers exist
*/
- before_triggers = sqlite3TriggersExist(pParse, pTab->pTrigger, TK_INSERT,
- TK_BEFORE, TK_ROW, 0);
- after_triggers = sqlite3TriggersExist(pParse, pTab->pTrigger, TK_INSERT,
- TK_AFTER, TK_ROW, 0);
- row_triggers_exist = before_triggers || after_triggers;
- isView = pTab->pSelect!=0;
if( sqlite3IsReadOnly(pParse, pTab, before_triggers) ){
goto insert_cleanup;
}