test_class.declarator: routeService = new RouteService()
test_class.modifier: private
test_class.original_string: private RouteService routeService = new RouteService();
test_class.type: RouteService
test_class.var_name: routeService
test_class.declarator: parser = (MySqlUpdateParser) SqlParserFactory.getParser(SqlType.UPDATE)
test_class.original_string: MySqlUpdateParser parser = (MySqlUpdateParser) SqlParserFactory.getParser(SqlType.UPDATE);
test_class.type: MySqlUpdateParser
test_class.var_name: parser
test_class.file: baymax-core/src/test/java/com/tongbanjie/baymax/parser/mysql/MySqlUpdateParserTest.java
test_class.identifier: MySqlUpdateParserTest
test_case.body: @Test
      public void testCheckUpdateColumn() throws Exception {
          testCheckUpdateColumn(UpdateTestSql.u1);
          testCheckUpdateColumn("update table1 set a='1' where (a = 1 or b = 2) and c = 3");
      }
test_case.class_method_signature: MySqlUpdateParserTest.testCheckUpdateColumn()
test_case.full_signature: @Test public void testCheckUpdateColumn()
test_case.identifier: testCheckUpdateColumn
test_case.invocations: testCheckUpdateColumn testCheckUpdateColumn
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCheckUpdateColumn()
focal_class.file: baymax-core/src/main/java/com/tongbanjie/baymax/parser/mysql/MySqlUpdateParser.java
focal_class.identifier: MySqlUpdateParser
focal_class.class_method_signature: MySqlUpdateParser.changeSql(ParseResult result, ExecutePlan plan)
focal_class.full_signature: @Override public void changeSql(ParseResult result, ExecutePlan plan)
focal_class.identifier: changeSql
focal_class.modifiers: @Override public
focal_class.parameters: (ParseResult result, ExecutePlan plan)
focal_class.return: void
focal_class.signature: void changeSql(ParseResult result, ExecutePlan plan)
focal_class.class_method_signature: MySqlUpdateParser.checkUpdateColumn()
focal_class.full_signature: protected void checkUpdateColumn()
focal_class.identifier: checkUpdateColumn
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void checkUpdateColumn()
focal_class.superclass: extends MySqlSqlParser
focal_method.body: protected void checkUpdateColumn(){
          MySqlUpdateStatement update = (MySqlUpdateStatement)statement;
          String tableName = StringUtil.removeBackquote(update.getTableName().getSimpleName());
          List<SQLUpdateSetItem> updateSetItem = update.getItems();
          String[] partitionColumns = BaymaxContext.getPartitionColumns(tableName);
          if(partitionColumns != null && partitionColumns.length > 0 && updateSetItem != null && updateSetItem.size() > 0) {
              for(SQLUpdateSetItem item : updateSetItem) {
                  String column = StringUtil.removeBackquote(item.getColumn().toString());
                  if (StringUtil.contains(partitionColumns, column)){
                      throw new BayMaxException("分区表的分区键不能被更新:" + tableName + "." + column);
                  }
              }
          }
      }
focal_method.class_method_signature: MySqlUpdateParser.checkUpdateColumn()
focal_method.full_signature: protected void checkUpdateColumn()
focal_method.identifier: checkUpdateColumn
focal_method.invocations: removeBackquote getSimpleName getTableName getItems getPartitionColumns size removeBackquote toString getColumn contains
focal_method.modifiers: protected
focal_method.parameters: ()
focal_method.return: void
focal_method.signature: void checkUpdateColumn()