Changeset 9272
- Timestamp:
- 10/24/08 04:36:22 (3 months ago)
- Files:
-
- django/trunk/django/db/backends/oracle/query.py (modified) (2 diffs)
- django/trunk/django/db/models/sql/query.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/db/backends/oracle/query.py
r9235 r9272 26 26 27 27 class OracleQuery(QueryClass): 28 def __reduce__(self): 29 """ 30 Enable pickling for this class (normal pickling handling doesn't 31 work as Python can only pickle module-level classes by default). 32 """ 33 if hasattr(QueryClass, '__getstate__'): 34 assert hasattr(QueryClass, '__setstate__') 35 data = self.__getstate__() 36 else: 37 data = self.__dict__ 38 return (unpickle_query_class, (QueryClass,), data) 39 28 40 def resolve_columns(self, row, fields=()): 29 41 # If this query has limit/offset information, then we expect the … … 121 133 _classes[QueryClass] = OracleQuery 122 134 return OracleQuery 135 136 def unpickle_query_class(QueryClass): 137 """ 138 Utility function, called by Python's unpickling machinery, that handles 139 unpickling of Oracle Query subclasses. 140 """ 141 # XXX: Would be nice to not have any dependency on cx_Oracle here. Since 142 # modules can't be pickled, we need a way to know to load the right module. 143 import cx_Oracle 144 145 klass = query_class(QueryClass, cx_Oracle) 146 return klass.__new__(klass) 147 unpickle_query_class.__safe_for_unpickling__ = True 148 django/trunk/django/db/models/sql/query.py
r9251 r9272 28 28 from sets import Set as set # Python 2.3 fallback 29 29 30 __all__ = ['Query' ]31 32 class Query(object):30 __all__ = ['Query', 'BaseQuery'] 31 32 class BaseQuery(object): 33 33 """ 34 34 A single SQL query. … … 1758 1758 # default. 1759 1759 if connection.features.uses_custom_query_class: 1760 Query = connection.ops.query_class(Query) 1760 Query = connection.ops.query_class(BaseQuery) 1761 else: 1762 Query = BaseQuery 1761 1763 1762 1764 def get_order_dir(field, default='ASC'):
