mirror of
https://github.com/django/django.git
synced 2025-10-29 16:46:11 +00:00
Fixed #14733: no longer "validate" .raw() queries.
Turns out that a lot more than just SELECT can return data, and this list is very hard to define up front in a cross-database manner. So let's just assume that anyone using raw() is at least halfway competant and can deal with the error messages if they don't use a data-returning query. Thanks to Christophe Pettus for the patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@15803 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -31,7 +31,6 @@ class RawQuery(object):
|
||||
"""
|
||||
|
||||
def __init__(self, sql, using, params=None):
|
||||
self.validate_sql(sql)
|
||||
self.params = params or ()
|
||||
self.sql = sql
|
||||
self.using = using
|
||||
@@ -62,11 +61,6 @@ class RawQuery(object):
|
||||
return [converter(column_meta[0])
|
||||
for column_meta in self.cursor.description]
|
||||
|
||||
def validate_sql(self, sql):
|
||||
if not sql.lower().strip().startswith('select'):
|
||||
raise InvalidQuery('Raw queries are limited to SELECT queries. Use '
|
||||
'connection.cursor directly for other types of queries.')
|
||||
|
||||
def __iter__(self):
|
||||
# Always execute a new query for a new iterator.
|
||||
# This could be optimized with a cache at the expense of RAM.
|
||||
|
||||
Reference in New Issue
Block a user