Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GH-43956: [C#][Format] Add initial Decimal32/Decimal64 implementations #43959

Closed
wants to merge 134 commits into from

Conversation

CurtHagenlocher
Copy link
Contributor

@CurtHagenlocher CurtHagenlocher commented Sep 5, 2024

What changes are included in this PR?

Add support for decimal32 and decimal64 to C# implementation

Are these changes tested?

Yes, but there are not yet any cross-implementation tests.

Are there any user-facing changes?

Yes, adds support for two new types of decimal.

eramitmittal and others added 27 commits September 5, 2024 09:47
)

Please look at apache#38255 for details on this functionality. Support for Go and C++ was added as part of apache#38385.
This pull request is to add the required support for Java.
* GitHub Issue: apache#38255

Lead-authored-by: Amit Mittal <[email protected]>
Co-authored-by: Amit Mittal <[email protected]>
Signed-off-by: David Li <[email protected]>
…o latest v4 in /.github/workflows (apache#43940)

Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.1.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/download-artifact/releases">actions/download-artifact's releases</a>.</em></p>
<blockquote>
<h2>v4.1.7</h2>
<h2>What's Changed</h2>
<ul>
<li>Update <code>@​actions/artifact</code> dependency by <a href="https://github.com/bethanyj28"><code>@​bethanyj28</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/325">actions/download-artifact#325</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/download-artifact/compare/v4.1.6...v4.1.7">https://github.com/actions/download-artifact/compare/v4.1.6...v4.1.7</a></p>
<h2>v4.1.6</h2>
<h2>What's Changed</h2>
<ul>
<li>updating <code>@ actions/artifact</code> dependency to v2.1.6 by <a href="https://github.com/eggyhead"><code>@​eggyhead</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/324">actions/download-artifact#324</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/download-artifact/compare/v4.1.5...v4.1.6">https://github.com/actions/download-artifact/compare/v4.1.5...v4.1.6</a></p>
<h2>v4.1.5</h2>
<h2>What's Changed</h2>
<ul>
<li>Update readme with v3/v2/v1 deprecation notice by <a href="https://github.com/robherley"><code>@​robherley</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/322">actions/download-artifact#322</a></li>
<li>Update dependencies <code>@ actions/core</code> to v1.10.1 and <code>@ actions/artifact</code> to v2.1.5</li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/download-artifact/compare/v4.1.4...v4.1.5">https://github.com/actions/download-artifact/compare/v4.1.4...v4.1.5</a></p>
<h2>v4.1.4</h2>
<h2>What's Changed</h2>
<ul>
<li>Update <code>@​actions/artifact</code> by <a href="https://github.com/bethanyj28"><code>@​bethanyj28</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/307">actions/download-artifact#307</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/download-artifact/compare/v4...v4.1.4">https://github.com/actions/download-artifact/compare/v4...v4.1.4</a></p>
<h2>v4.1.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Update release-new-action-version.yml by <a href="https://github.com/konradpabjan"><code>@​konradpabjan</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/292">actions/download-artifact#292</a></li>
<li>Update toolkit dependency with updated unzip logic by <a href="https://github.com/bethanyj28"><code>@​bethanyj28</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/299">actions/download-artifact#299</a></li>
<li>Update <code>@​actions/artifact</code> by <a href="https://github.com/bethanyj28"><code>@​bethanyj28</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/303">actions/download-artifact#303</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/bethanyj28"><code>@​bethanyj28</code></a> made their first contribution in <a href="https://redirect.github.com/actions/download-artifact/pull/299">actions/download-artifact#299</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/download-artifact/compare/v4...v4.1.3">https://github.com/actions/download-artifact/compare/v4...v4.1.3</a></p>
<h2>v4.1.2</h2>
<ul>
<li>Bump <code>@​actions/artifacts</code> to latest version to include <a href="https://redirect.github.com/actions/toolkit/pull/1648">updated GHES host check</a></li>
</ul>
<h2>v4.1.1</h2>
<ul>
<li>Fix transient request timeouts <a href="https://redirect.github.com/actions/download-artifact/issues/249">actions/download-artifact#249</a></li>
<li>Bump <code>@ actions/artifacts</code> to latest version</li>
</ul>
<h2>v4.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Some cleanup by <a href="https://github.com/robherley"><code>@​robherley</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/247">actions/download-artifact#247</a></li>
<li>Fix default for run-id by <a href="https://github.com/stchr"><code>@​stchr</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/252">actions/download-artifact#252</a></li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/actions/download-artifact/commit/65a9edc5881444af0b9093a5e628f2fe47ea3b2e"><code>65a9edc</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/325">#325</a> from bethanyj28/main</li>
<li><a href="https://github.com/actions/download-artifact/commit/fdd1595981c1a29187d3de99c28c28a166bc38f7"><code>fdd1595</code></a> licensed</li>
<li><a href="https://github.com/actions/download-artifact/commit/c13dba102f4bb92b3f679fa086db9e2973960ca7"><code>c13dba1</code></a> update <code>@​actions/artifact</code> dependency</li>
<li><a href="https://github.com/actions/download-artifact/commit/0daa75ebeac4617faeb127496dbd716b8bcce26e"><code>0daa75e</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/324">#324</a> from actions/eggyhead/use-artifact-v2.1.6</li>
<li><a href="https://github.com/actions/download-artifact/commit/9c19ed7fe5d278cd354c7dfd5d3b88589c7e2395"><code>9c19ed7</code></a> Merge branch 'main' into eggyhead/use-artifact-v2.1.6</li>
<li><a href="https://github.com/actions/download-artifact/commit/3d3ea8741ef44e86f7392b41e391bde3c36219bd"><code>3d3ea87</code></a> updating license</li>
<li><a href="https://github.com/actions/download-artifact/commit/89af5db8211998d3ca691103a86b0b9362a94286"><code>89af5db</code></a> updating artifact package v2.1.6</li>
<li><a href="https://github.com/actions/download-artifact/commit/b4aefff88e83a2676a730654e1ce3dce61880379"><code>b4aefff</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/323">#323</a> from actions/eggyhead/update-artifact-v215</li>
<li><a href="https://github.com/actions/download-artifact/commit/8caf195ad4b1dee92908e23f56eeb0696f1dd42d"><code>8caf195</code></a> package lock update</li>
<li><a href="https://github.com/actions/download-artifact/commit/d7a2ec411d177e8ca679ac5969b70be59c322700"><code>d7a2ec4</code></a> updating package version</li>
<li>Additional commits viewable in <a href="https://github.com/actions/download-artifact/compare/v3...v4.1.7">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/download-artifact&package-manager=github_actions&previous-version=3&new-version=4.1.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@ dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@ dependabot rebase` will rebase this PR
- `@ dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@ dependabot merge` will merge this PR after your CI passes on it
- `@ dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@ dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@ dependabot reopen` will reopen this PR if it is closed
- `@ dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@ dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@ dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@ dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@ dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/apache/arrow/network/alerts).

