Skip to content

[WIP] [Kernel] New tests for Timestamp_NTZ writes#1

Open
anoopj wants to merge 1 commit into
tfIntegrationfrom
ntz2
Open

[WIP] [Kernel] New tests for Timestamp_NTZ writes#1
anoopj wants to merge 1 commit into
tfIntegrationfrom
ntz2

Conversation

@anoopj

@anoopj anoopj commented Feb 25, 2025

Copy link
Copy Markdown
Owner

This PR builds on top of PR#4159 and adds new unit tests for timestampNtz writes.

Most of the write functionality (e.g. creation, inserts, insert with partition columns)
are already exercised by DeltaTableWritesSuite. This PR adds a few more tests.

## Description

This PR builds on top of PR#4159 and adds new unit tests for timestampNtz writes.

Most of the write functionality (e.g. creation, inserts, insert with partition columns) 
are already exercised by DeltaTableWritesSuite. This PR adds a few more tests.

## How was this patch tested?

New UTs.
}
}

test("create table TIMESTAMP_NTZ type should auto-enable the reader/writer feature") {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we move these tests to DeltaTableFeaturesSuite?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there are utilities to check if the protocol contains certain features.

}
}

test("create table without TIMESTAMP_NTZ type should use minimum protocol") {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can combine this test and above one with
Seq(
// Test format: isTimestamp enabled, expected protocol
(true, new Protocol(3, 7, Set("timestampNtz"), Set("timetampNtz"),
(false, new Protocol(1, 2, Set.empty, Set.empty)
) {
case (isTimestampEnabled, expProtocol) => {
... test code ...
}
}

anoopj pushed a commit that referenced this pull request Apr 1, 2025
…4316)

<!--
Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, please read our contributor guidelines:
https://github.com/delta-io/delta/blob/master/CONTRIBUTING.md
2. If the PR is unfinished, add '[WIP]' in your PR title, e.g., '[WIP]
Your PR title ...'.
  3. Be sure to keep the PR description updated to reflect all changes.
  4. Please write your PR title to summarize what this PR proposes.
5. If possible, provide a concise example to reproduce the issue for a
faster review.
6. If applicable, include the corresponding issue number in the PR title
and link it in the body.
-->

#### Which Delta project/connector is this regarding?
<!--
Please add the component selected below to the beginning of the pull
request title
For example: [Spark] Title of my pull request
-->

- [ ] Spark
- [ ] Standalone
- [ ] Flink
- [x] Kernel
- [ ] Other (fill in here)

## Description

<!--
- Describe what this PR changes.
- Describe why we need the change.
 
If this PR resolves an issue be sure to include "Resolves #XXX" to
correctly link and close the issue upon merge.
-->

Split the main PR delta-io#4265 for faster
review

Adds the writer table feature clustering.

## How was this patch tested?

<!--
If tests were added, say they were added here. Please make sure to test
the changes thoroughly including negative and positive cases if
possible.
If the changes were tested in any way other than unit tests, please
clarify how you tested step by step (ideally copy and paste-able, so
that other reviewers can test and check, and descendants can verify in
the future).
If the changes were not tested, please explain why.
-->

Updates unit tests. E2E testing would be added later once table creation
with this table feature supported.



## Does this PR introduce _any_ user-facing changes?

<!--
If yes, please clarify the previous behavior and the change this PR
proposes - provide the console output, description and/or an example to
show the behavior difference if possible.
If possible, please also clarify if this is a user-facing change
compared to the released Delta Lake versions or within the unreleased
branches such as master.
If no, write 'No'.
-->
anoopj pushed a commit that referenced this pull request Aug 25, 2025
…ta-io#4731)

<!--
Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, please read our contributor guidelines:
https://github.com/delta-io/delta/blob/master/CONTRIBUTING.md
2. If the PR is unfinished, add '[WIP]' in your PR title, e.g., '[WIP]
Your PR title ...'.
  3. Be sure to keep the PR description updated to reflect all changes.
  4. Please write your PR title to summarize what this PR proposes.
5. If possible, provide a concise example to reproduce the issue for a
faster review.
6. If applicable, include the corresponding issue number in the PR title
and link it in the body.
-->

#### Which Delta project/connector is this regarding?
<!--
Please add the component selected below to the beginning of the pull
request title
For example: [Spark] Title of my pull request
-->

- [ ] Spark
- [ ] Standalone
- [ ] Flink
- [x] Kernel
- [ ] Other (fill in here)

## Description

<!--
- Describe what this PR changes.
- Describe why we need the change.
 
If this PR resolves an issue be sure to include "Resolves #XXX" to
correctly link and close the issue upon merge.
-->
Add the IcebergCompatV3 table feature, which requires the columnMapping
and rowTracking to be enabled.
## How was this patch tested?

<!--
If tests were added, say they were added here. Please make sure to test
the changes thoroughly including negative and positive cases if
possible.
If the changes were tested in any way other than unit tests, please
clarify how you tested step by step (ideally copy and paste-able, so
that other reviewers can test and check, and descendants can verify in
the future).
If the changes were not tested, please explain why.
-->
Unit tests
## Does this PR introduce _any_ user-facing changes?

<!--
If yes, please clarify the previous behavior and the change this PR
proposes - provide the console output, description and/or an example to
show the behavior difference if possible.
If possible, please also clarify if this is a user-facing change
compared to the released Delta Lake versions or within the unreleased
branches such as master.
If no, write 'No'.
-->
anoopj pushed a commit that referenced this pull request Aug 25, 2025
…mpat v3 (delta-io#4733)

<!--
Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, please read our contributor guidelines:
https://github.com/delta-io/delta/blob/master/CONTRIBUTING.md
2. If the PR is unfinished, add '[WIP]' in your PR title, e.g., '[WIP]
Your PR title ...'.
  3. Be sure to keep the PR description updated to reflect all changes.
  4. Please write your PR title to summarize what this PR proposes.
5. If possible, provide a concise example to reproduce the issue for a
faster review.
6. If applicable, include the corresponding issue number in the PR title
and link it in the body.
-->

#### Which Delta project/connector is this regarding?
<!--
Please add the component selected below to the beginning of the pull
request title
For example: [Spark] Title of my pull request
-->

- [x] Spark
- [ ] Standalone
- [ ] Flink
- [ ] Kernel
- [ ] Other (fill in here)

## Description

<!--
- Describe what this PR changes.
- Describe why we need the change.
 
If this PR resolves an issue be sure to include "Resolves #XXX" to
correctly link and close the issue upon merge.
-->

Add IcebergWriterCompatV3 table feature and unit tests.
## How was this patch tested?

<!--
If tests were added, say they were added here. Please make sure to test
the changes thoroughly including negative and positive cases if
possible.
If the changes were tested in any way other than unit tests, please
clarify how you tested step by step (ideally copy and paste-able, so
that other reviewers can test and check, and descendants can verify in
the future).
If the changes were not tested, please explain why.
-->
Unit tests. 

## Does this PR introduce _any_ user-facing changes?

<!--
If yes, please clarify the previous behavior and the change this PR
proposes - provide the console output, description and/or an example to
show the behavior difference if possible.
If possible, please also clarify if this is a user-facing change
compared to the released Delta Lake versions or within the unreleased
branches such as master.
If no, write 'No'.
-->
anoopj pushed a commit that referenced this pull request Aug 25, 2025
<!--
Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, please read our contributor guidelines:
https://github.com/delta-io/delta/blob/master/CONTRIBUTING.md
2. If the PR is unfinished, add '[WIP]' in your PR title, e.g., '[WIP]
Your PR title ...'.
  3. Be sure to keep the PR description updated to reflect all changes.
  4. Please write your PR title to summarize what this PR proposes.
5. If possible, provide a concise example to reproduce the issue for a
faster review.
6. If applicable, include the corresponding issue number in the PR title
and link it in the body.
-->

#### Which Delta project/connector is this regarding?
<!--
Please add the component selected below to the beginning of the pull
request title
For example: [Spark] Title of my pull request
-->

- [x] Spark
- [ ] Standalone
- [ ] Flink
- [ ] Kernel
- [ ] Other (fill in here)

## Description
This PR refactors CC relevant code.
1. Fix indentation.
2. Correctly override `catalogOwnedCoordinatorBackfillBatchSize` that
extends `CatalogOwnedTestBaseSuite`.
3. Consolidate the two checkpoints helpers to
`CatalogOwnedTestBaseSuite`.
4. Refactor `CatalogOwnedEnablementSuite`.

<!--
- Describe what this PR changes.
- Describe why we need the change.
 
If this PR resolves an issue be sure to include "Resolves #XXX" to
correctly link and close the issue upon merge.
-->

## How was this patch tested?
Through existing suites.

<!--
If tests were added, say they were added here. Please make sure to test
the changes thoroughly including negative and positive cases if
possible.
If the changes were tested in any way other than unit tests, please
clarify how you tested step by step (ideally copy and paste-able, so
that other reviewers can test and check, and descendants can verify in
the future).
If the changes were not tested, please explain why.
-->

## Does this PR introduce _any_ user-facing changes?
No.

<!--
If yes, please clarify the previous behavior and the change this PR
proposes - provide the console output, description and/or an example to
show the behavior difference if possible.
If possible, please also clarify if this is a user-facing change
compared to the released Delta Lake versions or within the unreleased
branches such as master.
If no, write 'No'.
-->
anoopj pushed a commit that referenced this pull request Feb 24, 2026
…an show the parameters. (delta-io#5817)

#### Which Delta project/connector is this regarding?
- [X] Spark
- [ ] Standalone
- [ ] Flink
- [ ] Kernel
- [ ] Other (fill in here)

## Description
Convert @ParameterizedTest to dynamic tests so that SBT can show the
parameters.
Also upgrade the JUnit related packages so that the display name can
actually show up in SBT output.
This is to address comment:
delta-io#5772 (comment)

Before this PR it shows:
```
[info] Test io.sparkuctest.UCDeltaTableDMLTest#testBasicInsertOperations(io.sparkuctest.UCDeltaTableIntegrationBaseTest$TableType):#1 started
[info] Test io.sparkuctest.UCDeltaTableDMLTest#testBasicInsertOperations(io.sparkuctest.UCDeltaTableIntegrationBaseTest$TableType):delta-io#2 started
[info] Test io.sparkuctest.UCDeltaTableDMLTest#testMergeWithDeleteAction(io.sparkuctest.UCDeltaTableIntegrationBaseTest$TableType):#1 started
[info] Test io.sparkuctest.UCDeltaTableDMLTest#testMergeWithDeleteAction(io.sparkuctest.UCDeltaTableIntegrationBaseTest$TableType):delta-io#2 started
...
[info] Test io.sparkuctest.UCDeltaTableCreationTest#testCreateTable(io.sparkuctest.UCDeltaTableIntegrationBaseTest$TableType, boolean, boolean, boolean, boolean):#1 started
[info] Test io.sparkuctest.UCDeltaTableCreationTest#testCreateTable(io.sparkuctest.UCDeltaTableIntegrationBaseTest$TableType, boolean, boolean, boolean, boolean):delta-io#2 started
```

After this PR it shows:
```
[info] Test io.sparkuctest.UCDeltaTableDMLTest#allTableTypesTestsFactory() #1:testUpdateOperations(EXTERNAL) started
[info] Test io.sparkuctest.UCDeltaTableDMLTest#allTableTypesTestsFactory() #1:testUpdateOperations(MANAGED) started
[info] Test io.sparkuctest.UCDeltaTableDMLTest#allTableTypesTestsFactory() delta-io#2:testDeleteOperations(EXTERNAL) started
[info] Test io.sparkuctest.UCDeltaTableDMLTest#allTableTypesTestsFactory() delta-io#2:testDeleteOperations(MANAGED) started
...
[info] Test io.sparkuctest.UCDeltaTableCreationTest#testCreateTable():tableType=EXTERNAL, withPartition=true, withCluster=false, withAsSelect=true, replaceTable=true started
[info] Test io.sparkuctest.UCDeltaTableCreationTest#testCreateTable():tableType=EXTERNAL, withPartition=true, withCluster=false, withAsSelect=true, replaceTable=false started
```

## How was this patch tested?

## Does this PR introduce _any_ user-facing changes?
No.

---------

Signed-off-by: Yi Li <yi.li@databricks.com>
anoopj pushed a commit that referenced this pull request Feb 24, 2026
#### Which Delta project/connector is this regarding?
<!--
Please add the component selected below to the beginning of the pull
request title
For example: [Spark] Title of my pull request
-->

- [ ] Spark
- [ ] Standalone
- [ ] Flink
- [ ] Kernel
- [ ] Other (fill in here)

## Description
Added a new UC E2E streaming test suite to cover Delta structured
streaming read/write behavior across managed/external tables, including
UC commit version validation for managed tables. The changes live in
spark/unitycatalog/src/test/java/io/sparkuctest/
UCDeltaStreamingTest.java to exercise MemoryStream writes, streaming
reads in V2 strict mode, and checkpointed queries.
<!--
⚠️⚠️ **Note to reviewers** ⚠️⚠️ this branch is based on
delta-io#5651; therefore there are a
number of changes that are not directly related to the E2E test
integration for streaming reads (those changes are to enable these
streaming reads). Please just review
[spark/unitycatalog/src/test/java/io/sparkuctest/UCDeltaStreamingTest.java](https://github.com/delta-io/delta/pull/5833/changes#diff-04879565d272ba02d9c1e47707ec9bfdb1044460e957ec769d1914178554383b)
-->
## How was this patch tested?
Locally:
```
export UC_REMOTE=false
$ build/sbt "sparkUnityCatalog/testOnly io.sparkuctest.UCDeltaStreamingTest"

...
[info] Test run started (JUnit Jupiter)
[info] Test io.sparkuctest.UCDeltaStreamingTest#allTableTypesTestsFactory() #1:testStreamingWriteToManagedTable(EXTERNAL) started
[info] Test io.sparkuctest.UCDeltaStreamingTest#allTableTypesTestsFactory() #1:testStreamingWriteToManagedTable(MANAGED) started
[info] Test io.sparkuctest.UCDeltaStreamingTest#allTableTypesTestsFactory() delta-io#2:testStreamingReadFromTable(EXTERNAL) started
[info] Test io.sparkuctest.UCDeltaStreamingTest#allTableTypesTestsFactory() delta-io#2:testStreamingReadFromTable(MANAGED) started
[info] Test run finished: 0 failed, 0 ignored, 4 total, 24.65s
[info] Passed: Total 4, Failed 0, Errors 0, Passed 4
[success] Total time: 44 s, completed Jan 16, 2026, 12:17:45 AM
```

and tested against remote UC server
```
export UC_REMOTE=true
export UC_URI=$UC_URI
export UC_TOKEN=$UC_TOKEN
export UC_CATALOG_NAME=main
export UC_SCHEMA_NAME=demo_zh
export UC_BASE_TABLE_LOCATION=$S3_BASE_LOCATION

$ build/sbt "sparkUnityCatalog/testOnly io.sparkuctest.UCDeltaStreamingTest"

...
[info] Test run started (JUnit Jupiter)
[info] Test io.sparkuctest.UCDeltaStreamingTest#allTableTypesTestsFactory() #1:testStreamingWriteToManagedTable(EXTERNAL) started
[info] Test io.sparkuctest.UCDeltaStreamingTest#allTableTypesTestsFactory() #1:testStreamingWriteToManagedTable(MANAGED) started
[info] Test io.sparkuctest.UCDeltaStreamingTest#allTableTypesTestsFactory() delta-io#2:testStreamingReadFromTable(EXTERNAL) started
[info] Test io.sparkuctest.UCDeltaStreamingTest#allTableTypesTestsFactory() delta-io#2:testStreamingReadFromTable(MANAGED) started
[info] Test run finished: 0 failed, 0 ignored, 4 total, 250.336s
[info] Passed: Total 4, Failed 0, Errors 0, Passed 4
[success] Total time: 274 s (04:34), completed Jan 16, 2026, 12:10:14 AM
```

## Does this PR introduce _any_ user-facing changes?
No.

---------

Co-authored-by: Tathagata Das <tathagata.das1565@gmail.com>
anoopj pushed a commit that referenced this pull request Mar 25, 2026
…6145)

<!--
Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, please read our contributor guidelines:
https://github.com/delta-io/delta/blob/master/CONTRIBUTING.md
2. If the PR is unfinished, add '[WIP]' in your PR title, e.g., '[WIP]
Your PR title ...'.
  3. Be sure to keep the PR description updated to reflect all changes.
  4. Please write your PR title to summarize what this PR proposes.
5. If possible, provide a concise example to reproduce the issue for a
faster review.
6. If applicable, include the corresponding issue number in the PR title
and link it in the body.
-->

#### Which Delta project/connector is this regarding?
<!--
Please add the component selected below to the beginning of the pull
request title
For example: [Spark] Title of my pull request
-->

- [ ] Spark
- [ ] Standalone
- [ ] Flink
- [ ] Kernel
- [ ] Other (fill in here)

## Description
Fix integration tests not running due to reporting. Remove common
setting to generate xml since

https://www.scala-sbt.org/1.x/docs/Testing.html
> By default, sbt will generate JUnit XML test reports for all tests in
the build, located in the target/test-reports directory for a project.
This can be disabled by disabling the JUnitXmlReportPlugin
<!--
- Describe what this PR changes.
- Describe why we need the change.
 
If this PR resolves an issue be sure to include "Resolves #XXX" to
correctly link and close the issue upon merge.
-->

## How was this patch tested?
Locally
```sh
$ build/sbt -mem 4096 "sparkUnityCatalog/testOnly io.sparkuctest.UCDelta*"
...
[info] Test io.sparkuctest.UCDeltaTableReadTest#allTableTypesTestsFactory() #1:testDeltaTableForPath(EXTERNAL) started
[info] Test io.sparkuctest.UCDeltaTableReadTest#allTableTypesTestsFactory() #1:testDeltaTableForPath(MANAGED) started
[info] Test io.sparkuctest.UCDeltaTableReadTest#allTableTypesTestsFactory() delta-io#2:testChangeDataFeed(EXTERNAL) started
[info] Test io.sparkuctest.UCDeltaTableReadTest#allTableTypesTestsFactory() delta-io#2:testChangeDataFeed(MANAGED) started
[info] Test io.sparkuctest.UCDeltaTableReadTest#allTableTypesTestsFactory() delta-io#3:testTimeTravelRead(EXTERNAL) started
[info] Test io.sparkuctest.UCDeltaTableReadTest#allTableTypesTestsFactory() delta-io#3:testTimeTravelRead(MANAGED) started
[info] Test run finished: 0 failed, 0 ignored, 6 total, 9.253s
[info] Passed: Total 63, Failed 0, Errors 0, Passed 63
[success] Total time: 157 s (02:37), completed Feb 26, 2026, 6:54:12 PM
```
<!--
If tests were added, say they were added here. Please make sure to test
the changes thoroughly including negative and positive cases if
possible.
If the changes were tested in any way other than unit tests, please
clarify how you tested step by step (ideally copy and paste-able, so
that other reviewers can test and check, and descendants can verify in
the future).
If the changes were not tested, please explain why.
-->

## Does this PR introduce _any_ user-facing changes?
No
<!--
If yes, please clarify the previous behavior and the change this PR
proposes - provide the console output, description and/or an example to
show the behavior difference if possible.
If possible, please also clarify if this is a user-facing change
compared to the released Delta Lake versions or within the unreleased
branches such as master.
If no, write 'No'.
-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants