From fbe77814970f9c195a828f19bd9b77ed4bc03a58 Mon Sep 17 00:00:00 2001 From: Andrew Xie Date: Thu, 26 Feb 2026 14:15:17 -0500 Subject: [PATCH 1/2] fix: Fix insert inferred partition not writing to partition folder --- .../java/com/altinity/ice/cli/internal/cmd/Insert.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ice/src/main/java/com/altinity/ice/cli/internal/cmd/Insert.java b/ice/src/main/java/com/altinity/ice/cli/internal/cmd/Insert.java index 1e510680..65cec977 100644 --- a/ice/src/main/java/com/altinity/ice/cli/internal/cmd/Insert.java +++ b/ice/src/main/java/com/altinity/ice/cli/internal/cmd/Insert.java @@ -526,7 +526,13 @@ private static List processFile( partitionKey)); } else { // Table isn't partitioned or sorted. Copy as is. - String dstDataFile = dstDataFileSource.get(file); + String dstDataFile; + if (partitionSpec.isPartitioned() && partitionKey != null) { + // File has inferred partition, use partition path + dstDataFile = dstDataFileSource.get(partitionSpec, partitionKey, file); + } else { + dstDataFile = dstDataFileSource.get(file); + } if (checkNotExists.apply(dstDataFile)) { return Collections.emptyList(); } From 2df33d12b347ff93ae293df92523f8d5a401dad3 Mon Sep 17 00:00:00 2001 From: Andrew Xie Date: Mon, 16 Mar 2026 15:50:44 -0400 Subject: [PATCH 2/2] test: Add test for inferred partitions --- README.md | 2 +- .../ontime-2010-01-01.parquet | Bin 0 -> 51666 bytes .../scenarios/insert-partitioned/run.sh.tmpl | 59 ++++++++++++++---- .../insert-partitioned/scenario.yaml | 10 ++- 4 files changed, 54 insertions(+), 17 deletions(-) create mode 100644 ice-rest-catalog/src/test/resources/scenarios/insert-partitioned/ontime-2010-01-01.parquet diff --git a/README.md b/README.md index 91e9c0dc..f308e5fc 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Create/delete tables, insert data with `ice insert -p ns1.table1 file://example. ## Installation -Pre-built binaries\* (+ links to Docker images for [ice](https://hub.docker.com/r/altinity/ice) and [ice-rest-catalog](https://hub.docker.com/r/altinity/ice-rest-catalog)) are available form [GitHub Releases](https://github.com/Altinity/ice/releases) page. +Pre-built binaries\* (+ links to Docker images for [ice](https://hub.docker.com/r/altinity/ice) and [ice-rest-catalog](https://hub.docker.com/r/altinity/ice-rest-catalog)) are available from [GitHub Releases](https://github.com/Altinity/ice/releases) page. > \* currently require `java` 21+ to run (available [here](https://adoptium.net/installation/)). ## Usage diff --git a/ice-rest-catalog/src/test/resources/scenarios/insert-partitioned/ontime-2010-01-01.parquet b/ice-rest-catalog/src/test/resources/scenarios/insert-partitioned/ontime-2010-01-01.parquet new file mode 100644 index 0000000000000000000000000000000000000000..29493f8b0c5a78ca5b89fc8db5d1a9b97ee4fbc9 GIT binary patch literal 51666 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 P&~Rx_L&FpMp4|Nx5>Pn= literal 0 HcmV?d00001 diff --git a/ice-rest-catalog/src/test/resources/scenarios/insert-partitioned/run.sh.tmpl b/ice-rest-catalog/src/test/resources/scenarios/insert-partitioned/run.sh.tmpl index 0e6b07f7..ca7a076d 100644 --- a/ice-rest-catalog/src/test/resources/scenarios/insert-partitioned/run.sh.tmpl +++ b/ice-rest-catalog/src/test/resources/scenarios/insert-partitioned/run.sh.tmpl @@ -9,31 +9,64 @@ echo "OK Created namespace: ${NAMESPACE_NAME}" # Get the full path to the input file SCENARIO_DIR="{{SCENARIO_DIR}}" -INPUT_PATH="${SCENARIO_DIR}/${INPUT_FILE}" +INPUT_PATH_IRIS="${SCENARIO_DIR}/${INPUT_FILE_IRIS}" +INPUT_PATH_ONTIME="${SCENARIO_DIR}/${INPUT_FILE_ONTIME}" # Create table with partitioning and insert data -{{ICE_CLI}} --config {{CLI_CONFIG}} insert --create-table ${TABLE_NAME} ${INPUT_PATH} --partition="${PARTITION_SPEC}" -echo "OK Inserted data with partitioning into table ${TABLE_NAME}" +{{ICE_CLI}} --config {{CLI_CONFIG}} insert --create-table ${TABLE_NAME_IRIS} ${INPUT_PATH_IRIS} --partition="${PARTITION_SPEC_IRIS}" +echo "OK Inserted data with partitioning into table ${TABLE_NAME_IRIS}" # List partitions and validate output -LIST_PARTITIONS_OUT=$(mktemp) -trap "rm -f '${LIST_PARTITIONS_OUT}'" EXIT -{{ICE_CLI}} --config {{CLI_CONFIG}} list-partitions ${TABLE_NAME} > "${LIST_PARTITIONS_OUT}" -if ! grep -q "partitions:" "${LIST_PARTITIONS_OUT}"; then +LIST_PARTITIONS_OUT_IRIS=$(mktemp) +trap "rm -f '${LIST_PARTITIONS_OUT_IRIS}'" EXIT +{{ICE_CLI}} --config {{CLI_CONFIG}} list-partitions ${TABLE_NAME_IRIS} > "${LIST_PARTITIONS_OUT_IRIS}" +if ! grep -q "partitions:" "${LIST_PARTITIONS_OUT_IRIS}"; then echo "FAIL: list-partitions output missing 'partitions:' section" - cat "${LIST_PARTITIONS_OUT}" + cat "${LIST_PARTITIONS_OUT_IRIS}" exit 1 fi -if ! grep -qE -- "- *[^=]+=" "${LIST_PARTITIONS_OUT}"; then +if ! grep -qE -- "- *[^=]+=" "${LIST_PARTITIONS_OUT_IRIS}"; then echo "FAIL: list-partitions output has no partition entries (expected at least one key=value)" - cat "${LIST_PARTITIONS_OUT}" + cat "${LIST_PARTITIONS_OUT_IRIS}" exit 1 fi -echo "OK Listed and validated partitions for ${TABLE_NAME}" +echo "OK Listed and validated partitions for ${TABLE_NAME_IRIS}" + +# Create table using file with single partition +{{ICE_CLI}} --config {{CLI_CONFIG}} insert --create-table ${TABLE_NAME_ONTIME} ${INPUT_PATH_ONTIME} --partition="${PARTITION_SPEC_ONTIME}" +echo "OK Inserted data with partitioning into table ${TABLE_NAME_ONTIME}" + +# List partitions and validate output +LIST_PARTITIONS_OUT_ONTIME=$(mktemp) +trap "rm -f '${LIST_PARTITIONS_OUT_ONTIME}'" EXIT +{{ICE_CLI}} --config {{CLI_CONFIG}} list-partitions ${TABLE_NAME_ONTIME} > "${LIST_PARTITIONS_OUT_ONTIME}" +if ! grep -q "partitions:" "${LIST_PARTITIONS_OUT_ONTIME}"; then + echo "FAIL: list-partitions output missing 'partitions:' section" + cat "${LIST_PARTITIONS_OUT_ONTIME}" + exit 1 +fi +if ! grep -qE -- "- *[^=]+=" "${LIST_PARTITIONS_OUT_ONTIME}"; then + echo "FAIL: list-partitions output has no partition entries (expected at least one key=value)" + cat "${LIST_PARTITIONS_OUT_ONTIME}" + exit 1 +fi +echo "OK Listed and validated partitions for ${TABLE_NAME_ONTIME}" + +# Validate data file was inserted to correct partitioned path + +FILES_OUT_ONTIME=$({{ICE_CLI}} --config {{CLI_CONFIG}} files ${TABLE_NAME_ONTIME}) + +if [[ "${FILES_OUT_ONTIME}" != *${EXPECTED_DATA_PATH_ONTIME}* ]]; then + echo "FAIL: expected substring '${EXPECTED_DATA_PATH_ONTIME}' not found in files command output: ${FILES_OUT_ONTIME}" + exit 1 +fi +echo "OK Validated correct partitioned data file path for ${TABLE_NAME_ONTIME}" # Cleanup -{{ICE_CLI}} --config {{CLI_CONFIG}} delete-table ${TABLE_NAME} -echo "OK Deleted table: ${TABLE_NAME}" +{{ICE_CLI}} --config {{CLI_CONFIG}} delete-table ${TABLE_NAME_IRIS} +echo "OK Deleted table: ${TABLE_NAME_IRIS}" +{{ICE_CLI}} --config {{CLI_CONFIG}} delete-table ${TABLE_NAME_ONTIME} +echo "OK Deleted table: ${TABLE_NAME_ONTIME}" {{ICE_CLI}} --config {{CLI_CONFIG}} delete-namespace ${NAMESPACE_NAME} echo "OK Deleted namespace: ${NAMESPACE_NAME}" diff --git a/ice-rest-catalog/src/test/resources/scenarios/insert-partitioned/scenario.yaml b/ice-rest-catalog/src/test/resources/scenarios/insert-partitioned/scenario.yaml index 74af637e..ed4fe7a4 100644 --- a/ice-rest-catalog/src/test/resources/scenarios/insert-partitioned/scenario.yaml +++ b/ice-rest-catalog/src/test/resources/scenarios/insert-partitioned/scenario.yaml @@ -6,7 +6,11 @@ catalogConfig: env: NAMESPACE_NAME: "test_insert_partitioned" - TABLE_NAME: "test_insert_partitioned.iris_partitioned" - INPUT_FILE: "input.parquet" - PARTITION_SPEC: '[{"column":"variety","transform":"identity"}]' + TABLE_NAME_IRIS: "test_insert_partitioned.iris_partitioned" + TABLE_NAME_ONTIME: "test_insert_partitioned.ontime_partitioned" + INPUT_FILE_IRIS: "input.parquet" + INPUT_FILE_ONTIME: "ontime-2010-01-01.parquet" + PARTITION_SPEC_IRIS: '[{"column":"variety","transform":"identity"}]' + PARTITION_SPEC_ONTIME: '[{"column":"Year"}]' + EXPECTED_DATA_PATH_ONTIME: "s3://test-bucket/warehouse/test_insert_partitioned/ontime_partitioned/data/Year=2010/*.parquet"