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&amp;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&amp;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&rsquo;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&rsquo;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&rsquo;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&rsquo;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&rsquo;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&rsquo;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&amp;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.&lt;/p>
 &lt;li>&lt;code>Rust&lt;/code>: &lt;a 
href="https://github.com/apache/arrow-rs/blob/main/parquet/README.md";>parquet-rs&lt;/a>&lt;/li>
 &lt;li>&lt;code>cuDF&lt;/code>: &lt;a 
href="https://github.com/rapidsai/cudf";>cudf&lt;/a>&lt;/li>
 &lt;li>&lt;code>JavaScript&lt;/code>: &lt;a 
href="https://github.com/hyparam/hyparquet";>hyparquet&lt;/a>&lt;/li>
+&lt;li>&lt;code>DuckDB&lt;/code>: &lt;a 
href="https://github.com/duckdb/duckdb";>duckdb&lt;/a>&lt;/li>
 &lt;/ul>
 &lt;h3 id="physical-types">Physical types&lt;/h3>
 &lt;table>
@@ -474,6 +475,7 @@ implementations.&lt;/p>
 &lt;th>Rust&lt;/th>
 &lt;th>cuDF&lt;/th>
 &lt;th>hyparquet&lt;/th>
+&lt;th>DuckDB&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
@@ -485,6 +487,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>INT32&lt;/td>
@@ -494,6 +497,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>INT64&lt;/td>
@@ -503,6 +507,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>INT96 (1)&lt;/td>
@@ -512,6 +517,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>FLOAT&lt;/td>
@@ -521,6 +527,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DOUBLE&lt;/td>
@@ -530,6 +537,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>BYTE_ARRAY&lt;/td>
@@ -539,6 +547,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>FIXED_LEN_BYTE_ARRAY&lt;/td>
@@ -548,6 +557,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
@@ -565,6 +575,7 @@ implementations.&lt;/p>
 &lt;th>Rust&lt;/th>
 &lt;th>cuDF&lt;/th>
 &lt;th>hyparquet&lt;/th>
+&lt;th>DuckDB&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
@@ -576,6 +587,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>ENUM&lt;/td>
@@ -585,6 +597,7 @@ implementations.&lt;/p>
 &lt;td>✅(1)&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>UUID&lt;/td>
@@ -594,6 +607,7 @@ implementations.&lt;/p>
 &lt;td>✅(1)&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>8, 16, 32, 64 bit signed and unsigned INT&lt;/td>
@@ -603,6 +617,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DECIMAL (INT32)&lt;/td>
@@ -612,6 +627,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DECIMAL (INT64)&lt;/td>
@@ -621,6 +637,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DECIMAL (BYTE_ARRAY)&lt;/td>
@@ -630,6 +647,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DECIMAL (FIXED_LEN_BYTE_ARRAY)&lt;/td>
@@ -639,6 +657,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DATE&lt;/td>
@@ -648,6 +667,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>TIME (INT32)&lt;/td>
@@ -657,6 +677,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>TIME (INT64)&lt;/td>
@@ -666,6 +687,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>TIMESTAMP (INT64)&lt;/td>
@@ -675,6 +697,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>INTERVAL&lt;/td>
@@ -684,6 +707,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>JSON&lt;/td>
@@ -693,6 +717,7 @@ implementations.&lt;/p>
 &lt;td>✅(1)&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>BSON&lt;/td>
@@ -702,6 +727,7 @@ implementations.&lt;/p>
 &lt;td>✅(1)&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>❌&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>LIST&lt;/td>
@@ -711,6 +737,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>MAP&lt;/td>
@@ -720,6 +747,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>UNKNOWN (always null)&lt;/td>
@@ -729,6 +757,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>FLOAT16&lt;/td>
@@ -738,6 +767,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
@@ -755,6 +785,7 @@ implementations.&lt;/p>
 &lt;th>Rust&lt;/th>
 &lt;th>cuDF&lt;/th>
 &lt;th>hyparquet&lt;/th>
