1.1--- a/lisp/lib/dat/parquet/thrift.lisp Sun Sep 08 12:24:33 2024 -0400
1.2+++ b/lisp/lib/dat/parquet/thrift.lisp Sun Sep 08 17:35:03 2024 -0400
1.3@@ -10,111 +10,34 @@
1.4 ;;; Code:
1.5 (in-package :dat/parquet)
1.6
1.7-(defun parquet-json-types ()
1.8- (mapcar
1.9- (lambda (x)
1.10- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
1.11- (parquet-json-enum-getf "Type")))
1.12-(defparameter *parquet-types* (parquet-json-types))
1.13-(defun parquet-json-converted-types ()
1.14- (mapcar
1.15- (lambda (x)
1.16- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
1.17- (parquet-json-enum-getf "ConvertedType")))
1.18-(defparameter *parquet-converted-types* (parquet-json-converted-types))
1.19-(defun parquet-json-field-repetition-types ()
1.20- (mapcar
1.21- (lambda (x)
1.22- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
1.23- (parquet-json-enum-getf "FieldRepetitionType")))
1.24-(defparameter *parquet-field-repetition-types*
1.25- (parquet-json-field-repetition-types))
1.26-(defun parquet-json-encodings ()
1.27- (mapcar
1.28- (lambda (x)
1.29- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
1.30- (parquet-json-enum-getf "Encoding")))
1.31-(defparameter *parquet-encodings* (parquet-json-encodings))
1.32-(defun parquet-json-compression-codecs ()
1.33- (mapcar
1.34- (lambda (x)
1.35- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
1.36- (parquet-json-enum-getf "CompressionCodec")))
1.37-(defparameter *parquet-compression-codecs* (parquet-json-compression-codecs))
1.38-(defun parquet-json-page-types ()
1.39- (mapcar
1.40- (lambda (x)
1.41- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
1.42- (parquet-json-enum-getf "PageType")))
1.43-(defparameter *parquet-page-types* (parquet-json-page-types))
1.44-(defun parquet-json-boundary-orders ()
1.45- (mapcar
1.46- (lambda (x)
1.47- (keywordicate (snakecase-name-to-lisp-name (json-getf x "name"))))
1.48- (parquet-json-enum-getf "BoundaryOrder")))
1.49-(defparameter *parquet-boundary-orders* (parquet-json-boundary-orders))
1.50-(eval-when (:compile-toplevel :load-toplevel :execute)
1.51- (sb-impl::%deftype 'parquet-boolean
1.52- (sb-impl::constant-type-expander 'parquet-boolean
1.53- (progn 'boolean))
1.54- (sb-c:source-location)))
1.55-(eval-when (:compile-toplevel :load-toplevel :execute)
1.56- (sb-impl::%deftype 'parquet-int32
1.57- (sb-impl::constant-type-expander 'parquet-int32
1.58- (progn
1.59- '(signed-byte 32)))
1.60- (sb-c:source-location)))
1.61-(eval-when (:compile-toplevel :load-toplevel :execute)
1.62- (sb-impl::%deftype 'parquet-int64
1.63- (sb-impl::constant-type-expander 'parquet-int64
1.64- (progn
1.65- '(signed-byte 64)))
1.66- (sb-c:source-location)))
1.67-(eval-when (:compile-toplevel :load-toplevel :execute)
1.68- (sb-impl::%deftype 'parquet-int96
1.69- (sb-impl::constant-type-expander 'parquet-int96
1.70- (progn
1.71- '(signed-byte 96)))
1.72- (sb-c:source-location)))
1.73-(eval-when (:compile-toplevel :load-toplevel :execute)
1.74- (sb-impl::%deftype 'parquet-float
1.75- (sb-impl::constant-type-expander 'parquet-float
1.76- (progn 'float))
1.77- (sb-c:source-location)))
1.78-(eval-when (:compile-toplevel :load-toplevel :execute)
1.79- (sb-impl::%deftype 'parquet-double
1.80- (sb-impl::constant-type-expander 'parquet-double
1.81- (progn 'double-float))
1.82- (sb-c:source-location)))
1.83-(eval-when (:compile-toplevel :load-toplevel :execute)
1.84- (sb-impl::%deftype 'parquet-byte-array
1.85- (sb-int:named-lambda (sb-impl::type-expander
1.86- parquet-byte-array)
1.87- (#:expr)
1.88- (declare (sb-c::lambda-list (&optional size)))
1.89- (sb-int:named-ds-bind (:macro parquet-byte-array
1.90- . deftype)
1.91- (&optional size)
1.92- (cdr #:expr)
1.93- (declare (sb-c::constant-value size))
1.94- (block parquet-byte-array `(octet-vector ,size))))
1.95- nil))
1.96-(eval-when (:compile-toplevel :load-toplevel :execute)
1.97- (sb-impl::%deftype 'parquet-fixed-len-byte-array
1.98- (sb-int:named-lambda (sb-impl::type-expander
1.99- parquet-fixed-len-byte-array)
1.100- (#:expr)
1.101- (declare (sb-c::lambda-list (size)))
1.102- (sb-int:named-ds-bind (:macro
1.103- parquet-fixed-len-byte-array
1.104- . deftype)
1.105- (size)
1.106- (cdr #:expr)
1.107- (declare (sb-c::constant-value size))
1.108- (block parquet-fixed-len-byte-array
1.109- `(octet-vector ,size))))
1.110- nil))
1.111-(defclass parquet-size-statistics (dat/parquet:parquet-object)
1.112+(defvar *parquet-json-types*
1.113+ '(:boolean :int32 :int64 :int96 :float :double :byte-array
1.114+ :fixed-len-byte-array))
1.115+(defvar *parquet-json-converted-types*
1.116+ '(:utf8 :map :map-key-value :list :enum :decimal :date :time-millis
1.117+ :time-micros :timestamp-millis :timestamp-micros :uint-8 :uint-16 :uint-32
1.118+ :uint-64 :int-8 :int-16 :int-32 :int-64 :json :bson :interval))
1.119+(defvar *parquet-json-field-repetition-types* '(:required :optional :repeated))
1.120+(defvar *parquet-json-encodings*
1.121+ '(:plain :plain-dictionary :rle :bit-packed :delta-binary-packed
1.122+ :delta-length-byte-array :delta-byte-array :rle-dictionary
1.123+ :byte-stream-split))
1.124+(defvar *parquet-json-compression-codecs*
1.125+ '(:uncompressed :snappy :gzip :lzo :brotli :lz4 :zstd :lz4-raw))
1.126+(defvar *parquet-json-page-types*
1.127+ '(:data-page :index-page :dictionary-page :data-page-v2))
1.128+(defvar *parquet-json-boundary-orders* '(:unordered :ascending :descending))
1.129+(deftype parquet-boolean () 'boolean)
1.130+(deftype parquet-int32 () '(signed-byte 32))
1.131+(deftype parquet-int64 () '(signed-byte 64))
1.132+(deftype parquet-int96 () '(signed-byte 96))
1.133+(deftype parquet-float () 'float)
1.134+(deftype parquet-double () 'double-float)
1.135+(deftype parquet-byte-array (&optional dat/parquet/gen::size)
1.136+ `(octet-vector ,dat/parquet/gen::size))
1.137+(deftype parquet-fixed-len-byte-array (dat/parquet/gen::size)
1.138+ `(octet-vector ,dat/parquet/gen::size))
1.139+(defclass parquet-size-statistics (parquet-object)
1.140 ((unencoded-byte-array-data-bytes :documentation
1.141 "The number of physical bytes stored for BYTE_ARRAY data values assuming
1.142 no encoding. This is exclusive of the bytes needed to store the length of
1.143@@ -163,7 +86,7 @@
1.144 in this structure can help determine the number of nulls at a particular
1.145 nesting level and maximum length of lists).
1.146 "))
1.147-(defclass parquet-statistics (dat/parquet:parquet-object)
1.148+(defclass parquet-statistics (parquet-object)
1.149 ((max :documentation
1.150 "DEPRECATED: min and max value of the column. Use min_value and max_value.
1.151
1.152@@ -214,16 +137,16 @@
1.153 (:documentation "Statistics per row group and per page
1.154 All fields are optional.
1.155 "))
1.156-(defclass parquet-string-type (dat/parquet:parquet-object) nil
1.157+(defclass parquet-string-type (parquet-object) nil
1.158 (:documentation "Empty structs to use as logical type annotations
1.159 "))
1.160-(defclass parquet-uuid-type (dat/parquet:parquet-object) nil)
1.161-(defclass parquet-map-type (dat/parquet:parquet-object) nil)
1.162-(defclass parquet-list-type (dat/parquet:parquet-object) nil)
1.163-(defclass parquet-enum-type (dat/parquet:parquet-object) nil)
1.164-(defclass parquet-date-type (dat/parquet:parquet-object) nil)
1.165-(defclass parquet-float16-type (dat/parquet:parquet-object) nil)
1.166-(defclass parquet-null-type (dat/parquet:parquet-object) nil
1.167+(defclass parquet-uuid-type (parquet-object) nil)
1.168+(defclass parquet-map-type (parquet-object) nil)
1.169+(defclass parquet-list-type (parquet-object) nil)
1.170+(defclass parquet-enum-type (parquet-object) nil)
1.171+(defclass parquet-date-type (parquet-object) nil)
1.172+(defclass parquet-float16-type (parquet-object) nil)
1.173+(defclass parquet-null-type (parquet-object) nil
1.174 (:documentation
1.175 "Logical type to annotate a column that is always null.
1.176
1.177@@ -231,7 +154,7 @@
1.178 null and the physical type can't be determined. This annotation signals
1.179 the case where the physical type was guessed from all null values.
1.180 "))
1.181-(defclass parquet-decimal-type (dat/parquet:parquet-object)
1.182+(defclass parquet-decimal-type (parquet-object)
1.183 ((scale :initarg :scale :type (signed-byte 32))
1.184 (precision :initarg :precision :type (signed-byte 32)))
1.185 (:documentation "Decimal logical type annotation
1.186@@ -244,33 +167,33 @@
1.187
1.188 Allowed for physical types: INT32, INT64, FIXED_LEN_BYTE_ARRAY, and BYTE_ARRAY.
1.189 "))
1.190-(defclass parquet-milli-seconds (dat/parquet:parquet-object) nil
1.191+(defclass parquet-milli-seconds (parquet-object) nil
1.192 (:documentation "Time units for logical types
1.193 "))
1.194-(defclass parquet-micro-seconds (dat/parquet:parquet-object) nil)
1.195-(defclass parquet-nano-seconds (dat/parquet:parquet-object) nil)
1.196-(defclass parquet-time-unit (dat/parquet:parquet-object)
1.197+(defclass parquet-micro-seconds (parquet-object) nil)
1.198+(defclass parquet-nano-seconds (parquet-object) nil)
1.199+(defclass parquet-time-unit (parquet-object)
1.200 ((millis :initarg :millis :initform nil :type
1.201 (or null parquet-milli-seconds))
1.202 (micros :initarg :micros :initform nil :type
1.203 (or null parquet-micro-seconds))
1.204 (nanos :initarg :nanos :initform nil :type
1.205 (or null parquet-nano-seconds))))
1.206-(defclass parquet-timestamp-type (dat/parquet:parquet-object)
1.207+(defclass parquet-timestamp-type (parquet-object)
1.208 ((isadjustedtoutc :initarg :isadjustedtoutc :type boolean)
1.209 (unit :initarg :unit :type parquet-time-unit))
1.210 (:documentation "Timestamp logical type annotation
1.211
1.212 Allowed for physical types: INT64
1.213 "))
1.214-(defclass parquet-time-type (dat/parquet:parquet-object)
1.215+(defclass parquet-time-type (parquet-object)
1.216 ((isadjustedtoutc :initarg :isadjustedtoutc :type boolean)
1.217 (unit :initarg :unit :type parquet-time-unit))
1.218 (:documentation "Time logical type annotation
1.219
1.220 Allowed for physical types: INT32 (millis), INT64 (micros, nanos)
1.221 "))
1.222-(defclass parquet-int-type (dat/parquet:parquet-object)
1.223+(defclass parquet-int-type (parquet-object)
1.224 ((bitwidth :initarg :bitwidth)
1.225 (issigned :initarg :issigned :type boolean))
1.226 (:documentation "Integer logical type annotation
1.227@@ -279,17 +202,17 @@
1.228
1.229 Allowed for physical types: INT32, INT64
1.230 "))
1.231-(defclass parquet-json-type (dat/parquet:parquet-object) nil
1.232+(defclass parquet-json-type (parquet-object) nil
1.233 (:documentation "Embedded JSON logical type annotation
1.234
1.235 Allowed for physical types: BYTE_ARRAY
1.236 "))
1.237-(defclass parquet-bson-type (dat/parquet:parquet-object) nil
1.238+(defclass parquet-bson-type (parquet-object) nil
1.239 (:documentation "Embedded BSON logical type annotation
1.240
1.241 Allowed for physical types: BYTE_ARRAY
1.242 "))
1.243-(defclass parquet-logical-type (dat/parquet:parquet-object)
1.244+(defclass parquet-logical-type (parquet-object)
1.245 ((string :initarg :string :initform nil :type
1.246 (or null parquet-string-type))
1.247 (map :initarg :map :initform nil :type (or null parquet-map-type))
1.248@@ -328,7 +251,7 @@
1.249 SchemaElement must also set the corresponding ConvertedType (if any)
1.250 from the following table.
1.251 "))
1.252-(defclass parquet-schema-element (dat/parquet:parquet-object)
1.253+(defclass parquet-schema-element (parquet-object)
1.254 ((type :documentation
1.255 "Data type for this field. Not set if the current element is a non-leaf node
1.256 "
1.257@@ -392,7 +315,7 @@
1.258 - if it is a primitive type (leaf) then type is defined and num_children is undefined
1.259 the nodes are listed in depth first traversal order.
1.260 "))
1.261-(defclass parquet-data-page-header (dat/parquet:parquet-object)
1.262+(defclass parquet-data-page-header (parquet-object)
1.263 ((num-values :documentation
1.264 "Number of values, including NULLs, in this data page.
1.265
1.266@@ -420,8 +343,8 @@
1.267 (or null parquet-statistics)))
1.268 (:documentation "Data page header
1.269 "))
1.270-(defclass parquet-index-page-header (dat/parquet:parquet-object) nil)
1.271-(defclass parquet-dictionary-page-header (dat/parquet:parquet-object)
1.272+(defclass parquet-index-page-header (parquet-object) nil)
1.273+(defclass parquet-dictionary-page-header (parquet-object)
1.274 ((num-values :documentation "Number of values in the dictionary *
1.275 "
1.276 :initarg :num-values :type (signed-byte 32))
1.277@@ -438,7 +361,7 @@
1.278 can be placed in a column chunk.
1.279
1.280 "))
1.281-(defclass parquet-data-page-header-v2 (dat/parquet:parquet-object)
1.282+(defclass parquet-data-page-header-v2 (parquet-object)
1.283 ((num-values :documentation
1.284 "Number of values, including NULLs, in this data page. *
1.285 "
1.286@@ -483,10 +406,10 @@
1.287 The remaining section containing the data is compressed if is_compressed is true
1.288
1.289 "))
1.290-(defclass parquet-split-block-algorithm (dat/parquet:parquet-object) nil
1.291+(defclass parquet-split-block-algorithm (parquet-object) nil
1.292 (:documentation "Block-based algorithm type annotation. *
1.293 "))
1.294-(defclass parquet-bloom-filter-algorithm (dat/parquet:parquet-object)
1.295+(defclass parquet-bloom-filter-algorithm (parquet-object)
1.296 ((block :documentation
1.297 "Block-based Bloom filter. *
1.298 "
1.299@@ -498,13 +421,13 @@
1.300 (or null parquet-split-block-algorithm)))
1.301 (:documentation "The algorithm used in Bloom filter. *
1.302 "))
1.303-(defclass parquet-xx-hash (dat/parquet:parquet-object) nil
1.304+(defclass parquet-xx-hash (parquet-object) nil
1.305 (:documentation
1.306 "Hash strategy type annotation. xxHash is an extremely fast non-cryptographic hash
1.307 algorithm. It uses 64 bits version of xxHash.
1.308
1.309 "))
1.310-(defclass parquet-bloom-filter-hash (dat/parquet:parquet-object)
1.311+(defclass parquet-bloom-filter-hash (parquet-object)
1.312 ((xxhash :documentation "xxHash Strategy. *
1.313 "
1.314 :initarg :xxhash :initform nil :type (or null parquet-xx-hash)))
1.315@@ -513,14 +436,14 @@
1.316 using plain encoding.
1.317
1.318 "))
1.319-(defclass parquet-uncompressed (dat/parquet:parquet-object) nil
1.320+(defclass parquet-uncompressed (parquet-object) nil
1.321 (:documentation "The compression used in the Bloom filter.
1.322
1.323 "))
1.324-(defclass parquet-bloom-filter-compression (dat/parquet:parquet-object)
1.325+(defclass parquet-bloom-filter-compression (parquet-object)
1.326 ((uncompressed :initarg :uncompressed :initform nil :type
1.327 (or null parquet-uncompressed))))
1.328-(defclass parquet-bloom-filter-header (dat/parquet:parquet-object)
1.329+(defclass parquet-bloom-filter-header (parquet-object)
1.330 ((numbytes :documentation "The size of bitset in bytes *
1.331 "
1.332 :initarg :numbytes :type (signed-byte 32))
1.333@@ -539,7 +462,7 @@
1.334 and followed by its bitset.
1.335
1.336 "))
1.337-(defclass parquet-page-header (dat/parquet:parquet-object)
1.338+(defclass parquet-page-header (parquet-object)
1.339 ((type :documentation
1.340 "the type of the page: indicates which of the *_header fields is set *
1.341 "
1.342@@ -579,12 +502,12 @@
1.343 nil :type (or null parquet-dictionary-page-header))
1.344 (data-page-header-v2 :initarg :data-page-header-v2 :initform nil
1.345 :type (or null parquet-data-page-header-v2))))
1.346-(defclass parquet-key-value (dat/parquet:parquet-object)
1.347+(defclass parquet-key-value (parquet-object)
1.348 ((key :initarg :key :type string)
1.349 (value :initarg :value :initform nil :type (or null string)))
1.350 (:documentation "Wrapper struct to store key values
1.351 "))
1.352-(defclass parquet-sorting-column (dat/parquet:parquet-object)
1.353+(defclass parquet-sorting-column (parquet-object)
1.354 ((column-idx :documentation
1.355 "The ordinal position of the column (in this row group) *
1.356 "
1.357@@ -600,7 +523,7 @@
1.358 :initarg :nulls-first :type boolean))
1.359 (:documentation "Sort order within a RowGroup of a leaf column
1.360 "))
1.361-(defclass parquet-page-encoding-stats (dat/parquet:parquet-object)
1.362+(defclass parquet-page-encoding-stats (parquet-object)
1.363 ((page-type :documentation "the page type (data\\dic\\...) *
1.364 "
1.365 :initarg :page-type :type parquet-page-type)
1.366@@ -613,7 +536,7 @@
1.367 :initarg :count :type (signed-byte 32)))
1.368 (:documentation "statistics of a given page type and encoding
1.369 "))
1.370-(defclass parquet-column-meta-data (dat/parquet:parquet-object)
1.371+(defclass parquet-column-meta-data (parquet-object)
1.372 ((type :documentation "Type of this column *
1.373 "
1.374 :initarg :type :type parquet-type)
1.375@@ -693,8 +616,8 @@
1.376 (or null parquet-size-statistics)))
1.377 (:documentation "Description for column metadata
1.378 "))
1.379-(defclass parquet-encryption-with-footer-key (dat/parquet:parquet-object) nil)
1.380-(defclass parquet-encryption-with-column-key (dat/parquet:parquet-object)
1.381+(defclass parquet-encryption-with-footer-key (parquet-object) nil)
1.382+(defclass parquet-encryption-with-column-key (parquet-object)
1.383 ((path-in-schema :documentation "Column path in schema *
1.384 "
1.385 :initarg :path-in-schema :type (vector string))
1.386@@ -702,12 +625,12 @@
1.387 "Retrieval metadata of column encryption key *
1.388 "
1.389 :initarg :key-metadata :initform nil :type (or null octet-vector))))
1.390-(defclass parquet-column-crypto-meta-data (dat/parquet:parquet-object)
1.391+(defclass parquet-column-crypto-meta-data (parquet-object)
1.392 ((encryption-with-footer-key :initarg :encryption-with-footer-key
1.393 :initform nil :type (or null parquet-encryption-with-footer-key))
1.394 (encryption-with-column-key :initarg :encryption-with-column-key
1.395 :initform nil :type (or null parquet-encryption-with-column-key))))
1.396-(defclass parquet-column-chunk (dat/parquet:parquet-object)
1.397+(defclass parquet-column-chunk (parquet-object)
1.398 ((file-path :documentation
1.399 "File where column data is stored. If not set, assumed to be same file as
1.400 metadata. This path is relative to the current file.
1.401@@ -764,7 +687,7 @@
1.402 "
1.403 :initarg :encrypted-column-metadata :initform nil :type
1.404 (or null octet-vector))))
1.405-(defclass parquet-row-group (dat/parquet:parquet-object)
1.406+(defclass parquet-row-group (parquet-object)
1.407 ((columns :documentation
1.408 "Metadata for each column chunk in this row group.
1.409 This list must have the same order as the SchemaElement list in FileMetaData.
1.410@@ -799,11 +722,11 @@
1.411 (ordinal :documentation "Row group ordinal in the file *
1.412 "
1.413 :initarg :ordinal :initform nil :type (or null (signed-byte 16)))))
1.414-(defclass parquet-type-defined-order (dat/parquet:parquet-object) nil
1.415+(defclass parquet-type-defined-order (parquet-object) nil
1.416 (:documentation
1.417 "Empty struct to signal the order defined by the physical or logical type
1.418 "))
1.419-(defclass parquet-column-order (dat/parquet:parquet-object)
1.420+(defclass parquet-column-order (parquet-object)
1.421 ((type-order :documentation "The sort orders for logical types are:
1.422 UTF8 - unsigned byte-wise comparison
1.423 INT8 - signed comparison
1.424@@ -867,7 +790,7 @@
1.425 If the reader does not support the value of this union, min and max stats
1.426 for this column should be ignored.
1.427 "))
1.428-(defclass parquet-page-location (dat/parquet:parquet-object)
1.429+(defclass parquet-page-location (parquet-object)
1.430 ((offset :documentation "Offset of the page in the file *
1.431 "
1.432 :initarg :offset :type (signed-byte 64))
1.433@@ -882,7 +805,7 @@
1.434 (repetition_level = 0).
1.435 "
1.436 :initarg :first-row-index :type (signed-byte 64))))
1.437-(defclass parquet-offset-index (dat/parquet:parquet-object)
1.438+(defclass parquet-offset-index (parquet-object)
1.439 ((page-locations :documentation
1.440 "PageLocations, ordered by increasing PageLocation.offset. It is required
1.441 that page_locations[i].first_row_index < page_locations[i+1].first_row_index.
1.442@@ -902,7 +825,7 @@
1.443
1.444 OffsetIndex may be present even if ColumnIndex is not.
1.445 "))
1.446-(defclass parquet-column-index (dat/parquet:parquet-object)
1.447+(defclass parquet-column-index (parquet-object)
1.448 ((null-pages :documentation
1.449 "A list of Boolean values to determine the validity of the corresponding
1.450 min and max values. If true, a page contains only null values, and writers
1.451@@ -966,7 +889,7 @@
1.452 For each field in this structure, <field>[i] refers to the page at
1.453 OffsetIndex.page_locations[i]
1.454 "))
1.455-(defclass parquet-aes-gcm-v1 (dat/parquet:parquet-object)
1.456+(defclass parquet-aes-gcm-v1 (parquet-object)
1.457 ((aad-prefix :documentation "AAD prefix *
1.458 "
1.459 :initarg :aad-prefix :initform nil :type (or null octet-vector))
1.460@@ -980,7 +903,7 @@
1.461 readers must supply the prefix *
1.462 "
1.463 :initarg :supply-aad-prefix :initform nil :type (or null boolean))))
1.464-(defclass parquet-aes-gcm-ctr-v1 (dat/parquet:parquet-object)
1.465+(defclass parquet-aes-gcm-ctr-v1 (parquet-object)
1.466 ((aad-prefix :documentation "AAD prefix *
1.467 "
1.468 :initarg :aad-prefix :initform nil :type (or null octet-vector))
1.469@@ -994,12 +917,12 @@
1.470 readers must supply the prefix *
1.471 "
1.472 :initarg :supply-aad-prefix :initform nil :type (or null boolean))))
1.473-(defclass parquet-encryption-algorithm (dat/parquet:parquet-object)
1.474+(defclass parquet-encryption-algorithm (parquet-object)
1.475 ((aes-gcm-v1 :initarg :aes-gcm-v1 :initform nil :type
1.476 (or null parquet-aes-gcm-v1))
1.477 (aes-gcm-ctr-v1 :initarg :aes-gcm-ctr-v1 :initform nil :type
1.478 (or null parquet-aes-gcm-ctr-v1))))
1.479-(defclass parquet-file-meta-data (dat/parquet:parquet-object)
1.480+(defclass parquet-file-meta-data (parquet-object)
1.481 ((version :documentation "Version of this file *
1.482 "
1.483 :initarg :version :type (signed-byte 32))
1.484@@ -1062,7 +985,7 @@
1.485 (or null octet-vector)))
1.486 (:documentation "Description for file metadata
1.487 "))
1.488-(defclass parquet-file-crypto-meta-data (dat/parquet:parquet-object)
1.489+(defclass parquet-file-crypto-meta-data (parquet-object)
1.490 ((encryption-algorithm :documentation
1.491 "Encryption algorithm. This field is only used for files
1.492 with encrypted footer. Files with plaintext footer store algorithm id