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