Skip to content

Commit

Permalink
0.6.2 Alpha 2 with updated clojure.spec support
Browse files Browse the repository at this point in the history
  • Loading branch information
seancorfield committed Jul 21, 2016
1 parent 38971fc commit 11b7cbe
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 17 deletions.
4 changes: 4 additions & 0 deletions CHANGES.md
@@ -1,3 +1,7 @@
Changes in 0.6.2-alpha2

* Updates to `clojure.spec` support to work properly with Clojure 1.9.0 Alpha 10.

Changes in 0.6.2-alpha1

* Experimental support for `clojure.spec` via the new `clojure.java.jdbc.spec` namespace. Requires Clojure 1.9.0 Alpha 8 (or later).
Expand Down
9 changes: 6 additions & 3 deletions README.md
Expand Up @@ -16,22 +16,22 @@ Additional documentation can be found in the [java.jdbc section of clojure-doc.o
Releases and Dependency Information
========================================

Latest stable release: 0.6.2-alpha1
Latest stable release: 0.6.2-alpha2

* [All Released Versions](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.clojure%22%20AND%20a%3A%22java.jdbc%22)

* [Development Snapshot Versions](https://oss.sonatype.org/index.html#nexus-search;gav~org.clojure~java.jdbc~~~)

[Leiningen](https://github.com/technomancy/leiningen) dependency information:
```clojure
[org.clojure/java.jdbc "0.6.2-alpha1"]
[org.clojure/java.jdbc "0.6.2-alpha2"]
```
[Maven](http://maven.apache.org/) dependency information:
```xml
<dependency>
<groupId>org.clojure</groupId>
<artifactId>java.jdbc</artifactId>
<version>0.6.2-alpha1</version>
<version>0.6.2-alpha2</version>
</dependency>
```
You will also need to add dependencies for the JDBC driver you intend to use. Here are links (to Maven Central) for each of the common database drivers that clojure.java.jdbc is known to be used with:
Expand Down Expand Up @@ -104,6 +104,9 @@ Developer Information
Change Log
====================

* Release 0.6.2-alpha2 on 2016-07-21
* Update `clojure.spec` support to work with Clojure 1.9.0 Alpha 10.

* Release 0.6.2-alpha1 on 2016-07-05
* Experimental support for `clojure.spec` via the new `clojure.java.jdbc.spec` namespace. Requires Clojure 1.9.0 Alpha 8 (or later).
* All options to all functions can now have defaults within the `db-spec` itself [JDBC-136](http://dev.clojure.org/jira/browse/JDBC-136).
Expand Down
24 changes: 12 additions & 12 deletions src/main/clojure/clojure/java/jdbc/spec.clj
Expand Up @@ -15,7 +15,7 @@
:doc "Optional specifications for use with Clojure 1.9 or later."}
clojure.java.jdbc.spec
(:require [clojure.spec :as s]
[clojure.java.jdbc :refer :all]))
[clojure.java.jdbc :as sql]))

;; basic java.sql types

Expand Down Expand Up @@ -82,23 +82,23 @@

;; quoted

(s/fdef get-connection
(s/fdef sql/get-connection
:args (s/cat :db-spec ::db-spec)
:ret ::connection)

;; result-set-seq

(s/fdef prepare-statement
(s/fdef sql/prepare-statement
:args (s/cat :con ::connection
:sql string?
:opts (s/? ::prepare-options))
:ret ::prepared-statement)

(s/fdef db-find-connection
(s/fdef sql/db-find-connection
:args (s/cat :db-spec ::db-spec)
:ret (s/nilable ::connection))

(s/fdef db-connection
(s/fdef sql/db-connection
:args (s/cat :db-spec ::db-spec)
:ret ::connection)

Expand All @@ -114,14 +114,14 @@

;; db-query-with-resultset

(s/fdef query
(s/fdef sql/query
:args (s/cat :db ::db-spec
:sql-params ::sql-params
:opts (s/? ::query-options))
;; because result-set-fn can return anything:
:ret any?)

(s/fdef find-by-keys
(s/fdef sql/find-by-keys
:args (s/cat :db ::db-spec
:table ::identifier
:columns (s/map-of ::identifier ::sql-value)
Expand All @@ -130,13 +130,13 @@

;; get-by-id

(s/fdef execute!
(s/fdef sql/execute!
:args (s/cat :db ::db-spec
:sql-params ::sql-params
:opts (s/? ::execute-options))
:ret ::execute-result)

(s/fdef delete!
(s/fdef sql/delete!
:args (s/cat :db ::db-spec
:table ::identifier
:where-clause (s/spec ::where-clause)
Expand All @@ -147,7 +147,7 @@

;; insert-multi!

(s/fdef update!
(s/fdef sql/update!
:args (s/cat :db ::db-spec
:table ::identifier
:set-map (s/map-of ::identifier ::sql-value)
Expand All @@ -157,13 +157,13 @@

(s/def ::column-spec (s/cat :col ::identifier :spec (s/* (s/or :kw keyword? :str string?))))

(s/fdef create-table-ddl
(s/fdef sql/create-table-ddl
:args (s/cat :table ::identifier
:specs (s/coll-of ::column-spec)
:opts (s/? ::create-options))
:ret string?)

(s/fdef drop-table-ddl
(s/fdef sql/drop-table-ddl
:args (s/cat :table ::identifier
:opts (s/? (s/keys :req-un [] :opt-un [::entities])))
:ret string?)
8 changes: 6 additions & 2 deletions src/test/clojure/clojure/java/test_jdbc.clj
Expand Up @@ -28,7 +28,8 @@
(try
(require 'clojure.java.jdbc.spec)
(require 'clojure.spec.test)
((resolve 'clojure.spec.test/instrument) 'clojure.java.jdbc)
(let [syms ((resolve 'clojure.spec.test/enumerate-namespace) 'clojure.java.jdbc)]
((resolve 'clojure.spec.test/instrument) syms))
(println "Instrumenting clojure.java.jdbc with clojure.spec")
(catch Exception _))

Expand Down Expand Up @@ -115,7 +116,7 @@
(doseq [table [:fruit :fruit2 :veggies :veggies2]]
(try
(sql/db-do-commands db (sql/drop-table-ddl table))
(catch Exception _
(catch java.sql.SQLException _
;; ignore
))))
(t))
Expand Down Expand Up @@ -196,6 +197,9 @@
[:grade :real]]
{:table-spec ""})))

(deftest test-drop-table-ddl
(is (= "DROP TABLE something" (sql/drop-table-ddl :something))))

(deftest test-uri-spec-parsing
(is (= {:advanced "false" :ssl "required" :password "clojure_test"
:user "clojure_test" :subname "//localhost/clojure_test"
Expand Down

0 comments on commit 11b7cbe

Please sign in to comment.