aboutsummaryrefslogtreecommitdiffstats
path: root/mdbc-server/src/main/java/org/onap/music/mdbc/query/QueryProcessor.java
diff options
context:
space:
mode:
Diffstat (limited to 'mdbc-server/src/main/java/org/onap/music/mdbc/query/QueryProcessor.java')
-rw-r--r--mdbc-server/src/main/java/org/onap/music/mdbc/query/QueryProcessor.java21
1 files changed, 18 insertions, 3 deletions
diff --git a/mdbc-server/src/main/java/org/onap/music/mdbc/query/QueryProcessor.java b/mdbc-server/src/main/java/org/onap/music/mdbc/query/QueryProcessor.java
index 6d6c661..27ea6ea 100644
--- a/mdbc-server/src/main/java/org/onap/music/mdbc/query/QueryProcessor.java
+++ b/mdbc-server/src/main/java/org/onap/music/mdbc/query/QueryProcessor.java
@@ -30,6 +30,7 @@ import org.apache.calcite.avatica.util.Casing;
import org.apache.calcite.avatica.util.Quoting;
import org.apache.calcite.sql.SqlBasicCall;
import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlDelete;
import org.apache.calcite.sql.SqlIdentifier;
import org.apache.calcite.sql.SqlInsert;
import org.apache.calcite.sql.SqlJoin;
@@ -120,12 +121,15 @@ public class QueryProcessor {
case UPDATE:
parseUpdate((SqlUpdate) sqlNode, tableOpsMap);
break;
+ case DELETE:
+ parseDelete((SqlDelete) sqlNode, tableOpsMap);
+ break;
case SELECT:
parseSelect((SqlSelect) sqlNode, tableOpsMap);
break;
case ORDER_BY:
parseSelect((SqlSelect)((SqlOrderBy) sqlNode).query, tableOpsMap);
- break;
+ break;
default:
logger.error("Unhandled sql query type " + sqlNode.getKind() +" for query " + query);
}
@@ -144,7 +148,7 @@ public class QueryProcessor {
Ops.add(SQLOperation.INSERT);
tableOpsMap.put(tableName, Ops);
}
-
+
private static void parseUpdate(SqlUpdate sqlUpdate, Map<String, List<SQLOperation>> tableOpsMap) {
SqlNode targetTable = sqlUpdate.getTargetTable();
switch (targetTable.getKind()) {
@@ -155,7 +159,18 @@ public class QueryProcessor {
logger.error("Unable to process: " + targetTable.getKind() + " query");
}
}
-
+
+ private static void parseDelete(SqlDelete sqlDelete, Map<String, List<SQLOperation>> tableOpsMap) {
+ SqlNode targetTable = sqlDelete.getTargetTable();
+ switch (targetTable.getKind()) {
+ case IDENTIFIER:
+ addIdentifierToMap(tableOpsMap, (SqlIdentifier) targetTable, SQLOperation.DELETE);
+ break;
+ default:
+ logger.error("Unable to process: " + targetTable.getKind() + " query");
+ }
+ }
+
private static void parseSelect(SqlSelect sqlSelect, Map<String, List<SQLOperation>> tableOpsMap ) {
SqlNode from = sqlSelect.getFrom();
switch (from.getKind()) {