+&lt;th>DuckDB&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
@@ -766,6 +797,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>PLAIN_DICTIONARY&lt;/td>
@@ -775,6 +807,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>RLE_DICTIONARY&lt;/td>
@@ -784,6 +817,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>RLE&lt;/td>
@@ -793,6 +827,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>BIT_PACKED (deprecated)&lt;/td>
@@ -802,6 +837,7 @@ implementations.&lt;/p>
 &lt;td>❌(1)&lt;/td>
 &lt;td>(R)&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>❌&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DELTA_BINARY_PACKED&lt;/td>
@@ -811,6 +847,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DELTA_LENGTH_BYTE_ARRAY&lt;/td>
@@ -820,6 +857,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DELTA_BYTE_ARRAY&lt;/td>
@@ -829,6 +867,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>BYTE_STREAM_SPLIT&lt;/td>
@@ -838,6 +877,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
@@ -855,6 +895,7 @@ implementations.&lt;/p>
 &lt;th>Rust&lt;/th>
 &lt;th>cuDF&lt;/th>
 &lt;th>hyparquet&lt;/th>
+&lt;th>DuckDB&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
@@ -866,6 +907,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>BROTLI&lt;/td>
@@ -875,6 +917,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>GZIP&lt;/td>
@@ -884,6 +927,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>LZ4 (deprecated)&lt;/td>
@@ -893,6 +937,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>❌&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>LZ4_RAW&lt;/td>
@@ -902,6 +947,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>LZO&lt;/td>
@@ -911,6 +957,7 @@ implementations.&lt;/p>
 &lt;td>❌&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>❌&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>SNAPPY&lt;/td>
@@ -920,6 +967,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>ZSTD&lt;/td>
@@ -929,6 +977,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
@@ -943,6 +992,7 @@ implementations.&lt;/p>
 &lt;th>Rust&lt;/th>
 &lt;th>cuDF&lt;/th>
 &lt;th>hyparquet&lt;/th>
+&lt;th>DuckDB&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
@@ -954,6 +1004,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
 &lt;td>&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Bloom filter length (1)&lt;/td>
@@ -963,6 +1014,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
 &lt;td>&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Statistics min_value, max_value&lt;/td>
@@ -972,6 +1024,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Page index&lt;/td>
@@ -981,6 +1034,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Page CRC32 checksum&lt;/td>
@@ -990,6 +1044,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Modular encryption&lt;/td>
@@ -999,6 +1054,7 @@ implementations.&lt;/p>
 &lt;td>❌&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>✅(*)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Size statistics (2)&lt;/td>
@@ -1008,6 +1064,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
@@ -1018,6 +1075,9 @@ implementations.&lt;/p>
 &lt;li>
 &lt;p>(2) In parquet.thrift: ColumnMetaData-&amp;gt;size_statistics&lt;/p>
 &lt;/li>
+&lt;li>
+&lt;p>(*) Partial support&lt;/p>
+&lt;/li>
 &lt;/ul>
 &lt;h3 id="high-level-data-apis-for-parquet-feature-usage">High level data 
APIs for Parquet feature usage&lt;/h3>
 &lt;table>
@@ -1030,6 +1090,7 @@ implementations.&lt;/p>
 &lt;th>Rust&lt;/th>
 &lt;th>cuDF&lt;/th>
 &lt;th>hyparquet&lt;/th>
+&lt;th>DuckDB&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
@@ -1041,6 +1102,7 @@ implementations.&lt;/p>
 &lt;td>❌&lt;/td>
 &lt;td>(W)&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>❌&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Row group &amp;ldquo;Sorting column&amp;rdquo; metadata (2)&lt;/td>
@@ -1050,6 +1112,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>(W)&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Row group pruning using statistics&lt;/td>
@@ -1059,6 +1122,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Row group pruning using bloom filter&lt;/td>
@@ -1068,6 +1132,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Reading select columns only&lt;/td>
@@ -1077,6 +1142,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Page pruning using statistics&lt;/td>
@@ -1086,6 +1152,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>❌&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/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.&lt;/p>
 &lt;li>&lt;code>Rust&lt;/code>: &lt;a 
href="https://github.com/apache/arrow-rs/blob/main/parquet/README.md";>parquet-rs&lt;/a>&lt;/li>
 &lt;li>&lt;code>cuDF&lt;/code>: &lt;a 
