Sanj
12 years ago
2 changed files with 39 additions and 3 deletions
@ -0,0 +1,28 @@ |
|||
--- django/contrib/gis/db/backends/postgis/adapter.py.orig 2011-09-09 11:51:27.769648151 +0100
|
|||
+++ django/contrib/gis/db/backends/postgis/adapter.py 2011-09-12 14:09:51.733962708 +0100
|
|||
@@ -12,6 +12,7 @@
|
|||
# the adaptor) and the SRID from the geometry. |
|||
self.ewkb = str(geom.ewkb) |
|||
self.srid = geom.srid |
|||
+ self._adapter = Binary(self.ewkb)
|
|||
|
|||
def __conform__(self, proto): |
|||
# Does the given protocol conform to what Psycopg2 expects? |
|||
@@ -26,10 +27,15 @@
|
|||
def __str__(self): |
|||
return self.getquoted() |
|||
|
|||
+ def prepare(self, conn):
|
|||
+ # Pass the connection to the adapter: this allows escaping the binary
|
|||
+ # in the style required by the server's standard_conforming_string setting.
|
|||
+ self._adapter.prepare(conn)
|
|||
+
|
|||
def getquoted(self): |
|||
"Returns a properly quoted string for use in PostgreSQL/PostGIS." |
|||
- # Want to use WKB, so wrap with psycopg2 Binary() to quote properly.
|
|||
- return 'ST_GeomFromEWKB(E%s)' % Binary(self.ewkb)
|
|||
+ # psycopg will figure out whether to use E'\\000' or '\000'
|
|||
+ return 'ST_GeomFromEWKB(%s)' % self._adapter.getquoted()
|
|||
|
|||
def prepare_database_save(self, unused): |
|||
return self |
Loading…
Reference in new issue