@SuppressWarnings("squid:S3776")
    public static List<String> match(String part) {
        List<String> types = new LinkedList<>();

        for (ClickHouseDataType t : values()) {
            if (t.isCaseSensitive()) {
                if (t.name().equals(part)) {
                    types.add(t.name());
                    break;
                }
            } else {
                if (t.name().equalsIgnoreCase(part)) {
                    types.add(part);
                    break;
                }
            }
        }

        if (types.isEmpty()) {
            part = part.toUpperCase();
            String prefix = part + ' ';
            for (String alias : allAliases) {
                if ((alias.length() == part.length() && alias.equals(part))
                        || (alias.length() > part.length() && alias.startsWith(prefix))) {
                    types.add(alias);
                }
            }
        }

        return types;
    }
Finds list of matched aliases and/or types based on given part.

@param part prefix, alias or type name
@return list of matched aliases and/or types
clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseDataType.java