href="https://github.com/rapidsai/cudf";>cudf&lt;/a>&lt;/li>
 &lt;li>&lt;code>JavaScript&lt;/code>: &lt;a 
href="https://github.com/hyparam/hyparquet";>hyparquet&lt;/a>&lt;/li>
+&lt;li>&lt;code>DuckDB&lt;/code>: &lt;a 
href="https://github.com/duckdb/duckdb";>duckdb&lt;/a>&lt;/li>
 &lt;/ul>
 &lt;h3 id="physical-types">Physical types&lt;/h3>
 &lt;table>
@@ -1520,6 +1521,7 @@ implementations.&lt;/p>
 &lt;th>Rust&lt;/th>
 &lt;th>cuDF&lt;/th>
 &lt;th>hyparquet&lt;/th>
+&lt;th>DuckDB&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
@@ -1531,6 +1533,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>INT32&lt;/td>
@@ -1540,6 +1543,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>INT64&lt;/td>
@@ -1549,6 +1553,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>INT96 (1)&lt;/td>
@@ -1558,6 +1563,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>FLOAT&lt;/td>
@@ -1567,6 +1573,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DOUBLE&lt;/td>
@@ -1576,6 +1583,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>BYTE_ARRAY&lt;/td>
@@ -1585,6 +1593,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>FIXED_LEN_BYTE_ARRAY&lt;/td>
@@ -1594,6 +1603,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
@@ -1611,6 +1621,7 @@ implementations.&lt;/p>
 &lt;th>Rust&lt;/th>
 &lt;th>cuDF&lt;/th>
 &lt;th>hyparquet&lt;/th>
+&lt;th>DuckDB&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
@@ -1622,6 +1633,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>ENUM&lt;/td>
@@ -1631,6 +1643,7 @@ implementations.&lt;/p>
 &lt;td>✅(1)&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>UUID&lt;/td>
@@ -1640,6 +1653,7 @@ implementations.&lt;/p>
 &lt;td>✅(1)&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>8, 16, 32, 64 bit signed and unsigned INT&lt;/td>
@@ -1649,6 +1663,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DECIMAL (INT32)&lt;/td>
@@ -1658,6 +1673,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DECIMAL (INT64)&lt;/td>
@@ -1667,6 +1683,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DECIMAL (BYTE_ARRAY)&lt;/td>
@@ -1676,6 +1693,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DECIMAL (FIXED_LEN_BYTE_ARRAY)&lt;/td>
@@ -1685,6 +1703,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DATE&lt;/td>
@@ -1694,6 +1713,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>TIME (INT32)&lt;/td>
@@ -1703,6 +1723,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>TIME (INT64)&lt;/td>
@@ -1712,6 +1733,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>TIMESTAMP (INT64)&lt;/td>
@@ -1721,6 +1743,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>INTERVAL&lt;/td>
@@ -1730,6 +1753,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>JSON&lt;/td>
@@ -1739,6 +1763,7 @@ implementations.&lt;/p>
 &lt;td>✅(1)&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>BSON&lt;/td>
@@ -1748,6 +1773,7 @@ implementations.&lt;/p>
 &lt;td>✅(1)&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>❌&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>LIST&lt;/td>
@@ -1757,6 +1783,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>MAP&lt;/td>
@@ -1766,6 +1793,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>UNKNOWN (always null)&lt;/td>
@@ -1775,6 +1803,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>FLOAT16&lt;/td>
@@ -1784,6 +1813,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
@@ -1801,6 +1831,7 @@ implementations.&lt;/p>
 &lt;th>Rust&lt;/th>
 &lt;th>cuDF&lt;/th>
 &lt;th>hyparquet&lt;/th>
+&lt;th>DuckDB&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
@@ -1812,6 +1843,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>PLAIN_DICTIONARY&lt;/td>
@@ -1821,6 +1853,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>RLE_DICTIONARY&lt;/td>
@@ -1830,6 +1863,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>RLE&lt;/td>
@@ -1839,6 +1873,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>BIT_PACKED (deprecated)&lt;/td>
@@ -1848,6 +1883,7 @@ implementations.&lt;/p>
 &lt;td>❌(1)&lt;/td>
 &lt;td>(R)&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>❌&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DELTA_BINARY_PACKED&lt;/td>
