Hi,

When a user creates a table with void() transform on a single column, REST
catalogs appears to  ignore this, and ends up with a table with no
partitioning information. The relevant code part is in
RESTSessionCatalog.createChanges:

PartitionSpec spec = meta.spec();
if (spec != null && spec.isPartitioned()) {
    changes.add(new MetadataUpdate.AddPartitionSpec(spec));
} else {
    changes.add(new
MetadataUpdate.AddPartitionSpec(PartitionSpec.unpartitioned()));
}

My question is whether this is by design or not? From the user perspective,
this appears to be ok, because the table is not partitioned anyway.
However, some engines, such as Trino, currently retain void() partitioning
info for non-REST catalogs. What would be the proper expectation from the
Iceberg user in this case - should it observe void() in table schema or not?

Regards,
-- 
*Vladimir Ozerov*
Founder
querifylabs.com

Reply via email to