summaryrefslogtreecommitdiff
path: root/CHANGELOG
blob: a3a223bf6efa7991f701b325e7d5935fbfd50931 (plain)
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
Development Version
-------------------

Enhancements

* Add comma_first option: When splitting list "comma first" notation
  is used (issue141).

Bug Fixes

* Fix parsing of incomplete AS (issue284, by vmuriart).
* Fix parsing of Oracle names containing dollars (issue291).
* Fix parsing of UNION ALL (issue294).

Internal Changes

* `is_whitespace` and `is_group` changed into properties


Release 0.2.1 (Aug 13, 2016)
---------------------------

Notable Changes

* PostgreSQL: Function bodys are parsed as literal string. Previously
  sqlparse assumed that all function bodys are parsable psql
  strings (see issue277).

Bug Fixes

* Fix a regression to parse streams again (issue273, reported and
  test case by gmccreight).
* Improve Python 2/3 compatibility when using parsestream (isseu190,
  by phdru).
* Improve splitting of PostgreSQL functions (issue277).


Release 0.2.0 (Jul 20, 2016)
----------------------------

IMPORTANT: The supported Python versions have changed with this release.
sqlparse 0.2.x supports Python 2.7 and Python >= 3.3.

Thanks to the many contributors for writing bug reports and working
on pull requests who made this version possible!

Internal Changes

* sqlparse.SQLParseError was removed from top-level module and moved to
  sqlparse.exceptions.
* sqlparse.sql.Token.to_unicode was removed.
* The signature of a filter's process method has changed from
  process(stack, stream) -> to process(stream). Stack was never used at
  all.
* Lots of code cleanups and modernization (thanks esp. to vmuriart!).
* Improved grouping performance. (sjoerdjob)

Enhancements

* Support WHILE loops (issue215, by shenlongxing).
* Better support for CTEs (issue217, by Andrew Tipton).
* Recognize USING as a keyword more consistently (issue236, by koljonen).
* Improve alignment of columns (issue207, issue235, by vmuriat).
* Add wrap_after option for better alignment when formatting
  lists (issue248, by Dennis Taylor).
* Add reindent-aligned option for alternate formatting (Adam Greenhall)
* Improved grouping of operations (issue211, by vmuriat).

Bug Fixes

* Leading whitespaces are now removed when format() is called with
  strip_whitespace=True (issue213, by shenlongxing).
* Fix typo in keywords list (issue229, by cbeloni).
* Fix parsing of functions in comparisons (issue230, by saaj).
* Fix grouping of identifiers (issue233).
* Fix parsing of CREATE TABLE statements (issue242, by Tenghuan).
* Minor bug fixes (issue101).
* Improve formatting of CASE WHEN constructs (issue164, by vmuriat).


Release 0.1.19 (Mar 07, 2016)
-----------------------------

Bug Fixes

* Fix IndexError when statement contains WITH clauses (issue205).


Release 0.1.18 (Oct 25, 2015)
-----------------------------

Bug Fixes

* Remove universal wheel support, added in 0.1.17 by mistake.


Release 0.1.17 (Oct 24, 2015)
-----------------------------

Enhancements

* Speed up parsing of large SQL statements (pull request: issue201, fixes the
  following issues: issue199, issue135, issue62, issue41, by Ryan Wooden).

Bug Fixes

* Fix another splitter bug regarding DECLARE (issue194).

Misc

* Packages on PyPI are signed from now on.


Release 0.1.16 (Jul 26, 2015)
-----------------------------

Bug Fixes

* Fix a regression in get_alias() introduced in 0.1.15 (issue185).
* Fix a bug in the splitter regarding DECLARE (issue193).
* sqlformat command line tool doesn't duplicat newlines anymore (issue191).
* Don't mix up MySQL comments starting with hash and MSSQL
  temp tables (issue192).
* Statement.get_type() now ignores comments at the beginning of
  a statement (issue186).


Release 0.1.15 (Apr 15, 2015)
-----------------------------

Bug Fixes

* Fix a regression for identifiers with square bracktes
  notation (issue153, by darikg).
* Add missing SQL types (issue154, issue155, issue156, by jukebox).
* Fix parsing of multi-line comments (issue172, by JacekPliszka).
* Fix parsing of escaped backslashes (issue174, by caseyching).
* Fix parsing of identifiers starting with underscore (issue175).
* Fix misinterpretation of IN keyword (issue183).

Enhancements

* Improve formatting of HAVING statements.
* Improve parsing of inline comments (issue163).
* Group comments to parent object (issue128, issue160).
* Add double precision builtin (issue169, by darikg).
* Add support for square bracket array indexing (issue170, issue176,
  issue177 by darikg).
* Improve grouping of aliased elements (issue167, by darikg).
* Support comments starting with '#' character (issue178).


Release 0.1.14 (Nov 30, 2014)
-----------------------------

Bug Fixes

* Floats in UPDATE statements are now handled correctly (issue145).
* Properly handle string literals in comparisons (issue148, change proposed
  by aadis).
* Fix indentation when using tabs (issue146).

Enhancements

* Improved formatting in list when newlines precede commas (issue140).


Release 0.1.13 (Oct 09, 2014)
-----------------------------

Bug Fixes

* Fix a regression in handling of NULL keywords introduced in 0.1.12.


Release 0.1.12 (Sep 20, 2014)
-----------------------------

Bug Fixes

* Fix handling of NULL keywords in aliased identifiers.
* Fix SerializerUnicode to split unquoted newlines (issue131, by Michael Schuller).
* Fix handling of modulo operators without spaces (by gavinwahl).

Enhancements

* Improve parsing of identifier lists containing placeholders.
* Speed up query parsing of unquoted lines (by Michael Schuller).


Release 0.1.11 (Feb 07, 2014)
-----------------------------

Bug Fixes

* Fix incorrect parsing of string literals containing line breaks (issue118).
* Fix typo in keywords, add MERGE, COLLECT keywords (issue122/124,
  by Cristian Orellana).
* Improve parsing of string literals in columns.
* Fix parsing and formatting of statements containing EXCEPT keyword.
* Fix Function.get_parameters() (issue126/127, by spigwitmer).

Enhancements

* Classify DML keywords (issue116, by Victor Hahn).
* Add missing FOREACH keyword.
* Grouping of BEGIN/END blocks.

Other

* Python 2.5 isn't automatically tested anymore, neither Travis nor Tox
  still support it out of the box.


Release 0.1.10 (Nov 02, 2013)
-----------------------------

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.