From 14381f313b1ca871f3516931f477b232b35b3545 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sat, 11 Dec 2021 16:38:24 +0530 Subject: Log dumped tables and columns. * dump.scm (%dumped): New variable. (define-dump): Append to %dumped when a new table dumping function is defined. --- dump.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'dump.scm') diff --git a/dump.scm b/dump.scm index 665dee8..cf8439b 100755 --- a/dump.scm +++ b/dump.scm @@ -143,12 +143,23 @@ characters with an underscore and prefixing with gn:PREFIX." (define (triple subject predicate object) (format #t "~a ~a ~s .~%" subject predicate object)) +(define %dumped '()) + (define-syntax define-dump (lambda (x) (syntax-case x (select-query) ((_ name (select-query (fields ...) tables raw-forms ...) proc) - (define (name db) - (sql-for-each proc db (select-query (fields ...) tables raw-forms ...))))))) + #`(begin + (set! %dumped + (append (list #,@(filter-map (lambda (field) + (syntax-case field (distinct) + (distinct #f) + ((table column _ ...) #'(cons 'table 'column)) + (field-spec (error "Invalid field specification" #'field-spec)))) + #'(fields ...))) + %dumped)) + (define (name db) + (sql-for-each proc db (select-query (fields ...) tables raw-forms ...)))))))) (define binomial-name->species-id (cut string->identifier "species" <>)) -- cgit v1.2.3