From a1dc243c26b8fb8baa6b24fceed56f5058ba0ed1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A9=E5=B0=91?= Date: Sat, 19 May 2012 08:26:20 +0800 Subject: [PATCH] hbase support refactor --- .../druid/hbase/HBasePreparedStatement.java | 22 ++++++++++++------- .../alibaba/druid/hbase/exec/ExecutePlan.java | 2 +- .../exec/SingleTableQueryExecutePlan.java | 2 +- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/alibaba/druid/hbase/HBasePreparedStatement.java b/src/main/java/com/alibaba/druid/hbase/HBasePreparedStatement.java index 0d5894f4bd..1db2421b7e 100644 --- a/src/main/java/com/alibaba/druid/hbase/HBasePreparedStatement.java +++ b/src/main/java/com/alibaba/druid/hbase/HBasePreparedStatement.java @@ -40,16 +40,22 @@ public class HBasePreparedStatement extends PreparedStatementBase implements Pre throw new SQLException("not support multi-statement"); } - SQLSelectStatement stmt = (SQLSelectStatement) stmtList.get(0); - SQLSelectQueryBlock selectQueryBlock = (SQLSelectQueryBlock) stmt.getSelect().getQuery(); + SQLStatement sqlStmt = stmtList.get(0); + if (sqlStmt instanceof SQLSelectStatement) { + SQLSelectStatement selectStmt = (SQLSelectStatement) sqlStmt; - SQLExprTableSource tableSource = (SQLExprTableSource) selectQueryBlock.getFrom(); - String tableName = ((SQLIdentifierExpr) tableSource.getExpr()).getName(); + SQLSelectQueryBlock selectQueryBlock = (SQLSelectQueryBlock) selectStmt.getSelect().getQuery(); - SingleTableQueryExecutePlan singleTableQueryExecuetePlan = new SingleTableQueryExecutePlan(); - singleTableQueryExecuetePlan.setTableName(tableName); + SQLExprTableSource tableSource = (SQLExprTableSource) selectQueryBlock.getFrom(); + String tableName = ((SQLIdentifierExpr) tableSource.getExpr()).getName(); - this.executePlan = singleTableQueryExecuetePlan; + SingleTableQueryExecutePlan singleTableQueryExecuetePlan = new SingleTableQueryExecutePlan(); + singleTableQueryExecuetePlan.setTableName(tableName); + + this.executePlan = singleTableQueryExecuetePlan; + } else { + throw new SQLException("TODO"); + } } public ExecutePlan getExecutePlan() { @@ -75,7 +81,7 @@ public class HBasePreparedStatement extends PreparedStatementBase implements Pre @Override public ResultSet executeQuery() throws SQLException { - return this.executePlan.executeScan(this); + return this.executePlan.executeQuery(this); } @Override diff --git a/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlan.java b/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlan.java index df0334089b..f59d9dc958 100644 --- a/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlan.java +++ b/src/main/java/com/alibaba/druid/hbase/exec/ExecutePlan.java @@ -6,5 +6,5 @@ import com.alibaba.druid.hbase.HBasePreparedStatement; import com.alibaba.druid.hbase.HBaseResultSet; public interface ExecutePlan { - HBaseResultSet executeScan(HBasePreparedStatement statement) throws SQLException; + HBaseResultSet executeQuery(HBasePreparedStatement statement) throws SQLException; } diff --git a/src/main/java/com/alibaba/druid/hbase/exec/SingleTableQueryExecutePlan.java b/src/main/java/com/alibaba/druid/hbase/exec/SingleTableQueryExecutePlan.java index 7678896895..b0ec41a1aa 100644 --- a/src/main/java/com/alibaba/druid/hbase/exec/SingleTableQueryExecutePlan.java +++ b/src/main/java/com/alibaba/druid/hbase/exec/SingleTableQueryExecutePlan.java @@ -23,7 +23,7 @@ public class SingleTableQueryExecutePlan implements ExecutePlan { } @Override - public HBaseResultSet executeScan(HBasePreparedStatement statement) throws SQLException { + public HBaseResultSet executeQuery(HBasePreparedStatement statement) throws SQLException { try { HBaseConnection connection = statement.getConnection(); HTableInterface htable = connection.getHTable(tableName);