can't reproduce (though the ARRAY(unicode) type is not what psycopg2 returns, and there seems to be a difference in behavior between sqlalchemy.ARRAY and sqlalchemy.dialects.postgresql.ARRAY).

please provide a complete example based on the below test script and stack traces

also my PG database doesn't know about the jsonb_object_agg function

from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()


class A(Base):
    __tablename__ = 'a'
    id = Column(Integer, primary_key=True)
    x = Column(Unicode)
    y = Column(Unicode)

e = create_engine("postgresql://scott:tiger@localhost/test", echo=True)
Base.metadata.drop_all(e)
Base.metadata.create_all(e)

s = Session(e)
s.add(A(x="x", y="y"))
s.commit()

row = s.query(func.array_agg(tuple_(A.x, A.y), type_=ARRAY(Unicode))).scalar()
print row





On 04/11/2017 09:04 AM, Антонио Антуан wrote:
Hi
I want to build such query with sqlalchemy:
|
SELECT array_agg((column1,column2))fromtable
|

Using psql it works perfectly and returns such result:
|
{"(col1_row1_value, col2_row1_value)","(col1_row2_value,
col2_row2_value)"...}
|

I tried several forms of SQLA-query:

|>> from sqlalchemy.dialects.postgresql import ARRAY
from sqlalchemy.sql.elements import Tuple
... func.array_agg(Tuple(Model.col1,Model.col2),type_=ARRAY(Unicode))...
...
TypeError: unhashable type: 'list'
... func.array_agg(Tuple(Model.col1, Model.col2), type_=ARRAY(Unicode,
as_tuple=True))...
...# returns value like this: ('{', '"', '(', 'c',...)
... func.array_agg(Tuple(Model.col1, Model.col2), type_=ARRAY(Tuple,
as_tuple=True))...
...
AttributeError: Neither 'Tuple' object nor 'Comparator' object has an
attribute 'dialect_impl'
|

At first, I wanted to use /`func.jsonb_object_agg(Model.col1,
Model.col2)`/, but it raises */"unhashable type: dict"/*
*/
/*
Could you point to solution?

--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and
Verifiable Example. See http://stackoverflow.com/help/mcve for a full
description.
---
You received this message because you are subscribed to the Google
Groups "sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

--
SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- You received this message because you are subscribed to the Google Groups "sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to