Sean Corfield
c00fbffe30
Document with / CTE
...
Change the implementation to support just a pair instead of the legacy,
weird sequence of one pair.
2021-02-06 09:00:46 -08:00
Sean Corfield
1b749c1599
Overhaul differences document
2021-02-01 16:24:19 -08:00
Sean Corfield
53bcfd8bea
Move toward 2.0.0 Alpha 1
2021-02-01 14:49:17 -08:00
Sean Corfield
379d3d05c4
Drop ? from all keyword options
2021-02-01 13:10:57 -08:00
Sean Corfield
7aab640e30
Fixes #291 by ensuring consistent values
...
For uneven vectors of values, pad with NULLs.
For uneven maps of values, use full set of keys across all of them.
2021-02-01 10:44:07 -08:00
Sean Corfield
0e2aae4a00
Fix :lift and test to use wrapper
2021-01-31 05:31:10 -08:00
Sean Corfield
8373c72f45
Fixes #286 by supporting WAIT, SKIP LOCKED
...
NOWAIT was already supported.
2021-01-30 11:43:48 -08:00
Sean Corfield
d2968bbfcc
Fixes #289 by implementing USING
2021-01-30 11:19:12 -08:00
Sean Corfield
07eb66759a
Restore cljs compatibility
2021-01-30 17:27:00 -08:00
Sean Corfield
87eec786e1
It's 2021
2021-01-29 16:11:52 -08:00
Sean Corfield
17c5e4b980
Add test for question in #285
2020-12-04 10:28:09 -08:00
Sean Corfield
39a83ae57e
Add test to V2 for issue #282
2020-10-28 16:26:35 -07:00
Sean Corfield
273732089b
Improve :inline/:raw
...
Note: these are still in flux!
2020-10-14 11:50:32 -07:00
Sean Corfield
b711044548
Minor syntax differences
...
`:group-by` must take sequence.
`:<` is binary only.
`:select-distinct` instead of modifier.
2020-10-12 22:56:47 -07:00
Sean Corfield
9da9dfe399
Fix test for issue 263
2020-10-12 22:55:16 -07:00
Sean Corfield
f14b73e592
Start merging old core tests (for helpers)
2020-10-12 18:50:07 -07:00
Sean Corfield
97a3782112
Support :inline option
...
This is similar to `:parameterizer :none` (but better).
2020-10-09 21:52:18 -07:00
Sean Corfield
0c7ce43381
Address #279 by treating UNION expressions as nested
2020-10-09 21:30:45 -07:00
Sean Corfield
8b2f0ef292
Add locking select support via for/lock
2020-09-28 20:45:43 -07:00
Sean Corfield
1fdd50d6b0
Add more tests on insert
2020-09-28 13:18:34 -07:00
Sean Corfield
6db2426046
Fix do update set; add on conflict tests
2020-09-28 11:49:29 -07:00
Sean Corfield
25097af134
First cut of on conflict support
2020-09-26 15:16:12 -07:00
Sean Corfield
002523bb8c
Generate AS for select/from; except for Oracle
2020-09-26 00:17:31 -07:00
Sean Corfield
ae6229c282
Move data_readers to test
...
Since we will not need/support this in V2
2020-09-25 16:44:01 -07:00
Sean Corfield
0052aade7c
Implement variadic and/or/+/*
2020-09-25 16:40:15 -07:00
Sean Corfield
5449c23ede
Clarify tests
...
Annotate parameterizer tests as known failures.
Create inline versions of :parameterizer :none tests.
2020-09-25 16:39:50 -07:00
Sean Corfield
a6c1f98b71
Fix CTE syntax
...
Should always be wrapped in parens
2020-09-25 16:38:38 -07:00
Sean Corfield
1ebbbc1772
Fix inline string behavior
2020-09-25 16:38:11 -07:00
Sean Corfield
9f20ade0fe
Fix is/not null generation
2020-09-25 15:31:11 -07:00
Sean Corfield
11ef895c4a
Clean up dialect support; start docs
...
Also move old namespaces to test-only tree for reference while I
continue developing V2.
2020-09-24 19:07:32 -07:00
Sean Corfield
3ce47b92f2
Implement :inline syntax; allow select call without alias
2020-09-23 22:52:57 -07:00
Sean Corfield
97531fa4cf
Implement array as SQL syntax instead of special HoneySQL syntax
2020-09-23 22:25:13 -07:00
Sean Corfield
f7d5e3a4cf
Down to just 8 failures now!
...
Mising: array, inline, parameterizer.
2020-09-23 18:15:20 -07:00
Sean Corfield
1a699f18ab
Support more clauses; flesh out dialect and clause ordering
2020-09-23 12:55:02 -07:00
Sean Corfield
a1d90a6382
Work toward more 1.x compatibility
...
Temporarily disable `AS` in alias while testing compatibility; only
quoted by default if `:dialect` specified (may revisit this).
2020-09-23 00:14:25 -07:00
Sean Corfield
834ac3a096
Rename sql-format back to format now Chlorine is updated!
2020-09-21 10:56:05 -07:00
Sean Corfield
1dc0447244
Convert more RCFs to tests
2020-09-20 22:25:28 -07:00
Sean Corfield
b6d6d2c4f4
Refactor to sql-format for now
2020-09-20 21:33:04 -07:00
Sean Corfield
2c98d35f63
Start some tests; implement more clauses
2020-09-20 19:17:37 -07:00
Sean Corfield
b3baa094c2
Fixes #257 by adding CROSS JOIN
2020-05-29 16:01:49 -07:00
Sean Corfield
d86150784b
Fixes #239 by never qualifying inserted column names
2020-05-18 12:06:20 -07:00
Sean Corfield
97868812c1
Prepare to switch from lein to CLI/deps.edn
...
This starts the cleanup of the project so I can use cljs-test-runner via
the CLI. The next big cleanup will be removing macrovich.
2020-03-06 15:11:44 -08:00
Ted Coakley
e7dce6b347
Adds support for except set operation #254
2020-03-06 17:34:06 +00:00
Sean Corfield
9fb3d42660
Release 0.9.9 fixes #253
2020-03-02 16:01:14 -08:00
Sean Corfield
a732815b37
Fixes #249 by adding :namespace-as-table? option for 0.9.8
2019-09-07 23:42:38 -07:00
Sean Corfield
f17a6f5582
Fixes #247 by reverting #132 / #131
...
Adds `*allow-namespaced-names?*` Var and `:allow-namespaced-names?`
option so the previous behavior can still be used.
2019-09-07 15:18:10 -07:00
Sean Corfield
c573f3bd9c
Fixes #235 by adding two different SET priority variants
...
This allows the behavior change in #200 to be worked around.
2019-09-07 14:55:06 -07:00
Sean Corfield
7831ebed38
Fixes #128 by adding :truncate / truncate
2019-09-07 13:24:46 -07:00
Sean Corfield
94601ee5ae
Fixes #248 by changing how aliases are rendered
...
In theory, the only change here will be to stop the paren-wrapping in
generation of alias SQL -- but I think that treating alias/columns pairs
like this (as a nested alias) is very suspicious anyway so that probably
ought to be fixed "properly" at some point.
2019-09-05 16:38:20 -07:00
Sean Corfield
8bf68d1d10
Another run at fixing #246
2019-08-21 21:59:39 -07:00
Sean Corfield
a31426da6b
Fixes #246
...
Also fixes reflection warning introduced in #237 .
2019-08-21 16:03:21 -07:00
Cam Saul
bd076b193a
Fix query generation when user.language is Turkish
2019-02-08 20:02:31 -08:00
Gordon Stratton
5faae8790f
The "AS" alias is no longer split before quoting
...
Fixes #216
2018-10-01 15:19:03 +00:00
Andrea Richiardi
24c20c3a2f
Add mimimal test for #228
2018-09-25 09:56:39 -07:00
Vincent
6e3631822d
Added Inlinable protocol for more sensible stringification of inline values, and to allow library users to further extend the inline behavior ( #224 )
2018-08-30 18:55:53 +02:00
Sean Corfield
2b238c5a47
Fix #221 by treating #inline nil as a special case
2018-08-03 17:13:46 -07:00
Sean Corfield
ea76608c7c
Merge branch 'delete' of https://github.com/MichaelBlume/honeysql into MichaelBlume-delete
...
Corrects `delete` to support multiple tables.
Adds tests.
Adds README examples.
# Conflicts:
# src/honeysql/format.cljc
# src/honeysql/helpers.clj
2018-06-26 18:24:01 -07:00
Chris Targett
f778419cb9
Refactored parameterizer to use mutimethods
...
It was briefly mentioned in #honeysql on clojurians.slack.com that this
mechanism of extension uses a register method and an atom to support
extension when multimethods are used elsewhere.
2018-05-15 21:22:32 +01:00
Michael Blume
524887a9cd
test SET after JOIN
2018-04-16 00:03:35 -07:00
Michael Blume
43e94bf497
Merge pull request #201 from vincent-dm/master
...
adds support for JOIN ... USING (...) syntax (#188 )
2018-04-12 23:39:59 -07:00
Juvenn Woo
2abe128008
Support register customized parameterizer
2018-03-09 11:54:14 +08:00
Nuttanart Pornprasitsakul
3206b099df
Remove nil predicate from :and
2018-02-18 13:27:07 +07:00
Michael Blume
8ad38d28af
Merge pull request #196 from emidln/emidln/insert-into-drop-parens
...
Avoid wrapping QUERY with parens while formatting INSERT INTO ... QUERY
2018-02-10 23:48:01 -08:00
Vincent
8a6ecd94aa
adds support for JOIN ... USING (...) syntax ( #188 )
2018-01-16 03:13:14 +01:00
Tianxiang Xiong
ccff2d2c23
Limit value context to sequences in value positions
...
Fix #198
2018-01-09 23:42:53 -08:00
Brandon Adams
c7df208e3e
Avoid wrapping QUERY with parens while formatting INSERT INTO ... QUERY
...
This also adds a test using honeysql.format/format for an existing
format-clause test case for :insert-into which encodes the previously
failing behavior.
2017-12-12 16:09:31 -06:00
Michael Blume
faba02f2b4
Merge pull request #186 from arichiardi/parameterizer-none
...
Add :parameterizer :none option
2017-11-15 21:23:11 -08:00
Andrea Richiardi
6cf89436d4
Add :parameterizer :none option
...
Sometimes you want to completely skip using parameters.
Postgres, in particular, complains with cryptic "syntax error at or near "$1"
whenever query parameters cannot be used for the query. An example would be
CREATE TABLE queries where the only parameters are the VARCHAR size.
This patch adds a :none option to :parameterizer which completely skips
parameter filling (and numbering), returning the SQL string only.
2017-11-06 17:13:02 -08:00
Andrea Richiardi
65037939b2
[ Fix #167 ] Add ClojureScript self-host support
...
This patch uses the wonderful cgrand/macrovich for supporting both JVM and
self-host ClojureScript. The library avoids destructive code changes, no
namespaces were moved.
The patch also adds a runner for self-host tests by adding the lein-tach
plugin. Tests can be launched with:
lein tach lumo (or planck)
See the lein-tach README for details.
2017-11-01 10:13:47 -07:00
Michael Blume
7256f7afba
Revert "Merge pull request #169 "
...
Revert the reversion, keep the behavior from 0.9.0, vectors will be
primarily used for function calls.
2017-08-25 09:12:53 -07:00
Michael Blume
3eaf5edbc0
Merge pull request #169 from MichaelBlume/fix-tuples
...
Revert #149 and restore tuple behavior
2017-07-18 13:47:56 -07:00
Michael Blume
9ab7d3a2f8
restore function call test using sql/call
2017-07-18 13:45:12 -07:00
Michael Blume
d99efb8606
allow inlining values
...
Most of the time we want to parameterize numbers, but sometimes we don't
Fixes #171
2017-07-18 12:50:27 -07:00
Michael Blume
a0b73cdcc6
Test that tuples work correctly
...
Thanks to @jetmind who gave this test in #168
2017-07-17 20:49:35 -07:00
Michael Blume
62c4760c6a
Revert "Merge pull request #149 "
...
Should #168
2017-07-17 20:49:35 -07:00
Brandon Adams
f94e343f31
Reprioritize WITH wrt UNION and UNION ALL
...
WITH needs to come before clauses that are part of a UNION
or UNION ALL.[1][2][3][4]
[1] "A CTE must be followed by a single SELECT, INSERT, UPDATE, or DELETE
statement that references some or all the CTE columns."
https://docs.microsoft.com/en-us/sql/t-sql/queries/with-common-table-expression-transact-sql
[2] "the WITH clause itself is attached to a primary statement that can
also be a SELECT, INSERT, UPDATE, or DELETE"
https://www.postgresql.org/docs/9.6/static/queries-with.html
[3] https://mariadb.com/kb/en/mariadb/with/
[4] "All common table expressions (ordinary and recursive) are created
by prepending a WITH clause in front of a SELECT, INSERT, DELETE, or
UPDATE statement."
https://sqlite.org/lang_with.html
Added a test case demonstrating the expected behavior for each of
UNION and UNION ALL.
2017-06-27 20:01:52 -07:00
Eli Naeher
00316fc6bd
Add helpers for :with and :with-recursive clauses
2017-05-19 22:59:21 -07:00
Michael Blume
e0072efbdc
Merge pull request #132 , allow namespaced keywords
2017-04-05 21:11:45 -07:00
Tom Connors
bdfee0883e
Fix using maps with different key orders in :values
2017-03-24 00:18:04 -07:00
Joost Diepenmaat
5e7e224df4
Show problem with operators in value positions
2017-02-17 10:20:40 +01:00
Richard Newman
a0d0880ac6
Add an additional test for phrasing complex UNION queries.
2016-10-12 09:26:51 -07:00
Richard Newman
9dd87d14a0
Don't parenthesize the subclauses of a UNION, UNION ALL, or INTERSECT clause. Fixes #141 .
2016-10-12 08:50:54 -07:00
Richard Newman
0539e33d9a
Get tests running with 'lein doo'.
2016-07-18 14:12:01 -07:00
Mike Blume
7c8cdf241d
MichaelBlume's first pass at ClojureScript support.
2016-07-18 14:12:01 -07:00
Mike Blume
5603e9df9f
Add ClojureScript build, move files to cljc.
...
ClojureScript build fails.
2016-07-18 14:10:52 -07:00
Jon Doane
5b197f9756
Solve an issue where namespaced keywords and symbols where only taking the name portion of the identifier.
...
- This now checks if there is a namespace and prepends it to the name if it exists.
2016-07-09 10:37:33 -04:00
Alexander Hudek
7397b3a48f
Update tests for parameterized numbers.
2016-05-18 17:21:51 -04:00
Michael Blume
43df955a86
Merge pull request #111 from stuarth/master
...
allow joins without a pred
2016-03-30 23:10:18 -07:00
Michael Blume
d9567e64e0
Merge pull request #110 from csummers/master
...
escape quote characters in quoted identifiers
2016-03-12 17:33:09 -08:00
Dave Della Costa
0662a00722
Merge pull request #103 from jakemcc/add-intersect
...
add intersect support
2016-03-02 12:37:17 -05:00
Stuart Hinson
80e9d2ec44
allow joins without a pred
2016-03-01 09:39:21 -05:00
Curtis Summers
47cefd0371
escape quote characters in quoted identifiers
2016-02-24 06:45:49 -06:00
Michael Blume
06c97376ef
prevent records from being treated as maps
...
Thanks to @djwhitt and @blinsay for reporting and for providing
test cases.
Fixes #106
2016-02-09 14:09:22 -08:00
Michael Blume
f8a2eedf45
demonstrate incorrect raw/call behavior
2016-02-09 14:07:51 -08:00
Jake McCrary
8fa44d22b3
add INTERSECT support
2015-11-29 17:49:45 -06:00
Michael Blume
607ee17cca
Merge pull request #95 from emidln/emidln/with_column_names
...
Support column names in :with clauses
2015-10-18 11:07:03 -07:00
Brandon Adams
10a1565467
Support column names in :with clauses
...
This binds `honeysql.format/*subquery?*` to `false` which turns
on processing of a cte-name like `[:foo {:columns [:a :b :c]}]`
resulting in a string like `WITH foo (a, b, c)`.
2015-10-12 15:13:16 -05:00
Jon Doane
f38668edc6
Added one more assertion to test dashed names that are split by periods.
2015-10-11 11:38:50 -04:00
Jon Doane
7e78b10ae4
Added simple test to check for preserved dashes when the var is bound to true.
2015-10-11 11:29:55 -04:00
Dave Della Costa
2123c01fb5
adds tests for :union and :union-all
2015-08-26 00:11:29 +09:00