Hi all, In my program I'm using PGArray to store a list of strings in the database (defined as text[] in the schema).
When I use Session.merge to create a copy of an object in the current session, the list is converted to a single string (the first from the list) in the copy. I've placed an example below. dont_load True or False doesn't make a difference. I've tested with SQLAlchemy 0.5.4 and 0.4.6. Any idea what the problem might be and what I can do about it? Thanks, Roel van Os Example code: #!/usr/bin/env python from sqlalchemy import * from sqlalchemy.sql import * from sqlalchemy.orm import * from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.databases.postgres import PGArray Base = declarative_base() class TestClass(Base): __tablename__ = 'testclass' id = Column(Integer, primary_key=True) test_array = Column(PGArray(Text)) dburl = 'postgres://xxxx:x...@xxxx/xxxx' engine = create_engine(dburl, convert_unicode=True, echo=False, pool_recycle=60) Session = sessionmaker(bind=engine) Base.metadata.create_all(engine) # Create a test object s1 = Session() o1 = TestClass(test_array=['1', '2', '3']) s1.save(o1) s1.commit() o1_id = o1.id s1.close() # Load the test object s2 = Session() o2 = s2.query(TestClass).get(o1_id) print o2.test_array assert len(o2.test_array) == 3 # Merge the object into another session s3 = Session() o3 = s3.merge(o2, dont_load=True) # Should print the same as above, but prints "1" print o3.test_array assert len(o3.test_array) == 3 --~--~---------~--~----~------------~-------~--~----~ 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 sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---