14128
#hash(((def ((lib "db/base.rkt") prop:statement)) . ((18446 . 3))) ((def ((lib "db/util/postgresql.rkt") struct:pg-range)) . ((23454 . 6))) ((def ((lib "db/base.rkt") connection-pool?)) . ((5907 . 3))) ((def ((lib "db/base.rkt") sql-year-month-interval?)) . ((20209 . 3))) ((def ((lib "db/base.rkt") query-list)) . ((12712 . 5))) ((def ((lib "db/base.rkt") exn:fail:sql?)) . ((17626 . 5))) ((def ((lib "db/util/postgresql.rkt") struct:pg-empty-range)) . ((23420 . 2))) ((def ((lib "db/util/geometry.rkt") multi-point)) . ((22160 . 3))) ((def ((lib "db/base.rkt") bind-prepared-statement)) . ((16095 . 4))) ((def ((lib "db/util/geometry.rkt") point?)) . ((21917 . 4))) ((def ((lib "db/util/geometry.rkt") geometry-collection?)) . ((22395 . 3))) ((def ((lib "db/util/geometry.rkt") linear-ring?)) . ((22589 . 3))) ((def ((lib "db/main.rkt") odbc-data-sources)) . ((5349 . 2))) ((def ((lib "db/main.rkt") sqlite3-connect)) . ((2931 . 13))) ((def ((lib "db/util/postgresql.rkt") list->pg-array)) . ((23355 . 3))) ((def ((lib "db/util/geometry.rkt") polygon)) . ((22046 . 4))) ((def ((lib "db/base.rkt") sql-timestamp)) . ((19156 . 17))) ((def ((lib "db/base.rkt") struct:data-source)) . ((6321 . 6))) ((def ((lib "db/base.rkt") data-source?)) . ((6321 . 6))) ((def ((lib "db/util/postgresql.rkt") pg-range)) . ((23454 . 6))) ((def ((lib "db/base.rkt") sql-time-minute)) . ((18888 . 7))) ((def ((lib "db/util/geometry.rkt") multi-line-string-elements)) . ((22233 . 3))) ((def ((lib "db/util/postgresql.rkt") pg-box-sw)) . ((23681 . 4))) ((def ((lib "db/base.rkt") make-sql-bits)) . ((20589 . 3))) ((def ((lib "db/base.rkt") sql-timestamp-second)) . ((19156 . 17))) ((def ((lib "db/base.rkt") sql-date-year)) . ((18752 . 5))) ((def ((lib "db/util/geometry.rkt") multi-line-string?)) . ((22233 . 3))) ((def ((lib "db/base.rkt") sql-time-hour)) . ((18888 . 7))) ((def ((lib "db/util/postgresql.rkt") pg-array-dimension-lower-bounds)) . ((22842 . 9))) ((def ((lib "db/base.rkt") sql-timestamp-tz)) . ((19156 . 17))) ((def ((lib "db/util/postgresql.rkt") struct:pg-circle)) . ((23846 . 4))) ((def ((lib "db/base.rkt") sql-timestamp-month)) . ((19156 . 17))) ((def ((lib "db/base.rkt") exn:fail:sql)) . ((17626 . 5))) ((def ((lib "db/base.rkt") query-value)) . ((13137 . 5))) ((def ((lib "db/base.rkt") odbc-data-source)) . ((10370 . 17))) ((def ((lib "db/base.rkt") exn:fail:sql-info)) . ((17626 . 5))) ((def ((lib "db/util/postgresql.rkt") pg-array-dimensions)) . ((22842 . 9))) ((def ((lib "db/base.rkt") sql-time-nanosecond)) . ((18888 . 7))) ((def ((lib "db/util/postgresql.rkt") pg-circle-radius)) . ((23846 . 4))) ((def ((lib "db/util/geometry.rkt") multi-point?)) . ((22160 . 3))) ((def ((lib "db/util/postgresql.rkt") pg-array-contents)) . ((22842 . 9))) ((def ((lib "db/util/postgresql.rkt") struct:pg-path)) . ((23748 . 4))) ((def ((lib "db/base.rkt") sql-null->false)) . ((18636 . 3))) ((def ((lib "db/base.rkt") disconnect)) . ((11405 . 3))) ((def ((lib "db/base.rkt") prepared-statement-result-types)) . ((15951 . 4))) ((def ((lib "db/base.rkt") mysql-data-source)) . ((8779 . 18))) ((def ((lib "db/base.rkt") list->sql-bits)) . ((21175 . 3))) ((def ((lib "db/base.rkt") sql-interval-nanoseconds)) . ((19755 . 15))) ((def ((lib "db/base.rkt") needs-rollback?)) . ((17070 . 3))) ((def ((lib "db/base.rkt") simple-result-info)) . ((14189 . 3))) ((def ((lib "db/util/testing.rkt") high-latency-connection)) . ((23931 . 8))) ((def ((lib "db/base.rkt") set-data-source-args!)) . ((6321 . 6))) ((def ((lib "db/base.rkt") sql-null?)) . ((18581 . 3))) ((def ((lib "db/base.rkt") query-exec)) . ((11916 . 5))) ((def ((lib "db/base.rkt") dbsystem-name)) . ((11707 . 3))) ((def ((lib "db/util/geometry.rkt") geometry-collection)) . ((22395 . 3))) ((def ((lib "db/util/postgresql.rkt") pg-path)) . ((23748 . 4))) ((def ((lib "db/base.rkt") connection-pool-lease)) . ((5969 . 4))) ((def ((lib "db/util/postgresql.rkt") struct:pg-box)) . ((23681 . 4))) ((def ((lib "db/base.rkt") sql-day-time-interval?)) . ((20279 . 3))) ((def ((lib "db/base.rkt") sql-interval-years)) . ((19755 . 15))) ((def ((lib "db/base.rkt") statement-binding?)) . ((16231 . 3))) ((def ((lib "db/util/datetime.rkt") srfi-date->sql-date)) . ((21428 . 3))) ((def ((lib "db/util/geometry.rkt") geometry->wkb)) . ((22647 . 4))) ((def ((lib "db/main.rkt") odbc-connect)) . ((3584 . 18))) ((def ((lib "db/base.rkt") statement?)) . ((11860 . 3))) ((def ((lib "db/base.rkt") data-source-args)) . ((6321 . 6))) ((def ((lib "db/main.rkt") postgresql-guess-socket-path)) . ((1694 . 2))) ((def ((lib "db/util/postgresql.rkt") struct:pg-array)) . ((22842 . 9))) ((def ((lib "db/base.rkt") sql-date-month)) . ((18752 . 5))) ((def ((lib "db/base.rkt") get-dsn)) . ((6977 . 6))) ((def ((lib "db/util/datetime.rkt") srfi-date->sql-timestamp)) . ((21644 . 3))) ((def ((lib "db/base.rkt") data-source)) . ((6321 . 6))) ((def ((lib "db/util/geometry.rkt") polygon?)) . ((22046 . 4))) ((def ((lib "db/util/postgresql.rkt") pg-box-ne)) . ((23681 . 4))) ((def ((lib "db/base.rkt") sql-time)) . ((18888 . 7))) ((def ((lib "db/util/geometry.rkt") struct:geometry-collection)) . ((22395 . 3))) ((def ((lib "db/main.rkt") odbc-drivers)) . ((5421 . 2))) ((def ((lib "db/util/geometry.rkt") line-string?)) . ((21977 . 3))) ((def ((lib "db/base.rkt") query)) . ((14351 . 6))) ((def ((lib "db/base.rkt") virtual-statement)) . ((16295 . 3))) ((def ((lib "db/base.rkt") sql-interval-months)) . ((19755 . 15))) ((def ((lib "db/main.rkt") mysql-connect)) . ((1753 . 22))) ((def ((lib "db/util/datetime.rkt") srfi-date->sql-timestamp-tz)) . ((21725 . 3))) ((def ((lib "db/base.rkt") rows-result-rows)) . ((14245 . 4))) ((def ((lib "db/base.rkt") sql-interval)) . ((19755 . 15))) ((def ((lib "db/base.rkt") exn:fail:sql-sqlstate)) . ((17626 . 5))) ((def ((lib "db/util/postgresql.rkt") pg-circle-center)) . ((23846 . 4))) ((def ((lib "db/util/postgresql.rkt") pg-path?)) . ((23748 . 4))) ((def ((lib "db/util/postgresql.rkt") pg-box)) . ((23681 . 4))) ((def ((lib "db/base.rkt") sql-timestamp-day)) . ((19156 . 17))) ((def ((lib "db/util/geometry.rkt") polygon-interior)) . ((22046 . 4))) ((def ((lib "db/base.rkt") rows-result-headers)) . ((14245 . 4))) ((def ((lib "db/util/postgresql.rkt") pg-array-ref)) . ((23185 . 4))) ((def ((lib "db/base.rkt") list-tables)) . ((17810 . 5))) ((def ((lib "db/util/geometry.rkt") point-y)) . ((21917 . 4))) ((def ((lib "db/base.rkt") sqlite3-data-source)) . ((9658 . 14))) ((def ((lib "db/util/geometry.rkt") line?)) . ((22538 . 3))) ((def ((lib "db/base.rkt") in-transaction?)) . ((17003 . 3))) ((def ((lib "db/base.rkt") sql-time->sql-interval)) . ((20497 . 3))) ((def ((lib "db/util/postgresql.rkt") pg-circle)) . ((23846 . 4))) ((def ((lib "db/base.rkt") sql-interval-seconds)) . ((19755 . 15))) ((def ((lib "db/base.rkt") sql-null)) . ((18552 . 2))) ((def ((lib "db/base.rkt") start-transaction)) . ((16472 . 9))) ((def ((lib "db/base.rkt") struct:simple-result)) . ((14189 . 3))) ((def ((lib "db/util/postgresql.rkt") pg-range-includes-ub?)) . ((23454 . 6))) ((def ((lib "db/util/postgresql.rkt") pg-box?)) . ((23681 . 4))) ((def ((lib "db/util/geometry.rkt") multi-line-string)) . ((22233 . 3))) ((def ((lib "db/base.rkt") rows->dict)) . ((15000 . 11))) ((def ((lib "db/base.rkt") dbsystem?)) . ((11652 . 3))) ((def ((lib "db/util/geometry.rkt") point)) . ((21917 . 4))) ((def ((lib "db/base.rkt") kill-safe-connection)) . ((6246 . 3))) ((def ((lib "db/base.rkt") sql-bits-length)) . ((20729 . 3))) ((def ((lib "db/base.rkt") set-data-source-extensions!)) . ((6321 . 6))) ((def ((lib "db/base.rkt") query-row)) . ((12847 . 5))) ((def ((lib "db/base.rkt") connection-dbsystem)) . ((11562 . 3))) ((def ((lib "db/main.rkt") odbc-driver-connect)) . ((4551 . 14))) ((def ((lib "db/base.rkt") struct:sql-date)) . ((18752 . 5))) ((def ((lib "db/base.rkt") struct:sql-interval)) . ((19755 . 15))) ((def ((lib "db/util/postgresql.rkt") pg-range-ub)) . ((23454 . 6))) ((def ((lib "db/main.rkt") mysql-guess-socket-path)) . ((2877 . 2))) ((def ((lib "db/base.rkt") connected?)) . ((11482 . 3))) ((def ((lib "db/base.rkt") sql-timestamp-year)) . ((19156 . 17))) ((def ((lib "db/base.rkt") in-query)) . ((13427 . 16))) ((def ((lib "db/base.rkt") sql-date-day)) . ((18752 . 5))) ((def ((lib "db/base.rkt") set-data-source-connector!)) . ((6321 . 6))) ((def ((lib "db/util/postgresql.rkt") pg-range?)) . ((23454 . 6))) ((def ((lib "db/base.rkt") sql-date?)) . ((18752 . 5))) ((def ((lib "db/base.rkt") connection?)) . ((11348 . 3))) ((def ((lib "db/main.rkt") postgresql-connect)) . ((0 . 29))) ((def ((lib "db/util/postgresql.rkt") pg-range-includes-lb?)) . ((23454 . 6))) ((def ((lib "db/base.rkt") table-exists?)) . ((17997 . 10))) ((def ((lib "db/base.rkt") virtual-statement?)) . ((16408 . 3))) ((def ((lib "db/base.rkt") sql-interval?)) . ((19755 . 15))) ((def ((lib "db/util/postgresql.rkt") pg-array->list)) . ((23290 . 3))) ((def ((lib "db/base.rkt") current-dsn-file)) . ((6874 . 4))) ((def ((lib "db/base.rkt") struct:sql-time)) . ((18888 . 7))) ((def ((lib "db/base.rkt") rows-result)) . ((14245 . 4))) ((def ((lib "db/base.rkt") struct:exn:fail:sql)) . ((17626 . 5))) ((def ((lib "db/util/postgresql.rkt") pg-array-dimension-lengths)) . ((22842 . 9))) ((def ((lib "db/util/geometry.rkt") geometry2d?)) . ((22481 . 3))) ((def ((lib "db/util/postgresql.rkt") pg-path-points)) . ((23748 . 4))) ((def ((lib "db/base.rkt") sql-timestamp?)) . ((19156 . 17))) ((def ((lib "db/util/geometry.rkt") struct:polygon)) . ((22046 . 4))) ((def ((lib "db/base.rkt") make-exn:fail:sql)) . ((17626 . 5))) ((def ((lib "db/util/geometry.rkt") multi-polygon-elements)) . ((22318 . 3))) ((def ((lib "db/base.rkt") sql-time-tz)) . ((18888 . 7))) ((def ((lib "db/util/postgresql.rkt") pg-circle?)) . ((23846 . 4))) ((def ((lib "db/base.rkt") query-maybe-row)) . ((12983 . 5))) ((def ((lib "db/util/geometry.rkt") polygon-exterior)) . ((22046 . 4))) ((def ((lib "db/util/postgresql.rkt") pg-range-or-empty?)) . ((23617 . 3))) ((def ((lib "db/base.rkt") commit-transaction)) . ((16867 . 3))) ((def ((lib "db/util/geometry.rkt") struct:multi-line-string)) . ((22233 . 3))) ((def ((lib "db/base.rkt") dsn-connect)) . ((6535 . 9))) ((def ((lib "db/base.rkt") connection-pool)) . ((5486 . 8))) ((def ((lib "db/base.rkt") rollback-transaction)) . ((16934 . 3))) ((def ((lib "db/util/postgresql.rkt") pg-array)) . ((22842 . 9))) ((def ((lib "db/util/geometry.rkt") point-x)) . ((21917 . 4))) ((def ((lib "db/base.rkt") simple-result)) . ((14189 . 3))) ((def ((lib "db/util/datetime.rkt") srfi-date->sql-time-tz)) . ((21570 . 3))) ((def ((lib "db/util/geometry.rkt") struct:line-string)) . ((21977 . 3))) ((def ((lib "db/base.rkt") sql-interval-hours)) . ((19755 . 15))) ((def ((lib "db/base.rkt") false->sql-null)) . ((18694 . 3))) ((def ((lib "db/base.rkt") prepared-statement?)) . ((15739 . 3))) ((def ((lib "db/base.rkt") virtual-connection)) . ((6129 . 3))) ((def ((lib "db/util/postgresql.rkt") pg-empty-range)) . ((23420 . 2))) ((def ((lib "db/base.rkt") query-maybe-value)) . ((13273 . 5))) ((def ((lib "db/base.rkt") dbsystem-supported-types)) . ((11773 . 3))) ((def ((lib "db/base.rkt") sql-bits->list)) . ((21036 . 3))) ((def ((lib "db/base.rkt") sql-interval->sql-time)) . ((20347 . 4))) ((def ((lib "db/util/postgresql.rkt") pg-array?)) . ((22842 . 9))) ((def ((lib "db/base.rkt") sql-bits-set!)) . ((20914 . 5))) ((def ((lib "db/util/geometry.rkt") geometry-collection-elements)) . ((22395 . 3))) ((def ((lib "db/util/geometry.rkt") struct:multi-point)) . ((22160 . 3))) ((def ((lib "db/base.rkt") sql-bits-ref)) . ((20812 . 4))) ((def ((lib "db/base.rkt") struct:sql-timestamp)) . ((19156 . 17))) ((def ((lib "db/util/datetime.rkt") sql-datetime->srfi-date)) . ((21318 . 3))) ((def ((lib "db/base.rkt") data-source-extensions)) . ((6321 . 6))) ((def ((lib "db/util/geometry.rkt") multi-polygon)) . ((22318 . 3))) ((def ((lib "db/base.rkt") sql-date)) . ((18752 . 5))) ((def ((lib "db/base.rkt") data-source-connector)) . ((6321 . 6))) ((def ((lib "db/util/datetime.rkt") srfi-date->sql-time)) . ((21499 . 3))) ((def ((lib "db/base.rkt") sql-bits->string)) . ((21110 . 3))) ((def ((lib "db/base.rkt") sql-timestamp-minute)) . ((19156 . 17))) ((def ((lib "db/base.rkt") sql-time?)) . ((18888 . 7))) ((def ((lib "db/util/postgresql.rkt") pg-path-closed?)) . ((23748 . 4))) ((def ((lib "db/base.rkt") sql-timestamp-nanosecond)) . ((19156 . 17))) ((def ((lib "db/util/geometry.rkt") struct:point)) . ((21917 . 4))) ((def ((lib "db/util/geometry.rkt") line-string-points)) . ((21977 . 3))) ((def ((lib "db/base.rkt") rows-result?)) . ((14245 . 4))) ((def ((lib "db/util/geometry.rkt") line-string)) . ((21977 . 3))) ((def ((lib "db/base.rkt") sql-timestamp-hour)) . ((19156 . 17))) ((def ((lib "db/util/geometry.rkt") struct:multi-polygon)) . ((22318 . 3))) ((def ((lib "db/base.rkt") prepare)) . ((15596 . 4))) ((def ((lib "db/base.rkt") postgresql-data-source)) . ((7344 . 23))) ((def ((lib "db/base.rkt") struct:rows-result)) . ((14245 . 4))) ((def ((lib "db/base.rkt") sql-time-second)) . ((18888 . 7))) ((def ((lib "db/util/datetime.rkt") sql-day-time-interval->seconds)) . ((21809 . 3))) ((def ((lib "db/util/postgresql.rkt") pg-range-lb)) . ((23454 . 6))) ((def ((lib "db/util/geometry.rkt") wkb->geometry)) . ((22779 . 3))) ((def ((lib "db/base.rkt") call-with-transaction)) . ((17137 . 11))) ((def ((lib "db/base.rkt") prepared-statement-parameter-types)) . ((15804 . 4))) ((def ((lib "db/util/geometry.rkt") multi-point-elements)) . ((22160 . 3))) ((def ((lib "db/util/postgresql.rkt") pg-empty-range?)) . ((23420 . 2))) ((def ((lib "db/base.rkt") sql-bits?)) . ((20674 . 3))) ((def ((lib "db/base.rkt") sql-interval-minutes)) . ((19755 . 15))) ((def ((lib "db/util/geometry.rkt") multi-polygon?)) . ((22318 . 3))) ((def ((lib "db/base.rkt") group-rows)) . ((14513 . 9))) ((def ((lib "db/base.rkt") query-rows)) . ((12051 . 14))) ((def ((lib "db/base.rkt") simple-result?)) . ((14189 . 3))) ((def ((lib "db/base.rkt") sql-interval-days)) . ((19755 . 15))) ((def ((lib "db/base.rkt") put-dsn)) . ((7171 . 5))) ((def ((lib "db/base.rkt") string->sql-bits)) . ((21253 . 3))))
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? : boolean? = #f
  ssl : (or/c 'yes 'optional 'no) = 'no
  ssl-context : ssl-client-context?
              = (ssl-make-client-context 'sslv3)
  notice-handler : (or/c 'output 'error output-port? = void
                         (-> string? string? any))
  notification-handler : (or/c 'output 'error output-port?
                               (-> string? any))
                       = void
procedure
(postgresql-guess-socket-path) -> path-string?
procedure
(mysql-connect  #:user user                           
               [#:database database                   
                #:server server                       
                #:port port                           
                #:socket socket                       
                #: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? #f) = #f
  ssl : (or/c 'yes 'optional 'no) = 'no
  ssl-context : ssl-client-context?
              = (ssl-make-client-context 'tls)
  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
(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 : boolean? = #f
procedure
(odbc-connect                                                    
               #:dsn dsn                                         
              [#:user user                                       
               #:password password                               
               #:notice-handler notice-handler                   
               #:strict-parameter-types? strict-parameter-types? 
               #:character-mode character-mode                   
               #: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
  use-place : boolean? = #f
procedure
(odbc-driver-connect                                                    
                      connection-string                                 
                     [#:notice-handler notice-handler                   
                      #:strict-parameter-types? strict-parameter-types? 
                      #:character-mode character-mode                   
                      #: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
  use-place : boolean? = #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]) 
 -> 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
procedure
(connection-pool? x) -> boolean?
  x : any/c
procedure
(connection-pool-lease pool [release]) -> connection?
  pool : connection-pool?
  release : (or/c evt? custodian?) = (current-thread)
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)
  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
(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                                         
                   #:database database                               
                   #:user user                                       
                   #:password password                               
                   #:notice-handler notice-handler                   
                   #:strict-parameter-types? strict-parameter-types? 
                   #:character-mode character-mode])                 
 -> data-source?
  dsn : (or/c string? #f) = absent
  database : (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
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 : 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]) -> void?
  c : connection?
  isolation-level : (or/c 'serializable     = #f
                          'repeatable-read
                          'read-committed
                          'read-uncommitted
                          #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]) -> any
  c : connection?
  proc : (-> any)
  isolation-level : (or/c 'serializable     = #f
                          'repeatable-read
                          'read-committed
                          'read-uncommitted
                          #f)
struct
(struct exn:fail:sql exn:fail (sqlstate info)
        #:extra-constructor-name make-exn:fail:sql)
  sqlstate : string?
  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?))
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 interior))
  exterior : linear-ring?
  interior : (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
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
(high-latency-connection  connection                      
                          latency                         
                         [#:sleep-atomic? sleep-atomic?]) 
 -> connection?
  connection : connection?
  latency : (>=/c 0)
  sleep-atomic? : any/c = #f
