summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-02-07 19:51:45 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2010-02-07 19:51:45 +0000
commit52ab4041affc8618892d82d82281eedc5b3d0b6f (patch)
tree1d935eaac3eaec44e8ec4c57ed9587a22769655e /lib
parented8b310479eab10a66ccc347144179fef3b0d5a2 (diff)
downloadsqlalchemy-52ab4041affc8618892d82d82281eedc5b3d0b6f.tar.gz
add sql_compiler property to all Compiled subclasses for convenience
Diffstat (limited to 'lib')
-rw-r--r--lib/sqlalchemy/engine/base.py10
-rw-r--r--lib/sqlalchemy/sql/compiler.py4
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py
index 98d06a792..6886adee8 100644
--- a/lib/sqlalchemy/engine/base.py
+++ b/lib/sqlalchemy/engine/base.py
@@ -628,6 +628,16 @@ class Compiled(object):
self.string = self.process(self.statement)
+ @property
+ def sql_compiler(self):
+ """Return a Compiled that is capable of processing SQL expressions.
+
+ If this compiler is one, it would likely just return 'self'.
+
+ """
+
+ raise NotImplementedError()
+
def process(self, obj, **kwargs):
return obj._compiler_dispatch(self, **kwargs)
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py
index 90def1941..43c38a1c5 100644
--- a/lib/sqlalchemy/sql/compiler.py
+++ b/lib/sqlalchemy/sql/compiler.py
@@ -232,6 +232,10 @@ class SQLCompiler(engine.Compiled):
def is_subquery(self):
return len(self.stack) > 1
+ @property
+ def sql_compiler(self):
+ return self
+
def construct_params(self, params=None, _group_number=None):
"""return a dictionary of bind parameter keys and values"""