incubator-empire-db-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Döbele <doeb...@esteam.de>
Subject re: UNION and the parentheses
Date Wed, 04 Aug 2010 08:11:13 GMT
Hi exxos,

 

I need a bit more time to investigate this.

In the meantime I suggest to derive a class from DBCombinedCmd and to override the getSelect(StringBuilder
buf) method.

Then copy the code from the base-class and add the parenthesis.

 

Afterwards in your client-code you write:

DBCommandExpr myExpr = new DBMyCombinedCmd(cmdLeft, "UNION", cmdRight);

 

Regards

Rainer

 

Von: exxos [mailto:hatufr@gmail.com] 
Gesendet: Dienstag, 3. August 2010 15:18
An: empire-db-user@incubator.apache.org
Betreff: UNION and the parentheses

 


Hello,

According to the MySQL's documentation (5.0), if the ORDER BY or the LIMIT clause, are used
with UNION, the "( )" have to be added to each SELECT statements.

http://dev.mysql.com/doc/refman/5.0/en/union.html
"To use an ORDER BY or LIMIT clause to sort or limit the entire UNION result, parenthesize
the individual SELECT statements and place the ORDER BY or LIMIT after the last one."

But empire-db version 2.0.6 produces "<DBCommand> UNION (<DBCommand>) ORDER BY
<DBColumn>" and there is no "( )" to the first SELECT.

But by chance it continues to work with the ORDER BY, but with the keyword LIMIT it stops!

The class in charge to build the UNION command seems to be DBCombinedCmd (line 102 - public
boolean getSelect(StringBuilder buf) )

Could you please advise about a workarround?

/Cheers.




Mime
View raw message