summaryrefslogtreecommitdiffstats
path: root/rdms.scm
diff options
context:
space:
mode:
Diffstat (limited to 'rdms.scm')
-rw-r--r--rdms.scm24
1 files changed, 13 insertions, 11 deletions
diff --git a/rdms.scm b/rdms.scm
index eb74494..09506bc 100644
--- a/rdms.scm
+++ b/rdms.scm
@@ -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