Using comparable property as a selected element in SQL is a use case which hasn't been addressed as of yet - the main usage was so far just for producing WHERE/ORDER BY/etc. expressions. In particular, the comparable property doesn't have any query setup capabilities (i.e. where it puts itself into a SQL expression as a column to be loaded) nor any ability to receive result rows in an ORM entity loading context. This example though is just a column loading context.
So for the exact thing you're trying to do, it would probably work if you changed your __clause_element__ method to return a concatenation, since column elements within sess.query(X) are expected to be scalar ColumnElement objects: def __clause_element__(self): r = None for col in self.prop.descriptor.columns: if r is None: r = col else: r = r + text("' '") + col But really, if you're using comparable property as a loader, I wouldn't use comparable property anyway. It's much easier to achieve as a regular column_property, which has full blown ORM capabilities, meaning that it works as an entity attribute loader as well: mapper(MyClass, mytable, properties ={ 'full_name':column_property(mytable.c.first_name + text("' '") + mytable.c.last_name) }) The comparison generated by the above property would look like: WHERE table.firstname || ' ' || table.lastname = ? If you wanted to generate the criterion using AND the way your custom prop comparator does, you can plug your comparator in using comparator_factory - this option is available in rc1 but has not yet been documented (its a TODO for the 0.5.0 milestone): mapper(MyClass, mytable, properties ={ 'full_name':column_property(mytable.c.first_name + text("' '") + mytable.c.last_name, comparator_factory = JoinedValuesProperty.Comparator) }) You still would want your __clause_element__ to return the SQL concatenation expression. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---