cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: Auto-generated columns on Oracle
Date Tue, 04 Jun 2019 14:43:20 GMT
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 <johnthuss@gmail.com> 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 <hugi@karlmenn.is> wrote:
> 
>> /me instantly starts modifying DBs.
>> 
>> Thanks for pointing this out John!
>> 
>> - hugi
>> 
>> 
>>> On 29 May 2019, at 15:23, John Huss <johnthuss@gmail.com> 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 <andrus@objectstyle.org
>>> 
>>> 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 <johnthuss@gmail.com> 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 <
>> andrus@objectstyle.org>
>>>>> 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
>>>> 
>>>> 
>> 
>> 


Mime
View raw message