Table name clash with sqlalchemy keyword

Issue #148 resolved
Former user created an issue

I table metadata of the form:

artists = Table('artists', postgres_engine, Column('id', Integer, primary_key = True), Column('email_address', String), Column('first_name', String), Column('last_name', String), Column('username', String), Column('position', String), Column('group', String), Column('level', Integer), Column('dept', String), Column('team', Integer), schema='smr' )

I can use this without problem if I comment out the line containing 'group'. If it is not commented out I get the following error:

Traceback (most recent call last): File "Artist.py", line 28, in ? artist = artistmapper.select_by(username='camerons') File "/usr/lib/python2.3/site-packages/SQLAlchemy-0.1.5-py2.3.egg/sqlalchemy/mapping/mapper.py", line 422, in select_by return self.select_whereclause(self._by_clause(args, params)) File "/usr/lib/python2.3/site-packages/SQLAlchemy-0.1.5-py2.3.egg/sqlalchemy/mapping/mapper.py", line 524, in select_whereclause return self._select_statement(statement, params=params) File "/usr/lib/python2.3/site-packages/SQLAlchemy-0.1.5-py2.3.egg/sqlalchemy/mapping/mapper.py", line 544, in _select_statement return self.instances(statement.execute(params), kwargs) File "/usr/lib/python2.3/site-packages/SQLAlchemy-0.1.5-py2.3.egg/sqlalchemy/sql.py", line 436, in execute return c.execute(multiparams, **params) File "/usr/lib/python2.3/site-packages/SQLAlchemy-0.1.5-py2.3.egg/sqlalchemy/sql.py", line 330, in execute return self.engine.execute_compiled(self, params) File "/usr/lib/python2.3/site-packages/SQLAlchemy-0.1.5-py2.3.egg/sqlalchemy/engine.py", line 645, in execute_compiled proxy(str(compiled), parameters) File "/usr/lib/python2.3/site-packages/SQLAlchemy-0.1.5-py2.3.egg/sqlalchemy/engine.py", line 640, in proxy self.execute(statement, parameters, connection=connection, cursor=cursor, return_raw=True) File "/usr/lib/python2.3/site-packages/SQLAlchemy-0.1.5-py2.3.egg/sqlalchemy/engine.py", line 691, in execute self._execute(cursor, statement, parameters) File "/usr/lib/python2.3/site-packages/SQLAlchemy-0.1.5-py2.3.egg/sqlalchemy/engine.py", line 711, in _execute raise exceptions.SQLError(statement, parameters, e) sqlalchemy.exceptions.SQLError: (ProgrammingError) syntax error at or near "group" at character 136 'SELECT artists.username AS artists_username, artists.first_name AS artists_first_name, artists.last_name AS artists_last_name, artists.group AS artists_group, artists.level AS artists_level, artists.dept AS artists_dept, artists.team AS artists_team, artists.position AS artists_position, artists.email_address AS artists_email_address, artists.id AS artists_id \nFROM smr.artists \nWHERE artists.username = %(artists_username)s' {'artists_username': 'camerons'}

Comments (1)

  1. Mike Bayer repo owner

    "group" is a reserved word in postgres. Im not even sure how you have a table with a column named "group" in it in the first place:

    test=> create table foo(id integer primary key, group varchar(20));
    ERROR:  syntax error at or near "group" at character 42
    
  2. Log in to comment