@Test public void testGetTableMetaNullOrEmptyTypes() throws Exception { List<TableMeta> tableMetas = client.getTableMeta("*", "*", Lists.newArrayList()); assertTableMetas(new int[]{0, 1, 2, 3, 4}, tableMetas); tableMetas = client.getTableMeta("*", "*", Lists.newArrayList("")); assertTableMetas(new int[]{}, tableMetas); tableMetas = client.getTableMeta("*", "*", null); assertTableMetas(new int[]{0, 1, 2, 3, 4}, tableMetas); }
@Test public void testGetTableMetaCaseSensitive() throws Exception { List<TableMeta> tableMetas = client.getTableMeta("*tWo", "tEsT*", Lists.newArrayList()); assertTableMetas(new int[]{3}, tableMetas); tableMetas = client.getTableMeta("*", "*", Lists.newArrayList("mAnAGeD_tABlE")); assertTableMetas(new int[]{}, tableMetas); }
@Test public void testGetTableMetaNullOrEmptyTbl() throws Exception { List<TableMeta> tableMetas = client.getTableMeta("*", null, Lists.newArrayList()); assertTableMetas(new int[]{0, 1, 2, 3, 4}, tableMetas); tableMetas = client.getTableMeta("*", "", Lists.newArrayList()); assertTableMetas(new int[]{}, tableMetas); }
@Test public void testGetTableMetaNullOrEmptyDb() throws Exception { List<TableMeta> tableMetas = client.getTableMeta(null, "*", Lists.newArrayList()); assertTableMetas(new int[]{0, 1, 2, 3, 4}, tableMetas); tableMetas = client.getTableMeta("", "*", Lists.newArrayList()); assertTableMetas(new int[]{}, tableMetas); }
@Test public void noSuchCatalog() throws TException { List<TableMeta> tableMetas = client.getTableMeta("nosuchcatalog", "*", "*", Lists.newArrayList()); Assert.assertEquals(0, tableMetas.size()); }
@Test public void catalogPatternsDontWork() throws TException { List<TableMeta> tableMetas = client.getTableMeta("h*", "*", "*", Lists.newArrayList()); Assert.assertEquals(0, tableMetas.size()); }
List<TableMeta> foundTableMetas = msc.getTableMeta(catalogName, dbPattern, tablePattern, tableTypesList); LOG.info("Looking for tables using catalog: {} dbPattern: {} tablePattern: {} found: {}", catalogName, dbPattern, tablePattern, foundTableMetas.size());
List<TableMeta> tableMetas = client.getTableMeta("asdf", "qwerty", Lists.newArrayList("zxcv")); assertTableMetas(new int[]{}, tableMetas); tableMetas = client.getTableMeta("testpartdb_two", "vtestparttable", Lists.newArrayList()); assertTableMetas(new int[]{4}, tableMetas); tableMetas = client.getTableMeta("*", "*", Lists.newArrayList()); assertTableMetas(new int[]{0, 1, 2, 3, 4}, tableMetas); tableMetas = client.getTableMeta("***", "**", Lists.newArrayList()); assertTableMetas(new int[]{0, 1, 2, 3, 4}, tableMetas); tableMetas = client.getTableMeta("*one", "*", Lists.newArrayList()); assertTableMetas(new int[]{0, 1, 2}, tableMetas); tableMetas = client.getTableMeta("*one*", "*", Lists.newArrayList()); assertTableMetas(new int[]{0, 1, 2}, tableMetas); tableMetas = client.getTableMeta("testpartdb_two", "*", Lists.newArrayList()); assertTableMetas(new int[]{3, 4}, tableMetas); tableMetas = client.getTableMeta("testpartdb_two*", "*", Lists.newArrayList()); assertTableMetas(new int[]{3, 4}, tableMetas); tableMetas = client.getTableMeta("testpartdb*", "*", Lists.newArrayList( TableType.EXTERNAL_TABLE.name())); assertTableMetas(new int[]{0}, tableMetas); tableMetas = client.getTableMeta("testpartdb*", "*", Lists.newArrayList(
@Test public void testGetTableMetaNullNoDbNoTbl() throws Exception { client.dropDatabase(DB_NAME + "_one", true, true, true); client.dropDatabase(DB_NAME + "_two", true, true, true); List<TableMeta> tableMetas = client.getTableMeta("*", "*", Lists.newArrayList()); assertTableMetas(new int[]{}, tableMetas); }
for (String dbName : metastoreClient.getDatabases(schemaPattern)) { for (TableMeta tableMeta : metastoreClient.getTableMeta(dbName, tablePattern, tableTypeList)) { String tableType = tableTypeMapping.mapToClientType(tableMeta.getTableType()); rowSet.addRow(new Object[]{
@Test public void getTableMeta() throws TException { String dbName = "db9"; // For this one don't specify a location to make sure it gets put in the catalog directory Database db = new DatabaseBuilder() .setName(dbName) .build(conf); db.unsetCatalogName(); client.createDatabase(db); String[] tableNames = {"table_in_other_catalog_1", "table_in_other_catalog_2", "random_name"}; List<TableMeta> expected = new ArrayList<>(tableNames.length); for (int i = 0; i < tableNames.length; i++) { Table table = new TableBuilder() .inDb(db) .setTableName(tableNames[i]) .addCol("id", "int") .addCol("name", "string") .build(conf); table.unsetCatName(); client.createTable(table); TableMeta tableMeta = new TableMeta(dbName, tableNames[i], TableType.MANAGED_TABLE.name()); tableMeta.setCatName(expectedCatalog()); expected.add(tableMeta); } List<String> types = Collections.singletonList(TableType.MANAGED_TABLE.name()); List<TableMeta> actual = client.getTableMeta(dbName, "*", types); Assert.assertEquals(new TreeSet<>(expected), new TreeSet<>(actual)); actual = client.getTableMeta("*", "table_*", types); Assert.assertEquals(expected.subList(0, 2), actual.subList(0, 2)); }
List<TableMeta> actual = client.getTableMeta(catName, dbName, "*", types); assertTableMetas(expected, actual, 0, 1, 2); actual = client.getTableMeta(catName, "*", "table_*", types); assertTableMetas(expected, actual, 0, 1); actual = client.getTableMeta(dbName, "table_in_other_catalog_*", types); assertTableMetas(expected, actual);
@Override public void runInternal() throws HiveSQLException { setState(OperationState.RUNNING); try { IMetaStoreClient metastoreClient = getParentSession().getMetaStoreClient(); String schemaPattern = convertSchemaPattern(schemaName); List<String> matchingDbs = metastoreClient.getDatabases(schemaPattern); if(isAuthV2Enabled()){ List<HivePrivilegeObject> privObjs = HivePrivilegeObjectUtils.getHivePrivDbObjects(matchingDbs); String cmdStr = "catalog : " + catalogName + ", schemaPattern : " + schemaName; authorizeMetaGets(HiveOperationType.GET_TABLES, privObjs, cmdStr); } String tablePattern = convertIdentifierPattern(tableName, true); for (TableMeta tableMeta : metastoreClient.getTableMeta(schemaPattern, tablePattern, tableTypeList)) { rowSet.addRow(new Object[] { DEFAULT_HIVE_CATALOG, tableMeta.getDbName(), tableMeta.getTableName(), tableTypeMapping.mapToClientType(tableMeta.getTableType()), tableMeta.getComments(), null, null, null, null, null }); } setState(OperationState.FINISHED); } catch (Exception e) { setState(OperationState.ERROR); throw new HiveSQLException(e); } }