Thanks.

Trying to do this in 0.5, it seems someone deleted the Query.compile()
method without updating the rest of the code:
Traceback (most recent call last):
  File "./test1.py", line 139, in ?
    try: exit(main(*argv))
  File "./test1.py", line 121, in main
    print_query(q)
  File "./test1.py", line 20, in print_query
    print str(q)
  File "/python-2.4.1/lib/python2.4/site-packages/
SQLAlchemy-0.5.0beta1-py2.4.egg/sqlalchemy/orm/query.py", line 1448,
in __str__
    return str(self.compile())
AttributeError: 'Query' object has no attribute 'compile'

Reverting to 0.4, there are other problems. Statement.params is a
function, so I added some ()'s, but it just returns the same query
again. Statement.positiontup doesn't exist, and the string stmt
doesn't have formatting to make use of python's % operator.

After about an hour of looking, I can't figure out how to get my
scalars out of the query object.



On Jun 25, 7:25 am, Michael Bayer <[EMAIL PROTECTED]> wrote:
> On Jun 24, 2008, at 9:27 PM, bukzor wrote:
>
>
>
> > Is there a way to print out the query as it would execute on the
> > server? I'd like to copy/paste it into the server to get the 'explain'
> > output, and the '%s' variables are very unhelpful here.
>
> the string output of str(statement) is what's actually sent to the
> client lib.   In some cases, that is the actual string that goes to
> the server, such as cx_oracle, which receives the bind parameters
> separately within the network conversation.  The fact that MySQLDB and
> psycopg2 do an in-client "substitution" of the string before passing
> on is an implementation artifact of those libraries.
>
> Feel free to construct the string yourself (this is specific to
> MySQL's bind param style):
>
> stmt = str(statement)
> compiled = statement.compile()
> params = compiled.params
> stmt = stmt % [params[k] for k in compiled.positiontup]
>
> > I'd also like to turn off the 'alias and backtick-escape every column'
> > default behavior if I can.
>
> we don't "backtick every column".  We quote case sensitive idenfitier
> names, if that's what you mean, where "case sensitive" is any
> identifier that is spelled out in MixedCase - this is required for the
> column to be properly recognized by the database.  Use all lower case
> letters to indicate a "case insensitive" identifier.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to