private void assertTableMetaData(ResultSet rs, String schema, String table, PTableType tableType) throws SQLException { assertEquals(schema, rs.getString("TABLE_SCHEM")); assertEquals(table, rs.getString("TABLE_NAME")); assertEquals(tableType.toString(), rs.getString("TABLE_TYPE")); }
try (Connection seeLatestConn = DriverManager.getConnection(url, props)) { DatabaseMetaData dbmd = seeLatestConn.getMetaData(); ResultSet rs = dbmd.getTables(null, null, null, new String[]{PTableType.VIEW.toString(), PTableType.TABLE.toString()}); while (rs.next()) { String fullTableName = SchemaUtil.getEscapedTableName(
conn.createStatement().execute(ddl); ResultSet rs = conn.getMetaData().getTables(null, StringUtil.escapeLike(INDEX_DATA_SCHEMA), "lowerCaseIndex", new String[] {PTableType.INDEX.toString()}); assertTrue(rs.next()); assertEquals("lowerCaseIndex", rs.getString(3));
@Test public void testMetadataTenantSpecific() throws SQLException { // create multi-tenant table String tableName = generateUniqueName(); try (Connection conn = DriverManager.getConnection(getUrl())) { String baseTableDdl = "CREATE TABLE %s (K1 VARCHAR NOT NULL, K2 VARCHAR NOT NULL, V VARCHAR CONSTRAINT PK PRIMARY KEY(K1, K2)) MULTI_TENANT=true"; conn.createStatement().execute(String.format(baseTableDdl, tableName)); } // create tenant specific view and execute metdata data call with tenant specific connection String tenantId = generateUniqueName(); Properties tenantProps = new Properties(); tenantProps.setProperty(PhoenixRuntime.TENANT_ID_ATTRIB, tenantId); try (Connection tenantConn = DriverManager.getConnection(getUrl(), tenantProps)) { String viewName = generateUniqueName(); String viewDdl = "CREATE VIEW %s AS SELECT * FROM %s"; tenantConn.createStatement().execute(String.format(viewDdl, viewName, tableName)); DatabaseMetaData dbmd = tenantConn.getMetaData(); ResultSet rs = dbmd.getTables(tenantId, "", viewName, null); assertTrue(rs.next()); assertEquals(rs.getString("TABLE_NAME"), viewName); assertEquals(PTableType.VIEW.toString(), rs.getString("TABLE_TYPE")); assertFalse(rs.next()); } }
new String[] { PTableType.INDEX.toString() }); assertTrue(rs.next()); assertEquals(INDEX_TABLE_NAME, rs.getString(3));
assertTrue(rs.next()); assertEquals(rs.getString("TABLE_NAME"), tableAName); assertEquals(PTableType.TABLE.toString(), rs.getString("TABLE_TYPE")); assertEquals(rs.getString(3), tableAName); assertEquals(PTableType.TABLE.toString(), rs.getString(4)); assertFalse(rs.next()); assertEquals(SYSTEM_CATALOG_SCHEMA, rs.getString("TABLE_SCHEM")); assertEquals(SYSTEM_CATALOG_TABLE, rs.getString("TABLE_NAME")); assertEquals(PTableType.SYSTEM.toString(), rs.getString("TABLE_TYPE")); assertTrue(rs.next()); assertEquals(SYSTEM_CATALOG_SCHEMA, rs.getString("TABLE_SCHEM")); assertEquals(SYSTEM_CHILD_LINK_TABLE, rs.getString("TABLE_NAME")); assertEquals(PTableType.SYSTEM.toString(), rs.getString("TABLE_TYPE")); assertTrue(rs.next()); assertEquals(SYSTEM_CATALOG_SCHEMA, rs.getString("TABLE_SCHEM")); assertEquals(SYSTEM_FUNCTION_TABLE, rs.getString("TABLE_NAME")); assertEquals(PTableType.SYSTEM.toString(), rs.getString("TABLE_TYPE")); assertTrue(rs.next()); assertEquals(SYSTEM_CATALOG_SCHEMA, rs.getString("TABLE_SCHEM")); assertEquals(PhoenixDatabaseMetaData.SYSTEM_LOG_TABLE, rs.getString("TABLE_NAME")); assertEquals(PTableType.SYSTEM.toString(), rs.getString("TABLE_TYPE")); assertTrue(rs.next()); assertEquals(SYSTEM_CATALOG_SCHEMA, rs.getString("TABLE_SCHEM")); assertEquals(SYSTEM_CATALOG_SCHEMA, rs.getString("TABLE_SCHEM")); assertEquals(TYPE_SEQUENCE, rs.getString("TABLE_NAME")); assertEquals(PTableType.SYSTEM.toString(), rs.getString("TABLE_TYPE")); assertTrue(rs.next());
conn.createStatement().execute(ddl); rs = conn.getMetaData().getTables(null, StringUtil.escapeLike(INDEX_DATA_SCHEMA), indexName , new String[] {PTableType.INDEX.toString()}); assertTrue(rs.next()); assertEquals(indexName , rs.getString(3));
dbmd.getTables(null, null, null, new String[] { PTableType.TABLE.toString(), PhoenixDatabaseMetaData.SEQUENCE_TABLE_TYPE }); assertTrue(rs.next()); assertNull(rs.getString("TABLE_SCHEM")); assertEquals(foo, rs.getString("TABLE_NAME")); assertEquals(PTableType.TABLE.toString(), rs.getString("TABLE_TYPE")); assertTrue(rs.next()); assertNull(rs.getString("TABLE_CAT")); assertEquals(basSchema, rs.getString("TABLE_SCHEM")); assertEquals(bas, rs.getString("TABLE_NAME")); assertEquals(PTableType.TABLE.toString(), rs.getString("TABLE_TYPE")); assertFalse(rs.next());
new String[] { PTableType.INDEX.toString() }); assertTrue(rs.next()); assertEquals(indxTable, rs.getString(3));
"\""+ PhoenixDatabaseMetaData.SYSTEM_CATALOG_SCHEMA + "\"", null, new String[] {PTableType.SYSTEM.toString()}); ReadOnlyProps p = c.unwrap(PhoenixConnection.class).getQueryServices().getProps(); while (rs.next()) {
conn.createStatement().execute(ddl); rs = conn.getMetaData().getTables(null, StringUtil.escapeLike(INDEX_DATA_SCHEMA), indexName , new String[] {PTableType.INDEX.toString()}); assertTrue(rs.next()); assertEquals(indexName , rs.getString(3)); conn.createStatement().execute(ddl); rs = conn.getMetaData().getTables(null, StringUtil.escapeLike(INDEX_DATA_SCHEMA), indexName , new String[] {PTableType.INDEX.toString()}); assertTrue(rs.next()); assertEquals(indexName , rs.getString(3)); conn.createStatement().execute(ddl); rs = conn.getMetaData().getTables(null, StringUtil.escapeLike(INDEX_DATA_SCHEMA), indexName , new String[] {PTableType.INDEX.toString()}); assertTrue(rs.next()); assertEquals(indexName , rs.getString(3)); conn.createStatement().execute(ddl); rs = conn.getMetaData().getTables(null, StringUtil.escapeLike(INDEX_DATA_SCHEMA), indexName , new String[] {PTableType.INDEX.toString()}); assertTrue(rs.next()); assertEquals(indexName , rs.getString(3)); rs = conn.getMetaData().getTables(null, StringUtil.escapeLike(INDEX_DATA_SCHEMA), indexName , new String[] {PTableType.INDEX.toString()}); assertTrue(rs.next()); assertEquals(indexName , rs.getString(3));
public String buildAlterAddColumn(String tableName, String column, String type, boolean ifNotExists, PTableType tableType) { return "ALTER " + tableType.toString() + " " + getEscapedFullTableName(tableType, tableName) + " ADD " + (ifNotExists ? "IF NOT EXISTS " : "") + "\"" + column + "\" " + type; }