diff options
author | Carlo Zancanaro <carlo@clearboxsystems.com.au> | 2013-06-13 18:24:05 +1000 |
---|---|---|
committer | Carlo Zancanaro <carlo@clearboxsystems.com.au> | 2013-06-13 18:24:05 +1000 |
commit | 148f752b5f48707dc3d7fe448d1faf33d5cd0228 (patch) | |
tree | a61345f51f248c5061cf47630ea5eafcdf638408 /src/clojure_sql/core.clj | |
parent | e2bd4b4939d34fc9400c9843b691428d3888ecc4 (diff) |
Starting a re-write of the DSL, to be followed by the compiler.
Flip around field/table aliases, do joins a bit differently. They're my main
aims at the moment! I'll also add a preprocessor for the compiler to massage it
into a nicer form there.
I discovered that joins can be done with a pretty sweet syntax in SQL:
(tableA LEFT JOIN tableB) RIGHT JOIN tableC
This is pretty much perfect for my purposes.
Flipping alias maps just makes more sense and removes a whole bunch of
`flip-map` calls that would be unnecessary if the aliases were the other way
around. The user-facing side of the DSL will be left unchanged, though. The
user provides an `{old-name new-name}` map and internally we convert that into
`{new-name old-name}`. Like magic.
I'm also adding a bunch more tests. Hopefully that will make things more likely
to work for long periods of time.
Peace out!
Diffstat (limited to 'src/clojure_sql/core.clj')
-rw-r--r-- | src/clojure_sql/core.clj | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/clojure_sql/core.clj b/src/clojure_sql/core.clj index 4f88a53..4e3db34 100644 --- a/src/clojure_sql/core.clj +++ b/src/clojure_sql/core.clj @@ -17,16 +17,18 @@ (binding [*out* writer] (pr (c/compile nil query)))) -(def table #'d/table) -(def project #'d/project) -(def rename #'d/rename) -(def join #'d/join) -(def select #'d/select) -(def sort-by #'d/sort-by) - -(def insert! #'c/insert!) -(def update! #'c/update!) -(def delete! #'c/delete!) +(comment + + (def table #'d/table) + (def project #'d/project) + (def rename #'d/rename) + (def join #'d/join) + (def select #'d/select) + (def sort-by #'d/sort-by) + + (def insert! #'c/insert!) + (def update! #'c/update!) + (def delete! #'c/delete!)) |