Commit graph

87 commits

Author SHA1 Message Date
Unnikrishnan
21b4cea2c2 Add fix for select distinct on 2016-04-04 18:34:18 +05:30
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
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
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
loganlinn
b51611d4d6 Add fn-handler for CASE statement 2015-08-06 11:29:54 -07:00
Mike Blume
fae5545e8a move format-predicate down 2015-06-15 15:54:27 -07:00
Mike Blume
38e3812e66 just call it to-sql 2015-06-15 15:54:26 -07:00
Mike Blume
04a7086687 be clear that these are field accessors
not function calls
2015-06-15 15:44:34 -07:00
Donald Ball
713f72cfb6 Fix the parameterizable protocol to include nil
I forgot that Object doesn't include nil on protocols.

I added test coverage demonstrating the regression, only to note that
parameterized and literal queries produce different sql for the nil
case. I believe only the former is actually valid ANSI SQL, though mysql
at least does not care.
2015-05-20 11:23:36 -04:00
Mike Blume
115ac81fee Merge pull request #74 2015-05-08 16:41:11 -07:00
Mike Blume
6b64743315 add pname to *param-names* once per value
keep *params* and *param-names* at the same count
2015-05-08 14:23:28 -07:00
Andy Chambers
203296149f Add support for exists 2015-04-24 08:08:13 -07:00
Donald Ball
4bdaae39af Convert seq param values to literal sql param lists
This allows seqs to be used as param values, e.g. for IN clauses. It
also converts sets to seqs for the same purpose.

It does not expand the parameter name when this occurs, which will lead
to a mismatch between the *param-names* and *params* collections. It is
not clear how *param-names* are intended to be used, so I have no better
fix to suggest other than repeating a seq's param name the corresponding
number of times into that collection.
2015-04-21 14:28:28 -04:00
Donald Ball
2820662f59 Apply seq to sets when converting to sql
This allows them to be used as values, e.g. for in clauses, as
demonstrated in the test.
2015-04-20 23:40:59 -04:00
Mike Blume
72784452b9 Merge remote-tracking branch 'dball/support-locking-selects' into HEAD 2015-04-17 14:25:23 -07:00
Michael Blume
198115fb84 Merge pull request #69 from mishok13/nulls-first-last-in-order-by
NULL order specification support
2015-04-17 14:20:23 -07:00
Donald Ball
bc0b7e904f Support locking selects
This will need documentation before being merged.
2015-04-17 15:15:23 -04:00
Andrii V. Mishkovskyi
500b55775e Handle :nulls-first and :nulls-last in order-by
This commit implements NULLS (FIRST | LAST) in ORDER BY clause, as
introduced by SQL:2003, link to grammar specification:
http://savage.net.au/SQL/sql-2003-2.bnf.html#sort%20specification%20list

Only PostgreSQL 8.4+ and Oracle 10+ support said feature as of
currently.
2015-04-17 12:33:30 +02:00
Andrii V. Mishkovskyi
11d4ff37ec Adding a comment for future reference 2015-04-16 21:23:19 +02:00
Logan Buckley
f5c111a1be Simplify -to-sql. 2015-04-15 10:39:33 -05:00
Logan Buckley
33ae0c4239 Remove unused require. 2015-04-15 10:37:46 -05:00
Logan Buckley
84387afaa5 Add SqlArray type and reader literal support. 2015-04-15 10:29:34 -05:00
Andrii V. Mishkovskyi
1ff93eb964 Adding stubs for future support of NULLS FIRST/LAST 2015-04-15 17:01:05 +02:00
Mike Blume
d74f2d2437 Allow maps/vectors not to be read as subqueries 2015-03-26 22:59:47 -07:00
Mike Blume
48c501d2c4 break out SqlParam as its own ToSql instance 2015-03-26 22:23:16 -07:00
Mike Blume
a996b93dd3 pull out a couple helpers for param logic 2015-03-26 22:23:14 -07:00
Mike Blume
ae7d42bd32 use case instead of condp 2015-03-16 12:32:30 -07:00
Mike Blume
27b906859d simplify call to parameterizer 2015-03-15 11:03:07 -07:00
Mike Blume
7115456d9e Merge remote-tracking branch 'upstream/master' into params-merge 2015-03-15 10:53:52 -07:00
Mike Blume
44a22e3787 format the format namespace a bit more nicely 2015-03-13 11:33:48 -07:00
Mike Blume
42c29506a0 Merge remote-tracking branch 'icambron/parameter-fns' into HEAD 2015-03-09 23:31:17 -07:00
Mike Blume
34f84e41b4 Merge remote-tracking branch 'dave/master' into HEAD 2015-03-09 09:56:11 -07:00
Dave Della Costa
11e6d1c017 Merge in Pull Request #34, Support basic common table expressions. 2015-03-09 13:22:02 +09:00
Mike Blume
05e74d9f30 make clause order extensible
(by using atom registry)
2015-03-06 10:48:49 -08:00
Dave Della Costa
0f24df5ee0 supports extended INSERT INTO...SELECT syntax allowing specifying columns to insert into explicitly 2015-03-05 00:20:42 +09:00
Mike Blume
17145ea549 Merge remote-tracking branch 'justindell/master' into HEAD 2015-03-03 20:34:16 -08:00
Michael Blume
12f73bfa5a Merge pull request #40 from senior/add-cast-support
Added support for casts of the form CAST(foo AS type)
2015-03-03 20:18:21 -08:00
Mike Blume
e06ddbdeb0 extend ToSql to cover Object
This commit avoids extraneous calls to satisfies?. Satisfies? is very
slow compared to protocol method dispatch, because method dispatch is
cached and satisfies? is not. Instead of using satisfies? to check for
cases where we need to fall back to a default behavior, we extend ToSql
to java.lang.Object, providing a default behavior directly.

This commit boosts honeysql's speed substantially. In my benchmarks,
80-90% of the time spent calling sql/format was spent in satisfies?.
2015-02-25 16:21:22 -08:00
Ryan Senior
dd9647ee3e Added support for casts of the form CAST(foo AS type) 2015-02-20 10:05:09 -06:00
Isaac Cambron
25ba952a3e support postgres-native parameters 2015-01-06 19:58:56 -05:00
Justin Dell
f8a5886124 Add full join 2014-11-05 15:04:21 -06:00
Justin Kramer
c8fbc16ec3 option for format to return names of params (with more dynamic vars - boo) 2013-12-13 12:32:08 -05:00
Justin Kramer
5aa351ab48 Merge pull request #9 from doffltmiw/master
add support for insert, update and delete queries
2013-12-13 08:23:00 -08:00