</details>
* GitHub Issue: apache#43952

Lead-authored-by: Jacob Wujciak-Jens <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Sutou Kouhei <[email protected]>
… finding packages on setuptools (apache#43325)

### Rationale for this change

Currently we include everything when building wheels, see:
```
$ pip install pyarrow
Collecting pyarrow
  Downloading pyarrow-17.0.0-cp310-cp310-manylinux_2_28_x86_64.whl (39.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 39.9/39.9 MB 33.8 MB/s eta 0:00:00
Collecting numpy>=1.16.6
  Using cached numpy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.3 MB)
Installing collected packages: numpy, pyarrow
Successfully installed numpy-2.0.0 pyarrow-17.0.0
(test-env)  $ ls test-env/lib/python3.10/site-packages/
benchmarks/                  distutils-precedence.pth     numpy-2.0.0.dist-info/       pip-22.0.2.dist-info/        pyarrow-17.0.0.dist-info/    setuptools-59.6.0.dist-info/ 
cmake_modules/               examples/                    numpy.libs/                  pkg_resources/               scripts/                     
_distutils_hack/             numpy/                       pip/                         pyarrow/                     setuptools/    
```

### What changes are included in this PR?

Use `include` as seen here: https://setuptools.pypa.io/en/latest/userguide/package_discovery.html#finding-simple-packages

### Are these changes tested?

Will check via the build wheel on CI

### Are there any user-facing changes?

No and yes :)
We will remove unnecessary files
* GitHub Issue: apache#43299

Lead-authored-by: Raúl Cumplido <[email protected]>
Co-authored-by: Antoine Pitrou <[email protected]>
Signed-off-by: Joris Van den Bossche <[email protected]>
…3938)

### Rationale for this change

We want to enhance error message for URI parsing error to provide more information for the syntax error scenario.

