Hello Lukas, 

Thanks for your reply, 

Kindly refer to my inline comments, 


I don't think we should introduce so many new types, just for the 
ignore flag. This is a minor feature, it shouldn't have such a big 
impact. However, you were right in thinking that this also affects the 
non-fluent API. But I'd prefer to have a getter/setter on the 
org.jooq.InsertQuery type, rather than duplicating the whole type. 
This will keep things DRY and thus maintainable: 
http://en.wikipedia.org/wiki/DRY 

>>> Point well taken. I was using the onDuplicateUpdate() method as a guide and 
>>> that is where it led me :) 


Note, should you want to try again, your files seem to be a bit 
outdated. Before sending them, can you please merge SVN trunk into 
your changes? Do you want to try again? Or should I implement it? 

>>> The files that I used are the ones in the source file jar from the package 
>>> I downloaded. Let me give it one more try and if I am unable to get it done 
>>> then you can go ahead and implement the change. From experience, I have 
>>> found that the best way to learn about a library's inner workings is to 
>>> implement custom functionality. On the issues of the dated files, for some 
>>> reason I seem to be using JOOQ 2.1.0. I have downloaded the latest version 
>>> and will go through the codebase later today. On the same note, kindly 
>>> avail me the url of your svn repo so that I can sync my files. 

Cheers 

Abel 


