From 8c0d5f25a710f161ce9938627b997fff449dc3a7 Mon Sep 17 00:00:00 2001 From: Max Prokopov Date: Fri, 30 Dec 2016 12:39:56 +0200 Subject: [PATCH 1/2] ability to parse extra parameters to mysql jdbc --- src/korma/db.clj | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/korma/db.clj b/src/korma/db.clj index 6b1d4bc..d38878d 100644 --- a/src/korma/db.clj +++ b/src/korma/db.clj @@ -149,19 +149,28 @@ :make-pool? make-pool?} (dissoc opts :host :port))) +(defn- parse-mysql-extra + "parse extra mysql map and returns string could be appended to :subname + in format '?key1=value1&key2=value2 ...'" + [m] + (when m + (->> (map (fn [[k v]] (str (name k) "=" v)) m) + (clojure.string/join "&") + (str "?")))) + (defn mysql "Create a database specification for a mysql database. Opts should include keys for :db, :user, and :password. You can also optionally set host and port. Delimiters are automatically set to \"`\"." - [{:keys [host port db make-pool?] - :or {host "localhost", port 3306, db "", make-pool? true} + [{:keys [host port db make-pool? extra] + :or {host "localhost", port 3306, db "", make-pool? true, extra nil} :as opts}] (merge {:classname "com.mysql.jdbc.Driver" ; must be in classpath :subprotocol "mysql" - :subname (str "//" host ":" port "/" db) + :subname (str "//" host ":" port "/" db (parse-mysql-extra extra)) :delimiters "`" :make-pool? make-pool?} - (dissoc opts :host :port :db))) + (dissoc opts :host :port :db :extra))) (defn vertica "Create a database specification for a vertica database. Opts should include keys From e592a1214869ba5c929830a17380507c806d0156 Mon Sep 17 00:00:00 2001 From: Max Prokopov Date: Mon, 2 Jan 2017 07:45:59 +0200 Subject: [PATCH 2/2] for clojars --- project.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project.clj b/project.clj index ed07143..b87005c 100644 --- a/project.clj +++ b/project.clj @@ -1,4 +1,4 @@ -(defproject korma "0.4.3" +(defproject mprokopov/korma "0.4.4" :description "Tasty SQL for Clojure" :url "http://github.com/korma/Korma" :mailing-list {:name "Korma Google Group"