Hi all

The context
 - mysql
 - .returning() statement
 - .keepStatement(true) 

Problem:
 When using keepStastement(true) if i do two inserts in the same 
transaction i get the same number however does not happen with 
keepStatement(fasse).

Looks like a bug in JOOQ in the simulated implementation of returning 
maybe. Any ideas?

Here is my code. getOrCreatePreparedQUery is just a wrapper (hopefully you 
get the idea). Logs below

            final Long messageId =
//                    getOrCreatePreparedQuery(
//                            getClass().getCanonicalName() + "insertMessage",
//                            () ->
                                    getDslContext()
                                            .insertInto(Tables.TOPIC_MESSAGE)
                                            .columns(
                                                    
Tables.TOPIC_MESSAGE.MESSAGE_INDEX,
                                                    
Tables.TOPIC_MESSAGE.MESSAGE_UUID,
                                                    
Tables.TOPIC_MESSAGE.TOPIC_ID,
                                                    
Tables.TOPIC_MESSAGE.CREATED_AT,
                                                    Tables.TOPIC_MESSAGE.MESSAGE
                                            )
                                            .values(
                                                    topic.getTopicIndex(),
                                                    messageUuid,
                                                    topic.getTopicId(),
                                                    
Timestamp.from(Instant.now()),
                                                    message
                                            )
                                            
.returning(Tables.TOPIC_MESSAGE.MESSAGE_ID)
//                            ,
//                            query -> query.bind(1, topic.getTopicIndex())
//                                          .bind(2, messageUuid)
//                                          .bind(3, topic.getTopicId())
//                                          .bind(4, 
Timestamp.from(Instant.now()))
//                                          .bind(5, message)
//                    )
                            .fetch()
                            .get(0)
                            .getMessageId();


*With prepared statement (the two inserts)*


2017-03-29 10:09:29,622 DEBUG jooq.tools.LoggerListener:254 - Executing query   
       : insert into `TestQtalkNG`.`topic_message` (`message_index`, 
`message_uuid`, `topic_id`, `created_at`, `message`) values (?, ?, ?, ?, ?)
2017-03-29 10:09:29,622 DEBUG jooq.tools.LoggerListener:254 - -> with bind 
values      : insert into `TestQtalkNG`.`topic_message` (`message_index`, 
`message_uuid`, `topic_id`, `created_at`, `message`) values (1, 
X'75ea5ab011124610a14a8755b3a90c97', 1799, {ts '2017-03-29 10:09:29.621'}, 
X'3f43cc9e4f74c2ab74c5a8be50cc2116')
2017-03-29 10:09:29,623 TRACE jooq.impl.DefaultBinding:182 - Binding variable 1 
      : 1 (class java.lang.Long)
