Multiple bug fixes including:
Parquet and Data Format Fixes:
- Fixed incorrect Parquet Bool to FixedString conversion in native V3 reader
- Fixed HTTP Basic Auth to accept base64 credentials without padding
Query Execution Fixes:
- Fixed incorrect partition pruning with Nullable partition key columns
- Fixed rare exception in pipeline executor during query cancellation
- Fixed 'Column identifier is already registered' exception with count_distinct_optimization and QUALIFY
- Fixed exception with IN/NOT IN using LowCardinality column arguments
- Fixed 'Pipeline stuck' exception in full_sorting_merge joins
- Fixed LOGICAL_ERROR with TTL merging and aggregate projections
- Fixed logical error with CROSS JOIN and INNER JOIN USING
- Fixed null pointer dereference in dictGetOrDefault with Nullable keys
- Fixed exception in DISTINCT queries with aggregate projections and LowCardinality
- Fixed LOGICAL_ERROR with arrayJoin in filter expression with OUTER JOIN
- Fixed logical error with parallel replicas and optimize_aggregation_in_order
- Fixed pipeline deadlock with sort_overflow_mode and window functions
- Fixed column rollback in Buffer engine during exception handling
Type System and Comparison Fixes:
- Fixed bad cast exception in null-safe comparison with Dynamic/Variant and NULL
- Fixed IS DISTINCT FROM with Dynamic/Variant vs NULL returning incorrect results
Index and Optimization Fixes:
- Fixed tryGetColumnDescription to filter subcolumns by parent column kind
- Fixed text index usage with other skip indexes
- Fixed distributed index analysis with expressions in primary key
- Fixed S3 requests being incorrectly retried on non-retryable errors
- Fixed set skip index usefulness detection with OR predicates
ClickHouse Keeper Fixes:
- Fixed Keeper disconnecting Java ZooKeeper clients after addWatch request
- Fixed zk_followers and zk_synced_followers metrics not decreasing
- Fixed Keeper's secure raft port ignoring cipherList and dhParamsFile configuration
- Fixed misleading Keeper log messages about operation timing
- Fixed Keeper TCP connections preventing graceful server shutdown
Join and Filter Fixes:
- Fixed LOGICAL_ERROR with PREWHERE and IN subquery on MergeTree tables
- Fixed exception 'Sorting column wasn't found in ActionsDAG' with query_plan_convert_join_to_in
- Fixed BAD_GET exception with non-boolean expression in WHERE and SELECT with JOIN
- Fixed LOGICAL_ERROR with read_in_order_through_join and parallel replicas
Data Type and Function Fixes:
- Fixed MongoDB dictionary source failing with named collections
- Fixed LOGICAL_ERROR when Identifier is empty after parameter substitution
- Fixed exception with input table function as argument of remote
- Fixed outdated data parts resurrection from incorrect cleanup
- Fixed exception in LogicalExpressionOptimizerPass with Variant return type
- Fixed parseDateTimeBestEffort incorrectly parsing month/weekday prefixes
- Fixed UNKNOWN_IDENTIFIER with merge() table function over tables with different JSON parameters
- Fixed optimize_skip_unused_shards with Distributed storage in Views
- Fixed tuple subcolumn access by name for external tables
- Fixed reverseUTF8 exception on invalid UTF-8 input
- Fixed LOGICAL_ERROR with FINAL, PREWHERE, constant WHERE and column-independent aggregates
Configuration and System Fixes:
- Fixed system.trace_log entries for dictionary auto-reloads having non-empty query IDs
- Fixed crash from null pointer dereference in system tables iteration
- Fixed SYSTEM START REPLICATED VIEW not waking up refresh task
- Fixed 'Inconsistent table names' exception with view() containing JOINs
- Fixed adjusting RLIMIT_SIGPENDING via pending_signals
Security Fix:
- Fixed RBAC bypass allowing users to DESCRIBE any table via remote/cluster functions without SHOW_COLUMNS privilege
Performance Fixes:
- Fixed unexpected result with read_in_order_use_virtual_row and monotonic functions
- Fixed JIT expression compilation bugs preventing optimization passes
TTL and Transactions:
- Fixed LOGICAL_ERROR in renameAndCommitEmptyParts with concurrent TRUNCATE TABLE and OPTIMIZE TABLE
- Fixed decimal overflow when partition pruning with DateTime64