changelog shortlog graph tags branches files raw help

Mercurial > core / changeset: parquet tweaks, import ox-man

changeset 637: b88bf15f60d0
parent 636: 8a5921bf004e
child 638: 6c0e4a44c082
author: Richard Westhaver <ellis@rwest.io>
date: Wed, 04 Sep 2024 22:02:21 -0400
files: emacs/lib/publish.el lisp/lib/dat/parquet/gen.lisp lisp/lib/dat/parquet/thrift.lisp lisp/lib/dat/pkg.lisp readme.org
description: parquet tweaks, import ox-man
     1.1--- a/emacs/lib/publish.el	Tue Sep 03 17:07:31 2024 -0400
     1.2+++ b/emacs/lib/publish.el	Wed Sep 04 22:02:21 2024 -0400
     1.3@@ -6,6 +6,7 @@
     1.4 (require 'ox-publish)
     1.5 (require 'org-id)
     1.6 (require 'dash)
     1.7+(require 'ox-man)
     1.8 ;; vendored
     1.9 (require 'htmlize)
    1.10 (defvar project-dir "~/comp/org")
     2.1--- a/lisp/lib/dat/parquet/gen.lisp	Tue Sep 03 17:07:31 2024 -0400
     2.2+++ b/lisp/lib/dat/parquet/gen.lisp	Wed Sep 04 22:02:21 2024 -0400
     2.3@@ -21,11 +21,24 @@
     2.4 (defun %parquet-json-enums ()
     2.5   (json-getf *parquet-json* "enums"))
     2.6 
     2.7-(defun parquet-json-enum-getf (name)
     2.8+(defun dat/parquet::parquet-json-enum-getf (name)
     2.9   (json-getf
    2.10    (find-if (lambda (x) (equal name (json-getf x "name"))) (%parquet-json-enums))
    2.11    "members"))
    2.12 
    2.13+(defun dat/parquet::snakecase-name-to-lisp-name (string)
    2.14+  (string-upcase
    2.15+   (substitute #\- #\_ string)))
    2.16+
    2.17+(defun dat/parquet::camelcase-name-to-lisp-name (string)
    2.18+  (string-upcase
    2.19+   (with-output-to-string (name)
    2.20+     (loop for i from 0 below (length string)
    2.21+           for c across string
    2.22+           when (and (upper-case-p c) (not (zerop i)))
    2.23+           do (write-char #\- name)
    2.24+           do (write-char c name)))))
    2.25+
    2.26 (defvar *parquet-enums* nil)
    2.27 
    2.28 (defmacro define-parquet-enum (sym name)
    2.29@@ -33,24 +46,10 @@
    2.30      (defun ,(symbolicate "PARQUET-JSON-" sym) ()
    2.31        (mapcar (lambda (x) (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
    2.32                (parquet-json-enum-getf ,name)))
    2.33-     (defparameter ,(intern
    2.34-                     (concatenate 'string "*PARQUET-" (symbol-name sym) "*")
    2.35-                     :dat/parquet)
    2.36+     (defparameter ,(symbolicate
    2.37+                     (concatenate 'string "*PARQUET-" (symbol-name sym) "*"))
    2.38        (,(symbolicate "PARQUET-JSON-" sym)))))
    2.39 
    2.40-(defun camelcase-name-to-lisp-name (string)
    2.41-  (string-upcase
    2.42-   (with-output-to-string (name)
    2.43-     (loop for i from 0 below (length string)
    2.44-           for c across string
    2.45-           when (and (upper-case-p c) (not (zerop i)))
    2.46-           do (write-char #\- name)
    2.47-           do (write-char c name)))))
    2.48-
    2.49-(defun snakecase-name-to-lisp-name (string)
    2.50-  (string-upcase
    2.51-   (substitute #\- #\_ string)))
    2.52-
    2.53 (labels ((parse-type-id (type-id)
    2.54            (when type-id
    2.55              (string-case (type-id :default nil)
    2.56@@ -69,13 +68,12 @@
    2.57                ("struct" 'struct))))
    2.58          (%intern (name)
    2.59            (if (stringp name)
    2.60-               (intern
    2.61+               (symbolicate
    2.62                 (cond 
    2.63                   ((equal name "UUIDType") "PARQUET-UUID-TYPE")
    2.64                   (t (concatenate 'string
    2.65                                   "PARQUET-"
    2.66-                                  (camelcase-name-to-lisp-name name))))
    2.67-                :dat/parquet)
    2.68+                                  (camelcase-name-to-lisp-name name)))))
    2.69                name))
    2.70          (parse-type (o)
    2.71            (when o
    2.72@@ -139,7 +137,7 @@
    2.73   (defun init-parquet-json (&optional (file *parquet-json-file*))
    2.74     (with-open-file (file file)
    2.75       (setq *parquet-json* (json-read file)))
    2.76-    (setq *parquet-enums* (parquet-json-enums))
    2.77+    (setq *parquet-enums* (%parquet-json-enums))
    2.78     (setq *parquet-structs* (parquet-json-structs))))
    2.79 
    2.80 ;;; CLOS
    2.81@@ -163,19 +161,18 @@
    2.82           collect (let* ((name (parquet-struct-name struct))
    2.83                          (doc (parquet-struct-doc struct))
    2.84                          (fields (parquet-struct-fields struct))
    2.85-                         (class-name (intern (cond
    2.86+                         (class-name (symbolicate (cond
    2.87                                                ((equal name "UUIDType") "PARQUET-UUID-TYPE")
    2.88                                                (t (concatenate 'string
    2.89                                                                "PARQUET-"
    2.90-                                                               (camelcase-name-to-lisp-name name))))
    2.91-                                             :dat/parquet)))
    2.92+                                                               (camelcase-name-to-lisp-name name)))))))
    2.93                     `(progn
    2.94                        (defclass ,class-name (dat/parquet::parquet-object)
    2.95                                  (,@(mapcar (lambda (f)
    2.96                                               (let ((fdoc (parquet-struct-field-doc f))
    2.97                                                     (fname (snakecase-name-to-lisp-name
    2.98                                                             (parquet-struct-field-name f))))
    2.99-                                                `(,(intern fname :dat/parquet)
   2.100+                                                `(,(symbolicate fname)
   2.101                                                   ,@(when fdoc `(:documentation ,fdoc))
   2.102                                                   :initarg ,(keywordicate fname)
   2.103                                                   ;; TODO 2024-07-12: 
   2.104@@ -188,7 +185,7 @@
   2.105 
   2.106 (defmacro define-parquet-type (name opts &body body)
   2.107   "Define a parquet type with DEFTYPE which maps to LISP-TYPE."
   2.108-  `(deftype ,(intern (concatenate 'string "PARQUET-" (substitute #\- #\_ name)) :dat/parquet) ,opts ,@body))
   2.109+  `(deftype ,(symbolicate "PARQUET-" (substitute #\- #\_ name)) ,opts ,@body))
   2.110 
   2.111 (defun parse-parquet-thrift-definitions (&key (input *parquet-json-file*)
   2.112                                            (output #.(asdf:system-relative-pathname :dat "parquet/thrift.lisp")))
     3.1--- a/lisp/lib/dat/parquet/thrift.lisp	Tue Sep 03 17:07:31 2024 -0400
     3.2+++ b/lisp/lib/dat/parquet/thrift.lisp	Wed Sep 04 22:02:21 2024 -0400
     3.3@@ -12,127 +12,110 @@
     3.4 
     3.5 (defun parquet-json-types ()
     3.6   (mapcar
     3.7-   (lambda (dat/parquet/gen::x)
     3.8-     (sb-int:keywordicate
     3.9-      (dat/parquet/gen::snakecase-name-to-lisp-name
    3.10-       (dat/json:json-getf dat/parquet/gen::x "name"))))
    3.11-   (dat/parquet/gen::parquet-json-enum-getf "Type")))
    3.12-(defparameter dat/parquet:*parquet-types* (parquet-json-types))
    3.13+   (lambda (x)
    3.14+     (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
    3.15+   (parquet-json-enum-getf "Type")))
    3.16+(defparameter *parquet-types* (parquet-json-types))
    3.17 (defun parquet-json-converted-types ()
    3.18   (mapcar
    3.19-   (lambda (dat/parquet/gen::x)
    3.20-     (sb-int:keywordicate
    3.21-      (dat/parquet/gen::snakecase-name-to-lisp-name
    3.22-       (dat/json:json-getf dat/parquet/gen::x "name"))))
    3.23-   (dat/parquet/gen::parquet-json-enum-getf "ConvertedType")))
    3.24-(defparameter dat/parquet:*parquet-converted-types*
    3.25-  (parquet-json-converted-types))
    3.26+   (lambda (x)
    3.27+     (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
    3.28+   (parquet-json-enum-getf "ConvertedType")))
    3.29+(defparameter *parquet-converted-types* (parquet-json-converted-types))
    3.30 (defun parquet-json-field-repetition-types ()
    3.31   (mapcar
    3.32-   (lambda (dat/parquet/gen::x)
    3.33-     (sb-int:keywordicate
    3.34-      (dat/parquet/gen::snakecase-name-to-lisp-name
    3.35-       (dat/json:json-getf dat/parquet/gen::x "name"))))
    3.36-   (dat/parquet/gen::parquet-json-enum-getf "FieldRepetitionType")))
    3.37-(defparameter dat/parquet:*parquet-field-repetition-types*
    3.38+   (lambda (x)
    3.39+     (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
    3.40+   (parquet-json-enum-getf "FieldRepetitionType")))
    3.41+(defparameter *parquet-field-repetition-types*
    3.42   (parquet-json-field-repetition-types))
    3.43 (defun parquet-json-encodings ()
    3.44   (mapcar
    3.45-   (lambda (dat/parquet/gen::x)
    3.46-     (sb-int:keywordicate
    3.47-      (dat/parquet/gen::snakecase-name-to-lisp-name
    3.48-       (dat/json:json-getf dat/parquet/gen::x "name"))))
    3.49-   (dat/parquet/gen::parquet-json-enum-getf "Encoding")))
    3.50-(defparameter dat/parquet:*parquet-encodings* (parquet-json-encodings))
    3.51+   (lambda (x)
    3.52+     (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
    3.53+   (parquet-json-enum-getf "Encoding")))
    3.54+(defparameter *parquet-encodings* (parquet-json-encodings))
    3.55 (defun parquet-json-compression-codecs ()
    3.56   (mapcar
    3.57-   (lambda (dat/parquet/gen::x)
    3.58-     (sb-int:keywordicate
    3.59-      (dat/parquet/gen::snakecase-name-to-lisp-name
    3.60-       (dat/json:json-getf dat/parquet/gen::x "name"))))
    3.61-   (dat/parquet/gen::parquet-json-enum-getf "CompressionCodec")))
    3.62-(defparameter dat/parquet:*parquet-compression-codecs*
    3.63-  (parquet-json-compression-codecs))
    3.64+   (lambda (x)
    3.65+     (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
    3.66+   (parquet-json-enum-getf "CompressionCodec")))
    3.67+(defparameter *parquet-compression-codecs* (parquet-json-compression-codecs))
    3.68 (defun parquet-json-page-types ()
    3.69   (mapcar
    3.70-   (lambda (dat/parquet/gen::x)
    3.71-     (sb-int:keywordicate
    3.72-      (dat/parquet/gen::snakecase-name-to-lisp-name
    3.73-       (dat/json:json-getf dat/parquet/gen::x "name"))))
    3.74-   (dat/parquet/gen::parquet-json-enum-getf "PageType")))
    3.75-(defparameter dat/parquet:*parquet-page-types* (parquet-json-page-types))
    3.76+   (lambda (x)
    3.77+     (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
    3.78+   (parquet-json-enum-getf "PageType")))
    3.79+(defparameter *parquet-page-types* (parquet-json-page-types))
    3.80 (defun parquet-json-boundary-orders ()
    3.81   (mapcar
    3.82-   (lambda (dat/parquet/gen::x)
    3.83-     (sb-int:keywordicate
    3.84-      (dat/parquet/gen::snakecase-name-to-lisp-name
    3.85-       (dat/json:json-getf dat/parquet/gen::x "name"))))
    3.86-   (dat/parquet/gen::parquet-json-enum-getf "BoundaryOrder")))
    3.87-(defparameter dat/parquet:*parquet-boundary-orders*
    3.88-  (parquet-json-boundary-orders))
    3.89+   (lambda (x)
    3.90+     (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
    3.91+   (parquet-json-enum-getf "BoundaryOrder")))
    3.92+(defparameter *parquet-boundary-orders* (parquet-json-boundary-orders))
    3.93 (eval-when (:compile-toplevel :load-toplevel :execute)
    3.94-  (sb-impl::%deftype 'dat/parquet:parquet-boolean
    3.95-                     (sb-impl::constant-type-expander
    3.96-                      'dat/parquet:parquet-boolean (progn 'boolean))
    3.97+  (sb-impl::%deftype 'parquet-boolean
    3.98+                     (sb-impl::constant-type-expander 'parquet-boolean
    3.99+                                                      (progn 'boolean))
   3.100                      (sb-c:source-location)))
   3.101 (eval-when (:compile-toplevel :load-toplevel :execute)
   3.102-  (sb-impl::%deftype 'dat/parquet:parquet-int32
   3.103-                     (sb-impl::constant-type-expander
   3.104-                      'dat/parquet:parquet-int32 (progn '(signed-byte 32)))
   3.105+  (sb-impl::%deftype 'parquet-int32
   3.106+                     (sb-impl::constant-type-expander 'parquet-int32
   3.107+                                                      (progn
   3.108+                                                       '(signed-byte 32)))
   3.109                      (sb-c:source-location)))
   3.110 (eval-when (:compile-toplevel :load-toplevel :execute)
   3.111-  (sb-impl::%deftype 'dat/parquet:parquet-int64
   3.112-                     (sb-impl::constant-type-expander
   3.113-                      'dat/parquet:parquet-int64 (progn '(signed-byte 64)))
   3.114+  (sb-impl::%deftype 'parquet-int64
   3.115+                     (sb-impl::constant-type-expander 'parquet-int64
   3.116+                                                      (progn
   3.117+                                                       '(signed-byte 64)))
   3.118                      (sb-c:source-location)))
   3.119 (eval-when (:compile-toplevel :load-toplevel :execute)
   3.120-  (sb-impl::%deftype 'dat/parquet:parquet-int96
   3.121-                     (sb-impl::constant-type-expander
   3.122-                      'dat/parquet:parquet-int96 (progn '(signed-byte 96)))
   3.123+  (sb-impl::%deftype 'parquet-int96
   3.124+                     (sb-impl::constant-type-expander 'parquet-int96
   3.125+                                                      (progn
   3.126+                                                       '(signed-byte 96)))
   3.127                      (sb-c:source-location)))
   3.128 (eval-when (:compile-toplevel :load-toplevel :execute)
   3.129-  (sb-impl::%deftype 'dat/parquet:parquet-float
   3.130-                     (sb-impl::constant-type-expander
   3.131-                      'dat/parquet:parquet-float (progn 'float))
   3.132+  (sb-impl::%deftype 'parquet-float
   3.133+                     (sb-impl::constant-type-expander 'parquet-float
   3.134+                                                      (progn 'float))
   3.135                      (sb-c:source-location)))
   3.136 (eval-when (:compile-toplevel :load-toplevel :execute)
   3.137-  (sb-impl::%deftype 'dat/parquet:parquet-double
   3.138-                     (sb-impl::constant-type-expander
   3.139-                      'dat/parquet:parquet-double (progn 'double-float))
   3.140+  (sb-impl::%deftype 'parquet-double
   3.141+                     (sb-impl::constant-type-expander 'parquet-double
   3.142+                                                      (progn 'double-float))
   3.143                      (sb-c:source-location)))
   3.144 (eval-when (:compile-toplevel :load-toplevel :execute)
   3.145-  (sb-impl::%deftype 'dat/parquet:parquet-byte-array
   3.146+  (sb-impl::%deftype 'parquet-byte-array
   3.147                      (sb-int:named-lambda (sb-impl::type-expander
   3.148-                                           dat/parquet:parquet-byte-array)
   3.149+                                           parquet-byte-array)
   3.150                          (#:expr)
   3.151-                       (declare
   3.152-                        (sb-c::lambda-list (&optional dat/parquet/gen::size)))
   3.153-                       (sb-int:named-ds-bind (:macro
   3.154-                                              dat/parquet:parquet-byte-array
   3.155+                       (declare (sb-c::lambda-list (&optional size)))
   3.156+                       (sb-int:named-ds-bind (:macro parquet-byte-array
   3.157                                               . deftype)
   3.158-                           (&optional dat/parquet/gen::size)
   3.159+                           (&optional size)
   3.160                            (cdr #:expr)
   3.161-                         (declare (sb-c::constant-value dat/parquet/gen::size))
   3.162-                         (block dat/parquet:parquet-byte-array
   3.163-                           `(std/type:octet-vector ,dat/parquet/gen::size))))
   3.164+                         (declare (sb-c::constant-value size))
   3.165+                         (block parquet-byte-array `(octet-vector ,size))))
   3.166                      nil))
   3.167 (eval-when (:compile-toplevel :load-toplevel :execute)
   3.168-  (sb-impl::%deftype 'dat/parquet:parquet-fixed-len-byte-array
   3.169+  (sb-impl::%deftype 'parquet-fixed-len-byte-array
   3.170                      (sb-int:named-lambda (sb-impl::type-expander
   3.171-                                           dat/parquet:parquet-fixed-len-byte-array)
   3.172+                                           parquet-fixed-len-byte-array)
   3.173                          (#:expr)
   3.174-                       (declare (sb-c::lambda-list (dat/parquet/gen::size)))
   3.175+                       (declare (sb-c::lambda-list (size)))
   3.176                        (sb-int:named-ds-bind (:macro
   3.177-                                              dat/parquet:parquet-fixed-len-byte-array
   3.178+                                              parquet-fixed-len-byte-array
   3.179                                               . deftype)
   3.180-                           (dat/parquet/gen::size)
   3.181+                           (size)
   3.182                            (cdr #:expr)
   3.183-                         (declare (sb-c::constant-value dat/parquet/gen::size))
   3.184-                         (block dat/parquet:parquet-fixed-len-byte-array
   3.185-                           `(std/type:octet-vector ,dat/parquet/gen::size))))
   3.186+                         (declare (sb-c::constant-value size))
   3.187+                         (block parquet-fixed-len-byte-array
   3.188+                           `(octet-vector ,size))))
   3.189                      nil))
   3.190-(defclass dat/parquet:parquet-size-statistics (dat/parquet:parquet-object)
   3.191-          ((dat/parquet::unencoded-byte-array-data-bytes :documentation
   3.192+(defclass parquet-size-statistics (dat/parquet:parquet-object)
   3.193+          ((unencoded-byte-array-data-bytes :documentation
   3.194             "The number of physical bytes stored for BYTE_ARRAY data values assuming
   3.195 no encoding. This is exclusive of the bytes needed to store the length of
   3.196 each byte array. In other words, this field is equivalent to the `(size
   3.197@@ -151,7 +134,7 @@
   3.198 "
   3.199             :initarg :unencoded-byte-array-data-bytes :initform nil :type
   3.200             (or null (signed-byte 64)))
   3.201-           (dat/parquet::repetition-level-histogram :documentation
   3.202+           (repetition-level-histogram :documentation
   3.203             "When present, there is expected to be one element corresponding to each
   3.204 repetition (i.e. size=max repetition_level+1) where each element
   3.205 represents the number of times the repetition level was observed in the
   3.206@@ -163,7 +146,7 @@
   3.207 "
   3.208             :initarg :repetition-level-histogram :initform nil :type
   3.209             (or null (vector (signed-byte 64))))
   3.210-           (dat/parquet::definition-level-histogram :documentation
   3.211+           (definition-level-histogram :documentation
   3.212             "Same as repetition_level_histogram except for definition levels.
   3.213 
   3.214 This field may be omitted if max_definition_level is 0 or 1 without
   3.215@@ -180,7 +163,7 @@
   3.216 in this structure can help determine the number of nulls at a particular
   3.217 nesting level and maximum length of lists).
   3.218 "))
   3.219-(defclass dat/parquet:parquet-statistics (dat/parquet:parquet-object)
   3.220+(defclass parquet-statistics (dat/parquet:parquet-object)
   3.221           ((max :documentation
   3.222                 "DEPRECATED: min and max value of the column. Use min_value and max_value.
   3.223 
   3.224@@ -194,21 +177,17 @@
   3.225 To support older readers, these may be set when the column order is
   3.226 signed.
   3.227 "
   3.228-                :initarg :max :initform nil :type
   3.229-                (or null std/type:octet-vector))
   3.230-           (min :initarg :min :initform nil :type
   3.231-                (or null std/type:octet-vector))
   3.232-           (dat/parquet::null-count :documentation
   3.233-            "count of null value in the column
   3.234+                :initarg :max :initform nil :type (or null octet-vector))
   3.235+           (min :initarg :min :initform nil :type (or null octet-vector))
   3.236+           (null-count :documentation "count of null value in the column
   3.237 "
   3.238             :initarg :null-count :initform nil :type
   3.239             (or null (signed-byte 64)))
   3.240-           (dat/parquet::distinct-count :documentation
   3.241-            "count of distinct values occurring
   3.242+           (distinct-count :documentation "count of distinct values occurring
   3.243 "
   3.244             :initarg :distinct-count :initform nil :type
   3.245             (or null (signed-byte 64)))
   3.246-           (dat/parquet::max-value :documentation
   3.247+           (max-value :documentation
   3.248             "Lower and upper bound values for the column, determined by its ColumnOrder.
   3.249 
   3.250 These may be the actual minimum and maximum values found on a page or column
   3.251@@ -220,15 +199,14 @@
   3.252 Values are encoded using PLAIN encoding, except that variable-length byte
   3.253 arrays do not include a length prefix.
   3.254 "
   3.255-            :initarg :max-value :initform nil :type
   3.256-            (or null std/type:octet-vector))
   3.257-           (dat/parquet::min-value :initarg :min-value :initform nil :type
   3.258-            (or null std/type:octet-vector))
   3.259-           (dat/parquet::is-max-value-exact :documentation
   3.260+            :initarg :max-value :initform nil :type (or null octet-vector))
   3.261+           (min-value :initarg :min-value :initform nil :type
   3.262+            (or null octet-vector))
   3.263+           (is-max-value-exact :documentation
   3.264             "If true, max_value is the actual maximum value for a column
   3.265 "
   3.266             :initarg :is-max-value-exact :initform nil :type (or null boolean))
   3.267-           (dat/parquet::is-min-value-exact :documentation
   3.268+           (is-min-value-exact :documentation
   3.269             "If true, min_value is the actual minimum value for a column
   3.270 "
   3.271             :initarg :is-min-value-exact :initform nil :type
   3.272@@ -236,16 +214,16 @@
   3.273           (:documentation "Statistics per row group and per page
   3.274 All fields are optional.
   3.275 "))
   3.276-(defclass dat/parquet:parquet-string-type (dat/parquet:parquet-object) nil
   3.277+(defclass parquet-string-type (dat/parquet:parquet-object) nil
   3.278           (:documentation "Empty structs to use as logical type annotations
   3.279 "))
   3.280-(defclass dat/parquet:parquet-uuid-type (dat/parquet:parquet-object) nil)
   3.281-(defclass dat/parquet:parquet-map-type (dat/parquet:parquet-object) nil)
   3.282-(defclass dat/parquet:parquet-list-type (dat/parquet:parquet-object) nil)
   3.283-(defclass dat/parquet:parquet-enum-type (dat/parquet:parquet-object) nil)
   3.284-(defclass dat/parquet:parquet-date-type (dat/parquet:parquet-object) nil)
   3.285-(defclass dat/parquet:parquet-float16-type (dat/parquet:parquet-object) nil)
   3.286-(defclass dat/parquet:parquet-null-type (dat/parquet:parquet-object) nil
   3.287+(defclass parquet-uuid-type (dat/parquet:parquet-object) nil)
   3.288+(defclass parquet-map-type (dat/parquet:parquet-object) nil)
   3.289+(defclass parquet-list-type (dat/parquet:parquet-object) nil)
   3.290+(defclass parquet-enum-type (dat/parquet:parquet-object) nil)
   3.291+(defclass parquet-date-type (dat/parquet:parquet-object) nil)
   3.292+(defclass parquet-float16-type (dat/parquet:parquet-object) nil)
   3.293+(defclass parquet-null-type (dat/parquet:parquet-object) nil
   3.294           (:documentation
   3.295            "Logical type to annotate a column that is always null.
   3.296 
   3.297@@ -253,9 +231,9 @@
   3.298 null and the physical type can't be determined. This annotation signals
   3.299 the case where the physical type was guessed from all null values.
   3.300 "))
   3.301-(defclass dat/parquet:parquet-decimal-type (dat/parquet:parquet-object)
   3.302-          ((dat/parquet::scale :initarg :scale :type (signed-byte 32))
   3.303-           (dat/parquet::precision :initarg :precision :type (signed-byte 32)))
   3.304+(defclass parquet-decimal-type (dat/parquet:parquet-object)
   3.305+          ((scale :initarg :scale :type (signed-byte 32))
   3.306+           (precision :initarg :precision :type (signed-byte 32)))
   3.307           (:documentation "Decimal logical type annotation
   3.308 
   3.309 Scale must be zero or a positive integer less than or equal to the precision.
   3.310@@ -266,102 +244,96 @@
   3.311 
   3.312 Allowed for physical types: INT32, INT64, FIXED_LEN_BYTE_ARRAY, and BYTE_ARRAY.
   3.313 "))
   3.314-(defclass dat/parquet:parquet-milli-seconds (dat/parquet:parquet-object) nil
   3.315+(defclass parquet-milli-seconds (dat/parquet:parquet-object) nil
   3.316           (:documentation "Time units for logical types
   3.317 "))
   3.318-(defclass dat/parquet:parquet-micro-seconds (dat/parquet:parquet-object) nil)
   3.319-(defclass dat/parquet:parquet-nano-seconds (dat/parquet:parquet-object) nil)
   3.320-(defclass dat/parquet:parquet-time-unit (dat/parquet:parquet-object)
   3.321-          ((dat/parquet::millis :initarg :millis :initform nil :type
   3.322-            (or null dat/parquet:parquet-milli-seconds))
   3.323-           (dat/parquet::micros :initarg :micros :initform nil :type
   3.324-            (or null dat/parquet:parquet-micro-seconds))
   3.325-           (dat/parquet::nanos :initarg :nanos :initform nil :type
   3.326-            (or null dat/parquet:parquet-nano-seconds))))
   3.327-(defclass dat/parquet:parquet-timestamp-type (dat/parquet:parquet-object)
   3.328-          ((dat/parquet::isadjustedtoutc :initarg :isadjustedtoutc :type
   3.329-            boolean)
   3.330-           (dat/parquet::unit :initarg :unit :type
   3.331-            dat/parquet:parquet-time-unit))
   3.332+(defclass parquet-micro-seconds (dat/parquet:parquet-object) nil)
   3.333+(defclass parquet-nano-seconds (dat/parquet:parquet-object) nil)
   3.334+(defclass parquet-time-unit (dat/parquet:parquet-object)
   3.335+          ((millis :initarg :millis :initform nil :type
   3.336+            (or null parquet-milli-seconds))
   3.337+           (micros :initarg :micros :initform nil :type
   3.338+            (or null parquet-micro-seconds))
   3.339+           (nanos :initarg :nanos :initform nil :type
   3.340+            (or null parquet-nano-seconds))))
   3.341+(defclass parquet-timestamp-type (dat/parquet:parquet-object)
   3.342+          ((isadjustedtoutc :initarg :isadjustedtoutc :type boolean)
   3.343+           (unit :initarg :unit :type parquet-time-unit))
   3.344           (:documentation "Timestamp logical type annotation
   3.345 
   3.346 Allowed for physical types: INT64
   3.347 "))
   3.348-(defclass dat/parquet:parquet-time-type (dat/parquet:parquet-object)
   3.349-          ((dat/parquet::isadjustedtoutc :initarg :isadjustedtoutc :type
   3.350-            boolean)
   3.351-           (dat/parquet::unit :initarg :unit :type
   3.352-            dat/parquet:parquet-time-unit))
   3.353+(defclass parquet-time-type (dat/parquet:parquet-object)
   3.354+          ((isadjustedtoutc :initarg :isadjustedtoutc :type boolean)
   3.355+           (unit :initarg :unit :type parquet-time-unit))
   3.356           (:documentation "Time logical type annotation
   3.357 
   3.358 Allowed for physical types: INT32 (millis), INT64 (micros, nanos)
   3.359 "))
   3.360-(defclass dat/parquet:parquet-int-type (dat/parquet:parquet-object)
   3.361-          ((dat/parquet::bitwidth :initarg :bitwidth)
   3.362-           (dat/parquet::issigned :initarg :issigned :type boolean))
   3.363+(defclass parquet-int-type (dat/parquet:parquet-object)
   3.364+          ((bitwidth :initarg :bitwidth)
   3.365+           (issigned :initarg :issigned :type boolean))
   3.366           (:documentation "Integer logical type annotation
   3.367 
   3.368 bitWidth must be 8, 16, 32, or 64.
   3.369 
   3.370 Allowed for physical types: INT32, INT64
   3.371 "))
   3.372-(defclass dat/parquet:parquet-json-type (dat/parquet:parquet-object) nil
   3.373+(defclass parquet-json-type (dat/parquet:parquet-object) nil
   3.374           (:documentation "Embedded JSON logical type annotation
   3.375 
   3.376 Allowed for physical types: BYTE_ARRAY
   3.377 "))
   3.378-(defclass dat/parquet:parquet-bson-type (dat/parquet:parquet-object) nil
   3.379+(defclass parquet-bson-type (dat/parquet:parquet-object) nil
   3.380           (:documentation "Embedded BSON logical type annotation
   3.381 
   3.382 Allowed for physical types: BYTE_ARRAY
   3.383 "))
   3.384-(defclass dat/parquet:parquet-logical-type (dat/parquet:parquet-object)
   3.385+(defclass parquet-logical-type (dat/parquet:parquet-object)
   3.386           ((string :initarg :string :initform nil :type
   3.387-                   (or null dat/parquet:parquet-string-type))
   3.388-           (map :initarg :map :initform nil :type
   3.389-                (or null dat/parquet:parquet-map-type))
   3.390+                   (or null parquet-string-type))
   3.391+           (map :initarg :map :initform nil :type (or null parquet-map-type))
   3.392            (list :initarg :list :initform nil :type
   3.393-                 (or null dat/parquet:parquet-list-type))
   3.394-           (dat/parquet::enum :initarg :enum :initform nil :type
   3.395-            (or null dat/parquet:parquet-enum-type))
   3.396-           (dat/parquet::decimal :initarg :decimal :initform nil :type
   3.397-            (or null dat/parquet:parquet-decimal-type))
   3.398-           (dat/parquet::date :initarg :date :initform nil :type
   3.399-            (or null dat/parquet:parquet-date-type))
   3.400+                 (or null parquet-list-type))
   3.401+           (enum :initarg :enum :initform nil :type
   3.402+            (or null parquet-enum-type))
   3.403+           (decimal :initarg :decimal :initform nil :type
   3.404+            (or null parquet-decimal-type))
   3.405+           (date :initarg :date :initform nil :type
   3.406+            (or null parquet-date-type))
   3.407            (time
   3.408             :initarg
   3.409             :time
   3.410             :initform
   3.411             nil
   3.412             :type
   3.413-            (or null dat/parquet:parquet-time-type))
   3.414-           (dat/parquet::timestamp :initarg :timestamp :initform nil :type
   3.415-            (or null dat/parquet:parquet-timestamp-type))
   3.416+            (or null parquet-time-type))
   3.417+           (timestamp :initarg :timestamp :initform nil :type
   3.418+            (or null parquet-timestamp-type))
   3.419            (integer :initarg :integer :initform nil :type
   3.420-            (or null dat/parquet:parquet-int-type))
   3.421-           (dat/parquet::unknown :initarg :unknown :initform nil :type
   3.422-            (or null dat/parquet:parquet-null-type))
   3.423-           (dat/parquet::json :initarg :json :initform nil :type
   3.424-            (or null dat/parquet:parquet-json-type))
   3.425-           (dat/parquet::bson :initarg :bson :initform nil :type
   3.426-            (or null dat/parquet:parquet-bson-type))
   3.427-           (dat/parquet::uuid :initarg :uuid :initform nil :type
   3.428-            (or null dat/parquet:parquet-uuid-type))
   3.429-           (dat/parquet::float16 :initarg :float16 :initform nil :type
   3.430-            (or null dat/parquet:parquet-float16-type)))
   3.431+            (or null parquet-int-type))
   3.432+           (unknown :initarg :unknown :initform nil :type
   3.433+            (or null parquet-null-type))
   3.434+           (json :initarg :json :initform nil :type
   3.435+            (or null parquet-json-type))
   3.436+           (bson :initarg :bson :initform nil :type
   3.437+            (or null parquet-bson-type))
   3.438+           (uuid :initarg :uuid :initform nil :type
   3.439+            (or null parquet-uuid-type))
   3.440+           (float16 :initarg :float16 :initform nil :type
   3.441+            (or null parquet-float16-type)))
   3.442           (:documentation "LogicalType annotations to replace ConvertedType.
   3.443 
   3.444 To maintain compatibility, implementations using LogicalType for a
   3.445 SchemaElement must also set the corresponding ConvertedType (if any)
   3.446 from the following table.
   3.447 "))
   3.448-(defclass dat/parquet:parquet-schema-element (dat/parquet:parquet-object)
   3.449+(defclass parquet-schema-element (dat/parquet:parquet-object)
   3.450           ((type :documentation
   3.451             "Data type for this field. Not set if the current element is a non-leaf node
   3.452 "
   3.453-            :initarg :type :initform nil :type
   3.454-            (or null dat/parquet::parquet-type))
   3.455-           (dat/parquet::type-length :documentation
   3.456+            :initarg :type :initform nil :type (or null parquet-type))
   3.457+           (type-length :documentation
   3.458             "If type is FIXED_LEN_BYTE_ARRAY, this is the byte length of the values.
   3.459 Otherwise, if specified, this is the maximum bit length to store any of the values.
   3.460 (e.g. a low cardinality INT col could have this set to 3).  Note that this is
   3.461@@ -369,16 +341,16 @@
   3.462 "
   3.463             :initarg :type-length :initform nil :type
   3.464             (or null (signed-byte 32)))
   3.465-           (dat/parquet::repetition-type :documentation
   3.466+           (repetition-type :documentation
   3.467             "repetition of the field. The root of the schema does not have a repetition_type.
   3.468 All other nodes must have one
   3.469 "
   3.470             :initarg :repetition-type :initform nil :type
   3.471-            (or null dat/parquet::parquet-field-repetition-type))
   3.472-           (dat/parquet::name :documentation "Name of the field in the schema
   3.473+            (or null parquet-field-repetition-type))
   3.474+           (name :documentation "Name of the field in the schema
   3.475 "
   3.476             :initarg :name :type string)
   3.477-           (dat/parquet::num-children :documentation
   3.478+           (num-children :documentation
   3.479             "Nested fields.  Since thrift does not support nested fields,
   3.480 the nesting is flattened to a single list by a depth-first traversal.
   3.481 The children count is used to construct the nested relationship.
   3.482@@ -386,43 +358,42 @@
   3.483 "
   3.484             :initarg :num-children :initform nil :type
   3.485             (or null (signed-byte 32)))
   3.486-           (dat/parquet::converted-type :documentation
   3.487+           (converted-type :documentation
   3.488             "DEPRECATED: When the schema is the result of a conversion from another model.
   3.489 Used to record the original type to help with cross conversion.
   3.490 
   3.491 This is superseded by logicalType.
   3.492 "
   3.493             :initarg :converted-type :initform nil :type
   3.494-            (or null dat/parquet::parquet-converted-type))
   3.495-           (dat/parquet::scale :documentation
   3.496+            (or null parquet-converted-type))
   3.497+           (scale :documentation
   3.498             "DEPRECATED: Used when this column contains decimal data.
   3.499 See the DECIMAL converted type for more details.
   3.500 
   3.501 This is superseded by using the DecimalType annotation in logicalType.
   3.502 "
   3.503             :initarg :scale :initform nil :type (or null (signed-byte 32)))
   3.504-           (dat/parquet::precision :initarg :precision :initform nil :type
   3.505+           (precision :initarg :precision :initform nil :type
   3.506             (or null (signed-byte 32)))
   3.507-           (dat/parquet::field-id :documentation
   3.508+           (field-id :documentation
   3.509             "When the original schema supports field ids, this will save the
   3.510 original field id in the parquet schema
   3.511 "
   3.512             :initarg :field-id :initform nil :type (or null (signed-byte 32)))
   3.513-           (dat/parquet::logicaltype :documentation
   3.514-            "The logical type of this SchemaElement
   3.515+           (logicaltype :documentation "The logical type of this SchemaElement
   3.516 
   3.517 LogicalType replaces ConvertedType, but ConvertedType is still required
   3.518 for some logical types to ensure forward-compatibility in format v1.
   3.519 "
   3.520             :initarg :logicaltype :initform nil :type
   3.521-            (or null dat/parquet:parquet-logical-type)))
   3.522+            (or null parquet-logical-type)))
   3.523           (:documentation "Represents a element inside a schema definition.
   3.524  - if it is a group (inner node) then type is undefined and num_children is defined
   3.525  - if it is a primitive type (leaf) then type is defined and num_children is undefined
   3.526 the nodes are listed in depth first traversal order.
   3.527 "))
   3.528-(defclass dat/parquet:parquet-data-page-header (dat/parquet:parquet-object)
   3.529-          ((dat/parquet::num-values :documentation
   3.530+(defclass parquet-data-page-header (dat/parquet:parquet-object)
   3.531+          ((num-values :documentation
   3.532             "Number of values, including NULLs, in this data page.
   3.533 
   3.534 If a OffsetIndex is present, a page must begin at a row
   3.535@@ -431,40 +402,33 @@
   3.536 
   3.537 "
   3.538             :initarg :num-values :type (signed-byte 32))
   3.539-           (dat/parquet::encoding :documentation
   3.540-            "Encoding used for this data page *
   3.541+           (encoding :documentation "Encoding used for this data page *
   3.542 "
   3.543-            :initarg :encoding :type dat/parquet::parquet-encoding)
   3.544-           (dat/parquet::definition-level-encoding :documentation
   3.545+            :initarg :encoding :type parquet-encoding)
   3.546+           (definition-level-encoding :documentation
   3.547             "Encoding used for definition levels *
   3.548 "
   3.549-            :initarg :definition-level-encoding :type
   3.550-            dat/parquet::parquet-encoding)
   3.551-           (dat/parquet::repetition-level-encoding :documentation
   3.552+            :initarg :definition-level-encoding :type parquet-encoding)
   3.553+           (repetition-level-encoding :documentation
   3.554             "Encoding used for repetition levels *
   3.555 "
   3.556-            :initarg :repetition-level-encoding :type
   3.557-            dat/parquet::parquet-encoding)
   3.558-           (dat/parquet::statistics :documentation
   3.559+            :initarg :repetition-level-encoding :type parquet-encoding)
   3.560+           (statistics :documentation
   3.561             "Optional statistics for the data in this page *
   3.562 "
   3.563             :initarg :statistics :initform nil :type
   3.564-            (or null dat/parquet:parquet-statistics)))
   3.565+            (or null parquet-statistics)))
   3.566           (:documentation "Data page header
   3.567 "))
   3.568-(defclass dat/parquet:parquet-index-page-header (dat/parquet:parquet-object)
   3.569-          nil)
   3.570-(defclass dat/parquet:parquet-dictionary-page-header
   3.571-          (dat/parquet:parquet-object)
   3.572-          ((dat/parquet::num-values :documentation
   3.573-            "Number of values in the dictionary *
   3.574+(defclass parquet-index-page-header (dat/parquet:parquet-object) nil)
   3.575+(defclass parquet-dictionary-page-header (dat/parquet:parquet-object)
   3.576+          ((num-values :documentation "Number of values in the dictionary *
   3.577 "
   3.578             :initarg :num-values :type (signed-byte 32))
   3.579-           (dat/parquet::encoding :documentation
   3.580-            "Encoding using this dictionary page *
   3.581+           (encoding :documentation "Encoding using this dictionary page *
   3.582 "
   3.583-            :initarg :encoding :type dat/parquet::parquet-encoding)
   3.584-           (dat/parquet::is-sorted :documentation
   3.585+            :initarg :encoding :type parquet-encoding)
   3.586+           (is-sorted :documentation
   3.587             "If true, the entries in the dictionary are sorted in ascending order *
   3.588 "
   3.589             :initarg :is-sorted :initform nil :type (or null boolean)))
   3.590@@ -474,60 +438,55 @@
   3.591 can be placed in a column chunk.
   3.592 
   3.593 "))
   3.594-(defclass dat/parquet:parquet-data-page-header-v2 (dat/parquet:parquet-object)
   3.595-          ((dat/parquet::num-values :documentation
   3.596+(defclass parquet-data-page-header-v2 (dat/parquet:parquet-object)
   3.597+          ((num-values :documentation
   3.598             "Number of values, including NULLs, in this data page. *
   3.599 "
   3.600             :initarg :num-values :type (signed-byte 32))
   3.601-           (dat/parquet::num-nulls :documentation
   3.602-            "Number of NULL values, in this data page.
   3.603+           (num-nulls :documentation "Number of NULL values, in this data page.
   3.604 Number of non-null = num_values - num_nulls which is also the number of values in the data section *
   3.605 "
   3.606             :initarg :num-nulls :type (signed-byte 32))
   3.607-           (dat/parquet::num-rows :documentation
   3.608+           (num-rows :documentation
   3.609             "Number of rows in this data page. Every page must begin at a
   3.610 row boundary (repetition_level = 0): rows must **not** be
   3.611 split across page boundaries when using V2 data pages.
   3.612 
   3.613 "
   3.614             :initarg :num-rows :type (signed-byte 32))
   3.615-           (dat/parquet::encoding :documentation
   3.616-            "Encoding used for data in this page *
   3.617+           (encoding :documentation "Encoding used for data in this page *
   3.618 "
   3.619-            :initarg :encoding :type dat/parquet::parquet-encoding)
   3.620-           (dat/parquet::definition-levels-byte-length :documentation
   3.621+            :initarg :encoding :type parquet-encoding)
   3.622+           (definition-levels-byte-length :documentation
   3.623             "Length of the definition levels
   3.624 "
   3.625             :initarg :definition-levels-byte-length :type (signed-byte 32))
   3.626-           (dat/parquet::repetition-levels-byte-length :documentation
   3.627+           (repetition-levels-byte-length :documentation
   3.628             "Length of the repetition levels
   3.629 "
   3.630             :initarg :repetition-levels-byte-length :type (signed-byte 32))
   3.631-           (dat/parquet::is-compressed :documentation
   3.632-            "Whether the values are compressed.
   3.633+           (is-compressed :documentation "Whether the values are compressed.
   3.634 Which means the section of the page between
   3.635 definition_levels_byte_length + repetition_levels_byte_length + 1 and compressed_page_size (included)
   3.636 is compressed with the compression_codec.
   3.637 If missing it is considered compressed
   3.638 "
   3.639             :initarg :is-compressed :initform nil :type (or null boolean))
   3.640-           (dat/parquet::statistics :documentation
   3.641+           (statistics :documentation
   3.642             "Optional statistics for the data in this page *
   3.643 "
   3.644             :initarg :statistics :initform nil :type
   3.645-            (or null dat/parquet:parquet-statistics)))
   3.646+            (or null parquet-statistics)))
   3.647           (:documentation
   3.648            "New page format allowing reading levels without decompressing the data
   3.649 Repetition and definition levels are uncompressed
   3.650 The remaining section containing the data is compressed if is_compressed is true
   3.651 
   3.652 "))
   3.653-(defclass dat/parquet:parquet-split-block-algorithm
   3.654-          (dat/parquet:parquet-object) nil
   3.655+(defclass parquet-split-block-algorithm (dat/parquet:parquet-object) nil
   3.656           (:documentation "Block-based algorithm type annotation. *
   3.657 "))
   3.658-(defclass dat/parquet:parquet-bloom-filter-algorithm
   3.659-          (dat/parquet:parquet-object)
   3.660+(defclass parquet-bloom-filter-algorithm (dat/parquet:parquet-object)
   3.661           ((block :documentation
   3.662              "Block-based Bloom filter. *
   3.663 "
   3.664@@ -536,70 +495,64 @@
   3.665              :initform
   3.666              nil
   3.667              :type
   3.668-             (or null dat/parquet:parquet-split-block-algorithm)))
   3.669+             (or null parquet-split-block-algorithm)))
   3.670           (:documentation "The algorithm used in Bloom filter. *
   3.671 "))
   3.672-(defclass dat/parquet:parquet-xx-hash (dat/parquet:parquet-object) nil
   3.673+(defclass parquet-xx-hash (dat/parquet:parquet-object) nil
   3.674           (:documentation
   3.675            "Hash strategy type annotation. xxHash is an extremely fast non-cryptographic hash
   3.676 algorithm. It uses 64 bits version of xxHash.
   3.677 
   3.678 "))
   3.679-(defclass dat/parquet:parquet-bloom-filter-hash (dat/parquet:parquet-object)
   3.680-          ((dat/parquet::xxhash :documentation "xxHash Strategy. *
   3.681+(defclass parquet-bloom-filter-hash (dat/parquet:parquet-object)
   3.682+          ((xxhash :documentation "xxHash Strategy. *
   3.683 "
   3.684-            :initarg :xxhash :initform nil :type
   3.685-            (or null dat/parquet:parquet-xx-hash)))
   3.686+            :initarg :xxhash :initform nil :type (or null parquet-xx-hash)))
   3.687           (:documentation
   3.688            "The hash function used in Bloom filter. This function takes the hash of a column value
   3.689 using plain encoding.
   3.690 
   3.691 "))
   3.692-(defclass dat/parquet:parquet-uncompressed (dat/parquet:parquet-object) nil
   3.693+(defclass parquet-uncompressed (dat/parquet:parquet-object) nil
   3.694           (:documentation "The compression used in the Bloom filter.
   3.695 
   3.696 "))
   3.697-(defclass dat/parquet:parquet-bloom-filter-compression
   3.698-          (dat/parquet:parquet-object)
   3.699-          ((dat/parquet::uncompressed :initarg :uncompressed :initform nil
   3.700-            :type (or null dat/parquet:parquet-uncompressed))))
   3.701-(defclass dat/parquet:parquet-bloom-filter-header (dat/parquet:parquet-object)
   3.702-          ((dat/parquet::numbytes :documentation "The size of bitset in bytes *
   3.703+(defclass parquet-bloom-filter-compression (dat/parquet:parquet-object)
   3.704+          ((uncompressed :initarg :uncompressed :initform nil :type
   3.705+            (or null parquet-uncompressed))))
   3.706+(defclass parquet-bloom-filter-header (dat/parquet:parquet-object)
   3.707+          ((numbytes :documentation "The size of bitset in bytes *
   3.708 "
   3.709             :initarg :numbytes :type (signed-byte 32))
   3.710-           (dat/parquet::algorithm :documentation
   3.711-            "The algorithm for setting bits. *
   3.712+           (algorithm :documentation "The algorithm for setting bits. *
   3.713 "
   3.714-            :initarg :algorithm :type
   3.715-            dat/parquet:parquet-bloom-filter-algorithm)
   3.716-           (dat/parquet::hash :documentation
   3.717-            "The hash function used for Bloom filter. *
   3.718+            :initarg :algorithm :type parquet-bloom-filter-algorithm)
   3.719+           (hash :documentation "The hash function used for Bloom filter. *
   3.720 "
   3.721-            :initarg :hash :type dat/parquet:parquet-bloom-filter-hash)
   3.722-           (dat/parquet::compression :documentation
   3.723+            :initarg :hash :type parquet-bloom-filter-hash)
   3.724+           (compression :documentation
   3.725             "The compression used in the Bloom filter *
   3.726 "
   3.727-            :initarg :compression :type
   3.728-            dat/parquet:parquet-bloom-filter-compression))
   3.729+            :initarg :compression :type parquet-bloom-filter-compression))
   3.730           (:documentation
   3.731            "Bloom filter header is stored at beginning of Bloom filter data of each column
   3.732 and followed by its bitset.
   3.733 
   3.734 "))
   3.735-(defclass dat/parquet:parquet-page-header (dat/parquet:parquet-object)
   3.736+(defclass parquet-page-header (dat/parquet:parquet-object)
   3.737           ((type :documentation
   3.738             "the type of the page: indicates which of the *_header fields is set *
   3.739 "
   3.740-            :initarg :type :type dat/parquet::parquet-page-type)
   3.741-           (dat/parquet::uncompressed-page-size :documentation
   3.742+            :initarg :type :type parquet-page-type)
   3.743+           (uncompressed-page-size :documentation
   3.744             "Uncompressed page size in bytes (not including this header) *
   3.745 "
   3.746             :initarg :uncompressed-page-size :type (signed-byte 32))
   3.747-           (dat/parquet::compressed-page-size :documentation
   3.748+           (compressed-page-size :documentation
   3.749             "Compressed (and potentially encrypted) page size in bytes, not including this header *
   3.750 "
   3.751             :initarg :compressed-page-size :type (signed-byte 32))
   3.752-           (dat/parquet::crc :documentation
   3.753+           (crc :documentation
   3.754             "The 32-bit CRC checksum for the page, to be be calculated as follows:
   3.755 
   3.756 - The standard CRC32 algorithm is used (with polynomial 0x04C11DB7,
   3.757@@ -618,118 +571,110 @@
   3.758 pages need to be read.
   3.759 "
   3.760             :initarg :crc :initform nil :type (or null (signed-byte 32)))
   3.761-           (dat/parquet::data-page-header :initarg :data-page-header :initform
   3.762-            nil :type (or null dat/parquet:parquet-data-page-header))
   3.763-           (dat/parquet::index-page-header :initarg :index-page-header
   3.764-            :initform nil :type
   3.765-            (or null dat/parquet:parquet-index-page-header))
   3.766-           (dat/parquet::dictionary-page-header :initarg
   3.767-            :dictionary-page-header :initform nil :type
   3.768-            (or null dat/parquet:parquet-dictionary-page-header))
   3.769-           (dat/parquet::data-page-header-v2 :initarg :data-page-header-v2
   3.770-            :initform nil :type
   3.771-            (or null dat/parquet:parquet-data-page-header-v2))))
   3.772-(defclass dat/parquet:parquet-key-value (dat/parquet:parquet-object)
   3.773-          ((dat/parquet::key :initarg :key :type string)
   3.774-           (dat/parquet::value :initarg :value :initform nil :type
   3.775-            (or null string)))
   3.776+           (data-page-header :initarg :data-page-header :initform nil :type
   3.777+            (or null parquet-data-page-header))
   3.778+           (index-page-header :initarg :index-page-header :initform nil :type
   3.779+            (or null parquet-index-page-header))
   3.780+           (dictionary-page-header :initarg :dictionary-page-header :initform
   3.781+            nil :type (or null parquet-dictionary-page-header))
   3.782+           (data-page-header-v2 :initarg :data-page-header-v2 :initform nil
   3.783+            :type (or null parquet-data-page-header-v2))))
   3.784+(defclass parquet-key-value (dat/parquet:parquet-object)
   3.785+          ((key :initarg :key :type string)
   3.786+           (value :initarg :value :initform nil :type (or null string)))
   3.787           (:documentation "Wrapper struct to store key values
   3.788 "))
   3.789-(defclass dat/parquet:parquet-sorting-column (dat/parquet:parquet-object)
   3.790-          ((dat/parquet::column-idx :documentation
   3.791+(defclass parquet-sorting-column (dat/parquet:parquet-object)
   3.792+          ((column-idx :documentation
   3.793             "The ordinal position of the column (in this row group) *
   3.794 "
   3.795             :initarg :column-idx :type (signed-byte 32))
   3.796-           (dat/parquet::descending :documentation
   3.797+           (descending :documentation
   3.798             "If true, indicates this column is sorted in descending order. *
   3.799 "
   3.800             :initarg :descending :type boolean)
   3.801-           (dat/parquet::nulls-first :documentation
   3.802+           (nulls-first :documentation
   3.803             "If true, nulls will come before non-null values, otherwise,
   3.804 nulls go at the end.
   3.805 "
   3.806             :initarg :nulls-first :type boolean))
   3.807           (:documentation "Sort order within a RowGroup of a leaf column
   3.808 "))
   3.809-(defclass dat/parquet:parquet-page-encoding-stats (dat/parquet:parquet-object)
   3.810-          ((dat/parquet::page-type :documentation
   3.811-            "the page type (data\\dic\\...) *
   3.812+(defclass parquet-page-encoding-stats (dat/parquet:parquet-object)
   3.813+          ((page-type :documentation "the page type (data\\dic\\...) *
   3.814 "
   3.815-            :initarg :page-type :type dat/parquet::parquet-page-type)
   3.816-           (dat/parquet::encoding :documentation "encoding of the page *
   3.817+            :initarg :page-type :type parquet-page-type)
   3.818+           (encoding :documentation "encoding of the page *
   3.819 "
   3.820-            :initarg :encoding :type dat/parquet::parquet-encoding)
   3.821+            :initarg :encoding :type parquet-encoding)
   3.822            (count :documentation
   3.823                   "number of pages of this type with this encoding *
   3.824 "
   3.825                   :initarg :count :type (signed-byte 32)))
   3.826           (:documentation "statistics of a given page type and encoding
   3.827 "))
   3.828-(defclass dat/parquet:parquet-column-meta-data (dat/parquet:parquet-object)
   3.829+(defclass parquet-column-meta-data (dat/parquet:parquet-object)
   3.830           ((type :documentation "Type of this column *
   3.831 "
   3.832-            :initarg :type :type dat/parquet::parquet-type)
   3.833-           (dat/parquet::encodings :documentation
   3.834+            :initarg :type :type parquet-type)
   3.835+           (encodings :documentation
   3.836             "Set of all encodings used for this column. The purpose is to validate
   3.837 whether we can decode those pages. *
   3.838 "
   3.839-            :initarg :encodings :type (vector dat/parquet::parquet-encoding))
   3.840-           (dat/parquet::path-in-schema :documentation "Path in schema *
   3.841+            :initarg :encodings :type (vector parquet-encoding))
   3.842+           (path-in-schema :documentation "Path in schema *
   3.843 "
   3.844             :initarg :path-in-schema :type (vector string))
   3.845-           (dat/parquet::codec :documentation "Compression codec *
   3.846+           (codec :documentation "Compression codec *
   3.847 "
   3.848-            :initarg :codec :type dat/parquet::parquet-compression-codec)
   3.849-           (dat/parquet::num-values :documentation
   3.850-            "Number of values in this column *
   3.851+            :initarg :codec :type parquet-compression-codec)
   3.852+           (num-values :documentation "Number of values in this column *
   3.853 "
   3.854             :initarg :num-values :type (signed-byte 64))
   3.855-           (dat/parquet::total-uncompressed-size :documentation
   3.856+           (total-uncompressed-size :documentation
   3.857             "total byte size of all uncompressed pages in this column chunk (including the headers) *
   3.858 "
   3.859             :initarg :total-uncompressed-size :type (signed-byte 64))
   3.860-           (dat/parquet::total-compressed-size :documentation
   3.861+           (total-compressed-size :documentation
   3.862             "total byte size of all compressed, and potentially encrypted, pages
   3.863 in this column chunk (including the headers) *
   3.864 "
   3.865             :initarg :total-compressed-size :type (signed-byte 64))
   3.866-           (dat/parquet::key-value-metadata :documentation
   3.867-            "Optional key\\value metadata *
   3.868+           (key-value-metadata :documentation "Optional key\\value metadata *
   3.869 "
   3.870             :initarg :key-value-metadata :initform nil :type
   3.871-            (or null (vector dat/parquet:parquet-key-value)))
   3.872-           (dat/parquet::data-page-offset :documentation
   3.873+            (or null (vector parquet-key-value)))
   3.874+           (data-page-offset :documentation
   3.875             "Byte offset from beginning of file to first data page *
   3.876 "
   3.877             :initarg :data-page-offset :type (signed-byte 64))
   3.878-           (dat/parquet::index-page-offset :documentation
   3.879+           (index-page-offset :documentation
   3.880             "Byte offset from beginning of file to root index page *
   3.881 "
   3.882             :initarg :index-page-offset :initform nil :type
   3.883             (or null (signed-byte 64)))
   3.884-           (dat/parquet::dictionary-page-offset :documentation
   3.885+           (dictionary-page-offset :documentation
   3.886             "Byte offset from the beginning of file to first (only) dictionary page *
   3.887 "
   3.888             :initarg :dictionary-page-offset :initform nil :type
   3.889             (or null (signed-byte 64)))
   3.890-           (dat/parquet::statistics :documentation
   3.891-            "optional statistics for this column chunk
   3.892+           (statistics :documentation "optional statistics for this column chunk
   3.893 "
   3.894             :initarg :statistics :initform nil :type
   3.895-            (or null dat/parquet:parquet-statistics))
   3.896-           (dat/parquet::encoding-stats :documentation
   3.897+            (or null parquet-statistics))
   3.898+           (encoding-stats :documentation
   3.899             "Set of all encodings used for pages in this column chunk.
   3.900 This information can be used to determine if all data pages are
   3.901 dictionary encoded for example *
   3.902 "
   3.903             :initarg :encoding-stats :initform nil :type
   3.904-            (or null (vector dat/parquet:parquet-page-encoding-stats)))
   3.905-           (dat/parquet::bloom-filter-offset :documentation
   3.906+            (or null (vector parquet-page-encoding-stats)))
   3.907+           (bloom-filter-offset :documentation
   3.908             "Byte offset from beginning of file to Bloom filter data. *
   3.909 "
   3.910             :initarg :bloom-filter-offset :initform nil :type
   3.911             (or null (signed-byte 64)))
   3.912-           (dat/parquet::bloom-filter-length :documentation
   3.913+           (bloom-filter-length :documentation
   3.914             "Size of Bloom filter data including the serialized header, in bytes.
   3.915 Added in 2.10 so readers may not read this field from old files and
   3.916 it can be obtained after the BloomFilterHeader has been deserialized.
   3.917@@ -738,44 +683,38 @@
   3.918 "
   3.919             :initarg :bloom-filter-length :initform nil :type
   3.920             (or null (signed-byte 32)))
   3.921-           (dat/parquet::size-statistics :documentation
   3.922+           (size-statistics :documentation
   3.923             "Optional statistics to help estimate total memory when converted to in-memory
   3.924 representations. The histograms contained in these statistics can
   3.925 also be useful in some cases for more fine-grained nullability\\list length
   3.926 filter pushdown.
   3.927 "
   3.928             :initarg :size-statistics :initform nil :type
   3.929-            (or null dat/parquet:parquet-size-statistics)))
   3.930+            (or null parquet-size-statistics)))
   3.931           (:documentation "Description for column metadata
   3.932 "))
   3.933-(defclass dat/parquet:parquet-encryption-with-footer-key
   3.934-          (dat/parquet:parquet-object) nil)
   3.935-(defclass dat/parquet:parquet-encryption-with-column-key
   3.936-          (dat/parquet:parquet-object)
   3.937-          ((dat/parquet::path-in-schema :documentation "Column path in schema *
   3.938+(defclass parquet-encryption-with-footer-key (dat/parquet:parquet-object) nil)
   3.939+(defclass parquet-encryption-with-column-key (dat/parquet:parquet-object)
   3.940+          ((path-in-schema :documentation "Column path in schema *
   3.941 "
   3.942             :initarg :path-in-schema :type (vector string))
   3.943-           (dat/parquet::key-metadata :documentation
   3.944+           (key-metadata :documentation
   3.945             "Retrieval metadata of column encryption key *
   3.946 "
   3.947-            :initarg :key-metadata :initform nil :type
   3.948-            (or null std/type:octet-vector))))
   3.949-(defclass dat/parquet:parquet-column-crypto-meta-data
   3.950-          (dat/parquet:parquet-object)
   3.951-          ((dat/parquet::encryption-with-footer-key :initarg
   3.952-            :encryption-with-footer-key :initform nil :type
   3.953-            (or null dat/parquet:parquet-encryption-with-footer-key))
   3.954-           (dat/parquet::encryption-with-column-key :initarg
   3.955-            :encryption-with-column-key :initform nil :type
   3.956-            (or null dat/parquet:parquet-encryption-with-column-key))))
   3.957-(defclass dat/parquet:parquet-column-chunk (dat/parquet:parquet-object)
   3.958-          ((dat/parquet::file-path :documentation
   3.959+            :initarg :key-metadata :initform nil :type (or null octet-vector))))
   3.960+(defclass parquet-column-crypto-meta-data (dat/parquet:parquet-object)
   3.961+          ((encryption-with-footer-key :initarg :encryption-with-footer-key
   3.962+            :initform nil :type (or null parquet-encryption-with-footer-key))
   3.963+           (encryption-with-column-key :initarg :encryption-with-column-key
   3.964+            :initform nil :type (or null parquet-encryption-with-column-key))))
   3.965+(defclass parquet-column-chunk (dat/parquet:parquet-object)
   3.966+          ((file-path :documentation
   3.967             "File where column data is stored.  If not set, assumed to be same file as
   3.968 metadata.  This path is relative to the current file.
   3.969 
   3.970 "
   3.971             :initarg :file-path :initform nil :type (or null string))
   3.972-           (dat/parquet::file-offset :documentation
   3.973+           (file-offset :documentation
   3.974             "Deprecated: Byte offset in file_path to the ColumnMetaData
   3.975 
   3.976 Past use of this field has been inconsistent, with some implementations
   3.977@@ -786,7 +725,7 @@
   3.978 the footer.
   3.979 "
   3.980             :initarg :file-offset :type (signed-byte 64))
   3.981-           (dat/parquet::meta-data :documentation
   3.982+           (meta-data :documentation
   3.983             "Column metadata for this chunk. Some writers may also replicate this at the
   3.984 location pointed to by file_path\\file_offset.
   3.985 Note: while marked as optional, this field is in fact required by most major
   3.986@@ -794,81 +733,78 @@
   3.987 
   3.988 "
   3.989             :initarg :meta-data :initform nil :type
   3.990-            (or null dat/parquet:parquet-column-meta-data))
   3.991-           (dat/parquet::offset-index-offset :documentation
   3.992+            (or null parquet-column-meta-data))
   3.993+           (offset-index-offset :documentation
   3.994             "File offset of ColumnChunk's OffsetIndex *
   3.995 "
   3.996             :initarg :offset-index-offset :initform nil :type
   3.997             (or null (signed-byte 64)))
   3.998-           (dat/parquet::offset-index-length :documentation
   3.999+           (offset-index-length :documentation
  3.1000             "Size of ColumnChunk's OffsetIndex, in bytes *
  3.1001 "
  3.1002             :initarg :offset-index-length :initform nil :type
  3.1003             (or null (signed-byte 32)))
  3.1004-           (dat/parquet::column-index-offset :documentation
  3.1005+           (column-index-offset :documentation
  3.1006             "File offset of ColumnChunk's ColumnIndex *
  3.1007 "
  3.1008             :initarg :column-index-offset :initform nil :type
  3.1009             (or null (signed-byte 64)))
  3.1010-           (dat/parquet::column-index-length :documentation
  3.1011+           (column-index-length :documentation
  3.1012             "Size of ColumnChunk's ColumnIndex, in bytes *
  3.1013 "
  3.1014             :initarg :column-index-length :initform nil :type
  3.1015             (or null (signed-byte 32)))
  3.1016-           (dat/parquet::crypto-metadata :documentation
  3.1017+           (crypto-metadata :documentation
  3.1018             "Crypto metadata of encrypted columns *
  3.1019 "
  3.1020             :initarg :crypto-metadata :initform nil :type
  3.1021-            (or null dat/parquet:parquet-column-crypto-meta-data))
  3.1022-           (dat/parquet::encrypted-column-metadata :documentation
  3.1023+            (or null parquet-column-crypto-meta-data))
  3.1024+           (encrypted-column-metadata :documentation
  3.1025             "Encrypted column metadata for this chunk *
  3.1026 "
  3.1027             :initarg :encrypted-column-metadata :initform nil :type
  3.1028-            (or null std/type:octet-vector))))
  3.1029-(defclass dat/parquet:parquet-row-group (dat/parquet:parquet-object)
  3.1030-          ((dat/parquet::columns :documentation
  3.1031+            (or null octet-vector))))
  3.1032+(defclass parquet-row-group (dat/parquet:parquet-object)
  3.1033+          ((columns :documentation
  3.1034             "Metadata for each column chunk in this row group.
  3.1035 This list must have the same order as the SchemaElement list in FileMetaData.
  3.1036 
  3.1037 "
  3.1038-            :initarg :columns :type (vector dat/parquet:parquet-column-chunk))
  3.1039-           (dat/parquet::total-byte-size :documentation
  3.1040+            :initarg :columns :type (vector parquet-column-chunk))
  3.1041+           (total-byte-size :documentation
  3.1042             "Total byte size of all the uncompressed column data in this row group *
  3.1043 "
  3.1044             :initarg :total-byte-size :type (signed-byte 64))
  3.1045-           (dat/parquet::num-rows :documentation
  3.1046-            "Number of rows in this row group *
  3.1047+           (num-rows :documentation "Number of rows in this row group *
  3.1048 "
  3.1049             :initarg :num-rows :type (signed-byte 64))
  3.1050-           (dat/parquet::sorting-columns :documentation
  3.1051+           (sorting-columns :documentation
  3.1052             "If set, specifies a sort ordering of the rows in this RowGroup.
  3.1053 The sorting columns can be a subset of all the columns.
  3.1054 "
  3.1055             :initarg :sorting-columns :initform nil :type
  3.1056-            (or null (vector dat/parquet:parquet-sorting-column)))
  3.1057-           (dat/parquet::file-offset :documentation
  3.1058+            (or null (vector parquet-sorting-column)))
  3.1059+           (file-offset :documentation
  3.1060             "Byte offset from beginning of file to first page (data or dictionary)
  3.1061 in this row group *
  3.1062 "
  3.1063             :initarg :file-offset :initform nil :type
  3.1064             (or null (signed-byte 64)))
  3.1065-           (dat/parquet::total-compressed-size :documentation
  3.1066+           (total-compressed-size :documentation
  3.1067             "Total byte size of all compressed (and potentially encrypted) column data
  3.1068 in this row group *
  3.1069 "
  3.1070             :initarg :total-compressed-size :initform nil :type
  3.1071             (or null (signed-byte 64)))
  3.1072-           (dat/parquet::ordinal :documentation "Row group ordinal in the file *
  3.1073+           (ordinal :documentation "Row group ordinal in the file *
  3.1074 "
  3.1075             :initarg :ordinal :initform nil :type (or null (signed-byte 16)))))
  3.1076-(defclass dat/parquet:parquet-type-defined-order (dat/parquet:parquet-object)
  3.1077-          nil
  3.1078+(defclass parquet-type-defined-order (dat/parquet:parquet-object) nil
  3.1079           (:documentation
  3.1080            "Empty struct to signal the order defined by the physical or logical type
  3.1081 "))
  3.1082-(defclass dat/parquet:parquet-column-order (dat/parquet:parquet-object)
  3.1083-          ((dat/parquet::type-order :documentation
  3.1084-            "The sort orders for logical types are:
  3.1085+(defclass parquet-column-order (dat/parquet:parquet-object)
  3.1086+          ((type-order :documentation "The sort orders for logical types are:
  3.1087   UTF8 - unsigned byte-wise comparison
  3.1088   INT8 - signed comparison
  3.1089   INT16 - signed comparison
  3.1090@@ -918,7 +854,7 @@
  3.1091       `-0.0` should be written into the min statistics field.
  3.1092 "
  3.1093             :initarg :type-order :initform nil :type
  3.1094-            (or null dat/parquet:parquet-type-defined-order)))
  3.1095+            (or null parquet-type-defined-order)))
  3.1096           (:documentation
  3.1097            "Union to specify the order used for the min_value and max_value fields for a
  3.1098 column. This union takes the role of an enhanced enum that allows rich
  3.1099@@ -931,29 +867,28 @@
  3.1100 If the reader does not support the value of this union, min and max stats
  3.1101 for this column should be ignored.
  3.1102 "))
  3.1103-(defclass dat/parquet:parquet-page-location (dat/parquet:parquet-object)
  3.1104-          ((dat/parquet::offset :documentation "Offset of the page in the file *
  3.1105+(defclass parquet-page-location (dat/parquet:parquet-object)
  3.1106+          ((offset :documentation "Offset of the page in the file *
  3.1107 "
  3.1108             :initarg :offset :type (signed-byte 64))
  3.1109-           (dat/parquet::compressed-page-size :documentation
  3.1110+           (compressed-page-size :documentation
  3.1111             "Size of the page, including header. Sum of compressed_page_size and header
  3.1112 length
  3.1113 "
  3.1114             :initarg :compressed-page-size :type (signed-byte 32))
  3.1115-           (dat/parquet::first-row-index :documentation
  3.1116+           (first-row-index :documentation
  3.1117             "Index within the RowGroup of the first row of the page. When an
  3.1118 OffsetIndex is present, pages must begin on row boundaries
  3.1119 (repetition_level = 0).
  3.1120 "
  3.1121             :initarg :first-row-index :type (signed-byte 64))))
  3.1122-(defclass dat/parquet:parquet-offset-index (dat/parquet:parquet-object)
  3.1123-          ((dat/parquet::page-locations :documentation
  3.1124+(defclass parquet-offset-index (dat/parquet:parquet-object)
  3.1125+          ((page-locations :documentation
  3.1126             "PageLocations, ordered by increasing PageLocation.offset. It is required
  3.1127 that page_locations[i].first_row_index < page_locations[i+1].first_row_index.
  3.1128 "
  3.1129-            :initarg :page-locations :type
  3.1130-            (vector dat/parquet:parquet-page-location))
  3.1131-           (dat/parquet::unencoded-byte-array-data-bytes :documentation
  3.1132+            :initarg :page-locations :type (vector parquet-page-location))
  3.1133+           (unencoded-byte-array-data-bytes :documentation
  3.1134             "Unencoded\\uncompressed size for BYTE_ARRAY types.
  3.1135 
  3.1136 See documention for unencoded_byte_array_data_bytes in SizeStatistics for
  3.1137@@ -967,8 +902,8 @@
  3.1138 
  3.1139 OffsetIndex may be present even if ColumnIndex is not.
  3.1140 "))
  3.1141-(defclass dat/parquet:parquet-column-index (dat/parquet:parquet-object)
  3.1142-          ((dat/parquet::null-pages :documentation
  3.1143+(defclass parquet-column-index (dat/parquet:parquet-object)
  3.1144+          ((null-pages :documentation
  3.1145             "A list of Boolean values to determine the validity of the corresponding
  3.1146 min and max values. If true, a page contains only null values, and writers
  3.1147 have to set the corresponding entries in min_values and max_values to
  3.1148@@ -976,7 +911,7 @@
  3.1149 corresponding entries in min_values and max_values must be valid.
  3.1150 "
  3.1151             :initarg :null-pages :type (vector boolean))
  3.1152-           (dat/parquet::min-values :documentation
  3.1153+           (min-values :documentation
  3.1154             "Two lists containing lower and upper bounds for the values of each page
  3.1155 determined by the ColumnOrder of the column. These may be the actual
  3.1156 minimum and maximum values found on a page, but can also be (more compact)
  3.1157@@ -986,22 +921,21 @@
  3.1158 logical type. Readers must make sure that list entries are populated before
  3.1159 using them by inspecting null_pages.
  3.1160 "
  3.1161-            :initarg :min-values :type (vector std/type:octet-vector))
  3.1162-           (dat/parquet::max-values :initarg :max-values :type
  3.1163-            (vector std/type:octet-vector))
  3.1164-           (dat/parquet::boundary-order :documentation
  3.1165+            :initarg :min-values :type (vector octet-vector))
  3.1166+           (max-values :initarg :max-values :type (vector octet-vector))
  3.1167+           (boundary-order :documentation
  3.1168             "Stores whether both min_values and max_values are ordered and if so, in
  3.1169 which direction. This allows readers to perform binary searches in both
  3.1170 lists. Readers cannot assume that max_values[i] <= min_values[i+1], even
  3.1171 if the lists are ordered.
  3.1172 "
  3.1173-            :initarg :boundary-order :type dat/parquet::parquet-boundary-order)
  3.1174-           (dat/parquet::null-counts :documentation
  3.1175+            :initarg :boundary-order :type parquet-boundary-order)
  3.1176+           (null-counts :documentation
  3.1177             "A list containing the number of null values for each page *
  3.1178 "
  3.1179             :initarg :null-counts :initform nil :type
  3.1180             (or null (vector (signed-byte 64))))
  3.1181-           (dat/parquet::repetition-level-histograms :documentation
  3.1182+           (repetition-level-histograms :documentation
  3.1183             "Contains repetition level histograms for each page
  3.1184 concatenated together.  The repetition_level_histogram field on
  3.1185 SizeStatistics contains more details.
  3.1186@@ -1016,7 +950,7 @@
  3.1187 "
  3.1188             :initarg :repetition-level-histograms :initform nil :type
  3.1189             (or null (vector (signed-byte 64))))
  3.1190-           (dat/parquet::definition-level-histograms :documentation
  3.1191+           (definition-level-histograms :documentation
  3.1192             "Same as repetition_level_histograms except for definitions levels.
  3.1193 
  3.1194 "
  3.1195@@ -1032,46 +966,44 @@
  3.1196 For each field in this structure, <field>[i] refers to the page at
  3.1197 OffsetIndex.page_locations[i]
  3.1198 "))
  3.1199-(defclass dat/parquet:parquet-aes-gcm-v1 (dat/parquet:parquet-object)
  3.1200-          ((dat/parquet::aad-prefix :documentation "AAD prefix *
  3.1201+(defclass parquet-aes-gcm-v1 (dat/parquet:parquet-object)
  3.1202+          ((aad-prefix :documentation "AAD prefix *
  3.1203 "
  3.1204-            :initarg :aad-prefix :initform nil :type
  3.1205-            (or null std/type:octet-vector))
  3.1206-           (dat/parquet::aad-file-unique :documentation
  3.1207+            :initarg :aad-prefix :initform nil :type (or null octet-vector))
  3.1208+           (aad-file-unique :documentation
  3.1209             "Unique file identifier part of AAD suffix *
  3.1210 "
  3.1211             :initarg :aad-file-unique :initform nil :type
  3.1212-            (or null std/type:octet-vector))
  3.1213-           (dat/parquet::supply-aad-prefix :documentation
  3.1214+            (or null octet-vector))
  3.1215+           (supply-aad-prefix :documentation
  3.1216             "In files encrypted with AAD prefix without storing it,
  3.1217 readers must supply the prefix *
  3.1218 "
  3.1219             :initarg :supply-aad-prefix :initform nil :type (or null boolean))))
  3.1220-(defclass dat/parquet:parquet-aes-gcm-ctr-v1 (dat/parquet:parquet-object)
  3.1221-          ((dat/parquet::aad-prefix :documentation "AAD prefix *
  3.1222+(defclass parquet-aes-gcm-ctr-v1 (dat/parquet:parquet-object)
  3.1223+          ((aad-prefix :documentation "AAD prefix *
  3.1224 "
  3.1225-            :initarg :aad-prefix :initform nil :type
  3.1226-            (or null std/type:octet-vector))
  3.1227-           (dat/parquet::aad-file-unique :documentation
  3.1228+            :initarg :aad-prefix :initform nil :type (or null octet-vector))
  3.1229+           (aad-file-unique :documentation
  3.1230             "Unique file identifier part of AAD suffix *
  3.1231 "
  3.1232             :initarg :aad-file-unique :initform nil :type
  3.1233-            (or null std/type:octet-vector))
  3.1234-           (dat/parquet::supply-aad-prefix :documentation
  3.1235+            (or null octet-vector))
  3.1236+           (supply-aad-prefix :documentation
  3.1237             "In files encrypted with AAD prefix without storing it,
  3.1238 readers must supply the prefix *
  3.1239 "
  3.1240             :initarg :supply-aad-prefix :initform nil :type (or null boolean))))
  3.1241-(defclass dat/parquet:parquet-encryption-algorithm (dat/parquet:parquet-object)
  3.1242-          ((dat/parquet::aes-gcm-v1 :initarg :aes-gcm-v1 :initform nil :type
  3.1243-            (or null dat/parquet:parquet-aes-gcm-v1))
  3.1244-           (dat/parquet::aes-gcm-ctr-v1 :initarg :aes-gcm-ctr-v1 :initform nil
  3.1245-            :type (or null dat/parquet:parquet-aes-gcm-ctr-v1))))
  3.1246-(defclass dat/parquet:parquet-file-meta-data (dat/parquet:parquet-object)
  3.1247-          ((dat/parquet::version :documentation "Version of this file *
  3.1248+(defclass parquet-encryption-algorithm (dat/parquet:parquet-object)
  3.1249+          ((aes-gcm-v1 :initarg :aes-gcm-v1 :initform nil :type
  3.1250+            (or null parquet-aes-gcm-v1))
  3.1251+           (aes-gcm-ctr-v1 :initarg :aes-gcm-ctr-v1 :initform nil :type
  3.1252+            (or null parquet-aes-gcm-ctr-v1))))
  3.1253+(defclass parquet-file-meta-data (dat/parquet:parquet-object)
  3.1254+          ((version :documentation "Version of this file *
  3.1255 "
  3.1256             :initarg :version :type (signed-byte 32))
  3.1257-           (dat/parquet::schema :documentation
  3.1258+           (schema :documentation
  3.1259             "Parquet schema for this file.  This schema contains metadata for all the columns.
  3.1260 The schema is represented as a tree with a single root.  The nodes of the tree
  3.1261 are flattened to a list by doing a depth-first traversal.
  3.1262@@ -1079,26 +1011,25 @@
  3.1263 used to map columns to nodes in the schema.
  3.1264 The first element is the root *
  3.1265 "
  3.1266-            :initarg :schema :type (vector dat/parquet:parquet-schema-element))
  3.1267-           (dat/parquet::num-rows :documentation "Number of rows in this file *
  3.1268+            :initarg :schema :type (vector parquet-schema-element))
  3.1269+           (num-rows :documentation "Number of rows in this file *
  3.1270 "
  3.1271             :initarg :num-rows :type (signed-byte 64))
  3.1272-           (dat/parquet::row-groups :documentation "Row groups in this file *
  3.1273+           (row-groups :documentation "Row groups in this file *
  3.1274 "
  3.1275-            :initarg :row-groups :type (vector dat/parquet:parquet-row-group))
  3.1276-           (dat/parquet::key-value-metadata :documentation
  3.1277-            "Optional key\\value metadata *
  3.1278+            :initarg :row-groups :type (vector parquet-row-group))
  3.1279+           (key-value-metadata :documentation "Optional key\\value metadata *
  3.1280 "
  3.1281             :initarg :key-value-metadata :initform nil :type
  3.1282-            (or null (vector dat/parquet:parquet-key-value)))
  3.1283-           (dat/parquet::created-by :documentation
  3.1284+            (or null (vector parquet-key-value)))
  3.1285+           (created-by :documentation
  3.1286             "String for application that wrote this file.  This should be in the format
  3.1287 <Application> version <App Version> (build <App Build Hash>).
  3.1288 e.g. impala version 1.0 (build 6cf94d29b2b7115df4de2c06e2ab4326d721eb55)
  3.1289 
  3.1290 "
  3.1291             :initarg :created-by :initform nil :type (or null string))
  3.1292-           (dat/parquet::column-orders :documentation
  3.1293+           (column-orders :documentation
  3.1294             "Sort order used for the min_value and max_value fields in the Statistics
  3.1295 objects and the min_values and max_values fields in the ColumnIndex
  3.1296 objects of each column in this file. Sort orders are listed in the order
  3.1297@@ -1115,36 +1046,33 @@
  3.1298 by signed comparison regardless of column_orders.
  3.1299 "
  3.1300             :initarg :column-orders :initform nil :type
  3.1301-            (or null (vector dat/parquet:parquet-column-order)))
  3.1302-           (dat/parquet::encryption-algorithm :documentation
  3.1303+            (or null (vector parquet-column-order)))
  3.1304+           (encryption-algorithm :documentation
  3.1305             "Encryption algorithm. This field is set only in encrypted files
  3.1306 with plaintext footer. Files with encrypted footer store algorithm id
  3.1307 in FileCryptoMetaData structure.
  3.1308 "
  3.1309             :initarg :encryption-algorithm :initform nil :type
  3.1310-            (or null dat/parquet:parquet-encryption-algorithm))
  3.1311-           (dat/parquet::footer-signing-key-metadata :documentation
  3.1312+            (or null parquet-encryption-algorithm))
  3.1313+           (footer-signing-key-metadata :documentation
  3.1314             "Retrieval metadata of key used for signing the footer.
  3.1315 Used only in encrypted files with plaintext footer.
  3.1316 "
  3.1317             :initarg :footer-signing-key-metadata :initform nil :type
  3.1318-            (or null std/type:octet-vector)))
  3.1319+            (or null octet-vector)))
  3.1320           (:documentation "Description for file metadata
  3.1321 "))
  3.1322-(defclass dat/parquet:parquet-file-crypto-meta-data
  3.1323-          (dat/parquet:parquet-object)
  3.1324-          ((dat/parquet::encryption-algorithm :documentation
  3.1325+(defclass parquet-file-crypto-meta-data (dat/parquet:parquet-object)
  3.1326+          ((encryption-algorithm :documentation
  3.1327             "Encryption algorithm. This field is only used for files
  3.1328 with encrypted footer. Files with plaintext footer store algorithm id
  3.1329 inside footer (FileMetaData structure).
  3.1330 "
  3.1331-            :initarg :encryption-algorithm :type
  3.1332-            dat/parquet:parquet-encryption-algorithm)
  3.1333-           (dat/parquet::key-metadata :documentation
  3.1334+            :initarg :encryption-algorithm :type parquet-encryption-algorithm)
  3.1335+           (key-metadata :documentation
  3.1336             "Retrieval metadata of key used for encryption of footer,
  3.1337 and (possibly) columns *
  3.1338 "
  3.1339-            :initarg :key-metadata :initform nil :type
  3.1340-            (or null std/type:octet-vector)))
  3.1341+            :initarg :key-metadata :initform nil :type (or null octet-vector)))
  3.1342           (:documentation "Crypto metadata for files with encrypted footer *
  3.1343 "))
     4.1--- a/lisp/lib/dat/pkg.lisp	Tue Sep 03 17:07:31 2024 -0400
     4.2+++ b/lisp/lib/dat/pkg.lisp	Wed Sep 04 22:02:21 2024 -0400
     4.3@@ -256,6 +256,7 @@
     4.4    :parquet-encode
     4.5    :parquet-decode))
     4.6 
     4.7+
     4.8 (pkg:defpkg :dat
     4.9   (:use-reexport :dat/proto :dat/csv :dat/arff
    4.10    :dat/toml :dat/json :dat/sxp :dat/xml
     5.1--- a/readme.org	Tue Sep 03 17:07:31 2024 -0400
     5.2+++ b/readme.org	Wed Sep 04 22:02:21 2024 -0400
     5.3@@ -4,10 +4,7 @@
     5.4 #+email: richard.westhaver@gmail.com
     5.5 #+setupfile: https://cdn.compiler.company/org/clean.theme
     5.6 #+property: header-args :eval no-export
     5.7-- [[https://compiler.company/docs/core][Docs]]
     5.8-  - [[https://compiler.company/docs/core/install.html][Install]] :: Install Guide
     5.9-  - [[https://compiler.company/docs/core/tests.html][Tests]] :: Testing Guide
    5.10-  - [[https://compiler.company/docs/core/stats.html][Stats]] :: Project Statistics
    5.11+- [[https://compiler.company/docs/core][Documentation]]
    5.12 
    5.13 * Overview
    5.14 This repository contains the monolothic core of [[comp:][The Compiler Company]].
    5.15@@ -24,8 +21,8 @@
    5.16 to reliably provision the host either from source or pre-built
    5.17 platform-specific [[https://packy.compiler.company/dist][binary distributions]].
    5.18 
    5.19-#+NAME: Optional Dependencies
    5.20-| dependency  | dependents             | src                                           |
    5.21+#+NAME: Dependencies
    5.22+| dependency  | required by            | src                                           |
    5.23 |-------------+------------------------+-----------------------------------------------|
    5.24 | Blake3      | ffi/blake3             | https://vc.compiler.company/packy/blake3      |
    5.25 | Tree-sitter | ffi/tree-sitter        | https://vc.compiler.company/packy/tree-sitter |
    5.26@@ -223,9 +220,6 @@
    5.27 done]
    5.28 #+end_example
    5.29 
    5.30-* Test
    5.31-* Install
    5.32-* Dist
    5.33 * Programs
    5.34 This section lists all program binaries provided by the core.
    5.35 ** skel                                                                :lisp: