Merge pull request #25 from seancorfield/issue-24

Fix #24 by adding type hints at the top level
This commit is contained in:
Sean Corfield 2019-05-29 13:55:20 -07:00 committed by GitHub
commit 13ed4eb6a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 54 additions and 17 deletions

View file

@ -23,4 +23,5 @@ Only accretive/fixative changes will be made from now on (Beta 1).
The following changes have been committed to the **master** branch and will be in the next release:
* Fix #24 by adding return type hints to `next.jdbc` functions.
* Fix #22 by adding `next.jdbc.optional` with four map builders that omit `NULL` columns from the row hash maps.

View file

@ -87,6 +87,7 @@
* `redshift` -- `com.amazon.redshift.jdbc.Driver` -- no default port
* `sqlite` -- `org.sqlite.JDBC`
* `sqlserver`, `mssql` -- `com.microsoft.sqlserver.jdbc.SQLServerDriver` -- `1433`"
^javax.sql.DataSource
[spec]
(p/get-datasource spec))
@ -105,9 +106,11 @@
If you call `get-connection` on anything else, it will call `get-datasource`
first to try to get a `DataSource`, and then call `get-connection` on that."
([spec]
(^java.sql.Connection
[spec]
(p/get-connection spec {}))
([spec opts]
(^java.sql.Connection
[spec opts]
(p/get-connection spec opts)))
(defn prepare
@ -123,9 +126,11 @@
See the list of options above (in the namespace docstring) for what can
be passed to prepare."
([connection sql-params]
(^java.sql.PreparedStatement
[connection sql-params]
(p/prepare connection sql-params {}))
([connection sql-params opts]
(^java.sql.PreparedStatement
[connection sql-params opts]
(p/prepare connection sql-params opts)))
(defn plan
@ -135,12 +140,15 @@
Can be called on a `PreparedStatement`, a `Connection`, or something that can
produce a `Connection` via a `DataSource`."
([stmt]
(^clojure.lang.IReduceInit
[stmt]
(p/-execute stmt [] {}))
([connectable sql-params]
(^clojure.lang.IReduceInit
[connectable sql-params]
(p/-execute connectable sql-params
{:next.jdbc/sql-params sql-params}))
([connectable sql-params opts]
(^clojure.lang.IReduceInit
[connectable sql-params opts]
(p/-execute connectable sql-params
(assoc opts :next.jdbc/sql-params sql-params))))

View file

@ -27,7 +27,7 @@
Implementations are provided for `DataSource`, `PreparedStatement`, and
`Object`, on the assumption that an `Object` can be turned into a `DataSource`."
(get-connection ^java.lang.AutoCloseable [this opts]
(get-connection ^java.sql.Connection [this opts]
"Produce a new `java.sql.Connection` for use with `with-open`."))
(defprotocol Executable

View file

@ -6,6 +6,8 @@
from Clojure data."
(:require [clojure.string :as str]))
(set! *warn-on-reflection* true)
(defn ansi "ANSI \"quoting\"" [s] (str \" s \"))
(defn mysql "MySQL `quoting`" [s] (str \` s \`))

View file

@ -19,6 +19,8 @@
(:import (java.sql Connection PreparedStatement)
(javax.sql DataSource)))
(set! *warn-on-reflection* true)
(s/def ::dbtype string?)
(s/def ::dbname string?)
(s/def ::classname string?)

View file

@ -22,6 +22,8 @@
(:require [clojure.string :as str]
[next.jdbc :refer [execute! execute-one!]]))
(set! *warn-on-reflection* true)
(defn- by-keys
"Given a hash map of column names and values and a clause type
(`:set`, `:where`), return a vector of a SQL clause and its parameters.

View file

@ -11,6 +11,8 @@
[next.jdbc.connection :as c]
[next.jdbc.protocols :as p]))
(set! *warn-on-reflection* true)
(def ^:private db-name "clojure_test")
(deftest test-aliases-and-defaults

View file

@ -8,6 +8,8 @@
[next.jdbc.protocols :as p]
[next.jdbc.test-fixtures :refer [with-test-db ds]]))
(set! *warn-on-reflection* true)
(use-fixtures :once with-test-db)
(deftest test-map-row-builder

View file

@ -9,3 +9,5 @@
actually work they way they're supposed to!"
(:require [clojure.test :refer [deftest is testing]]
[next.jdbc.prepare :refer :all]))
(set! *warn-on-reflection* true)

View file

@ -5,3 +5,5 @@
at this level tho'..."
(:require [clojure.test :refer [deftest is testing]]
[next.jdbc.protocols :refer :all]))
(set! *warn-on-reflection* true)

View file

@ -7,6 +7,8 @@
[next.jdbc.quoted :refer [ansi mysql sql-server oracle postgres
schema]]))
(set! *warn-on-reflection* true)
(deftest basic-quoting
(are [quote-fn quoted] (= (quote-fn "x") quoted)
ansi "\"x\""

View file

@ -14,6 +14,8 @@
[next.jdbc.test-fixtures :refer [with-test-db ds]])
(:import (java.sql ResultSet ResultSetMetaData)))
(set! *warn-on-reflection* true)
(use-fixtures :once with-test-db)
(deftest test-datafy-nav

View file

@ -7,3 +7,5 @@
next.jdbc and next.jdbc.sql namespaces."
(:require [clojure.test :refer [deftest is testing]]
[next.jdbc.specs :refer :all]))
(set! *warn-on-reflection* true)

View file

@ -11,6 +11,8 @@
[next.jdbc.test-fixtures
:refer [with-test-db ds derby? sqlite?]]))
(set! *warn-on-reflection* true)
(use-fixtures :once with-test-db)
(specs/instrument)

View file

@ -5,6 +5,8 @@
(:require [next.jdbc :as jdbc]
[next.jdbc.sql :as sql]))
(set! *warn-on-reflection* true)
(def ^:private test-derby {:dbtype "derby" :dbname "clojure_test_derby" :create true})
(def ^:private test-h2-mem {:dbtype "h2:mem" :dbname "clojure_test_h2_mem"})

View file

@ -4,3 +4,5 @@
"Stub test namespace for transaction handling."
(:require [clojure.test :refer [deftest is testing]]
[next.jdbc.transaction :refer :all]))
(set! *warn-on-reflection* true)

View file

@ -10,6 +10,8 @@
[next.jdbc.specs :as specs])
(:import (java.sql ResultSet ResultSetMetaData)))
(set! *warn-on-reflection* true)
(use-fixtures :once with-test-db)
(specs/instrument)