I'm using Postgres 8.3 and sqlalchemy 0.5.0rc2 - when I'm doing a
select, it seems I can't concatenate a function with another column -
rather that use the || operator, it tries to use the || operator.

Code to reproduce example:
import sqlalchemy as sa
from sqlalchemy import *
from sqlalchemy.sql import *

meta = MetaData()

def get_pg_statement(s):
        return s.compile(bind=create_engine('postgres://'))

pt = Table('people', meta,
        Column('id', Integer, primary_key=True),
        Column('first_name', String(100)),
        Column('last_name', String(100))
)

statements = (
        select([func.lower(pt.c.first_name)]),
        select([pt.c.first_name + pt.c.last_name]),
        select([func.lower(pt.c.first_name) + pt.c.first_name +
pt.c.last_name]),
)

print sa.__version__

for s in statements:
        print get_pg_statement(s)


--------------------------------------------------------------------------------

Output of sample (line breaks removed):
0.5.0rc2
SELECT lower(people.first_name) AS lower_1 FROM people
SELECT people.first_name || people.last_name AS anon_1 FROM people
SELECT (lower(people.first_name) + people.first_name) ||
people.last_name AS anon_1 FROM people

Note on the third select, the + operator is used rather than ||.

The following error is thrown from PostGres:
ERROR:  operator does not exist: text + character varying
LINE 1: SELECT (lower(people.first_name) + people.first_name) ||
peo...
                                         ^
HINT:  No operator matches the given name and argument type(s). You
might need to add explicit type casts.

When running "SELECT (lower(people.first_name) || people.first_name)
|| people.last_name AS anon_1 FROM people" the querey executes
properly.

Is there a workaround for this?
--~--~---------~--~----~------------~-------~--~----~
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