diff options
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.java | 21 |
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()) { |