Development Version ------------------- Bug Fixes * Removed buffered reading again, it obviously causes wrong parsing in some rare cases (issue114). * Fix regression in setup.py introduced 10 months ago (issue115). Enhancements * Improved support for JOINs, by Alexander Beedie. Release 0.1.9 (Sep 28, 2013) ---------------------------- Bug Fixes * Fix an regression introduced in 0.1.5 where sqlparse didn't properly distinguished between single and double quoted strings when tagging identifier (issue111). Enhancements * New option to truncate long string literals when formatting. * Scientific numbers are pares correctly (issue107). * Support for arithmetic expressions (issue109, issue106; by prudhvi). Release 0.1.8 (Jun 29, 2013) ---------------------------- Bug Fixes * Whitespaces within certain keywords are now allowed (issue97, patch proposed by xcombelle). Enhancements * Improve parsing of assignments in UPDATE statements (issue90). * Add STRAIGHT_JOIN statement (by Yago Riveiro). * Function.get_parameters() now returns the parameter if only one parameter is given (issue94, by wayne.wuw). * sqlparse.split() now removes leading and trailing whitespaces from splitted statements. * Add USE as keyword token (by mulos). * Improve parsing of PEP249-style placeholders (issue103). Release 0.1.7 (Apr 06, 2013) ---------------------------- Bug Fixes * Fix Python 3 compatibility of sqlformat script (by Piet Delport). * Fix parsing of SQL statements that contain binary data (by Alexey Malyshev). * Fix a bug where keywords were identified as aliased identifiers in invalid SQL statements. * Fix parsing of identifier lists where identifiers are keywords too (issue10). Enhancements * Top-level API functions now accept encoding keyword to parse statements in certain encodings more reliable (issue20). * Improve parsing speed when SQL contains CLOBs or BLOBs (issue86). * Improve formatting of ORDER BY clauses (issue89). * Formatter now tries to detect runaway indentations caused by parsing errors or invalid SQL statements. When re-indenting such statements the formatter flips back to column 0 before going crazy. Other * Documentation updates. Release 0.1.6 (Jan 01, 2013) ---------------------------- sqlparse is now compatible with Python 3 without any patches. The Python 3 version is generated during install by 2to3. You'll need distribute to install sqlparse for Python 3. Bug Fixes * Fix parsing error with dollar-quoted procedure bodies (issue83). Other * Documentation updates. * Test suite now uses tox and py.test. * py3k fixes (by vthriller). * py3k fixes in setup.py (by Florian Bauer). * setup.py now requires distribute (by Florian Bauer). Release 0.1.5 (Nov 13, 2012) ---------------------------- Bug Fixes * Improve handling of quoted identifiers (issue78). * Improve grouping and formatting of identifiers with operators (issue53). * Improve grouping and formatting of concatenated strings (issue53). * Improve handling of varchar() (by Mike Amy). * Clean up handling of various SQL elements. * Switch to py.test and clean up tests. * Several minor fixes. Other * Deprecate sqlparse.SQLParseError. Please use sqlparse.exceptions.SQLParseError instead. * Add caching to speed up processing. * Add experimental filters for token processing. * Add sqlformat.parsestream (by quest). Release 0.1.4 (Apr 20, 2012) ---------------------------- Bug Fixes * Avoid "stair case" effects when identifiers, functions, placeholders or keywords are mixed in identifier lists (issue45, issue49, issue52) and when asterisks are used as operators (issue58). * Make keyword detection more restrict (issue47). * Improve handling of CASE statements (issue46). * Fix statement splitting when parsing recursive statements (issue57, thanks to piranna). * Fix for negative numbers (issue56, thanks to kevinjqiu). * Pretty format comments in identifier lists (issue59). * Several minor bug fixes and improvements. Release 0.1.3 (Jul 29, 2011) ---------------------------- Bug Fixes * Improve parsing of floats (thanks to Kris). * When formatting a statement a space before LIMIT was removed (issue35). * Fix strip_comments flag (issue38, reported by ooberm...@gmail.com). * Avoid parsing names as keywords (issue39, reported by djo...@taket.org). * Make sure identifier lists in subselects are grouped (issue40, reported by djo...@taket.org). * Split statements with IF as functions correctly (issue33 and issue29, reported by charles....@unige.ch). * Relax detection of keywords, esp. when used as function names (issue36, nyuhu...@gmail.com). * Don't treat single characters as keywords (issue32). * Improve parsing of stand-alone comments (issue26). * Detection of placeholders in paramterized queries (issue22, reported by Glyph Lefkowitz). * Add parsing of MS Access column names with braces (issue27, reported by frankz...@gmail.com). Other * Replace Django by Flask in App Engine frontend (issue11). Release 0.1.2 (Nov 23, 2010) ---------------------------- Bug Fixes * Fixed incorrect detection of keyword fragments embed in names (issue7, reported and initial patch by andyboyko). * Stricter detection of identfier aliases (issue8, reported by estama). * WHERE grouping consumed closing parenthesis (issue9, reported by estama). * Fixed an issue with trailing whitespaces (reported by Kris). * Better detection of escaped single quotes (issue13, reported by Martin Brochhaus, patch by bluemaro with test case by Dan Carley). * Ignore identifier in double-quotes when changing cases (issue 21). * Lots of minor fixes targeting encoding, indentation, statement parsing and more (issues 12, 14, 15, 16, 18, 19). * Code cleanup with a pinch of refactoring. Release 0.1.1 (May 6, 2009) --------------------------- Bug Fixes * Lexers preserves original line breaks (issue1). * Improved identifier parsing: backtick quotes, wildcards, T-SQL variables prefixed with @. * Improved parsing of identifier lists (issue2). * Recursive recognition of AS (issue4) and CASE. * Improved support for UPDATE statements. Other * Code cleanup and better test coverage. Release 0.1.0 (Apr 8, 2009) --------------------------- * Initial release.