13272
((3) 0 () 29 ((q lib "db/util/geometry.rkt") (q lib "db/main.rkt") (q lib "db/base.rkt") (q 25629 . 4) (q 22868 . 17) (q lib "db/util/postgresql.rkt") (q 27446 . 4) (q 8130 . 6) (q 22464 . 5) (q 23467 . 15) (q 17626 . 3) (q 26032 . 3) (q 26556 . 9) (q lib "db/util/datetime.rkt") (q 27168 . 6) (q 22600 . 7) (q 21262 . 5) (q 25689 . 3) (q 27611 . 4) (q 17711 . 4) (q 27513 . 4) (q 25758 . 4) (c (? . 5) q postgresql-connection<%>) (q lib "db/unsafe/sqlite3.rkt") (q 25874 . 3) (q 26109 . 3) (q 25947 . 3) (q 27134 . 2) (q lib "db/util/mysql.rkt")) () (h ! (equal) ((c def c (c (? . 0) q struct:polygon)) c (? . 21)) ((c def c (c (? . 0) q struct:multi-point)) c (? . 24)) ((c def c (c (? . 0) q point-x)) c (? . 3)) ((c def c (c (? . 1) q mysql-connect)) q (1814 . 25)) ((c def c (c (? . 2) q postgresql-data-source)) q (9165 . 23)) ((c def c (c (? . 0) q wkb->geometry)) q (26493 . 3)) ((c def c (c (? . 1) q odbc-data-sources)) q (6755 . 2)) ((c def c (c (? . 2) q prepare)) q (19062 . 4)) ((c def c (c (? . 1) q mysql-guess-socket-path)) q (3269 . 2)) ((c def c (c (? . 2) q sql-timestamp-tz)) c (? . 4)) ((c def c (c (? . 5) q struct:pg-box)) c (? . 6)) ((c def c (c (? . 0) q point-y)) c (? . 3)) ((c def c (c (? . 2) q sql-timestamp-minute)) c (? . 4)) ((c def c (c (? . 2) q query-value)) q (16574 . 5)) ((c def c (c (? . 2) q make-exn:fail:sql)) c (? . 16)) ((c def c (c (? . 23) q sqlite3-create-function)) q (29633 . 6)) ((c def c (c (? . 5) q pg-circle-center)) c (? . 18)) ((c def c (c (? . 2) q data-source)) c (? . 7)) ((c def c (c (? . 2) q sql-date-month)) c (? . 8)) ((c def c (c (? . 2) q struct:sql-timestamp)) c (? . 4)) ((c def c (c (? . 5) q pg-box?)) c (? . 6)) ((c def c (c (? . 2) q current-dsn-file)) q (8695 . 4)) ((c def c (c (? . 2) q set-data-source-connector!)) c (? . 7)) ((c def c (c (? . 2) q sql-interval-months)) c (? . 9)) ((c def c (c (? . 5) q pg-array-dimension-lower-bounds)) c (? . 12)) ((c def c (c (? . 2) q sql-date-year)) c (? . 8)) ((c def c (? . 22)) q (28419 . 2)) ((c def c (c (? . 2) q connection?)) q (14785 . 3)) ((c def c (c (? . 2) q struct:sql-interval)) c (? . 9)) ((c def c (c (? . 2) q simple-result)) c (? . 10)) ((c def c (c (? . 2) q sql-interval-nanoseconds)) c (? . 9)) ((c def c (c (? . 2) q simple-result-info)) c (? . 10)) ((c def c (c (? . 5) q pg-custom-type)) q (27696 . 13)) ((c def c (c (? . 2) q sql-time-tz)) c (? . 15)) ((c def c (c (? . 2) q group-rows)) q (17979 . 9)) ((c def c (c (? . 2) q rows->dict)) q (18466 . 11)) ((c def c (c (? . 2) q statement-binding?)) q (19697 . 3)) ((c def c (c (? . 2) q sql-null)) q (22264 . 2)) ((c def c (c (? . 5) q pg-empty-range)) c (? . 27)) ((c def c (c (? . 2) q sqlite3-data-source)) q (12106 . 14)) ((c def c (c (? . 2) q sql-timestamp-nanosecond)) c (? . 4)) ((c def c (c (? . 2) q connection-pool?)) q (7417 . 3)) ((c def c (c (? . 5) q pg-box-ne)) c (? . 6)) ((c def c (c (? . 2) q sql-bits?)) q (24386 . 3)) ((c def c (c (? . 2) q connection-pool-lease)) q (7479 . 9)) ((c def c (c (? . 2) q connection-pool)) q (6892 . 10)) ((c def c (c (? . 5) q struct:pg-range)) c (? . 14)) ((c def c (c (? . 0) q multi-polygon?)) c (? . 11)) ((c def c (c (? . 2) q sql-date-day)) c (? . 8)) ((c def c (c (? . 0) q multi-polygon-elements)) c (? . 11)) ((c def c (c (? . 2) q sql-timestamp?)) c (? . 4)) ((c def c (c (? . 2) q sql-interval-seconds)) c (? . 9)) ((c def c (c (? . 2) q sql-interval)) c (? . 9)) ((c def c (c (? . 5) q pg-path-closed?)) c (? . 20)) ((c def c (c (? . 13) q srfi-date->sql-time-tz)) q (25282 . 3)) ((c def c (c (? . 2) q virtual-statement?)) q (19874 . 3)) ((c def c (c (? . 5) q pg-array-dimensions)) c (? . 12)) ((c def c (c (? . 13) q srfi-date->sql-timestamp-tz)) q (25437 . 3)) ((c def c (c (? . 2) q list->sql-bits)) q (24887 . 3)) ((c def c (c (? . 2) q query-maybe-row)) q (16420 . 5)) ((c def c (c (? . 2) q bind-prepared-statement)) q (19561 . 4)) ((c def c (c (? . 5) q pg-range-includes-lb?)) c (? . 14)) ((c def c (c (? . 0) q line-string?)) c (? . 17)) ((c def c (c (? . 2) q dsn-connect)) q (8356 . 9)) ((c def c (c (? . 2) q commit-transaction)) q (20417 . 3)) ((c def c (c (? . 2) q sql-time-second)) c (? . 15)) ((c def c (c (? . 5) q struct:pg-array)) c (? . 12)) ((c def c (c (? . 2) q sql-time?)) c (? . 15)) ((c def c (c (? . 5) q pg-range-lb)) c (? . 14)) ((c def c (c (? . 2) q struct:data-source)) c (? . 7)) ((c def c (c (? . 2) q exn:fail:sql-info)) c (? . 16)) ((c def c (c (? . 5) q list->pg-array)) q (27069 . 3)) ((c def c (c (? . 2) q rows-result)) c (? . 19)) ((c def c (c (? . 5) q pg-array?)) c (? . 12)) ((c def c (c (? . 13) q srfi-date->sql-timestamp)) q (25356 . 3)) ((c def c (c (? . 13) q sql-datetime->srfi-date)) q (25030 . 3)) ((c def c (c (? . 1) q odbc-connect)) q (4703 . 20)) ((c def c (c (? . 2) q get-dsn)) q (8798 . 6)) ((c def c (c (? . 0) q line?)) q (26252 . 3)) ((c def c (c (? . 2) q sql-null?)) q (22293 . 3)) ((c def c (c (? . 2) q sql-interval->sql-time)) q (24059 . 4)) ((c def c (c (? . 0) q line-string-points)) c (? . 17)) ((c def c (c (? . 2) q virtual-connection)) q (7938 . 3)) ((c def c (c (? . 0) q point)) c (? . 3)) ((c def c (c (? . 2) q query-exec)) q (15353 . 5)) ((c def c (c (? . 2) q rollback-transaction)) q (20484 . 3)) ((c def c (c (? . 5) q pg-range)) c (? . 14)) ((c def c (c (? . 2) q sql-bits-length)) q (24441 . 3)) ((c def c (c (? . 5) q pg-array-ref)) q (26899 . 4)) ((c def c (c (? . 2) q statement?)) q (15297 . 3)) ((c def c (c (? . 2) q sql-date)) c (? . 8)) ((c def c (c (? . 5) q pg-circle?)) c (? . 18)) ((c def c (c (? . 2) q data-source?)) c (? . 7)) ((c def c (c (? . 0) q geometry-collection?)) c (? . 25)) ((c def c (c (? . 2) q rows-result?)) c (? . 19)) ((c def c (c (? . 5) q pg-box)) c (? . 6)) ((c def c (c (? . 0) q geometry2d?)) q (26195 . 3)) ((c def c (c (? . 2) q put-dsn)) q (8992 . 5)) ((c def c (c (? . 0) q multi-line-string)) c (? . 26)) ((c def c (c (? . 13) q sql-day-time-interval->seconds)) q (25521 . 3)) ((c def c (c (? . 5) q pg-path-points)) c (? . 20)) ((c def c (c (? . 2) q sql-bits->list)) q (24748 . 3)) ((c def c (c (? . 2) q kill-safe-connection)) q (8055 . 3)) ((c def c (c (? . 2) q simple-result?)) c (? . 10)) ((c def c (c (? . 2) q query-row)) q (16284 . 5)) ((c def c (c (? . 2) q string->sql-bits)) q (24965 . 3)) ((c def c (c (? . 2) q set-data-source-args!)) c (? . 7)) ((c def c (c (? . 1) q cassandra-connect)) q (3323 . 13)) ((c def c (c (? . 28) q mysql-json?)) q (28710 . 3)) ((c def c (c (? . 0) q polygon)) c (? . 21)) ((c def c (c (? . 2) q prepared-statement-result-types)) q (19417 . 4)) ((c def c (c (? . 2) q struct:simple-result)) c (? . 10)) ((c meth c (c (? . 22) q cancel)) q (28652 . 2)) ((c def c (c (? . 5) q pg-custom-type?)) q (28358 . 3)) ((c def c (c (? . 2) q dbsystem?)) q (15089 . 3)) ((c def c (c (? . 5) q pg-range-or-empty?)) q (27331 . 3)) ((c def c (c (? . 2) q exn:fail:sql?)) c (? . 16)) ((c def c (c (? . 2) q struct:rows-result)) c (? . 19)) ((c def c (c (? . 2) q data-source-extensions)) c (? . 7)) ((c def c (c (? . 0) q polygon?)) c (? . 21)) ((c def c (c (? . 2) q in-transaction?)) q (20553 . 3)) ((c def c (c (? . 2) q sql-time-minute)) c (? . 15)) ((c def c (c (? . 2) q prepared-statement-parameter-types)) q (19270 . 4)) ((c def c (c (? . 0) q struct:line-string)) c (? . 17)) ((c def c (c (? . 2) q sql-interval-days)) c (? . 9)) ((c def c (c (? . 2) q false->sql-null)) q (22406 . 3)) ((c def c (c (? . 0) q geometry->wkb)) q (26361 . 4)) ((c def c (c (? . 2) q mysql-data-source)) q (10600 . 18)) ((c def c (c (? . 2) q virtual-statement)) q (19761 . 3)) ((c def c (c (? . 2) q sql-time-hour)) c (? . 15)) ((c def c (c (? . 1) q odbc-drivers)) q (6827 . 2)) ((c def c (c (? . 2) q needs-rollback?)) q (20620 . 3)) ((c def c (c (? . 2) q in-query)) q (16864 . 16)) ((c def c (c (? . 23) q sqlite3-create-aggregate)) q (29839 . 13)) ((c def c (c (? . 0) q multi-point)) c (? . 24)) ((c def c (c (? . 2) q sql-timestamp-year)) c (? . 4)) ((c def c (c (? . 2) q sql-interval-years)) c (? . 9)) ((c def c (c (? . 5) q pg-range-includes-ub?)) c (? . 14)) ((c def c (c (? . 0) q struct:geometry-collection)) c (? . 25)) ((c def c (c (? . 0) q multi-line-string-elements)) c (? . 26)) ((c def c (c (? . 2) q sql-timestamp-month)) c (? . 4)) ((c def c (c (? . 13) q srfi-date->sql-time)) q (25211 . 3)) ((c def c (c (? . 0) q struct:multi-polygon)) c (? . 11)) ((c def c (c (? . 2) q prop:statement?)) q (22203 . 3)) ((c def c (c (? . 2) q query)) q (17817 . 6)) ((c def c (c (? . 2) q sql-interval-hours)) c (? . 9)) ((q def ((lib "db/util/cassandra.rkt") cassandra-consistency)) q (28828 . 7)) ((c def c (c (? . 5) q pg-array)) c (? . 12)) ((c def c (c (? . 2) q table-exists?)) q (21648 . 10)) ((c def c (c (? . 2) q sql-day-time-interval?)) q (23991 . 3)) ((c def c (c (? . 1) q odbc-driver-connect)) q (5810 . 16)) ((c def c (c (? . 2) q sql-interval?)) c (? . 9)) ((c meth c (c (? . 22) q add-custom-types)) q (28469 . 3)) ((c def c (c (? . 2) q exn:fail:sql)) c (? . 16)) ((c def c (c (? . 2) q dbsystem-name)) q (15144 . 3)) ((c def c (c (? . 2) q make-sql-bits)) q (24301 . 3)) ((c def c (c (? . 2) q call-with-transaction)) q (20687 . 13)) ((c def c (c (? . 5) q pg-array->list)) q (27004 . 3)) ((c def c (c (? . 13) q srfi-date->sql-date)) q (25140 . 3)) ((c def c (c (? . 0) q polygon-interiors)) c (? . 21)) ((c def c (c (? . 5) q pg-circle-radius)) c (? . 18)) ((c def c (c (? . 2) q struct:sql-time)) c (? . 15)) ((c def c (c (? . 0) q multi-point-elements)) c (? . 24)) ((c def c (c (? . 2) q sql-timestamp-hour)) c (? . 4)) ((c def c (c (? . 5) q pg-path?)) c (? . 20)) ((c def c (c (? . 2) q data-source-args)) c (? . 7)) ((c def c (c (? . 5) q pg-box-sw)) c (? . 6)) ((c def c (c (? . 2) q disconnect)) q (14842 . 3)) ((c def c (c (? . 2) q prop:statement)) q (22097 . 3)) ((c def c (c (? . 0) q multi-point?)) c (? . 24)) ((c def c (c (? . 1) q postgresql-connect)) q (0 . 29)) ((c def c (c (? . 2) q sql-time->sql-interval)) q (24209 . 3)) ((c def c (c (? . 0) q polygon-exterior)) c (? . 21)) ((c def c (c (? . 1) q postgresql-guess-socket-path)) q (1755 . 2)) ((c def c (c (? . 1) q sqlite3-available?)) q (4658 . 2)) ((c def c (c (? . 2) q sql-time-nanosecond)) c (? . 15)) ((c def c (c (? . 2) q odbc-driver-data-source)) q (13902 . 15)) ((c def c (c (? . 2) q exn:fail:sql-sqlstate)) c (? . 16)) ((c def c (c (? . 23) q sqlite3-load-extension)) q (29510 . 4)) ((c def c (c (? . 2) q sql-timestamp-day)) c (? . 4)) ((c def c (c (? . 2) q sql-timestamp)) c (? . 4)) ((c def c (c (? . 5) q pg-path)) c (? . 20)) ((c def c (c (? . 0) q line-string)) c (? . 17)) ((c def c (c (? . 1) q sqlite3-connect)) q (3977 . 13)) ((c def c (c (? . 5) q struct:pg-empty-range)) c (? . 27)) ((c def c (c (? . 5) q pg-circle)) c (? . 18)) ((c def c (c (? . 2) q rows-result-rows)) c (? . 19)) ((c def c (c (? . 2) q sql-bits-set!)) q (24626 . 5)) ((c def c (c (? . 2) q odbc-data-source)) q (12818 . 19)) ((c def c (c (? . 2) q set-data-source-extensions!)) c (? . 7)) ((c def c (c (? . 2) q query-maybe-value)) q (16710 . 5)) ((c def c (c (? . 5) q pg-empty-range?)) c (? . 27)) ((c def c (c (? . 2) q cassandra-data-source)) q (11479 . 14)) ((c def c (c (? . 0) q struct:multi-line-string)) c (? . 26)) ((c def c (c (? . 2) q sql-bits->string)) q (24822 . 3)) ((c def c (c (? . 5) q pg-array-contents)) c (? . 12)) ((c def c (c (? . 5) q struct:pg-circle)) c (? . 18)) ((c def c (c (? . 2) q dbsystem-supported-types)) q (15210 . 3)) ((c def c (c (? . 5) q struct:pg-path)) c (? . 20)) ((c def c (c (? . 5) q pg-array-dimension-lengths)) c (? . 12)) ((c meth c (c (? . 22) q async-message-evt)) q (28584 . 2)) ((c def c (c (? . 2) q list-tables)) q (21461 . 5)) ((c def c (c (? . 2) q sql-date?)) c (? . 8)) ((c def c (c (? . 2) q start-transaction)) q (19938 . 11)) ((c def c (c (? . 2) q sql-time)) c (? . 15)) ((c def c (c (? . 0) q geometry-collection-elements)) c (? . 25)) ((c def c (c (? . 2) q sql-year-month-interval?)) q (23921 . 3)) ((c def c (c (? . 0) q multi-line-string?)) c (? . 26)) ((c def c (c (? . 0) q struct:point)) c (? . 3)) ((c def c (c (? . 2) q connection-dbsystem)) q (14999 . 3)) ((c def c (c (? . 2) q sql-interval-minutes)) c (? . 9)) ((c def c (c (? . 2) q query-list)) q (16149 . 5)) ((c def c (c (? . 2) q data-source-connector)) c (? . 7)) ((c def c (c (? . 28) q mysql-json)) q (28767 . 3)) ((c def c (c (? . 0) q linear-ring?)) q (26303 . 3)) ((c def c (c (? . 0) q point?)) c (? . 3)) ((c def c (c (? . 2) q prepared-statement?)) q (19205 . 3)) ((c def c (c (? . 2) q sql-null->false)) q (22348 . 3)) ((c def c (c (? . 0) q multi-polygon)) c (? . 11)) ((c def c (c (? . 2) q rows-result-headers)) c (? . 19)) ((c def c (c (? . 2) q struct:sql-date)) c (? . 8)) ((c def c (c (? . 5) q pg-range?)) c (? . 14)) ((c def c (c (? . 2) q sql-bits-ref)) q (24524 . 4)) ((c def c (c (? . 2) q query-rows)) q (15488 . 14)) ((c def c (c (? . 5) q uuid?)) q (27395 . 3)) ((c def c (c (? . 5) q pg-range-ub)) c (? . 14)) ((c def c (c (? . 0) q geometry-collection)) c (? . 25)) ((c def c (c (? . 2) q sql-timestamp-second)) c (? . 4)) ((q def ((lib "db/util/testing.rkt") high-latency-connection)) q (29204 . 8)) ((c def c (c (? . 2) q connected?)) q (14919 . 3)) ((c def c (c (? . 2) q struct:exn:fail:sql)) c (? . 16))))
procedure
(postgresql-connect                                                        
                     #:user user                                           
                     #:database database                                   
                    [#:server server                                       
                     #:port port                                           
                     #:socket socket                                       
                     #:password password                                   
                     #:allow-cleartext-password? allow-cleartext-password? 
                     #:ssl ssl                                             
                     #:ssl-context ssl-context                             
                     #:notice-handler notice-handler                       
                     #:notification-handler notification-handler])         
 -> connection?
  user : string?
  database : string?
  server : string? = "localhost"
  port : exact-positive-integer? = 5432
  socket : (or/c path-string? 'guess #f) = #f
  password : (or/c string? #f) = #f
  allow-cleartext-password? : (or/c boolean? 'local) = 'local
  ssl : (or/c 'yes 'optional 'no) = 'no
  ssl-context : ssl-client-context? = (ssl-make-client-context)
  notice-handler : (or/c 'output 'error output-port? = void
                         (-> string? string? any))
  notification-handler : (or/c 'output 'error output-port?
                               (-> string? any)
                               (-> string? string? any))
                       = void
procedure
(postgresql-guess-socket-path) -> path-string?
procedure
(mysql-connect                                                        
                #:user user                                           
               [#:database database                                   
                #:server server                                       
                #:port port                                           
                #:socket socket                                       
                #:allow-cleartext-password? allow-cleartext-password? 
                #:ssl ssl                                             
                #:ssl-context ssl-context                             
                #:password password                                   
                #:notice-handler notice-handler])                     
 -> connection?
  user : string?
  database : (or/c string? #f) = #f
  server : string? = "localhost"
  port : exact-positive-integer? = 3306
  socket : (or/c path-string? 'guess #f) = #f
  allow-cleartext-password? : (or/c boolean? 'local) = 'local
  ssl : (or/c 'yes 'optional 'no) = 'no
  ssl-context : ssl-client-context? = (ssl-make-client-context)
  password : (or/c string? #f) = #f
  notice-handler : (or/c 'output 'error output-port?
                         (-> exact-nonnegative-integer? string? any))
                 = void
procedure
(mysql-guess-socket-path) -> path-string?
procedure
(cassandra-connect [#:user user                     
                    #:password password             
                    #:server server                 
                    #:port port                     
                    #:ssl ssl                       
                    #:ssl-context ssl-context]) -> connection?
  user : (or string? #f) = #f
  password : (or string? #f) = #f
  server : string? = "localhost"
  port : exact-positive-integer? = 9042
  ssl : (or/c 'yes 'no) = 'no
  ssl-context : (or/c ssl-client-context? 'auto 'secure) = 'auto
procedure
(sqlite3-connect  #:database database                 
                 [#:mode mode                         
                  #:busy-retry-limit busy-retry-limit 
                  #:busy-retry-delay busy-retry-delay 
                  #:use-place use-place])             
 -> connection?
  database : (or/c path-string? 'memory 'temporary)
  mode : (or/c 'read-only 'read/write 'create) = 'read/write
  busy-retry-limit : (or/c exact-nonnegative-integer? +inf.0)
                   = 10
  busy-retry-delay : (and/c rational? (not/c negative?)) = 0.1
  use-place : (or/c boolean? 'os-thread 'place) = #f
procedure
(sqlite3-available?) -> boolean?
procedure
(odbc-connect                                                    
               #:dsn dsn                                         
              [#:user user                                       
               #:password password                               
               #:notice-handler notice-handler                   
               #:strict-parameter-types? strict-parameter-types? 
               #:character-mode character-mode                   
               #:quirks quirks                                   
               #:use-place use-place])                           
 -> connection?
  dsn : string?
  user : (or/c string? #f) = #f
  password : (or/c string? #f) = #f
  notice-handler : (or/c output-port? 'output 'error = void
                         (-> string? string? any))
  strict-parameter-types? : boolean? = #f
  character-mode : (or/c 'wchar 'utf-8 'latin-1) = 'wchar
  quirks : (listof symbol?) = null
  use-place : (or/c boolean? 'place 'os-thread) = #f
procedure
(odbc-driver-connect                                                    
                      connection-string                                 
                     [#:notice-handler notice-handler                   
                      #:strict-parameter-types? strict-parameter-types? 
                      #:character-mode character-mode                   
                      #:quirks quirks                                   
                      #:use-place use-place])                           
 -> connection?
  connection-string : string?
  notice-handler : (or/c output-port? 'output 'error = void
                         (-> string? string? any))
  strict-parameter-types? : boolean? = #f
  character-mode : (or/c 'wchar 'utf-8 'latin-1) = 'wchar
  quirks : (listof symbol?) = null
  use-place : (or/c boolean? 'os-thread 'place) = #f
procedure
(odbc-data-sources) -> (listof (list/c string? string?))
procedure
(odbc-drivers) -> (listof (cons/c string? any/c))
procedure
(connection-pool  connect                                     
                 [#:max-connections max-connections           
                  #:max-idle-connections max-idle-connections 
                  #:max-idle-seconds max-idle-seconds])       
 -> connection-pool?
  connect : (-> connection?)
  max-connections : (or/c (integer-in 1 10000) +inf.0) = +inf.0
  max-idle-connections : (or/c (integer-in 1 10000) +inf.0) = 10
  max-idle-seconds : (>=/c 0) = 300
procedure
(connection-pool? x) -> boolean?
  x : any/c
procedure
(connection-pool-lease  pool                          
                       [release                       
                        #:timeout timeout-seconds     
                        #:fail fail])             -> connection?
  pool : connection-pool?
  release : (or/c evt? custodian?) = (current-thread)
  timeout-seconds : (or/c #f (>=/c 0)) = #f
  fail : any/c = (lambda () (error ....))
procedure
(virtual-connection connect) -> connection?
  connect : (or/c (-> connection?) connection-pool?)
procedure
(kill-safe-connection c) -> connection?
  c : connection?
struct
(struct data-source (connector args extensions)
    #:mutable)
  connector : (or/c 'postgresql 'mysql 'sqlite3 'odbc 'odbc-driver)
  args : list?
  extensions : (listof (list/c symbol? any/c))
procedure
(dsn-connect  dsn                      
             [#:dsn-file dsn-file]     
              arg ...                  
              #:<kw> kw-arg ...)   -> connection?
  dsn : (or/c symbol? data-source?)
  dsn-file : path-string? = (current-dsn-file)
  arg : any/c
  kw-arg : any/c
parameter
(current-dsn-file) -> path-string?
(current-dsn-file x) -> void?
  x : path-string?
procedure
(get-dsn dsn [default #:dsn-file dsn-file])
 -> (or/c data-source? any/c)
  dsn : symbol?
  default : any/c = #f
  dsn-file : path-string? = (current-dsn-file)
procedure
(put-dsn dsn ds [#:dsn-file dsn-file]) -> void?
  dsn : symbol?
  ds : (or/c data-source? #f)
  dsn-file : path-string? = (current-dsn-file)
procedure
(postgresql-data-source                                                        
                        [#:user user                                           
                         #:database database                                   
                         #:server server                                       
                         #:port port                                           
                         #:socket socket                                       
                         #:password password                                   
                         #:allow-cleartext-password? allow-cleartext-password? 
                         #:ssl ssl                                             
                         #:notice-handler notice-handler                       
                         #:notification-handler notification-handler])         
 -> data-source?
  user : string? = absent
  database : string? = absent
  server : string? = absent
  port : exact-positive-integer? = absent
  socket : (or/c path-string? 'guess #f) = absent
  password : (or/c string? #f) = absent
  allow-cleartext-password? : boolean? = absent
  ssl : (or/c 'yes 'optional 'no) = absent
  notice-handler : (or/c 'output 'error) = absent
  notification-handler : (or/c 'output 'error) = absent
procedure
(mysql-data-source [#:user user                       
                    #:database database               
                    #:server server                   
                    #:port port                       
                    #:socket socket                   
                    #:ssl ssl                         
                    #:password password               
                    #:notice-handler notice-handler]) 
 -> data-source?
  user : string? = absent
  database : (or/c string? #f) = absent
  server : string? = absent
  port : exact-positive-integer? = absent
  socket : (or/c path-string? 'guess #f) = absent
  ssl : (or/c 'yes 'optional 'no) = absent
  password : (or/c string? #f) = absent
  notice-handler : (or/c 'output 'error) = absent
procedure
(cassandra-data-source [#:server server             
                        #:port port                 
                        #:user user                 
                        #:password password         
                        #:ssl ssl                   
                        #:ssl-context ssl-context]) 
 -> data-source?
  server : string? = absent
  port : exact-positive-integer? = absent
  user : string? = absent
  password : (or/c string? #f) = absent
  ssl : (or/c 'yes 'no) = absent
  ssl-context : (or/c 'auto 'secure) = absent
procedure
(sqlite3-data-source [#:database database                 
                      #:mode mode                         
                      #:busy-retry-limit busy-retry-limit 
                      #:busy-retry-delay busy-retry-delay 
                      #:use-place use-place])             
 -> data-source?
  database : (or/c path-string? 'memory 'temporary) = absent
  mode : (or/c 'read-only 'read/write 'create) = absent
  busy-retry-limit : (or/c exact-nonnegative-integer? +inf.0)
                   = absent
  busy-retry-delay : (and/c rational? (not/c negative?))
                   = absent
  use-place : boolean? = absent
procedure
(odbc-data-source                                                    
                  [#:dsn dsn                                         
                   #:user user                                       
                   #:password password                               
                   #:notice-handler notice-handler                   
                   #:strict-parameter-types? strict-parameter-types? 
                   #:character-mode character-mode                   
                   #:quirks quirks                                   
                   #:use-place use-place])                           
 -> data-source?
  dsn : (or/c string? #f) = absent
  user : (or/c string? #f) = absent
  password : (or/c string? #f) = absent
  notice-handler : (or/c 'output 'error) = absent
  strict-parameter-types? : boolean? = absent
  character-mode : (or/c 'wchar 'utf-8 'latin-1) = absent
  quirks : (listof symbol?) = null
  use-place : boolean? = absent
procedure
(odbc-driver-data-source                                                    
                          connection-string                                 
                         [#:notice-handler notice-handler                   
                          #:strict-parameter-types? strict-parameter-types? 
                          #:character-mode character-mode                   
                          #:quirks quirks                                   
                          #:use-place use-place])                           
 -> data-source?
  connection-string : string?
  notice-handler : (or/c 'output 'error) = absent
  strict-parameter-types? : boolean? = absent
  character-mode : (or/c 'wchar 'utf-8 'latin-1) = absent
  quirks : (listof symbol?) = null
  use-place : boolean? = absent
procedure
(connection? x) -> boolean?
  x : any/c
procedure
(disconnect connection) -> void?
  connection : connection?
procedure
(connected? connection) -> boolean?
  connection : connection?
procedure
(connection-dbsystem connection) -> dbsystem?
  connection : connection?
procedure
(dbsystem? x) -> boolean?
  x : any/c
procedure
(dbsystem-name sys) -> symbol?
  sys : dbsystem?
procedure
(dbsystem-supported-types sys) -> (listof symbol?)
  sys : dbsystem?
procedure
(statement? x) -> boolean?
  x : any/c
procedure
(query-exec connection stmt arg ...) -> void?
  connection : connection?
  stmt : statement?
  arg : any/c
procedure
(query-rows  connection                    
             stmt                          
             arg ...                       
            [#:group groupings             
             #:group-mode group-mode]) -> (listof vector?)
  connection : connection?
  stmt : statement?
  arg : any/c
  groupings : (let* ([field/c (or/c string? exact-nonnegative-integer?)]
                     [grouping/c (or/c field/c (vectorof field/c))])
                (or/c grouping/c (listof grouping/c)))
            = null
  group-mode : (listof (or/c 'preserve-null 'list)) = null
procedure
(query-list connection stmt arg ...) -> list?
  connection : connection?
  stmt : statement?
  arg : any/c
procedure
(query-row connection stmt arg ...) -> vector?
  connection : connection?
  stmt : statement?
  arg : any/c
procedure
(query-maybe-row connection stmt arg ...) -> (or/c vector? #f)
  connection : connection?
  stmt : statement?
  arg : any/c
procedure
(query-value connection stmt arg ...) -> any/c
  connection : connection?
  stmt : statement?
  arg : any/c
procedure
(query-maybe-value connection stmt arg ...) -> (or/c any/c #f)
  connection : connection?
  stmt : statement?
  arg : any/c
procedure
(in-query  connection                    
           stmt                          
           arg ...                       
          [#:fetch fetch-size            
           #:group groupings             
           #:group-mode group-mode]) -> sequence?
  connection : connection?
  stmt : statement?
  arg : any/c
  fetch-size : (or/c exact-positive-integer? +inf.0) = +inf.0
  groupings : (let* ([field/c (or/c string? exact-nonnegative-integer?)]
                     [grouping/c (or/c field/c (vectorof field/c))])
                (or/c grouping/c (listof grouping/c)))
            = null
  group-mode : (listof (or/c 'preserve-null 'list)) = null
struct
(struct simple-result (info))
  info : (listof (cons/c symbol? any/c))
struct
(struct rows-result (headers rows))
  headers : (listof any/c)
  rows : (listof vector?)
procedure
(query connection stmt arg ...)
 -> (or/c simple-result? rows-result?)
  connection : connection?
  stmt : statement?
  arg : any/c
procedure
(group-rows  result                        
             #:group groupings             
            [#:group-mode group-mode]) -> rows-result?
  result : rows-result?
  groupings : (let* ([field/c (or/c string? exact-nonnegative-integer?)]
                     [grouping/c (or/c field/c (vectorof field/c))])
                (or/c grouping/c (listof grouping/c)))
  group-mode : (listof (or/c 'preserve-null 'list)) = null
procedure
(rows->dict  result                        
             #:key key-field/s             
             #:value value-field/s         
            [#:value-mode value-mode]) -> dict?
  result : rows-result?
  key-field/s : (let ([field/c (or/c string? exact-nonnegative-integer?)])
                  (or/c field/c (vectorof field/c)))
  value-field/s : (let ([field/c (or/c string? exact-nonnegative-integer?)])
                    (or/c field/c (vectorof field/c)))
  value-mode : (listof (or/c 'list 'preserve-null)) = null
procedure
(prepare connection stmt) -> prepared-statement?
  connection : connection?
  stmt : (or/c string? virtual-statement?)
procedure
(prepared-statement? x) -> boolean?
  x : any/c
procedure
(prepared-statement-parameter-types pst)
 -> (listof (list/c boolean? (or/c symbol? #f) any/c))
  pst : prepared-statement?
procedure
(prepared-statement-result-types pst)
 -> (listof (list/c boolean? (or/c symbol? #f) any/c))
  pst : prepared-statement?
procedure
(bind-prepared-statement pst params) -> statement-binding?
  pst : prepared-statement?
  params : (listof any/c)
procedure
(statement-binding? x) -> boolean?
  x : any/c
procedure
(virtual-statement gen) -> virtual-statement?
  gen : (or/c string? (-> dbsystem? string?))
procedure
(virtual-statement? x) -> boolean?
  x : any/c
procedure
(start-transaction  c                               
                   [#:isolation isolation-level     
                    #:option option])           -> void?
  c : connection?
  isolation-level : (or/c 'serializable     = #f
                          'repeatable-read
                          'read-committed
                          'read-uncommitted
                          #f)
  option : any/c = #f
procedure
(commit-transaction c) -> void?
  c : connection?
procedure
(rollback-transaction c) -> void?
  c : connection?
procedure
(in-transaction? c) -> boolean?
  c : connection?
procedure
(needs-rollback? c) -> boolean?
  c : connection?
procedure
(call-with-transaction  c                               
                        proc                            
                       [#:isolation isolation-level     
                        #:option option])           -> any
  c : connection?
  proc : (-> any)
  isolation-level : (or/c 'serializable     = #f
                          'repeatable-read
                          'read-committed
                          'read-uncommitted
                          #f)
  option : any/c = #f
struct
(struct exn:fail:sql exn:fail (sqlstate info)
    #:extra-constructor-name make-exn:fail:sql)
  sqlstate : (or/c string? symbol?)
  info : (listof (cons/c symbol? any/c))
procedure
(list-tables c [#:schema schema]) -> (listof string?)
  c : connection?
  schema : (or/c 'search-or-current 'search 'current)
         = 'search-or-current
procedure
(table-exists?  c                                       
                table-name                              
               [#:schema schema                         
                #:case-sensitive? case-sensitive?]) -> boolean?
  c : connection?
  table-name : string?
  schema : (or/c 'search-or-current 'search 'current)
         = 'search-or-current
  case-sensitive? : any/c = #f
value
prop:statement : (struct-type-property/c
                  (-> any/c connection? statement?))
procedure
(prop:statement? v) -> boolean?
  v : any/c
value
sql-null : sql-null?
procedure
(sql-null? x) -> boolean?
  x : any/c
procedure
(sql-null->false x) -> any/c
  x : any/c
procedure
(false->sql-null x) -> any/c
  x : any/c
struct
(struct sql-date (year month day))
  year : exact-integer?
  month : (integer-in 0 12)
  day : (integer-in 0 31)
struct
(struct sql-time (hour minute second nanosecond tz))
  hour : exact-nonnegative-integer?
  minute : exact-nonnegative-integer?
  second : exact-nonnegative-integer?
  nanosecond : exact-nonnegative-integer?
  tz : (or/c exact-integer? #f)
struct
(struct sql-timestamp (year
                       month
                       day
                       hour
                       minute
                       second
                       nanosecond
                       tz))
  year : exact-nonnegative-integer?
  month : exact-nonnegative-integer?
  day : exact-nonnegative-integer?
  hour : exact-nonnegative-integer?
  minute : exact-nonnegative-integer?
  second : exact-nonnegative-integer?
  nanosecond : exact-nonnegative-integer?
  tz : (or/c exact-integer? #f)
struct
(struct sql-interval (years
                      months
                      days
                      hours
                      minutes
                      seconds
                      nanoseconds))
  years : exact-integer?
  months : exact-integer?
  days : exact-integer?
  hours : exact-integer?
  minutes : exact-integer?
  seconds : exact-integer?
  nanoseconds : exact-integer?
procedure
(sql-year-month-interval? x) -> boolean?
  x : any/c
procedure
(sql-day-time-interval? x) -> boolean?
  x : any/c
procedure
(sql-interval->sql-time interval [failure]) -> any
  interval : sql-interval?
  failure : any/c = (lambda () (error ....))
procedure
(sql-time->sql-interval time) -> sql-day-time-interval?
  time : sql-time?
procedure
(make-sql-bits len) -> sql-bits?
  len : exact-nonnegative-integer?
procedure
(sql-bits? v) -> boolean?
  v : any/c
procedure
(sql-bits-length b) -> exact-nonnegative-integer?
  b : sql-bits?
procedure
(sql-bits-ref b i) -> boolean?
  b : sql-bits?
  i : exact-nonnegative-integer?
procedure
(sql-bits-set! b i v) -> void?
  b : sql-bits?
  i : exact-nonnegative-integer?
  v : boolean?
procedure
(sql-bits->list b) -> (listof boolean?)
  b : sql-bits?
procedure
(sql-bits->string b) -> string?
  b : sql-bits?
procedure
(list->sql-bits lst) -> sql-bits?
  lst : (listof boolean?)
procedure
(string->sql-bits s) -> sql-bits?
  s : string?
procedure
(sql-datetime->srfi-date t) -> srfi:date?
  t : (or/c sql-date? sql-time? sql-timestamp?)
procedure
(srfi-date->sql-date d) -> sql-date?
  d : srfi:date?
procedure
(srfi-date->sql-time d) -> sql-time?
  d : srfi:date?
procedure
(srfi-date->sql-time-tz d) -> sql-time?
  d : srfi:date?
procedure
(srfi-date->sql-timestamp d) -> sql-timestamp?
  d : srfi:date?
procedure
(srfi-date->sql-timestamp-tz d) -> sql-timestamp?
  d : srfi:date?
procedure
(sql-day-time-interval->seconds interval) -> rational?
  interval : sql-day-time-interval?
struct
(struct point (x y))
  x : real?
  y : real?
struct
(struct line-string (points))
  points : (listof point?)
struct
(struct polygon (exterior interiors))
  exterior : linear-ring?
  interiors : (listof linear-ring?)
struct
(struct multi-point (elements))
  elements : (listof point?)
struct
(struct multi-line-string (elements))
  elements : (listof line-string?)
struct
(struct multi-polygon (elements))
  elements : (listof polygon?)
struct
(struct geometry-collection (elements))
  elements : (listof geometry2d?)
procedure
(geometry2d? x) -> boolean?
  x : any/c
procedure
(line? x) -> boolean?
  x : any/c
procedure
(linear-ring? x) -> boolean?
  x : any/c
procedure
(geometry->wkb g #:big-endian? big-endian?) -> bytes?
  g : geometry2d?
  big-endian? : (system-big-endian?)
procedure
(wkb->geometry b) -> geometry2d?
  b : bytes?
struct
(struct pg-array (dimensions
                  dimension-lengths
                  dimension-lower-bounds
                  contents))
  dimensions : exact-nonnegative-integer?
  dimension-lengths : (listof exact-positive-integer?)
  dimension-lower-bounds : (listof exact-integer?)
  contents : vector?
procedure
(pg-array-ref arr index ...+) -> any/c
  arr : pg-array?
  index : exact-integer?
procedure
(pg-array->list arr) -> list?
  arr : pg-array?
procedure
(list->pg-array lst) -> pg-array?
  lst : list?
struct
(struct pg-empty-range ())
struct
(struct pg-range (lb includes-lb? ub includes-ub?))
  lb : range-type
  includes-lb? : boolean?
  ub : range-type
  includes-ub? : boolean?
procedure
(pg-range-or-empty? v) -> boolean?
  v : any/c
procedure
(uuid? v) -> boolean?
  v : any/c
struct
(struct pg-box (ne sw))
  ne : point?
  sw : point?
struct
(struct pg-path (closed? points))
  closed? : boolean?
  points : (listof point?)
struct
(struct pg-circle (center radius))
  center : point?
  radius : real?
procedure
(pg-custom-type  typeid                     
                 typename                   
                [basetype                   
                 #:recv recv-convert        
                 #:send send-convert        
                 #:array array-typeid]) -> pg-custom-type?
  typeid : exact-nonnegative-integer?
  typename : symbol?
  basetype : (or/c #f symbol? exact-nonnegative-integer?) = #f
  recv-convert : (or/c #f (-> any/c any/c)) = values
  send-convert : (or/c #f (-> any/c any/c)) = values
  array-typeid : (or/c #f exact-nonnegative-integer?) = #f
procedure
(pg-custom-type? v) -> boolean?
  v : any/c
interface
postgresql-connection<%> : interface?
method
(send a-postgresql-connection add-custom-types types) -> void?
  types : (listof pg-custom-type?)
method
(send a-postgresql-connection async-message-evt) -> evt?
method
(send a-postgresql-connection cancel) -> void?
procedure
(mysql-json? v) -> boolean?
  v : any/c
procedure
(mysql-json v) -> mysql-json?
  v : jsexpr?
parameter
(cassandra-consistency)
 -> (or/c 'any 'one 'two 'three 'quorum 'all 'local-quorum
          'each-quorum 'serial 'local-serial 'local-one)
(cassandra-consistency consistency) -> void?
  consistency : (or/c 'any 'one 'two 'three 'quorum 'all 'local-quorum
                      'each-quorum 'serial 'local-serial 'local-one)
procedure
(high-latency-connection  connection                      
                          latency                         
                         [#:sleep-atomic? sleep-atomic?]) 
 -> connection?
  connection : connection?
  latency : (>=/c 0)
  sleep-atomic? : any/c = #f
procedure
(sqlite3-load-extension c extension-path) -> void?
  c : connection?
  extension-path : path-string?
procedure
(sqlite3-create-function c name arity func) -> void?
  c : connection?
  name : (or/c string? symbol?)
  arity : (or/c exact-nonnegative-integer? #f)
  func : procedure?
procedure
(sqlite3-create-aggregate c               
                          name            
                          arity           
                          init-acc        
                          step-func       
                          final-func) -> void?
  c : connection?
  name : (or/c string? symbol?)
  arity : (or/c exact-nonnegative-integer? #f)
  init-acc : any/c
  step-func : procedure?
  final-func : procedure?