2012/4/13 Abel Birya <[email protected]>: 
> Hey Lukas, 
> 
> Thank you for your email. I was however unable to upload the files to 
> sourceforge. The page seems to be having an endless redirect loop. Find 
> attached the files that I created. Below is a list of the changes that I 
> made to already existing files. 
> 
> Factory Operations - I added insertIgnoreInto() and insertIgnoreQuery() 
> methods. 
> Factory - I implemented the above methods. 
> 
> Kindly let me know whether everything is satisfactory or whether I may need 
> to make adjustments to any of the code. 
> 
> Cheers. 
> 
> Abel 
> 
> ________________________________ 
> From: "Lukas Eder" <[email protected]> 
> To: [email protected] 
> Sent: Thursday, April 12, 2012 3:51:39 PM 
> Subject: Re: JOOQ INSERT IGNORE 
> 
> 
> Hi Abel 
> 
>> Apologies for the late reply... The screen to my laptop has been having 
>> problems the last 2 days. 
> 
> No worries! 
> 
>> I had however started on the implementation of the insert ignore 
>> functionalities. I had planned on doing it in 2 parts ie "insertignore" 
>> and 
>> "insertignoreselect". 
> 
> I don't think the latter is needed. These syntaxes will already be possible: 
> 
> new Factory(...).insertIgnoreInto(...).values(...) 
> new Factory(...).insertIgnoreInto(...).set(...).set(...) 
> new Factory(...).insertIgnoreInto(...).select(...) 
> 
>> I have been able to implement what I think is the "insertignore" 
>> functionality although with my laptop having issues I am unable to do any 
>> testing. Kindly let me send you the files with a list of the changes I 
>> have 
>> made so that you can start testing when you have time and maybe give me a 
>> few pointers on where you feel I need to make adjustments and/or changes 
>> (if 
>> any). 
> 
> You can send those files to the user group if the change is not too 
> big. Otherwise, you could attach them to this ticket with your 
> sourceforge account: 
> https://sourceforge.net/apps/trac/jooq/ticket/1295 
> 
> Cheers 
> Lukas 
> 
>> 
>> Regards 
>> 
>> 
>> On Tuesday, April 10, 2012 2:28:47 PM UTC+3, Lukas Eder wrote: 
>>> 
>>> Hello Abel, 
>>> 
>>> > [...] if I had the right guide I can try to 
>>> > do an implementation of this functionality. I will use your suggestions 
>>> > as a 
>>> > guide and will get back to you as I progress along. 
>>> 
>>> OK, very nice. So the new method would probably be called 
>>> Factory.insertIgnore(...), and it would set a new "ignore" flag in 
>>> InsertQueryImpl. If you could try to make this work for MySQL, it 
>>> would be great. I can then take over and simulate this for other 
>>> dialects. 
>>> 
>>> Cheers 
>>> Lukas 
>>> 
>>> 2012/4/10 name256 <[email protected]>: 
>>> > Hi. 
>>> > 
>>> > Many thanks for your quick reply. I am currently working on a project 
>>> > that I 
>>> > am sure will benefit from the many features that JOOQ has to offer. 
>>> > Challenge is the "INSERT IGNORE" implementation is integral to the 
>>> > success 
>>> > of this project (I am thinking of changing the implementation from raw 
>>> > jdbc 
>>> > to JOOQ) and that is why I felt that if I had the right guide I can try 
>>> > to 
>>> > do an implementation of this functionality. I will use your suggestions 
>>> > as a 
>>> > guide and will get back to you as I progress along. 
>>> > 
>>> > I have also been looking at the implementation of 
>>> > onDuplicateKeyUpdate() to 
>>> > see whether I can make some headway on its implementation (no luck so 
>>> > far). 
>>> > I shall let you know how I am getting along in the coming days. 
>>> > 
>>> > Regards 
>>> > 
>>> > Abel 
>>> > 
>>> > On Tuesday, April 10, 2012 1:13:51 PM UTC+3, Lukas Eder wrote: 
>>> >> 
>>> >> Hello Abel, 
>>> >> 
>>> >> Good idea, and thanks for the offer of implementing this. I'll track 
>>> >> this idea as feature request #1295: 
>>> >> https://sourceforge.net/apps/trac/jooq/ticket/1295 
>>> >> 
>>> >> For better maintainability, I would prefer if such DSL features 
>>> >> wouldn't be implemented in dialect-specific factories, but in the 
>>> >> global Factory with an appropriate org.jooq.Support annotation to 
>>> >> indicate the dialects supporting this clause. Specifically, MySQL's 
>>> >> INSERT IGNORE clause could be simulated using the SQL:2003 standard 
>>> >> MERGE statement in DB2, HSQLDB, Oracle, SQL Server, and Sybase SQL 
>>> >> Anywhere. 
>>> >> 
>>> >> On the other hand, there seems to be no difference between executing 
>>> >> INSERT IGNORE and INSERT .. ON DUPLICATE KEY UPDATE SET pk = pk, where 
>>> >> the UPDATE part is effectively optimised away in a simple test by this 
>>> >> Stack Overflow user: 
>>> >> 
>>> >> http://stackoverflow.com/a/7853634/521799 
>>> >> 
>>> >> So, INSERT IGNORE could be rendered "as is" for MySQL, and simulated 
>>> >> for CUBRID (Which has the ON DUPLICATE KEY UPDATE clause), DB2, 
>>> >> HSQLDB, Oracle, SQL Server, Sybase SQL Anywhere (which have the MERGE 
>>> >> statement) 
>>> >> 
>>> >> Any other opinions welcome! 
>>> >> 
>>> >> Cheers 
>>> >> Lukas 
>>> >> 
>>> >> 2012/4/10 name256 <[email protected]>: 
>>> >> > Hi, 
>>> >> > 
>>> >> > I am a newbie to JOOQ. I was wondering whether someone has been able 
>>> >> > to 
>>> >> > implement an implementation of insert ignore for the MYSQLFactory. 
>>> >> > Kindly 
>>> >> > let me know. I would't mind a guide to doing this myself as well as 
>>> >> > it 
>>> >> > will 
>>> >> > give me a better insight into JOOQ. 
>>> >> > 
>>> >> > Regards. 
>>> >> > 
>>> >> > Abel 
>> 
>> 
>> On Tuesday, April 10, 2012 2:28:47 PM UTC+3, Lukas Eder wrote: 
>>> 
>>> Hello Abel, 
>>> 
>>> > [...] if I had the right guide I can try to 
>>> > do an implementation of this functionality. I will use your suggestions 
>>> > as a 
>>> > guide and will get back to you as I progress along. 
>>> 
>>> OK, very nice. So the new method would probably be called 
>>> Factory.insertIgnore(...), and it would set a new "ignore" flag in 
>>> InsertQueryImpl. If you could try to make this work for MySQL, it 
>>> would be great. I can then take over and simulate this for other 
>>> dialects. 
>>> 
>>> Cheers 
>>> Lukas 
>>> 
>>> 2012/4/10 name256 <[email protected]>: 
>>> > Hi. 
>>> > 
>>> > Many thanks for your quick reply. I am currently working on a project 
>>> > that I 
>>> > am sure will benefit from the many features that JOOQ has to offer. 
>>> > Challenge is the "INSERT IGNORE" implementation is integral to the 
>>> > success 
>>> > of this project (I am thinking of changing the implementation from raw 
>>> > jdbc 
>>> > to JOOQ) and that is why I felt that if I had the right guide I can try 
>>> > to 
>>> > do an implementation of this functionality. I will use your suggestions 
>>> > as a 
>>> > guide and will get back to you as I progress along. 
>>> > 
>>> > I have also been looking at the implementation of 
>>> > onDuplicateKeyUpdate() to 
>>> > see whether I can make some headway on its implementation (no luck so 
>>> > far). 
>>> > I shall let you know how I am getting along in the coming days. 
>>> > 
>>> > Regards 
>>> > 
>>> > Abel 
>>> > 
>>> > On Tuesday, April 10, 2012 1:13:51 PM UTC+3, Lukas Eder wrote: 
>>> >> 
>>> >> Hello Abel, 
>>> >> 
>>> >> Good idea, and thanks for the offer of implementing this. I'll track 
>>> >> this idea as feature request #1295: 
>>> >> https://sourceforge.net/apps/trac/jooq/ticket/1295 
>>> >> 
>>> >> For better maintainability, I would prefer if such DSL features 
>>> >> wouldn't be implemented in dialect-specific factories, but in the 
>>> >> global Factory with an appropriate org.jooq.Support annotation to 
>>> >> indicate the dialects supporting this clause. Specifically, MySQL's 
>>> >> INSERT IGNORE clause could be simulated using the SQL:2003 standard 
>>> >> MERGE statement in DB2, HSQLDB, Oracle, SQL Server, and Sybase SQL 
>>> >> Anywhere. 
>>> >> 
>>> >> On the other hand, there seems to be no difference between executing 
>>> >> INSERT IGNORE and INSERT .. ON DUPLICATE KEY UPDATE SET pk = pk, where 
>>> >> the UPDATE part is effectively optimised away in a simple test by this 
>>> >> Stack Overflow user: 
>>> >> 
>>> >> http://stackoverflow.com/a/7853634/521799 
>>> >> 
>>> >> So, INSERT IGNORE could be rendered "as is" for MySQL, and simulated 
>>> >> for CUBRID (Which has the ON DUPLICATE KEY UPDATE clause), DB2, 
>>> >> HSQLDB, Oracle, SQL Server, Sybase SQL Anywhere (which have the MERGE 
>>> >> statement) 
>>> >> 
>>> >> Any other opinions welcome! 
>>> >> 
>>> >> Cheers 
>>> >> Lukas 
>>> >> 
>>> >> 2012/4/10 name256 <[email protected]>: 
>>> >> > Hi, 
>>> >> > 
>>> >> > I am a newbie to JOOQ. I was wondering whether someone has been able 
>>> >> > to 
>>> >> > implement an implementation of insert ignore for the MYSQLFactory. 
>>> >> > Kindly 
>>> >> > let me know. I would't mind a guide to doing this myself as well as 
>>> >> > it 
>>> >> > will 
>>> >> > give me a better insight into JOOQ. 
>>> >> > 
>>> >> > Regards. 
>>> >> > 
>>> >> > Abel 
>> 
>> 
>> On Tuesday, April 10, 2012 2:28:47 PM UTC+3, Lukas Eder wrote: 
>>> 
>>> Hello Abel, 
>>> 
>>> > [...] if I had the right guide I can try to 
>>> > do an implementation of this functionality. I will use your suggestions 
>>> > as a 
>>> > guide and will get back to you as I progress along. 
>>> 
>>> OK, very nice. So the new method would probably be called 
>>> Factory.insertIgnore(...), and it would set a new "ignore" flag in 
>>> InsertQueryImpl. If you could try to make this work for MySQL, it 
>>> would be great. I can then take over and simulate this for other 
>>> dialects. 
>>> 
>>> Cheers 
>>> Lukas 
>>> 
>>> 2012/4/10 name256 <[email protected]>: 
>>> > Hi. 
>>> > 
>>> > Many thanks for your quick reply. I am currently working on a project 
>>> > that I 
>>> > am sure will benefit from the many features that JOOQ has to offer. 
>>> > Challenge is the "INSERT IGNORE" implementation is integral to the 
>>> > success 
>>> > of this project (I am thinking of changing the implementation from raw 
>>> > jdbc 
>>> > to JOOQ) and that is why I felt that if I had the right guide I can try 
>>> > to 
>>> > do an implementation of this functionality. I will use your suggestions 
>>> > as a 
>>> > guide and will get back to you as I progress along. 
>>> > 
>>> > I have also been looking at the implementation of 
>>> > onDuplicateKeyUpdate() to 
>>> > see whether I can make some headway on its implementation (no luck so 
>>> > far). 
>>> > I shall let you know how I am getting along in the coming days. 
>>> > 
>>> > Regards 
>>> > 
>>> > Abel 
>>> > 
>>> > On Tuesday, April 10, 2012 1:13:51 PM UTC+3, Lukas Eder wrote: 
>>> >> 
>>> >> Hello Abel, 
>>> >> 
>>> >> Good idea, and thanks for the offer of implementing this. I'll track 
>>> >> this idea as feature request #1295: 
>>> >> https://sourceforge.net/apps/trac/jooq/ticket/1295 
>>> >> 
>>> >> For better maintainability, I would prefer if such DSL features 
>>> >> wouldn't be implemented in dialect-specific factories, but in the 
>>> >> global Factory with an appropriate org.jooq.Support annotation to 
>>> >> indicate the dialects supporting this clause. Specifically, MySQL's 
>>> >> INSERT IGNORE clause could be simulated using the SQL:2003 standard 
>>> >> MERGE statement in DB2, HSQLDB, Oracle, SQL Server, and Sybase SQL 
>>> >> Anywhere. 
>>> >> 
>>> >> On the other hand, there seems to be no difference between executing 
>>> >> INSERT IGNORE and INSERT .. ON DUPLICATE KEY UPDATE SET pk = pk, where 
>>> >> the UPDATE part is effectively optimised away in a simple test by this 
>>> >> Stack Overflow user: 
>>> >> 
>>> >> http://stackoverflow.com/a/7853634/521799 
>>> >> 
>>> >> So, INSERT IGNORE could be rendered "as is" for MySQL, and simulated 
>>> >> for CUBRID (Which has the ON DUPLICATE KEY UPDATE clause), DB2, 
>>> >> HSQLDB, Oracle, SQL Server, Sybase SQL Anywhere (which have the MERGE 
>>> >> statement) 
>>> >> 
>>> >> Any other opinions welcome! 
>>> >> 
>>> >> Cheers 
>>> >> Lukas 
>>> >> 
>>> >> 2012/4/10 name256 <[email protected]>: 
>>> >> > Hi, 
>>> >> > 
>>> >> > I am a newbie to JOOQ. I was wondering whether someone has been able 
>>> >> > to 
>>> >> > implement an implementation of insert ignore for the MYSQLFactory. 
>>> >> > Kindly 
>>> >> > let me know. I would't mind a guide to doing this myself as well as 
>>> >> > it 
>>> >> > will 
>>> >> > give me a better insight into JOOQ. 
>>> >> > 
>>> >> > Regards. 
>>> >> > 
>>> >> > Abel 
>> 
>> 
>> On Tuesday, April 10, 2012 2:28:47 PM UTC+3, Lukas Eder wrote: 
>>> 
>>> Hello Abel, 
>>> 
>>> > [...] if I had the right guide I can try to 
>>> > do an implementation of this functionality. I will use your suggestions 
>>> > as a 
>>> > guide and will get back to you as I progress along. 
>>> 
>>> OK, very nice. So the new method would probably be called 
>>> Factory.insertIgnore(...), and it would set a new "ignore" flag in 
>>> InsertQueryImpl. If you could try to make this work for MySQL, it 
>>> would be great. I can then take over and simulate this for other 
>>> dialects. 
>>> 
>>> Cheers 
>>> Lukas 
>>> 
>>> 2012/4/10 name256 <[email protected]>: 
>>> > Hi. 
>>> > 
>>> > Many thanks for your quick reply. I am currently working on a project 
>>> > that I 
>>> > am sure will benefit from the many features that JOOQ has to offer. 
>>> > Challenge is the "INSERT IGNORE" implementation is integral to the 
>>> > success 
>>> > of this project (I am thinking of changing the implementation from raw 
>>> > jdbc 
>>> > to JOOQ) and that is why I felt that if I had the right guide I can try 
>>> > to 
>>> > do an implementation of this functionality. I will use your suggestions 
>>> > as a 
>>> > guide and will get back to you as I progress along. 
>>> > 
>>> > I have also been looking at the implementation of 
>>> > onDuplicateKeyUpdate() to 
>>> > see whether I can make some headway on its implementation (no luck so 
>>> > far). 
>>> > I shall let you know how I am getting along in the coming days. 
>>> > 
>>> > Regards 
>>> > 
>>> > Abel 
>>> > 
>>> > On Tuesday, April 10, 2012 1:13:51 PM UTC+3, Lukas Eder wrote: 
>>> >> 
>>> >> Hello Abel, 
>>> >> 
>>> >> Good idea, and thanks for the offer of implementing this. I'll track 
>>> >> this idea as feature request #1295: 
>>> >> https://sourceforge.net/apps/trac/jooq/ticket/1295 
>>> >> 
>>> >> For better maintainability, I would prefer if such DSL features 
>>> >> wouldn't be implemented in dialect-specific factories, but in the 
>>> >> global Factory with an appropriate org.jooq.Support annotation to 
>>> >> indicate the dialects supporting this clause. Specifically, MySQL's 
>>> >> INSERT IGNORE clause could be simulated using the SQL:2003 standard 
>>> >> MERGE statement in DB2, HSQLDB, Oracle, SQL Server, and Sybase SQL 
>>> >> Anywhere. 
>>> >> 
>>> >> On the other hand, there seems to be no difference between executing 
>>> >> INSERT IGNORE and INSERT .. ON DUPLICATE KEY UPDATE SET pk = pk, where 
>>> >> the UPDATE part is effectively optimised away in a simple test by this 
>>> >> Stack Overflow user: 
>>> >> 
>>> >> http://stackoverflow.com/a/7853634/521799 
>>> >> 
>>> >> So, INSERT IGNORE could be rendered "as is" for MySQL, and simulated 
>>> >> for CUBRID (Which has the ON DUPLICATE KEY UPDATE clause), DB2, 
>>> >> HSQLDB, Oracle, SQL Server, Sybase SQL Anywhere (which have the MERGE 
>>> >> statement) 
>>> >> 
>>> >> Any other opinions welcome! 
>>> >> 
>>> >> Cheers 
>>> >> Lukas 
>>> >> 
>>> >> 2012/4/10 name256 <[email protected]>: 
>>> >> > Hi, 
>>> >> > 
>>> >> > I am a newbie to JOOQ. I was wondering whether someone has been able 
>>> >> > to 
>>> >> > implement an implementation of insert ignore for the MYSQLFactory. 
>>> >> > Kindly 
>>> >> > let me know. I would't mind a guide to doing this myself as well as 
>>> >> > it 
>>> >> > will 
>>> >> > give me a better insight into JOOQ. 
>>> >> > 
>>> >> > Regards. 
>>> >> > 
>>> >> > Abel 
> 

Reply via email to