1 2 3 4 5
|
{
"preamble" => "Changes log for Perl extension SQL::Statement\n\nVersion 1.405, released June 17, 2013\n-------------------------------------------------\n[Bug fixes]\n* INSERT now expands incomplete rows (Thanks to H.Merijn Brand)\n\nVersion 1.404, released May 23, 2013\n-------------------------------------------------\n[Bug fixes]\n* re-enable cleanup test_output* after test done\n* recommend Text::Soundex and do soundex-test only when have it,\n because it's going to be removed from core for Perl 5.19 (thank Merijn)\n\nVersion 1.403, released May 22, 2013\n-------------------------------------------------\n[Bug fixes]\n* fix documentation (rt#84889 - thanks Xavier Guimard and Florian,\n rt#85257 - thanks Andreas Koenig)\n\nVersion 1.402, released December 19, 2012\n-------------------------------------------------\n\n[Misc]\n* add Math::Complex 1.56 as recommendation (RT#81926, Sam Ferencik)\n* add Math::BigInt 1.88 as recommendation (RT#81927, Sam Ferencik)\n* clarify Test::Simple 1.90 is required for building (RT#81925, Sam Ferencik)\n\n[Bug fixes]\n* fix leaking reference to open tables outside SQL::Statement::execute\n (fixes RT#81523)\n* looks_like_number identifies 'nan' as number sometimes (add regex to\n t/06virtual.t)\n\nVersion 1.401, released October 29, 2012\n-------------------------------------------------\n\n[Misc]\n* Switch to 3-digited minor version\n\n[Bug fixes]\n* undo literal replaces in subqueries before passing them to the\n child parser\n* Fix doc typo RT#76764 (STEFFENW) - thanks Steffen\n* Fix typo documented in RT#71914 (reported by Ze'ev Atlas,\n fixed by H.Merijn Brand) - thanks Ze'ev and Merijn\n* Fix DROP TABLE behaviour and error detection\n\n[Improvements]\n* Improve documentation/tests for multiple JOIN's from RT#69573\n (from BBYRD) with modifications\n* Filling in the SQL92 gaps for functions (BBYRD) from RT#72638\n with minor modifications - thanks Brendan\n\nVersion 1.33, released February 05th, 2011\n----------------------------------------------\n\n[Bug fixes]\n* Move test dependencies to (unreleased) Bundle::Test::SQL::Statement\n to avoid circular dependencies\n\nVersion 1.32, released January 19th, 2011\n----------------------------------------------\n\n[Bug fixes]\n* Fixed invalid check for escaped single quotes\n* Fixed unpermitted modification of array source for table creation\n (CREATE TABLE AS IMPORT(?),[[..],[..]])\n* Fixing alias used in ORDER BY (RT#61384, thanks jvm)\n* Fixing ORDER BY behavior for multiple sort columns\n (slower, but guaranteed correct)\n\n[Improvements]\n* renamed fetch-method into fetch_row (keep fetch() as alias) and\n add a fetch_rows() to fetch all rows at once\n* Different accessors for direction of ORDER BY clause query part\n and it's boolean equivalent \"desc\" (0 or 1, respectively)\n* Add a lot of Pure-Perl DBD's as build dependency for testing\n (skip DBD::AnyData for now, because it seems to be broken - check\n for next release)\n\n[Misc]\n* Bump requirement of DBI to 1.616\n* switch for fully external DBD tests from DBD::XBase to DBD::SQLite\n* Document another limitation (lacking implicit creating temp table\n during processing a query using the same table with different aliases\n twice)\n\nVersion 1.31, released August 16th, 2010\n----------------------------------------------\n\n[Bug fixes]\n* Fix misbehaviour of DELETE/UPDATE for tables with only basic capabilities\n and no matching where clause (reported by H.Merijn Brand and Drew ...)\n* Fix some column identifier splits to respect quoted tables\n\n[Improvements]\n* Optimized some core routines between 25% and 50%.\n\nVersion 1.30, released August 1st, 2010\n----------------------------------------------\n\n[Bug fixes]\n* remove blib directory from distfile\n\nVersion 1.29, released August 1st, 2010\n----------------------------------------------\n\n[Bug fixes]\n* add some getters as documented in SQL::Statement::Structure\n (fixes RT#59834, thanks John Wiersba)\n* add missing import of function croak to SQL::Statement::Term::ColumnValue\n* fix assignment of parser result (doesn't run with perl-5.13.3)\n\nVersion 1.28, released July 15th, 2010\n----------------------------------------------\n\n[Improvements]\n* Introduce new \"capability\" method for SQL::Statement and SQL::Eval::Table\n + Add capability for \"insert_new_row\" to allow DBD::DBM to fix PK\n constrain on INSERT statements.\n* Performance of IMPORT feature improved (thanks to Sven Probst, RT#57322)\n\n[Bug fixes]\n* expect every table object being derived from SQL::Eval::Table\n* rewrite DELETE and UPDATE command based on table capabilities\n* add abstract methods for all methods derived classes must override\n (this means, open_table for SQL::Statement deriveds must be overridden\n and all data access methods of tables - see SQL::Eval::Table for details)\n* Tests are fixed to use TEMP TABLES explicitely when required\n* check for invalid column names fixed\n* Don't let depreciated parser structures stay alive in SQL::Statement when\n reusing the Parser\n\n[Documentation]\n* Method documentation of SQL::Statement and SQL::Eval::Table are improved\n* Add a Roadmap describing future plans for SQL::Statement (in addition to\n DBD::File::Roadmap).\n* POD spelling fixes provided by H.Merijn Brand and Pod::Spell::CommonMistakes\n (thanks Tux)\n* POD grammar fixes and reasonable sentences created by Martin Evans \n\n[Things that may break your code]\n* SQL::Statement 1.28 is expected not to work proper in combination with\n DBI 1.611 and below\n* SQL::Statement::ColumnValue expects now every table being derived from\n SQL::Eval::Table\n\nVersion 1.27, release May 06th, 2010\n----------------------------------------------\n\n[Bug fixes]\n* use originally given table name for open_table() on SELECT, too\n (all other command still use the originally given name)\n* warn/die -> carp/croak\n* fix delete_one_row & update_one_row ability using\n\n[Documentation]\n* Apply spelling fix patch from Ansgar Burchardt (RT#56475)\n\nVersion 1.26, release April 09th, 2010\n----------------------------------------------\n\n[Bug fixes]\n* Handle NULL columns in concatenation as empty strings\n\n[Improvements]\n* Change regex's in parser to use \\p{Word} instead of \\w to allow unicode\n support\n\n[Documentation]\n* Make clear, that identifiers are handled case insensetive and there is\n a real good solution provided by DBI which allows to live great with\n that behaviour.\n\nVersion 1.25, release March 15th, 2010\n----------------------------------------------\n\n[Bug fixes]\n* Keep org_table_names with schema information to allow derived\n table classes to handle as it seems reasonable there\n* Separate columns with \"\\0\" in multi-column aggregation to be able to\n difference between ('1','1foo') and ('11','foo')\n\n[Misc]\n* More resources added to META.yml\n\nVersion 1.24, release March 15th, 2010\n----------------------------------------------\n\n[Misc]\n* Ignore *.rej in MANIFEST.SKIP (fixes RT #52081 reported by\n Lars Thegler)\n\n[Bug fixes]\n* Add missing import of _INSTANCE in SQL::Statement::Function::NumericEval\n fixes RT #52356 - reported by Detlef Pilzecker)\n* Fix wrongly discarded DISTINCT clause (RT#53186)\n\n[Improvements]\n* Fix parsing errors of plain numbers (RT#16931)\n* Fix parsing errors of nested calculation / functions (RT#16931, RT#52356)\n* Rewrite result calculation of aggregation functions (simplify code, speed up)\n* Upgrade Makefile.PL (patch from Alexandr Ciornii) to handle different\n EU::MM versions and abilities properly\n* Update documentation to show how 'column_defs' and SQL::Statement::Term\n instances shall be used\n* Introduce SQL::Dialect::Role providing ini-style data access to SQL::Dialects\n (patch from Michael Schwern)\n\n[Things that may break your code]\n* SQL::Parser now didn't deliver a struct containing 'column_names',\n 'computed_columns' and 'set_functions' - it's combined into one member\n 'column_defs'.\n* Minimum required perl version is now 5.8 - upcoming next version of DBI\n requires perl 5.8, too - and I could simplify some code that's why\n\nVersion 1.23, release November 20th, 2009\n----------------------------------------------\n\n[Misc]\n* Applied patch from Marc Espie which fixes several orthographic\n errors in SQL::Statement::Syntax documentation.\n* Added a fixed version of test reported via RT #34121\n\n[Bug fixes]\n* Fix an issue in UPDATE command which 'shift's the values from\n the list of parameters which causes there're no more parameters\n left after first row get's updated (Fixes RT #50788)\n* Fix aggregate function handling of new code since 1.21_01\n* Correct handling of DISTINCT in aggregate functions\n\n[Improvements]\n* Add support for tables/columns starting with '_' for CSV and AnyData,\n which is usually forbidden by ANSI SQL\n* Add support for inserting multiple lines with one statement\n (fixes RT #31730)\n* Handle ANSI 'IS NULL' and CVS/AnyData 'IS NULL' different\n\n[Things that may break your code]\n* row_value now expects up to two arguments\n\nVersion 1.22, release October 10th, 2009\n----------------------------------------------\n\n[Misc]\n* Add missing changelog - no code changes\n\nVersion 1.21, release October 10th, 2009\n----------------------------------------------\n\n[Misc]\n* remove version dependency to check previously installed version\n* add DBD::File as \"Test\" requirement\n\nVersion 1.21_8, release October 5th, 2009\n----------------------------------------------\n\n[Bug fixes]\n* Add additional test for bug-fix in 1.21_7 to t/18bigjoin.t\n\n[Misc]\n* Correct some typo's in POD\n\nVersion 1.21_7, not public released\n----------------------------------------------\n\n[Bug fixes]\n* Don't fail for non-existent columns introduced by functions\n in joins\n\nVersion 1.21_6, release September 24th, 2009\n----------------------------------------------\n\n[Bug fixes]\n* Don't abort Makefile.PL when in automated smoke tests\n\nVersion 1.21_5, release September 23th, 2009\n----------------------------------------------\n\n[Bug fixes]\n* table order isn't wrongly used in order of appearance when SQL::Parser\n couldn't determine an order\n* Some internal fixes\n\n[Misc]\n* Updated dependency to Params::Util to non-leaking 1.00\n* Note dependency to Carp and Data::Dumper\n* rely on version to compare versions\n* Update POD for terms\n* Update\n\nVersion 1.21_4, release September 21th, 2009\n----------------------------------------------\n\n[Bug fixes]\n* modify regex to match types to fix problems with Perl 5.6.2\n* add DESTROY methods to ensure clean up\n* fix lower casing internal table names when joining tables\n* replace parameter shifting by assigning \@_ to the list of parameters\n\nVersion 1.21_3, release September 17th, 2009\n----------------------------------------------\n\n[Things that may break your code]\n* When someone accesses the where_clause attribute of the SQL::Statement\n instance - be aware that now IN and BETWEEN can be native entries\n\n[Bug fixes]\n* convert operation to upper case when surely initialized\n\n[Improvements]\n* IN and BETWEEN are now native operations - they are not expanded\n to OR'ed equalize operations anymore\n\nVersion 1.21_2, release September 15th, 2009\n----------------------------------------------\n\n[Things that may break your code]\n* modify behavior for unquoted identifiers - they're converted and\n returned lower cased now (instead upper cased as in 1.21_1)\n Fixes bug RT #48502\n\nVersion 1.21_1, release July 30th, 2009\n------------------------------------------\n\n[Things that may break your code]\n* removed SQL::Statement::Column\n* don't instantiate SQL::Statement::Functions objects\n* Reworked internal column and function handling to reduce code complexity\n* rows and columns aren't setable from outside a table or eval object\n anymore\n\n[Bug fixes and other changes]\n* Fixed bugs:\n + RT #47292: Test failures with recent DBI\n + RT #44512: Patch for CREATE TABLE parsing\n + RT #42676: tests 16 failed\n\nVersion 1.20, released March 5th, 2009\n------------------------------------------\n\n* Fixed Makefile in MANIFEST (reported by Havard Eidnes in RT #43586)\n* Fixed invalid label FETCHROW used (reported by Michael in RT #42982)\n* separated update_one_row and update_specific_row method names for tables\n to avoid confusion\n\nVersion 1.19, released February 6th, 2009\n------------------------------------------\n\n* Fixed OUTER JOIN behavior\n* Added version info to all *.pm files to allow CPAN::Reporter find updates\n* Correct META-Files\n* Fixed reported bugs:\n\n\nVersion 1.18_02, no public release\n-----------------------------------\n\nAdditional (profiled) optimizations for complicated where clauses\n\nVersion 1.18_01, released January 12th, 2009\n---------------------------------------------\n\nNo code changes within SQL::Statement - but deliver and execute additional\ntests.\n\nVersion 1.17, released January 12th, 2009\n------------------------------------------\n\n* Fixed reported bugs:\n * RT#42263: GROUP BY doesn't group on multiple columns\n\nVersion 1.16_04, released 4 January, 2009\n------------------------------------------\n\n* added tests to prove valid quoting (most of them fail)\n* Reformat the source\n* add some (profiled) tweaks as removing useless regex to speed up SELECT\n* Fixed Bugs:\n * 14217\tDoes not correctly handle SQL statements with comments\n * 15686\tJoin syntax is case-sensitive, and common columns in natural\n joins are \"ambiguous\" [patch]\n * 13080\tCannot update a field based on its previous value\n * 26058\tfunctions on computed columns aliased to the underlying column\n name are not called\n\nVersion 1.16_03, released 1 January, 2009\n------------------------------------------\n\n* removed *.orig and *.rej relics\n\nVersion 1.16_02, released 1 January, 2009\n------------------------------------------\n\n* Changing join_2_tables to reduce memory usage when joining a lot of tables\n\n* Fixed Bugs:\n * 15688 Columns aliased with double quotes are a fatal error\n * 16579 Speed optimizations\n * 30590 Bug in SQL::Statement::is_number()\n * 41875 Bug in synopsis example\n\nVersion 1.16_01, released 1 January, 2009\n------------------------------------------\n\n* With this release, I'd like to welcome Jens Rehsack as co-maintainer of\n the SQL::Statement and SQL::Parser modules. Jens has added in some\n great improvements.\n Thanks Jens! -- Jeff\n\n* Adding a lot of join tests (once from Jeff, 48 from\n PostgreSQL official handbook) - no error of them will be corrected in the\n first run\n Thanks to Alexander Breibach <alexander.breibach\@gmx.de> -- Jens\n\nVersion 1.15, released 2 February, 2006\n----------------------------------------\n* fixed placeholder bug in SQL::Statement::UPDATE\n thanks for bug report Tanktalus\n\nVersion 1.14, released 21 April, 2005\n----------------------------------------\n * fixed circular dependency in tests (one mistakenly required AnyData)\n\nVersion 1.13, released 18 April, 2005\n----------------------------------------\n * pod fixes\n\nVersion 1.12, released 18 April, 2005\n----------------------------------------\n * added support for GROUP BY\n (several people sent suggestions for this in the past, please email me\n so I can credit you, sorry I lost the names)\n\n * added support for true LIMIT - if a LIMIT clause is specified and\n no ORDER BY clause is specified, the SELECT will stop searching\n when the limit is reached; with an ORDER BY clause it will still\n search the entire table because we can only ORDER a set; using\n LIMIT without an ORDER BY will greatly increase speed\n\n * added support for CREATE/DROP keyword|operator|type|function\n\n * optimized process_predicate to only look up scalars once\n\n * completely re-wrote the POD\n\n * fixed bug in primary key search optimization\n thanks for bug report and test scripts: Jim Lambert, <jimlambrtATmac.com>\n\n * fixed problem with all_cols slowing inserts\n thanks for patch and test Cosimo Streppone <cosimoATcpan.org>\n\n * cleaned up case of temp table column names\n thanks for bug report: Dan Wright\n\n * added a META.YML and extra tests\n\nVersion 1.11, released 28 March, 2005\n----------------------------------------\n * fixed bug in \"CREATE TABLE AS ...\"\n\nVersion 1.10, released 27 March, 2005\n----------------------------------------\n * added support for CREATE TABLE AS SELECT ... and CREATE TABLE AS IMPORT()\n\n * added support for in-memory tables and heterogeneous operations,\n see the SQL::Parser docs\n\n * added many new built-in functions see SQL::Statement::Functions.pm\n\n * added support for user-defined functions, see SQL::Statement::Functions.pm\n\n * added support for column name aliases\n thanks for patch, Robert Rothenberg\n\n * added support for comparison to empty string (e.g. WHERE col1='')\n currently returns the same as WHERE col1 IS NULL\n thanks for patch, cpanATgoess.org\n\n * fixed bug in S::P::clean_sql() newline-handling,\n thanks for patch Steffen G., steffenATkonzeptloses.de\n\n * fixed bug in SQL::Parser::feature()\n thanks for patch, chromatic\n\n * the word \"INTO\" is now optional in \"INSERT INTO tblname ...\"\n * the word \"FROM\" is now optional in \"DELETE FROM tblname ...\"\n thanks for suggestion, gipeol\@sci.kun.nl\n\n * optimized portions of eval_where, process_predicate, and is_matched\n HUGE thanks Dan Wright and Dean Arnold for patches\n\n * HUGE thanks to Dean Arnold for all the following which should clean up\n a number of bugs in parentheses parsing and in the predicates IN and\n BETWEEN as well as speed things up considerably\n\n\tSQL::Parser changes:\n\t- removed recursion from get_in(), get_btwn()\n\t- fixed paren scan and argument separator scan in get_in()\n\t- optimized get_in/get_btwn code\n\t- made get_in/get_btwn OO methods to support\n\t\tbeing overridden by subclasses\n\t- added transform_syntax() abstract method\n\t\tto permit subclasses to add their own\n\t\tsyntax extensions\n\t- rewrite of parens_search() to fixed predicate\n\t\tparen processing, remove recursion, and optimize\n\t\tcode\n\t- rewrite of non_parens_search() to fixed predicate\n\t\tparen processing and optimize code\n\t- rewrite of PREDICATE to optimize code; moved\n\t\toperator regex construction to dialect\n\t\tinitialization\n\t- change undo_string_funcs(), undo_math_funcs(),\n\t\tnongroup_numeric(), nongroup_string()\n\t\tto remove scoped recursion\n\t- fixed nongroup_numeric() for case insensitive\n\t\toperator match\n\t- fixed nongroup_string, undo_string_funcs() to\n\t\tinclude user defined funcs\n\t- fixed ROW_VALUE's scan for user defined function\n\t\targument separator scan\n\n * fixed function detection regex in SQL::Parser::ROW_VALUE\n \tto accomodate arbitrary spacing\n\n * fixed SQL::Parser::SELECT_LIST()/extract_column_list()\n \tto support concat operator '||' expressions\n\n * added following functions to SQL::Statement::Functions:\n \t- COALESCE\n \t- NVL (same as COALESCE)\n \t- DECODE (same as Oracle DECODE)\n \t- CONCAT\n \t- REPLACE/SUBSTITUTE\n\n * fixed/adapted SQL::Statement::get_row_value(),\n\tSQL::Statement::SELECT(), for join'ed\n \tresultsets\n\n\nVersion 1.09, released 22 April, 2004\n-------------------------------------\n * fixed parens parsing bug reported by Dan Wright, thanks!\n\n\nVersion 1.08, released 20 April, 2004\n-------------------------------------\n\n * fixed bug in JOIN handling introduced in 1.06\n\n\nVersion 1.07, released 20 April, 2004\n-------------------------------------\n\n * fixed infinite recursion bug with empty IN() predicate\n thanks chromatic, for the patch\n\n * fixed case issues with table aliases in joins\n thanks chromatic, for bug report\n\nVersion 1.06, released 18 April, 2004\n-------------------------------------\n\n * column and table name hashes now default to case sensitive\n\n * where() method now supported as per the docs\n\n\nVersion 1.005, released 26 October, 2002\n------------------------------------------\n\n * added support for MySQL-like \"DROP TABLE IF EXISTS\"\n\n * fixed bug in dotted column names e.g. tableA.colB\n\n * fixed bug in MAX and MIN (thanks Michael Kovacs,\n mkovacs\@turing.une.edu.au)\n\n * fixed bug in ORDER BY (when col names not in SELECT list)\n Thanks Janet Goldstein <jgold\@cidr.jhmi.edu>\n\n\nVersion 1.004, released 13 March, 2002\n------------------------------------------\n\n * added support for delimited identifiers (inside double quotes);\n these are case sensitive and can contain spaces and other\n special chars\n\n * added support for two forms of escaping single quotes inside\n quoted values: 'O\\'Brien' or 'O''Brien'\n\n * added support for both C-Style and SQL-Style double-hypen\n comments, e.g. /* comment */ or -- comment\n\n * added GetInfo.pm for use with \$dbh->get_info()\n\n * updated the readme file\n\n * fixed bug in update that refers to its own columns\n (e.g. SET num = num + 2)\n\n * fixed bug in MIN and MAX when used with strings\n Thanks Dean Kopesky <dean.kopesky\@reuters.com>\n\nVersion 1.003, released 01 March, 2002\n------------------------------------------\n\n * identifiers (names of columns, tables, and table name\n aliases) are now all case insensitive as required by the SQL\n standard. all older versions including the XS versions used\n case sensitive column names\n\n * added numerous examples to test.pl\n\n * improved and/or fixed bugs in:\n\n * placeholder support\n Thanks Achim Grolms <Achim.Grolms\@fujitsu-siemens.com>\n\n * ORDER BY clause\n Thanks Jan Stocker <jstocker\@tzi.de>\n\n * LIKE/CLIKE/RLIKE/IN predicates\n Thanks Udo Beckmann <Udo.Beckmann\@trinkaus.de>\n\n * table name aliases in explicit joins\n\nVersion 1.002, released 5 February, 2002\n----------------------------------------\n\n * added backwards compatiblity: both SQL::Statement and\n SQL::Parser now work in perl version 5.004 and above.\n\n * changed defaults for DBD::CSV so it now accepts new SQL\n without adding extra flags to scripts\n\n * added support for SQL comments\n\n * added support for temporary tables and on commit clauses in\n CREATE statements and drop behaviour flags in DROP statements\n (SQL::Parser only, not supported by SQL::Statement)\n\n * fixed bugs in qualified column names (e.g. tableA.*), and in\n joins using ON or WHERE\n\nVersion 1.001, released January 17,2002\n---------------------------------------\n\nFixed bug in UPDATE that caused the new value to be a hash\nrather than a scalar.\n\nVersion 1.0, released January 15, 2002\n--------------------------------------\n\nThis is the first CPAN release of the pure perl version of the\nmodule. It was previously released in an XS version by Jochen\nWiedman who has turned over maintenance of it to me.\n\nThe new Pure Perl version of SQL::Statement supports everything\nsupported by the XS version and, additionally, at least partial\nsupport for the following features that are not supported at all\nby the XS version:\n\n * Explicit and implicit joins\n * Table name aliases\n * Set functions\n * String functions\n * String concatenation\n * Numeric expressions\n * IN predicate\n * BETWEEN predicate\n * Alphabetic comparison in WHERE clauses\n * Ordering of text that looks like a number\n * Verbose error messages for both Parsing and Execution errors",
"raw_preamble" => "Changes log for Perl extension SQL::Statement\n\nVersion 1.405, released June 17, 2013\n-------------------------------------------------\n[Bug fixes]\n* INSERT now expands incomplete rows (Thanks to H.Merijn Brand)\n\nVersion 1.404, released May 23, 2013\n-------------------------------------------------\n[Bug fixes]\n* re-enable cleanup test_output* after test done\n* recommend Text::Soundex and do soundex-test only when have it,\n because it's going to be removed from core for Perl 5.19 (thank Merijn)\n\nVersion 1.403, released May 22, 2013\n-------------------------------------------------\n[Bug fixes]\n* fix documentation (rt#84889 - thanks Xavier Guimard and Florian,\n rt#85257 - thanks Andreas Koenig)\n\nVersion 1.402, released December 19, 2012\n-------------------------------------------------\n\n[Misc]\n* add Math::Complex 1.56 as recommendation (RT#81926, Sam Ferencik)\n* add Math::BigInt 1.88 as recommendation (RT#81927, Sam Ferencik)\n* clarify Test::Simple 1.90 is required for building (RT#81925, Sam Ferencik)\n\n[Bug fixes]\n* fix leaking reference to open tables outside SQL::Statement::execute\n (fixes RT#81523)\n* looks_like_number identifies 'nan' as number sometimes (add regex to\n t/06virtual.t)\n\nVersion 1.401, released October 29, 2012\n-------------------------------------------------\n\n[Misc]\n* Switch to 3-digited minor version\n\n[Bug fixes]\n* undo literal replaces in subqueries before passing them to the\n child parser\n* Fix doc typo RT#76764 (STEFFENW) - thanks Steffen\n* Fix typo documented in RT#71914 (reported by Ze'ev Atlas,\n fixed by H.Merijn Brand) - thanks Ze'ev and Merijn\n* Fix DROP TABLE behaviour and error detection\n\n[Improvements]\n* Improve documentation/tests for multiple JOIN's from RT#69573\n (from BBYRD) with modifications\n* Filling in the SQL92 gaps for functions (BBYRD) from RT#72638\n with minor modifications - thanks Brendan\n\nVersion 1.33, released February 05th, 2011\n----------------------------------------------\n\n[Bug fixes]\n* Move test dependencies to (unreleased) Bundle::Test::SQL::Statement\n to avoid circular dependencies\n\nVersion 1.32, released January 19th, 2011\n----------------------------------------------\n\n[Bug fixes]\n* Fixed invalid check for escaped single quotes\n* Fixed unpermitted modification of array source for table creation\n (CREATE TABLE AS IMPORT(?),[[..],[..]])\n* Fixing alias used in ORDER BY (RT#61384, thanks jvm)\n* Fixing ORDER BY behavior for multiple sort columns\n (slower, but guaranteed correct)\n\n[Improvements]\n* renamed fetch-method into fetch_row (keep fetch() as alias) and\n add a fetch_rows() to fetch all rows at once\n* Different accessors for direction of ORDER BY clause query part\n and it's boolean equivalent \"desc\" (0 or 1, respectively)\n* Add a lot of Pure-Perl DBD's as build dependency for testing\n (skip DBD::AnyData for now, because it seems to be broken - check\n for next release)\n\n[Misc]\n* Bump requirement of DBI to 1.616\n* switch for fully external DBD tests from DBD::XBase to DBD::SQLite\n* Document another limitation (lacking implicit creating temp table\n during processing a query using the same table with different aliases\n twice)\n\nVersion 1.31, released August 16th, 2010\n----------------------------------------------\n\n[Bug fixes]\n* Fix misbehaviour of DELETE/UPDATE for tables with only basic capabilities\n and no matching where clause (reported by H.Merijn Brand and Drew ...)\n* Fix some column identifier splits to respect quoted tables\n\n[Improvements]\n* Optimized some core routines between 25% and 50%.\n\nVersion 1.30, released August 1st, 2010\n----------------------------------------------\n\n[Bug fixes]\n* remove blib directory from distfile\n\nVersion 1.29, released August 1st, 2010\n----------------------------------------------\n\n[Bug fixes]\n* add some getters as documented in SQL::Statement::Structure\n (fixes RT#59834, thanks John Wiersba)\n* add missing import of function croak to SQL::Statement::Term::ColumnValue\n* fix assignment of parser result (doesn't run with perl-5.13.3)\n\nVersion 1.28, released July 15th, 2010\n----------------------------------------------\n\n[Improvements]\n* Introduce new \"capability\" method for SQL::Statement and SQL::Eval::Table\n + Add capability for \"insert_new_row\" to allow DBD::DBM to fix PK\n constrain on INSERT statements.\n* Performance of IMPORT feature improved (thanks to Sven Probst, RT#57322)\n\n[Bug fixes]\n* expect every table object being derived from SQL::Eval::Table\n* rewrite DELETE and UPDATE command based on table capabilities\n* add abstract methods for all methods derived classes must override\n (this means, open_table for SQL::Statement deriveds must be overridden\n and all data access methods of tables - see SQL::Eval::Table for details)\n* Tests are fixed to use TEMP TABLES explicitely when required\n* check for invalid column names fixed\n* Don't let depreciated parser structures stay alive in SQL::Statement when\n reusing the Parser\n\n[Documentation]\n* Method documentation of SQL::Statement and SQL::Eval::Table are improved\n* Add a Roadmap describing future plans for SQL::Statement (in addition to\n DBD::File::Roadmap).\n* POD spelling fixes provided by H.Merijn Brand and Pod::Spell::CommonMistakes\n (thanks Tux)\n* POD grammar fixes and reasonable sentences created by Martin Evans \n\n[Things that may break your code]\n* SQL::Statement 1.28 is expected not to work proper in combination with\n DBI 1.611 and below\n* SQL::Statement::ColumnValue expects now every table being derived from\n SQL::Eval::Table\n\nVersion 1.27, release May 06th, 2010\n----------------------------------------------\n\n[Bug fixes]\n* use originally given table name for open_table() on SELECT, too\n (all other command still use the originally given name)\n* warn/die -> carp/croak\n* fix delete_one_row & update_one_row ability using\n\n[Documentation]\n* Apply spelling fix patch from Ansgar Burchardt (RT#56475)\n\nVersion 1.26, release April 09th, 2010\n----------------------------------------------\n\n[Bug fixes]\n* Handle NULL columns in concatenation as empty strings\n\n[Improvements]\n* Change regex's in parser to use \\p{Word} instead of \\w to allow unicode\n support\n\n[Documentation]\n* Make clear, that identifiers are handled case insensetive and there is\n a real good solution provided by DBI which allows to live great with\n that behaviour.\n\nVersion 1.25, release March 15th, 2010\n----------------------------------------------\n\n[Bug fixes]\n* Keep org_table_names with schema information to allow derived\n table classes to handle as it seems reasonable there\n* Separate columns with \"\\0\" in multi-column aggregation to be able to\n difference between ('1','1foo') and ('11','foo')\n\n[Misc]\n* More resources added to META.yml\n\nVersion 1.24, release March 15th, 2010\n----------------------------------------------\n\n[Misc]\n* Ignore *.rej in MANIFEST.SKIP (fixes RT #52081 reported by\n Lars Thegler)\n\n[Bug fixes]\n* Add missing import of _INSTANCE in SQL::Statement::Function::NumericEval\n fixes RT #52356 - reported by Detlef Pilzecker)\n* Fix wrongly discarded DISTINCT clause (RT#53186)\n\n[Improvements]\n* Fix parsing errors of plain numbers (RT#16931)\n* Fix parsing errors of nested calculation / functions (RT#16931, RT#52356)\n* Rewrite result calculation of aggregation functions (simplify code, speed up)\n* Upgrade Makefile.PL (patch from Alexandr Ciornii) to handle different\n EU::MM versions and abilities properly\n* Update documentation to show how 'column_defs' and SQL::Statement::Term\n instances shall be used\n* Introduce SQL::Dialect::Role providing ini-style data access to SQL::Dialects\n (patch from Michael Schwern)\n\n[Things that may break your code]\n* SQL::Parser now didn't deliver a struct containing 'column_names',\n 'computed_columns' and 'set_functions' - it's combined into one member\n 'column_defs'.\n* Minimum required perl version is now 5.8 - upcoming next version of DBI\n requires perl 5.8, too - and I could simplify some code that's why\n\nVersion 1.23, release November 20th, 2009\n----------------------------------------------\n\n[Misc]\n* Applied patch from Marc Espie which fixes several orthographic\n errors in SQL::Statement::Syntax documentation.\n* Added a fixed version of test reported via RT #34121\n\n[Bug fixes]\n* Fix an issue in UPDATE command which 'shift's the values from\n the list of parameters which causes there're no more parameters\n left after first row get's updated (Fixes RT #50788)\n* Fix aggregate function handling of new code since 1.21_01\n* Correct handling of DISTINCT in aggregate functions\n\n[Improvements]\n* Add support for tables/columns starting with '_' for CSV and AnyData,\n which is usually forbidden by ANSI SQL\n* Add support for inserting multiple lines with one statement\n (fixes RT #31730)\n* Handle ANSI 'IS NULL' and CVS/AnyData 'IS NULL' different\n\n[Things that may break your code]\n* row_value now expects up to two arguments\n\nVersion 1.22, release October 10th, 2009\n----------------------------------------------\n\n[Misc]\n* Add missing changelog - no code changes\n\nVersion 1.21, release October 10th, 2009\n----------------------------------------------\n\n[Misc]\n* remove version dependency to check previously installed version\n* add DBD::File as \"Test\" requirement\n\nVersion 1.21_8, release October 5th, 2009\n----------------------------------------------\n\n[Bug fixes]\n* Add additional test for bug-fix in 1.21_7 to t/18bigjoin.t\n\n[Misc]\n* Correct some typo's in POD\n\nVersion 1.21_7, not public released\n----------------------------------------------\n\n[Bug fixes]\n* Don't fail for non-existent columns introduced by functions\n in joins\n\nVersion 1.21_6, release September 24th, 2009\n----------------------------------------------\n\n[Bug fixes]\n* Don't abort Makefile.PL when in automated smoke tests\n\nVersion 1.21_5, release September 23th, 2009\n----------------------------------------------\n\n[Bug fixes]\n* table order isn't wrongly used in order of appearance when SQL::Parser\n couldn't determine an order\n* Some internal fixes\n\n[Misc]\n* Updated dependency to Params::Util to non-leaking 1.00\n* Note dependency to Carp and Data::Dumper\n* rely on version to compare versions\n* Update POD for terms\n* Update\n\nVersion 1.21_4, release September 21th, 2009\n----------------------------------------------\n\n[Bug fixes]\n* modify regex to match types to fix problems with Perl 5.6.2\n* add DESTROY methods to ensure clean up\n* fix lower casing internal table names when joining tables\n* replace parameter shifting by assigning \@_ to the list of parameters\n\nVersion 1.21_3, release September 17th, 2009\n----------------------------------------------\n\n[Things that may break your code]\n* When someone accesses the where_clause attribute of the SQL::Statement\n instance - be aware that now IN and BETWEEN can be native entries\n\n[Bug fixes]\n* convert operation to upper case when surely initialized\n\n[Improvements]\n* IN and BETWEEN are now native operations - they are not expanded\n to OR'ed equalize operations anymore\n\nVersion 1.21_2, release September 15th, 2009\n----------------------------------------------\n\n[Things that may break your code]\n* modify behavior for unquoted identifiers - they're converted and\n returned lower cased now (instead upper cased as in 1.21_1)\n Fixes bug RT #48502\n\nVersion 1.21_1, release July 30th, 2009\n------------------------------------------\n\n[Things that may break your code]\n* removed SQL::Statement::Column\n* don't instantiate SQL::Statement::Functions objects\n* Reworked internal column and function handling to reduce code complexity\n* rows and columns aren't setable from outside a table or eval object\n anymore\n\n[Bug fixes and other changes]\n* Fixed bugs:\n + RT #47292: Test failures with recent DBI\n + RT #44512: Patch for CREATE TABLE parsing\n + RT #42676: tests 16 failed\n\nVersion 1.20, released March 5th, 2009\n------------------------------------------\n\n* Fixed Makefile in MANIFEST (reported by Havard Eidnes in RT #43586)\n* Fixed invalid label FETCHROW used (reported by Michael in RT #42982)\n* separated update_one_row and update_specific_row method names for tables\n to avoid confusion\n\nVersion 1.19, released February 6th, 2009\n------------------------------------------\n\n* Fixed OUTER JOIN behavior\n* Added version info to all *.pm files to allow CPAN::Reporter find updates\n* Correct META-Files\n* Fixed reported bugs:\n\n\nVersion 1.18_02, no public release\n-----------------------------------\n\nAdditional (profiled) optimizations for complicated where clauses\n\nVersion 1.18_01, released January 12th, 2009\n---------------------------------------------\n\nNo code changes within SQL::Statement - but deliver and execute additional\ntests.\n\nVersion 1.17, released January 12th, 2009\n------------------------------------------\n\n* Fixed reported bugs:\n * RT#42263: GROUP BY doesn't group on multiple columns\n\nVersion 1.16_04, released 4 January, 2009\n------------------------------------------\n\n* added tests to prove valid quoting (most of them fail)\n* Reformat the source\n* add some (profiled) tweaks as removing useless regex to speed up SELECT\n* Fixed Bugs:\n * 14217\tDoes not correctly handle SQL statements with comments\n * 15686\tJoin syntax is case-sensitive, and common columns in natural\n joins are \"ambiguous\" [patch]\n * 13080\tCannot update a field based on its previous value\n * 26058\tfunctions on computed columns aliased to the underlying column\n name are not called\n\nVersion 1.16_03, released 1 January, 2009\n------------------------------------------\n\n* removed *.orig and *.rej relics\n\nVersion 1.16_02, released 1 January, 2009\n------------------------------------------\n\n* Changing join_2_tables to reduce memory usage when joining a lot of tables\n\n* Fixed Bugs:\n * 15688 Columns aliased with double quotes are a fatal error\n * 16579 Speed optimizations\n * 30590 Bug in SQL::Statement::is_number()\n * 41875 Bug in synopsis example\n\nVersion 1.16_01, released 1 January, 2009\n------------------------------------------\n\n* With this release, I'd like to welcome Jens Rehsack as co-maintainer of\n the SQL::Statement and SQL::Parser modules. Jens has added in some\n great improvements.\n Thanks Jens! -- Jeff\n\n* Adding a lot of join tests (once from Jeff, 48 from\n PostgreSQL official handbook) - no error of them will be corrected in the\n first run\n Thanks to Alexander Breibach <alexander.breibach\@gmx.de> -- Jens\n\nVersion 1.15, released 2 February, 2006\n----------------------------------------\n* fixed placeholder bug in SQL::Statement::UPDATE\n thanks for bug report Tanktalus\n\nVersion 1.14, released 21 April, 2005\n----------------------------------------\n * fixed circular dependency in tests (one mistakenly required AnyData)\n\nVersion 1.13, released 18 April, 2005\n----------------------------------------\n * pod fixes\n\nVersion 1.12, released 18 April, 2005\n----------------------------------------\n * added support for GROUP BY\n (several people sent suggestions for this in the past, please email me\n so I can credit you, sorry I lost the names)\n\n * added support for true LIMIT - if a LIMIT clause is specified and\n no ORDER BY clause is specified, the SELECT will stop searching\n when the limit is reached; with an ORDER BY clause it will still\n search the entire table because we can only ORDER a set; using\n LIMIT without an ORDER BY will greatly increase speed\n\n * added support for CREATE/DROP keyword|operator|type|function\n\n * optimized process_predicate to only look up scalars once\n\n * completely re-wrote the POD\n\n * fixed bug in primary key search optimization\n thanks for bug report and test scripts: Jim Lambert, <jimlambrtATmac.com>\n\n * fixed problem with all_cols slowing inserts\n thanks for patch and test Cosimo Streppone <cosimoATcpan.org>\n\n * cleaned up case of temp table column names\n thanks for bug report: Dan Wright\n\n * added a META.YML and extra tests\n\nVersion 1.11, released 28 March, 2005\n----------------------------------------\n * fixed bug in \"CREATE TABLE AS ...\"\n\nVersion 1.10, released 27 March, 2005\n----------------------------------------\n * added support for CREATE TABLE AS SELECT ... and CREATE TABLE AS IMPORT()\n\n * added support for in-memory tables and heterogeneous operations,\n see the SQL::Parser docs\n\n * added many new built-in functions see SQL::Statement::Functions.pm\n\n * added support for user-defined functions, see SQL::Statement::Functions.pm\n\n * added support for column name aliases\n thanks for patch, Robert Rothenberg\n\n * added support for comparison to empty string (e.g. WHERE col1='')\n currently returns the same as WHERE col1 IS NULL\n thanks for patch, cpanATgoess.org\n\n * fixed bug in S::P::clean_sql() newline-handling,\n thanks for patch Steffen G., steffenATkonzeptloses.de\n\n * fixed bug in SQL::Parser::feature()\n thanks for patch, chromatic\n\n * the word \"INTO\" is now optional in \"INSERT INTO tblname ...\"\n * the word \"FROM\" is now optional in \"DELETE FROM tblname ...\"\n thanks for suggestion, gipeol\@sci.kun.nl\n\n * optimized portions of eval_where, process_predicate, and is_matched\n HUGE thanks Dan Wright and Dean Arnold for patches\n\n * HUGE thanks to Dean Arnold for all the following which should clean up\n a number of bugs in parentheses parsing and in the predicates IN and\n BETWEEN as well as speed things up considerably\n\n\tSQL::Parser changes:\n\t- removed recursion from get_in(), get_btwn()\n\t- fixed paren scan and argument separator scan in get_in()\n\t- optimized get_in/get_btwn code\n\t- made get_in/get_btwn OO methods to support\n\t\tbeing overridden by subclasses\n\t- added transform_syntax() abstract method\n\t\tto permit subclasses to add their own\n\t\tsyntax extensions\n\t- rewrite of parens_search() to fixed predicate\n\t\tparen processing, remove recursion, and optimize\n\t\tcode\n\t- rewrite of non_parens_search() to fixed predicate\n\t\tparen processing and optimize code\n\t- rewrite of PREDICATE to optimize code; moved\n\t\toperator regex construction to dialect\n\t\tinitialization\n\t- change undo_string_funcs(), undo_math_funcs(),\n\t\tnongroup_numeric(), nongroup_string()\n\t\tto remove scoped recursion\n\t- fixed nongroup_numeric() for case insensitive\n\t\toperator match\n\t- fixed nongroup_string, undo_string_funcs() to\n\t\tinclude user defined funcs\n\t- fixed ROW_VALUE's scan for user defined function\n\t\targument separator scan\n\n * fixed function detection regex in SQL::Parser::ROW_VALUE\n \tto accomodate arbitrary spacing\n\n * fixed SQL::Parser::SELECT_LIST()/extract_column_list()\n \tto support concat operator '||' expressions\n\n * added following functions to SQL::Statement::Functions:\n \t- COALESCE\n \t- NVL (same as COALESCE)\n \t- DECODE (same as Oracle DECODE)\n \t- CONCAT\n \t- REPLACE/SUBSTITUTE\n\n * fixed/adapted SQL::Statement::get_row_value(),\n\tSQL::Statement::SELECT(), for join'ed\n \tresultsets\n\n\nVersion 1.09, released 22 April, 2004\n-------------------------------------\n * fixed parens parsing bug reported by Dan Wright, thanks!\n\n\nVersion 1.08, released 20 April, 2004\n-------------------------------------\n\n * fixed bug in JOIN handling introduced in 1.06\n\n\nVersion 1.07, released 20 April, 2004\n-------------------------------------\n\n * fixed infinite recursion bug with empty IN() predicate\n thanks chromatic, for the patch\n\n * fixed case issues with table aliases in joins\n thanks chromatic, for bug report\n\nVersion 1.06, released 18 April, 2004\n-------------------------------------\n\n * column and table name hashes now default to case sensitive\n\n * where() method now supported as per the docs\n\n\nVersion 1.005, released 26 October, 2002\n------------------------------------------\n\n * added support for MySQL-like \"DROP TABLE IF EXISTS\"\n\n * fixed bug in dotted column names e.g. tableA.colB\n\n * fixed bug in MAX and MIN (thanks Michael Kovacs,\n mkovacs\@turing.une.edu.au)\n\n * fixed bug in ORDER BY (when col names not in SELECT list)\n Thanks Janet Goldstein <jgold\@cidr.jhmi.edu>\n\n\nVersion 1.004, released 13 March, 2002\n------------------------------------------\n\n * added support for delimited identifiers (inside double quotes);\n these are case sensitive and can contain spaces and other\n special chars\n\n * added support for two forms of escaping single quotes inside\n quoted values: 'O\\'Brien' or 'O''Brien'\n\n * added support for both C-Style and SQL-Style double-hypen\n comments, e.g. /* comment */ or -- comment\n\n * added GetInfo.pm for use with \$dbh->get_info()\n\n * updated the readme file\n\n * fixed bug in update that refers to its own columns\n (e.g. SET num = num + 2)\n\n * fixed bug in MIN and MAX when used with strings\n Thanks Dean Kopesky <dean.kopesky\@reuters.com>\n\nVersion 1.003, released 01 March, 2002\n------------------------------------------\n\n * identifiers (names of columns, tables, and table name\n aliases) are now all case insensitive as required by the SQL\n standard. all older versions including the XS versions used\n case sensitive column names\n\n * added numerous examples to test.pl\n\n * improved and/or fixed bugs in:\n\n * placeholder support\n Thanks Achim Grolms <Achim.Grolms\@fujitsu-siemens.com>\n\n * ORDER BY clause\n Thanks Jan Stocker <jstocker\@tzi.de>\n\n * LIKE/CLIKE/RLIKE/IN predicates\n Thanks Udo Beckmann <Udo.Beckmann\@trinkaus.de>\n\n * table name aliases in explicit joins\n\nVersion 1.002, released 5 February, 2002\n----------------------------------------\n\n * added backwards compatiblity: both SQL::Statement and\n SQL::Parser now work in perl version 5.004 and above.\n\n * changed defaults for DBD::CSV so it now accepts new SQL\n without adding extra flags to scripts\n\n * added support for SQL comments\n\n * added support for temporary tables and on commit clauses in\n CREATE statements and drop behaviour flags in DROP statements\n (SQL::Parser only, not supported by SQL::Statement)\n\n * fixed bugs in qualified column names (e.g. tableA.*), and in\n joins using ON or WHERE\n\nVersion 1.001, released January 17,2002\n---------------------------------------\n\nFixed bug in UPDATE that caused the new value to be a hash\nrather than a scalar.\n\nVersion 1.0, released January 15, 2002\n--------------------------------------\n\nThis is the first CPAN release of the pure perl version of the\nmodule. It was previously released in an XS version by Jochen\nWiedman who has turned over maintenance of it to me.\n\nThe new Pure Perl version of SQL::Statement supports everything\nsupported by the XS version and, additionally, at least partial\nsupport for the following features that are not supported at all\nby the XS version:\n\n * Explicit and implicit joins\n * Table name aliases\n * Set functions\n * String functions\n * String concatenation\n * Numeric expressions\n * IN predicate\n * BETWEEN predicate\n * Alphabetic comparison in WHERE clauses\n * Ordering of text that looks like a number\n * Verbose error messages for both Parsing and Execution errors\n\n\n\n",
"releases" => []
}
|