Skip to content

fix: fix Parquet array CI failures#768

Closed
shirly121 wants to merge 1 commit into
alibaba:mainfrom
shirly121:fix/parquet-array-ci
Closed

fix: fix Parquet array CI failures#768
shirly121 wants to merge 1 commit into
alibaba:mainfrom
shirly121:fix/parquet-array-ci

Conversation

@shirly121

Copy link
Copy Markdown
Collaborator

Summary

This PR fixes CI regressions introduced by feat: support fixed-size arrays in data readers (#726).

Errors addressed

  • PyArrow 24 raises ArrowNotImplementedError: Lists with non-zero length null components are not supported while creating the null fixed-size-list Parquet fixture. The failure occurs before NeuG reads the file, so the invalid integration test is removed.
  • The Parquet duration ARRAY assertion expected human-readable values (2 days and 3 hours), while NeuG returns INTERVAL values as millisecond strings (172800000 and 10800000). The expected result is updated to match the actual public representation.

These failures were observed in the extension_tests_default job of run 29905233448.

Copilot AI review requested due to automatic review settings July 22, 2026 10:21
@shirly121
shirly121 marked this pull request as draft July 22, 2026 10:27
@shirly121 shirly121 changed the title test: fix Parquet array CI failures fix: fix Parquet array CI failures Jul 22, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Fixes CI regressions in Parquet ARRAY integration tests caused by PyArrow 24 limitations and a mismatch between expected vs. actual public interval representation.

Changes:

  • Removes a Parquet fixture/test that fails during PyArrow parquet write due to unsupported null fixed-size lists.
  • Updates expected duration ARRAY values to match NeuG’s millisecond-string interval representation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 174 to 179
[2, [["w", "x"], ["y", "z"]]],
]

@extension_test
def test_parquet_null_array(self):
"""LOAD FROM Parquet preserves a null fixed-size array."""
pa = pytest.importorskip("pyarrow")
parquet_path = self._write_parquet(
"null_array.parquet",
{
"id": pa.array([1, 2, 3], type=pa.int64()),
"values": pa.array(
[[1.0, 2.0, 3.0], None, [7.0, 8.0, 9.0]],
type=pa.list_(pa.float32(), 3),
),
},
)
self.conn.execute("LOAD PARQUET")
result = list(
self.conn.execute(
f'LOAD FROM "{parquet_path}" '
"RETURN id, CAST(values, 'FLOAT[3]') ORDER BY id"
)
)

assert result == [
[1, [1.0, 2.0, 3.0]],
[2, None],
[3, [7.0, 8.0, 9.0]],
]

@extension_test
def test_parquet_timestamp_units(self):
"""Normalize scalar and ARRAY timestamps of every Arrow unit to ms."""
Comment on lines 283 to +286
[["a", "b"], ["c", "d"]],
[date(1970, 1, 1), date(2023, 6, 15)],
[datetime(1970, 1, 1), datetime(2023, 6, 15, 12, 30)],
["2 days", "3 hours"],
["172800000", "10800000"],
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