Skip to content

Commit

Permalink
Fixed #17448 -- Improved test and documented raw-sql gis query
Browse files Browse the repository at this point in the history
  • Loading branch information
claudep committed Aug 25, 2012
1 parent e6e01f6 commit 62e1c5a
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
4 changes: 3 additions & 1 deletion django/contrib/gis/tests/geoapp/tests.py
Expand Up @@ -189,7 +189,9 @@ def test_inherited_geofields(self):
def test_raw_sql_query(self):
"Testing raw SQL query."
cities1 = City.objects.all()
cities2 = City.objects.raw('select * from geoapp_city')
# Only PostGIS would support a 'select *' query because of its recognized
# HEXEWKB format for geometry fields
cities2 = City.objects.raw('select id, name, asText(point) from geoapp_city')
self.assertEqual(len(cities1), len(list(cities2)))
self.assertTrue(isinstance(cities2[0].point, Point))

Expand Down
11 changes: 11 additions & 0 deletions docs/ref/contrib/gis/tutorial.txt
Expand Up @@ -671,6 +671,17 @@ of abstraction::

__ http://spatialreference.org/ref/epsg/32140/

.. admonition:: Raw queries

When using :doc:`raw queries </topics/db/sql>`, you should generally wrap
your geometry fields with the ``asText()`` SQL function so as the field
value will be recognized by GEOS::

City.objects.raw('SELECT id, name, asText(point) from myapp_city')

This is not absolutely required by PostGIS, but generally you should only
use raw queries when you know exactly what you are doing.

Lazy Geometries
---------------
Geometries come to GeoDjango in a standardized textual representation. Upon
Expand Down

0 comments on commit 62e1c5a

Please sign in to comment.