@Override
  public List<TypeInfo> getColumnTypes(Configuration conf) throws HiveJdbcDatabaseAccessException {
    return getColumnMetadata(conf, typeInfoTranslator);
  }
@Test
  public void testGetColumnTypes_starQuery_allTypes() throws HiveJdbcDatabaseAccessException {
    Configuration conf = buildConfiguration();
    conf.set(JdbcStorageConfig.QUERY.getPropertyName(), "select * from all_types_table");
    DatabaseAccessor accessor = DatabaseAccessorFactory.getAccessor(conf);

    List<TypeInfo> expectedTypes = new ArrayList<>();
    expectedTypes.add(TypeInfoFactory.getCharTypeInfo(1));
    expectedTypes.add(TypeInfoFactory.getCharTypeInfo(20));
    expectedTypes.add(TypeInfoFactory.unknownTypeInfo);
    expectedTypes.add(TypeInfoFactory.varcharTypeInfo);
    expectedTypes.add(TypeInfoFactory.getVarcharTypeInfo(1024));
    expectedTypes.add(TypeInfoFactory.varcharTypeInfo);
    expectedTypes.add(TypeInfoFactory.booleanTypeInfo);
    expectedTypes.add(TypeInfoFactory.byteTypeInfo);
    expectedTypes.add(TypeInfoFactory.shortTypeInfo);
    expectedTypes.add(TypeInfoFactory.intTypeInfo);
    expectedTypes.add(TypeInfoFactory.longTypeInfo);
    expectedTypes.add(TypeInfoFactory.getDecimalTypeInfo(38, 0));
    expectedTypes.add(TypeInfoFactory.getDecimalTypeInfo(9, 3));
    expectedTypes.add(TypeInfoFactory.floatTypeInfo);
    expectedTypes.add(TypeInfoFactory.doubleTypeInfo);
    expectedTypes.add(TypeInfoFactory.getDecimalTypeInfo(38, 0));
    expectedTypes.add(TypeInfoFactory.dateTypeInfo);
    expectedTypes.add(TypeInfoFactory.unknownTypeInfo);
    expectedTypes.add(TypeInfoFactory.unknownTypeInfo);
    expectedTypes.add(TypeInfoFactory.timestampTypeInfo);
    expectedTypes.add(TypeInfoFactory.timestampTypeInfo);
    expectedTypes.add(TypeInfoFactory.unknownTypeInfo);
    expectedTypes.add(TypeInfoFactory.unknownTypeInfo);
    expectedTypes.add(TypeInfoFactory.unknownTypeInfo);
    expectedTypes.add(TypeInfoFactory.unknownTypeInfo);
    expectedTypes.add(TypeInfoFactory.unknownTypeInfo);
    expectedTypes.add(TypeInfoFactory.unknownTypeInfo);
    expectedTypes.add(TypeInfoFactory.unknownTypeInfo);
    expectedTypes.add(TypeInfoFactory.unknownTypeInfo);
    expectedTypes.add(TypeInfoFactory.unknownTypeInfo);
    expectedTypes.add(TypeInfoFactory.getListTypeInfo(TypeInfoFactory.unknownTypeInfo));
    expectedTypes.add(TypeInfoFactory.unknownTypeInfo);
    Assert.assertEquals(expectedTypes, accessor.getColumnTypes(conf));
  }