diff options
Diffstat (limited to 'rdms.scm')
-rw-r--r-- | rdms.scm | 24 |
1 files changed, 13 insertions, 11 deletions
@@ -17,6 +17,8 @@ ;promotional, or sales literature without prior written consent in ;each case. +(require 'rev4-optional-procedures) ;list-tail + (define rdms:catalog-name '*catalog-data*) (define rdms:domains-name '*domains-data*) (define rdms:columns-name '*columns*) @@ -493,7 +495,6 @@ (let ((translate-column (lambda (column) - ;;(print 'translate-column column column-name-alist) (let ((colp (assq column column-name-alist))) (cond (colp (cdr colp)) ((and (integer? column) @@ -540,7 +541,7 @@ (norm-mkeys mkeys))))) (else #f))) (else - (let ((index (- ci primary-limit 1)) + (let ((index (- ci (+ primary-limit 1))) (get-1 (base 'make-getter-1))) (cond (get-1 @@ -635,15 +636,16 @@ (define delete-table (and mutable (lambda (table-name) - ;;(or rdms:catalog (set! rdms:catalog (open-table rdms:catalog-name #t))) - (let* ((table (open-table table-name #t)) - (row ((rdms:catalog 'row:remove) table-name))) - (and row (base:kill-table - lldb - (list-ref row (+ -1 catalog:bastab-id-pos)) - (table 'primary-limit) - (table 'column-type-list)) - row))))) + (or rdms:catalog (set! rdms:catalog (open-table rdms:catalog-name #t))) + (and (table-exists? table-name) + (let ((table (open-table table-name #t)) + (row ((rdms:catalog 'row:remove) table-name))) + (and row (base:kill-table + lldb + (list-ref row (+ -1 catalog:bastab-id-pos)) + (table 'primary-limit) + (table 'column-type-list)) + row)))))) (lambda (operation-name) (case operation-name |