@@ -1857,6 +1893,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DELTA_LENGTH_BYTE_ARRAY&lt;/td>
@@ -1866,6 +1903,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>DELTA_BYTE_ARRAY&lt;/td>
@@ -1875,6 +1913,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>BYTE_STREAM_SPLIT&lt;/td>
@@ -1884,6 +1923,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
@@ -1901,6 +1941,7 @@ implementations.&lt;/p>
 &lt;th>Rust&lt;/th>
 &lt;th>cuDF&lt;/th>
 &lt;th>hyparquet&lt;/th>
+&lt;th>DuckDB&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
@@ -1912,6 +1953,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>BROTLI&lt;/td>
@@ -1921,6 +1963,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>GZIP&lt;/td>
@@ -1930,6 +1973,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>LZ4 (deprecated)&lt;/td>
@@ -1939,6 +1983,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>❌&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>LZ4_RAW&lt;/td>
@@ -1948,6 +1993,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>LZO&lt;/td>
@@ -1957,6 +2003,7 @@ implementations.&lt;/p>
 &lt;td>❌&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>❌&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>SNAPPY&lt;/td>
@@ -1966,6 +2013,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>ZSTD&lt;/td>
@@ -1975,6 +2023,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
@@ -1989,6 +2038,7 @@ implementations.&lt;/p>
 &lt;th>Rust&lt;/th>
 &lt;th>cuDF&lt;/th>
 &lt;th>hyparquet&lt;/th>
+&lt;th>DuckDB&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
@@ -2000,6 +2050,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
 &lt;td>&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Bloom filter length (1)&lt;/td>
@@ -2009,6 +2060,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
 &lt;td>&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Statistics min_value, max_value&lt;/td>
@@ -2018,6 +2070,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Page index&lt;/td>
@@ -2027,6 +2080,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>(R)&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Page CRC32 checksum&lt;/td>
@@ -2036,6 +2090,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Modular encryption&lt;/td>
@@ -2045,6 +2100,7 @@ implementations.&lt;/p>
 &lt;td>❌&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>✅(*)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Size statistics (2)&lt;/td>
@@ -2054,6 +2110,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
@@ -2064,6 +2121,9 @@ implementations.&lt;/p>
 &lt;li>
 &lt;p>(2) In parquet.thrift: ColumnMetaData-&amp;gt;size_statistics&lt;/p>
 &lt;/li>
+&lt;li>
+&lt;p>(*) Partial support&lt;/p>
+&lt;/li>
 &lt;/ul>
 &lt;h3 id="high-level-data-apis-for-parquet-feature-usage">High level data 
APIs for Parquet feature usage&lt;/h3>
 &lt;table>
@@ -2076,6 +2136,7 @@ implementations.&lt;/p>
 &lt;th>Rust&lt;/th>
 &lt;th>cuDF&lt;/th>
 &lt;th>hyparquet&lt;/th>
+&lt;th>DuckDB&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
@@ -2087,6 +2148,7 @@ implementations.&lt;/p>
 &lt;td>❌&lt;/td>
 &lt;td>(W)&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>❌&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Row group &amp;ldquo;Sorting column&amp;rdquo; metadata (2)&lt;/td>
@@ -2096,6 +2158,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>(W)&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>(R)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Row group pruning using statistics&lt;/td>
@@ -2105,6 +2168,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Row group pruning using bloom filter&lt;/td>
@@ -2114,6 +2178,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Reading select columns only&lt;/td>
@@ -2123,6 +2188,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
 &lt;td>✅&lt;/td>
+&lt;td>✅&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Page pruning using statistics&lt;/td>
@@ -2132,6 +2198,7 @@ implementations.&lt;/p>
 &lt;td>✅&lt;/td>
 &lt;td>❌&lt;/td>
 &lt;td>❌&lt;/td>
+&lt;td>❌&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/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


Reply via email to