From 9c9f35ed27d1762f8da5ac0683d350952debf709 Mon Sep 17 00:00:00 2001
From: Tim Graham <timograham@gmail.com>
Date: Thu, 30 Oct 2014 13:52:42 -0400
Subject: [PATCH] [1.7.x] Fixed #23152 -- Added support for transactional
 Spatialite metadata initialization.

Thanks Doug Goldstein for the initial patch.

Backport of 57e40551e4 from master
---
 django/contrib/gis/db/backends/spatialite/creation.py | 3 ++-
 docs/releases/1.7.2.txt                               | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/django/contrib/gis/db/backends/spatialite/creation.py b/django/contrib/gis/db/backends/spatialite/creation.py
index a3d4de9369..4a6a122337 100644
--- a/django/contrib/gis/db/backends/spatialite/creation.py
+++ b/django/contrib/gis/db/backends/spatialite/creation.py
@@ -95,7 +95,8 @@ class SpatiaLiteCreation(DatabaseCreation):
             # InitSpatialMetaData() transparently creates the spatial metadata
             # tables
             cur = self.connection._cursor()
-            cur.execute("SELECT InitSpatialMetaData()")
+            arg = "1" if self.connection.ops.spatial_version >= (4, 1, 0) else ""
+            cur.execute("SELECT InitSpatialMetaData(%s)" % arg)
         else:
             # Spatialite < 2.4 -- Load the initial SQL
 
diff --git a/docs/releases/1.7.2.txt b/docs/releases/1.7.2.txt
index 9f20e0a01b..5d4ea56850 100644
--- a/docs/releases/1.7.2.txt
+++ b/docs/releases/1.7.2.txt
@@ -34,3 +34,6 @@ Bugfixes
   ``AlterIndexTogether`` or ``AlterUniqueTogether`` (:ticket:`23614`).
 
 * Updated the first day of the week in the Ukrainian locale to Monday.
+
+* Added support for transactional spatial metadata initialization on
+  SpatiaLite 4.1+ (:ticket:`23152`).