Join the No OFFSET Movement!

Markus Winand from Use The Index, Luke! did it again. He started an exciting battle against one the biggest flaws in the SQL language: We've blogged about this before. OFFSET pagination is terribly slow, once you reach higher page numbers. Besides, chances are, that your database doesn't even implement it correctly, yet (and your emulation … Continue reading Join the No OFFSET Movement!

Are You Using SQL PIVOT Yet? You Should!

Every once in a while, we run into these rare SQL issues where we'd like to do something that seems out of the ordinary. One of these things is pivoting rows to columns. A recent question on Stack Overflow by Valiante asked for precisely this. Going from this table: +------+------------+----------------+-------------------+ | dnId | propNameId | … Continue reading Are You Using SQL PIVOT Yet? You Should!

The 10 Most Annoying Things Coming Back to Java After Some Days of Scala

So, I'm experimenting with Scala because I want to write a parser, and the Scala Parsers API seems like a really good fit. After all, I can implement the parser in Scala and wrap it behind a Java interface, so apart from an additional runtime dependency, there shouldn't be any interoperability issues. After a few … Continue reading The 10 Most Annoying Things Coming Back to Java After Some Days of Scala

Using Oracle AQ in Java Won’t Get Any Easier Than This

Starting with jOOQ 3.5 we've included an awesome new feature for those of you using the Oracle database: Native support for Oracle AQ! And your client code will be so easy to write, you'll be putting those AQs all over your database immediately. How does it work? jOOQ rationale The biggest reason why many of … Continue reading Using Oracle AQ in Java Won’t Get Any Easier Than This

jOOQ Tip of the Day: Reuse Bind Values

jOOQ implements your SQL statements as AST (Abstract Syntax Tree). This means that your SQL statement is modelled in a non-text form prior to serialising it as a textual SQL statement to your JDBC driver. One advantage of this is that you can freely manipulate this AST any way you want. This can be done … Continue reading jOOQ Tip of the Day: Reuse Bind Values

Top 10 Very Very VERY Important Topics to Discuss

Some things are just very very very VERY very important. Such as John Cleese. The same is true for Whitespace: Whitespace-Shedding Yes. 1080 Reddit Karma points (so urgently needed!) in only 23 hours. That's several orders of magnitudes better than any of our - what we wrongfully thought to be - very deep and interesting … Continue reading Top 10 Very Very VERY Important Topics to Discuss

jOOQ Newsletter: jOOLY 23, 2014 – Only 8 Days Left in jOOLY

subscribe to this newsletter here Only 8 Days Left in jOOLY Time is running so fast! The month of jOOLY is almost over - have you taken advantage of our limited-time promotional discount of 20% that we're offering to all of your purchases in July 2014? And that's not it, you will also get a … Continue reading jOOQ Newsletter: jOOLY 23, 2014 – Only 8 Days Left in jOOLY

Frightening Facts about MySQL

So you might've seen Destroy all Software's talk about JavaScript: Here's a similar talk (less funny more scary) about MySQL: https://www.youtube.com/watch?v=emgJtr9tIME

Keeping things DRY: Method overloading

A good clean application design requires discipline in keeping things DRY: Everything has to be done once. Having to do it twice is a coincidence. Having to do it three times is a pattern. — An unknown wise man Now, if you're following the Xtreme Programming rules, you know what needs to be done, when … Continue reading Keeping things DRY: Method overloading

Logon Triggers: The Oracle Database Magic Bullet

Imagine you want to collect detailed usage statistics to tune your Oracle database, e.g. if you want to have A-Rows and A-Time values in your execution plans (by default, Oracle only reports E-Rows and E-Time with "E" for "Estimated". But usually, you will care more about the "A" for "Actual"). All you have to do … Continue reading Logon Triggers: The Oracle Database Magic Bullet