On Fri, Jun 23, 2023 at 10:48:27AM +0200, Julien Cigar wrote:
> 
> On Wed, Jun 21, 2023 at 08:35:36AM -0400, Mike Bayer wrote:
> > 
> > 
> > 
> > On Wed, Jun 21, 2023, at 5:12 AM, Julien Cigar wrote:
> > > Hello,
> > >
> > > I'm trying to add a column_property to recursively load and merge some
> > > json column.
> > >
> > > I have the following:
> > > https://gist.github.com/silenius/1af1072abae5829f54584f1ea554e074 but I
> > > cannot figure how can I replace the '5011' at line 11 (which is the
> > > object primary key) with the "current" involved objet..?
> > >
> > > For example when I'm doing dbsession.get(MyClass, 1234) I cannot figure
> > > how reference the id in the column_property query
> > 
> > well you wouldnt hardcode the id like that, you'd need to make your query 
> > correlated to the parent.
> > 
> > so it would select() from "ac" where "ac" is "aliased(class_)" , then 
> > correlate to the class
> > 
> > 
> > .where(
> >         class_.id == ac.id 
> > ).
> 
> Thank you Mike, it _almost_ work.
> With (1) SQLAlchemy now generates (2). I'm still getting an error:
> 
> sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) invalid 
> reference to FROM-clause entry for table "content"
> LINE 4: WHERE content_1.id = content.id UNION ALL SELECT content.id ...
>                              ^
> HINT:  Perhaps you meant to reference the table alias "content_1".
> 
> This is because the WITH statement appears at the "top" rather than a
> subselect (and cannot reference the outer table)
> 
> Any idea how could I transform (1) to generate (3) rather than (2) ?

OK I found it! I added nesting=True to the cte() expression

> 
> (1) https://gist.github.com/silenius/43717848057d87ef7945c4d621fce5e8
> (2) https://gist.github.com/silenius/34d3a319a52f8fe4fcd2b6418ca9e927
> (3) https://gist.github.com/silenius/6d048f2b7819d39b70cc4d77237f9031
> 
> Thanks a lot!
> 
> Julien
> 
> > 
> > 
> > as far as how that integrates into the CTE and all that you'd have to 
> > arrange the geometry of the SELECT to work out correctly, I would start 
> > with something very simple and build outwards.
> > 
> > correlated subquery column_property at 
> > https://docs.sqlalchemy.org/en/20/orm/mapped_sql_expr.html#using-column-property
> > 
> > -- 
> > 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 sqlalchemy+unsubscr...@googlegroups.com.
> > To view this discussion on the web visit 
> > https://groups.google.com/d/msgid/sqlalchemy/400b6b72-f601-47c8-aa30-827240097eb8%40app.fastmail.com.
> 
> -- 
> Julien Cigar
> Belgian Biodiversity Platform (http://www.biodiversity.be)
> PGP fingerprint: EEF9 F697 4B68 D275 7B11  6A25 B2BB 3710 A204 23C0
> No trees were killed in the creation of this message.
> However, many electrons were terribly inconvenienced.
> 
> -- 
> 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 sqlalchemy+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sqlalchemy/fdxvwszr6d6k624egxak3ctr5wcu43daz4z6o7okhikglq57to%40puqqqclybeig.



-- 
Julien Cigar
Belgian Biodiversity Platform (http://www.biodiversity.be)
PGP fingerprint: EEF9 F697 4B68 D275 7B11  6A25 B2BB 3710 A204 23C0
No trees were killed in the creation of this message.
However, many electrons were terribly inconvenienced.

-- 
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 sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/b5pqlperijpzgy32rpklyyoou4jctjwc44kmjcdu7yrtplzffa%40fcmeqs3xo3dw.

Attachment: signature.asc
Description: PGP signature

Reply via email to