1.1--- a/emacs/lib/ulang.el Sun Sep 08 12:24:33 2024 -0400
1.2+++ b/emacs/lib/ulang.el Sun Sep 08 17:35:03 2024 -0400
1.3@@ -150,12 +150,24 @@
1.4 ;; currently does not support locations with spaces.. need to walk
1.5 ;; ancestors ourselves to do so. for now only URIs and pathnames are
1.6 ;; supported.
1.7+(defun org-get-with-inheritance (property &optional literal-nil epom)
1.8+ "Like `org-entry-get-with-inheritance' but in additional to properties we
1.9+also check file keywords (aka in-buffer settings).
1.10+
1.11+For example, a PROPERTY value of 'LOCATION' would check all property
1.12+values in addition to the keyword '#+LOCATION:'."
1.13+ (interactive (list nil nil))
1.14+ (let ((property (or property (org-read-property-name))))
1.15+ ;; most of the work passed through to the property handler
1.16+ (org-entry-get-with-inheritance property literal-nil epom)))
1.17+
1.18 (defun org-get-location (point)
1.19 "Get the value of property LOCATION at POINT."
1.20 (interactive "d")
1.21 (org-with-point-at point
1.22- (format "%s" (or (apply 'join-paths (string-split (org-entry-get-with-inheritance "LOCATION") " "))
1.23- (caadar (org-collect-keywords '("LOCATION") nil '("LOCATION")))))))
1.24+ (message "%s" (or (when-let ((prop (org-entry-get-with-inheritance "LOCATION")))
1.25+ (apply 'join-paths (string-split prop " ")))
1.26+ (caadar (org-collect-keywords '("LOCATION") nil '("LOCATION")))))))
1.27
1.28 (defun org-set-location (value)
1.29 "Set the value of property LOCATION. If point is before first heading
2.1--- a/lisp/lib/dat/parquet/gen.lisp Sun Sep 08 12:24:33 2024 -0400
2.2+++ b/lisp/lib/dat/parquet/gen.lisp Sun Sep 08 17:35:03 2024 -0400
2.3@@ -18,37 +18,35 @@
2.4
2.5 (defvar *parquet-json* nil)
2.6
2.7-(defun %parquet-json-enums ()
2.8- (json-getf *parquet-json* "enums"))
2.9+(eval-always
2.10+ (defun %parquet-json-enums ()
2.11+ (json-getf *parquet-json* "enums"))
2.12
2.13-(defun dat/parquet::parquet-json-enum-getf (name)
2.14- (json-getf
2.15- (find-if (lambda (x) (equal name (json-getf x "name"))) (%parquet-json-enums))
2.16- "members"))
2.17+ (defun dat/parquet::parquet-json-enum-getf (name)
2.18+ (json-getf
2.19+ (find-if (lambda (x) (equal name (json-getf x "name"))) (%parquet-json-enums))
2.20+ "members"))
2.21
2.22-(defun dat/parquet::snakecase-name-to-lisp-name (string)
2.23- (string-upcase
2.24- (substitute #\- #\_ string)))
2.25+ (defun dat/parquet::snakecase-name-to-lisp-name (string)
2.26+ (string-upcase
2.27+ (substitute #\- #\_ string)))
2.28
2.29-(defun dat/parquet::camelcase-name-to-lisp-name (string)
2.30- (string-upcase
2.31- (with-output-to-string (name)
2.32- (loop for i from 0 below (length string)
2.33- for c across string
2.34- when (and (upper-case-p c) (not (zerop i)))
2.35- do (write-char #\- name)
2.36- do (write-char c name)))))
2.37+ (defun dat/parquet::camelcase-name-to-lisp-name (string)
2.38+ (string-upcase
2.39+ (with-output-to-string (name)
2.40+ (loop for i from 0 below (length string)
2.41+ for c across string
2.42+ when (and (upper-case-p c) (not (zerop i)))
2.43+ do (write-char #\- name)
2.44+ do (write-char c name))))))
2.45
2.46 (defvar *parquet-enums* nil)
2.47
2.48 (defmacro define-parquet-enum (sym name)
2.49 `(progn
2.50- (defun ,(symbolicate "PARQUET-JSON-" sym) ()
2.51- (mapcar (lambda (x) (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
2.52- (parquet-json-enum-getf ,name)))
2.53- (defparameter ,(symbolicate
2.54- (concatenate 'string "*PARQUET-" (symbol-name sym) "*"))
2.55- (,(symbolicate "PARQUET-JSON-" sym)))))
2.56+ (defvar ,(symbolicate "*PARQUET-JSON-" sym "*")
2.57+ ',(mapcar (lambda (x) (keywordicate (dat/parquet::snakecase-name-to-lisp-name (json-getf x "name"))))
2.58+ (dat/parquet::parquet-json-enum-getf name)))))
2.59
2.60 (labels ((parse-type-id (type-id)
2.61 (when type-id
2.62@@ -73,7 +71,7 @@
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::camelcase-name-to-lisp-name name)))))
2.68 name))
2.69 (parse-type (o)
2.70 (when o
2.71@@ -165,12 +163,12 @@
2.72 ((equal name "UUIDType") "PARQUET-UUID-TYPE")
2.73 (t (concatenate 'string
2.74 "PARQUET-"
2.75- (camelcase-name-to-lisp-name name)))))))
2.76+ (dat/parquet::camelcase-name-to-lisp-name name)))))))
2.77 `(progn
2.78 (defclass ,class-name (dat/parquet::parquet-object)
2.79 (,@(mapcar (lambda (f)
2.80 (let ((fdoc (parquet-struct-field-doc f))
2.81- (fname (snakecase-name-to-lisp-name
2.82+ (fname (dat/parquet::snakecase-name-to-lisp-name
2.83 (parquet-struct-field-name f))))
2.84 `(,(symbolicate fname)
2.85 ,@(when fdoc `(:documentation ,fdoc))
2.86@@ -185,7 +183,7 @@
2.87
2.88 (defmacro define-parquet-type (name opts &body body)
2.89 "Define a parquet type with DEFTYPE which maps to LISP-TYPE."
2.90- `(deftype ,(symbolicate "PARQUET-" (substitute #\- #\_ name)) ,opts ,@body))
2.91+ `(progn (deftype ,(symbolicate "PARQUET-" (substitute #\- #\_ name)) ,opts ,@body)))
2.92
2.93 (defun parse-parquet-thrift-definitions (&key (input *parquet-json-file*)
2.94 (output #.(asdf:system-relative-pathname :dat "parquet/thrift.lisp")))
3.1--- a/lisp/lib/dat/parquet/thrift.lisp Sun Sep 08 12:24:33 2024 -0400
3.2+++ b/lisp/lib/dat/parquet/thrift.lisp Sun Sep 08 17:35:03 2024 -0400
3.3@@ -10,111 +10,34 @@
3.4 ;;; Code:
3.5 (in-package :dat/parquet)
3.6
3.7-(defun parquet-json-types ()
3.8- (mapcar
3.9- (lambda (x)
3.10- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
3.11- (parquet-json-enum-getf "Type")))
3.12-(defparameter *parquet-types* (parquet-json-types))
3.13-(defun parquet-json-converted-types ()
3.14- (mapcar
3.15- (lambda (x)
3.16- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
3.17- (parquet-json-enum-getf "ConvertedType")))
3.18-(defparameter *parquet-converted-types* (parquet-json-converted-types))
3.19-(defun parquet-json-field-repetition-types ()
3.20- (mapcar
3.21- (lambda (x)
3.22- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
3.23- (parquet-json-enum-getf "FieldRepetitionType")))
3.24-(defparameter *parquet-field-repetition-types*
3.25- (parquet-json-field-repetition-types))
3.26-(defun parquet-json-encodings ()
3.27- (mapcar
3.28- (lambda (x)
3.29- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
3.30- (parquet-json-enum-getf "Encoding")))
3.31-(defparameter *parquet-encodings* (parquet-json-encodings))
3.32-(defun parquet-json-compression-codecs ()
3.33- (mapcar
3.34- (lambda (x)
3.35- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
3.36- (parquet-json-enum-getf "CompressionCodec")))
3.37-(defparameter *parquet-compression-codecs* (parquet-json-compression-codecs))
3.38-(defun parquet-json-page-types ()
3.39- (mapcar
3.40- (lambda (x)
3.41- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
3.42- (parquet-json-enum-getf "PageType")))
3.43-(defparameter *parquet-page-types* (parquet-json-page-types))
3.44-(defun parquet-json-boundary-orders ()
3.45- (mapcar
3.46- (lambda (x)
3.47- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
3.48- (parquet-json-enum-getf "BoundaryOrder")))
3.49-(defparameter *parquet-boundary-orders* (parquet-json-boundary-orders))
3.50-(eval-when (:compile-toplevel :load-toplevel :execute)
3.51- (sb-impl::%deftype 'parquet-boolean
3.52- (sb-impl::constant-type-expander 'parquet-boolean
3.53- (progn 'boolean))
3.54- (sb-c:source-location)))
3.55-(eval-when (:compile-toplevel :load-toplevel :execute)
3.56- (sb-impl::%deftype 'parquet-int32
3.57- (sb-impl::constant-type-expander 'parquet-int32
3.58- (progn
3.59- '(signed-byte 32)))
3.60- (sb-c:source-location)))
3.61-(eval-when (:compile-toplevel :load-toplevel :execute)
3.62- (sb-impl::%deftype 'parquet-int64
3.63- (sb-impl::constant-type-expander 'parquet-int64
3.64- (progn
3.65- '(signed-byte 64)))
3.66- (sb-c:source-location)))
3.67-(eval-when (:compile-toplevel :load-toplevel :execute)
3.68- (sb-impl::%deftype 'parquet-int96
3.69- (sb-impl::constant-type-expander 'parquet-int96
3.70- (progn
3.71- '(signed-byte 96)))
3.72- (sb-c:source-location)))
3.73-(eval-when (:compile-toplevel :load-toplevel :execute)
3.74- (sb-impl::%deftype 'parquet-float
3.75- (sb-impl::constant-type-expander 'parquet-float
3.76- (progn 'float))
3.77- (sb-c:source-location)))
3.78-(eval-when (:compile-toplevel :load-toplevel :execute)
3.79- (sb-impl::%deftype 'parquet-double
3.80- (sb-impl::constant-type-expander 'parquet-double
3.81- (progn 'double-float))
3.82- (sb-c:source-location)))
3.83-(eval-when (:compile-toplevel :load-toplevel :execute)
3.84- (sb-impl::%deftype 'parquet-byte-array
3.85- (sb-int:named-lambda (sb-impl::type-expander
3.86- parquet-byte-array)
3.87- (#:expr)
3.88- (declare (sb-c::lambda-list (&optional size)))
3.89- (sb-int:named-ds-bind (:macro parquet-byte-array
3.90- . deftype)
3.91- (&optional size)
3.92- (cdr #:expr)
3.93- (declare (sb-c::constant-value size))
3.94- (block parquet-byte-array `(octet-vector ,size))))
3.95- nil))
3.96-(eval-when (:compile-toplevel :load-toplevel :execute)
3.97- (sb-impl::%deftype 'parquet-fixed-len-byte-array
3.98- (sb-int:named-lambda (sb-impl::type-expander
3.99- parquet-fixed-len-byte-array)
3.100- (#:expr)
3.101- (declare (sb-c::lambda-list (size)))
3.102- (sb-int:named-ds-bind (:macro
3.103- parquet-fixed-len-byte-array
3.104- . deftype)
3.105- (size)
3.106- (cdr #:expr)
3.107- (declare (sb-c::constant-value size))
3.108- (block parquet-fixed-len-byte-array
3.109- `(octet-vector ,size))))
3.110- nil))
3.111-(defclass parquet-size-statistics (dat/parquet:parquet-object)
3.112+(defvar *parquet-json-types*
3.113+ '(:boolean :int32 :int64 :int96 :float :double :byte-array
3.114+ :fixed-len-byte-array))
3.115+(defvar *parquet-json-converted-types*
3.116+ '(:utf8 :map :map-key-value :list :enum :decimal :date :time-millis
3.117+ :time-micros :timestamp-millis :timestamp-micros :uint-8 :uint-16 :uint-32
3.118+ :uint-64 :int-8 :int-16 :int-32 :int-64 :json :bson :interval))
3.119+(defvar *parquet-json-field-repetition-types* '(:required :optional :repeated))
3.120+(defvar *parquet-json-encodings*
3.121+ '(:plain :plain-dictionary :rle :bit-packed :delta-binary-packed
3.122+ :delta-length-byte-array :delta-byte-array :rle-dictionary
3.123+ :byte-stream-split))
3.124+(defvar *parquet-json-compression-codecs*
3.125+ '(:uncompressed :snappy :gzip :lzo :brotli :lz4 :zstd :lz4-raw))
3.126+(defvar *parquet-json-page-types*
3.127+ '(:data-page :index-page :dictionary-page :data-page-v2))
3.128+(defvar *parquet-json-boundary-orders* '(:unordered :ascending :descending))
3.129+(deftype parquet-boolean () 'boolean)
3.130+(deftype parquet-int32 () '(signed-byte 32))
3.131+(deftype parquet-int64 () '(signed-byte 64))
3.132+(deftype parquet-int96 () '(signed-byte 96))
3.133+(deftype parquet-float () 'float)
3.134+(deftype parquet-double () 'double-float)
3.135+(deftype parquet-byte-array (&optional dat/parquet/gen::size)
3.136+ `(octet-vector ,dat/parquet/gen::size))
3.137+(deftype parquet-fixed-len-byte-array (dat/parquet/gen::size)
3.138+ `(octet-vector ,dat/parquet/gen::size))
3.139+(defclass parquet-size-statistics (parquet-object)
3.140 ((unencoded-byte-array-data-bytes :documentation
3.141 "The number of physical bytes stored for BYTE_ARRAY data values assuming
3.142 no encoding. This is exclusive of the bytes needed to store the length of
3.143@@ -163,7 +86,7 @@
3.144 in this structure can help determine the number of nulls at a particular
3.145 nesting level and maximum length of lists).
3.146 "))
3.147-(defclass parquet-statistics (dat/parquet:parquet-object)
3.148+(defclass parquet-statistics (parquet-object)
3.149 ((max :documentation
3.150 "DEPRECATED: min and max value of the column. Use min_value and max_value.
3.151
3.152@@ -214,16 +137,16 @@
3.153 (:documentation "Statistics per row group and per page
3.154 All fields are optional.
3.155 "))
3.156-(defclass parquet-string-type (dat/parquet:parquet-object) nil
3.157+(defclass parquet-string-type (parquet-object) nil
3.158 (:documentation "Empty structs to use as logical type annotations
3.159 "))
3.160-(defclass parquet-uuid-type (dat/parquet:parquet-object) nil)
3.161-(defclass parquet-map-type (dat/parquet:parquet-object) nil)
3.162-(defclass parquet-list-type (dat/parquet:parquet-object) nil)
3.163-(defclass parquet-enum-type (dat/parquet:parquet-object) nil)
3.164-(defclass parquet-date-type (dat/parquet:parquet-object) nil)
3.165-(defclass parquet-float16-type (dat/parquet:parquet-object) nil)
3.166-(defclass parquet-null-type (dat/parquet:parquet-object) nil
3.167+(defclass parquet-uuid-type (parquet-object) nil)
3.168+(defclass parquet-map-type (parquet-object) nil)
3.169+(defclass parquet-list-type (parquet-object) nil)
3.170+(defclass parquet-enum-type (parquet-object) nil)
3.171+(defclass parquet-date-type (parquet-object) nil)
3.172+(defclass parquet-float16-type (parquet-object) nil)
3.173+(defclass parquet-null-type (parquet-object) nil
3.174 (:documentation
3.175 "Logical type to annotate a column that is always null.
3.176
3.177@@ -231,7 +154,7 @@
3.178 null and the physical type can't be determined. This annotation signals
3.179 the case where the physical type was guessed from all null values.
3.180 "))
3.181-(defclass parquet-decimal-type (dat/parquet:parquet-object)
3.182+(defclass parquet-decimal-type (parquet-object)
3.183 ((scale :initarg :scale :type (signed-byte 32))
3.184 (precision :initarg :precision :type (signed-byte 32)))
3.185 (:documentation "Decimal logical type annotation
3.186@@ -244,33 +167,33 @@
3.187
3.188 Allowed for physical types: INT32, INT64, FIXED_LEN_BYTE_ARRAY, and BYTE_ARRAY.
3.189 "))
3.190-(defclass parquet-milli-seconds (dat/parquet:parquet-object) nil
3.191+(defclass parquet-milli-seconds (parquet-object) nil
3.192 (:documentation "Time units for logical types
3.193 "))
3.194-(defclass parquet-micro-seconds (dat/parquet:parquet-object) nil)
3.195-(defclass parquet-nano-seconds (dat/parquet:parquet-object) nil)
3.196-(defclass parquet-time-unit (dat/parquet:parquet-object)
3.197+(defclass parquet-micro-seconds (parquet-object) nil)
3.198+(defclass parquet-nano-seconds (parquet-object) nil)
3.199+(defclass parquet-time-unit (parquet-object)
3.200 ((millis :initarg :millis :initform nil :type
3.201 (or null parquet-milli-seconds))
3.202 (micros :initarg :micros :initform nil :type
3.203 (or null parquet-micro-seconds))
3.204 (nanos :initarg :nanos :initform nil :type
3.205 (or null parquet-nano-seconds))))
3.206-(defclass parquet-timestamp-type (dat/parquet:parquet-object)
3.207+(defclass parquet-timestamp-type (parquet-object)
3.208 ((isadjustedtoutc :initarg :isadjustedtoutc :type boolean)
3.209 (unit :initarg :unit :type parquet-time-unit))
3.210 (:documentation "Timestamp logical type annotation
3.211
3.212 Allowed for physical types: INT64
3.213 "))
3.214-(defclass parquet-time-type (dat/parquet:parquet-object)
3.215+(defclass parquet-time-type (parquet-object)
3.216 ((isadjustedtoutc :initarg :isadjustedtoutc :type boolean)
3.217 (unit :initarg :unit :type parquet-time-unit))
3.218 (:documentation "Time logical type annotation
3.219
3.220 Allowed for physical types: INT32 (millis), INT64 (micros, nanos)
3.221 "))
3.222-(defclass parquet-int-type (dat/parquet:parquet-object)
3.223+(defclass parquet-int-type (parquet-object)
3.224 ((bitwidth :initarg :bitwidth)
3.225 (issigned :initarg :issigned :type boolean))
3.226 (:documentation "Integer logical type annotation
3.227@@ -279,17 +202,17 @@
3.228
3.229 Allowed for physical types: INT32, INT64
3.230 "))
3.231-(defclass parquet-json-type (dat/parquet:parquet-object) nil
3.232+(defclass parquet-json-type (parquet-object) nil
3.233 (:documentation "Embedded JSON logical type annotation
3.234
3.235 Allowed for physical types: BYTE_ARRAY
3.236 "))
3.237-(defclass parquet-bson-type (dat/parquet:parquet-object) nil
3.238+(defclass parquet-bson-type (parquet-object) nil
3.239 (:documentation "Embedded BSON logical type annotation
3.240
3.241 Allowed for physical types: BYTE_ARRAY
3.242 "))
3.243-(defclass parquet-logical-type (dat/parquet:parquet-object)
3.244+(defclass parquet-logical-type (parquet-object)
3.245 ((string :initarg :string :initform nil :type
3.246 (or null parquet-string-type))
3.247 (map :initarg :map :initform nil :type (or null parquet-map-type))
3.248@@ -328,7 +251,7 @@
3.249 SchemaElement must also set the corresponding ConvertedType (if any)
3.250 from the following table.
3.251 "))
3.252-(defclass parquet-schema-element (dat/parquet:parquet-object)
3.253+(defclass parquet-schema-element (parquet-object)
3.254 ((type :documentation
3.255 "Data type for this field. Not set if the current element is a non-leaf node
3.256 "
3.257@@ -392,7 +315,7 @@
3.258 - if it is a primitive type (leaf) then type is defined and num_children is undefined
3.259 the nodes are listed in depth first traversal order.
3.260 "))
3.261-(defclass parquet-data-page-header (dat/parquet:parquet-object)
3.262+(defclass parquet-data-page-header (parquet-object)
3.263 ((num-values :documentation
3.264 "Number of values, including NULLs, in this data page.
3.265
3.266@@ -420,8 +343,8 @@
3.267 (or null parquet-statistics)))
3.268 (:documentation "Data page header
3.269 "))
3.270-(defclass parquet-index-page-header (dat/parquet:parquet-object) nil)
3.271-(defclass parquet-dictionary-page-header (dat/parquet:parquet-object)
3.272+(defclass parquet-index-page-header (parquet-object) nil)
3.273+(defclass parquet-dictionary-page-header (parquet-object)
3.274 ((num-values :documentation "Number of values in the dictionary *
3.275 "
3.276 :initarg :num-values :type (signed-byte 32))
3.277@@ -438,7 +361,7 @@
3.278 can be placed in a column chunk.
3.279
3.280 "))
3.281-(defclass parquet-data-page-header-v2 (dat/parquet:parquet-object)
3.282+(defclass parquet-data-page-header-v2 (parquet-object)
3.283 ((num-values :documentation
3.284 "Number of values, including NULLs, in this data page. *
3.285 "
3.286@@ -483,10 +406,10 @@
3.287 The remaining section containing the data is compressed if is_compressed is true
3.288
3.289 "))
3.290-(defclass parquet-split-block-algorithm (dat/parquet:parquet-object) nil
3.291+(defclass parquet-split-block-algorithm (parquet-object) nil
3.292 (:documentation "Block-based algorithm type annotation. *
3.293 "))
3.294-(defclass parquet-bloom-filter-algorithm (dat/parquet:parquet-object)
3.295+(defclass parquet-bloom-filter-algorithm (parquet-object)
3.296 ((block :documentation
3.297 "Block-based Bloom filter. *
3.298 "
3.299@@ -498,13 +421,13 @@
3.300 (or null parquet-split-block-algorithm)))
3.301 (:documentation "The algorithm used in Bloom filter. *
3.302 "))
3.303-(defclass parquet-xx-hash (dat/parquet:parquet-object) nil
3.304+(defclass parquet-xx-hash (parquet-object) nil
3.305 (:documentation
3.306 "Hash strategy type annotation. xxHash is an extremely fast non-cryptographic hash
3.307 algorithm. It uses 64 bits version of xxHash.
3.308
3.309 "))
3.310-(defclass parquet-bloom-filter-hash (dat/parquet:parquet-object)
3.311+(defclass parquet-bloom-filter-hash (parquet-object)
3.312 ((xxhash :documentation "xxHash Strategy. *
3.313 "
3.314 :initarg :xxhash :initform nil :type (or null parquet-xx-hash)))
3.315@@ -513,14 +436,14 @@
3.316 using plain encoding.
3.317
3.318 "))
3.319-(defclass parquet-uncompressed (dat/parquet:parquet-object) nil
3.320+(defclass parquet-uncompressed (parquet-object) nil
3.321 (:documentation "The compression used in the Bloom filter.
3.322
3.323 "))
3.324-(defclass parquet-bloom-filter-compression (dat/parquet:parquet-object)
3.325+(defclass parquet-bloom-filter-compression (parquet-object)
3.326 ((uncompressed :initarg :uncompressed :initform nil :type
3.327 (or null parquet-uncompressed))))
3.328-(defclass parquet-bloom-filter-header (dat/parquet:parquet-object)
3.329+(defclass parquet-bloom-filter-header (parquet-object)
3.330 ((numbytes :documentation "The size of bitset in bytes *
3.331 "
3.332 :initarg :numbytes :type (signed-byte 32))
3.333@@ -539,7 +462,7 @@
3.334 and followed by its bitset.
3.335
3.336 "))
3.337-(defclass parquet-page-header (dat/parquet:parquet-object)
3.338+(defclass parquet-page-header (parquet-object)
3.339 ((type :documentation
3.340 "the type of the page: indicates which of the *_header fields is set *
3.341 "
3.342@@ -579,12 +502,12 @@
3.343 nil :type (or null parquet-dictionary-page-header))
3.344 (data-page-header-v2 :initarg :data-page-header-v2 :initform nil
3.345 :type (or null parquet-data-page-header-v2))))
3.346-(defclass parquet-key-value (dat/parquet:parquet-object)
3.347+(defclass parquet-key-value (parquet-object)
3.348 ((key :initarg :key :type string)
3.349 (value :initarg :value :initform nil :type (or null string)))
3.350 (:documentation "Wrapper struct to store key values
3.351 "))
3.352-(defclass parquet-sorting-column (dat/parquet:parquet-object)
3.353+(defclass parquet-sorting-column (parquet-object)
3.354 ((column-idx :documentation
3.355 "The ordinal position of the column (in this row group) *
3.356 "
3.357@@ -600,7 +523,7 @@
3.358 :initarg :nulls-first :type boolean))
3.359 (:documentation "Sort order within a RowGroup of a leaf column
3.360 "))
3.361-(defclass parquet-page-encoding-stats (dat/parquet:parquet-object)
3.362+(defclass parquet-page-encoding-stats (parquet-object)
3.363 ((page-type :documentation "the page type (data\\dic\\...) *
3.364 "
3.365 :initarg :page-type :type parquet-page-type)
3.366@@ -613,7 +536,7 @@
3.367 :initarg :count :type (signed-byte 32)))
3.368 (:documentation "statistics of a given page type and encoding
3.369 "))
3.370-(defclass parquet-column-meta-data (dat/parquet:parquet-object)
3.371+(defclass parquet-column-meta-data (parquet-object)
3.372 ((type :documentation "Type of this column *
3.373 "
3.374 :initarg :type :type parquet-type)
3.375@@ -693,8 +616,8 @@
3.376 (or null parquet-size-statistics)))
3.377 (:documentation "Description for column metadata
3.378 "))
3.379-(defclass parquet-encryption-with-footer-key (dat/parquet:parquet-object) nil)
3.380-(defclass parquet-encryption-with-column-key (dat/parquet:parquet-object)
3.381+(defclass parquet-encryption-with-footer-key (parquet-object) nil)
3.382+(defclass parquet-encryption-with-column-key (parquet-object)
3.383 ((path-in-schema :documentation "Column path in schema *
3.384 "
3.385 :initarg :path-in-schema :type (vector string))
3.386@@ -702,12 +625,12 @@
3.387 "Retrieval metadata of column encryption key *
3.388 "
3.389 :initarg :key-metadata :initform nil :type (or null octet-vector))))
3.390-(defclass parquet-column-crypto-meta-data (dat/parquet:parquet-object)
3.391+(defclass parquet-column-crypto-meta-data (parquet-object)
3.392 ((encryption-with-footer-key :initarg :encryption-with-footer-key
3.393 :initform nil :type (or null parquet-encryption-with-footer-key))
3.394 (encryption-with-column-key :initarg :encryption-with-column-key
3.395 :initform nil :type (or null parquet-encryption-with-column-key))))
3.396-(defclass parquet-column-chunk (dat/parquet:parquet-object)
3.397+(defclass parquet-column-chunk (parquet-object)
3.398 ((file-path :documentation
3.399 "File where column data is stored. If not set, assumed to be same file as
3.400 metadata. This path is relative to the current file.
3.401@@ -764,7 +687,7 @@
3.402 "
3.403 :initarg :encrypted-column-metadata :initform nil :type
3.404 (or null octet-vector))))
3.405-(defclass parquet-row-group (dat/parquet:parquet-object)
3.406+(defclass parquet-row-group (parquet-object)
3.407 ((columns :documentation
3.408 "Metadata for each column chunk in this row group.
3.409 This list must have the same order as the SchemaElement list in FileMetaData.
3.410@@ -799,11 +722,11 @@
3.411 (ordinal :documentation "Row group ordinal in the file *
3.412 "
3.413 :initarg :ordinal :initform nil :type (or null (signed-byte 16)))))
3.414-(defclass parquet-type-defined-order (dat/parquet:parquet-object) nil
3.415+(defclass parquet-type-defined-order (parquet-object) nil
3.416 (:documentation
3.417 "Empty struct to signal the order defined by the physical or logical type
3.418 "))
3.419-(defclass parquet-column-order (dat/parquet:parquet-object)
3.420+(defclass parquet-column-order (parquet-object)
3.421 ((type-order :documentation "The sort orders for logical types are:
3.422 UTF8 - unsigned byte-wise comparison
3.423 INT8 - signed comparison
3.424@@ -867,7 +790,7 @@
3.425 If the reader does not support the value of this union, min and max stats
3.426 for this column should be ignored.
3.427 "))
3.428-(defclass parquet-page-location (dat/parquet:parquet-object)
3.429+(defclass parquet-page-location (parquet-object)
3.430 ((offset :documentation "Offset of the page in the file *
3.431 "
3.432 :initarg :offset :type (signed-byte 64))
3.433@@ -882,7 +805,7 @@
3.434 (repetition_level = 0).
3.435 "
3.436 :initarg :first-row-index :type (signed-byte 64))))
3.437-(defclass parquet-offset-index (dat/parquet:parquet-object)
3.438+(defclass parquet-offset-index (parquet-object)
3.439 ((page-locations :documentation
3.440 "PageLocations, ordered by increasing PageLocation.offset. It is required
3.441 that page_locations[i].first_row_index < page_locations[i+1].first_row_index.
3.442@@ -902,7 +825,7 @@
3.443
3.444 OffsetIndex may be present even if ColumnIndex is not.
3.445 "))
3.446-(defclass parquet-column-index (dat/parquet:parquet-object)
3.447+(defclass parquet-column-index (parquet-object)
3.448 ((null-pages :documentation
3.449 "A list of Boolean values to determine the validity of the corresponding
3.450 min and max values. If true, a page contains only null values, and writers
3.451@@ -966,7 +889,7 @@
3.452 For each field in this structure, <field>[i] refers to the page at
3.453 OffsetIndex.page_locations[i]
3.454 "))
3.455-(defclass parquet-aes-gcm-v1 (dat/parquet:parquet-object)
3.456+(defclass parquet-aes-gcm-v1 (parquet-object)
3.457 ((aad-prefix :documentation "AAD prefix *
3.458 "
3.459 :initarg :aad-prefix :initform nil :type (or null octet-vector))
3.460@@ -980,7 +903,7 @@
3.461 readers must supply the prefix *
3.462 "
3.463 :initarg :supply-aad-prefix :initform nil :type (or null boolean))))
3.464-(defclass parquet-aes-gcm-ctr-v1 (dat/parquet:parquet-object)
3.465+(defclass parquet-aes-gcm-ctr-v1 (parquet-object)
3.466 ((aad-prefix :documentation "AAD prefix *
3.467 "
3.468 :initarg :aad-prefix :initform nil :type (or null octet-vector))
3.469@@ -994,12 +917,12 @@
3.470 readers must supply the prefix *
3.471 "
3.472 :initarg :supply-aad-prefix :initform nil :type (or null boolean))))
3.473-(defclass parquet-encryption-algorithm (dat/parquet:parquet-object)
3.474+(defclass parquet-encryption-algorithm (parquet-object)
3.475 ((aes-gcm-v1 :initarg :aes-gcm-v1 :initform nil :type
3.476 (or null parquet-aes-gcm-v1))
3.477 (aes-gcm-ctr-v1 :initarg :aes-gcm-ctr-v1 :initform nil :type
3.478 (or null parquet-aes-gcm-ctr-v1))))
3.479-(defclass parquet-file-meta-data (dat/parquet:parquet-object)
3.480+(defclass parquet-file-meta-data (parquet-object)
3.481 ((version :documentation "Version of this file *
3.482 "
3.483 :initarg :version :type (signed-byte 32))
3.484@@ -1062,7 +985,7 @@
3.485 (or null octet-vector)))
3.486 (:documentation "Description for file metadata
3.487 "))
3.488-(defclass parquet-file-crypto-meta-data (dat/parquet:parquet-object)
3.489+(defclass parquet-file-crypto-meta-data (parquet-object)
3.490 ((encryption-algorithm :documentation
3.491 "Encryption algorithm. This field is only used for files
3.492 with encrypted footer. Files with plaintext footer store algorithm id