#1953 - Do we need SqlServer2005Platform and SqlServer2005SqlLimiter?

This commit is contained in:
rob bygrave
2020-02-22 11:48:16 +13:00
parent 3878b02cff
commit 0891c067d5
18 changed files with 37 additions and 180 deletions
@@ -135,11 +135,6 @@ public class CQuery<T> implements DbReadContext, CancelableQuery, SpiProfileTran
*/
private final String logWhereSql;
/**
* Set to true if the row number column is included in the sql.
*/
private final boolean rowNumberIncluded;
/**
* Tree that knows how to build the master and detail beans from the
* resultSet.
@@ -225,7 +220,6 @@ public class CQuery<T> implements DbReadContext, CancelableQuery, SpiProfileTran
this.manyProperty = sqlTree.getManyProperty();
this.sql = queryPlan.getSql();
this.rawSql = queryPlan.isRawSql();
this.rowNumberIncluded = queryPlan.isRowNumberIncluded();
this.logWhereSql = queryPlan.getLogWhereSql();
this.desc = request.getBeanDescriptor();
this.predicates = predicates;
@@ -504,10 +498,6 @@ public class CQuery<T> implements DbReadContext, CancelableQuery, SpiProfileTran
rowCount++;
dataReader.resetColumnPosition();
if (rowNumberIncluded) {
// row_number() column used for limit features
dataReader.incrementPos(1);
}
return true;
}
@@ -117,7 +117,7 @@ class CQueryBuilder {
}
// cache the query plan
queryPlan = new CQueryPlan(request, sql, sqlTree, false, predicates.getLogWhereSql());
queryPlan = new CQueryPlan(request, sql, sqlTree, predicates.getLogWhereSql());
request.putQueryPlan(queryPlan);
return new CQueryUpdate(request, predicates, queryPlan);
}
@@ -206,7 +206,7 @@ class CQueryBuilder {
SqlTree sqlTree = createSqlTree(request, predicates);
SqlLimitResponse s = buildSql(null, request, predicates, sqlTree);
queryPlan = new CQueryPlan(request, s.getSql(), sqlTree, s.isIncludesRowNumberColumn(), predicates.getLogWhereSql());
queryPlan = new CQueryPlan(request, s.getSql(), sqlTree, predicates.getLogWhereSql());
request.putQueryPlan(queryPlan);
return new CQueryFetchSingleAttribute(request, predicates, queryPlan, query.isCountDistinct());
}
@@ -305,7 +305,7 @@ class CQueryBuilder {
}
// cache the query plan
queryPlan = new CQueryPlan(request, sql, sqlTree, s.isIncludesRowNumberColumn(), predicates.getLogWhereSql());
queryPlan = new CQueryPlan(request, sql, sqlTree, predicates.getLogWhereSql());
request.putQueryPlan(queryPlan);
return new CQueryRowCount(queryPlan, request, predicates);
@@ -550,7 +550,7 @@ class CQueryBuilder {
private SqlLimitResponse buildSql(String selectClause, OrmQueryRequest<?> request, CQueryPredicates predicates, SqlTree select) {
SpiQuery<?> query = request.getQuery();
if (query.isNativeSql()) {
return new SqlLimitResponse(query.getGeneratedSql(), false);
return new SqlLimitResponse(query.getGeneratedSql());
}
if (query.isRawSql()) {
return rawSqlHandler.buildSql(request, predicates, query.getRawSql().getSql());
@@ -750,7 +750,7 @@ class CQueryBuilder {
sb.append(" limit ").append(maxRows);
}
}
return new SqlLimitResponse(dbPlatform.completeSql(sb.toString(), query), false);
return new SqlLimitResponse(dbPlatform.completeSql(sb.toString(), query));
}
}
@@ -28,7 +28,7 @@ class CQueryBuilderRawSql {
if (rsql == null) {
// this is a ResultSet based RawSql query - just use some placeholder for the SQL
return new SqlLimitResponse(CQueryPlan.RESULT_SET_BASED_RAW_SQL, false);
return new SqlLimitResponse(CQueryPlan.RESULT_SET_BASED_RAW_SQL);
}
if (!rsql.isParsed()) {
@@ -38,8 +38,7 @@ class CQueryBuilderRawSql {
// convert named parameters into positioned parameters
sql = BindParamsParser.parse(bindParams, sql);
}
return new SqlLimitResponse(sql, false);
return new SqlLimitResponse(sql);
}
String orderBy = getOrderBy(predicates, rsql);
@@ -56,7 +55,7 @@ class CQueryBuilderRawSql {
// add back select keyword (it was removed to support sqlQueryLimiter)
String prefix = "select " + (rsql.isDistinct() ? "distinct " : "");
sql = prefix + sql;
return new SqlLimitResponse(sql, false);
return new SqlLimitResponse(sql);
}
}
@@ -66,8 +66,6 @@ public class CQueryPlan implements SpiQueryPlan {
private final boolean rawSql;
private final boolean rowNumberIncluded;
private final String sql;
private final String hash;
@@ -112,7 +110,6 @@ public class CQueryPlan implements SpiQueryPlan {
this.location = location();
this.asOfTableCount = query.getAsOfTableCount();
this.sql = sqlRes.getSql();
this.rowNumberIncluded = sqlRes.isIncludesRowNumberColumn();
this.sqlTree = sqlTree;
this.rawSql = rawSql;
this.logWhereSql = logWhereSql;
@@ -126,7 +123,7 @@ public class CQueryPlan implements SpiQueryPlan {
/**
* Create a query plan for a raw sql query.
*/
CQueryPlan(OrmQueryRequest<?> request, String sql, SqlTree sqlTree, boolean rowNumberIncluded, String logWhereSql) {
CQueryPlan(OrmQueryRequest<?> request, String sql, SqlTree sqlTree, String logWhereSql) {
this.server = request.getServer();
this.dataTimeZone = server.getDataTimeZone();
this.beanType = request.getBeanDescriptor().getBeanType();
@@ -135,12 +132,11 @@ public class CQueryPlan implements SpiQueryPlan {
this.label = query.getPlanLabel();
this.name = deriveName(label, query.getType());
this.location = location();
this.planKey = buildPlanKey(sql, rowNumberIncluded, logWhereSql);
this.planKey = buildPlanKey(sql, logWhereSql);
this.asOfTableCount = 0;
this.sql = sql;
this.sqlTree = sqlTree;
this.rawSql = false;
this.rowNumberIncluded = rowNumberIncluded;
this.logWhereSql = logWhereSql;
this.encryptedProps = sqlTree.getEncryptedProps();
this.stats = new CQueryPlanStats(this);
@@ -171,8 +167,8 @@ public class CQueryPlan implements SpiQueryPlan {
return (profileLocation == null) ? null : profileLocation.location();
}
private CQueryPlanKey buildPlanKey(String sql, boolean rowNumberIncluded, String logWhereSql) {
return new RawSqlQueryPlanKey(sql, false, rowNumberIncluded, logWhereSql);
private CQueryPlanKey buildPlanKey(String sql, String logWhereSql) {
return new RawSqlQueryPlanKey(sql, false, logWhereSql);
}
@Override
@@ -297,10 +293,6 @@ public class CQueryPlan implements SpiQueryPlan {
return rawSql;
}
boolean isRowNumberIncluded() {
return rowNumberIncluded;
}
String getLogWhereSql() {
return logWhereSql;
}
@@ -23,7 +23,7 @@ class CQueryPlanRawSql extends CQueryPlan {
@Override
public DataReader createDataReader(ResultSet rset) {
return new RsetDataReaderIndexed(dataTimeZone, rset, rsetIndexPositions, isRowNumberIncluded());
return new RsetDataReaderIndexed(dataTimeZone, rset, rsetIndexPositions);
}
private int[] createIndexPositions(OrmQueryRequest<?> request, SqlTree sqlTree) {
@@ -11,13 +11,11 @@ class RawSqlQueryPlanKey implements CQueryPlanKey {
private final String sql;
private final boolean rawSql;
private final boolean rowNumberIncluded;
private final String logWhereSql;
RawSqlQueryPlanKey(String sql, boolean rawSql, boolean rowNumberIncluded, String logWhereSql) {
RawSqlQueryPlanKey(String sql, boolean rawSql, String logWhereSql) {
this.sql = sql;
this.rawSql = rawSql;
this.rowNumberIncluded = rowNumberIncluded;
this.logWhereSql = logWhereSql;
}
@@ -49,7 +47,6 @@ class RawSqlQueryPlanKey implements CQueryPlanKey {
RawSqlQueryPlanKey that = (RawSqlQueryPlanKey) o;
if (rawSql != that.rawSql) return false;
if (rowNumberIncluded != that.rowNumberIncluded) return false;
if (!sql.equals(that.sql)) return false;
return Objects.equals(logWhereSql, that.logWhereSql);
}
@@ -58,7 +55,6 @@ class RawSqlQueryPlanKey implements CQueryPlanKey {
public int hashCode() {
int result = sql.hashCode();
result = 92821 * result + (rawSql ? 1 : 0);
result = 92821 * result + (rowNumberIncluded ? 1 : 0);
result = 92821 * result + logWhereSql.hashCode();
return result;
}
@@ -11,17 +11,9 @@ public class RsetDataReaderIndexed extends RsetDataReader {
private final int[] rsetIndexPositions;
public RsetDataReaderIndexed(DataTimeZone dataTimeZone, ResultSet rset, int[] rsetIndexPositions, boolean rowNumberIncluded) {
public RsetDataReaderIndexed(DataTimeZone dataTimeZone, ResultSet rset, int[] rsetIndexPositions) {
super(dataTimeZone, rset);
if (!rowNumberIncluded) {
this.rsetIndexPositions = rsetIndexPositions;
} else {
this.rsetIndexPositions = new int[rsetIndexPositions.length + 1];
for (int i = 0; i < rsetIndexPositions.length; i++) {
// increment all the column indexes by 1
this.rsetIndexPositions[i + 1] = rsetIndexPositions[i] + 1;
}
}
this.rsetIndexPositions = rsetIndexPositions;
}
@Override