move types to separate ns
This commit is contained in:
parent
039ab16447
commit
f9b262cefb
4 changed files with 55 additions and 53 deletions
|
|
@ -1,2 +1,2 @@
|
||||||
{sql/call honeysql.format/read-sql-call
|
{sql/call honeysql.types/read-sql-call
|
||||||
sql/raw honeysql.format/read-sql-raw}
|
sql/raw honeysql.types/read-sql-raw}
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
(ns honeysql.core
|
(ns honeysql.core
|
||||||
(:refer-clojure :exclude [group-by format])
|
(:refer-clojure :exclude [group-by format])
|
||||||
(:require [honeysql.format :as format]
|
(:require [honeysql.format :as format]
|
||||||
|
[honeysql.types :as types]
|
||||||
[honeysql.util :refer [defalias]]))
|
[honeysql.util :refer [defalias]]))
|
||||||
|
|
||||||
(defalias call format/call)
|
(defalias call types/call)
|
||||||
(defalias raw format/raw)
|
(defalias raw types/raw)
|
||||||
(defalias format format/format)
|
(defalias format format/format)
|
||||||
|
|
||||||
(defn select [& fields]
|
(defn select [& fields]
|
||||||
|
|
|
||||||
|
|
@ -1,59 +1,13 @@
|
||||||
(ns honeysql.format
|
(ns honeysql.format
|
||||||
(:refer-clojure :exclude [format])
|
(:refer-clojure :exclude [format])
|
||||||
(:require [clojure.string :as string]))
|
(:require [honeysql.types :refer [call raw]]
|
||||||
|
[clojure.string :as string])
|
||||||
|
(:import [honeysql.types SqlCall SqlRaw]))
|
||||||
|
|
||||||
;;(set! *warn-on-reflection* true)
|
;;(set! *warn-on-reflection* true)
|
||||||
|
|
||||||
;;;;
|
;;;;
|
||||||
|
|
||||||
(deftype SqlCall [name args _meta]
|
|
||||||
Object
|
|
||||||
(hashCode [this] (hash-combine (hash name) (hash args)))
|
|
||||||
(equals [this x]
|
|
||||||
(cond (identical? this x) true
|
|
||||||
(instance? SqlCall x) (and (= (.name this) (.name x))
|
|
||||||
(= (.args this) (.args x)))
|
|
||||||
:else false))
|
|
||||||
clojure.lang.IObj
|
|
||||||
(meta [this] _meta)
|
|
||||||
(withMeta [this m] (SqlCall. (.name this) (.args this) m)))
|
|
||||||
|
|
||||||
(defn call [name & args]
|
|
||||||
(SqlCall. name args nil))
|
|
||||||
|
|
||||||
(defn read-sql-call [form]
|
|
||||||
(apply call form))
|
|
||||||
|
|
||||||
(defmethod print-method SqlCall [^SqlCall o ^java.io.Writer w]
|
|
||||||
(.write w (str "#sql/call " (pr-str (into [(.name o)] (.args o))))))
|
|
||||||
|
|
||||||
(defmethod print-dup SqlCall [o w]
|
|
||||||
(print-method o w))
|
|
||||||
|
|
||||||
;;;;
|
|
||||||
|
|
||||||
(deftype SqlRaw [s _meta]
|
|
||||||
Object
|
|
||||||
(hashCode [this] (hash-combine (hash (class this)) (hash s)))
|
|
||||||
(equals [this x] (and (instance? SqlRaw x) (= (.s this) (.s x))))
|
|
||||||
clojure.lang.IObj
|
|
||||||
(meta [this] _meta)
|
|
||||||
(withMeta [this m] (SqlRaw. (.s this) m)))
|
|
||||||
|
|
||||||
(defn raw [s]
|
|
||||||
(SqlRaw. (str s) nil))
|
|
||||||
|
|
||||||
(defn read-sql-raw [form]
|
|
||||||
(raw form))
|
|
||||||
|
|
||||||
(defmethod print-method SqlRaw [^SqlRaw o ^java.io.Writer w]
|
|
||||||
(.write w (str "#sql/raw " (pr-str (.s o)))))
|
|
||||||
|
|
||||||
(defmethod print-dup SqlRaw [o w]
|
|
||||||
(print-method o w))
|
|
||||||
|
|
||||||
;;;;
|
|
||||||
|
|
||||||
(defn comma-join [s]
|
(defn comma-join [s]
|
||||||
(string/join ", " s))
|
(string/join ", " s))
|
||||||
|
|
||||||
|
|
|
||||||
47
src/honeysql/types.clj
Normal file
47
src/honeysql/types.clj
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
(ns honeysql.types)
|
||||||
|
|
||||||
|
(deftype SqlCall [name args _meta]
|
||||||
|
Object
|
||||||
|
(hashCode [this] (hash-combine (hash name) (hash args)))
|
||||||
|
(equals [this x]
|
||||||
|
(cond (identical? this x) true
|
||||||
|
(instance? SqlCall x) (and (= (.name this) (.name x))
|
||||||
|
(= (.args this) (.args x)))
|
||||||
|
:else false))
|
||||||
|
clojure.lang.IObj
|
||||||
|
(meta [this] _meta)
|
||||||
|
(withMeta [this m] (SqlCall. (.name this) (.args this) m)))
|
||||||
|
|
||||||
|
(defn call [name & args]
|
||||||
|
(SqlCall. name args nil))
|
||||||
|
|
||||||
|
(defn read-sql-call [form]
|
||||||
|
(apply call form))
|
||||||
|
|
||||||
|
(defmethod print-method SqlCall [^SqlCall o ^java.io.Writer w]
|
||||||
|
(.write w (str "#sql/call " (pr-str (into [(.name o)] (.args o))))))
|
||||||
|
|
||||||
|
(defmethod print-dup SqlCall [o w]
|
||||||
|
(print-method o w))
|
||||||
|
|
||||||
|
;;;;
|
||||||
|
|
||||||
|
(deftype SqlRaw [s _meta]
|
||||||
|
Object
|
||||||
|
(hashCode [this] (hash-combine (hash (class this)) (hash s)))
|
||||||
|
(equals [this x] (and (instance? SqlRaw x) (= (.s this) (.s x))))
|
||||||
|
clojure.lang.IObj
|
||||||
|
(meta [this] _meta)
|
||||||
|
(withMeta [this m] (SqlRaw. (.s this) m)))
|
||||||
|
|
||||||
|
(defn raw [s]
|
||||||
|
(SqlRaw. (str s) nil))
|
||||||
|
|
||||||
|
(defn read-sql-raw [form]
|
||||||
|
(raw form))
|
||||||
|
|
||||||
|
(defmethod print-method SqlRaw [^SqlRaw o ^java.io.Writer w]
|
||||||
|
(.write w (str "#sql/raw " (pr-str (.s o)))))
|
||||||
|
|
||||||
|
(defmethod print-dup SqlRaw [o w]
|
||||||
|
(print-method o w))
|
||||||
Loading…
Reference in a new issue