Commit | Line | Data |
41751122 |
1 | Revision history for SQL::Abstract |
e3dd5e89 |
2 | |
2972827e |
3 | 1.87 - 2020-06-02 |
cac26be2 |
4 | - Add runtime dependency on Test::Deep and Test::Builder::Module for |
5 | SQL::Abstract::Test (RT#131623) |
6 | |
4805666f |
7 | 1.86 - 2018-07-09 |
063097a3 |
8 | - Remove obsolete documentation about arrayrefref as the $source |
9 | argument for ->select (removed in version 1.74) |
daa4ccdd |
10 | - Factor out the field list part of SELECT for subclassability (GH#13) |
12d77b9a |
11 | - Do not replace literal '0' with empty string in WHERE clauses (GH#14) |
063097a3 |
12 | |
c416cbc0 |
13 | 1.85 - 2018-01-27 |
b3ecfcfa |
14 | - Restore perl version requirement missed in the Distar port |
2052671a |
15 | - Factor out the SET ... part of UPDATE for subclassability (GH#12) |
b3ecfcfa |
16 | |
30e28763 |
17 | 1.84 - 2017-04-03 |
743a28db |
18 | - Restore 'dynamic_config => 0' missed in the Distar port |
19 | |
d4b1c554 |
20 | 1.83 - 2017-04-03 |
5872708b |
21 | - Support for DELETE ... RETURNING (GH#9) |
b5f5aae4 |
22 | - Port to Distar |
85327cd5 |
23 | |
27fa2a14 |
24 | revision 1.82 2017-03-20 |
25 | ------------------------- |
3d8630d6 |
26 | - Add explicit dependency on Sub::Quote (GH#8) |
8c15b421 |
27 | - Fix syntax errors in ORDER BY docs (GH#7) |
3d8630d6 |
28 | |
f0724630 |
29 | revision 1.81_01 2017-02-28 |
30 | ---------------------------- |
26fe4d30 |
31 | - Fix order clauses with bind parameters in ->where |
19b6ccce |
32 | - Fix ->insert($table, \@values) with >26 values (RT#112684) |
bf782d2e |
33 | - Teach ::Tree that ILIKE (PostgreSQL) and REGEXP (MySQL) are binary ops |
3d8d0a21 |
34 | - Support for UPDATE ... RETURNING |
389a3147 |
35 | - Documentation improvements for ORDER BY |
26fe4d30 |
36 | |
4baf4bbe |
37 | revision 1.81 2014-10-25 |
38 | ---------------------------- |
a5f91feb |
39 | - Fix overly-enthusiastic parenthesis unroller (RT#99503) |
40 | |
cfc7db76 |
41 | revision 1.80 2014-10-05 |
42 | ---------------------------- |
52ce7dca |
43 | - Fix erroneous behavior of is_literal_value($) wrt { -ident => ... } |
ddd6fbb6 |
44 | - Explicitly croak on top-level special ops (they didn't work anyway) |
52ce7dca |
45 | |
0ca23f3b |
46 | revision 1.79 2014-09-25 |
47 | ---------------------------- |
0da0fe34 |
48 | - New exportable functions: is_literal_value($) and is_plain_value($) |
46be4313 |
49 | - New attribute 'escape_char' allowing for proper escape of quote_chars |
50 | present in an identifier |
b5a576d2 |
51 | - Deprecate { "" => \... } constructs |
422ed2de |
52 | - Treat { -value => undef } as plain undef in all cases |
8aa76984 |
53 | - Explicitly throw on { -ident => undef } |
46be4313 |
54 | |
b54fd911 |
55 | revision 1.78 2014-05-28 |
56 | ---------------------------- |
08e16360 |
57 | - Fix parsing of binary ops to correctly take up only a single LHS |
58 | element, instead of gobbling up the entire parse-to-date |
0ec2e265 |
59 | - Explicitly handle ROW_NUMBER() OVER as the snowflake-operator it is |
70c6f0e9 |
60 | - Improve signatures/documentation of is_same_sql_bind / eq_sql_bind |
5f3fa0ac |
61 | - Retire script/format-sql - the utility needs more work to be truly |
62 | end-user convenient |
08e16360 |
63 | |
4c120a34 |
64 | revision 1.77 2014-01-17 |
65 | ---------------------------- |
40f2f231 |
66 | - Reintroduce { -not => undef } column operator (regression from 1.75) |
67 | |
f0770d6b |
68 | revision 1.75 2013-12-27 |
69 | ---------------------------- |
032dfe20 |
70 | - *UPCOMING INCOMPATIBLE BUGFIX*: SQLA used to generate incorrect SQL |
71 | on undef-containing lists fed to -in and -not_in. An exception will |
72 | be raised for a while before properly fixing this, to avoid quiet |
73 | but subtle changes to query results in production |
3cdadcbe |
74 | - Deprecate and warn when supplying an empty arrayref to like/not_like |
75 | operators (likely to be removed before 2.0) |
032dfe20 |
76 | |
3cdadcbe |
77 | - Warn when using an inequality operator with a multi-value array to |
78 | arrive at what amounts to a 1=1 condition (no pre-2.0 plans to fix |
79 | this behavior due to backwards comp concerns) |
c84a4321 |
80 | - Fix false negative comparison of ORDER BY <function> ASC |
f0770d6b |
81 | - More improvements of incorrect parsing (placeholder at end of list |
82 | element) |
3af02ccb |
83 | - Fix typos in POD and comments (RT#87776) |
23401b81 |
84 | - Augment -not_bool example with nesting (RT#89601) |
c84a4321 |
85 | |
3cb8f017 |
86 | revision 1.74 2013-06-04 |
87 | ---------------------------- |
1de1d085 |
88 | - Fix insufficient parenthesis unroll during operator comparison |
0c2de280 |
89 | - 'ORDER BY foo' and 'ORDER BY foo ASC' are now considered equal |
90 | by default (with a switch to reenable old behavior when necessary) |
6f30911f |
91 | - Change parser to not eagerly slurp RHS expressions it doesn't recognize |
2266ca5c |
92 | |
d9ff7a90 |
93 | revision 1.73 2012-07-10 |
b4bd7d31 |
94 | ---------------------------- |
73835ff0 |
95 | - Fix parsing of ORDER BY foo + ? |
0bfe80fd |
96 | - Stop filling in placeholders in `format-sql` since it does not support |
97 | passing values for them anyway |
af75bd59 |
98 | - Fix parsing of NOT EXISTS |
007f0853 |
99 | - Fix over-eager parenthesis unrolling |
0f9a26cb |
100 | - Fix deep recursion warnings while parsing obnoxiously long sql statements |
7cc47319 |
101 | - Fix incorrect comparison of malformed lists |
6f2a5b66 |
102 | - Fix incorrect reporting of mismatch-members in SQLA::Test |
cc422895 |
103 | - Migrate the -ident operator from DBIC into SQLA |
104 | - Migrate the -value operator from DBIC into SQLA |
af75bd59 |
105 | |
64b9e432 |
106 | revision 1.72 2010-12-21 |
107 | ---------------------------- |
b6251592 |
108 | - Extra checks of search arguments for possible SQL injection attacks |
c01ac648 |
109 | - Remove excess parentheses in debug SQL |
257ecc8a |
110 | - Fix parsing of foo.* in SQLA::Tree |
5e5cbf51 |
111 | - Fix bindtype fail when using -between with arrayrefref literals |
279eb282 |
112 | - Add handling for NULL for -in |
48d9f5f8 |
113 | - The -nest operator has entered semi-deprecated status and has been |
114 | undocumented. Please do not use it in new code |
257ecc8a |
115 | |
d7d3d158 |
116 | revision 1.71 2010-11-09 |
2b340ec7 |
117 | ---------------------------- |
416cdb2e |
118 | - Add EXECUTING for clarity of long running SQL |
66c2fcc3 |
119 | - Add "squash_repeats" option to fix it such that repeated SQL gets ellided |
b25246f0 |
120 | except for placeholders |
667dd26d |
121 | - Highlight transaction keywords |
122 | - Highlight HAVING |
123 | - Leave quotes from DBIC in bindargs |
124 | - Add error checking on "profile" for SQLA::Tree |
125 | - Hide bulk inserts from DBIx::Class |
b912ee1e |
126 | - Fix missing doc (RT#62587) |
c4d7cfcf |
127 | - Format functions in MySQL-friendly manner foo( ... ) vs foo ( ... ) |
fab0bed9 |
128 | |
9f7f28c4 |
129 | revision 1.69 2010-10-22 |
130 | ---------------------------- |
c0eaa9fd |
131 | - Add quotes for populated placeholders and make the background |
132 | magenta instead of cyan |
133 | - Color and indent pagination keywords |
bd05b0bc |
134 | - Fix a silly bug which broke placeholder fill-in in DBIC |
135 | - Installs format-sql to format SQL passed in over STDIN |
4d3dc03a |
136 | - Switch the tokenizer to precompiled regexes (massive speedup) |
137 | - Rudimentary handling of quotes ( 'WHERE' vs WHERE ) |
0336eddb |
138 | - Fix extended argument parsing by IN/BETWEEN |
b3b79607 |
139 | - Add proper handling of lists (foo,bar,?) |
140 | - Better handling of generic -function's during AST construction |
141 | - Special handle IS NOT? NULL |
3a247d23 |
142 | - Make sure unparse() does not destroy a passed in \@bindargs |
b8db59b8 |
143 | - Support ops with _'s in them (valid in Oracle) |
efc991a0 |
144 | - Properly parse both types of default value inserts |
0ec3aec7 |
145 | - Allow { -func => $val } as arguments to UPDATE |
4d3dc03a |
146 | |
4ee5e99c |
147 | revision 1.68 2010-09-16 |
148 | ---------------------------- |
ee4227a7 |
149 | - Document methods on Tree |
9d11f0d4 |
150 | - Add affordances for color coding placeholders |
ee4227a7 |
151 | - Change ::Tree::whitespace to whitespace_keyword |
152 | |
c22f502d |
153 | revision 1.67_03 2010-09-11 |
fb272e73 |
154 | ---------------------------- |
c22f502d |
155 | - Add docs for SQL::Abstract::Tree->new |
2fed0b4b |
156 | - correcty merge profile and parameters |
fb272e73 |
157 | - added fill_in_placeholders option for excellent copy/pasta |
158 | |
ba0151e5 |
159 | revision 1.67_02 2010-09-08 |
160 | ---------------------------- |
0d5df7d6 |
161 | - rename DBIx::Class::Storage::PrettyPrinter to DBIx::Class::Storage::Debug::PrettyPrint |
ba0151e5 |
162 | - decreased a lot of indentation from ::Tree |
0d5df7d6 |
163 | - cleaned up handling of newlines inside of parens |
ba0151e5 |
164 | |
165 | revision 1.67_01 2010-09-06 |
166 | ---------------------------- |
167 | - Add SQL::Abstract::Tree |
168 | - Add unindexed DBIx::Class::Storage::PrettyPrinter |
b864ba9b |
169 | - Better documentation of undef/NULL in where clause |
b66dea8d |
170 | - Depend on bugfixed Module::Install (now again installs |
171 | on old < 5.8.3 perls) |
b864ba9b |
172 | |
6262db95 |
173 | revision 1.67 2010-05-31 14:21 (UTC) |
174 | ---------------------------- |
54629227 |
175 | - Fix SQL::Test failure when first chunk is an unrecognized |
176 | literal |
177 | - Generic -not operator tests |
c178aa6c |
178 | - More columns-bindtype assertion checks |
54629227 |
179 | |
4414eec5 |
180 | revision 1.66 2010-04-27 02:44 (UTC) |
181 | ---------------------------- |
955e77ca |
182 | - Optimized the quoting mechanism, winning nearly 10% |
183 | speedup on repeatable sql generation |
184 | |
f3e44aee |
185 | revision 1.65 2010-04-11 19:59 (UTC) |
186 | ---------------------------- |
187 | - Rerelease last version to not include .svn files |
188 | and grab MANIFEST.SKIP from DBIx::Class so it |
189 | won't happen again |
190 | |
9d48860e |
191 | revision 1.64 2010-04-11 16:58 (UTC) |
192 | ---------------------------- |
953d164e |
193 | - Fix multiple generic op handling regressions by |
194 | reverting the auto-equality assumption (turned out |
195 | to be a very very bad idea) |
196 | |
c167ebd8 |
197 | revision 1.63 2010-03-24 09:56 (UTC) |
198 | ---------------------------- |
2d2df6ba |
199 | - Add ILIKE to the core list of comparision ops |
200 | |
8d3bb2b1 |
201 | revision 1.62 2010-03-15 11:06 (UTC) |
202 | ---------------------------- |
3080e415 |
203 | - Fixed open outer parens for a multi-line literal |
f2532629 |
204 | - Allow recursively-nested column-functions in WHERE |
75151f36 |
205 | - Bumped minimum perl to 5.6.2 and changed tests to |
206 | rely on core dependencies |
171a709f |
207 | |
e6ea8200 |
208 | revision 1.61 2010-02-05 16:28 (UTC) |
209 | ---------------------------- |
fee677ba |
210 | - Allow INSERT to take additional attributes |
211 | - Support for INSERT ... RETURNING |
b9a4fdae |
212 | - Another iteration of SQL::Abstract::Test fixes and improvements |
213 | |
0f2b8636 |
214 | revision 1.60 2009-09-22 11:03 (UTC) |
215 | ---------------------------- |
30d09fa9 |
216 | - fix a well masked error in the sql-test tokenizer |
217 | |
2de6e226 |
218 | revision 1.59 2009-09-22 08:39 (UTC) |
219 | ---------------------------- |
220 | - fixed a couple of untrapped undefined warnings |
221 | - allow -in/-between to accept literal sql in all logical |
e41c3bdd |
222 | variants - see POD for details |
2de6e226 |
223 | - unroll multiple parenthesis around IN arguments to accomodate |
e41c3bdd |
224 | crappy databases |
bd6a65ca |
225 | |
277b5d3f |
226 | revision 1.58 2009-09-04 15:20 (UTC) |
227 | ---------------------------- |
228 | - expanded the scope of -bool and -not_bool operators |
229 | - added proper testing support |
230 | |
231 | revision 1.57 2009-09-03 20:18 (UTC) |
232 | ---------------------------- |
233 | - added -bool and -not_bool operators |
234 | |
a120d3e3 |
235 | revision 1.56 2009-05-30 16:31 (UTC) |
236 | ---------------------------- |
237 | - support for \[$sql, @bind] in order_by clauses e.g.: |
238 | { -desc => \['colA LIKE ?', 'somestring'] } |
239 | |
54871ee9 |
240 | revision 1.55 2009-05-17 22:54 (UTC) |
241 | ---------------------------- |
ce261791 |
242 | - make sure that sql generation does not mutate the supplied |
243 | where condition structure |
244 | |
73081069 |
245 | revision 1.54 2009-05-07 17:23 (UTC) |
246 | ---------------------------- |
247 | - allow special_operators to take both code refs and method names |
248 | (makes it possible to properly subclass the builtin ones) |
249 | |
4f0516bc |
250 | revision 1.53 2009-04-30 14:58 (UTC) |
251 | ---------------------------- |
252 | - make sure hash keys are sorted in all search sub-conditions |
253 | - switch installer from EU::MM to M::I |
254 | |
e965ac5d |
255 | revision 1.52 2009-04-28 23:14 (UTC) |
256 | ---------------------------- |
9d48860e |
257 | - allow -between to handle [\"", \""] and \["", @bind] |
e965ac5d |
258 | - allow order_by to handle -asc|desc => [qw/colA colB/] (artifact from DBIx::Class) |
259 | - more tests and clearing up of some corner cases |
260 | - t/10test.t does not run by default (developer only, too cpu intensive) |
39ae3a83 |
261 | |
22f1a437 |
262 | ---------------------------- |
ef8c0c94 |
263 | revision 1.51 2009-03-28 10:00 (UTC) |
e965ac5d |
264 | - fixed behavior of [-and => ... ] depending on the current |
ef8c0c94 |
265 | condition scope. This introduces backwards comp with 1.24 |
266 | |
267 | ---------------------------- |
22f1a437 |
268 | revision 1.50 2009-03-10 12:30 (UTC) |
e9c9f6ee |
269 | - fixed the problem with values() not behaving the same as the rest of the code (RT#43483) |
270 | - fixed interjecting arrayrefref into a where clause |
271 | - added value-only insert test with a literal SQL snippet |
272 | - cleanup and enhancement of t/03values.t |
273 | - better handling of borked SQL in tests |
274 | - deal properly with parentheses in is_same_sql_bind() |
275 | - fixed test subs (is_same_*) in SQL::Abstract::Test to return the correct test value |
276 | - do not version MANIFEST |
277 | |
22f1a437 |
278 | Version 1.50 was a major internal refactoring of SQL::Abstract. |
279 | Great care has been taken to preserve the published behavior |
280 | documented in previous versions in the 1.* family; however, |
281 | some features that were previously undocumented, or behaved. |
282 | differently from the documentation, had to be changed in order |
283 | to clarify the semantics. Hence, client code that was relying |
284 | on some dark areas of SQL::Abstract v1.* might behave differently |
285 | in v1.50. |
286 | |
e9c9f6ee |
287 | ---------------------------- |
a1450b90 |
288 | revision 1.49_04 2009-03-03 |
289 | - add support for a [\%column_meta => value] bind value format |
290 | |
291 | ---------------------------- |
292 | revision 1.49_03 2009-02-17 |
293 | - clarify syntax of \['...', @bind] when used with a bindtype |
294 | of 'columns' |
295 | |
296 | ---------------------------- |
297 | revision 1.49_02 2009-02-16 |
298 | - added an AST-aware SQL::Abstract::Test library for sql syntax tests |
299 | - vastly expanded test coverage |
300 | - support for the { operator => \'...'|\['...', @bind] } syntax |
301 | allowing to embed arbitrary operators on the LHS |
edbb91b5 |
302 | - fixed multiple regressions wrt DBIx::Class |
a1450b90 |
303 | |
e3f9dff4 |
304 | ---------------------------- |
a1450b90 |
305 | revision 1.49_01 2009-02-11 |
306 | - support for literal SQL through the [$sql, bind] syntax. |
e3f9dff4 |
307 | - added -nest1, -nest2 or -nest_1, -nest_2, ... |
308 | - optional support for array datatypes |
309 | - defensive programming : check arguments to functions/methods |
310 | - fixed bug with global logic of -and/-or (no side-effects any more) |
311 | - changed logic for distributing an op over arrayrefs |
312 | - fixed semantics of _bindtype on array args |
a1450b90 |
313 | - dropped the _anoncopy of the %where tree. No longer necessary. |
314 | - dropped the _modlogic function |
8a68b5be |
315 | - Make col => [] and col => {$op => [] } DTRT or die instead of generating |
a1450b90 |
316 | broken SQL. Added tests for this. |
22f1a437 |
317 | - Added { -desc => 'column' } order by support |
a1450b90 |
318 | - Tiny "$_"-related fix for { -desc => 'columns'} order by support |
22f1a437 |
319 | tests + docs |
86298391 |
320 | |
e3dd5e89 |
321 | ---------------------------- |
322 | revision 1.20 |
323 | date: 2005/08/18 18:41:58; author: nwiger; state: Exp; lines: +104 -50 |
324 | - added patch from Dan Kubb enabling quote_char and name_sep options |
325 | - added patch from Andy Grundman to enhance _anoncopy for deep refs |
326 | ---------------------------- |
327 | revision 1.19 |
328 | date: 2005/04/29 18:20:30; author: nwiger; state: Exp; lines: +34 -20 |
329 | added _anoncopy to prevent destroying original; updated docs |
330 | ---------------------------- |
331 | revision 1.18 |
332 | date: 2005/03/07 20:14:12; author: nwiger; state: Exp; lines: +201 -65 |
333 | added support for -and, -or, and -nest; see docs for details |
334 | ---------------------------- |
335 | revision 1.17 |
336 | date: 2004/08/25 20:11:27; author: nwiger; state: Exp; lines: +58 -46 |
337 | added patch from Eric Kolve to iterate over all hashref elements |
338 | ---------------------------- |
339 | revision 1.16 |
340 | date: 2004/06/10 17:20:01; author: nwiger; state: Exp; lines: +178 -12 |
341 | added bindtype param to allow this to work with Orasuck 9+ |
342 | ---------------------------- |
343 | revision 1.15 |
344 | date: 2003/11/05 23:40:40; author: nwiger; state: Exp; lines: +18 -6 |
345 | several bugfixes, including _convert being applied wrong and |
346 | the edge case field => { '!=', [qw/this that/] } not working |
347 | ---------------------------- |
348 | revision 1.14 |
349 | date: 2003/11/04 21:20:33; author: nwiger; state: Exp; lines: +115 -34 |
350 | added patch from Philip Collins, and also added 'convert' option |
351 | ---------------------------- |
352 | revision 1.13 |
353 | date: 2003/05/21 17:22:29; author: nwiger; state: Exp; lines: +230 -74 |
354 | added "IN" and "BETWEEN" operator support, as well as "NOT" |
355 | modified where() to support ORDER BY, and fixed some bugs too |
356 | added PERFORMANCE and FORMBUILDER doc sections |
357 | fixed several bugs in _recurse_where(), it now works as expected |
358 | added test suite, many thanks to Chas Owens |
359 | modified all hash access to return keys sorted, to allow cached queries |
360 | ---------------------------- |
361 | revision 1.12 |
362 | date: 2003/05/08 20:10:56; author: nwiger; state: Exp; lines: +181 -96 |
363 | 1.11 interim checking; major bugfixes and order_by, 1.12 will go to CPAN |
364 | ---------------------------- |
365 | revision 1.11 |
366 | date: 2003/05/02 00:07:30; author: nwiger; state: Exp; lines: +52 -12 |
367 | many minor enhancements to add querying flexibility |
368 | ---------------------------- |
369 | revision 1.10 |
370 | date: 2002/09/27 18:06:25; author: nwiger; state: Exp; lines: +6 -2 |
371 | added precatch for messed up where string |
372 | ---------------------------- |
373 | revision 1.9 |
374 | date: 2002/08/29 18:04:35; author: nwiger; state: Exp; lines: +4 -3 |
375 | CPAN |
376 | ---------------------------- |
377 | revision 1.8 |
378 | date: 2001/11/07 22:18:12; author: nwiger; state: Exp; lines: +31 -14 |
379 | added embedded SCALAR ref capability to insert() and update() |
380 | ---------------------------- |
381 | revision 1.7 |
382 | date: 2001/11/07 01:23:28; author: nwiger; state: Exp; lines: +3 -3 |
383 | damn uninit warning |
384 | ---------------------------- |
385 | revision 1.6 |
386 | date: 2001/11/06 21:09:44; author: nwiger; state: Exp; lines: +14 -6 |
387 | oops, had to actually *implement* the order by for select()! |
388 | ---------------------------- |
389 | revision 1.5 |
390 | date: 2001/11/06 03:13:16; author: nwiger; state: Exp; lines: +43 -4 |
391 | lots of docs |
392 | ---------------------------- |
393 | revision 1.4 |
394 | date: 2001/11/06 03:07:42; author: nwiger; state: Exp; lines: +16 -7 |
395 | added extra layer of ()'s to ensure correct semantics on AND |
396 | ---------------------------- |
397 | revision 1.3 |
398 | date: 2001/11/06 01:16:31; author: nwiger; state: Exp; lines: +11 -10 |
399 | updated all statements so that they use wantarray to just return SQL if asked |
400 | ---------------------------- |
401 | revision 1.2 |
402 | date: 2001/10/26 22:23:46; author: nwiger; state: Exp; lines: +112 -15 |
403 | added scalar ref for SQL verbatim in where, fixed bugs, array ref, docs |
404 | ---------------------------- |
405 | revision 1.1 |
406 | date: 2001/10/24 00:26:43; author: nwiger; state: Exp; |
407 | Initial revision |