Show
Ignore:
Timestamp:
05/27/09 00:41:57 (15 months ago)
Author:
sjamaan
Message:

Make the interface more awesome by making row/column numbers optional

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • release/4/postgresql/trunk/postgresql.scm

    r14769 r14792  
    392392 
    393393;; Unchecked version, for speed 
    394 (define (value-at* result row column #!key raw) 
     394(define (value-at* result column row #!key raw) 
    395395  (if (PQgetisnull (pg-result-ptr result) row column) 
    396396      (sql-null) 
     
    410410            ((vector-ref (pg-result-value-parsers result) column) value))))) 
    411411 
    412 (define (value-at result row column #!key raw) 
     412(define (value-at result #!optional (column 0) (row 0) #!key raw) 
    413413  (check-row-index! result row 'value) 
    414414  (check-column-index! result column 'value) 
    415   (value-at* result row column raw: raw)) 
    416  
    417 (define (row-values result row #!key raw) 
     415  (value-at* result column row raw: raw)) 
     416 
     417(define (row-values result #!optional (row 0) #!key raw) 
    418418  (check-row-index! result row 'row) 
    419419  (let loop ((list '()) 
     
    421421    (if (= column 0) 
    422422        list 
    423         (loop (cons (value-at* result row (sub1 column) raw: raw) list) 
     423        (loop (cons (value-at* result (sub1 column) row raw: raw) list) 
    424424              (sub1 column))))) 
    425425 
    426 (define (column-values result column #!key raw) 
     426(define (column-values result #!optional (column 0) #!key raw) 
    427427  (check-column-index! result column 'column) 
    428428  (let loop ((list '()) 
     
    430430    (if (= row 0) 
    431431        list 
    432         (loop (cons (value-at* result (sub1 row) column raw: raw) list) 
     432        (loop (cons (value-at* result column (sub1 row) raw: raw) list) 
    433433              (sub1 row))))) 
    434434 
    435 ;; (define (row-alist result row) 
     435;; (define (row-alist result #!optional (row 0)) 
    436436;;   (map cons (column-names result) (row-values result row))) 
    437 (define (row-alist result row) 
     437(define (row-alist result #!optional (row 0)) 
    438438  (check-row-index! result row 'row-alist) 
    439439  (let loop ((alist '()) 
     
    443443        (loop (cons (cons (string->symbol 
    444444                           (PQfname (pg-result-ptr result) (sub1 column))) 
    445                           (value-at* result row (sub1 column))) alist) 
     445                          (value-at* result (sub1 column) row)) alist) 
    446446              (sub1 column))))) 
    447447