From de1afc74164280ae1d67001ad5e79813a523fb61 Mon Sep 17 00:00:00 2001 From: Dimitri Fontaine Date: Tue, 26 Nov 2013 11:51:42 +0100 Subject: [PATCH] Fix CSV and FIXED parsing to run the BEFORE section before doing PostgreSQL introspection. --- src/parser.lisp | 52 ++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/parser.lisp b/src/parser.lisp index 089e9e7..6279084 100644 --- a/src/parser.lisp +++ b/src/parser.lisp @@ -1562,24 +1562,24 @@ load database (*pgconn-port* ,port) (*pgconn-user* ,user) (*pgconn-pass* ,password) - (*pg-settings* ',gucs) - (source - (make-instance 'pgloader.csv:copy-csv - :target-db ,dbname - :source ',source - :target ,table-name - :encoding ,encoding - :fields ',fields - :columns ',columns - ,@(loop for (k v) on options by #'cddr - unless (eq k :truncate) - append (list k v))))) + (*pg-settings* ',gucs)) (progn ,(sql-code-block dbname 'state-before before "before load") - (pgloader.sources:copy-from source - :truncate (getf ',options :truncate)) + (let ((truncate (getf ',options :truncate)) + (source + (make-instance 'pgloader.csv:copy-csv + :target-db ,dbname + :source ',source + :target ,table-name + :encoding ,encoding + :fields ',fields + :columns ',columns + ,@(loop for (k v) on options by #'cddr + unless (eq k :truncate) + append (list k v))))) + (pgloader.sources:copy-from source :truncate truncate)) ,(sql-code-block dbname 'state-after after "after load") @@ -1699,22 +1699,22 @@ load database (*pgconn-port* ,port) (*pgconn-user* ,user) (*pgconn-pass* ,password) - (*pg-settings* ',gucs) - (source - (make-instance 'pgloader.fixed:copy-fixed - :target-db ,dbname - :source ',source - :target ,table-name - :encoding ,encoding - :fields ',fields - :columns ',columns - :skip-lines ,(or (getf options :skip-line) 0)))) + (*pg-settings* ',gucs)) (progn ,(sql-code-block dbname 'state-before before "before load") - (pgloader.sources:copy-from source - :truncate ,(getf options :truncate)) + (let ((truncate ,(getf options :truncate)) + (source + (make-instance 'pgloader.fixed:copy-fixed + :target-db ,dbname + :source ',source + :target ,table-name + :encoding ,encoding + :fields ',fields + :columns ',columns + :skip-lines ,(or (getf options :skip-line) 0)))) + (pgloader.sources:copy-from source :truncate truncate)) ,(sql-code-block dbname 'state-after after "after load")