-
Notifications
You must be signed in to change notification settings - Fork 20
/
Changes
622 lines (519 loc) · 23.4 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
Changes log for Perl extension SQL::Statement
1.414 2020-10-21
* re-release 1.413_001 without further changes
1.413_001 2020-09-28
* Spell check
* Be specific in which files to skip from the distribution
* Author fixes
* Makefile.PL: port WriteMakefile1 from Hash::Merge
* .travis.yml: update for Xenial VMs
* cleanup MANIFEST.SKIP
* bump copyright year
* SQL::Parser correctly parse VALUES and SET clauses containing function invocations with several arguments
patch provided by Edgar J. Holleis
1.412 2017-04-06
* Release 1.411_001 without further changes as 1.412
1.411_001 2017-03-30
[Bug fixes]
* Fix http://www.perlmonks.org/?node_id=1167381 (NumericEval: fix
typo on error handling) (thanks to Yanick Champoux, James R. Leu)
* fix repo url and t/02execute.t (Reini Urban, Mohammad S Anwar)
* fix test failing with blead-perl (Jens Rehsack)
[Improvements]
* Refactor constraints processing (Ovidiu Gheorghies)
* Support parsing of complex JOIN clause (containing OR and ()'s) (James R. Leu)
* handle backtick quoting (Ben Hengst)
1.410 2016-04-11
[Bug fixes]
* Fix RT#113625 - Unnecessary x-bits (Kent Fredric, Mohammad S Anwar)
[Documentation]
* pod2markdown README.md from lib/SQL/Statement.pm
1.409 2016-04-06
* Release 1.408_001 without further changes as 1.409
1.408_001 2016-03-07
[Bug fixes]
* Fix RT#112530 - t/06virtual.t fails with -Duselongdouble (thanks
Slaven Rezic)
* Fix RT#105852 - dependency installation isn't triggered properly in
cpan (thanks Mithaldu)
* Fix RT#99349 - bind variables are not bound to placeholders in the
correct order (thanks [email protected])
[Documentation]
* Update Copyright statements, add where missing (according to records)
* Add license conditions where missing
* bundle copy of license conditions to distribution
1.407 2015-05-26
* Release 1.406_002 without further changes as 1.407
1.406_002 2015-05-22
[Bug fixes]
* Fix RT#104579: Redundant argument in sprintf
submitted by Slaven Rezić
* Fix RT#104589: t/14parse.t fails if Test::Deep is not installed
submitted by Slaven Rezić
1.406_001 2015-05-20
[Misc]
* clean up Makefile.PL, meta-data and requirements
[Bug fixes]
* Fix SQL function CONV to use limited number of sane character sets
for conversion and rely on Math::Base::Convert instead of own code
(suggested by Tom Wyant in RT#100551, thanks Tom)
* fix handling of literal identifiers and for every IMPORT rely on
literal identifiers to avoid parser errors for column names starting
with numbers or similar
* fix capability cache: "$class->can(...)" might return undef and
therefore inexistent capabilities are queried to often
* Fix COUNT(DISTINCT col) without GROUP BY clause (patch submitted
by Grant Mathews, thanks Grant)
* Fix "parse insert with functions" submitted via GitHub PR#6 by
fecundf and RT#96628
* Fix RT#93320: SQL-style comment can not begin inside quotes by
Tom Wyant - thanks Tom
[Improvements]
* reduce blocks and rewrite some inner statements to increase speed
of sql command processing
1.405 2013-06-17
[Bug fixes]
* INSERT now expands incomplete rows (Thanks to H.Merijn Brand)
1.404 2013-05-23
[Bug fixes]
* re-enable cleanup test_output* after test done
* recommend Text::Soundex and do soundex-test only when have it,
because it's going to be removed from core for Perl 5.19 (thank Merijn)
1.403 2013-05-22
[Bug fixes]
* fix documentation (rt#84889 - thanks Xavier Guimard and Florian,
rt#85257 - thanks Andreas Koenig)
1.402 2012-12-19
[Misc]
* add Math::Complex 1.56 as recommendation (RT#81926, Sam Ferencik)
* add Math::BigInt 1.88 as recommendation (RT#81927, Sam Ferencik)
* clarify Test::Simple 1.90 is required for building
(RT#81925, Sam Ferencik)
[Bug fixes]
* fix leaking reference to open tables outside SQL::Statement::execute
(fixes RT#81523)
* looks_like_number identifies 'nan' as number sometimes (add regex to
t/06virtual.t)
1.401 2012-10-29
[Misc]
* Switch to 3-digited minor version
[Bug fixes]
* undo literal replaces in subqueries before passing them to the
child parser
* Fix doc typo RT#76764 (STEFFENW) - thanks Steffen
* Fix typo documented in RT#71914 (reported by Ze'ev Atlas,
fixed by H.Merijn Brand) - thanks Ze'ev and Merijn
* Fix DROP TABLE behaviour and error detection
[Improvements]
* Improve documentation/tests for multiple JOIN's from RT#69573
(from BBYRD) with modifications
* Filling in the SQL92 gaps for functions (BBYRD) from RT#72638
with minor modifications - thanks Brendan
1.33 2011-02-05
[Bug fixes]
* Move test dependencies to (unreleased) Bundle::Test::SQL::Statement
to avoid circular dependencies
1.32 2011-01-19
[Bug fixes]
* Fixed invalid check for escaped single quotes
* Fixed unpermitted modification of array source for table creation
(CREATE TABLE AS IMPORT(?),[[..],[..]])
* Fixing alias used in ORDER BY (RT#61384, thanks jvm)
* Fixing ORDER BY behavior for multiple sort columns
(slower, but guaranteed correct)
[Improvements]
* renamed fetch-method into fetch_row (keep fetch() as alias) and
add a fetch_rows() to fetch all rows at once
* Different accessors for direction of ORDER BY clause query part
and it's boolean equivalent "desc" (0 or 1, respectively)
* Add a lot of Pure-Perl DBD's as build dependency for testing
(skip DBD::AnyData for now, because it seems to be broken - check
for next release)
[Misc]
* Bump requirement of DBI to 1.616
* switch for fully external DBD tests from DBD::XBase to DBD::SQLite
* Document another limitation (lacking implicit creating temp table
during processing a query using the same table with different aliases
twice)
1.31 2010-08-16
[Bug fixes]
* Fix misbehaviour of DELETE/UPDATE for tables with only basic capabilities
and no matching where clause (reported by H.Merijn Brand and Drew ...)
* Fix some column identifier splits to respect quoted tables
[Improvements]
* Optimized some core routines between 25% and 50%.
1.30 2010-08-01
[Bug fixes]
* remove blib directory from distfile
1.29 2010-08-01 released August 1st, 2010
[Bug fixes]
* add some getters as documented in SQL::Statement::Structure
(fixes RT#59834, thanks John Wiersba)
* add missing import of function croak to SQL::Statement::Term::ColumnValue
* fix assignment of parser result (doesn't run with perl-5.13.3)
1.28 2010-07-15
[Improvements]
* Introduce new "capability" method for SQL::Statement and SQL::Eval::Table
+ Add capability for "insert_new_row" to allow DBD::DBM to fix PK
constrain on INSERT statements.
* Performance of IMPORT feature improved (thanks to Sven Probst, RT#57322)
[Bug fixes]
* expect every table object being derived from SQL::Eval::Table
* rewrite DELETE and UPDATE command based on table capabilities
* add abstract methods for all methods derived classes must override
(this means, open_table for SQL::Statement deriveds must be overridden
and all data access methods of tables - see SQL::Eval::Table for details)
* Tests are fixed to use TEMP TABLES explicitely when required
* check for invalid column names fixed
* Don't let depreciated parser structures stay alive in SQL::Statement when
reusing the Parser
[Documentation]
* Method documentation of SQL::Statement and SQL::Eval::Table are improved
* Add a Roadmap describing future plans for SQL::Statement (in addition to
DBD::File::Roadmap).
* POD spelling fixes provided by H.Merijn Brand
and Pod::Spell::CommonMistakes (thanks Tux)
* POD grammar fixes and reasonable sentences created by Martin Evans
[Things that may break your code]
* SQL::Statement 1.28 is expected not to work proper in combination with
DBI 1.611 and below
* SQL::Statement::ColumnValue expects now every table being derived from
SQL::Eval::Table
1.27 2010-05-06
[Bug fixes]
* use originally given table name for open_table() on SELECT, too
(all other command still use the originally given name)
* warn/die -> carp/croak
* fix delete_one_row & update_one_row ability using
[Documentation]
* Apply spelling fix patch from Ansgar Burchardt (RT#56475)
1.26 2010-04-09
[Bug fixes]
* Handle NULL columns in concatenation as empty strings
[Improvements]
* Change regex's in parser to use \p{Word} instead of \w to allow unicode
support
[Documentation]
* Make clear, that identifiers are handled case insensetive and there is
a real good solution provided by DBI which allows to live great with
that behaviour.
1.25 2010-03-15
[Bug fixes]
* Keep org_table_names with schema information to allow derived
table classes to handle as it seems reasonable there
* Separate columns with "\0" in multi-column aggregation to be able to
difference between ('1','1foo') and ('11','foo')
[Misc]
* More resources added to META.yml
1.24 2010-03-15
[Misc]
* Ignore *.rej in MANIFEST.SKIP (fixes RT #52081 reported by
Lars Thegler)
[Bug fixes]
* Add missing import of _INSTANCE in SQL::Statement::Function::NumericEval
fixes RT #52356 - reported by Detlef Pilzecker)
* Fix wrongly discarded DISTINCT clause (RT#53186)
[Improvements]
* Fix parsing errors of plain numbers (RT#16931)
* Fix parsing errors of nested calculation / functions (RT#16931, RT#52356)
* Rewrite result calculation of aggregation functions
(simplify code, speed up)
* Upgrade Makefile.PL (patch from Alexandr Ciornii) to handle different
EU::MM versions and abilities properly
* Update documentation to show how 'column_defs' and SQL::Statement::Term
instances shall be used
* Introduce SQL::Dialect::Role providing ini-style data access
to SQL::Dialects (patch from Michael Schwern)
[Things that may break your code]
* SQL::Parser now didn't deliver a struct containing 'column_names',
'computed_columns' and 'set_functions' - it's combined into one member
'column_defs'.
* Minimum required perl version is now 5.8 - upcoming next version of DBI
requires perl 5.8, too - and I could simplify some code that's why
1.23 2009-11-20
[Misc]
* Applied patch from Marc Espie which fixes several orthographic
errors in SQL::Statement::Syntax documentation.
* Added a fixed version of test reported via RT #34121
[Bug fixes]
* Fix an issue in UPDATE command which 'shift's the values from
the list of parameters which causes there're no more parameters
left after first row get's updated (Fixes RT #50788)
* Fix aggregate function handling of new code since 1.21_01
* Correct handling of DISTINCT in aggregate functions
[Improvements]
* Add support for tables/columns starting with '_' for CSV and AnyData,
which is usually forbidden by ANSI SQL
* Add support for inserting multiple lines with one statement
(fixes RT #31730)
* Handle ANSI 'IS NULL' and CVS/AnyData 'IS NULL' different
[Things that may break your code]
* row_value now expects up to two arguments
1.22 2009-10-10
[Misc]
* Add missing changelog - no code changes
1.21 2009-10-10
[Misc]
* remove version dependency to check previously installed version
* add DBD::File as "Test" requirement
1.21_8 2009-10-05
[Bug fixes]
* Add additional test for bug-fix in 1.21_7 to t/18bigjoin.t
[Misc]
* Correct some typo's in POD
1.21_7 2009-09-31
[Bug fixes]
* Don't fail for non-existent columns introduced by functions
in joins
1.21_6 2009-09-24
[Bug fixes]
* Don't abort Makefile.PL when in automated smoke tests
1.21_5 2009-09-23
[Bug fixes]
* table order isn't wrongly used in order of appearance when SQL::Parser
couldn't determine an order
* Some internal fixes
[Misc]
* Updated dependency to Params::Util to non-leaking 1.00
* Note dependency to Carp and Data::Dumper
* rely on version to compare versions
* Update POD for terms
* Update
1.21_4 2009-09-21
[Bug fixes]
* modify regex to match types to fix problems with Perl 5.6.2
* add DESTROY methods to ensure clean up
* fix lower casing internal table names when joining tables
* replace parameter shifting by assigning @_ to the list of parameters
1.21_3 2009-09-17
[Things that may break your code]
* When someone accesses the where_clause attribute of the SQL::Statement
instance - be aware that now IN and BETWEEN can be native entries
[Bug fixes]
* convert operation to upper case when surely initialized
[Improvements]
* IN and BETWEEN are now native operations - they are not expanded
to OR'ed equalize operations anymore
1.21_2 2009-09-15
[Things that may break your code]
* modify behavior for unquoted identifiers - they're converted and
returned lower cased now (instead upper cased as in 1.21_1)
Fixes bug RT #48502
1.21_1 2009-07-30
[Things that may break your code]
* removed SQL::Statement::Column
* don't instantiate SQL::Statement::Functions objects
* Reworked internal column and function handling to reduce code complexity
* rows and columns aren't setable from outside a table or eval object
anymore
[Bug fixes and other changes]
* Fixed bugs:
+ RT #47292: Test failures with recent DBI
+ RT #44512: Patch for CREATE TABLE parsing
+ RT #42676: tests 16 failed
1.20 2009-03-05
* Fixed Makefile in MANIFEST (reported by Havard Eidnes in RT #43586)
* Fixed invalid label FETCHROW used (reported by Michael in RT #42982)
* separated update_one_row and update_specific_row method names for tables
to avoid confusion
1.19 2009-02-06
* Fixed OUTER JOIN behavior
* Added version info to all *.pm files to allow CPAN::Reporter find updates
* Correct META-Files
* Fixed reported bugs:
1.18_02 2009-01-20
* Additional (profiled) optimizations for complicated where clauses
1.18_01 2009-01-12
* No code changes within SQL::Statement -
but deliver and execute additional tests.
1.17 2009-01-12
* Fixed bug: RT#42263: GROUP BY doesn't group on multiple columns
1.16_04 2009-01-04
* added tests to prove valid quoting (most of them fail)
* Reformat the source
* add some (profiled) tweaks as removing useless regex to speed up SELECT
[Bug fixes]
* 14217 Does not correctly handle SQL statements with comments
* 15686 Join syntax is case-sensitive, and common columns in natural
joins are "ambiguous" [patch]
* 13080 Cannot update a field based on its previous value
* 26058 functions on computed columns aliased to the underlying column
name are not called
1.16_03 2009-01-01
* removed *.orig and *.rej relics
1.16_02 2009-01-01
* Changing join_2_tables to reduce memory usage when joining a lot of tables
[Bug fixes]
* 15688 Columns aliased with double quotes are a fatal error
* 16579 Speed optimizations
* 30590 Bug in SQL::Statement::is_number()
* 41875 Bug in synopsis example
1.16_01 2009-01-01
* With this release, I'd like to welcome Jens Rehsack as co-maintainer of
the SQL::Statement and SQL::Parser modules. Jens has added in some
great improvements.
Thanks Jens! -- Jeff
* Adding a lot of join tests (once from Jeff, 48 from
PostgreSQL official handbook) - no error of them will be corrected in the
first run
Thanks to Alexander Breibach <[email protected]> -- Jens
1.15 2006-02-02
* fixed placeholder bug in SQL::Statement::UPDATE
thanks for bug report Tanktalus
1.14 2005-04-21
* fixed circular dependency in tests (one mistakenly required AnyData)
1.13 2005-04-18
* pod fixes
1.12 2005-04-18
* added support for GROUP BY
(several people sent suggestions for this in the past, please email me
so I can credit you, sorry I lost the names)
* added support for true LIMIT - if a LIMIT clause is specified and
no ORDER BY clause is specified, the SELECT will stop searching
when the limit is reached; with an ORDER BY clause it will still
search the entire table because we can only ORDER a set; using
LIMIT without an ORDER BY will greatly increase speed
* added support for CREATE/DROP keyword|operator|type|function
* optimized process_predicate to only look up scalars once
* completely re-wrote the POD
* fixed bug in primary key search optimization
thanks for bug report and test scripts: Jim Lambert, <jimlambrtATmac.com>
* fixed problem with all_cols slowing inserts
thanks for patch and test Cosimo Streppone <cosimoATcpan.org>
* cleaned up case of temp table column names
thanks for bug report: Dan Wright
* added a META.YML and extra tests
1.11 2005-03-28
* fixed bug in "CREATE TABLE AS ..."
1.10 2005-03-27
* added support for CREATE TABLE AS SELECT ... and CREATE TABLE AS IMPORT()
* added support for in-memory tables and heterogeneous operations,
see the SQL::Parser docs
* added many new built-in functions see SQL::Statement::Functions.pm
* added support for user-defined functions, see SQL::Statement::Functions.pm
* added support for column name aliases
thanks for patch, Robert Rothenberg
* added support for comparison to empty string (e.g. WHERE col1='')
currently returns the same as WHERE col1 IS NULL
thanks for patch, cpanATgoess.org
* fixed bug in S::P::clean_sql() newline-handling,
thanks for patch Steffen G., steffenATkonzeptloses.de
* fixed bug in SQL::Parser::feature()
thanks for patch, chromatic
* the word "INTO" is now optional in "INSERT INTO tblname ..."
* the word "FROM" is now optional in "DELETE FROM tblname ..."
thanks for suggestion, [email protected]
* optimized portions of eval_where, process_predicate, and is_matched
HUGE thanks Dan Wright and Dean Arnold for patches
* HUGE thanks to Dean Arnold for all the following which should clean up
a number of bugs in parentheses parsing and in the predicates IN and
BETWEEN as well as speed things up considerably
[SQL::Parser changes]
* removed recursion from get_in(), get_btwn()
* fixed paren scan and argument separator scan in get_in()
* optimized get_in/get_btwn code
* made get_in/get_btwn OO methods to support
being overridden by subclasses
* added transform_syntax() abstract method to permit subclasses
to add their own syntax extensions
* rewrite of parens_search() to fixed predicate paren processing,
remove recursion, and optimize code
* rewrite of non_parens_search() to fixed predicate
paren processing and optimize code
* rewrite of PREDICATE to optimize code;
moved operator regex construction to dialect initialization
* change undo_string_funcs(), undo_math_funcs(), nongroup_numeric(),
nongroup_string() to remove scoped recursion
* fixed nongroup_numeric() for case insensitive operator match
* fixed nongroup_string, undo_string_funcs() to include user defined funcs
* fixed ROW_VALUE's scan for user defined function
argument separator scan
* fixed function detection regex in SQL::Parser::ROW_VALUE
to accomodate arbitrary spacing
* fixed SQL::Parser::SELECT_LIST()/extract_column_list()
to support concat operator '||' expressions
* added following functions to SQL::Statement::Functions:
COALESCE; NVL (same as COALESCE); DECODE (same as Oracle DECODE);
CONCAT; REPLACE/SUBSTITUTE
* fixed/adapted SQL::Statement::get_row_value(),
SQL::Statement::SELECT(), for join'ed resultsets
1.09 2004-04-22
* fixed parens parsing bug reported by Dan Wright, thanks!
1.08 2004-04-20
* fixed bug in JOIN handling introduced in 1.06
1.07 2004-04-20
* fixed infinite recursion bug with empty IN() predicate
thanks chromatic, for the patch
* fixed case issues with table aliases in joins
thanks chromatic, for bug report
1.06 2004-04-18
* column and table name hashes now default to case sensitive
* where() method now supported as per the docs
1.005 2002-10-26
* added support for MySQL-like "DROP TABLE IF EXISTS"
* fixed bug in dotted column names e.g. tableA.colB
* fixed bug in MAX and MIN (thanks Michael Kovacs,
* fixed bug in ORDER BY (when col names not in SELECT list)
Thanks Janet Goldstein <[email protected]>
1.004 2002-03-13
* added support for delimited identifiers (inside double quotes);
these are case sensitive and can contain spaces and other
special chars
* added support for two forms of escaping single quotes inside
quoted values: 'O\'Brien' or 'O''Brien'
* added support for both C-Style and SQL-Style double-hypen
comments, e.g. /* comment */ or -- comment
* added GetInfo.pm for use with $dbh->get_info()
* updated the readme file
* fixed bug in update that refers to its own columns
(e.g. SET num = num + 2)
* fixed bug in MIN and MAX when used with strings
Thanks Dean Kopesky <[email protected]>
1.003 2002-03-01
* identifiers (names of columns, tables, and table name
aliases) are now all case insensitive as required by the SQL
standard. all older versions including the XS versions used
case sensitive column names
* added numerous examples to test.pl
* improved and/or fixed bugs in:
* placeholder support
Thanks Achim Grolms <[email protected]>
* ORDER BY clause
Thanks Jan Stocker <[email protected]>
* LIKE/CLIKE/RLIKE/IN predicates
Thanks Udo Beckmann <[email protected]>
* table name aliases in explicit joins
1.002 2002-02-05
* added backwards compatiblity: both SQL::Statement and
SQL::Parser now work in perl version 5.004 and above.
* changed defaults for DBD::CSV so it now accepts new SQL
without adding extra flags to scripts
* added support for SQL comments
* added support for temporary tables and on commit clauses in
CREATE statements and drop behaviour flags in DROP statements
(SQL::Parser only, not supported by SQL::Statement)
* fixed bugs in qualified column names (e.g. tableA.*), and in
joins using ON or WHERE
1.001 2002-01-17
* Fixed bug in UPDATE that caused the new value to be a hash
rather than a scalar.
1.0 2002-01-15
This is the first CPAN release of the pure perl version of the
module. It was previously released in an XS version by Jochen
Wiedman who has turned over maintenance of it to me.
The new Pure Perl version of SQL::Statement supports everything
supported by the XS version and, additionally, at least partial
support for the following features that are not supported at all
by the XS version:
* Explicit and implicit joins
* Table name aliases
* Set functions
* String functions
* String concatenation
* Numeric expressions
* IN predicate
* BETWEEN predicate
* Alphabetic comparison in WHERE clauses
* Ordering of text that looks like a number
* Verbose error messages for both Parsing and Execution errors