This is an automated email from the ASF dual-hosted git repository.

alamb pushed a commit to branch production
in repository https://gitbox.apache.org/repos/asf/parquet-site.git


The following commit(s) were added to refs/heads/production by this push:
     new 3038e50b feat: Add haskell dataframe support (#204)
3038e50b is described below

commit 3038e50b5b1549b06c1d7aa847ec04784b7fbb8d
Author: Michael Chavinda <[email protected]>
AuthorDate: Tue Sep 22 03:31:43 2026 -0700

    feat: Add haskell dataframe support (#204)
    
    * feat: Add haskell dataframe support
    
    * Add entries for logical-file and encoding-alp
    
    * Rename Haskell entry to DataHaskell
    
    `dataframe` is very broad.
    
    * fix: Also update engines  with new DataHaskell name
    
    ---------
    
    Co-authored-by: Andrew Lamb <[email protected]>
---
 .../en/docs/File Format/implementationstatus.md    |   1 +
 data/implementations/engines.yaml                  |  19 +++
 data/implementations/support/dataframe.yaml        | 141 +++++++++++++++++++++
 3 files changed, 161 insertions(+)

diff --git a/content/en/docs/File Format/implementationstatus.md 
b/content/en/docs/File Format/implementationstatus.md
index 96cffb89..09f24fe9 100644
--- a/content/en/docs/File Format/implementationstatus.md       
+++ b/content/en/docs/File Format/implementationstatus.md       
@@ -27,6 +27,7 @@ The value in each box means:
 * [hyparquet](https://github.com/hyparam/hyparquet) (JavaScript)
 * [duckdb](https://github.com/duckdb/duckdb) (C++)
 * [polars](https://github.com/pola-rs/polars) (Rust)
+* [DataHaskell](https://github.com/DataHaskell/dataframe) (Haskell)
 
 <!-- Data driven table, see /layouts/shortcodes -->
 {{< implementation-status >}}
diff --git a/data/implementations/engines.yaml 
b/data/implementations/engines.yaml
index c1db67ac..636e23d9 100644
--- a/data/implementations/engines.yaml
+++ b/data/implementations/engines.yaml
@@ -185,3 +185,22 @@
       "1.37.0":
         release_date: "2026-01-10"
         release_notes_url: 
"https://github.com/pola-rs/polars/releases/tag/py-1.37.0";
+
+- id: dataframe
+  name: DataHaskell
+  display_name: DataHaskell
+  language: Haskell
+  repo_url: https://github.com/DataHaskell/dataframe
+  docs_url: https://hackage.haskell.org/package/dataframe-parquet
+  versions:
+    default: "3.6.0.0"
+    releases:
+      "3.4.0.0":
+        release_date: "2026-08-12"
+        release_notes_url: 
"https://hackage.haskell.org/package/dataframe-3.4.0.0/changelog";
+      "3.5.0.0":
+        release_date: "2026-08-14"
+        release_notes_url: 
"https://hackage.haskell.org/package/dataframe-3.5.0.0/changelog";
+      "3.6.0.0":
+        release_date: "2026-08-29"
+        release_notes_url: 
"https://hackage.haskell.org/package/dataframe-3.6.0.0/changelog";
diff --git a/data/implementations/support/dataframe.yaml 
b/data/implementations/support/dataframe.yaml
new file mode 100644
index 00000000..fd09d6c1
--- /dev/null
+++ b/data/implementations/support/dataframe.yaml
@@ -0,0 +1,141 @@
+engine_id: dataframe
+last_updated: "2026-09-09"
+support:
+  physical-boolean:
+    status: full
+  physical-int32:
+    status: full
+  physical-int64:
+    status: full
+  physical-int96:
+    status: read
+  physical-float:
+    status: full
+  physical-double:
+    status: full
+  physical-byte-array:
+    status: full
+  physical-fixed-len-byte-array:
+    status: read
+  logical-string:
+    status: full
+  logical-enum:
+    status: read
+    note: Read back as a plain string; the ENUM annotation is not surfaced.
+  logical-uuid:
+    status: none
+  logical-int-types:
+    status: read
+    note: Signed integers only; unsigned annotations are read as signed values 
of the same width.
+  logical-decimal-int32:
+    status: read
+    note: Decimals are converted to Double on read, so precision above 15 
digits is lost.
+  logical-decimal-int64:
+    status: read
+    note: Decimals are converted to Double on read, so precision above 15 
digits is lost.
+  logical-decimal-byte-array:
+    status: none
+  logical-decimal-fixed-len-byte-array:
+    status: none
+  logical-float16:
+    status: none
+  logical-date:
+    status: read
+    note: Surfaced as the raw INT32/INT64 value; the DATE/TIME annotation is 
not applied.
+  logical-time-int32:
+    status: read
+    note: Surfaced as the raw INT32/INT64 value; the DATE/TIME annotation is 
not applied.
+  logical-time-int64:
+    status: read
+    note: Surfaced as the raw INT32/INT64 value; the DATE/TIME annotation is 
not applied.
+  logical-timestamp-int64:
+    status: full
+    note: Milliseconds, microseconds and nanoseconds are read; the writer 
always emits microseconds.
+  logical-interval:
+    status: none
+  logical-json:
+    status: read
+    note: Read back as a plain string; the JSON annotation is not surfaced.
+  logical-bson:
+    status: none
+  logical-variant:
+    status: none
+  logical-geometry:
+    status: none
+  logical-geography:
+    status: none
+  logical-file:
+    status: none
+  logical-list:
+    status: read
+  logical-map:
+    status: none
+  logical-unknown:
+    status: none
+  encoding-plain:
+    status: full
+  encoding-plain-dictionary:
+    status: read
+  encoding-rle-dictionary:
+    status: read
+  encoding-rle:
+    status: full
+    note: Used for repetition and definition levels.
+  encoding-bit-packed:
+    status: none
+  encoding-delta-binary-packed:
+    status: none
+  encoding-delta-length-byte-array:
+    status: none
+  encoding-delta-byte-array:
+    status: none
+  encoding-byte-stream-split:
+    status: none
+  encoding-alp:
+    status: none
+  encoding-byte-stream-split-extended:
+    status: none
+  compression-uncompressed:
+    status: full
+  compression-brotli:
+    status: none
+  compression-gzip:
+    status: read
+  compression-lz4-deprecated:
+    status: none
+  compression-lz4-raw:
+    status: none
+  compression-lzo:
+    status: none
+  compression-snappy:
+    status: full
+  compression-zstd:
+    status: read
+  format-bloom-filters:
+    status: none
+  format-bloom-filter-length:
+    status: none
+  format-stats-min-max:
+    status: none
+  format-page-index:
+    status: none
+  format-page-crc32:
+    status: none
+  format-modular-encryption:
+    status: none
+  format-size-statistics:
+    status: none
+  format-data-page-v2:
+    status: read
+  api-parquet-summary-file:
+    status: none
+  api-sorting-columns:
+    status: none
+  api-rowgroup-pruning-stats:
+    status: none
+  api-rowgroup-pruning-bloom:
+    status: none
+  api-column-projection:
+    status: full
+  api-page-pruning-stats:
+    status: none

Reply via email to