Hi Paul,
This is an actual bug introduced by (I think) https://github.com/dbsrgits/dbix-class/commit/d0cefd99a. I will fix that shortly after the current permission dispute is resolved and I can get back to actually working on things.
In the meantime - use create() instead, it will be a tad (not much) slower, and will DTRT.
Minimal reproduction based on the DBIC test suite:
~$ perl -It/lib -MDBICTest -e ' DBICTest->init_schema->resultset("Artist")->populate([{ name => "beh", cds => [{ cdid => 666, year => 0, title => "buh", tracks => [{ title => "eeeh" }] }] }]) '
The working example with create() instead:
~$ DBIC_TRACE_PROFILE=console perl -It/lib -MDBICTest -e ' my $s = DBICTest->init_schema; $s->storage->debug(1); $s->resultset("Artist")->create({ name => "beh", cds => [{ cdid => 666, year => 0, title => "buh", tracks => [{ title => "eeeh" }] }] }) ' BEGIN WORK INSERT INTO artist( name ) VALUES( 'beh' ) INSERT INTO cd( artist, cdid, title, year ) VALUES( '4', '666', 'buh', '0' ) SELECT me.position FROM track me WHERE cd = '666' ORDER BY position DESC LIMIT '1' INSERT INTO track( cd, position, title ) VALUES( '666', '1', 'eeeh' ) COMMIT
In reply to Re: SQL Syntax error from recursive DBIx::Class populate
by ribasushi
in thread SQL Syntax error from recursive DBIx::Class populate
by Boldra
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |