Did you call something like select([literal('foo')]) ? If you use
straight Python literals in the columns clause (i.e. select(['foo'])),
they will be rendered directly, which is probably what you want here.
This is fixed in r4933 / r4934 0.5 trunk/ 0.4 branch.
On Jul 15, 2008, at 10:52 AM, Stefano Bartaletti wrote:
>
> I recently installed 0.4.6 to check the news, and with horror I saw
> this dump:
>
> Traceback (most recent call last):
> File "/media/userdata/stefano/Documenti/projects/Tosi/erp/
> login.py", line 85, in onCheckUtente
> self.checkUtente(self.inputUser.GetValue().lower())
> File "/media/userdata/stefano/Documenti/projects/Tosi/erp/
> login.py", line 64, in checkUtente
> user = mapperFunctions.getUtente(user)
> File "/media/userdata/stefano/Documenti/projects/Tosi/erp/dyemagic2/
> mapperFunctions.py", line 19, in getUtente
> rep = mappers.Reparto.query.first() #Per inizializzare la sessione
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/scoping.py", line 144, in __getattr__
> return getattr(self.context.registry().query(class_), key)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/session.py", line 895, in query
> return self._query_cls(entities, self, **kwargs)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/query.py", line 97, in __init__
> self.__setup_aliasizers(self._entities)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/query.py", line 111, in __setup_aliasizers
> mapper, selectable, is_aliased_class = _entity_info(entity,
> ent.entity_name)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/util.py", line 398, in _entity_info
> mapper = class_mapper(entity, entity_name, compile)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/util.py", line 488, in class_mapper
> mapper = mapper.compile()
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/mapper.py", line 368, in compile
> mapper.__initialize_properties()
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/mapper.py", line 389, in
> __initialize_properties
> prop.init(key, self)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/interfaces.py", line 378, in init
> self.do_init()
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/properties.py", line 514, in do_init
> self._post_init()
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/properties.py", line 750, in _post_init
> super(PropertyLoader, self).do_init()
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/interfaces.py", line 548, in do_init
> self.strategy = self.__init_strategy(self.strategy_class)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/interfaces.py", line 537, in __init_strategy
> strategy.init()
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/orm/strategies.py", line 339, in init
> self.logger.info("%s lazy loading clause %s" % (self,
> self.__lazywhere))
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/sql/expression.py", line 1155, in __str__
> return unicode(self.compile()).encode('ascii', 'backslashreplace')
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/sql/expression.py", line 1151, in compile
> compiler.compile()
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/sql/compiler.py", line 175, in compile
> self.string = self.process(self.statement)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/sql/compiler.py", line 183, in process
> return meth(obj, **kwargs)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/sql/compiler.py", line 377, in visit_binary
> return self.process(binary.left) + " " + op + " " +
> self.process(binary.right)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/sql/compiler.py", line 183, in process
> return meth(obj, **kwargs)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/sql/compiler.py", line 227, in visit_grouping
> return "(" + self.process(grouping.element) + ")"
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/sql/compiler.py", line 183, in process
> return meth(obj, **kwargs)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/sql/compiler.py", line 507, in visit_select
> for co in select.inner_columns
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0beta2-
> py2.5.egg/sqlalchemy/sql/compiler.py", line 463, in
> label_select_column
> return column.label(column.anon_label)
> AttributeError: '_BindParamClause' object has no attribute
> 'anon_label'
>
> After some helpless googling for version upgrade errors, I read the
> code and I added _BindParamClause in function label_select_column:
> elif not isinstance(column, (sql._UnaryExpression,
> sql._TextClause)) and (not hasattr(column, 'name') or
> isinstance(column, sql._Function)):
> changed to:
> elif not isinstance(column, (sql._UnaryExpression, sql._TextClause,
> sql._BindParamClause)) and (not hasattr(column, 'name') or
> isinstance(column, sql._Function)):
>
> works fine after this change (I can imagine what I did but just
> imagine heh)
>
> --
> Cordialmente
>
> Stefano Bartaletti
> Responsabile Software
>
> G.Tosi Spa Tintoria
>
> Skype account: stefano.bartaletti
> ICQ contact : 1271960
>
> Viale dell'Industria 61
> 21052 Busto Arsizio (VA)
>
> Tel. +39 0331 34 48 11
> Fax +39 0331 35 21 23
>
> -------------------------------------------------------------------------------------
> Prima di stampare questo messaggio, assicuratevi che sia VERAMENTE
> necessario.
>
> Il futuro dell'ambiente (e quindi il nostro) e' nelle mani (e nella
> testa) di tutti!
>
> >
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---