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
fcdf326968
Put SET after JOIN
...
Fix #200
2018-04-15 23:51: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
e874a6114d
Replace alter-var-root with atom for parameterizers
2018-03-09 14:11:50 +08: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
Nuttanart Pornprasitsakul
15af00e0de
Remove nil argument to where
2018-02-15 22:44:13 +07:00
Michael Blume
3588768970
Merge pull request #195 from madvas/master
...
Fix #193
2018-02-10 23:50:22 -08: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
madvas
54b620d0f9
Fix #193
2017-11-29 19:41:35 +01:00
Michael Blume
faba02f2b4
Merge pull request #186 from arichiardi/parameterizer-none
...
Add :parameterizer :none option
2017-11-15 21:23:11 -08:00
Ken Fehling
7f64e26984
Add :intersect to default-clause-priorities
2017-11-15 18:59:54 -05: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
a707222d53
Run all code samples from README as tests
...
using `lein test-readme` alias
2017-07-19 10:28:51 -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
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
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
f22cae3278
Require that defhelper arglist has two elements
...
one for the map and one for varargs
Add & to metadata arglists, make them correct
2017-05-10 09:46:54 -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
f8b913d667
Fix operators in value positions
2017-02-17 10:21:23 +01: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
Sean Corfield
6a0eacdd5f
Address #138 : add priority for union/union-all
...
By prioritizing union / union-all to happen early on, complex queries
with order by / limit / offset etc will be correctly formatted _after_
the union / union-all clause has been formatted.
2016-09-13 19:50:50 -07:00
Richard Newman
f9546af9ca
Make defhelper work.
2016-07-18 14:13:10 -07:00
Richard Newman
ec03b7c06f
ClojureScript doesn't have IRecord, but we should be using record? anyway.
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
Michael Blume
3265e4e14d
fix arglist metadata
2016-05-21 13:26:18 -07:00
Alexander K. Hudek
3ec65bd198
Treat numbers as paramterized values to fix issues with NaN, Infinity, and -Infinity.
2016-05-17 14:37:39 -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
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
4b1f26632e
Add a "huh" on the allow-dashed-names option on honeysql.format/format.
2015-10-11 12:14:47 -04:00
Jon Doane
1f6e9151fd
Updated default for allowing dashes.
2015-10-11 11:03:03 -04:00
Jon Doane
95e208485a
Added support for preserving dashes in quoted names.o
2015-10-11 10:47:14 -04:00