icefury71 commented on a change in pull request #6541: URL: https://github.com/apache/incubator-pinot/pull/6541#discussion_r574179684
########## File path: pinot-core/src/test/java/org/apache/pinot/core/util/TableConfigUtilsTest.java ########## @@ -870,6 +916,69 @@ public void testValidateIndexingConfig() { } catch (Exception e) { // expected } + + tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME) + .setJsonIndexColumns(Arrays.asList("non-existent-column")).build(); + try { + TableConfigUtils.validate(tableConfig, schema); + Assert.fail("Should fail for non existent column in Json index config"); + } catch (Exception e) { + // expected + } + + tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME) + .setJsonIndexColumns(Arrays.asList("intCol")).build(); + try { + TableConfigUtils.validate(tableConfig, schema); + Assert.fail("Should fail for Json index defined on non string column"); + } catch (Exception e) { + // expected + } + + tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME) + .setJsonIndexColumns(Arrays.asList("multiValCol")).build(); + try { + TableConfigUtils.validate(tableConfig, schema); + Assert.fail("Should fail for Json index defined on multi-value column"); + } catch (Exception e) { + // expected + } + + tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME).setRangeIndexColumns(columnList). + build(); + try { + TableConfigUtils.validate(tableConfig, schema); + } catch (Exception e) { + Assert.fail("Should work for range index defined on dictionary encoded string column"); + } + + tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME).setRangeIndexColumns(columnList) + .setNoDictionaryColumns(columnList). + build(); + try { + TableConfigUtils.validate(tableConfig, schema); + Assert.fail("Should fail for range index defined on non numeric/no-dictionary column"); + } catch (Exception e) { + // Expected Review comment: This is just for the unit test - I followed the same pattern as for others. ########## File path: pinot-core/src/test/java/org/apache/pinot/core/util/TableConfigUtilsTest.java ########## @@ -870,6 +916,69 @@ public void testValidateIndexingConfig() { } catch (Exception e) { // expected } + + tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME) + .setJsonIndexColumns(Arrays.asList("non-existent-column")).build(); + try { + TableConfigUtils.validate(tableConfig, schema); + Assert.fail("Should fail for non existent column in Json index config"); + } catch (Exception e) { + // expected + } + + tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME) + .setJsonIndexColumns(Arrays.asList("intCol")).build(); + try { + TableConfigUtils.validate(tableConfig, schema); + Assert.fail("Should fail for Json index defined on non string column"); + } catch (Exception e) { + // expected + } + + tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME) + .setJsonIndexColumns(Arrays.asList("multiValCol")).build(); + try { + TableConfigUtils.validate(tableConfig, schema); + Assert.fail("Should fail for Json index defined on multi-value column"); + } catch (Exception e) { + // expected + } + + tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME).setRangeIndexColumns(columnList). + build(); + try { + TableConfigUtils.validate(tableConfig, schema); + } catch (Exception e) { + Assert.fail("Should work for range index defined on dictionary encoded string column"); + } + + tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME).setRangeIndexColumns(columnList) + .setNoDictionaryColumns(columnList). + build(); + try { + TableConfigUtils.validate(tableConfig, schema); + Assert.fail("Should fail for range index defined on non numeric/no-dictionary column"); + } catch (Exception e) { + // Expected + } + + tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME).setVarLengthDictionaryColumns(Arrays.asList("intCol")). + build(); + try { + TableConfigUtils.validate(tableConfig, schema); + Assert.fail("Should fail for Var length dictionary defined for non string/bytes column"); + } catch (Exception e) { + // expected + } + + tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME).setJsonIndexColumns(Arrays.asList("multiValCol")). + build(); + try { + TableConfigUtils.validate(tableConfig, schema); + Assert.fail("Should fail for Json Index defined on a multi value column"); + } catch (Exception e) { + // expected Review comment: Same comment as above ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org