sanjeet006py commented on code in PR #1751:
URL: https://github.com/apache/phoenix/pull/1751#discussion_r1436311621
##########
phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableIT.java:
##########
@@ -1795,4 +1796,65 @@ public void
testChangePropertiesUpdatesLASTDDLTimestamp() throws Exception {
newLastDDLTimestamp > oldLastDDLTimestamp);
}
}
-}
\ No newline at end of file
+
+ @Test
+ public void testChangeTableLevelMaxLookbackAge() throws Exception {
+ String schemaName = generateUniqueName();
+ String dataTableName = generateUniqueName();
+ String fullTableName = SchemaUtil.getTableName(schemaName,
dataTableName);
+ long baseMaxLookbackAge = 86400000; // 1 day
+ Long maxLookbackAge = baseMaxLookbackAge;
+ try (Connection conn = DriverManager.getConnection(getUrl())) {
+ String ddl = "CREATE TABLE " + fullTableName +
+ " (a_string varchar not null, a_binary VARCHAR not null,
col1 integer" +
+ " CONSTRAINT pk PRIMARY KEY (a_string, a_binary)) " +
"MAX_LOOKBACK_AGE=" + maxLookbackAge;
+ conn.createStatement().execute(ddl);
+ assertMaxLookbackAge(schemaName, dataTableName, maxLookbackAge);
+ maxLookbackAge = 3L * baseMaxLookbackAge;
+ alterTableLevelMaxLookbackAge(fullTableName,
maxLookbackAge.toString());
+ assertMaxLookbackAge(schemaName, dataTableName, maxLookbackAge);
+ maxLookbackAge = 2L * baseMaxLookbackAge;
+ alterTableLevelMaxLookbackAge(fullTableName,
maxLookbackAge.toString());
+ assertMaxLookbackAge(schemaName, dataTableName, maxLookbackAge);
+ maxLookbackAge = 0L;
+ alterTableLevelMaxLookbackAge(fullTableName,
maxLookbackAge.toString());
+ assertMaxLookbackAge(schemaName, dataTableName, maxLookbackAge);
+ }
+ }
+
+ @Test
+ public void testChangeTableLevelMaxLookbackAgeToInvalid() throws Exception
{
+ String schemaName = generateUniqueName();
+ String dataTableName = generateUniqueName();
+ String fullTableName = SchemaUtil.getTableName(schemaName,
dataTableName);
+ long maxLookbackAge = 86400000L;
+ try(Connection conn = DriverManager.getConnection(getUrl())) {
+ String ddl = "CREATE TABLE " + fullTableName +
+ " (a_string varchar not null, a_binary VARCHAR not null,
col1 integer" +
+ " CONSTRAINT pk PRIMARY KEY (a_string, a_binary)) " +
"MAX_LOOKBACK_AGE=" + maxLookbackAge;
+ conn.createStatement().execute(ddl);
+ }
+ assertThrows(IllegalArgumentException.class, () ->
alterTableLevelMaxLookbackAge(fullTableName, "2309.3"));
+ assertThrows(IllegalArgumentException.class, () ->
alterTableLevelMaxLookbackAge(fullTableName, "forty"));
+ }
+
+ private void assertMaxLookbackAge(String schemaName, String dataTableName,
long expectedMaxLookbackAge) throws Exception {
+ String query = "SELECT MAX_LOOKBACK_AGE FROM \"SYSTEM\".\"CATALOG\"\n"
+ + "WHERE TENANT_ID IS NULL AND\n"
+ + "(TABLE_SCHEM, TABLE_NAME) = ('" + schemaName + "','"+
dataTableName + "') AND\n"
+ + "COLUMN_FAMILY IS NULL AND COLUMN_NAME IS NULL";
+ try (Connection conn = DriverManager.getConnection(getUrl())) {
+ ResultSet rs = conn.createStatement().executeQuery(query);
+ assertTrue(rs.next());
+ assertEquals(expectedMaxLookbackAge, rs.getLong(1));
+ assertFalse(rs.next());
+ }
+ }
+
+ private void alterTableLevelMaxLookbackAge(String fullTableName, String
maxLookbackAge) throws Exception {
+ try(Connection conn = DriverManager.getConnection(getUrl())) {
+ String ddl = "ALTER TABLE " + fullTableName + " SET
MAX_LOOKBACK_AGE = " + maxLookbackAge;
+ conn.createStatement().execute(ddl);
+ }
+ }
+}
Review Comment:
You mean for indexes? If so then it will be part of next batch of changes.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]