diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-08-06 15:46:31 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-08-06 15:46:31 +0000 |
commit | 665cd4d36acb7ecbb50c3ebfdf25535aa375cbb9 (patch) | |
tree | b29aed72c0020791528c1d3323c782c08368061f /lib/sqlalchemy | |
parent | 4cd1902796546d5d2b2927c8e2afbcb00459341f (diff) | |
download | sqlalchemy-665cd4d36acb7ecbb50c3ebfdf25535aa375cbb9.tar.gz |
- Temporarily rolled back the "ORDER BY" enhancement
from [ticket:1068]. This feature is on hold
pending further development.
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r-- | lib/sqlalchemy/databases/access.py | 1 | ||||
-rw-r--r-- | lib/sqlalchemy/databases/firebird.py | 1 | ||||
-rw-r--r-- | lib/sqlalchemy/databases/informix.py | 5 | ||||
-rw-r--r-- | lib/sqlalchemy/databases/maxdb.py | 1 | ||||
-rw-r--r-- | lib/sqlalchemy/databases/mssql.py | 1 | ||||
-rw-r--r-- | lib/sqlalchemy/databases/oracle.py | 1 | ||||
-rw-r--r-- | lib/sqlalchemy/databases/sybase.py | 1 | ||||
-rw-r--r-- | lib/sqlalchemy/engine/default.py | 1 | ||||
-rw-r--r-- | lib/sqlalchemy/sql/compiler.py | 16 |
9 files changed, 8 insertions, 20 deletions
diff --git a/lib/sqlalchemy/databases/access.py b/lib/sqlalchemy/databases/access.py index 0dfa62888..425c1eb69 100644 --- a/lib/sqlalchemy/databases/access.py +++ b/lib/sqlalchemy/databases/access.py @@ -170,7 +170,6 @@ class AccessDialect(default.DefaultDialect): name = 'access' supports_sane_rowcount = False supports_sane_multi_rowcount = False - supports_simple_order_by_label = False def type_descriptor(self, typeobj): newobj = types.adapt_type(typeobj, self.colspecs) diff --git a/lib/sqlalchemy/databases/firebird.py b/lib/sqlalchemy/databases/firebird.py index 412f7bce6..b2fcea095 100644 --- a/lib/sqlalchemy/databases/firebird.py +++ b/lib/sqlalchemy/databases/firebird.py @@ -310,7 +310,6 @@ class FBDialect(default.DefaultDialect): max_identifier_length = 31 preexecute_pk_sequences = True supports_pk_autoincrement = False - supports_simple_order_by_label = False def __init__(self, type_conv=200, concurrency_level=1, **kwargs): default.DefaultDialect.__init__(self, **kwargs) diff --git a/lib/sqlalchemy/databases/informix.py b/lib/sqlalchemy/databases/informix.py index 39d0ee96a..e5f400770 100644 --- a/lib/sqlalchemy/databases/informix.py +++ b/lib/sqlalchemy/databases/informix.py @@ -202,7 +202,6 @@ class InfoDialect(default.DefaultDialect): default_paramstyle = 'qmark' # for informix 7.31 max_identifier_length = 18 - supports_simple_order_by_label = False def __init__(self, use_ansi=True, **kwargs): self.use_ansi = use_ansi @@ -415,12 +414,12 @@ class InfoCompiler(compiler.DefaultCompiler): else: return compiler.DefaultCompiler.visit_function( self , func ) - def visit_clauselist(self, list, within_order_by=False, **kwargs): + def visit_clauselist(self, list, **kwargs): try: li = [ c for c in list.clauses if c.name != 'oid' ] except: li = [ c for c in list.clauses ] - return ', '.join([s for s in [self.process(c, within_order_by=within_order_by) for c in li] if s is not None]) + return ', '.join([s for s in [self.process(c) for c in li] if s is not None]) class InfoSchemaGenerator(compiler.SchemaGenerator): def get_column_specification(self, column, first_pk=False): diff --git a/lib/sqlalchemy/databases/maxdb.py b/lib/sqlalchemy/databases/maxdb.py index c51f1b431..c9ea2b579 100644 --- a/lib/sqlalchemy/databases/maxdb.py +++ b/lib/sqlalchemy/databases/maxdb.py @@ -473,7 +473,6 @@ class MaxDBDialect(default.DefaultDialect): supports_sane_rowcount = True supports_sane_multi_rowcount = False preexecute_pk_sequences = True - supports_simple_order_by_label = False # MaxDB-specific datetimeformat = 'internal' diff --git a/lib/sqlalchemy/databases/mssql.py b/lib/sqlalchemy/databases/mssql.py index f03856736..cfb34dd78 100644 --- a/lib/sqlalchemy/databases/mssql.py +++ b/lib/sqlalchemy/databases/mssql.py @@ -361,7 +361,6 @@ class MSSQLExecutionContext_pyodbc (MSSQLExecutionContext): class MSSQLDialect(default.DefaultDialect): name = 'mssql' - supports_simple_order_by_label = False colspecs = { sqltypes.Unicode : MSNVarchar, diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index 8341e3401..f2e5ba2f6 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -240,7 +240,6 @@ class OracleDialect(default.DefaultDialect): preexecute_pk_sequences = True supports_pk_autoincrement = False default_paramstyle = 'named' - supports_simple_order_by_label = False def __init__(self, use_ansi=True, auto_setinputsizes=True, auto_convert_lobs=True, threaded=True, allow_twophase=True, arraysize=50, **kwargs): default.DefaultDialect.__init__(self, **kwargs) diff --git a/lib/sqlalchemy/databases/sybase.py b/lib/sqlalchemy/databases/sybase.py index dd55ac0d2..aea77f8bf 100644 --- a/lib/sqlalchemy/databases/sybase.py +++ b/lib/sqlalchemy/databases/sybase.py @@ -455,7 +455,6 @@ class SybaseSQLDialect(default.DefaultDialect): supports_unicode_statements = False supports_sane_rowcount = False supports_sane_multi_rowcount = False - supports_simple_order_by_label = False def __new__(cls, dbapi=None, *args, **kwargs): if cls != SybaseSQLDialect: diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index b240130f6..a3ae6d456 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -40,7 +40,6 @@ class DefaultDialect(base.Dialect): dbapi_type_map = {} default_paramstyle = 'named' supports_default_values = True - supports_simple_order_by_label = True def __init__(self, convert_unicode=False, assert_unicode=False, encoding='utf-8', paramstyle=None, dbapi=None, **kwargs): self.convert_unicode = convert_unicode diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index 4ad07b49d..4a47df941 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -226,7 +226,7 @@ class DefaultCompiler(engine.Compiled): def visit_grouping(self, grouping, **kwargs): return "(" + self.process(grouping.element) + ")" - def visit_label(self, label, result_map=None, within_columns_clause=False, within_order_by=False): + def visit_label(self, label, result_map=None, within_columns_clause=False): # only render labels within the columns clause # or ORDER BY clause of a select. dialect-specific compilers # can modify this behavior. @@ -237,10 +237,6 @@ class DefaultCompiler(engine.Compiled): result_map[labelname.lower()] = (label.name, (label, label.element, labelname), label.element.type) return " ".join([self.process(label.element), self.operator_string(operators.as_), self.preparer.format_label(label, labelname)]) - elif within_order_by and self.dialect.supports_simple_order_by_label: - labelname = self._truncated_identifier("colident", label.name) - - return self.preparer.format_label(label, labelname) else: return self.process(label.element) @@ -311,7 +307,7 @@ class DefaultCompiler(engine.Compiled): def visit_null(self, null, **kwargs): return 'NULL' - def visit_clauselist(self, clauselist, within_order_by=False, **kwargs): + def visit_clauselist(self, clauselist, **kwargs): sep = clauselist.operator if sep is None: sep = " " @@ -319,7 +315,7 @@ class DefaultCompiler(engine.Compiled): sep = ', ' else: sep = " " + self.operator_string(clauselist.operator) + " " - return sep.join(s for s in (self.process(c, within_order_by=within_order_by) for c in clauselist.clauses) + return sep.join(s for s in (self.process(c) for c in clauselist.clauses) if s is not None) def visit_calculatedclause(self, clause, **kwargs): @@ -371,8 +367,8 @@ class DefaultCompiler(engine.Compiled): else: return text - def visit_unary(self, unary, within_order_by=False, **kwargs): - s = self.process(unary.element, within_order_by=within_order_by) + def visit_unary(self, unary, **kwargs): + s = self.process(unary.element) if unary.operator: s = self.operator_string(unary.operator) + " " + s if unary.modifier: @@ -564,7 +560,7 @@ class DefaultCompiler(engine.Compiled): return select._distinct and "DISTINCT " or "" def order_by_clause(self, select): - order_by = self.process(select._order_by_clause, within_order_by=True) + order_by = self.process(select._order_by_clause) if order_by: return " ORDER BY " + order_by else: |