[cvs] expresso commit by lhamel: fixing:
JCorporate Ltd
jcorp at jcorporate.com
Sun Aug 14 05:41:37 UTC 2005
Log Message:
-----------
fixing:
Message posted by user 'wesleywu' at 2005-08-13 14:46:18
When count distinct, the syntax should be
SELECT COUNT(DISTINCT *) FROM ...
&
SELECT COUNT(DISTINCT key_col) FROM ...,
but not
SELECT DISTINCT COUNT(*) FROM ...
&
SELECT DISTINCT COUNT(key_col) FROM ....
The distinct keyword in the latter two sql sentences is not functional at all.
Modified Files:
--------------
expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/jdbc:
JoinedDataObject.java
Revision Data
-------------
Index: JoinedDataObject.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/jdbc/JoinedDataObject.java,v
retrieving revision 1.49
retrieving revision 1.50
diff -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/jdbc/JoinedDataObject.java -Lexpresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/jdbc/JoinedDataObject.java -u -r1.49 -r1.50
--- expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/jdbc/JoinedDataObject.java
+++ expresso-web/WEB-INF/src/com/jcorporate/expresso/core/dataobjects/jdbc/JoinedDataObject.java
@@ -191,13 +191,6 @@
/**
- * The vector of MultiDB objects retrieved by the last searchAndRetrieve
- * method
- */
- private ArrayList recordSet = null;
-
-
- /**
* My Locale
*/
private Locale myLocale = null;
@@ -1202,9 +1195,8 @@
checkInitialized();
isAllowed(SecuredDBObject.SEARCH);
- DBConnectionPool myPool = DBConnectionPool.getInstance(this.
- getMappedDataContext());
- ;
+ DBConnectionPool myPool = DBConnectionPool.getInstance(this.getMappedDataContext());
+
DBConnection myConnection = null;
JDBCDataObject primaryObject = (JDBCDataObject) this.getJoinMetaData().
@@ -1218,20 +1210,21 @@
FastStringBuffer myStatement = FastStringBuffer.getInstance();
try {
if (keyFields.size() > 1) {
- myStatement.append("SELECT ");
- myStatement.append(getDistinct(myPool));
- myStatement.append(" COUNT(*) FROM ");
+ myStatement.append("SELECT COUNT( " +
+ myStatement.append(getDistinct(myPool)));
+ myStatement.append(" *) FROM ");
} else {
DataFieldMetaData keymetadata = primaryObject
.getFieldMetaData((String)
keyFields.get(0));
- myStatement.append("SELECT ");
- myStatement.append(getDistinct(myPool));
- myStatement.append("COUNT( "
- + primaryObject.getJDBCMetaData().
- getTargetSQLTable(primaryObject.
- getDataContext()) + "."
- + keymetadata.getName() + ") FROM ");
+ myStatement.append("SELECT COUNT( ");
+ myStatement.append( myStatement.append(getDistinct(myPool)));
+ myStatement.append(
+ primaryObject.getJDBCMetaData().getTargetSQLTable(
+ primaryObject.getDataContext()));
+ myStatement.append(".");
+ myStatement.append( keymetadata.getName() );
+ myStatement.append( ") FROM ");
}
myStatement.append(this.buildFromClause());
@@ -1363,7 +1356,7 @@
returnValue &= myObj.equals(otherObj);
- if (returnValue == false) {
+ if (!returnValue) {
break;
}
}
@@ -1455,6 +1448,7 @@
DBConnectionPool myPool = DBConnectionPool.getInstance(getDataContext());
DBConnection myConnection = null;
+ ArrayList recordSet;
try {
if (localConnection != null) {
myConnection = localConnection;
@@ -2077,7 +2071,7 @@
//If such operations are flat not allowed for this join, then
//we return immediately
Boolean override = (Boolean) getJoinMetaData().getPermissions().get(requestedFunction);
- if (override != null && override.booleanValue() == false) {
+ if (override != null && !override.booleanValue()) {
throw new SecurityException("Method: " + requestedFunction
+ " not allowed");
}
More information about the cvs
mailing list