]> git.madduck.net Git - etc/mailfilter.git/blobdiff - procmail/msgid-index

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

add global define to disable delays
[etc/mailfilter.git] / procmail / msgid-index
index 908fc3d814dfe390dc76009b34562416854715c0..102dacc0f9fb7f1b222ca8c58f9861f6c3d895f3 100644 (file)
@@ -1,26 +1,25 @@
-# create table logfiles (sender text not null, recipient text not null,
-# subject text not null, msgid text unique not null, filename text primary key
-# not null unique, timestamp timestamp with time zone, dest text not null);
+# create table messages (sender text not null, recipient text not null,
+# subject text not null, msgid text not null, filename text primary key
+# not null unique, timestamp integer, dest text not null);
 #
-# create trigger insert_logfiles_timestamp after insert on logfiles begin
-# update logfiles set timestamp = datetime('now') where filename
+# create trigger insert_messages_timestamp after insert on messages begin
+# update messages set timestamp = strftime('%s', 'now') where filename
 # = new.filename; end;
 
 MSGID_INDEX_DB=$PMVAR/msgid-index.sqlite
 
 DO_QUERY="$SQLITE $MSGID_INDEX_DB"
 
-SQ="'\\''"
-SQE="'\\\''"
-FIELDS="$FROM$NL$ORIGINAL_TO$NL$SUBJECT$NL$MSGID"
-QUERY="insert into logfiles (sender, recipient, subject, msgid, filename, dest) values (
-  `echo \"$FIELDS\" | sed -e 's,'\'','$SQE$SQE',g; s/^.*$/'\$SQE'&'\$SQE',/'`
-  $SQ$THISLOGFILE_REL$SQ, '\\'\$DEST\\'')"
-TRAP="$TRAP; $DO_QUERY '$QUERY'"
+DATA="$FROM,$NL$ORIGINAL_TO,$NL$SUBJECT,$NL$MSGID"
+INCLUDERC=$PMDIR/sql-escape
+
+QUERY="insert into messages (sender, recipient, subject, msgid, filename, dest) values (
+  $DATA, '\\'$THISLOGFILE_REL\\'', '\\'\$DESTFILE\\'');
+       select * from messages where filename = '\\'$THISLOGFILE_REL\\''"
+TRAP="$TRAP; case \"$($DO_QUERY '$QUERY')\" in '') 
+      echo 'msgid-index: failed to insert reference into database';; esac"
 
 QUERY
-FIELDS
-SQE
-SQ
+DATA
 DO_QUERY
 MSGID_INDEX_DB