Here is a crude outline (need to properly escape table name, etc.), of
what I think might work, and it seems to render properly, but crashes
with:
File "/home/rarch/tg2env/lib/python2.6/site-packages/
SQLAlchemy-0.6.4.2kbdev-py2.6-linux-x86_64.egg/sqlalchemy/engine/
default.py", line 353, in __init__
raise exc.ArgumentError("Not an executable clause: %s" % compiled)
ArgumentError: Not an executable clause:
...
class MyQuery(Query):
_for_update_of = None
@_generative()
def for_update_of(self, arg):
"""Keep track that we want to for update of this"""
self._for_update_of = class_mapper(arg).mapped_table.name
def _compile_context(self, labels=True):
context = super(MyQuery, self)._compile_context(labels)
if self._for_update_of:
context.statement = ForUpdateOf(context.statement,
self._for_update_of)
return context
class ForUpdateOf(ClauseElement):
def __init__(self, statement, for_update_of):
self.statement = statement
self.for_update_of = for_update_of
@compiles(ForUpdateOf)
def compile_forupdateof(element, compiler, **kw):
return "%s FOR UPDATE OF %s" %
(compiler.process(element.statement), element.for_update_of)
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.