in java/clickhouse-client/src/main/java/com/epam/deltix/clickhouse/util/SelectQueryHelper.java [324:357]
public static void validateFilterDefinition(FilterDefinition<String> filter, Map<String, ColumnDeclaration> columnDeclarations) {
String fieldName = filter.getFieldExpression();
FilterType filterType = filter.getFilterType();
List<String> filterValue = filter.getFilterValue();
if (fieldName == null || filterType == null || filterValue == null)
throw illegalFilterValue();
ColumnDeclaration column = columnDeclarations.get(fieldName);
if (column == null)
throw new IllegalArgumentException(String.format("Illegal filter for unknown column '%s'.", fieldName));
DataTypes columnStrippedType = stripNullable(column.getDbDataType()).getType();
if (!isAcceptableFilter(filterType, columnStrippedType))
throw unsupportedFilterException(filterType, column, stripNullable(column.getDbDataType()).getType());
if (columnStrippedType.equals(DataTypes.STRING) ||
columnStrippedType.equals(DataTypes.FIXED_STRING)) {
for (String item : filterValue) {
if (item == null)
throw illegalFilterValue(filter);
}
} else {
for (String item : filterValue) {
if (StringUtils.isBlank(item))
throw illegalFilterValue(filter);
}
}
if (!isAcceptableFilterValue(filterValue, filterType))
throw illegalFilterValue(filter);
}