private List<Partition> createMultiPartitionTableSchema(String catName, String dbName, String tblName,
      String typeName, List<List<String>> values) throws Throwable {
    createDb(dbName);

    Map<String, String> fields = new HashMap<>();
    fields.put("name", ColumnType.STRING_TYPE_NAME);
    fields.put("income", ColumnType.INT_TYPE_NAME);

    Table tbl = new TableBuilder()
        .setDbName(dbName)
        .setTableName(tblName)
        .setCatName(catName)
        .addCol("name", ColumnType.STRING_TYPE_NAME)
        .addCol("income", ColumnType.INT_TYPE_NAME)
        .addPartCol("ds", ColumnType.STRING_TYPE_NAME)
        .addPartCol("hr", ColumnType.STRING_TYPE_NAME)
        .create(client, conf);

    if (isThriftClient) {
      // the createTable() above does not update the location in the 'tbl'
      // object when the client is a thrift client and the code below relies
      // on the location being present in the 'tbl' object - so get the table
      // from the metastore
      tbl = client.getTable(dbName, tblName);
    }

    return createPartitions(dbName, tbl, values);
  }
Creates a simple table under specified database
@param dbName    the database name that the table will be created under
@param tableName the table name to be created
standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java