summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/ansisql.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-08-18 01:00:44 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-08-18 01:00:44 +0000
commit820346549b7e50e927c519c9bc54934e9a440422 (patch)
tree1747619176907dac7663f54408a4288129e49a3a /lib/sqlalchemy/ansisql.py
parent74595d900c23fcefe75353d3099cb73a55a0b6cf (diff)
downloadsqlalchemy-820346549b7e50e927c519c9bc54934e9a440422.tar.gz
- modified SQL operator functions to be module-level operators, allowing
SQL expressions to be pickleable [ticket:735] - small adjustment to mapper class.__init__ to allow for Py2.6 object.__init__() behavior
Diffstat (limited to 'lib/sqlalchemy/ansisql.py')
-rw-r--r--lib/sqlalchemy/ansisql.py70
1 files changed, 35 insertions, 35 deletions
diff --git a/lib/sqlalchemy/ansisql.py b/lib/sqlalchemy/ansisql.py
index dd4065f39..5f5e1c171 100644
--- a/lib/sqlalchemy/ansisql.py
+++ b/lib/sqlalchemy/ansisql.py
@@ -12,7 +12,7 @@ module.
import string, re, sets, operator
-from sqlalchemy import schema, sql, engine, util, exceptions
+from sqlalchemy import schema, sql, engine, util, exceptions, operators
from sqlalchemy.engine import default
@@ -50,39 +50,39 @@ BIND_PARAMS_ESC = re.compile(r'\x5c(:[\w\$]+)(?![:\w\$])', re.UNICODE)
ANONYMOUS_LABEL = re.compile(r'{ANON (-?\d+) (.*)}')
OPERATORS = {
- operator.and_ : 'AND',
- operator.or_ : 'OR',
- operator.inv : 'NOT',
- operator.add : '+',
- operator.mul : '*',
- operator.sub : '-',
- operator.div : '/',
- operator.mod : '%',
- operator.truediv : '/',
- operator.lt : '<',
- operator.le : '<=',
- operator.ne : '!=',
- operator.gt : '>',
- operator.ge : '>=',
- operator.eq : '=',
- sql.ColumnOperators.distinct_op : 'DISTINCT',
- sql.ColumnOperators.concat_op : '||',
- sql.ColumnOperators.like_op : 'LIKE',
- sql.ColumnOperators.notlike_op : 'NOT LIKE',
- sql.ColumnOperators.ilike_op : 'ILIKE',
- sql.ColumnOperators.notilike_op : 'NOT ILIKE',
- sql.ColumnOperators.between_op : 'BETWEEN',
- sql.ColumnOperators.in_op : 'IN',
- sql.ColumnOperators.notin_op : 'NOT IN',
- sql.ColumnOperators.comma_op : ', ',
- sql.ColumnOperators.desc_op : 'DESC',
- sql.ColumnOperators.asc_op : 'ASC',
+ operators.and_ : 'AND',
+ operators.or_ : 'OR',
+ operators.inv : 'NOT',
+ operators.add : '+',
+ operators.mul : '*',
+ operators.sub : '-',
+ operators.div : '/',
+ operators.mod : '%',
+ operators.truediv : '/',
+ operators.lt : '<',
+ operators.le : '<=',
+ operators.ne : '!=',
+ operators.gt : '>',
+ operators.ge : '>=',
+ operators.eq : '=',
+ operators.distinct_op : 'DISTINCT',
+ operators.concat_op : '||',
+ operators.like_op : 'LIKE',
+ operators.notlike_op : 'NOT LIKE',
+ operators.ilike_op : 'ILIKE',
+ operators.notilike_op : 'NOT ILIKE',
+ operators.between_op : 'BETWEEN',
+ operators.in_op : 'IN',
+ operators.notin_op : 'NOT IN',
+ operators.comma_op : ', ',
+ operators.desc_op : 'DESC',
+ operators.asc_op : 'ASC',
- sql.Operators.from_ : 'FROM',
- sql.Operators.as_ : 'AS',
- sql.Operators.exists : 'EXISTS',
- sql.Operators.is_ : 'IS',
- sql.Operators.isnot : 'IS NOT'
+ operators.from_ : 'FROM',
+ operators.as_ : 'AS',
+ operators.exists : 'EXISTS',
+ operators.is_ : 'IS',
+ operators.isnot : 'IS NOT'
}
class ANSIDialect(default.DefaultDialect):
@@ -284,7 +284,7 @@ class ANSICompiler(engine.Compiled, sql.ClauseVisitor):
if isinstance(label.obj, sql._ColumnClause):
self.column_labels[label.obj._label] = labelname
self.column_labels[label.name] = labelname
- return " ".join([self.process(label.obj), self.operator_string(sql.ColumnOperators.as_), self.preparer.format_label(label, labelname)])
+ return " ".join([self.process(label.obj), self.operator_string(operators.as_), self.preparer.format_label(label, labelname)])
def visit_column(self, column, **kwargs):
# there is actually somewhat of a ruleset when you would *not* necessarily
@@ -343,7 +343,7 @@ class ANSICompiler(engine.Compiled, sql.ClauseVisitor):
sep = clauselist.operator
if sep is None:
sep = " "
- elif sep == sql.ColumnOperators.comma_op:
+ elif sep == operators.comma_op:
sep = ', '
else:
sep = " " + self.operator_string(clauselist.operator) + " "