Hi Fokko,
sure, in general "absent" or "null" would be cleaner. But now we have
two representations for the same case - I suspect most went with the
"reference behavior".
The thing is, that -1 cannot "go away".
I'd prefer to keep the previous behavior - otherwise implementations may
fall back to 0, which is definitely wrong. Would be better IMHO not to
break existing implementations / render existing setups incompatible
with Iceberg 1.8.
On 17.02.25 15:49, Fokko Driesprong wrote:
Hey Robert,
Thanks for raising this.
snapshot-ID -1 isn't per-se invalid, because the valid values are
not defined in the spec.
For me, this is invalid, since there is no snapshot with -1 in the
snapshots property. In the tests with the PR, you can see that there
are no snapshots
<https://github.com/apache/iceberg/pull/11560/files#diff-41bdfb6698d2aa7b47ff7d5fabc558a5a64f8b7496fe1bcd8f8ecb69b2afc128R112>.
A year ago we had a similar discussion on PyIceberg
<https://py.iceberg.apache.org/configuration/#backward-compatibility>
around this and this ended up in adding a flag to fall back to the old
behavior. I do agree that we should have communicated this more
clearly with the release.
Kind regards,
Fokko
Op ma 17 feb 2025 om 12:25 schreef Robert Stupp <sn...@snazy.de>:
Feels like https://github.com/apache/iceberg/pull/11560 introduced
a behavior change.
snapshot-ID -1 isn't per-se invalid, because the valid values are
not defined in the spec.
Previous Iceberg-Java versions always produced -1 if there's no
current snapshot - 1.8 produces `null` in that case. So there are
now two _different_ values for "no current snapshot".
Implementations that rely on the behavior of the "reference
implementation" (Iceberg-Java) do now fail in case there's no
current snapshot.
On 13.02.25 10:09, Amogh Jahagirdar wrote:
I'm pleased to announce the release of Apache Iceberg 1.8.0!
Apache Iceberg is an open table format for huge analytic
datasets. Iceberg
delivers high query performance for tables with tens of petabytes
of data,
along with atomic commits, concurrent writes, and SQL-compatible
table
evolution.
This release can be downloaded from:
https://www.apache.org/dyn/closer.cgi/iceberg/apache-iceberg-1.8.0/apache-iceberg-1.8.0.tar.gz
Release notes: https://iceberg.apache.org/releases/#180-release
<https://iceberg.apache.org/releases/180-release>
Java artifacts are available from Maven Central.
Thanks to everyone for contributing!
--
Robert Stupp
@snazy
--
Robert Stupp
@snazy