This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/parquet-site.git
The following commit(s) were added to refs/heads/asf-site by this push:
new c35b4e3 deploy: 0f7de211b84c5cf0d3599d002c9871f65165bb31
c35b4e3 is described below
commit c35b4e36629319fa56922f8587074091480a785a
Author: wgtmac <[email protected]>
AuthorDate: Wed Feb 26 14:19:37 2025 +0000
deploy: 0f7de211b84c5cf0d3599d002c9871f65165bb31
---
output/docs/_print/index.html | 2 +-
output/docs/file-format/_print/index.html | 2 +-
.../file-format/implementationstatus/index.html | 10 ++--
output/docs/file-format/index.xml | 67 ++++++++++++++++++++++
output/docs/index.xml | 67 ++++++++++++++++++++++
output/sitemap.xml | 2 +-
6 files changed, 142 insertions(+), 8 deletions(-)
diff --git a/output/docs/_print/index.html b/output/docs/_print/index.html
index 68109fc..281d422 100644
--- a/output/docs/_print/index.html
+++ b/output/docs/_print/index.html
@@ -814,7 +814,7 @@ indices, and page offsets to scan in each column. The
reader can then
initialize a scanner for each column and fast forward them to the start row of
the scan.</p><p>The <code>min_values</code> and <code>max_values</code> are
calculated based on the <code>column_orders</code>
field in the <code>FileMetaData</code> struct of the footer.</p></div><div
class=td-content style=page-break-before:always><h1
id=pg-e0ad5830788d45de8b55e0c2b119349a>3.10 - Implementation status</h1><p>This
page summarizes the features supported by different Parquet
-implementations.</p><p><em>Note</em>: This is a work in progress and we would
welcome help expanding its scope.</p><h3 id=legend>Legend</h3><p>The value in
each box means:</p><ul><li>✅: supported</li><li>❌: not supported</li><li>(R/W):
partial reader/writer only support</li><li>(blank) no
data</li></ul><p>Implementations:</p><ul><li><code>C++</code>: <a
href=https://github.com/apache/arrow/tree/main/cpp/src/parquet>parquet-cpp</a></li><li><code>Java</code>:
<a href=https://github.com/apa [...]
+implementations.</p><p><em>Note</em>: This is a work in progress and we would
welcome help expanding its scope.</p><h3 id=legend>Legend</h3><p>The value in
each box means:</p><ul><li>✅: supported</li><li>❌: not supported</li><li>(R/W):
partial reader/writer only support</li><li>(blank) no
data</li></ul><p>Implementations:</p><ul><li><code>C++</code>: <a
href=https://github.com/apache/arrow/tree/main/cpp/src/parquet>parquet-cpp</a></li><li><code>Java</code>:
<a href=https://github.com/apa [...]
Java resources can be build using <code>mvn package</code>. The current stable
version should always be available from Maven Central.</p><p>C++ thrift
resources can be generated via make.</p><p>Thrift can be also code-genned into
any other thrift-supported language.</p></div><div class=td-content
style=page-break-before:always><h1 id=pg-47cac26307c77b16f1b9e75c1e46efec>4.3 -
Contributing to Parquet-Java</h1><div class=lead>How to contribute to
Parquet-Java</div><h2 id=pull-requests>Pull [...]
</span></span></span><span style=display:flex><span><span
style=color:#8f5902;font-style:italic> * @param c the current class
</span></span></span><span style=display:flex><span><span
style=color:#8f5902;font-style:italic> * @return the corresponding logger
diff --git a/output/docs/file-format/_print/index.html
b/output/docs/file-format/_print/index.html
index d549958..92df710 100644
--- a/output/docs/file-format/_print/index.html
+++ b/output/docs/file-format/_print/index.html
@@ -807,6 +807,6 @@ indices, and page offsets to scan in each column. The
reader can then
initialize a scanner for each column and fast forward them to the start row of
the scan.</p><p>The <code>min_values</code> and <code>max_values</code> are
calculated based on the <code>column_orders</code>
field in the <code>FileMetaData</code> struct of the footer.</p></div><div
class=td-content style=page-break-before:always><h1
id=pg-e0ad5830788d45de8b55e0c2b119349a>10 - Implementation status</h1><p>This
page summarizes the features supported by different Parquet
-implementations.</p><p><em>Note</em>: This is a work in progress and we would
welcome help expanding its scope.</p><h3 id=legend>Legend</h3><p>The value in
each box means:</p><ul><li>✅: supported</li><li>❌: not supported</li><li>(R/W):
partial reader/writer only support</li><li>(blank) no
data</li></ul><p>Implementations:</p><ul><li><code>C++</code>: <a
href=https://github.com/apache/arrow/tree/main/cpp/src/parquet>parquet-cpp</a></li><li><code>Java</code>:
<a href=https://github.com/apa [...]
+implementations.</p><p><em>Note</em>: This is a work in progress and we would
welcome help expanding its scope.</p><h3 id=legend>Legend</h3><p>The value in
each box means:</p><ul><li>✅: supported</li><li>❌: not supported</li><li>(R/W):
partial reader/writer only support</li><li>(blank) no
data</li></ul><p>Implementations:</p><ul><li><code>C++</code>: <a
href=https://github.com/apache/arrow/tree/main/cpp/src/parquet>parquet-cpp</a></li><li><code>Java</code>:
<a href=https://github.com/apa [...]
2025
<span class=td-footer__authors>Apache Parquet</span></span><span
class=td-footer__all_rights_reserved>All Rights Reserved</span><span
class=ms-2><a href=https://policies.google.com/privacy target=_blank
rel=noopener>Privacy Policy</a></span></div></div></div></footer></div><script
src=/js/main.min.26b35480299b932e285af8358c943de97509b95a0086d091584e7cb9b00c5c7b.js
integrity="sha256-JrNUgCmbky4oWvg1jJQ96XUJuVoAhtCRWE58ubAMXHs="
crossorigin=anonymous></script><script defer src=/js/click-to [...]
\ No newline at end of file
diff --git a/output/docs/file-format/implementationstatus/index.html
b/output/docs/file-format/implementationstatus/index.html
index cc0eb7a..7b6f9ca 100644
--- a/output/docs/file-format/implementationstatus/index.html
+++ b/output/docs/file-format/implementationstatus/index.html
@@ -3,23 +3,23 @@
Note: This is a work in progress and we would welcome help expanding its scope.
Legend The value in each box means:
✅: supported ❌: not supported (R/W): partial reader/writer only support
(blank) no data Implementations:
-C++: parquet-cpp Java: parquet-java Go: parquet-go Rust: parquet-rs cuDF: cudf
JavaScript: hyparquet Physical types Data type C++ Java Go Rust cuDF hyparquet
BOOLEAN ✅ ✅ ✅ ✅ (R) INT32 ✅ ✅ ✅ ✅ (R) INT64 ✅ ✅ ✅ ✅ (R) INT96 (1) ✅ ✅ ✅ ✅ (R)
FLOAT ✅ ✅ ✅ ✅ (R) DOUBLE ✅ ✅ ✅ ✅ (R) BYTE_ARRAY ✅ ✅ ✅ ✅ (R)
FIXED_LEN_BYTE_ARRAY ✅ ✅ ✅ ✅ (R) (1) This type is deprecated, but as of 2024
it&rsquo;s common in currently produced parquet files Logical types Data
type C++ Java Go Rust cuDF hyparquet STRIN [...]
+C++: parquet-cpp Java: parquet-java Go: parquet-go Rust: parquet-rs cuDF: cudf
JavaScript: hyparquet DuckDB: duckdb Physical types Data type C++ Java Go Rust
cuDF hyparquet DuckDB BOOLEAN ✅ ✅ ✅ ✅ (R) ✅ INT32 ✅ ✅ ✅ ✅ (R) ✅ INT64 ✅ ✅ ✅ ✅
(R) ✅ INT96 (1) ✅ ✅ ✅ ✅ (R) (R) FLOAT ✅ ✅ ✅ ✅ (R) ✅ DOUBLE ✅ ✅ ✅ ✅ (R) ✅
BYTE_ARRAY ✅ ✅ ✅ ✅ (R) ✅ FIXED_LEN_BYTE_ARRAY ✅ ✅ ✅ ✅ (R) ✅ (1) This type is
deprecated, but as of 2024 it&rsquo;s common in currently produced parquet
files Logical types Data ty [...]
Note: This is a work in progress and we would welcome help expanding its scope.
Legend The value in each box means:
✅: supported ❌: not supported (R/W): partial reader/writer only support
(blank) no data Implementations:
-C++: parquet-cpp Java: parquet-java Go: parquet-go Rust: parquet-rs cuDF: cudf
JavaScript: hyparquet Physical types Data type C++ Java Go Rust cuDF hyparquet
BOOLEAN ✅ ✅ ✅ ✅ (R) INT32 ✅ ✅ ✅ ✅ (R) INT64 ✅ ✅ ✅ ✅ (R) INT96 (1) ✅ ✅ ✅ ✅ (R)
FLOAT ✅ ✅ ✅ ✅ (R) DOUBLE ✅ ✅ ✅ ✅ (R) BYTE_ARRAY ✅ ✅ ✅ ✅ (R)
FIXED_LEN_BYTE_ARRAY ✅ ✅ ✅ ✅ (R) (1) This type is deprecated, but as of 2024
it’s common in currently produced parquet files Logical types Data type
C++ Java Go Rust cuDF hyparquet STRING ✅ [...]
+C++: parquet-cpp Java: parquet-java Go: parquet-go Rust: parquet-rs cuDF: cudf
JavaScript: hyparquet DuckDB: duckdb Physical types Data type C++ Java Go Rust
cuDF hyparquet DuckDB BOOLEAN ✅ ✅ ✅ ✅ (R) ✅ INT32 ✅ ✅ ✅ ✅ (R) ✅ INT64 ✅ ✅ ✅ ✅
(R) ✅ INT96 (1) ✅ ✅ ✅ ✅ (R) (R) FLOAT ✅ ✅ ✅ ✅ (R) ✅ DOUBLE ✅ ✅ ✅ ✅ (R) ✅
BYTE_ARRAY ✅ ✅ ✅ ✅ (R) ✅ FIXED_LEN_BYTE_ARRAY ✅ ✅ ✅ ✅ (R) ✅ (1) This type is
deprecated, but as of 2024 it’s common in currently produced parquet
files Logical types Data type C [...]
Note: This is a work in progress and we would welcome help expanding its scope.
Legend The value in each box means:
✅: supported ❌: not supported (R/W): partial reader/writer only support
(blank) no data Implementations:
-C++: parquet-cpp Java: parquet-java Go: parquet-go Rust: parquet-rs cuDF: cudf
JavaScript: hyparquet Physical types Data type C++ Java Go Rust cuDF hyparquet
BOOLEAN ✅ ✅ ✅ ✅ (R) INT32 ✅ ✅ ✅ ✅ (R) INT64 ✅ ✅ ✅ ✅ (R) INT96 (1) ✅ ✅ ✅ ✅ (R)
FLOAT ✅ ✅ ✅ ✅ (R) DOUBLE ✅ ✅ ✅ ✅ (R) BYTE_ARRAY ✅ ✅ ✅ ✅ (R)
FIXED_LEN_BYTE_ARRAY ✅ ✅ ✅ ✅ (R) (1) This type is deprecated, but as of 2024
it’s common in currently produced parquet files Logical types Data type
C++ Java Go Rust cuDF hyparquet STRING ✅ [...]
+C++: parquet-cpp Java: parquet-java Go: parquet-go Rust: parquet-rs cuDF: cudf
JavaScript: hyparquet DuckDB: duckdb Physical types Data type C++ Java Go Rust
cuDF hyparquet DuckDB BOOLEAN ✅ ✅ ✅ ✅ (R) ✅ INT32 ✅ ✅ ✅ ✅ (R) ✅ INT64 ✅ ✅ ✅ ✅
(R) ✅ INT96 (1) ✅ ✅ ✅ ✅ (R) (R) FLOAT ✅ ✅ ✅ ✅ (R) ✅ DOUBLE ✅ ✅ ✅ ✅ (R) ✅
BYTE_ARRAY ✅ ✅ ✅ ✅ (R) ✅ FIXED_LEN_BYTE_ARRAY ✅ ✅ ✅ ✅ (R) ✅ (1) This type is
deprecated, but as of 2024 it’s common in currently produced parquet
files Logical types Data type C [...]
Note: This is a work in progress and we would welcome help expanding its scope.
Legend The value in each box means:
✅: supported ❌: not supported (R/W): partial reader/writer only support
(blank) no data Implementations:
-C++: parquet-cpp Java: parquet-java Go: parquet-go Rust: parquet-rs cuDF: cudf
JavaScript: hyparquet Physical types Data type C++ Java Go Rust cuDF hyparquet
BOOLEAN ✅ ✅ ✅ ✅ (R) INT32 ✅ ✅ ✅ ✅ (R) INT64 ✅ ✅ ✅ ✅ (R) INT96 (1) ✅ ✅ ✅ ✅ (R)
FLOAT ✅ ✅ ✅ ✅ (R) DOUBLE ✅ ✅ ✅ ✅ (R) BYTE_ARRAY ✅ ✅ ✅ ✅ (R)
FIXED_LEN_BYTE_ARRAY ✅ ✅ ✅ ✅ (R) (1) This type is deprecated, but as of 2024
it’s common in currently produced parquet files Logical types Data type
C++ Java Go Rust cuDF hyparquet STRING ✅ [...]
+C++: parquet-cpp Java: parquet-java Go: parquet-go Rust: parquet-rs cuDF: cudf
JavaScript: hyparquet DuckDB: duckdb Physical types Data type C++ Java Go Rust
cuDF hyparquet DuckDB BOOLEAN ✅ ✅ ✅ ✅ (R) ✅ INT32 ✅ ✅ ✅ ✅ (R) ✅ INT64 ✅ ✅ ✅ ✅
(R) ✅ INT96 (1) ✅ ✅ ✅ ✅ (R) (R) FLOAT ✅ ✅ ✅ ✅ (R) ✅ DOUBLE ✅ ✅ ✅ ✅ (R) ✅
BYTE_ARRAY ✅ ✅ ✅ ✅ (R) ✅ FIXED_LEN_BYTE_ARRAY ✅ ✅ ✅ ✅ (R) ✅ (1) This type is
deprecated, but as of 2024 it’s common in currently produced parquet
files Logical types Data type C [...]
<a
href=https://github.com/apache/parquet-site/edit/production/content/en/docs/File%20Format/implementationstatus.md
class="td-page-meta--edit td-page-meta__edit" target=_blank rel=noopener><i
class="fa-solid fa-pen-to-square fa-fw"></i> Edit this page</a>
<a
href="https://github.com/apache/parquet-site/new/production/content/en/docs/File%20Format?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+section+at+th
[...]
<a
href="https://github.com/apache/parquet-site/issues/new?title=Implementation%20status"
class="td-page-meta--issue td-page-meta__issue" target=_blank rel=noopener><i
class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
<a id=print href=/docs/file-format/_print/><i class="fa-solid fa-print
fa-fw"></i> Print entire section</a></div><div class=td-toc><nav
id=TableOfContents><ul><li><ul><li><a href=#legend>Legend</a></li><li><a
href=#physical-types>Physical types</a></li><li><a href=#logical-types>Logical
types</a></li><li><a href=#encodings>Encodings</a></li><li><a
href=#compressions>Compressions</a></li><li><a
href=#other-format-level-features>Other format level features</a></li><li><a
href=#high-level-d [...]
-implementations.</p><p><em>Note</em>: This is a work in progress and we would
welcome help expanding its scope.</p><h3 id=legend>Legend</h3><p>The value in
each box means:</p><ul><li>✅: supported</li><li>❌: not supported</li><li>(R/W):
partial reader/writer only support</li><li>(blank) no
data</li></ul><p>Implementations:</p><ul><li><code>C++</code>: <a
href=https://github.com/apache/arrow/tree/main/cpp/src/parquet>parquet-cpp</a></li><li><code>Java</code>:
<a href=https://github.com/apa [...]
+implementations.</p><p><em>Note</em>: This is a work in progress and we would
welcome help expanding its scope.</p><h3 id=legend>Legend</h3><p>The value in
each box means:</p><ul><li>✅: supported</li><li>❌: not supported</li><li>(R/W):
partial reader/writer only support</li><li>(blank) no
data</li></ul><p>Implementations:</p><ul><li><code>C++</code>: <a
href=https://github.com/apache/arrow/tree/main/cpp/src/parquet>parquet-cpp</a></li><li><code>Java</code>:
<a href=https://github.com/apa [...]
2025
<span class=td-footer__authors>Apache Parquet</span></span><span
class=td-footer__all_rights_reserved>All Rights Reserved</span><span
class=ms-2><a href=https://policies.google.com/privacy target=_blank
rel=noopener>Privacy Policy</a></span></div></div></div></footer></div><script
src=/js/main.min.26b35480299b932e285af8358c943de97509b95a0086d091584e7cb9b00c5c7b.js
integrity="sha256-JrNUgCmbky4oWvg1jJQ96XUJuVoAhtCRWE58ubAMXHs="
crossorigin=anonymous></script><script defer src=/js/click-to [...]
\ No newline at end of file
diff --git a/output/docs/file-format/index.xml
b/output/docs/file-format/index.xml
index 7388db6..cffbe8c 100644
--- a/output/docs/file-format/index.xml
+++ b/output/docs/file-format/index.xml
@@ -462,6 +462,7 @@ implementations.</p>
<li><code>Rust</code>: <a
href="https://github.com/apache/arrow-rs/blob/main/parquet/README.md">parquet-rs</a></li>
<li><code>cuDF</code>: <a
href="https://github.com/rapidsai/cudf">cudf</a></li>
<li><code>JavaScript</code>: <a
href="https://github.com/hyparam/hyparquet">hyparquet</a></li>
+<li><code>DuckDB</code>: <a
href="https://github.com/duckdb/duckdb">duckdb</a></li>
</ul>
<h3 id="physical-types">Physical types</h3>
<table>
@@ -474,6 +475,7 @@ implementations.</p>
<th>Rust</th>
<th>cuDF</th>
<th>hyparquet</th>
+<th>DuckDB</th>
</tr>
</thead>
<tbody>
@@ -485,6 +487,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>INT32</td>
@@ -494,6 +497,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>INT64</td>
@@ -503,6 +507,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>INT96 (1)</td>
@@ -512,6 +517,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>(R)</td>
</tr>
<tr>
<td>FLOAT</td>
@@ -521,6 +527,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DOUBLE</td>
@@ -530,6 +537,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>BYTE_ARRAY</td>
@@ -539,6 +547,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>FIXED_LEN_BYTE_ARRAY</td>
@@ -548,6 +557,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
</tbody>
</table>
@@ -565,6 +575,7 @@ implementations.</p>
<th>Rust</th>
<th>cuDF</th>
<th>hyparquet</th>
+<th>DuckDB</th>
</tr>
</thead>
<tbody>
@@ -576,6 +587,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>ENUM</td>
@@ -585,6 +597,7 @@ implementations.</p>
<td>✅(1)</td>
<td>❌</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>UUID</td>
@@ -594,6 +607,7 @@ implementations.</p>
<td>✅(1)</td>
<td>❌</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>8, 16, 32, 64 bit signed and unsigned INT</td>
@@ -603,6 +617,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DECIMAL (INT32)</td>
@@ -612,6 +627,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DECIMAL (INT64)</td>
@@ -621,6 +637,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DECIMAL (BYTE_ARRAY)</td>
@@ -630,6 +647,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>(R)</td>
</tr>
<tr>
<td>DECIMAL (FIXED_LEN_BYTE_ARRAY)</td>
@@ -639,6 +657,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DATE</td>
@@ -648,6 +667,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>TIME (INT32)</td>
@@ -657,6 +677,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>TIME (INT64)</td>
@@ -666,6 +687,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>TIMESTAMP (INT64)</td>
@@ -675,6 +697,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>INTERVAL</td>
@@ -684,6 +707,7 @@ implementations.</p>
<td>✅</td>
<td>❌</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>JSON</td>
@@ -693,6 +717,7 @@ implementations.</p>
<td>✅(1)</td>
<td>❌</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>BSON</td>
@@ -702,6 +727,7 @@ implementations.</p>
<td>✅(1)</td>
<td>❌</td>
<td>(R)</td>
+<td>❌</td>
</tr>
<tr>
<td>LIST</td>
@@ -711,6 +737,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>MAP</td>
@@ -720,6 +747,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>UNKNOWN (always null)</td>
@@ -729,6 +757,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>FLOAT16</td>
@@ -738,6 +767,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
</tbody>
</table>
@@ -755,6 +785,7 @@ implementations.</p>
<th>Rust</th>
<th>cuDF</th>
<th>hyparquet</th>
+<th>DuckDB</th>
</tr>
</thead>
<tbody>
@@ -766,6 +797,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>PLAIN_DICTIONARY</td>
@@ -775,6 +807,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>(R)</td>
</tr>
<tr>
<td>RLE_DICTIONARY</td>
@@ -784,6 +817,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>RLE</td>
@@ -793,6 +827,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>BIT_PACKED (deprecated)</td>
@@ -802,6 +837,7 @@ implementations.</p>
<td>❌(1)</td>
<td>(R)</td>
<td>(R)</td>
+<td>❌</td>
</tr>
<tr>
<td>DELTA_BINARY_PACKED</td>
@@ -811,6 +847,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DELTA_LENGTH_BYTE_ARRAY</td>
@@ -820,6 +857,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DELTA_BYTE_ARRAY</td>
@@ -829,6 +867,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>BYTE_STREAM_SPLIT</td>
@@ -838,6 +877,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
</tbody>
</table>
@@ -855,6 +895,7 @@ implementations.</p>
<th>Rust</th>
<th>cuDF</th>
<th>hyparquet</th>
+<th>DuckDB</th>
</tr>
</thead>
<tbody>
@@ -866,6 +907,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>BROTLI</td>
@@ -875,6 +917,7 @@ implementations.</p>
<td>✅</td>
<td>(R)</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>GZIP</td>
@@ -884,6 +927,7 @@ implementations.</p>
<td>✅</td>
<td>(R)</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>LZ4 (deprecated)</td>
@@ -893,6 +937,7 @@ implementations.</p>
<td>✅</td>
<td>❌</td>
<td>(R)</td>
+<td>❌</td>
</tr>
<tr>
<td>LZ4_RAW</td>
@@ -902,6 +947,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>LZO</td>
@@ -911,6 +957,7 @@ implementations.</p>
<td>❌</td>
<td>❌</td>
<td>❌</td>
+<td>❌</td>
</tr>
<tr>
<td>SNAPPY</td>
@@ -920,6 +967,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>ZSTD</td>
@@ -929,6 +977,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
</tbody>
</table>
@@ -943,6 +992,7 @@ implementations.</p>
<th>Rust</th>
<th>cuDF</th>
<th>hyparquet</th>
+<th>DuckDB</th>
</tr>
</thead>
<tbody>
@@ -954,6 +1004,7 @@ implementations.</p>
<td>✅</td>
<td>(R)</td>
<td></td>
+<td>✅</td>
</tr>
<tr>
<td>Bloom filter length (1)</td>
@@ -963,6 +1014,7 @@ implementations.</p>
<td>✅</td>
<td>(R)</td>
<td></td>
+<td>✅</td>
</tr>
<tr>
<td>Statistics min_value, max_value</td>
@@ -972,6 +1024,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>Page index</td>
@@ -981,6 +1034,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>(R)</td>
</tr>
<tr>
<td>Page CRC32 checksum</td>
@@ -990,6 +1044,7 @@ implementations.</p>
<td>✅</td>
<td>❌</td>
<td>❌</td>
+<td>(R)</td>
</tr>
<tr>
<td>Modular encryption</td>
@@ -999,6 +1054,7 @@ implementations.</p>
<td>❌</td>
<td>❌</td>
<td>❌</td>
+<td>✅(*)</td>
</tr>
<tr>
<td>Size statistics (2)</td>
@@ -1008,6 +1064,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td></td>
+<td>(R)</td>
</tr>
</tbody>
</table>
@@ -1018,6 +1075,9 @@ implementations.</p>
<li>
<p>(2) In parquet.thrift: ColumnMetaData-&gt;size_statistics</p>
</li>
+<li>
+<p>(*) Partial support</p>
+</li>
</ul>
<h3 id="high-level-data-apis-for-parquet-feature-usage">High level data
APIs for Parquet feature usage</h3>
<table>
@@ -1030,6 +1090,7 @@ implementations.</p>
<th>Rust</th>
<th>cuDF</th>
<th>hyparquet</th>
+<th>DuckDB</th>
</tr>
</thead>
<tbody>
@@ -1041,6 +1102,7 @@ implementations.</p>
<td>❌</td>
<td>(W)</td>
<td>❌</td>
+<td>❌</td>
</tr>
<tr>
<td>Row group &ldquo;Sorting column&rdquo; metadata (2)</td>
@@ -1050,6 +1112,7 @@ implementations.</p>
<td>✅</td>
<td>(W)</td>
<td>❌</td>
+<td>(R)</td>
</tr>
<tr>
<td>Row group pruning using statistics</td>
@@ -1059,6 +1122,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>❌</td>
+<td>✅</td>
</tr>
<tr>
<td>Row group pruning using bloom filter</td>
@@ -1068,6 +1132,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>❌</td>
+<td>✅</td>
</tr>
<tr>
<td>Reading select columns only</td>
@@ -1077,6 +1142,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>✅</td>
+<td>✅</td>
</tr>
<tr>
<td>Page pruning using statistics</td>
@@ -1086,6 +1152,7 @@ implementations.</p>
<td>✅</td>
<td>❌</td>
<td>❌</td>
+<td>❌</td>
</tr>
</tbody>
</table>
diff --git a/output/docs/index.xml b/output/docs/index.xml
index f7ea99d..0fba539 100644
--- a/output/docs/index.xml
+++ b/output/docs/index.xml
@@ -1508,6 +1508,7 @@ implementations.</p>
<li><code>Rust</code>: <a
href="https://github.com/apache/arrow-rs/blob/main/parquet/README.md">parquet-rs</a></li>
<li><code>cuDF</code>: <a
href="https://github.com/rapidsai/cudf">cudf</a></li>
<li><code>JavaScript</code>: <a
href="https://github.com/hyparam/hyparquet">hyparquet</a></li>
+<li><code>DuckDB</code>: <a
href="https://github.com/duckdb/duckdb">duckdb</a></li>
</ul>
<h3 id="physical-types">Physical types</h3>
<table>
@@ -1520,6 +1521,7 @@ implementations.</p>
<th>Rust</th>
<th>cuDF</th>
<th>hyparquet</th>
+<th>DuckDB</th>
</tr>
</thead>
<tbody>
@@ -1531,6 +1533,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>INT32</td>
@@ -1540,6 +1543,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>INT64</td>
@@ -1549,6 +1553,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>INT96 (1)</td>
@@ -1558,6 +1563,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>(R)</td>
</tr>
<tr>
<td>FLOAT</td>
@@ -1567,6 +1573,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DOUBLE</td>
@@ -1576,6 +1583,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>BYTE_ARRAY</td>
@@ -1585,6 +1593,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>FIXED_LEN_BYTE_ARRAY</td>
@@ -1594,6 +1603,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
</tbody>
</table>
@@ -1611,6 +1621,7 @@ implementations.</p>
<th>Rust</th>
<th>cuDF</th>
<th>hyparquet</th>
+<th>DuckDB</th>
</tr>
</thead>
<tbody>
@@ -1622,6 +1633,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>ENUM</td>
@@ -1631,6 +1643,7 @@ implementations.</p>
<td>✅(1)</td>
<td>❌</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>UUID</td>
@@ -1640,6 +1653,7 @@ implementations.</p>
<td>✅(1)</td>
<td>❌</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>8, 16, 32, 64 bit signed and unsigned INT</td>
@@ -1649,6 +1663,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DECIMAL (INT32)</td>
@@ -1658,6 +1673,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DECIMAL (INT64)</td>
@@ -1667,6 +1683,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DECIMAL (BYTE_ARRAY)</td>
@@ -1676,6 +1693,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>(R)</td>
</tr>
<tr>
<td>DECIMAL (FIXED_LEN_BYTE_ARRAY)</td>
@@ -1685,6 +1703,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DATE</td>
@@ -1694,6 +1713,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>TIME (INT32)</td>
@@ -1703,6 +1723,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>TIME (INT64)</td>
@@ -1712,6 +1733,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>TIMESTAMP (INT64)</td>
@@ -1721,6 +1743,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>INTERVAL</td>
@@ -1730,6 +1753,7 @@ implementations.</p>
<td>✅</td>
<td>❌</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>JSON</td>
@@ -1739,6 +1763,7 @@ implementations.</p>
<td>✅(1)</td>
<td>❌</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>BSON</td>
@@ -1748,6 +1773,7 @@ implementations.</p>
<td>✅(1)</td>
<td>❌</td>
<td>(R)</td>
+<td>❌</td>
</tr>
<tr>
<td>LIST</td>
@@ -1757,6 +1783,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>MAP</td>
@@ -1766,6 +1793,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>UNKNOWN (always null)</td>
@@ -1775,6 +1803,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>FLOAT16</td>
@@ -1784,6 +1813,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
</tbody>
</table>
@@ -1801,6 +1831,7 @@ implementations.</p>
<th>Rust</th>
<th>cuDF</th>
<th>hyparquet</th>
+<th>DuckDB</th>
</tr>
</thead>
<tbody>
@@ -1812,6 +1843,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>PLAIN_DICTIONARY</td>
@@ -1821,6 +1853,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>(R)</td>
</tr>
<tr>
<td>RLE_DICTIONARY</td>
@@ -1830,6 +1863,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>RLE</td>
@@ -1839,6 +1873,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>BIT_PACKED (deprecated)</td>
@@ -1848,6 +1883,7 @@ implementations.</p>
<td>❌(1)</td>
<td>(R)</td>
<td>(R)</td>
+<td>❌</td>
</tr>
<tr>
<td>DELTA_BINARY_PACKED</td>
@@ -1857,6 +1893,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DELTA_LENGTH_BYTE_ARRAY</td>
@@ -1866,6 +1903,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>DELTA_BYTE_ARRAY</td>
@@ -1875,6 +1913,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>BYTE_STREAM_SPLIT</td>
@@ -1884,6 +1923,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
</tbody>
</table>
@@ -1901,6 +1941,7 @@ implementations.</p>
<th>Rust</th>
<th>cuDF</th>
<th>hyparquet</th>
+<th>DuckDB</th>
</tr>
</thead>
<tbody>
@@ -1912,6 +1953,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>BROTLI</td>
@@ -1921,6 +1963,7 @@ implementations.</p>
<td>✅</td>
<td>(R)</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>GZIP</td>
@@ -1930,6 +1973,7 @@ implementations.</p>
<td>✅</td>
<td>(R)</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>LZ4 (deprecated)</td>
@@ -1939,6 +1983,7 @@ implementations.</p>
<td>✅</td>
<td>❌</td>
<td>(R)</td>
+<td>❌</td>
</tr>
<tr>
<td>LZ4_RAW</td>
@@ -1948,6 +1993,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>LZO</td>
@@ -1957,6 +2003,7 @@ implementations.</p>
<td>❌</td>
<td>❌</td>
<td>❌</td>
+<td>❌</td>
</tr>
<tr>
<td>SNAPPY</td>
@@ -1966,6 +2013,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>ZSTD</td>
@@ -1975,6 +2023,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
</tbody>
</table>
@@ -1989,6 +2038,7 @@ implementations.</p>
<th>Rust</th>
<th>cuDF</th>
<th>hyparquet</th>
+<th>DuckDB</th>
</tr>
</thead>
<tbody>
@@ -2000,6 +2050,7 @@ implementations.</p>
<td>✅</td>
<td>(R)</td>
<td></td>
+<td>✅</td>
</tr>
<tr>
<td>Bloom filter length (1)</td>
@@ -2009,6 +2060,7 @@ implementations.</p>
<td>✅</td>
<td>(R)</td>
<td></td>
+<td>✅</td>
</tr>
<tr>
<td>Statistics min_value, max_value</td>
@@ -2018,6 +2070,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>✅</td>
</tr>
<tr>
<td>Page index</td>
@@ -2027,6 +2080,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>(R)</td>
+<td>(R)</td>
</tr>
<tr>
<td>Page CRC32 checksum</td>
@@ -2036,6 +2090,7 @@ implementations.</p>
<td>✅</td>
<td>❌</td>
<td>❌</td>
+<td>(R)</td>
</tr>
<tr>
<td>Modular encryption</td>
@@ -2045,6 +2100,7 @@ implementations.</p>
<td>❌</td>
<td>❌</td>
<td>❌</td>
+<td>✅(*)</td>
</tr>
<tr>
<td>Size statistics (2)</td>
@@ -2054,6 +2110,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td></td>
+<td>(R)</td>
</tr>
</tbody>
</table>
@@ -2064,6 +2121,9 @@ implementations.</p>
<li>
<p>(2) In parquet.thrift: ColumnMetaData-&gt;size_statistics</p>
</li>
+<li>
+<p>(*) Partial support</p>
+</li>
</ul>
<h3 id="high-level-data-apis-for-parquet-feature-usage">High level data
APIs for Parquet feature usage</h3>
<table>
@@ -2076,6 +2136,7 @@ implementations.</p>
<th>Rust</th>
<th>cuDF</th>
<th>hyparquet</th>
+<th>DuckDB</th>
</tr>
</thead>
<tbody>
@@ -2087,6 +2148,7 @@ implementations.</p>
<td>❌</td>
<td>(W)</td>
<td>❌</td>
+<td>❌</td>
</tr>
<tr>
<td>Row group &ldquo;Sorting column&rdquo; metadata (2)</td>
@@ -2096,6 +2158,7 @@ implementations.</p>
<td>✅</td>
<td>(W)</td>
<td>❌</td>
+<td>(R)</td>
</tr>
<tr>
<td>Row group pruning using statistics</td>
@@ -2105,6 +2168,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>❌</td>
+<td>✅</td>
</tr>
<tr>
<td>Row group pruning using bloom filter</td>
@@ -2114,6 +2178,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>❌</td>
+<td>✅</td>
</tr>
<tr>
<td>Reading select columns only</td>
@@ -2123,6 +2188,7 @@ implementations.</p>
<td>✅</td>
<td>✅</td>
<td>✅</td>
+<td>✅</td>
</tr>
<tr>
<td>Page pruning using statistics</td>
@@ -2132,6 +2198,7 @@ implementations.</p>
<td>✅</td>
<td>❌</td>
<td>❌</td>
+<td>❌</td>
</tr>
</tbody>
</table>
diff --git a/output/sitemap.xml b/output/sitemap.xml
index d0cfdd1..4c2d2b9 100644
--- a/output/sitemap.xml
+++ b/output/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/docs/file-format/data-pages/compression/</loc><lastmod>2024-03-11T22:11:10+01:00</lastmod></url><url><loc>/docs/file-format/data-pages/encodings/</loc><lastmod>2024-03-11T22:11:10+01:00</lastmod></url><url><loc>/docs/file-format/data-pages/encryption/</loc><lastmod>2024-03-11T22:11:10+01:00</lastmod></url><url><loc>/docs/
[...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/docs/file-format/data-pages/compression/</loc><lastmod>2024-03-11T22:11:10+01:00</lastmod></url><url><loc>/docs/file-format/data-pages/encodings/</loc><lastmod>2024-03-11T22:11:10+01:00</lastmod></url><url><loc>/docs/file-format/data-pages/encryption/</loc><lastmod>2024-03-11T22:11:10+01:00</lastmod></url><url><loc>/docs/
[...]
\ No newline at end of file