aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMunyoki Kilyungi2023-07-06 15:21:10 +0300
committerBonfaceKilz2023-07-30 12:29:56 +0300
commit7da7e15ac9fa0422caa4fc560f3c6957c2dbcc24 (patch)
tree487a5188cb3537a5f78b5a98b037b12b70f3d56a
parentfe564abecd58bcbc3fbe6893d53ca7bf58251f2c (diff)
downloadgn-transform-databases-7da7e15ac9fa0422caa4fc560f3c6957c2dbcc24.tar.gz
Print out triples with the from Table.Name or Table.Alias
* dump/special-forms.scm (field->datum): New function. (define-dump): Use the field->datum to convert triples into the form Table.Name or Table.Alias. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
-rw-r--r--dump/special-forms.scm41
1 files changed, 21 insertions, 20 deletions
diff --git a/dump/special-forms.scm b/dump/special-forms.scm
index 727b356..2281f23 100644
--- a/dump/special-forms.scm
+++ b/dump/special-forms.scm
@@ -223,7 +223,24 @@ Example:
-(eval-when (expand load eval)
+(eval-when (expand load )
+ (define (field->datum x)
+ (translate-forms
+ 'field
+ (lambda (x)
+ (syntax-case x (field)
+ ((field (query alias))
+ #`(format #f "~a" (syntax->datum #'alias)))
+ ((field table column)
+ #`(format #f "~a.~a"
+ (syntax->datum #'table)
+ (syntax->datum #'column)))
+ ((field table column alias)
+ #`(format #f "~a.~a"
+ (syntax->datum table)
+ (syntax->datum alias)))))
+ x))
+
(define (field->key x)
(translate-forms 'field
(lambda (x)
@@ -477,30 +494,14 @@ Triples take the form:
(for-each (match-lambda
((predicate . object)
(format out "~a -> ~a -> ~a ~%"
- #,(car (collect-keys
- (field->key #'subject)))
+ #,(field->datum #'subject)
predicate object)))
(map-alist
'()
- #,@(translate-forms 'field
- (lambda (x)
- (syntax-case x (field)
- ((field (query alias))
- #`(format #f "~a" (syntax->datum #'alias)))
- ((field table column)
- #`(format #f "~a.~a"
- (syntax->datum #'table)
- (syntax->datum #'column)))
- ((field table column alias)
- #`(format #f "~a.~a"
- (syntax->datum table)
- (syntax->datum alias)))))
- #'(predicate-clauses ...)))
- )
+ #,@(field->datum #'subject)))
(format out "~%")
;; To clear the buffer
- (force-output out)
- ))
+ (force-output out)))
(when (dump-configuration-triples? dump-configuration)
(sql-for-each (lambda (row)
(scm->triples