Browse Source

Revert "Fixed #22401 -- Deprecated regular expression parsing of initial SQL in favor of installing sqlparse."

This reverts commit 071c9337750b296d198cced56f3ffad0e176afb6.

This introduced a regression on MySQL and custom SQL is deprecated.
Tim Graham 11 years ago
parent
commit
47927eb786

+ 13 - 22
django/core/management/sql.py

@@ -10,7 +10,7 @@ from django.conf import settings
 from django.core.management.base import CommandError
 from django.db import models, router
 from django.utils import six
-from django.utils.deprecation import RemovedInDjango19Warning, RemovedInDjango20Warning
+from django.utils.deprecation import RemovedInDjango19Warning
 
 
 def sql_create(app_config, style, connection):
@@ -155,27 +155,18 @@ def sql_all(app_config, style, connection):
 
 
 def _split_statements(content):
-    try:
-        import sqlparse
-    except ImportError:
-        warnings.warn(
-            "Providing intial SQL data works better with sqlparse installed "
-            "and it will be required in Django 2.0.", RemovedInDjango20Warning
-        )
-        comment_re = re.compile(r"^((?:'[^']*'|[^'])*?)--.*$")
-        statements = []
-        statement = []
-        for line in content.split("\n"):
-            cleaned_line = comment_re.sub(r"\1", line).strip()
-            if not cleaned_line:
-                continue
-            statement.append(cleaned_line)
-            if cleaned_line.endswith(";"):
-                statements.append(" ".join(statement))
-                statement = []
-        return statements
-    else:
-        return sqlparse.split(content.strip())
+    comment_re = re.compile(r"^((?:'[^']*'|[^'])*?)--.*$")
+    statements = []
+    statement = []
+    for line in content.split("\n"):
+        cleaned_line = comment_re.sub(r"\1", line).strip()
+        if not cleaned_line:
+            continue
+        statement.append(cleaned_line)
+        if cleaned_line.endswith(";"):
+            statements.append(" ".join(statement))
+            statement = []
+    return statements
 
 
 def custom_sql_for_model(model, style, connection):

+ 0 - 8
docs/howto/initial-data.txt

@@ -103,14 +103,6 @@ directories.
 Providing initial SQL data
 ==========================
 
-.. deprecated:: 1.8
-
-    Historically this functionality has used regular expression parsing of the
-    initial SQL which is a bit buggy. This parsing is now deprecated in favor
-    of installing `sqlparse <https://pypi.python.org/pypi/sqlparse>`_; doing so
-    will be required for this functionality in Django 2.0. You can install it
-    using ``pip install sqlparse``.
-
 Django provides a hook for passing the database arbitrary SQL that's executed
 just after the CREATE TABLE statements when you run :djadmin:`migrate`. You can
 use this hook to populate default records, or you could also create SQL

+ 0 - 2
docs/internals/contributing/writing-code/unit-tests.txt

@@ -166,7 +166,6 @@ dependencies:
 *  memcached_, plus a :ref:`supported Python binding <memcached>`
 *  gettext_ (:ref:`gettext_on_windows`)
 *  selenium_
-*  sqlparse_
 
 You can find these dependencies in `pip requirements files`_ inside the
 ``tests/requirements`` directory of the Django source tree and install them
@@ -198,7 +197,6 @@ associated tests will be skipped.
 .. _memcached: http://memcached.org/
 .. _gettext: http://www.gnu.org/software/gettext/manual/gettext.html
 .. _selenium: https://pypi.python.org/pypi/selenium
-.. _sqlparse: https://pypi.python.org/pypi/sqlparse
 .. _pip requirements files: http://www.pip-installer.org/en/latest/cookbook.html#requirements-files
 
 Code coverage

+ 0 - 3
docs/internals/deprecation.txt

@@ -25,9 +25,6 @@ about each item can often be found in the release notes of two versions prior.
 * Using an incorrect count of unpacked values in the ``for`` template tag
   will raise an exception rather than fail silently.
 
-* The regular expression parsing of SQL initial data will be removed and
-  ``sqlparse`` will be required for the feature.
-
 .. _deprecation-removed-in-1.9:
 
 1.9

+ 0 - 12
docs/releases/1.8.txt

@@ -128,9 +128,6 @@ Management Commands
 * :djadmin:`dumpdata` now has the option :djadminopt:`--output` which allows
   specifying the file to which the serialized data is written.
 
-* :ref:`initial-sql` now works better if the `sqlparse
-  <https://pypi.python.org/pypi/sqlparse>`_ Python library is installed.
-
 Models
 ^^^^^^
 
@@ -281,12 +278,3 @@ Using an incorrect count of unpacked values in the :ttag:`for` template tag
 
 Using an incorrect count of unpacked values in :ttag:`for` tag will raise an
 exception rather than fail silently in Django 2.0.
-
-Regular expression parsing of initial SQL
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The somewhat buggy regular expression logic used for parsing :ref:`SQL initial
-data <initial-sql>` has been deprecated. Install `sqlparse
-<https://pypi.python.org/pypi/sqlparse>`_ if you wish to use this feature.
-Doing so will be required in Django 2.0 when the regular expression logic is
-removed.

+ 0 - 1
tests/requirements/base.txt

@@ -5,4 +5,3 @@ Pillow
 PyYAML
 pytz > dev
 selenium
-sqlparse