2017-03-29 10:09:29,623 TRACE jooq.impl.DefaultBinding:182 - Binding variable 2 
      : [B@771b0f1 (class [B)
2017-03-29 10:09:29,626 TRACE jooq.impl.DefaultBinding:182 - Binding variable 3 
      : 1799 (class java.lang.Integer)
2017-03-29 10:09:29,626 TRACE jooq.impl.DefaultBinding:182 - Binding variable 4 
      : 2017-03-29 10:09:29.621 (class java.sql.Timestamp)
2017-03-29 10:09:29,626 TRACE jooq.impl.DefaultBinding:182 - Binding variable 5 
      : [B@4d1f044c (class [B)
2017-03-29 10:09:29,627 TRACE jooq.tools.StopWatch:182 - Variables bound        
  : Total: 4.978ms, +3.317ms
2017-03-29 10:09:29,627 TRACE jooq.tools.StopWatch:182 - Executing query        
  : Total: 5.064ms, +0.085ms
2017-03-29 10:09:29,627 DEBUG jooq.tools.LoggerListener:254 - Affected row(s)   
       : 1
2017-03-29 10:09:29,627 DEBUG jooq.tools.StopWatch:254 - Query executed         
  : Total: 5.693ms, +0.629ms
2017-03-29 10:09:29,632 DEBUG jooq.tools.StopWatch:254 - Finishing              
  : Total: 10.862ms, +5.169ms

2017-03-29 10:09:29,633 INFO  messagestore.vertxhandlers.MessageStoreManager:94 
- messageId=851


2017-03-29 10:09:29,648 TRACE jooq.tools.StopWatch:182 - Binding variables      
  : Total: 0.149ms, +0.142ms
2017-03-29 10:09:29,648 TRACE jooq.impl.DefaultBinding:182 - Binding variable 1 
      : 2 (class java.lang.Long)
2017-03-29 10:09:29,651 TRACE jooq.impl.DefaultBinding:182 - Binding variable 2 
      : [B@4f8001a9 (class [B)
2017-03-29 10:09:29,652 TRACE jooq.impl.DefaultBinding:182 - Binding variable 3 
      : 1799 (class java.lang.Integer)
2017-03-29 10:09:29,652 TRACE jooq.impl.DefaultBinding:182 - Binding variable 4 
      : 2017-03-29 10:09:29.648 (class java.sql.Timestamp)
2017-03-29 10:09:29,652 TRACE jooq.impl.DefaultBinding:182 - Binding variable 5 
      : [B@1895de24 (class [B)
2017-03-29 10:09:29,652 TRACE jooq.tools.StopWatch:182 - Variables bound        
  : Total: 4.218ms, +4.069ms
2017-03-29 10:09:29,652 TRACE jooq.tools.StopWatch:182 - Executing query        
  : Total: 4.366ms, +0.147ms
2017-03-29 10:09:29,653 DEBUG jooq.tools.LoggerListener:254 - Affected row(s)   
       : 1
2017-03-29 10:09:29,653 DEBUG jooq.tools.StopWatch:254 - Query executed         
  : Total: 5.002ms, +0.635ms
2017-03-29 10:09:29,653 DEBUG jooq.tools.StopWatch:254 - Finishing              
  : Total: 5.364ms, +0.362ms2017-03-29 10:09:29,653 INFO  
messagestore.vertxhandlers.MessageStoreManager:94 - messageId=851


*Without prepared statement (the two inserts)*



2017-03-29 10:11:45,218 DEBUG jooq.tools.LoggerListener:254 - Executing query   
       : insert into `TestQtalkNG`.`topic_message` (`message_index`, 
`message_uuid`, `topic_id`, `created_at`, `message`) values (?, ?, ?, ?, ?)
2017-03-29 10:11:45,222 DEBUG jooq.tools.LoggerListener:254 - -> with bind 
values      : insert into `TestQtalkNG`.`topic_message` (`message_index`, 
`message_uuid`, `topic_id`, `created_at`, `message`) values (1, 
X'8318809930eb4c27a5b931d31623ae1a', 1800, {ts '2017-03-29 10:11:45.216'}, 
X'81bd32099af93e56db9109786cdc4d1c')
2017-03-29 10:11:45,224 TRACE jooq.impl.DefaultBinding:182 - Binding variable 1 
      : 1 (class java.lang.Long)
2017-03-29 10:11:45,224 TRACE jooq.impl.DefaultBinding:182 - Binding variable 2 
      : [B@8bc8d6f (class [B)
2017-03-29 10:11:45,225 TRACE jooq.impl.DefaultBinding:182 - Binding variable 3 
      : 1800 (class java.lang.Integer)
2017-03-29 10:11:45,225 TRACE jooq.impl.DefaultBinding:182 - Binding variable 4 
      : 2017-03-29 10:11:45.216 (class java.sql.Timestamp)
2017-03-29 10:11:45,225 TRACE jooq.impl.DefaultBinding:182 - Binding variable 5 
      : [B@7d87144c (class [B)
2017-03-29 10:11:45,225 TRACE jooq.tools.StopWatch:182 - Variables bound        
  : Total: 8.833ms, +1.622ms
2017-03-29 10:11:45,225 TRACE jooq.tools.StopWatch:182 - Executing query        
  : Total: 8.968ms, +0.135ms
2017-03-29 10:11:45,226 DEBUG jooq.tools.LoggerListener:254 - Affected row(s)   
       : 1
2017-03-29 10:11:45,226 DEBUG jooq.tools.StopWatch:254 - Query executed         
  : Total: 9.814ms, +0.845ms
2017-03-29 10:11:45,235 DEBUG jooq.tools.StopWatch:254 - Finishing              
  : Total: 18.92ms, +9.105ms

2017-03-29 10:11:45,236 INFO  messagestore.vertxhandlers.MessageStoreManager:94 
- messageId=855


2017-03-29 10:11:45,259 DEBUG jooq.tools.LoggerListener:254 - Executing query   
       : insert into `TestQtalkNG`.`topic_message` (`message_index`, 
`message_uuid`, `topic_id`, `created_at`, `message`) values (?, ?, ?, ?, ?)
2017-03-29 10:11:45,260 DEBUG jooq.tools.LoggerListener:254 - -> with bind 
values      : insert into `TestQtalkNG`.`topic_message` (`message_index`, 
`message_uuid`, `topic_id`, `created_at`, `message`) values (2, 
X'562918fb942c4252b274156981476ab0', 1800, {ts '2017-03-29 10:11:45.255'}, 
X'412ffc45a5d206be8733230475dfc554')
2017-03-29 10:11:45,261 TRACE jooq.impl.DefaultBinding:182 - Binding variable 1 
      : 2 (class java.lang.Long)
2017-03-29 10:11:45,261 TRACE jooq.impl.DefaultBinding:182 - Binding variable 2 
      : [B@72fd12d6 (class [B)
2017-03-29 10:11:45,261 TRACE jooq.impl.DefaultBinding:182 - Binding variable 3 
      : 1800 (class java.lang.Integer)
2017-03-29 10:11:45,261 TRACE jooq.impl.DefaultBinding:182 - Binding variable 4 
      : 2017-03-29 10:11:45.255 (class java.sql.Timestamp)
2017-03-29 10:11:45,262 TRACE jooq.impl.DefaultBinding:182 - Binding variable 5 
      : [B@56ee435 (class [B)
2017-03-29 10:11:45,262 TRACE jooq.tools.StopWatch:182 - Variables bound        
  : Total: 6.034ms, +1.02ms
2017-03-29 10:11:45,262 TRACE jooq.tools.StopWatch:182 - Executing query        
  : Total: 6.154ms, +0.12ms
2017-03-29 10:11:45,263 DEBUG jooq.tools.LoggerListener:254 - Affected row(s)   
       : 1
2017-03-29 10:11:45,263 DEBUG jooq.tools.StopWatch:254 - Query executed         
  : Total: 7.101ms, +0.946ms
2017-03-29 10:11:45,263 DEBUG jooq.tools.StopWatch:254 - Finishing              
  : Total: 7.509ms, +0.407ms

2017-03-29 10:11:45,263 INFO  messagestore.vertxhandlers.MessageStoreManager:94 
- messageId=856

-- 
You received this message because you are subscribed to the Google Groups "jOOQ 
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to