Antalya 25.8 Backport of #79012, #87735 and #88827 - Enable parquet reader v3 by default by mkmkme · Pull Request #1232 · Altinity/ClickHouse · GitHub
Skip to content
Prev Previous commit
Next Next commit
Revert "Merge pull request #1171 from Altinity/mkmkme/antalya-25.8-mi…
…ssing-field_id"

This reverts commit f5fb292, reversing
changes made to 923825b.
  • Loading branch information
mkmkme committed Dec 16, 2025
commit c1f266b7894fe037394f801543bf53111501d919
7 changes: 1 addition & 6 deletions src/Processors/Formats/Impl/Parquet/SchemaConverter.cpp
22 changes: 2 additions & 20 deletions src/Storages/ObjectStorage/StorageObjectStorage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -203,26 +203,7 @@ StorageObjectStorage::StorageObjectStorage(
sample_path);
}

/// TODO: Known problems with datalake prewhere:
/// * If the iceberg table went through schema evolution, columns read from file may need to
/// be renamed or typecast before applying prewhere. There's already a mechanism for
/// telling parquet reader to rename columns: ColumnMapper. And parquet reader already
/// automatically does type casts to requested types. But weirdly the iceberg reader uses
/// those mechanism to request the *old* name and type of the column, then has additional
/// code to do the renaming and casting as a separate step outside parquet reader.
/// We should probably change this and delete that additional code?
/// * Delta Lake can have "partition columns", which are columns with constant value specified
/// in the metadata, not present in parquet file. Like hive partitioning, but in metadata
/// files instead of path. Currently these columns are added to the block outside parquet
/// reader. If they appear in prewhere expression, parquet reader gets a "no column in block"
/// error. Unlike hive partitioning, we can't (?) just return these columns from
/// supportedPrewhereColumns() because at the time of the call the delta lake metadata hasn't
/// been read yet. So we should probably pass these columns to the parquet reader instead of
/// adding them outside.
/// * There's a bug in StorageObjectStorageSource::createReader: it makes a copy of
/// FormatFilterInfo, but for some reason unsets prewhere_info and row_level_filter_info.
/// There's probably no reason for this, and it should just copy those fields like the others.
supports_prewhere = !configuration->isDataLakeConfiguration() && FormatFactory::instance().checkIfFormatSupportsPrewhere(configuration->getFormat(), context, format_settings);
supports_prewhere = FormatFactory::instance().checkIfFormatSupportsPrewhere(configuration->getFormat(), context, format_settings);

StorageInMemoryMetadata metadata;
metadata.setColumns(columns);
Expand Down Expand Up @@ -726,3 +707,4 @@ void StorageObjectStorage::checkAlterIsPossible(const AlterCommands & commands,
}

}

3 changes: 1 addition & 2 deletions tests/integration/test_storage_iceberg/test.py