Yep, Postgres. On Tue, Jun 4, 2019 at 9:43 AM Andrus Adamchik <[email protected]> wrote:
> Hmm.. In theory auto-pk should be compatible with batching. Is this on > PostgreSQL? > > Andrus > > > On Jun 4, 2019, at 5:39 PM, John Huss <[email protected]> wrote: > > > > Just to follow up on this, after some experimentation it looks like using > > PKs generated by the database can be much slower when doing bulk inserts, > > because Cayenne doesn't (can't?) do a batch bind to execute the inserts > as > > a batch and instead has to execute them one by one. With a large batch of > > row for the same entity this can make a huge difference. So moving to > > generated PKs might not be the best idea for many use cases. > > > > On Wed, May 29, 2019 at 4:45 PM Hugi Thordarson <[email protected]> > wrote: > > > >> /me instantly starts modifying DBs. > >> > >> Thanks for pointing this out John! > >> > >> - hugi > >> > >> > >>> On 29 May 2019, at 15:23, John Huss <[email protected]> wrote: > >>> > >>> Doh! Turns out Cayenne already supports this for Postgres. Who knew! > :-P > >>> > >>> 2621 [main] INFO org.apache.cayenne.log.JdbcEventLogger - INSERT INTO > >> test > >>> (payload) VALUES (?) > >>> > >>> 2621 [main] INFO org.apache.cayenne.log.JdbcEventLogger - [bind: > >>> 1->payload:'test'] > >>> > >>> 2632 [main] INFO org.apache.cayenne.log.JdbcEventLogger - Generated > PK: > >>> test.id = 1 > >>> > >>> On Tue, May 28, 2019 at 12:30 PM Andrus Adamchik < > [email protected] > >>> > >>> wrote: > >>> > >>>> Thanks for the pointer. If PG passes generated PK back through the > JDBC > >>>> driver and we can read it after an INSERT, we most definitely should. > >>>> Creating extraneous objects in DB for the sake of PK generation feels > >> old. > >>>> > >>>> Andrus > >>>> > >>>>> On May 28, 2019, at 6:47 PM, John Huss <[email protected]> wrote: > >>>>> > >>>>> Postgresql also recently improved their support in this area (in > >> version > >>>>> 10). It's more like syntactic sugar on top of things you could > already > >>>> do, > >>>>> but I'd be interested to know if it can be used by Cayenne in the > same > >>>> way > >>>>> as the MySQL auto-increment columns. > >>>>> > >>>>> The DDL syntax is supposedly an SQL standard: > >>>>> > >>>>> CREATE TABLE test_new ( > >>>>> id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, > >>>>> payload text > >>>>> ); > >>>>> > >>>>> > >>>>> On Mon, May 27, 2019 at 1:49 AM Andrus Adamchik < > >> [email protected]> > >>>>> wrote: > >>>>> > >>>>>> Looks like Oracle started supporting auto-increment columns since > 12c: > >>>>>> > >>>>>> > >>>>>> > >>>> > >> > https://www.arungudelli.com/tutorial/oracle/auto-increment-identity-column-in-oracle-table-primary-key/ > >>>>>> > >>>>>> We should try using that in the adapter. > >>>>>> > >>>>>> Andrus > >>>> > >>>> > >> > >> > >
