mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
@@ -123,10 +123,10 @@ public class PagerUtils {
|
||||
}
|
||||
|
||||
OracleSelectQueryBlock countQueryBlock = new OracleSelectQueryBlock();
|
||||
countQueryBlock.getSelectList().add(new SQLSelectItem(new SQLPropertyExpr(new SQLIdentifierExpr("_X"), "*")));
|
||||
countQueryBlock.getSelectList().add(new SQLSelectItem(new SQLIdentifierExpr("ROWNUM"), "_RN"));
|
||||
countQueryBlock.getSelectList().add(new SQLSelectItem(new SQLPropertyExpr(new SQLIdentifierExpr("XX"), "*")));
|
||||
countQueryBlock.getSelectList().add(new SQLSelectItem(new SQLIdentifierExpr("ROWNUM"), "RN"));
|
||||
|
||||
countQueryBlock.setFrom(new SQLSubqueryTableSource(select, "_X"));
|
||||
countQueryBlock.setFrom(new SQLSubqueryTableSource(select, "XX"));
|
||||
countQueryBlock.setWhere(new SQLBinaryOpExpr(new SQLIdentifierExpr("ROWNUM"), //
|
||||
SQLBinaryOperator.LessThanOrEqual, //
|
||||
new SQLNumberExpr(count + offset)));
|
||||
@@ -136,8 +136,8 @@ public class PagerUtils {
|
||||
|
||||
OracleSelectQueryBlock offsetQueryBlock = new OracleSelectQueryBlock();
|
||||
offsetQueryBlock.getSelectList().add(new SQLSelectItem(new SQLAllColumnExpr()));
|
||||
offsetQueryBlock.setFrom(new SQLSubqueryTableSource(new SQLSelect(countQueryBlock), "_XX"));
|
||||
offsetQueryBlock.setWhere(new SQLBinaryOpExpr(new SQLIdentifierExpr("_RN"), //
|
||||
offsetQueryBlock.setFrom(new SQLSubqueryTableSource(new SQLSelect(countQueryBlock), "XXX"));
|
||||
offsetQueryBlock.setWhere(new SQLBinaryOpExpr(new SQLIdentifierExpr("RN"), //
|
||||
SQLBinaryOperator.GreaterThan, //
|
||||
new SQLNumberExpr(offset)));
|
||||
|
||||
|
||||
@@ -348,10 +348,10 @@ public class StatViewServlet extends HttpServlet {
|
||||
if (isRequireAuth()
|
||||
&& session.getAttribute(SESSION_USER_KEY) == null
|
||||
&& !("/login.html".equals(path) || path.startsWith("/css") || path.startsWith("/js") || path.startsWith("/img"))) {
|
||||
if (contextPath == null || contextPath.equals("") || contextPath.equals("/")) {
|
||||
response.sendRedirect("/login.html");
|
||||
if (contextPath == null || contextPath.equals("") || contextPath.equals("/")) {
|
||||
response.sendRedirect("/druid/login.html");
|
||||
} else {
|
||||
response.sendRedirect("login.html");
|
||||
response.sendRedirect("druid/login.html");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -12,11 +12,11 @@ public class PagerUtilsTest_Limit_oracle_0 extends TestCase {
|
||||
public void test_oracle_oderby_0() throws Exception {
|
||||
String sql = "select * from t order by id";
|
||||
String result = PagerUtils.limit(sql, JdbcConstants.ORACLE, 0, 10);
|
||||
Assert.assertEquals("SELECT _X.*, ROWNUM AS _RN" + //
|
||||
Assert.assertEquals("SELECT XX.*, ROWNUM AS RN" + //
|
||||
"\nFROM (SELECT *" + //
|
||||
"\n\tFROM t" + //
|
||||
"\n\tORDER BY id" + //
|
||||
"\n\t) _X" + //
|
||||
"\n\t) XX" + //
|
||||
"\nWHERE ROWNUM <= 10", result);
|
||||
}
|
||||
|
||||
@@ -32,39 +32,39 @@ public class PagerUtilsTest_Limit_oracle_0 extends TestCase {
|
||||
String sql = "select * from t";
|
||||
String result = PagerUtils.limit(sql, JdbcConstants.ORACLE, 10, 10);
|
||||
Assert.assertEquals("SELECT *" + //
|
||||
"\nFROM (SELECT _X.*, ROWNUM AS _RN" + //
|
||||
"\nFROM (SELECT XX.*, ROWNUM AS RN" + //
|
||||
"\n\tFROM (SELECT *" + //
|
||||
"\n\t\tFROM t" + //
|
||||
"\n\t\t) _X" + //
|
||||
"\n\t\t) XX" + //
|
||||
"\n\tWHERE ROWNUM <= 20" + //
|
||||
"\n\t) _XX" + //
|
||||
"\nWHERE _RN > 10", result);
|
||||
"\n\t) XXX" + //
|
||||
"\nWHERE RN > 10", result);
|
||||
}
|
||||
|
||||
public void test_oracle_2() throws Exception {
|
||||
String sql = "select * from t";
|
||||
String result = PagerUtils.limit(sql, JdbcConstants.ORACLE, 20, 10);
|
||||
Assert.assertEquals("SELECT *" + //
|
||||
"\nFROM (SELECT _X.*, ROWNUM AS _RN" + //
|
||||
"\nFROM (SELECT XX.*, ROWNUM AS RN" + //
|
||||
"\n\tFROM (SELECT *" + //
|
||||
"\n\t\tFROM t" + //
|
||||
"\n\t\t) _X" + //
|
||||
"\n\t\t) XX" + //
|
||||
"\n\tWHERE ROWNUM <= 30" + //
|
||||
"\n\t) _XX" + //
|
||||
"\nWHERE _RN > 20", result);
|
||||
"\n\t) XXX" + //
|
||||
"\nWHERE RN > 20", result);
|
||||
}
|
||||
|
||||
public void test_oracle_3() throws Exception {
|
||||
String sql = "select id, name, salary from t order by id, name";
|
||||
String result = PagerUtils.limit(sql, JdbcConstants.ORACLE, 20, 10);
|
||||
Assert.assertEquals("SELECT *" + //
|
||||
"\nFROM (SELECT _X.*, ROWNUM AS _RN" + //
|
||||
"\nFROM (SELECT XX.*, ROWNUM AS RN" + //
|
||||
"\n\tFROM (SELECT id, name, salary" + //
|
||||
"\n\t\tFROM t" + //
|
||||
"\n\t\tORDER BY id, name" + //
|
||||
"\n\t\t) _X" + //
|
||||
"\n\t\t) XX" + //
|
||||
"\n\tWHERE ROWNUM <= 30" + //
|
||||
"\n\t) _XX" + //
|
||||
"\nWHERE _RN > 20", result);
|
||||
"\n\t) XXX" + //
|
||||
"\nWHERE RN > 20", result);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user