private PTable getParentOfView(PTable view) throws SQLException { return connection .getTable(new PTableKey(view.getTenantId(), view.getParentName().getString())); }
private static void makeImmutableAndDeleteData(String tableName, String fullTableName) throws Exception { Connection conn = getConnection(); try { conn.setAutoCommit(true); conn.createStatement().execute("DELETE FROM " + fullTableName); conn.createStatement().execute("ALTER TABLE " + fullTableName + " SET IMMUTABLE_ROWS=true"); conn.createStatement().executeQuery("SELECT COUNT(*) FROM " + fullTableName).next(); PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class); assertTrue(pconn.getTable(new PTableKey(pconn.getTenantId(), fullTableName)).isImmutableRows()); } finally { conn.close(); } }
@Before public void setup() throws Exception { Properties props = PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES); conn = DriverManager.getConnection(getUrl(), props); PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class); pDataTable = pconn.getTable(new PTableKey(pconn.getTenantId(), DATA_TABLE_FULL_NAME)); pIndexTable = pconn.getTable(new PTableKey(pconn.getTenantId(), INDEX_TABLE_FULL_NAME)); }
@Test public void testSameColumnNameInPKAndNonPK() throws Exception { Connection conn = DriverManager.getConnection(getUrl()); try { String query = "CREATE TABLE t1 (k integer not null primary key, a.k decimal, b.k decimal)"; conn.createStatement().execute(query); PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class); PColumn c = pconn.getTable(new PTableKey(pconn.getTenantId(), "T1")).getColumnForColumnName("K"); assertTrue(SchemaUtil.isPKColumn(c)); } finally { conn.close(); } }
private void validatePropertyOnViewIndex(String viewName, String viewIndexName, boolean useStats, Connection conn, Connection tenantConn) throws SQLException, TableNotFoundException { // fetch the latest view ptable PhoenixRuntime.getTableNoCache(tenantConn, viewName); PhoenixConnection phxConn = conn.unwrap(PhoenixConnection.class); PTable viewIndex = phxConn.getTable(new PTableKey(phxConn.getTenantId(), viewIndexName)); assertEquals("USE_STATS_FOR_PARALLELIZATION property set incorrectly", useStats, PhoenixConfigurationUtil .getStatsForParallelizationProp(tenantConn.unwrap(PhoenixConnection.class), viewIndex)); }
private static void assertNoActiveIndex(Connection conn, String schemaName, String tableName) throws SQLException { ImmutableBytesWritable ptr = new ImmutableBytesWritable(); String fullTableName = SchemaUtil.getTableName(schemaName, tableName); conn.createStatement().executeQuery("SELECT count(*) FROM " + fullTableName).next(); // client side cache will update PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class); pconn.getTable(new PTableKey(pconn.getTenantId(), fullTableName)).getIndexMaintainers(ptr, pconn); assertTrue(ptr.getLength() == 0); }
private static void assertActiveIndex(Connection conn, String schemaName, String tableName) throws SQLException { ImmutableBytesWritable ptr = new ImmutableBytesWritable(); String fullTableName = SchemaUtil.getTableName(schemaName, tableName); conn.createStatement().executeQuery("SELECT count(*) FROM " + fullTableName).next(); // client side cache will update PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class); pconn.getTable(new PTableKey(pconn.getTenantId(), fullTableName)).getIndexMaintainers(ptr, pconn); assertTrue(ptr.getLength() > 0); }
/** * Tests that col types with a precision are outputted correctly in the dynamic columns * @throws SQLException */ @Test public void testGetDynamicColPrecision() throws SQLException { conn.createStatement().execute(DYNAMIC_COL_DDL); conn.createStatement().execute(DYNAMIC_COL_IDX_DDL); PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class); pDataTable = pconn.getTable(new PTableKey(pconn.getTenantId(), "PRECISION_NAME_TEST")); pIndexTable = pconn.getTable(new PTableKey(pconn.getTenantId(), "PRECISION_NAME_IDX_TEST")); IndexColumnNames indexColumnNames = new IndexColumnNames(pDataTable, pIndexTable); assertEquals("[\"CHAR_TEST\" CHAR(15), \"VARCHAR_TEST\" VARCHAR(1), \"DECIMAL_TEST\" DECIMAL(10,2), \"BINARY_TEST\" BINARY(11), \"VARCHAR_UNSPEC\" VARCHAR, \"DEC_UNSPEC\" DECIMAL]", indexColumnNames.getDynamicDataCols().toString()); assertEquals("[\":CHAR_TEST\" CHAR(15), \"0:VARCHAR_TEST\" VARCHAR(1), \"0:DECIMAL_TEST\" DECIMAL(10,2), \"0:BINARY_TEST\" BINARY(11), \"0:VARCHAR_UNSPEC\" VARCHAR, \"0:DEC_UNSPEC\" DECIMAL]", indexColumnNames.getDynamicIndexCols().toString()); } }
private static void assertImmutableRows(Connection conn, String fullTableName, boolean expectedValue) throws SQLException { PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class); assertEquals(expectedValue, pconn.getTable(new PTableKey(pconn.getTenantId(), fullTableName)).isImmutableRows()); }
private void assertImmutableRows(Connection conn, String fullTableName, boolean expectedValue) throws SQLException { PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class); assertEquals(expectedValue, pconn.getTable(new PTableKey(pconn.getTenantId(), fullTableName)).isImmutableRows()); }
private static void asssertIsWALDisabled(Connection conn, String fullTableName, boolean expectedValue) throws SQLException { PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class); assertEquals(expectedValue, pconn.getTable(new PTableKey(pconn.getTenantId(), fullTableName)).isWALDisabled()); }
private void assertImmutableRows(Connection conn, String fullTableName, boolean expectedValue) throws SQLException { PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class); assertEquals(expectedValue, pconn.getTable(new PTableKey(pconn.getTenantId(), fullTableName)).isImmutableRows()); }
private void asssertIsWALDisabled(Connection conn, String fullTableName, boolean expectedValue) throws SQLException { PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class); assertEquals(expectedValue, pconn.getTable(new PTableKey(pconn.getTenantId(), fullTableName)).isWALDisabled()); }
private void assertColumnEncodingMetadata(QualifierEncodingScheme expectedEncodingScheme, ImmutableStorageScheme expectedStorageScheme, String tableName, Connection conn) throws Exception { PhoenixConnection phxConn = conn.unwrap(PhoenixConnection.class); PTable table = phxConn.getTable(new PTableKey(null, tableName)); assertEquals(expectedEncodingScheme, table.getEncodingScheme()); assertEquals(expectedStorageScheme, table.getImmutableStorageScheme()); }
private static long getTableSequenceNumber(PhoenixConnection conn, String tableName) throws SQLException { PTable table = conn.getTable(new PTableKey(conn.getTenantId(), SchemaUtil.normalizeIdentifier(tableName))); return table.getSequenceNumber(); }
private static short getMaxKeySequenceNumber(PhoenixConnection conn, String tableName) throws SQLException { PTable table = conn.getTable(new PTableKey(conn.getTenantId(), SchemaUtil.normalizeIdentifier(tableName))); return SchemaUtil.getMaxKeySeq(table); }
@Test public void testGetSplitsWithSkipScanFilter() throws Exception { byte[][] splits = new byte[][] {Ka1A, Ka1B, Ka1E, Ka1G, Ka1I, Ka2A}; createTestTable(getUrl(),DDL,splits, null); Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); Connection conn = DriverManager.getConnection(getUrl(), props); PhoenixConnection pconn = conn.unwrap(PhoenixConnection.class); PTable table = pconn.getTable(new PTableKey(pconn.getTenantId(), TABLE_NAME)); TableRef tableRef = new TableRef(table); List<HRegionLocation> regions = pconn.getQueryServices().getAllTableRegions(tableRef.getTable().getPhysicalName().getBytes()); List<KeyRange> ranges = getSplits(tableRef, scan, regions, scanRanges); assertEquals("Unexpected number of splits: " + ranges.size(), expectedSplits.size(), ranges.size()); for (int i=0; i<expectedSplits.size(); i++) { assertEquals(expectedSplits.get(i), ranges.get(i)); } }
private boolean checkColumnPartOfPk(PhoenixConnection conn, String columnName, String tableName) throws SQLException { String normalizedTableName = SchemaUtil.normalizeIdentifier(tableName); PTable table = conn.getTable(new PTableKey(conn.getTenantId(), normalizedTableName)); List<PColumn> pkCols = table.getPKColumns(); String normalizedColumnName = SchemaUtil.normalizeIdentifier(columnName); for (PColumn pkCol : pkCols) { if (pkCol.getName().getString().equals(normalizedColumnName)) { return true; } } return false; }
@Test public void testCompile() throws Exception { try (Connection conn = DriverManager.getConnection(getUrl())) { setupTables(conn); PhoenixConnection pConn = conn.unwrap(PhoenixConnection.class); PTable pDataTable = pConn.getTable(new PTableKey(null, "T")); PostIndexDDLCompiler compiler = new PostIndexDDLCompiler(pConn, new TableRef(pDataTable)); MutationPlan plan = compiler.compile(pConn.getTable(new PTableKey(null, "IDX"))); assertEquals("T", plan.getQueryPlan().getTableRef().getTable().getTableName().getString()); } }
private int getIndexOfPkColumn(PhoenixConnection conn, String columnName, String tableName) throws SQLException { String normalizedTableName = SchemaUtil.normalizeIdentifier(tableName); PTable table = conn.getTable(new PTableKey(conn.getTenantId(), normalizedTableName)); List<PColumn> pkCols = table.getPKColumns(); String normalizedColumnName = SchemaUtil.normalizeIdentifier(columnName); int i = 0; for (PColumn pkCol : pkCols) { if (pkCol.getName().getString().equals(normalizedColumnName)) { return i; } i++; } return -1; }