Hi Wing Yew, Thanks for the pointer to the PR. That's what I was looking for. I will watch #1508 and #1029 and let's continue discussing on Github.
Best, Tianyi On Tue, Dec 15, 2020 at 3:44 AM Wing Yew Poon <wyp...@cloudera.com.invalid> wrote: > Hi Tianyi, > The behavior you found is indeed the current behavior in Iceberg. I too > found it unexpected. I have a PR to address this: > https://github.com/apache/iceberg/pull/1508. Due to other work, I had not > followed up on this for a while, but I am returning to it now. > - Wing Yew > > > On Mon, Dec 14, 2020 at 6:27 AM Cap Kurmagati <capkurmag...@gmail.com> > wrote: > >> Hi, >> >> I have a question regarding the behavior of schema evolution with >> time-travel in Iceberg. >> When I do a time-travel query against a table with schema changes. >> I expect that the result is structured using the schema. But it turned >> out to be structured using the current schema. >> >> Is this an expected behavior? >> I think it would be nice to be able to query the data in its original >> shape. What do you think? >> >> Code snippet as follows. Environment: Iceberg 0.10.0, Spark 3.0.1 >> >> sql("create table iceberg.test.schema_timetravel (id int, name string) >> using iceberg") >> sql("insert into table iceberg.test.schema_timetravel values(1, 'aaa')") >> sql("insert into table iceberg.test.schema_timetravel values(2, 'bbb')") >> sql("select * from iceberg.test.schema_timetravel").show() >> +---+-------+ >> | id| name| >> +---+-------+ >> | 1| aaa| >> | 2| bbb| >> +---+-------+ >> sql("select * from iceberg.test.schema_timetravel.history").show() >> >> +--------------------+-------------------+-------------------+-------------------+ >> | made_current_at| snapshot_id| >> parent_id|is_current_ancestor| >> >> +--------------------+-------------------+-------------------+-------------------+ >> |2020-12-14 22:44:...|2849000299888498484| null| >> true| >> |2020-12-14 22:44:...|5610242355805640211|2849000299888498484| >> true| >> >> +--------------------+-------------------+-------------------+-------------------+ >> sql("alter table iceberg.test.schema_timetravel drop column name") >> sql("select * from iceberg.test.schema_timetravel").show() >> +---+ >> | id| >> +---+ >> | 1| >> | 2| >> +---+ >> spark.read.format("iceberg").option("snapshot-id", >> 2849000299888498484L).load("test.schema_timetravel").show() >> // Expect: show data in the previous schema: (1, aaa) >> // Result: show data in the current schema: (1) >> +---+ >> | id| >> +---+ >> | 1| >> +---+ >> >> Best regards, >> Tianyi >> >