private List getHandlerResults()

in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/sql/DirectSqlGetPartition.java [733:790]


    private <T> List<T> getHandlerResults(
        final String databaseName,
        final String tableName,
        @Nullable final String filterExpression,
        @Nullable final List<String> partitionIds,
        final String sql,
        final ResultSetExtractor resultSetExtractor,
        @Nullable final String joinSql,
        @Nullable final String filterSql,
        @Nullable final List<Object> filterParams,
        @Nullable final Sort sort,
        @Nullable final Pageable pageable,
        final boolean forceDisableAudit
    ) {
        //
        // Limiting the in clause to 5000 part names because the sql query with the IN clause for part_name(767 bytes)
        // will hit the max sql query length(max_allowed_packet for our RDS) if we use more than 5400 or so
        //
        List<T> partitions = Lists.newArrayList();
        if (partitionIds != null && partitionIds.size() > 5000) {
            final List<List<String>> subFilterPartitionNamesList = Lists.partition(partitionIds, 5000);
            final List<T> finalPartitions = partitions;
            subFilterPartitionNamesList.forEach(
                subPartitionIds -> finalPartitions.addAll(
                    this.getSubHandlerResultsFromQuery(
                        databaseName,
                        tableName,
                        filterExpression,
                        subPartitionIds,
                        sql,
                        resultSetExtractor,
                        joinSql,
                        filterSql,
                        filterParams,
                        sort,
                        pageable,
                        forceDisableAudit
                    )
                )
            );
        } else {
            partitions = this.getSubHandlerResultsFromQuery(
                databaseName,
                tableName,
                filterExpression,
                partitionIds,
                sql,
                resultSetExtractor,
                joinSql,
                filterSql,
                filterParams,
                sort,
                pageable,
                forceDisableAudit
            );
        }
        return partitions;
    }