using "name" instead of "key" in column._make_proxy

Issue #2597 resolved
Mike Bayer repo owner created an issue
from sqlalchemy import *

metadata = MetaData()

product_offering = Table('product_offering', metadata,
    Column('product_offering_id', Integer, key='id'),
)

q2 = select([product_offering.c.id](product_offering.c.id))._clone()

q2.c

from sqlalchemy.sql import table, column

c = column("product_offering_id")
c.key = "id"
product_offering = table('product_offering', c)
q2 = select([product_offering.c.id](product_offering.c.id))._clone()


q2.c

Comments (3)

  1. Mike Bayer reporter

    the patch includes that a ColumnClause should be putting itself into the table based on key:

    diff -r f0a9d39634d214672ab5171c7b8178abf2cbea94 lib/sqlalchemy/schema.py
    --- a/lib/sqlalchemy/schema.py  Wed Oct 31 00:55:43 2012 -0400
    +++ b/lib/sqlalchemy/schema.py  Wed Oct 31 13:59:45 2012 -0400
    @@ -1145,7 +1145,7 @@
             c.table = selectable
             selectable._columns.add(c)
             if selectable._is_clone_of is not None:
    -            c._is_clone_of = selectable._is_clone_of.columns[c.name](c.name)
    +            c._is_clone_of = selectable._is_clone_of.columns[c.key](c.key)
             if self.primary_key:
                 selectable.primary_key.add(c)
             c.dispatch.after_parent_attach(c, selectable)
    diff -r f0a9d39634d214672ab5171c7b8178abf2cbea94 lib/sqlalchemy/sql/expression.py
    --- a/lib/sqlalchemy/sql/expression.py  Wed Oct 31 00:55:43 2012 -0400
    +++ b/lib/sqlalchemy/sql/expression.py  Wed Oct 31 13:59:45 2012 -0400
    @@ -4421,7 +4421,7 @@
             c._proxies = [self](self)
             if selectable._is_clone_of is not None:
                 c._is_clone_of = \
    -                selectable._is_clone_of.columns.get(c.name)
    +                selectable._is_clone_of.columns.get(c.key)
    
             if attach:
                 selectable._columns[c.key](c.key) = c
    @@ -4490,7 +4490,7 @@
             # end Py2K
    
         def append_column(self, c):
    -        self._columns[c.name](c.name) = c
    +        self._columns[c.key](c.key) = c
             c.table = self
    
         def get_children(self, column_collections=True, **kwargs):
    
  2. Log in to comment