Discovery starting.
Discovery completed in 3 seconds, 118 milliseconds.
Run starting. Expected test count is: 38
IcebergCRUDSpec:
A dataset we CRUD
- should create the appropriate Iceberg files
  + Given data
			Datum(0,label_0,0,2025-05-13,2025-05-13 16:37:59.688)
			Datum(1,label_1,1,2025-05-12,2025-05-13 16:37:59.888)
			Datum(2,label_2,2,2025-05-11,2025-05-13 16:38:00.088)
			... 
  + When writing to table 'polaris.my_namespace.IcebergCRUDSpec' 
  + Then reading the table back yields the same data 
  + And there is no mention of the table in the metastore 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  
- should support updates with 'update polaris.my_namespace.IcebergCRUDSpec set label='ipse locum''
  + Given SQL 
update
  polaris.my_namespace.IcebergCRUDSpec
set
  label = 'ipse locum' 
  + When we execute it 
  + Then all rows are updated 
  + And look like:
			Datum(15,ipse locum,0,2025-04-28,2025-05-13 16:38:02.688)
			Datum(16,ipse locum,1,2025-04-27,2025-05-13 16:38:02.888)
			Datum(17,ipse locum,2,2025-04-26,2025-05-13 16:38:03.088)
			... 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  
- should be able to have its schema updated
  + Given SQL 
ALTER TABLE
  polaris.my_namespace.IcebergCRUDSpec
ADD
  COLUMNS (new_string string comment 'new_string docs') 
  + When we execute it 
  + Then all rows are updated 
  + And look like:
			[15,ipse locum,0,2025-04-28,2025-05-13 16:38:02.688,null]
			[16,ipse locum,1,2025-04-27,2025-05-13 16:38:02.888,null]
			[17,ipse locum,2,2025-04-26,2025-05-13 16:38:03.088,null]
			... 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  
- should be able to have rows removed
  + Given SQL 
DELETE FROM
  polaris.my_namespace.IcebergCRUDSpec
where
  id < 10 
  + And the parquet files:
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00003-3-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00001-1-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00000-0-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet.crc
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00000-0-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00003-3-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet.crc
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00000-6-74157093-eb9b-4026-a47e-721b9059d086-0-00001.parquet.crc
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00002-2-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00000-6-74157093-eb9b-4026-a47e-721b9059d086-0-00001.parquet
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00001-1-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet.crc
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00002-2-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet.crc
 
  + When we execute it 
  + Then there are no longer an rows with ID < 10 
  + And no files are deleted but there are the following new parquet files:
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00000-12-abbe2704-f185-4f23-b4ce-94d8a9f385ae-0-00001.parquet.crc
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00000-12-abbe2704-f185-4f23-b4ce-94d8a9f385ae-0-00001.parquet
 
  + And those new files contain just the data with id >= 10 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  
- should can have its history queried
  + Given a table that has seen changes 
  + When we execute:
select
  *
from
  polaris.my_namespace.IcebergCRUDSpec.history 
  + Then we see entries in the history table thus:
+-----------------------+-------------------+-------------------+-------------------+
|made_current_at        |snapshot_id        |parent_id          |is_current_ancestor|
+-----------------------+-------------------+-------------------+-------------------+
|2025-05-13 16:38:01.232|5692167117364342782|NULL               |true               |
|2025-05-13 16:38:02.429|3729094367276815455|5692167117364342782|true               |
|2025-05-13 16:38:03.433|821239826060547473 |3729094367276815455|true               |
+-----------------------+-------------------+-------------------+-------------------+

 
  + And we can view a snapshot image with SQL:
select
  *
from
  polaris.my_namespace.IcebergCRUDSpec VERSION AS OF 5692167117364342782
+---+--------+------------+----------+-----------------------+
id |label   |partitionKey|date      |timestamp              |
+---+--------+------------+----------+-----------------------+
0  |label_0 |0           |2025-05-13|2025-05-13 16:37:59.688|
1  |label_1 |1           |2025-05-12|2025-05-13 16:37:59.888|
2  |label_2 |2           |2025-05-11|2025-05-13 16:38:00.088|
3  |label_3 |3           |2025-05-10|2025-05-13 16:38:00.288|
4  |label_4 |4           |2025-05-09|2025-05-13 16:38:00.488|
5  |label_5 |0           |2025-05-08|2025-05-13 16:38:00.688|
6  |label_6 |1           |2025-05-07|2025-05-13 16:38:00.888|
7  |label_7 |2           |2025-05-06|2025-05-13 16:38:01.088|
8  |label_8 |3           |2025-05-05|2025-05-13 16:38:01.288|
9  |label_9 |4           |2025-05-04|2025-05-13 16:38:01.488|
10 |label_10|0           |2025-05-03|2025-05-13 16:38:01.688|
11 |label_11|1           |2025-05-02|2025-05-13 16:38:01.888|
12 |label_12|2           |2025-05-01|2025-05-13 16:38:02.088|
13 |label_13|3           |2025-04-30|2025-05-13 16:38:02.288|
14 |label_14|4           |2025-04-29|2025-05-13 16:38:02.488|
15 |label_15|0           |2025-04-28|2025-05-13 16:38:02.688|
16 |label_16|1           |2025-04-27|2025-05-13 16:38:02.888|
17 |label_17|2           |2025-04-26|2025-05-13 16:38:03.088|
18 |label_18|3           |2025-04-25|2025-05-13 16:38:03.288|
19 |label_19|4           |2025-04-24|2025-05-13 16:38:03.488|
+---+--------+------------+----------+-----------------------+

 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  
- should when vacuumed, have old files removed
  + Given the 12 files are:
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00003-3-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00000-0-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00003-3-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet.crc
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00002-2-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet.crc
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00000-12-abbe2704-f185-4f23-b4ce-94d8a9f385ae-0-00001.parquet.crc
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00000-6-74157093-eb9b-4026-a47e-721b9059d086-0-00001.parquet.crc
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00001-1-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00002-2-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00000-12-abbe2704-f185-4f23-b4ce-94d8a9f385ae-0-00001.parquet
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00000-0-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet.crc
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00000-6-74157093-eb9b-4026-a47e-721b9059d086-0-00001.parquet
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00001-1-6ef46ce4-4d2a-49a7-8dbb-b5630adf3649-0-00001.parquet.crc
 
  + When we call expireSnapshot 
  + Then the original 12 files now look like:
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00000-12-abbe2704-f185-4f23-b4ce-94d8a9f385ae-0-00001.parquet.crc
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/.00000-6-74157093-eb9b-4026-a47e-721b9059d086-0-00001.parquet.crc
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00000-6-74157093-eb9b-4026-a47e-721b9059d086-0-00001.parquet
/tmp/polaris/my_namespace/IcebergCRUDSpec/data/00000-12-abbe2704-f185-4f23-b4ce-94d8a9f385ae-0-00001.parquet
 
  + And there are 8 new files 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  
- should should delete all files when dropped
  + Given polaris.my_namespace.IcebergCRUDSpec has 2 
  + When we execute:
DROP TABLE polaris.my_namespace.IcebergCRUDSpec PURGE 
  + Then there are no files 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +