Coverage report: /home/ellis/comp/core/lib/dat/parquet/io.lisp
Kind | Covered | All | % |
expression | 0 | 71 | 0.0 |
branch | 0 | 0 | nil |
Key
Not instrumented
Conditionalized out
Executed
Not executed
Both branches taken
One branch taken
Neither branch taken
1
;;; io.lisp --- Parquet IO
6
(in-package :dat/parquet)
9
(defun parquet-write-magic (stream)
10
(write-string +parquet-magic-number+ stream))
12
(defun parquet-read-magic (stream)
13
(assert (= #.(char-code (aref +parquet-magic-number+ 0)) (read-byte stream)))
14
(assert (= #.(char-code (aref +parquet-magic-number+ 1)) (read-byte stream)))
15
(assert (= #.(char-code (aref +parquet-magic-number+ 2)) (read-byte stream)))
16
(assert (= #.(char-code (aref +parquet-magic-number+ 3)) (read-byte stream))))
18
(defun parquet-read-unsigned (stream)
19
(read-uleb128 stream))
21
(defun parquet-read-signed (stream)
24
(defun parquet-read-boolean (stream)
25
(ecase (read-byte stream)
29
(defun parquet-file-stream-p (stream)
30
"Assert the start and end of a file STREAM are the parquet magic bytes."
31
(parquet-read-magic stream)
32
;; set position to end - 4
33
(file-position stream (- (the fixnum (file-length stream)) 4))
34
(parquet-read-magic stream))
36
(defun parquet-read-schema-element (stream))
37
(defun parquet-read-schema (stream)
38
"Read a parquet-schema which is repeated list of parquet-schema-element."
42
(defun parquet-read-file-meta-data (stream)
43
"Read a parquet-file-meta-data object from STREAM."
45
(make-instance 'parquet-file-meta-data
46
:version (parquet-read-signed stream)
47
:schema (list (parquet-read-signed stream))))
49
(defun parquet-read-footer (stream)
50
"Read the footer of parquet data in STREAM."
51
(parquet-file-stream-p stream)
52
;; set file-position, read metadata length and magic
53
(file-position stream (- (file-length stream) 8))
54
(let ((len (parquet-read-unsigned stream)))
55
(file-position stream (- (file-length stream) 8 len))
56
(parquet-read-file-meta-data stream)))