jpisaac commented on code in PR #2060: URL: https://github.com/apache/phoenix/pull/2060#discussion_r1924499261
########## phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseViewTTLIT.java: ########## @@ -164,6 +181,120 @@ public void testResetServerCache() { } } + private SortOrder[][] getSortOrders() { + SortOrder[][] + sortOrders = + new SortOrder[][] { + { SortOrder.ASC, SortOrder.ASC, SortOrder.ASC }, + { SortOrder.ASC, SortOrder.ASC, SortOrder.DESC }, + { SortOrder.ASC, SortOrder.DESC, SortOrder.ASC }, + { SortOrder.ASC, SortOrder.DESC, SortOrder.DESC }, + { SortOrder.DESC, SortOrder.ASC, SortOrder.ASC }, + { SortOrder.DESC, SortOrder.ASC, SortOrder.DESC }, + { SortOrder.DESC, SortOrder.DESC, SortOrder.ASC }, + { SortOrder.DESC, SortOrder.DESC, SortOrder.DESC } + }; + return sortOrders; + } + + + private List<PDataType[]> getTestCases() { + + List<PDataType[]> testCases = new ArrayList<>(); + // Test Case 1: PK1 = Integer, PK2 = Integer, PK3 = Integer + testCases.add(new PDataType[] { PInteger.INSTANCE, PInteger.INSTANCE, PInteger.INSTANCE }); + // Test Case 2: PK1 = Long, PK2 = Long, PK3 = Long + testCases.add(new PDataType[] { PLong.INSTANCE, PLong.INSTANCE, PLong.INSTANCE }); + // Test Case 3: PK1 = Timestamp, PK2 = Timestamp, PK3 = Timestamp + testCases.add( + new PDataType[] { PTimestamp.INSTANCE, PTimestamp.INSTANCE, PTimestamp.INSTANCE }); + // Test Case 4: PK1 = Char, PK2 = Char, PK3 = Char + testCases.add(new PDataType[] { PChar.INSTANCE, PChar.INSTANCE, PChar.INSTANCE }); + // Test Case 5: PK1 = Decimal, PK2 = Decimal, PK3 = Integer + // last PK cannot be of variable length when creating a view on top of it + testCases.add(new PDataType[] { PDecimal.INSTANCE, PDecimal.INSTANCE, PInteger.INSTANCE }); + // Test Case 6: PK1 = Date, PK2 = Date, PK3 = Date + testCases.add(new PDataType[] { PDate.INSTANCE, PDate.INSTANCE, PDate.INSTANCE }); + // Test Case 7: PK1 = Varchar, PK2 = Varchar, PK3 = Integer + // last PK cannot be of variable length when creating a view on top of it + testCases.add(new PDataType[] { PVarchar.INSTANCE, PVarchar.INSTANCE, PInteger.INSTANCE }); + + // Test Case 8: PK1 = VARBINARY_ENCODED, PK2 = Varchar, PK3 = VARBINARY_ENCODED + testCases.add(new PDataType[] { PVarbinaryEncoded.INSTANCE, PVarchar.INSTANCE, PInteger.INSTANCE }); + return testCases; + } + + private String getWhereClause(String[] pkNames, PDataType[] testPKTypes) { + + StringBuilder builder = new StringBuilder("WHERE "); + Random rnd = new Random(); + + for (int b = 0; b < testPKTypes.length; b++) { + if (b > 0) builder.append(" AND "); + switch (testPKTypes[b].getSqlType()) { + case Types.VARCHAR: { + // pkTypeStr = "VARCHAR(25)"; + builder.append(pkNames[b]).append(" = ").append("'") + .append(RandomStringUtils.randomAlphanumeric(25)).append("'"); + break; + } + case Types.CHAR: { + //pkTypeStr = "CHAR(15)"; + builder.append(pkNames[b]).append(" = ").append("'") + .append(RandomStringUtils.randomAlphanumeric(15)).append("'"); + break; + } + case Types.DECIMAL: + //pkTypeStr = "DECIMAL(8,2)"; + builder.append(pkNames[b]).append(" = ").append(rnd.nextDouble()); + break; + case Types.INTEGER: + //pkTypeStr = "INTEGER"; + builder.append(pkNames[b]).append(" = ").append(rnd.nextInt(500000)); + break; + case Types.BIGINT: + //pkTypeStr = "BIGINT"; + builder.append(pkNames[b]).append(" = ").append(rnd.nextLong()); + break; + case Types.DATE: + //pkTypeStr = "DATE"; + builder.append(pkNames[b]).append(" = ") + .append(" TO_DATE('2022-03-21T15:03:57+00:00') "); + break; + case Types.TIMESTAMP: + //pkTypeStr = "TIMESTAMP"; + builder.append(pkNames[b]).append(" = ") + .append(" TO_TIMESTAMP('2019-10-27T16:17:57+00:00') "); + break; + case Types.VARBINARY: + // pkTypeStr = "VARBINARY"; + case 9000: + // pkTypeStr = "VARBINARY_ENCODED"; + byte[] varBytes = ByteUtil.concat( + RandomStringUtils.randomAlphanumeric(25).getBytes(), + Bytes.toBytes(rnd.nextInt(50000)), + Bytes.toBytes(Math.floor(rnd.nextInt(50000) * rnd.nextDouble()))); + LOGGER.info("***************************************************************************"); Review Comment: Remove logging -- 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: issues-unsubscr...@phoenix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org