When error message is generated from `uriParseSingleUriExA`, the return value might indicate a `URI_ERROR_SYNTAX` error, and `error_pos` would be set to the position causing syntax error. ([uriparser/Uri.h](https://github.com/apache/arrow/blob/c455d6b8c4ae2cb22baceb4c27e1325b973d39e1/cpp/src/arrow/vendored/uriparser/Uri.h#L288))

In the new error message, it includes the character causing syntax error and its position, so users can have a better idea why the error happens.

### What changes are included in this PR?

- Error message change in URI parsing function.

### Are these changes tested?

PR includes unit tests.

### Are there any user-facing changes?

Yes, but only for error message.

* GitHub Issue: apache#41365
* GitHub Issue: apache#43967

Authored-by: Crystal Zhou <[email protected]>
Signed-off-by: Joris Van den Bossche <[email protected]>
…/encryptor (apache#43947)

This is to get a clearer error rather than an obscure crash, see apache#43057 for an example.

* GitHub Issue: apache#43946

Authored-by: Antoine Pitrou <[email protected]>
Signed-off-by: Antoine Pitrou <[email protected]>
### Rationale for this change

The smaller the better, according to https://docs.docker.com/build/cache/optimize/

### What changes are included in this PR?

Prune obsolete or unnecessary inclusions from `.dockerignore`.

### Are these changes tested?

Yes, by CI.

### Are there any user-facing changes?

No.

* GitHub Issue: apache#43969

Authored-by: Antoine Pitrou <[email protected]>
Signed-off-by: Antoine Pitrou <[email protected]>
…43972)

### Rationale for this change

`encoding.cc` is quite large nowadays : around 4000 lines of code, which makes code navigation cumbersome. It combines the functionality of encoders and decoders, however, those use distinct infrastructures and do not share any code.

Other areas of Parquet tend to separate the reading and writing facilities: for example, `column_reader.cc` vs. `column_writer.cc`.

### What changes are included in this PR?

The main change is to move encoders to `encoder.cc`, decoders to `decoder.cc`, and remove `encoding.cc`.

A small improvement is also to remove the inclusion of `arrow/util/spaced.h` in `encoding.h` by moving the `TypedDecoder<T>::DecodeSpaced` implementation into `decoder.cc`.

Note the massive code shuffle may obscure the git history quite a bit. `git log -C` doesn't seem able to track earlier versions of the encoder and decoder code, but `git blame -C` is.

### Are these changes tested?

By existing tests.

### Are there any user-facing changes?

No.

* GitHub Issue: apache#40154

Authored-by: Antoine Pitrou <[email protected]>
Signed-off-by: Antoine Pitrou <[email protected]>
…pache#43975)

### Rationale for this change

The `python` task group already includes the Python example builds. This PR does the same for the `cpp` task group.

### Are these changes tested?

By CI itself.

### Are there any user-facing changes?

No.

Authored-by: Antoine Pitrou <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
…: non zero-copy int based types (apache#43945)

### Rationale for this change

Statistics is useful for fast processing.

Target types:

* `UInt8`
* `Int8`
* `UInt16`
* `Int16`
* `UInt32`
* `UInt64`
* `Date32`
* `Time32`
* `Time64`
* `Duration`

### What changes are included in this PR?

Map `ColumnChunkMetaData` information to `arrow::ArrayStatistics`.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.

* GitHub Issue: apache#43944

Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
### Rationale for this change

This is for easy to read.

FYI: Google C++ style guide doesn't require indent in preprocessor directives nor deny it:

https://google.github.io/styleguide/cppguide.html#Preprocessor_Directives

```cpp
// Good - directives at beginning of line
  if (lopsided_score) {
#if DISASTER_PENDING      // Correct -- Starts at beginning of line
    DropEverything();
# if NOTIFY               // OK but not required -- Spaces after #
    NotifyClient();
# endif
#endif
    BackToNormal();
  }
```

### What changes are included in this PR?

* Add clang-format configurations for preprocessor directives indentation
* Apply these configurations

### Are these changes tested?

Yes.

### Are there any user-facing changes?

No.
* GitHub Issue: apache#43796

Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
….18.1 in /java Manual (apache#43980)

### Rationale for this change

The dependabot PR apache#43922 automated change doesn't fix some code level changes required. This PR fixes that. 

### What changes are included in this PR?

This PR is a supportive PR to enable the `puppycraw.tools:checkstyle` plugin upgrade. 

### Are these changes tested?

Using existing test cases. 

### Are there any user-facing changes?

No

Authored-by: Vibhatha Lakmal Abeykoon <[email protected]>
Signed-off-by: David Li <[email protected]>
### Rationale for this change

cpplint isn't integrated with pre-commit yet.

### What changes are included in this PR?

* Add cpplint configuration
* Share configuration with pre-commit and cpp/build-support/run_cpplint.py
* Add pre-commit entry

### Are these changes tested?

Yes.

### Are there any user-facing changes?

No.
* GitHub Issue: apache#43979

Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Raúl Cumplido <[email protected]>
…orrectly when !HasNullCount() (apache#43726)

### Rationale for this change

See issue. When `!HasNullCount`, we cannot gurantee null exists

### What changes are included in this PR?

Handle HasNullCount in dataset expr

### Are these changes tested?

Yes

### Are there any user-facing changes?

Merely

* GitHub Issue: apache#43712

Lead-authored-by: mwish <[email protected]>
Co-authored-by: mwish <[email protected]>
Co-authored-by: Antoine Pitrou <[email protected]>
Signed-off-by: mwish <[email protected]>
…che#43993)

### Rationale for this change

Minor code enhancement in array_nested.cc

### What changes are included in this PR?

Use std::move for nested types

### Are these changes tested?

Covered by existing

### Are there any user-facing changes?

no

* GitHub Issue: apache#43992

Authored-by: mwish <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
…pache#43999)

### Rationale for this change

This is needed to write `DoPut` client tests.

### What changes are included in this PR?

The following features are also added:
* `GAFlightMetadataWriter`
* `garrow_record_batch_writer_is_closed()`
* Improve `ArrowFlight::Client#do_put` API in Ruby

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.
* GitHub Issue: apache#43814

Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
…: zero-copy types (apache#43984)

### Rationale for this change

Statistics is useful for fast processing.

Target types:

* `Int32`
* `Int64`
* `Float`
* `Double`
* `Timestamp[milli]`
* `Timestamp[micro]`
* `Timestamp[nano]`

### What changes are included in this PR?

Map `ColumnChunkMetaData` information to `arrow::ArrayStatistics`.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.
* GitHub Issue: apache#43983

Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
…_record_batch()` (apache#44001)

### Rationale for this change

We don't need to create a `GArrowTable` only for writing a `GArrowRecordBatch`.

### What changes are included in this PR?

The following APIs are also added:
* `gparquet_arrow_file_writer_get_schema()`
* Parquet::ArrowFileWriter#write` in Ruby

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.
* GitHub Issue: apache#40860

Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
…ector (apache#43968)

### Rationale for this change

See apache#43966

### What changes are included in this PR?

Check for nullabilities when comparing StructVector with RangeEqualsVisitor.

### Are these changes tested?

Yes

### Are there any user-facing changes?
No

* GitHub Issue: apache#43966

Authored-by: youming.whl <[email protected]>
Signed-off-by: David Li <[email protected]>
…3988)

### Rationale for this change

See apache#43986.

### What changes are included in this PR?

Mostly trivial changes, plus removing one `Grouper` implementation that's not wired.

### Are these changes tested?

No new tests needed.

### Are there any user-facing changes?

None.

* GitHub Issue: apache#43986

Authored-by: Ruoxi Sun <[email protected]>
Signed-off-by: Antoine Pitrou <[email protected]>
…ecoder (apache#44003)

### Rationale for this change

Enhance the comment for ColumnReader/Decoder

### What changes are included in this PR?

Enhance the comment for ColumnReader/Decoder

### Are these changes tested?

no need 

### Are there any user-facing changes?

no

* GitHub Issue: apache#43301

Lead-authored-by: mwish <[email protected]>
Co-authored-by: mwish <[email protected]>
Co-authored-by: Antoine Pitrou <[email protected]>
Signed-off-by: mwish <[email protected]>
…d build (apache#43671)

### Rationale for this change

Testing with the free-threaded build is required for adding support for it. (see apache#43536)

### What changes are included in this PR?

- Add a Docker build with the CPython free-threaded build from deadsnakes.
- Add a Crossbow job to run said Docker build with Python 3.13t

### Are there any user-facing changes?

No.
* GitHub Issue: apache#43536

Lead-authored-by: Lysandros Nikolaou <[email protected]>
Co-authored-by: Antoine Pitrou <[email protected]>
Co-authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Antoine Pitrou <[email protected]>
…e#44020)

Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.7 to 4.1.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions/download-artifact/releases">actions/download-artifact's releases</a>.</em></p>
<blockquote>
<h2>v4.1.8</h2>
<h2>What's Changed</h2>
<ul>
<li>Update <code>@​actions/artifact</code> version, bump dependencies by <a href="https://github.com/robherley"><code>@​robherley</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/341">actions/download-artifact#341</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/actions/download-artifact/compare/v4...v4.1.8">https://github.com/actions/download-artifact/compare/v4...v4.1.8</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/actions/download-artifact/commit/fa0a91b85d4f404e444e00e005971372dc801d16"><code>fa0a91b</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/341">#341</a> from actions/robherley/bump-pkgs</li>
<li><a href="https://github.com/actions/download-artifact/commit/b54d0883e196647f43ce531a3fc13b246cf908b6"><code>b54d088</code></a> Update <code>@​actions/artifact</code> version, bump dependencies</li>
<li>See full diff in <a href="https://github.com/actions/download-artifact/compare/v4.1.7...v4.1.8">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/download-artifact&package-manager=github_actions&previous-version=4.1.7&new-version=4.1.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@ dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@ dependabot rebase` will rebase this PR
- `@ dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@ dependabot merge` will merge this PR after your CI passes on it
- `@ dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@ dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@ dependabot reopen` will reopen this PR if it is closed
- `@ dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@ dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@ dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@ dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@ dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

Authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Sutou Kouhei <[email protected]>
…apache#44014)

### Rationale for this change

This PR configs the build such that warnings are considered as errors in the C module. And corresponding code changes have also been made.

### What changes are included in this PR?

Adding flags to consider warnings as errors in javac and fixing the corresponding errors.

### Are these changes tested?

Tested by existing test cases.

### Are there any user-facing changes?

N/A
* GitHub Issue: apache#44013

Authored-by: Vibhatha Lakmal Abeykoon <[email protected]>
Signed-off-by: David Li <[email protected]>
…he#44012)

### Rationale for this change

This PR configs the build such that warnings are considered as errors in the C module. And corresponding code changes have also been made.

### What changes are included in this PR?

Adding flags to consider warnings as errors in javac and fixing the corresponding errors.

### Are these changes tested?

Tested by existing test cases.

### Are there any user-facing changes?

N/A
* GitHub Issue: apache#44011

Authored-by: Vibhatha Lakmal Abeykoon <[email protected]>
Signed-off-by: David Li <[email protected]>
apache#43978)

### Rationale for this change

Gandiva tests are failing due to a linking issue and it is failing the Java CIs. But for most of the made PRs, we cannot verify the overall workflow given that those PRs are independent of the Gandiva component. 

### What changes are included in this PR?

This PR disables such failing tests temporarily such that once the Gandiva issue is fixed, re-enabling the tests. 
Re-enabling task will be tracked using apache#43981

### Are these changes tested?

Yes, by existing CIs and tests.

### Are there any user-facing changes?

No
* GitHub Issue: apache#43576

Authored-by: Vibhatha Lakmal Abeykoon <[email protected]>
Signed-off-by: David Li <[email protected]>
…#44019)

### Rationale for this change

So minor ipc code enhancement when I read the code

### What changes are included in this PR?

Avoid copying shared_ptr in some naive space

### Are these changes tested?

Covered by existence

### Are there any user-facing changes?

no

* GitHub Issue: apache#44036

Authored-by: mwish <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
raulcd and others added 8 commits September 27, 2024 17:27
…0.04 (apache#44151)

### Rationale for this change

Ubuntu 20.04 will be end of standard support on April 2025. Ubuntu 22.04 and 24.04 have been already released.

We should make our default .env to UBUNTU=22.04.

### What changes are included in this PR?

Update .env default to Ubuntu 22.04 and a couple other minor updates to use Ubuntu 22.04

### Are these changes tested?

Yes

### Are there any user-facing changes?

No
* GitHub Issue: apache#40570

Lead-authored-by: "Raúl Cumplido <[email protected]>"
Co-authored-by: Sutou Kouhei <[email protected]>
Co-authored-by: Raúl Cumplido <[email protected]>
Signed-off-by: Raúl Cumplido <[email protected]>
### Rationale for this change

.NET 4.6.2 is not really netstandard2.0-compatible; it works, but only by bringing in a ridiculous number of facade assemblies. The downlevel web server support for gPRC falls into this category, so bump the required version for Flight from 462 to 472.

### What changes are included in this PR?

Changes the targeting of the build for the C# Arrow Flight support.

### Are these changes tested?

N/A

### Are there any user-facing changes?

The underlying feature is first shipping in Arrow 18 so existing users are unaffected.

Authored-by: Curt Hagenlocher <[email protected]>
Signed-off-by: Curt Hagenlocher <[email protected]>
Bumps [xunit](https://github.com/xunit/xunit) from 2.9.1 to 2.9.2.
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/xunit/xunit/commit/82543a6df6f5f13b5b70f8a9f9ccb41cd676084f"><code>82543a6</code></a> v2.9.2</li>
<li><a href="https://github.com/xunit/xunit/commit/0f8f1563876f2cbbb9af27e0bb14b824372fd4a8"><code>0f8f156</code></a> <a href="https://redirect.github.com/xunit/xunit/issues/3031">#3031</a>: Changes to TheoryData break tests with arrays of objects</li>
<li><a href="https://github.com/xunit/xunit/commit/502f6d10bf015ac570f8f1ca378882a9526fe0bc"><code>502f6d1</code></a> Bump up to v2.9.2-pre</li>
<li>See full diff in <a href="https://github.com/xunit/xunit/compare/v2-2.9.1...v2-2.9.2">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=xunit&package-manager=nuget&previous-version=2.9.1&new-version=2.9.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@ dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@ dependabot rebase` will rebase this PR
- `@ dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@ dependabot merge` will merge this PR after your CI passes on it
- `@ dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@ dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@ dependabot reopen` will reopen this PR if it is closed
- `@ dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@ dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@ dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@ dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@ dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

Authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Curt Hagenlocher <[email protected]>
…arp (apache#44260)

Bumps [Grpc.AspNetCore.Server](https://github.com/grpc/grpc-dotnet) from 2.64.0 to 2.66.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/grpc/grpc-dotnet/releases">Grpc.AspNetCore.Server's releases</a>.</em></p>
<blockquote>
<h2>Release v2.66.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump version on master to 2.66.0-dev by <a href="https://github.com/stanley-cheung"><code>@​stanley-cheung</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2491">grpc/grpc-dotnet#2491</a></li>
<li>Fix failure to create GrpcChannel under Wine compatibility layer (including Steam Proton and Apple Game Porting Toolkit) by <a href="https://github.com/mayuki"><code>@​mayuki</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2496">grpc/grpc-dotnet#2496</a></li>
<li>Update .NET 9 SDK and resolve warnings by <a href="https://github.com/sebastienros"><code>@​sebastienros</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2502">grpc/grpc-dotnet#2502</a></li>
<li>Bump braces from 3.0.2 to 3.0.3 in /testassets/InteropTestsGrpcWebWebsite/Tests by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2504">grpc/grpc-dotnet#2504</a></li>
<li>Bump axios from 1.6.2 to 1.7.4 in /testassets/InteropTestsGrpcWebWebsite/Tests by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2505">grpc/grpc-dotnet#2505</a></li>
<li>Update puppeteer by <a href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2507">grpc/grpc-dotnet#2507</a></li>
<li>Remove internal_ci flag from interop test script by <a href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2509">grpc/grpc-dotnet#2509</a></li>
<li>Fix Google auth interop test by <a href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2512">grpc/grpc-dotnet#2512</a></li>
<li>[testing] improve sanity check in jwt_token_creds interop test by <a href="https://github.com/apolcyn"><code>@​apolcyn</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2513">grpc/grpc-dotnet#2513</a></li>
<li>Add HTTP version configuration to GrpcChannelOptions by <a href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2514">grpc/grpc-dotnet#2514</a></li>
<li>Bump grpc.tools version to 2.66 by <a href="https://github.com/apolcyn"><code>@​apolcyn</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2523">grpc/grpc-dotnet#2523</a></li>
<li>Bump webpack from 5.76.0 to 5.94.0 in /examples/Browser/Server/wwwroot by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2522">grpc/grpc-dotnet#2522</a></li>
<li>Bump elliptic from 6.5.4 to 6.5.7 in /examples/Spar/Server/ClientApp by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2525">grpc/grpc-dotnet#2525</a></li>
<li>Bump micromatch from 4.0.7 to 4.0.8 in /testassets/InteropTestsGrpcWebWebsite/Tests by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2524">grpc/grpc-dotnet#2524</a></li>
<li>Bump v2.66.x branch to 2.66.0.pre1 by <a href="https://github.com/apolcyn"><code>@​apolcyn</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2526">grpc/grpc-dotnet#2526</a></li>
<li>Bump v2.66.x to v2.66.0 by <a href="https://github.com/apolcyn"><code>@​apolcyn</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2539">grpc/grpc-dotnet#2539</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/grpc/grpc-dotnet/compare/v2.65.0...v2.66.0">https://github.com/grpc/grpc-dotnet/compare/v2.65.0...v2.66.0</a></p>
<h2>Release v2.66.0-pre1</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump version on master to 2.66.0-dev by <a href="https://github.com/stanley-cheung"><code>@​stanley-cheung</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2491">grpc/grpc-dotnet#2491</a></li>
<li>Fix failure to create GrpcChannel under Wine compatibility layer (including Steam Proton and Apple Game Porting Toolkit) by <a href="https://github.com/mayuki"><code>@​mayuki</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2496">grpc/grpc-dotnet#2496</a></li>
<li>Update .NET 9 SDK and resolve warnings by <a href="https://github.com/sebastienros"><code>@​sebastienros</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2502">grpc/grpc-dotnet#2502</a></li>
<li>Bump braces from 3.0.2 to 3.0.3 in /testassets/InteropTestsGrpcWebWebsite/Tests by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2504">grpc/grpc-dotnet#2504</a></li>
<li>Bump axios from 1.6.2 to 1.7.4 in /testassets/InteropTestsGrpcWebWebsite/Tests by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2505">grpc/grpc-dotnet#2505</a></li>
<li>Update puppeteer by <a href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2507">grpc/grpc-dotnet#2507</a></li>
<li>Remove internal_ci flag from interop test script by <a href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2509">grpc/grpc-dotnet#2509</a></li>
<li>Fix Google auth interop test by <a href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2512">grpc/grpc-dotnet#2512</a></li>
<li>[testing] improve sanity check in jwt_token_creds interop test by <a href="https://github.com/apolcyn"><code>@​apolcyn</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2513">grpc/grpc-dotnet#2513</a></li>
<li>Add HTTP version configuration to GrpcChannelOptions by <a href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2514">grpc/grpc-dotnet#2514</a></li>
<li>Bump grpc.tools version to 2.66 by <a href="https://github.com/apolcyn"><code>@​apolcyn</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2523">grpc/grpc-dotnet#2523</a></li>
<li>Bump webpack from 5.76.0 to 5.94.0 in /examples/Browser/Server/wwwroot by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2522">grpc/grpc-dotnet#2522</a></li>
<li>Bump elliptic from 6.5.4 to 6.5.7 in /examples/Spar/Server/ClientApp by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2525">grpc/grpc-dotnet#2525</a></li>
<li>Bump micromatch from 4.0.7 to 4.0.8 in /testassets/InteropTestsGrpcWebWebsite/Tests by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2524">grpc/grpc-dotnet#2524</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/grpc/grpc-dotnet/compare/v2.65.0...v2.66.0-pre1">https://github.com/grpc/grpc-dotnet/compare/v2.65.0...v2.66.0-pre1</a></p>
<h2>Release v2.65.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update Native.DetectWindowsVersion() to consider Windows Server 2019 to be Window Server by <a href="https://github.com/wrall"><code>@​wrall</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2468">grpc/grpc-dotnet#2468</a></li>
<li>Bump master version to 2.65.0-dev by <a href="https://github.com/stanley-cheung"><code>@​stanley-cheung</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2472">grpc/grpc-dotnet#2472</a></li>
<li>Reduce usage of RunContinuationsAsynchronously by <a href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2478">grpc/grpc-dotnet#2478</a></li>
<li>Bump Grpc.Tools version to 2.65.0 by <a href="https://github.com/stanley-cheung"><code>@​stanley-cheung</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2488">grpc/grpc-dotnet#2488</a></li>
<li>Bump version to 2.65.0-pre1 by <a href="https://github.com/stanley-cheung"><code>@​stanley-cheung</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2490">grpc/grpc-dotnet#2490</a></li>
<li>Bump release version to 2.65.0 by <a href="https://github.com/stanley-cheung"><code>@​stanley-cheung</code></a> in <a href="https://redirect.github.com/grpc/grpc-dotnet/pull/2495">grpc/grpc-dotnet#2495</a></li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/grpc/grpc-dotnet/commit/64e87a676b6aba16945f70aed3bb1c1dbbbbbad0"><code>64e87a6</code></a> bump version to final release (<a href="https://redirect.github.com/grpc/grpc-dotnet/issues/2539">#2539</a>)</li>
<li><a href="https://github.com/grpc/grpc-dotnet/commit/42dab3e443a405077ab106b80c985b9b6eecffe8"><code>42dab3e</code></a> bump to pre1 (<a href="https://redirect.github.com/grpc/grpc-dotnet/issues/2526">#2526</a>)</li>
<li><a href="https://github.com/grpc/grpc-dotnet/commit/439a3b80b562d63c84c9bf4474a774a20a408e2a"><code>439a3b8</code></a> Bump micromatch from 4.0.7 to 4.0.8 in /testassets/InteropTestsGrpcWebWebsite...</li>
<li><a href="https://github.com/grpc/grpc-dotnet/commit/b3429b90615f55995b6763f4bf92b5cb9193b067"><code>b3429b9</code></a> Bump elliptic from 6.5.4 to 6.5.7 in /examples/Spar/Server/ClientApp (<a href="https://redirect.github.com/grpc/grpc-dotnet/issues/2525">#2525</a>)</li>
<li><a href="https://github.com/grpc/grpc-dotnet/commit/30255261ad1c64ba43fb140944e78c049318e8ec"><code>3025526</code></a> Bump webpack from 5.76.0 to 5.94.0 in /examples/Browser/Server/wwwroot (<a href="https://redirect.github.com/grpc/grpc-dotnet/issues/2522">#2522</a>)</li>
<li><a href="https://github.com/grpc/grpc-dotnet/commit/bf41c89ace4a4ce4d9868c35f06cef4d48031584"><code>bf41c89</code></a> Bump grpc.tools version to 2.66 (<a href="https://redirect.github.com/grpc/grpc-dotnet/issues/2523">#2523</a>)</li>
<li><a href="https://github.com/grpc/grpc-dotnet/commit/e9cc7e15796d39f1d2656178f56a45c09147d0fe"><code>e9cc7e1</code></a> Add HTTP version configuration to GrpcChannelOptions (<a href="https://redirect.github.com/grpc/grpc-dotnet/issues/2514">#2514</a>)</li>
<li><a href="https://github.com/grpc/grpc-dotnet/commit/26227c3e7a2f5d4469ae06a4999f1a4f2800d351"><code>26227c3</code></a> [testing] improve sanity check in jwt_token_creds interop test (<a href="https://redirect.github.com/grpc/grpc-dotnet/issues/2513">#2513</a>)</li>
<li><a href="https://github.com/grpc/grpc-dotnet/commit/dd4adce098a94f5e7a7ede19262f85a72c9797ca"><code>dd4adce</code></a> Fix Google auth interop test (<a href="https://redirect.github.com/grpc/grpc-dotnet/issues/2512">#2512</a>)</li>
<li><a href="https://github.com/grpc/grpc-dotnet/commit/c397bc7804824100c983052f4a6e7e291ddf1c06"><code>c397bc7</code></a> Remove internal_ci flag from interop test script (<a href="https://redirect.github.com/grpc/grpc-dotnet/issues/2509">#2509</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/grpc/grpc-dotnet/compare/v2.64.0...v2.66.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Grpc.AspNetCore.Server&package-manager=nuget&previous-version=2.64.0&new-version=2.66.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@ dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@ dependabot rebase` will rebase this PR
- `@ dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@ dependabot merge` will merge this PR after your CI passes on it
- `@ dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@ dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@ dependabot reopen` will reopen this PR if it is closed
- `@ dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@ dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@ dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@ dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@ dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

Authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Curt Hagenlocher <[email protected]>
…ntations (apache#43957)

<!--
Thanks for opening a pull request!
If this is your first pull request you can find detailed information on
how
to contribute here:
* [New Contributor's
Guide](https://arrow.apache.org/docs/dev/developers/guide/step_by_step/pr_lifecycle.html#reviews-and-merge-of-the-pull-request)
* [Contributing
Overview](https://arrow.apache.org/docs/dev/developers/overview.html)


If this is not a [minor
PR](https://github.com/apache/arrow/blob/main/CONTRIBUTING.md#Minor-Fixes).
Could you open an issue for this pull request on GitHub?
https://github.com/apache/arrow/issues/new/choose

Opening GitHub issues ahead of time contributes to the
[Openness](http://theapacheway.com/open/#:~:text=Openness%20allows%20new%20users%20the,must%20happen%20in%20the%20open.)
of the Apache Arrow project.

Then could you also rename the pull request title in the following
format?

    GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

or

    MINOR: [${COMPONENT}] ${SUMMARY}

In the case of PARQUET issues on JIRA the title also supports:

    PARQUET-${JIRA_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

-->

### Rationale for this change
Widening the Decimal128/256 type to allow for bitwidths of 32 and 64
allows for more interoperability with other libraries and utilities
which already support these types. This provides even more opportunities
for zero-copy interactions between things such as libcudf and various
databases.

<!--
Why are you proposing this change? If this is already explained clearly
in the issue then this section is not needed.
Explaining clearly why changes are proposed helps reviewers understand
your changes and offer better suggestions for fixes.
-->

### What changes are included in this PR?
This PR contains the basic C++ implementations for Decimal32/Decimal64
types, arrays, builders and scalars. It also includes the minimum
necessary to get everything compiling and tests passing without also
extending the acero kernels and parquet handling (both of which will be
handled in follow-up PRs).

<!--
There is no need to duplicate the description in the issue here but it
is sometimes worth providing a summary of the individual changes in this
PR.
-->

### Are these changes tested?
Yes, tests were extended where applicable to add decimal32/decimal64
cases.

<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

If tests are not included in your PR, please explain why (for example,
are they covered by existing tests)?
-->

### Are there any user-facing changes?
Currently if a user is using `decimal(precision, scale)` rather than
`decimal128(precision, scale)` they will get a `Decimal128Type` if the
precision is <= 38 (max precision for Decimal128) and `Decimal256Type`
if the precision is higher. Following the same pattern, this change
means that using `decimal(precision, scale)` instead of the specific
`decimal32`/`decimal64`/`decimal128`/`decimal256` functions results in
the following functionality:

- for precisions [1 : 9] => `Decimal32Type`
- for precisions [10 : 18] => `Decimal64Type`
- for precisions [19 : 38] => `Decimal128Type`
- for precisions [39 : 76] => `Decimal256Type`

While many of our tests currently make the assumption that `decimal`
with a low precision would be `Decimal128` and had to be updated, this
may cause an initial surprise if users are making the same assumptions.

<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.
-->

<!--
If there are any breaking changes to public APIs, please uncomment the
line below and explain which changes are breaking.
-->
<!-- **This PR includes breaking changes to public APIs.** -->

<!--
Please uncomment the line below (and provide explanation) if the changes
fix either (a) a security vulnerability, (b) a bug that caused incorrect
or invalid data to be produced, or (c) a bug that causes a crash (even
when the API contract is upheld). We use this to highlight fixes to
issues that may affect users without their knowledge. For this reason,
fixing bugs that cause errors don't count, since those are usually
obvious.
-->
<!-- **This PR contains a "Critical Fix".** -->
* GitHub Issue: apache#43956

---------

Co-authored-by: Felipe Oliveira Carvalho <[email protected]>
Co-authored-by: Benjamin Kietzman <[email protected]>
Co-authored-by: Antoine Pitrou <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.