├── .gitignore ├── LICENSE ├── Makefile ├── README.org ├── build-scripts └── generate-low-level.lisp ├── cl-apache-arrow.asd └── src ├── arrow-low-level.lisp ├── arrow.lisp ├── package.lisp ├── parquet-low-level.lisp ├── parquet.lisp ├── utils-test.lisp └── utils.lisp /.gitignore: -------------------------------------------------------------------------------- 1 | *.fasl 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | SBCL ?= sbcl --non-interactive 2 | 3 | .PHONY : generate 4 | generate : src/arrow-low-level.lisp src/parquet-low-level.lisp 5 | 6 | .PHONY : src/arrow-low-level.lisp 7 | ARROW_GIR ?= /usr/share/gir-1.0/Arrow-1.0.gir 8 | src/arrow-low-level.lisp : $(ARROW_GIR) build-scripts/generate-low-level.lisp 9 | $(SBCL) --eval '(defparameter *generated-file* "$@")'\ 10 | --eval '(defparameter *gir-file* #P"$<")'\ 11 | --eval '(defparameter *gir-namespace* "Arrow")'\ 12 | --eval '(defparameter *package-name* "#:arrow-low-level")'\ 13 | --load $(word 2,$^) 14 | 15 | .PHONY : src/parquet-low-level.lisp 16 | src/parquet-low-level.lisp : PARQUET_GIR ?= /usr/share/gir-1.0/Parquet-1.0.gir 17 | src/parquet-low-level.lisp : $(PARQUET_GIR) build-scripts/generate-low-level.lisp 18 | $(SBCL) --eval '(defparameter *generated-file* "$@")'\ 19 | --eval '(defparameter *gir-file* #P"$<")'\ 20 | --eval '(defparameter *gir-namespace* "Parquet")'\ 21 | --eval '(defparameter *package-name* "#:parquet-low-level")'\ 22 | --load $(word 2,$^) 23 | -------------------------------------------------------------------------------- /README.org: -------------------------------------------------------------------------------- 1 | #+AUTHOR: Katherine Cox-Buday 2 | 3 | * About 4 | 5 | This is a library for working with Apache [[https://arrow.apache.org/][Arrow]] and [[https://parquet.apache.org/][Parquet]] data. It is a wrapper around the official Apache [[https://github.com/apache/arrow/tree/master/c_glib][GLib library]] using [[https://gi.readthedocs.io/en/latest/index.html][GObject Introspection]], which in turn is a wrapper around the C++ library. 6 | 7 | This system is split into two levels: the low-level code which is almost a 1:1 mapping from the underlying library, and the high-level code which provides a idiomatic Common Lisp API. 8 | 9 | There are also some caveats: 10 | 11 | 1. The code has only been tested on Linux with SBCL. It is intended to be tested with other Lisp implementations. 12 | 2. The generated code has not been tested very broadly, nor deeply. 13 | 3. There are no unit tests written yet. 14 | 15 | * Installation 16 | 17 | I plan to get this into quicklisp. For now, please clone the directory, make ASDF aware of its location, and run =(asdf:load-system :cl-apache-arrow)=. 18 | 19 | This library utilizes [[https://github.com/andy128k/cl-gobject-introspection][cl-gobject-introspection]]. The Arrow and Parquet =.gir= files must be in the search path reported by =(gir:repository-get-search-path)=. If they are not, you can prepend their path(s) via =(gir:repository-prepend-search-path "my-path/")=. 20 | 21 | This library also utilizes =libgobject= and =libarrow= which must be on your CFFI search path. If they are not, you can prepend their path(s) via =(pushnew "path/to/lib" cffi:*foreign-library-directories*)=. 22 | 23 | * How to Work with the Sourcecode 24 | 25 | The low-level code is generated with [[https://github.com/kat-co/gir2cl][gir2cl]] and should not be edited by hand. To regenerate these files, you can run =make generate= while in the root of the source tree. This requires that =gir2cl= is in a location ASDF can find it, and that libgobject is in a place where CFFI can find it. 26 | 27 | For tests, I'm experimenting with the [[https://golang.org][Go]] style of tests where the test files are alongside the source files and appended with ~-test~. The tests are still in a different system and can be run with =(asdf:test-system :cl-apache-arrow)=. 28 | 29 | * How to Utilize the Library 30 | 31 | The high-level portion of the code is currently centered around streamlining writing out Parquet files based on CLOS definitions. A metaclass, =entity-class= is provided which, when used, will allow you to specify =:arrow-type= and =:arrow-field-name= on CLOS classes. 32 | 33 | A function, =schema-from-object=, is also provided which, when passed an instance of this class, will return an Arrow schema, field builders for the schema, and a function for populating the field builders with CLOS objects. 34 | 35 | =schema-from-object= takes in an optional keyword parameter, =:schema=. This takes in a very small DSL specifed in terms of lists. You can specify which columns to include in the schema: ='(foo bar)=, you can specify some of the fields, and a wildcard for the rest: ='(foo *)=, and you can specify lists of nested structures: ='(foo ("my-name" bar *))=. The wildcard will expand into field-names which have not already been requested. 36 | 37 | Here is a complete example: 38 | 39 | #+BEGIN_SRC common-lisp 40 | (defclass my-class () 41 | ((foo :initarg :foo 42 | :type string 43 | ;; This must be an instance of one of the GIR Arrow data 44 | ;; types. You can find functions to make these in the 45 | ;; arrow-low-level package. 46 | :arrow-type (arrow-low-level:make-string-data-type-new) 47 | ;; This will be used as the Arrow field's name. 48 | :arrow-field-name "foo")) 49 | 50 | (:metaclass arrow:entity-class)) 51 | 52 | (let ((fake-entities (loop repeat 10 53 | collect (make-instance 'my-class 54 | :foo (format nil "~a" (gensym)))))) 55 | 56 | (multiple-value-bind (schema field-builders add-obj) 57 | (arrow:schema-from-object 58 | (car fake-entities)) 59 | 60 | (format t "~%Schema:~%~a~%" (arrow-low-level:arrow-schema-to-string schema)) 61 | 62 | (arrow:with-field-builders (field-builders) 63 | (loop for e in fake-entities do (funcall add-obj e))) 64 | 65 | (let ((writer-properties (parquet-low-level:make-parquet-writer-properties-new))) 66 | (parquet-low-level:parquet-writer-properties-set-compression 67 | writer-properties 68 | arrow-low-level:*compression-type-snappy* 69 | nil) 70 | (parquet:with-open-file-writer (writer schema "/tmp/yay.parquet") 71 | (parquet:write-table writer schema field-builders 10))))) 72 | #+END_SRC 73 | 74 | If you don't want this functionality, you can always utilize the lower level Arrow and Parquet functionality. 75 | -------------------------------------------------------------------------------- /build-scripts/generate-low-level.lisp: -------------------------------------------------------------------------------- 1 | (require :asdf) 2 | (require :cffi) 3 | 4 | (handler-case (cffi:load-foreign-library "libgobject-2.0.so") 5 | (t () 6 | (format t "Cannot load the libgobject foreign library. Please make sure it is in a place CFFI can find it.") 7 | (exit))) 8 | 9 | (require :gir2cl) 10 | 11 | (handler-case (asdf:load-system :gir2cl) 12 | (t (c) 13 | (format t "Cannot load the gir2cl system:~&~a" c) 14 | (exit))) 15 | 16 | ;;; The parameters are meant to be passed in via the Makefile. 17 | 18 | (defvar *package-name* "#:my-low-level" 19 | "The package name for the generated code to reside in.") 20 | 21 | (defvar *gir-namespace* "MyNamespace" 22 | "The Gir namespace.") 23 | 24 | (defvar *generated-file* "generated.lisp" 25 | "The file to place the generated code into.") 26 | 27 | (defvar *gir-file* "my.gir" 28 | "The Gir file to read in.") 29 | 30 | (with-open-file (stream *generated-file* :direction :output :if-exists :supersede) 31 | (gir2cl:generate *package-name* *gir-namespace* stream *gir-file*)) 32 | -------------------------------------------------------------------------------- /cl-apache-arrow.asd: -------------------------------------------------------------------------------- 1 | (asdf:defsystem #:cl-apache-arrow 2 | :description "A wrapper around Apache Arrow's C++ library." 3 | :author "Katherine Cox-Buday " 4 | :license "Apache-2.0" 5 | :version "1.0.0" 6 | :depends-on (cl-gobject-introspection 7 | closer-mop 8 | trivial-garbage) 9 | :serial t 10 | :components ((:module "src" 11 | :components 12 | ((:file "package") 13 | (:file "arrow-low-level") 14 | (:file "parquet-low-level") 15 | (:file "arrow") 16 | (:file "parquet") 17 | (:file "utils")))) 18 | :in-order-to ((test-op (test-op "cl-apache-arrow/tests")))) 19 | 20 | (defsystem "cl-apache-arrow/tests" 21 | :description "Test system for cl-apache-arrow" 22 | :author "Katherine Cox-Buday " 23 | :license "Apache-2.0" 24 | :depends-on ("cl-apache-arrow" 25 | "rove") 26 | :components ((:module "src" 27 | :components 28 | ((:file "utils-test") 29 | (:file "arrow-test")))) 30 | :perform (test-op (op c) (symbol-call :rove :run c))) 31 | -------------------------------------------------------------------------------- /src/arrow-low-level.lisp: -------------------------------------------------------------------------------- 1 | ;;;; Generated by gir2cl on Mon, 04 May 2020 23:49:55 +0000 2 | 3 | (in-package #:arrow-low-level) 4 | 5 | (defparameter *ns* (gir:require-namespace "Arrow")) 6 | 7 | (defclass gir-object nil 8 | ((native-pointer :initarg :native-pointer :reader native-pointer))) 9 | 10 | (defclass arrow-array (gir-object) nil) 11 | 12 | (defmethod arrow-array-cast 13 | ((arrow-array arrow-array) target-data-type options) 14 | (with-slots (native-pointer) 15 | arrow-array 16 | (gir:invoke (native-pointer "cast") target-data-type options))) 17 | 18 | (defmethod arrow-array-count ((arrow-array arrow-array) options) 19 | (with-slots (native-pointer) 20 | arrow-array 21 | (gir:invoke (native-pointer "count") options))) 22 | 23 | (defmethod arrow-array-count-values ((arrow-array arrow-array)) 24 | (with-slots (native-pointer) 25 | arrow-array 26 | (gir:invoke (native-pointer "count_values")))) 27 | 28 | (defmethod arrow-array-dictionary-encode ((arrow-array arrow-array)) 29 | (with-slots (native-pointer) 30 | arrow-array 31 | (gir:invoke (native-pointer "dictionary_encode")))) 32 | 33 | (defmethod arrow-array-diff-unified ((arrow-array arrow-array) other-array) 34 | (with-slots (native-pointer) 35 | arrow-array 36 | (gir:invoke (native-pointer "diff_unified") other-array))) 37 | 38 | (defmethod arrow-array-equal ((arrow-array arrow-array) other-array) 39 | (with-slots (native-pointer) 40 | arrow-array 41 | (gir:invoke (native-pointer "equal") other-array))) 42 | 43 | (defmethod arrow-array-equal-approx ((arrow-array arrow-array) other-array) 44 | (with-slots (native-pointer) 45 | arrow-array 46 | (gir:invoke (native-pointer "equal_approx") other-array))) 47 | 48 | (defmethod arrow-array-equal-range 49 | ((arrow-array arrow-array) start-index other-array other-start-index 50 | end-index) 51 | (with-slots (native-pointer) 52 | arrow-array 53 | (gir:invoke (native-pointer "equal_range") start-index other-array 54 | other-start-index end-index))) 55 | 56 | (defmethod arrow-array-filter ((arrow-array arrow-array) filter options) 57 | (with-slots (native-pointer) 58 | arrow-array 59 | (gir:invoke (native-pointer "filter") filter options))) 60 | 61 | (defmethod arrow-array-get-length ((arrow-array arrow-array)) 62 | (with-slots (native-pointer) 63 | arrow-array 64 | (gir:invoke (native-pointer "get_length")))) 65 | 66 | (defmethod arrow-array-get-n-nulls ((arrow-array arrow-array)) 67 | (with-slots (native-pointer) 68 | arrow-array 69 | (gir:invoke (native-pointer "get_n_nulls")))) 70 | 71 | (defmethod arrow-array-get-null-bitmap ((arrow-array arrow-array)) 72 | (with-slots (native-pointer) 73 | arrow-array 74 | (gir:invoke (native-pointer "get_null_bitmap")))) 75 | 76 | (defmethod arrow-array-get-offset ((arrow-array arrow-array)) 77 | (with-slots (native-pointer) 78 | arrow-array 79 | (gir:invoke (native-pointer "get_offset")))) 80 | 81 | (defmethod arrow-array-get-value-data-type ((arrow-array arrow-array)) 82 | (with-slots (native-pointer) 83 | arrow-array 84 | (gir:invoke (native-pointer "get_value_data_type")))) 85 | 86 | (defmethod arrow-array-get-value-type ((arrow-array arrow-array)) 87 | (with-slots (native-pointer) 88 | arrow-array 89 | (gir:invoke (native-pointer "get_value_type")))) 90 | 91 | (defmethod arrow-array-is-in ((arrow-array arrow-array) right) 92 | (with-slots (native-pointer) 93 | arrow-array 94 | (gir:invoke (native-pointer "is_in") right))) 95 | 96 | (defmethod arrow-array-is-in-chunked-array ((arrow-array arrow-array) right) 97 | (with-slots (native-pointer) 98 | arrow-array 99 | (gir:invoke (native-pointer "is_in_chunked_array") right))) 100 | 101 | (defmethod arrow-array-is-null ((arrow-array arrow-array) i) 102 | (with-slots (native-pointer) 103 | arrow-array 104 | (gir:invoke (native-pointer "is_null") i))) 105 | 106 | (defmethod arrow-array-is-valid ((arrow-array arrow-array) i) 107 | (with-slots (native-pointer) 108 | arrow-array 109 | (gir:invoke (native-pointer "is_valid") i))) 110 | 111 | (defmethod arrow-array-slice ((arrow-array arrow-array) offset length) 112 | (with-slots (native-pointer) 113 | arrow-array 114 | (gir:invoke (native-pointer "slice") offset length))) 115 | 116 | (defmethod arrow-array-sort-to-indices ((arrow-array arrow-array)) 117 | (with-slots (native-pointer) 118 | arrow-array 119 | (gir:invoke (native-pointer "sort_to_indices")))) 120 | 121 | (defmethod arrow-array-take ((arrow-array arrow-array) indices options) 122 | (with-slots (native-pointer) 123 | arrow-array 124 | (gir:invoke (native-pointer "take") indices options))) 125 | 126 | (defmethod arrow-array-take-chunked-array 127 | ((arrow-array arrow-array) indices options) 128 | (with-slots (native-pointer) 129 | arrow-array 130 | (gir:invoke (native-pointer "take_chunked_array") indices options))) 131 | 132 | (defmethod arrow-array-to-string ((arrow-array arrow-array)) 133 | (with-slots (native-pointer) 134 | arrow-array 135 | (gir:invoke (native-pointer "to_string")))) 136 | 137 | (defmethod arrow-array-unique ((arrow-array arrow-array)) 138 | (with-slots (native-pointer) 139 | arrow-array 140 | (gir:invoke (native-pointer "unique")))) 141 | 142 | (defmethod arrow-array-view ((arrow-array arrow-array) return-type) 143 | (with-slots (native-pointer) 144 | arrow-array 145 | (gir:invoke (native-pointer "view") return-type))) 146 | 147 | (defclass array-builder (gir-object) nil) 148 | 149 | (defmethod array-builder-finish ((array-builder array-builder)) 150 | (with-slots (native-pointer) 151 | array-builder 152 | (gir:invoke (native-pointer "finish")))) 153 | 154 | (defmethod array-builder-get-value-data-type ((array-builder array-builder)) 155 | (with-slots (native-pointer) 156 | array-builder 157 | (gir:invoke (native-pointer "get_value_data_type")))) 158 | 159 | (defmethod array-builder-get-value-type ((array-builder array-builder)) 160 | (with-slots (native-pointer) 161 | array-builder 162 | (gir:invoke (native-pointer "get_value_type")))) 163 | 164 | (defmethod array-builder-release-ownership ((array-builder array-builder)) 165 | (with-slots (native-pointer) 166 | array-builder 167 | (gir:invoke (native-pointer "release_ownership")))) 168 | 169 | (defclass binary-array (arrow-array) 170 | (length value-offsets data null-bitmap n-nulls)) 171 | 172 | (defun make-binary-array-new (length value-offsets data null-bitmap n-nulls) 173 | (let ((pointer 174 | (gir:invoke (*ns* "BinaryArray" "new") length value-offsets data null-bitmap 175 | n-nulls))) 176 | (make-instance 'binary-array :native-pointer pointer))) 177 | 178 | (defmethod binary-array-get-buffer ((binary-array binary-array)) 179 | (with-slots (native-pointer) 180 | binary-array 181 | (gir:invoke (native-pointer "get_buffer")))) 182 | 183 | (defmethod binary-array-get-offsets-buffer ((binary-array binary-array)) 184 | (with-slots (native-pointer) 185 | binary-array 186 | (gir:invoke (native-pointer "get_offsets_buffer")))) 187 | 188 | (defmethod binary-array-get-value ((binary-array binary-array) i) 189 | (with-slots (native-pointer) 190 | binary-array 191 | (gir:invoke (native-pointer "get_value") i))) 192 | 193 | (defclass binary-array-builder (array-builder) nil) 194 | 195 | (defun make-binary-array-builder-new () 196 | (let ((pointer (gir:invoke (*ns* "BinaryArrayBuilder" "new")))) 197 | (make-instance 'binary-array-builder :native-pointer pointer))) 198 | 199 | (defmethod binary-array-builder-append 200 | ((binary-array-builder binary-array-builder) value) 201 | (with-slots (native-pointer) 202 | binary-array-builder 203 | (gir:invoke (native-pointer "append") value))) 204 | 205 | (defmethod binary-array-builder-append-null 206 | ((binary-array-builder binary-array-builder)) 207 | (with-slots (native-pointer) 208 | binary-array-builder 209 | (gir:invoke (native-pointer "append_null")))) 210 | 211 | (defmethod binary-array-builder-append-nulls 212 | ((binary-array-builder binary-array-builder) n) 213 | (with-slots (native-pointer) 214 | binary-array-builder 215 | (gir:invoke (native-pointer "append_nulls") n))) 216 | 217 | (defmethod binary-array-builder-append-value 218 | ((binary-array-builder binary-array-builder) value) 219 | (with-slots (native-pointer) 220 | binary-array-builder 221 | (gir:invoke (native-pointer "append_value") value))) 222 | 223 | (defmethod binary-array-builder-append-value-bytes 224 | ((binary-array-builder binary-array-builder) value) 225 | (with-slots (native-pointer) 226 | binary-array-builder 227 | (gir:invoke (native-pointer "append_value_bytes") value))) 228 | 229 | (defmethod binary-array-builder-append-values 230 | ((binary-array-builder binary-array-builder) values) 231 | (with-slots (native-pointer) 232 | binary-array-builder 233 | (gir:invoke (native-pointer "append_values") values))) 234 | 235 | (defclass binary-data-type (gir-object) nil) 236 | 237 | (defun make-binary-data-type-new () 238 | (let ((pointer (gir:invoke (*ns* "BinaryDataType" "new")))) 239 | (make-instance 'binary-data-type :native-pointer pointer))) 240 | 241 | (defclass boolean-array (gir-object) (length data null-bitmap n-nulls)) 242 | 243 | (defun make-boolean-array-new (length data null-bitmap n-nulls) 244 | (let ((pointer 245 | (gir:invoke (*ns* "BooleanArray" "new") length data null-bitmap n-nulls))) 246 | (make-instance 'boolean-array :native-pointer pointer))) 247 | 248 | (defmethod boolean-array-and ((boolean-array boolean-array) right) 249 | (with-slots (native-pointer) 250 | boolean-array 251 | (gir:invoke (native-pointer "and") right))) 252 | 253 | (defmethod boolean-array-get-value ((boolean-array boolean-array) i) 254 | (with-slots (native-pointer) 255 | boolean-array 256 | (gir:invoke (native-pointer "get_value") i))) 257 | 258 | (defmethod boolean-array-get-values ((boolean-array boolean-array) length) 259 | (with-slots (native-pointer) 260 | boolean-array 261 | (gir:invoke (native-pointer "get_values") length))) 262 | 263 | (defmethod boolean-array-invert ((boolean-array boolean-array)) 264 | (with-slots (native-pointer) 265 | boolean-array 266 | (gir:invoke (native-pointer "invert")))) 267 | 268 | (defmethod boolean-array-or ((boolean-array boolean-array) right) 269 | (with-slots (native-pointer) 270 | boolean-array 271 | (gir:invoke (native-pointer "or") right))) 272 | 273 | (defmethod boolean-array-xor ((boolean-array boolean-array) right) 274 | (with-slots (native-pointer) 275 | boolean-array 276 | (gir:invoke (native-pointer "xor") right))) 277 | 278 | (defclass boolean-array-builder (array-builder) nil) 279 | 280 | (defun make-boolean-array-builder-new () 281 | (let ((pointer (gir:invoke (*ns* "BooleanArrayBuilder" "new")))) 282 | (make-instance 'boolean-array-builder :native-pointer pointer))) 283 | 284 | (defmethod boolean-array-builder-append 285 | ((boolean-array-builder boolean-array-builder) value) 286 | (with-slots (native-pointer) 287 | boolean-array-builder 288 | (gir:invoke (native-pointer "append") value))) 289 | 290 | (defmethod boolean-array-builder-append-null 291 | ((boolean-array-builder boolean-array-builder)) 292 | (with-slots (native-pointer) 293 | boolean-array-builder 294 | (gir:invoke (native-pointer "append_null")))) 295 | 296 | (defmethod boolean-array-builder-append-nulls 297 | ((boolean-array-builder boolean-array-builder) n) 298 | (with-slots (native-pointer) 299 | boolean-array-builder 300 | (gir:invoke (native-pointer "append_nulls") n))) 301 | 302 | (defmethod boolean-array-builder-append-value 303 | ((boolean-array-builder boolean-array-builder) value) 304 | (with-slots (native-pointer) 305 | boolean-array-builder 306 | (gir:invoke (native-pointer "append_value") value))) 307 | 308 | (defmethod boolean-array-builder-append-values 309 | ((boolean-array-builder boolean-array-builder) values) 310 | (with-slots (native-pointer) 311 | boolean-array-builder 312 | (gir:invoke (native-pointer "append_values") values))) 313 | 314 | (defclass boolean-data-type (gir-object) nil) 315 | 316 | (defun make-boolean-data-type-new () 317 | (let ((pointer (gir:invoke (*ns* "BooleanDataType" "new")))) 318 | (make-instance 'boolean-data-type :native-pointer pointer))) 319 | 320 | (defclass buffer (gir-object) (data)) 321 | 322 | (defun make-buffer-new (data) 323 | (let ((pointer (gir:invoke (*ns* "Buffer" "new") data))) 324 | (make-instance 'buffer :native-pointer pointer))) 325 | 326 | (defun make-buffer-new-bytes (data) 327 | (let ((pointer (gir:invoke (*ns* "Buffer" "new_bytes") data))) 328 | (make-instance 'buffer :native-pointer pointer))) 329 | 330 | (defmethod buffer-copy ((buffer buffer) start size) 331 | (with-slots (native-pointer) 332 | buffer 333 | (gir:invoke (native-pointer "copy") start size))) 334 | 335 | (defmethod buffer-equal ((buffer buffer) other-buffer) 336 | (with-slots (native-pointer) 337 | buffer 338 | (gir:invoke (native-pointer "equal") other-buffer))) 339 | 340 | (defmethod buffer-equal-n-bytes ((buffer buffer) other-buffer n-bytes) 341 | (with-slots (native-pointer) 342 | buffer 343 | (gir:invoke (native-pointer "equal_n_bytes") other-buffer n-bytes))) 344 | 345 | (defmethod buffer-get-capacity ((buffer buffer)) 346 | (with-slots (native-pointer) 347 | buffer 348 | (gir:invoke (native-pointer "get_capacity")))) 349 | 350 | (defmethod buffer-get-data ((buffer buffer)) 351 | (with-slots (native-pointer) 352 | buffer 353 | (gir:invoke (native-pointer "get_data")))) 354 | 355 | (defmethod buffer-get-mutable-data ((buffer buffer)) 356 | (with-slots (native-pointer) 357 | buffer 358 | (gir:invoke (native-pointer "get_mutable_data")))) 359 | 360 | (defmethod buffer-get-parent ((buffer buffer)) 361 | (with-slots (native-pointer) 362 | buffer 363 | (gir:invoke (native-pointer "get_parent")))) 364 | 365 | (defmethod buffer-get-size ((buffer buffer)) 366 | (with-slots (native-pointer) 367 | buffer 368 | (gir:invoke (native-pointer "get_size")))) 369 | 370 | (defmethod buffer-is-mutable ((buffer buffer)) 371 | (with-slots (native-pointer) 372 | buffer 373 | (gir:invoke (native-pointer "is_mutable")))) 374 | 375 | (defmethod buffer-slice ((buffer buffer) offset size) 376 | (with-slots (native-pointer) 377 | buffer 378 | (gir:invoke (native-pointer "slice") offset size))) 379 | 380 | (defclass buffer-input-stream (gir-object) (buffer)) 381 | 382 | (defun make-buffer-input-stream-new (buffer) 383 | (let ((pointer (gir:invoke (*ns* "BufferInputStream" "new") buffer))) 384 | (make-instance 'buffer-input-stream :native-pointer pointer))) 385 | 386 | (defmethod buffer-input-stream-get-buffer 387 | ((buffer-input-stream buffer-input-stream)) 388 | (with-slots (native-pointer) 389 | buffer-input-stream 390 | (gir:invoke (native-pointer "get_buffer")))) 391 | 392 | (defclass buffer-output-stream (gir-object) (buffer)) 393 | 394 | (defun make-buffer-output-stream-new (buffer) 395 | (let ((pointer (gir:invoke (*ns* "BufferOutputStream" "new") buffer))) 396 | (make-instance 'buffer-output-stream :native-pointer pointer))) 397 | 398 | (defclass csvread-options (gir-object) nil) 399 | 400 | (defun make-csvread-options-new () 401 | (let ((pointer (gir:invoke (*ns* "CSVReadOptions" "new")))) 402 | (make-instance 'csvread-options :native-pointer pointer))) 403 | 404 | (defmethod csvread-options-add-column-name 405 | ((csvread-options csvread-options) column-name) 406 | (with-slots (native-pointer) 407 | csvread-options 408 | (gir:invoke (native-pointer "add_column_name") column-name))) 409 | 410 | (defmethod csvread-options-add-column-type 411 | ((csvread-options csvread-options) name data-type) 412 | (with-slots (native-pointer) 413 | csvread-options 414 | (gir:invoke (native-pointer "add_column_type") name data-type))) 415 | 416 | (defmethod csvread-options-add-false-value 417 | ((csvread-options csvread-options) false-value) 418 | (with-slots (native-pointer) 419 | csvread-options 420 | (gir:invoke (native-pointer "add_false_value") false-value))) 421 | 422 | (defmethod csvread-options-add-null-value 423 | ((csvread-options csvread-options) null-value) 424 | (with-slots (native-pointer) 425 | csvread-options 426 | (gir:invoke (native-pointer "add_null_value") null-value))) 427 | 428 | (defmethod csvread-options-add-schema 429 | ((csvread-options csvread-options) schema) 430 | (with-slots (native-pointer) 431 | csvread-options 432 | (gir:invoke (native-pointer "add_schema") schema))) 433 | 434 | (defmethod csvread-options-add-true-value 435 | ((csvread-options csvread-options) true-value) 436 | (with-slots (native-pointer) 437 | csvread-options 438 | (gir:invoke (native-pointer "add_true_value") true-value))) 439 | 440 | (defmethod csvread-options-get-column-names ((csvread-options csvread-options)) 441 | (with-slots (native-pointer) 442 | csvread-options 443 | (gir:invoke (native-pointer "get_column_names")))) 444 | 445 | (defmethod csvread-options-get-column-types ((csvread-options csvread-options)) 446 | (with-slots (native-pointer) 447 | csvread-options 448 | (gir:invoke (native-pointer "get_column_types")))) 449 | 450 | (defmethod csvread-options-get-false-values ((csvread-options csvread-options)) 451 | (with-slots (native-pointer) 452 | csvread-options 453 | (gir:invoke (native-pointer "get_false_values")))) 454 | 455 | (defmethod csvread-options-get-null-values ((csvread-options csvread-options)) 456 | (with-slots (native-pointer) 457 | csvread-options 458 | (gir:invoke (native-pointer "get_null_values")))) 459 | 460 | (defmethod csvread-options-get-true-values ((csvread-options csvread-options)) 461 | (with-slots (native-pointer) 462 | csvread-options 463 | (gir:invoke (native-pointer "get_true_values")))) 464 | 465 | (defmethod csvread-options-set-column-names 466 | ((csvread-options csvread-options) column-names) 467 | (with-slots (native-pointer) 468 | csvread-options 469 | (gir:invoke (native-pointer "set_column_names") column-names))) 470 | 471 | (defmethod csvread-options-set-false-values 472 | ((csvread-options csvread-options) false-values) 473 | (with-slots (native-pointer) 474 | csvread-options 475 | (gir:invoke (native-pointer "set_false_values") false-values))) 476 | 477 | (defmethod csvread-options-set-null-values 478 | ((csvread-options csvread-options) null-values) 479 | (with-slots (native-pointer) 480 | csvread-options 481 | (gir:invoke (native-pointer "set_null_values") null-values))) 482 | 483 | (defmethod csvread-options-set-true-values 484 | ((csvread-options csvread-options) true-values) 485 | (with-slots (native-pointer) 486 | csvread-options 487 | (gir:invoke (native-pointer "set_true_values") true-values))) 488 | 489 | (defclass csvreader (gir-object) (input options)) 490 | 491 | (defun make-csvreader-new (input options) 492 | (let ((pointer (gir:invoke (*ns* "CSVReader" "new") input options))) 493 | (make-instance 'csvreader :native-pointer pointer))) 494 | 495 | (defmethod csvreader-read ((csvreader csvreader)) 496 | (with-slots (native-pointer) 497 | csvreader 498 | (gir:invoke (native-pointer "read")))) 499 | 500 | (defclass cast-options (gir-object) nil) 501 | 502 | (defun make-cast-options-new () 503 | (let ((pointer (gir:invoke (*ns* "CastOptions" "new")))) 504 | (make-instance 'cast-options :native-pointer pointer))) 505 | 506 | (defclass chunked-array (gir-object) (chunks)) 507 | 508 | (defun make-chunked-array-new (chunks) 509 | (let ((pointer (gir:invoke (*ns* "ChunkedArray" "new") chunks))) 510 | (make-instance 'chunked-array :native-pointer pointer))) 511 | 512 | (defmethod chunked-array-equal 513 | ((chunked-array chunked-array) other-chunked-array) 514 | (with-slots (native-pointer) 515 | chunked-array 516 | (gir:invoke (native-pointer "equal") other-chunked-array))) 517 | 518 | (defmethod chunked-array-filter ((chunked-array chunked-array) filter options) 519 | (with-slots (native-pointer) 520 | chunked-array 521 | (gir:invoke (native-pointer "filter") filter options))) 522 | 523 | (defmethod chunked-array-filter-chunked-array 524 | ((chunked-array chunked-array) filter options) 525 | (with-slots (native-pointer) 526 | chunked-array 527 | (gir:invoke (native-pointer "filter_chunked_array") filter options))) 528 | 529 | (defmethod chunked-array-get-chunk ((chunked-array chunked-array) i) 530 | (with-slots (native-pointer) 531 | chunked-array 532 | (gir:invoke (native-pointer "get_chunk") i))) 533 | 534 | (defmethod chunked-array-get-chunks ((chunked-array chunked-array)) 535 | (with-slots (native-pointer) 536 | chunked-array 537 | (gir:invoke (native-pointer "get_chunks")))) 538 | 539 | (defmethod chunked-array-get-length ((chunked-array chunked-array)) 540 | (with-slots (native-pointer) 541 | chunked-array 542 | (gir:invoke (native-pointer "get_length")))) 543 | 544 | (defmethod chunked-array-get-n-chunks ((chunked-array chunked-array)) 545 | (with-slots (native-pointer) 546 | chunked-array 547 | (gir:invoke (native-pointer "get_n_chunks")))) 548 | 549 | (defmethod chunked-array-get-n-nulls ((chunked-array chunked-array)) 550 | (with-slots (native-pointer) 551 | chunked-array 552 | (gir:invoke (native-pointer "get_n_nulls")))) 553 | 554 | (defmethod chunked-array-get-n-rows ((chunked-array chunked-array)) 555 | (with-slots (native-pointer) 556 | chunked-array 557 | (gir:invoke (native-pointer "get_n_rows")))) 558 | 559 | (defmethod chunked-array-get-value-data-type ((chunked-array chunked-array)) 560 | (with-slots (native-pointer) 561 | chunked-array 562 | (gir:invoke (native-pointer "get_value_data_type")))) 563 | 564 | (defmethod chunked-array-get-value-type ((chunked-array chunked-array)) 565 | (with-slots (native-pointer) 566 | chunked-array 567 | (gir:invoke (native-pointer "get_value_type")))) 568 | 569 | (defmethod chunked-array-slice ((chunked-array chunked-array) offset length) 570 | (with-slots (native-pointer) 571 | chunked-array 572 | (gir:invoke (native-pointer "slice") offset length))) 573 | 574 | (defmethod chunked-array-take ((chunked-array chunked-array) indices options) 575 | (with-slots (native-pointer) 576 | chunked-array 577 | (gir:invoke (native-pointer "take") indices options))) 578 | 579 | (defmethod chunked-array-take-chunked-array 580 | ((chunked-array chunked-array) indices options) 581 | (with-slots (native-pointer) 582 | chunked-array 583 | (gir:invoke (native-pointer "take_chunked_array") indices options))) 584 | 585 | (defmethod chunked-array-to-string ((chunked-array chunked-array)) 586 | (with-slots (native-pointer) 587 | chunked-array 588 | (gir:invoke (native-pointer "to_string")))) 589 | 590 | (defclass codec (gir-object) (type)) 591 | 592 | (defun make-codec-new (type) 593 | (let ((pointer (gir:invoke (*ns* "Codec" "new") type))) 594 | (make-instance 'codec :native-pointer pointer))) 595 | 596 | (defmethod codec-get-name ((codec codec)) 597 | (with-slots (native-pointer) 598 | codec 599 | (gir:invoke (native-pointer "get_name")))) 600 | 601 | (defparameter *compare-operator-less-equal* (gir:nget *ns* "CompareOperator" :less_equal)) 602 | (defparameter *compare-operator-less* (gir:nget *ns* "CompareOperator" :less)) 603 | (defparameter *compare-operator-greater-equal* 604 | (gir:nget *ns* "CompareOperator" :greater_equal)) 605 | (defparameter *compare-operator-greater* (gir:nget *ns* "CompareOperator" :greater)) 606 | (defparameter *compare-operator-not-equal* (gir:nget *ns* "CompareOperator" :not_equal)) 607 | (defparameter *compare-operator-equal* (gir:nget *ns* "CompareOperator" :equal)) 608 | 609 | 610 | (defclass compare-options (gir-object) nil) 611 | 612 | (defun make-compare-options-new () 613 | (let ((pointer (gir:invoke (*ns* "CompareOptions" "new")))) 614 | (make-instance 'compare-options :native-pointer pointer))) 615 | 616 | (defclass compressed-input-stream (gir-object) (codec raw)) 617 | 618 | (defun make-compressed-input-stream-new (codec raw) 619 | (let ((pointer (gir:invoke (*ns* "CompressedInputStream" "new") codec raw))) 620 | (make-instance 'compressed-input-stream :native-pointer pointer))) 621 | 622 | (defclass compressed-output-stream (gir-object) (codec raw)) 623 | 624 | (defun make-compressed-output-stream-new (codec raw) 625 | (let ((pointer (gir:invoke (*ns* "CompressedOutputStream" "new") codec raw))) 626 | (make-instance 'compressed-output-stream :native-pointer pointer))) 627 | 628 | (defparameter *compression-type-bz2* (gir:nget *ns* "CompressionType" :bz2)) 629 | (defparameter *compression-type-lzo* (gir:nget *ns* "CompressionType" :lzo)) 630 | (defparameter *compression-type-lz4* (gir:nget *ns* "CompressionType" :lz4)) 631 | (defparameter *compression-type-zstd* (gir:nget *ns* "CompressionType" :zstd)) 632 | (defparameter *compression-type-brotli* (gir:nget *ns* "CompressionType" :brotli)) 633 | (defparameter *compression-type-gzip* (gir:nget *ns* "CompressionType" :gzip)) 634 | (defparameter *compression-type-snappy* (gir:nget *ns* "CompressionType" :snappy)) 635 | (defparameter *compression-type-uncompressed* 636 | (gir:nget *ns* "CompressionType" :uncompressed)) 637 | 638 | 639 | (defparameter *count-mode-null* (gir:nget *ns* "CountMode" :null)) 640 | (defparameter *count-mode-all* (gir:nget *ns* "CountMode" :all)) 641 | 642 | 643 | (defclass count-options (gir-object) nil) 644 | 645 | (defun make-count-options-new () 646 | (let ((pointer (gir:invoke (*ns* "CountOptions" "new")))) 647 | (make-instance 'count-options :native-pointer pointer))) 648 | 649 | (defclass arrow-data-type (gir-object) nil) 650 | 651 | (defmethod arrow-data-type-equal 652 | ((arrow-data-type arrow-data-type) other-data-type) 653 | (with-slots (native-pointer) 654 | arrow-data-type 655 | (gir:invoke (native-pointer "equal") other-data-type))) 656 | 657 | (defmethod arrow-data-type-get-id ((arrow-data-type arrow-data-type)) 658 | (with-slots (native-pointer) 659 | arrow-data-type 660 | (gir:invoke (native-pointer "get_id")))) 661 | 662 | (defmethod arrow-data-type-to-string ((arrow-data-type arrow-data-type)) 663 | (with-slots (native-pointer) 664 | arrow-data-type 665 | (gir:invoke (native-pointer "to_string")))) 666 | 667 | (defclass date32array (gir-object) (length data null-bitmap n-nulls)) 668 | 669 | (defun make-date32array-new (length data null-bitmap n-nulls) 670 | (let ((pointer 671 | (gir:invoke (*ns* "Date32Array" "new") length data null-bitmap n-nulls))) 672 | (make-instance 'date32array :native-pointer pointer))) 673 | 674 | (defmethod date32array-get-value ((date32array date32array) i) 675 | (with-slots (native-pointer) 676 | date32array 677 | (gir:invoke (native-pointer "get_value") i))) 678 | 679 | (defmethod date32array-get-values ((date32array date32array) length) 680 | (with-slots (native-pointer) 681 | date32array 682 | (gir:invoke (native-pointer "get_values") length))) 683 | 684 | (defclass date32array-builder (array-builder) nil) 685 | 686 | (defun make-date32array-builder-new () 687 | (let ((pointer (gir:invoke (*ns* "Date32ArrayBuilder" "new")))) 688 | (make-instance 'date32array-builder :native-pointer pointer))) 689 | 690 | (defmethod date32array-builder-append 691 | ((date32array-builder date32array-builder) value) 692 | (with-slots (native-pointer) 693 | date32array-builder 694 | (gir:invoke (native-pointer "append") value))) 695 | 696 | (defmethod date32array-builder-append-null 697 | ((date32array-builder date32array-builder)) 698 | (with-slots (native-pointer) 699 | date32array-builder 700 | (gir:invoke (native-pointer "append_null")))) 701 | 702 | (defmethod date32array-builder-append-nulls 703 | ((date32array-builder date32array-builder) n) 704 | (with-slots (native-pointer) 705 | date32array-builder 706 | (gir:invoke (native-pointer "append_nulls") n))) 707 | 708 | (defmethod date32array-builder-append-value 709 | ((date32array-builder date32array-builder) value) 710 | (with-slots (native-pointer) 711 | date32array-builder 712 | (gir:invoke (native-pointer "append_value") value))) 713 | 714 | (defmethod date32array-builder-append-values 715 | ((date32array-builder date32array-builder) values) 716 | (with-slots (native-pointer) 717 | date32array-builder 718 | (gir:invoke (native-pointer "append_values") values))) 719 | 720 | (defclass date32data-type (arrow-data-type) nil) 721 | 722 | (defun make-date32data-type-new () 723 | (let ((pointer (gir:invoke (*ns* "Date32DataType" "new")))) 724 | (make-instance 'date32data-type :native-pointer pointer))) 725 | 726 | (defclass date64array (gir-object) (length data null-bitmap n-nulls)) 727 | 728 | (defun make-date64array-new (length data null-bitmap n-nulls) 729 | (let ((pointer 730 | (gir:invoke (*ns* "Date64Array" "new") length data null-bitmap n-nulls))) 731 | (make-instance 'date64array :native-pointer pointer))) 732 | 733 | (defmethod date64array-get-value ((date64array date64array) i) 734 | (with-slots (native-pointer) 735 | date64array 736 | (gir:invoke (native-pointer "get_value") i))) 737 | 738 | (defmethod date64array-get-values ((date64array date64array) length) 739 | (with-slots (native-pointer) 740 | date64array 741 | (gir:invoke (native-pointer "get_values") length))) 742 | 743 | (defclass date64array-builder (array-builder) nil) 744 | 745 | (defun make-date64array-builder-new () 746 | (let ((pointer (gir:invoke (*ns* "Date64ArrayBuilder" "new")))) 747 | (make-instance 'date64array-builder :native-pointer pointer))) 748 | 749 | (defmethod date64array-builder-append 750 | ((date64array-builder date64array-builder) value) 751 | (with-slots (native-pointer) 752 | date64array-builder 753 | (gir:invoke (native-pointer "append") value))) 754 | 755 | (defmethod date64array-builder-append-null 756 | ((date64array-builder date64array-builder)) 757 | (with-slots (native-pointer) 758 | date64array-builder 759 | (gir:invoke (native-pointer "append_null")))) 760 | 761 | (defmethod date64array-builder-append-nulls 762 | ((date64array-builder date64array-builder) n) 763 | (with-slots (native-pointer) 764 | date64array-builder 765 | (gir:invoke (native-pointer "append_nulls") n))) 766 | 767 | (defmethod date64array-builder-append-value 768 | ((date64array-builder date64array-builder) value) 769 | (with-slots (native-pointer) 770 | date64array-builder 771 | (gir:invoke (native-pointer "append_value") value))) 772 | 773 | (defmethod date64array-builder-append-values 774 | ((date64array-builder date64array-builder) values) 775 | (with-slots (native-pointer) 776 | date64array-builder 777 | (gir:invoke (native-pointer "append_values") values))) 778 | 779 | (defclass date64data-type (arrow-data-type) nil) 780 | 781 | (defun make-date64data-type-new () 782 | (let ((pointer (gir:invoke (*ns* "Date64DataType" "new")))) 783 | (make-instance 'date64data-type :native-pointer pointer))) 784 | 785 | (defclass decimal128 (gir-object) (data)) 786 | 787 | (defun make-decimal128-new-integer (data) 788 | (let ((pointer (gir:invoke (*ns* "Decimal128" "new_integer") data))) 789 | (make-instance 'decimal128 :native-pointer pointer))) 790 | 791 | (defun make-decimal128-new-string (data) 792 | (let ((pointer (gir:invoke (*ns* "Decimal128" "new_string") data))) 793 | (make-instance 'decimal128 :native-pointer pointer))) 794 | 795 | (defmethod decimal128-abs ((decimal128 decimal128)) 796 | (with-slots (native-pointer) 797 | decimal128 798 | (gir:invoke (native-pointer "abs")))) 799 | 800 | (defmethod decimal128-divide ((decimal128 decimal128) right remainder) 801 | (with-slots (native-pointer) 802 | decimal128 803 | (gir:invoke (native-pointer "divide") right remainder))) 804 | 805 | (defmethod decimal128-equal ((decimal128 decimal128) other-decimal) 806 | (with-slots (native-pointer) 807 | decimal128 808 | (gir:invoke (native-pointer "equal") other-decimal))) 809 | 810 | (defmethod decimal128-greater-than ((decimal128 decimal128) other-decimal) 811 | (with-slots (native-pointer) 812 | decimal128 813 | (gir:invoke (native-pointer "greater_than") other-decimal))) 814 | 815 | (defmethod decimal128-greater-than-or-equal 816 | ((decimal128 decimal128) other-decimal) 817 | (with-slots (native-pointer) 818 | decimal128 819 | (gir:invoke (native-pointer "greater_than_or_equal") other-decimal))) 820 | 821 | (defmethod decimal128-less-than ((decimal128 decimal128) other-decimal) 822 | (with-slots (native-pointer) 823 | decimal128 824 | (gir:invoke (native-pointer "less_than") other-decimal))) 825 | 826 | (defmethod decimal128-less-than-or-equal 827 | ((decimal128 decimal128) other-decimal) 828 | (with-slots (native-pointer) 829 | decimal128 830 | (gir:invoke (native-pointer "less_than_or_equal") other-decimal))) 831 | 832 | (defmethod decimal128-minus ((decimal128 decimal128) right) 833 | (with-slots (native-pointer) 834 | decimal128 835 | (gir:invoke (native-pointer "minus") right))) 836 | 837 | (defmethod decimal128-multiply ((decimal128 decimal128) right) 838 | (with-slots (native-pointer) 839 | decimal128 840 | (gir:invoke (native-pointer "multiply") right))) 841 | 842 | (defmethod decimal128-negate ((decimal128 decimal128)) 843 | (with-slots (native-pointer) 844 | decimal128 845 | (gir:invoke (native-pointer "negate")))) 846 | 847 | (defmethod decimal128-not-equal ((decimal128 decimal128) other-decimal) 848 | (with-slots (native-pointer) 849 | decimal128 850 | (gir:invoke (native-pointer "not_equal") other-decimal))) 851 | 852 | (defmethod decimal128-plus ((decimal128 decimal128) right) 853 | (with-slots (native-pointer) 854 | decimal128 855 | (gir:invoke (native-pointer "plus") right))) 856 | 857 | (defmethod decimal128-rescale 858 | ((decimal128 decimal128) original-scale new-scale) 859 | (with-slots (native-pointer) 860 | decimal128 861 | (gir:invoke (native-pointer "rescale") original-scale new-scale))) 862 | 863 | (defmethod decimal128-to-integer ((decimal128 decimal128)) 864 | (with-slots (native-pointer) 865 | decimal128 866 | (gir:invoke (native-pointer "to_integer")))) 867 | 868 | (defmethod decimal128-to-string ((decimal128 decimal128)) 869 | (with-slots (native-pointer) 870 | decimal128 871 | (gir:invoke (native-pointer "to_string")))) 872 | 873 | (defmethod decimal128-to-string-scale ((decimal128 decimal128) scale) 874 | (with-slots (native-pointer) 875 | decimal128 876 | (gir:invoke (native-pointer "to_string_scale") scale))) 877 | 878 | (defclass decimal128array (gir-object) nil) 879 | 880 | (defmethod decimal128array-format-value ((decimal128array decimal128array) i) 881 | (with-slots (native-pointer) 882 | decimal128array 883 | (gir:invoke (native-pointer "format_value") i))) 884 | 885 | (defmethod decimal128array-get-value ((decimal128array decimal128array) i) 886 | (with-slots (native-pointer) 887 | decimal128array 888 | (gir:invoke (native-pointer "get_value") i))) 889 | 890 | (defclass decimal128array-builder (array-builder) (data-type)) 891 | 892 | (defun make-decimal128array-builder-new (data-type) 893 | (let ((pointer (gir:invoke (*ns* "Decimal128ArrayBuilder" "new") data-type))) 894 | (make-instance 'decimal128array-builder :native-pointer pointer))) 895 | 896 | (defmethod decimal128array-builder-append 897 | ((decimal128array-builder decimal128array-builder) value) 898 | (with-slots (native-pointer) 899 | decimal128array-builder 900 | (gir:invoke (native-pointer "append") value))) 901 | 902 | (defmethod decimal128array-builder-append-null 903 | ((decimal128array-builder decimal128array-builder)) 904 | (with-slots (native-pointer) 905 | decimal128array-builder 906 | (gir:invoke (native-pointer "append_null")))) 907 | 908 | (defmethod decimal128array-builder-append-value 909 | ((decimal128array-builder decimal128array-builder) value) 910 | (with-slots (native-pointer) 911 | decimal128array-builder 912 | (gir:invoke (native-pointer "append_value") value))) 913 | 914 | (defclass decimal128data-type (gir-object) (precision scale)) 915 | 916 | (defun make-decimal128data-type-new (precision scale) 917 | (let ((pointer (gir:invoke (*ns* "Decimal128DataType" "new") precision scale))) 918 | (make-instance 'decimal128data-type :native-pointer pointer))) 919 | 920 | (defclass decimal-data-type (gir-object) (precision scale)) 921 | 922 | (defun make-decimal-data-type-new (precision scale) 923 | (let ((pointer (gir:invoke (*ns* "DecimalDataType" "new") precision scale))) 924 | (make-instance 'decimal-data-type :native-pointer pointer))) 925 | 926 | (defmethod decimal-data-type-get-precision 927 | ((decimal-data-type decimal-data-type)) 928 | (with-slots (native-pointer) 929 | decimal-data-type 930 | (gir:invoke (native-pointer "get_precision")))) 931 | 932 | (defmethod decimal-data-type-get-scale ((decimal-data-type decimal-data-type)) 933 | (with-slots (native-pointer) 934 | decimal-data-type 935 | (gir:invoke (native-pointer "get_scale")))) 936 | 937 | (defclass dense-union-array (gir-object) 938 | (data-type type-ids value-offsets fields)) 939 | 940 | (defun make-dense-union-array-new (type-ids value-offsets fields) 941 | (let ((pointer (gir:invoke (*ns* "DenseUnionArray" "new") type-ids value-offsets fields))) 942 | (make-instance 'dense-union-array :native-pointer pointer))) 943 | 944 | (defun make-dense-union-array-new-data-type 945 | (data-type type-ids value-offsets fields) 946 | (let ((pointer 947 | (gir:invoke (*ns* "DenseUnionArray" "new_data_type") data-type type-ids 948 | value-offsets fields))) 949 | (make-instance 'dense-union-array :native-pointer pointer))) 950 | 951 | (defclass dense-union-data-type (gir-object) (fields type-codes)) 952 | 953 | (defun make-dense-union-data-type-new (fields type-codes) 954 | (let ((pointer (gir:invoke (*ns* "DenseUnionDataType" "new") fields type-codes))) 955 | (make-instance 'dense-union-data-type :native-pointer pointer))) 956 | 957 | (defclass dictionary-array (arrow-array) (data-type indices dictionary)) 958 | 959 | (defun make-dictionary-array-new (data-type indices dictionary) 960 | (let ((pointer (gir:invoke (*ns* "DictionaryArray" "new") data-type indices dictionary))) 961 | (make-instance 'dictionary-array :native-pointer pointer))) 962 | 963 | (defmethod dictionary-array-get-dictionary 964 | ((dictionary-array dictionary-array)) 965 | (with-slots (native-pointer) 966 | dictionary-array 967 | (gir:invoke (native-pointer "get_dictionary")))) 968 | 969 | (defmethod dictionary-array-get-dictionary-data-type 970 | ((dictionary-array dictionary-array)) 971 | (with-slots (native-pointer) 972 | dictionary-array 973 | (gir:invoke (native-pointer "get_dictionary_data_type")))) 974 | 975 | (defmethod dictionary-array-get-indices ((dictionary-array dictionary-array)) 976 | (with-slots (native-pointer) 977 | dictionary-array 978 | (gir:invoke (native-pointer "get_indices")))) 979 | 980 | (defclass dictionary-data-type (gir-object) 981 | (index-data-type value-data-type ordered)) 982 | 983 | (defun make-dictionary-data-type-new (index-data-type value-data-type ordered) 984 | (let ((pointer 985 | (gir:invoke (*ns* "DictionaryDataType" "new") index-data-type value-data-type 986 | ordered))) 987 | (make-instance 'dictionary-data-type :native-pointer pointer))) 988 | 989 | (defmethod dictionary-data-type-get-index-data-type 990 | ((dictionary-data-type dictionary-data-type)) 991 | (with-slots (native-pointer) 992 | dictionary-data-type 993 | (gir:invoke (native-pointer "get_index_data_type")))) 994 | 995 | (defmethod dictionary-data-type-get-value-data-type 996 | ((dictionary-data-type dictionary-data-type)) 997 | (with-slots (native-pointer) 998 | dictionary-data-type 999 | (gir:invoke (native-pointer "get_value_data_type")))) 1000 | 1001 | (defmethod dictionary-data-type-is-ordered 1002 | ((dictionary-data-type dictionary-data-type)) 1003 | (with-slots (native-pointer) 1004 | dictionary-data-type 1005 | (gir:invoke (native-pointer "is_ordered")))) 1006 | 1007 | (defclass double-array (gir-object) (length data null-bitmap n-nulls)) 1008 | 1009 | (defun make-double-array-new (length data null-bitmap n-nulls) 1010 | (let ((pointer 1011 | (gir:invoke (*ns* "DoubleArray" "new") length data null-bitmap n-nulls))) 1012 | (make-instance 'double-array :native-pointer pointer))) 1013 | 1014 | (defmethod double-array-compare ((double-array double-array) value options) 1015 | (with-slots (native-pointer) 1016 | double-array 1017 | (gir:invoke (native-pointer "compare") value options))) 1018 | 1019 | (defmethod double-array-get-value ((double-array double-array) i) 1020 | (with-slots (native-pointer) 1021 | double-array 1022 | (gir:invoke (native-pointer "get_value") i))) 1023 | 1024 | (defmethod double-array-get-values ((double-array double-array) length) 1025 | (with-slots (native-pointer) 1026 | double-array 1027 | (gir:invoke (native-pointer "get_values") length))) 1028 | 1029 | (defmethod double-array-sum ((double-array double-array)) 1030 | (with-slots (native-pointer) 1031 | double-array 1032 | (gir:invoke (native-pointer "sum")))) 1033 | 1034 | (defclass double-array-builder (array-builder) nil) 1035 | 1036 | (defun make-double-array-builder-new () 1037 | (let ((pointer (gir:invoke (*ns* "DoubleArrayBuilder" "new")))) 1038 | (make-instance 'double-array-builder :native-pointer pointer))) 1039 | 1040 | (defmethod double-array-builder-append 1041 | ((double-array-builder double-array-builder) value) 1042 | (with-slots (native-pointer) 1043 | double-array-builder 1044 | (gir:invoke (native-pointer "append") value))) 1045 | 1046 | (defmethod double-array-builder-append-null 1047 | ((double-array-builder double-array-builder)) 1048 | (with-slots (native-pointer) 1049 | double-array-builder 1050 | (gir:invoke (native-pointer "append_null")))) 1051 | 1052 | (defmethod double-array-builder-append-nulls 1053 | ((double-array-builder double-array-builder) n) 1054 | (with-slots (native-pointer) 1055 | double-array-builder 1056 | (gir:invoke (native-pointer "append_nulls") n))) 1057 | 1058 | (defmethod double-array-builder-append-value 1059 | ((double-array-builder double-array-builder) value) 1060 | (with-slots (native-pointer) 1061 | double-array-builder 1062 | (gir:invoke (native-pointer "append_value") value))) 1063 | 1064 | (defmethod double-array-builder-append-values 1065 | ((double-array-builder double-array-builder) values) 1066 | (with-slots (native-pointer) 1067 | double-array-builder 1068 | (gir:invoke (native-pointer "append_values") values))) 1069 | 1070 | (defclass double-data-type (gir-object) nil) 1071 | 1072 | (defun make-double-data-type-new () 1073 | (let ((pointer (gir:invoke (*ns* "DoubleDataType" "new")))) 1074 | (make-instance 'double-data-type :native-pointer pointer))) 1075 | 1076 | (defparameter *error-already-exists* (gir:nget *ns* "Error" :already_exists)) 1077 | (defparameter *error-execution* (gir:nget *ns* "Error" :execution)) 1078 | (defparameter *error-expression-validation* 1079 | (gir:nget *ns* "Error" :expression_validation)) 1080 | (defparameter *error-code-generation* (gir:nget *ns* "Error" :code_generation)) 1081 | (defparameter *error-serialization* (gir:nget *ns* "Error" :serialization)) 1082 | (defparameter *error-not-implemented* (gir:nget *ns* "Error" :not_implemented)) 1083 | (defparameter *error-unknown* (gir:nget *ns* "Error" :unknown)) 1084 | (defparameter *error-index* (gir:nget *ns* "Error" :index)) 1085 | (defparameter *error-capacity* (gir:nget *ns* "Error" :capacity)) 1086 | (defparameter *error-io* (gir:nget *ns* "Error" :io)) 1087 | (defparameter *error-invalid* (gir:nget *ns* "Error" :invalid)) 1088 | (defparameter *error-type* (gir:nget *ns* "Error" :type)) 1089 | (defparameter *error-key* (gir:nget *ns* "Error" :key)) 1090 | (defparameter *error-out-of-memory* (gir:nget *ns* "Error" :out_of_memory)) 1091 | 1092 | 1093 | (defclass feather-file-reader (gir-object) (file)) 1094 | 1095 | (defun make-feather-file-reader-new (file) 1096 | (let ((pointer (gir:invoke (*ns* "FeatherFileReader" "new") file))) 1097 | (make-instance 'feather-file-reader :native-pointer pointer))) 1098 | 1099 | (defmethod feather-file-reader-get-version 1100 | ((feather-file-reader feather-file-reader)) 1101 | (with-slots (native-pointer) 1102 | feather-file-reader 1103 | (gir:invoke (native-pointer "get_version")))) 1104 | 1105 | (defmethod feather-file-reader-read ((feather-file-reader feather-file-reader)) 1106 | (with-slots (native-pointer) 1107 | feather-file-reader 1108 | (gir:invoke (native-pointer "read")))) 1109 | 1110 | (defmethod feather-file-reader-read-indices 1111 | ((feather-file-reader feather-file-reader) indices) 1112 | (with-slots (native-pointer) 1113 | feather-file-reader 1114 | (gir:invoke (native-pointer "read_indices") indices))) 1115 | 1116 | (defmethod feather-file-reader-read-names 1117 | ((feather-file-reader feather-file-reader) names) 1118 | (with-slots (native-pointer) 1119 | feather-file-reader 1120 | (gir:invoke (native-pointer "read_names") names))) 1121 | 1122 | (defclass feather-write-properties (gir-object) nil) 1123 | 1124 | (defun make-feather-write-properties-new () 1125 | (let ((pointer (gir:invoke (*ns* "FeatherWriteProperties" "new")))) 1126 | (make-instance 'feather-write-properties :native-pointer pointer))) 1127 | 1128 | (defclass field (gir-object) (nullable name data-type)) 1129 | 1130 | (defun make-field-new (name data-type) 1131 | (let ((pointer (gir:invoke (*ns* "Field" "new") name data-type))) 1132 | (make-instance 'field :native-pointer pointer))) 1133 | 1134 | (defun make-field-new-full (name data-type nullable) 1135 | (let ((pointer (gir:invoke (*ns* "Field" "new_full") name data-type nullable))) 1136 | (make-instance 'field :native-pointer pointer))) 1137 | 1138 | (defmethod field-equal ((field field) other-field) 1139 | (with-slots (native-pointer) 1140 | field 1141 | (gir:invoke (native-pointer "equal") other-field))) 1142 | 1143 | (defmethod field-get-data-type ((field field)) 1144 | (with-slots (native-pointer) 1145 | field 1146 | (gir:invoke (native-pointer "get_data_type")))) 1147 | 1148 | (defmethod field-get-name ((field field)) 1149 | (with-slots (native-pointer) 1150 | field 1151 | (gir:invoke (native-pointer "get_name")))) 1152 | 1153 | (defmethod field-is-nullable ((field field)) 1154 | (with-slots (native-pointer) 1155 | field 1156 | (gir:invoke (native-pointer "is_nullable")))) 1157 | 1158 | (defmethod field-to-string ((field field)) 1159 | (with-slots (native-pointer) 1160 | field 1161 | (gir:invoke (native-pointer "to_string")))) 1162 | 1163 | (defclass file-info (gir-object) nil) 1164 | 1165 | (defun make-file-info-new () 1166 | (let ((pointer (gir:invoke (*ns* "FileInfo" "new")))) 1167 | (make-instance 'file-info :native-pointer pointer))) 1168 | 1169 | (defmethod file-info-equal ((file-info file-info) other-file-info) 1170 | (with-slots (native-pointer) 1171 | file-info 1172 | (gir:invoke (native-pointer "equal") other-file-info))) 1173 | 1174 | (defmethod file-info-is-dir ((file-info file-info)) 1175 | (with-slots (native-pointer) 1176 | file-info 1177 | (gir:invoke (native-pointer "is_dir")))) 1178 | 1179 | (defmethod file-info-is-file ((file-info file-info)) 1180 | (with-slots (native-pointer) 1181 | file-info 1182 | (gir:invoke (native-pointer "is_file")))) 1183 | 1184 | (defmethod file-info-to-string ((file-info file-info)) 1185 | (with-slots (native-pointer) 1186 | file-info 1187 | (gir:invoke (native-pointer "to_string")))) 1188 | 1189 | (defparameter *file-mode-readwrite* (gir:nget *ns* "FileMode" :readwrite)) 1190 | (defparameter *file-mode-write* (gir:nget *ns* "FileMode" :write)) 1191 | (defparameter *file-mode-read* (gir:nget *ns* "FileMode" :read)) 1192 | 1193 | 1194 | (defclass file-output-stream (gir-object) (path append)) 1195 | 1196 | (defun make-file-output-stream-new (path append) 1197 | (let ((pointer (gir:invoke (*ns* "FileOutputStream" "new") path append))) 1198 | (make-instance 'file-output-stream :native-pointer pointer))) 1199 | 1200 | (defclass file-selector (gir-object) nil) 1201 | 1202 | (defclass file-system (gir-object) nil) 1203 | 1204 | (defmethod file-system-copy-file ((file-system file-system) src dest) 1205 | (with-slots (native-pointer) 1206 | file-system 1207 | (gir:invoke (native-pointer "copy_file") src dest))) 1208 | 1209 | (defmethod file-system-create-dir ((file-system file-system) path recursive) 1210 | (with-slots (native-pointer) 1211 | file-system 1212 | (gir:invoke (native-pointer "create_dir") path recursive))) 1213 | 1214 | (defmethod file-system-delete-dir ((file-system file-system) path) 1215 | (with-slots (native-pointer) 1216 | file-system 1217 | (gir:invoke (native-pointer "delete_dir") path))) 1218 | 1219 | (defmethod file-system-delete-dir-contents ((file-system file-system) path) 1220 | (with-slots (native-pointer) 1221 | file-system 1222 | (gir:invoke (native-pointer "delete_dir_contents") path))) 1223 | 1224 | (defmethod file-system-delete-file ((file-system file-system) path) 1225 | (with-slots (native-pointer) 1226 | file-system 1227 | (gir:invoke (native-pointer "delete_file") path))) 1228 | 1229 | (defmethod file-system-delete-files ((file-system file-system) paths) 1230 | (with-slots (native-pointer) 1231 | file-system 1232 | (gir:invoke (native-pointer "delete_files") paths))) 1233 | 1234 | (defmethod file-system-get-file-info ((file-system file-system) path) 1235 | (with-slots (native-pointer) 1236 | file-system 1237 | (gir:invoke (native-pointer "get_file_info") path))) 1238 | 1239 | (defmethod file-system-get-file-infos-paths ((file-system file-system) paths) 1240 | (with-slots (native-pointer) 1241 | file-system 1242 | (gir:invoke (native-pointer "get_file_infos_paths") paths))) 1243 | 1244 | (defmethod file-system-get-file-infos-selector 1245 | ((file-system file-system) file-selector) 1246 | (with-slots (native-pointer) 1247 | file-system 1248 | (gir:invoke (native-pointer "get_file_infos_selector") file-selector))) 1249 | 1250 | (defmethod file-system-get-type-name ((file-system file-system)) 1251 | (with-slots (native-pointer) 1252 | file-system 1253 | (gir:invoke (native-pointer "get_type_name")))) 1254 | 1255 | (defmethod file-system-move ((file-system file-system) src dest) 1256 | (with-slots (native-pointer) 1257 | file-system 1258 | (gir:invoke (native-pointer "move") src dest))) 1259 | 1260 | (defmethod file-system-open-append-stream ((file-system file-system) path) 1261 | (with-slots (native-pointer) 1262 | file-system 1263 | (gir:invoke (native-pointer "open_append_stream") path))) 1264 | 1265 | (defmethod file-system-open-input-file ((file-system file-system) path) 1266 | (with-slots (native-pointer) 1267 | file-system 1268 | (gir:invoke (native-pointer "open_input_file") path))) 1269 | 1270 | (defmethod file-system-open-input-stream ((file-system file-system) path) 1271 | (with-slots (native-pointer) 1272 | file-system 1273 | (gir:invoke (native-pointer "open_input_stream") path))) 1274 | 1275 | (defmethod file-system-open-output-stream ((file-system file-system) path) 1276 | (with-slots (native-pointer) 1277 | file-system 1278 | (gir:invoke (native-pointer "open_output_stream") path))) 1279 | 1280 | (defparameter *file-type-dir* (gir:nget *ns* "FileType" :dir)) 1281 | (defparameter *file-type-file* (gir:nget *ns* "FileType" :file)) 1282 | (defparameter *file-type-unknown* (gir:nget *ns* "FileType" :unknown)) 1283 | (defparameter *file-type-not-found* (gir:nget *ns* "FileType" :not_found)) 1284 | 1285 | 1286 | (defparameter *filter-null-selection-behavior-emit-null* 1287 | (gir:nget *ns* "FilterNullSelectionBehavior" :emit_null)) 1288 | (defparameter *filter-null-selection-behavior-drop* (gir:nget *ns* "FilterNullSelectionBehavior" :drop)) 1289 | 1290 | 1291 | (defclass filter-options (gir-object) nil) 1292 | 1293 | (defun make-filter-options-new () 1294 | (let ((pointer (gir:invoke (*ns* "FilterOptions" "new")))) 1295 | (make-instance 'filter-options :native-pointer pointer))) 1296 | 1297 | (defclass fixed-size-binary-array (gir-object) nil) 1298 | 1299 | (defclass fixed-size-binary-data-type (gir-object) (byte-width)) 1300 | 1301 | (defun make-fixed-size-binary-data-type-new (byte-width) 1302 | (let ((pointer (gir:invoke (*ns* "FixedSizeBinaryDataType" "new") byte-width))) 1303 | (make-instance 'fixed-size-binary-data-type :native-pointer pointer))) 1304 | 1305 | (defmethod fixed-size-binary-data-type-get-byte-width 1306 | ((fixed-size-binary-data-type fixed-size-binary-data-type)) 1307 | (with-slots (native-pointer) 1308 | fixed-size-binary-data-type 1309 | (gir:invoke (native-pointer "get_byte_width")))) 1310 | 1311 | (defclass fixed-width-data-type (arrow-data-type) nil) 1312 | 1313 | (defmethod fixed-width-data-type-get-bit-width 1314 | ((fixed-width-data-type fixed-width-data-type)) 1315 | (with-slots (native-pointer) 1316 | fixed-width-data-type 1317 | (gir:invoke (native-pointer "get_bit_width")))) 1318 | 1319 | (defclass float-array (gir-object) (length data null-bitmap n-nulls)) 1320 | 1321 | (defun make-float-array-new (length data null-bitmap n-nulls) 1322 | (let ((pointer 1323 | (gir:invoke (*ns* "FloatArray" "new") length data null-bitmap n-nulls))) 1324 | (make-instance 'float-array :native-pointer pointer))) 1325 | 1326 | (defmethod float-array-compare ((float-array float-array) value options) 1327 | (with-slots (native-pointer) 1328 | float-array 1329 | (gir:invoke (native-pointer "compare") value options))) 1330 | 1331 | (defmethod float-array-get-value ((float-array float-array) i) 1332 | (with-slots (native-pointer) 1333 | float-array 1334 | (gir:invoke (native-pointer "get_value") i))) 1335 | 1336 | (defmethod float-array-get-values ((float-array float-array) length) 1337 | (with-slots (native-pointer) 1338 | float-array 1339 | (gir:invoke (native-pointer "get_values") length))) 1340 | 1341 | (defmethod float-array-sum ((float-array float-array)) 1342 | (with-slots (native-pointer) 1343 | float-array 1344 | (gir:invoke (native-pointer "sum")))) 1345 | 1346 | (defclass float-array-builder (array-builder) nil) 1347 | 1348 | (defun make-float-array-builder-new () 1349 | (let ((pointer (gir:invoke (*ns* "FloatArrayBuilder" "new")))) 1350 | (make-instance 'float-array-builder :native-pointer pointer))) 1351 | 1352 | (defmethod float-array-builder-append 1353 | ((float-array-builder float-array-builder) value) 1354 | (with-slots (native-pointer) 1355 | float-array-builder 1356 | (gir:invoke (native-pointer "append") value))) 1357 | 1358 | (defmethod float-array-builder-append-null 1359 | ((float-array-builder float-array-builder)) 1360 | (with-slots (native-pointer) 1361 | float-array-builder 1362 | (gir:invoke (native-pointer "append_null")))) 1363 | 1364 | (defmethod float-array-builder-append-nulls 1365 | ((float-array-builder float-array-builder) n) 1366 | (with-slots (native-pointer) 1367 | float-array-builder 1368 | (gir:invoke (native-pointer "append_nulls") n))) 1369 | 1370 | (defmethod float-array-builder-append-value 1371 | ((float-array-builder float-array-builder) value) 1372 | (with-slots (native-pointer) 1373 | float-array-builder 1374 | (gir:invoke (native-pointer "append_value") value))) 1375 | 1376 | (defmethod float-array-builder-append-values 1377 | ((float-array-builder float-array-builder) values) 1378 | (with-slots (native-pointer) 1379 | float-array-builder 1380 | (gir:invoke (native-pointer "append_values") values))) 1381 | 1382 | (defclass float-data-type (gir-object) nil) 1383 | 1384 | (defun make-float-data-type-new () 1385 | (let ((pointer (gir:invoke (*ns* "FloatDataType" "new")))) 1386 | (make-instance 'float-data-type :native-pointer pointer))) 1387 | 1388 | (defclass floating-point-data-type (gir-object) nil) 1389 | 1390 | (defclass gioinput-stream (gir-object) (gio-input-stream)) 1391 | 1392 | (defun make-gioinput-stream-new (gio-input-stream) 1393 | (let ((pointer (gir:invoke (*ns* "GIOInputStream" "new") gio-input-stream))) 1394 | (make-instance 'gioinput-stream :native-pointer pointer))) 1395 | 1396 | (defmethod gioinput-stream-get-raw ((gioinput-stream gioinput-stream)) 1397 | (with-slots (native-pointer) 1398 | gioinput-stream 1399 | (gir:invoke (native-pointer "get_raw")))) 1400 | 1401 | (defclass giooutput-stream (gir-object) (gio-output-stream)) 1402 | 1403 | (defun make-giooutput-stream-new (gio-output-stream) 1404 | (let ((pointer (gir:invoke (*ns* "GIOOutputStream" "new") gio-output-stream))) 1405 | (make-instance 'giooutput-stream :native-pointer pointer))) 1406 | 1407 | (defmethod giooutput-stream-get-raw ((giooutput-stream giooutput-stream)) 1408 | (with-slots (native-pointer) 1409 | giooutput-stream 1410 | (gir:invoke (native-pointer "get_raw")))) 1411 | 1412 | (defclass input-stream (gir-object) nil) 1413 | 1414 | (defmethod input-stream-advance ((input-stream input-stream) n-bytes) 1415 | (with-slots (native-pointer) 1416 | input-stream 1417 | (gir:invoke (native-pointer "advance") n-bytes))) 1418 | 1419 | (defmethod input-stream-align ((input-stream input-stream) alignment) 1420 | (with-slots (native-pointer) 1421 | input-stream 1422 | (gir:invoke (native-pointer "align") alignment))) 1423 | 1424 | (defmethod input-stream-read-tensor ((input-stream input-stream)) 1425 | (with-slots (native-pointer) 1426 | input-stream 1427 | (gir:invoke (native-pointer "read_tensor")))) 1428 | 1429 | (defclass int16array (gir-object) (length data null-bitmap n-nulls)) 1430 | 1431 | (defun make-int16array-new (length data null-bitmap n-nulls) 1432 | (let ((pointer 1433 | (gir:invoke (*ns* "Int16Array" "new") length data null-bitmap n-nulls))) 1434 | (make-instance 'int16array :native-pointer pointer))) 1435 | 1436 | (defmethod int16array-compare ((int16array int16array) value options) 1437 | (with-slots (native-pointer) 1438 | int16array 1439 | (gir:invoke (native-pointer "compare") value options))) 1440 | 1441 | (defmethod int16array-get-value ((int16array int16array) i) 1442 | (with-slots (native-pointer) 1443 | int16array 1444 | (gir:invoke (native-pointer "get_value") i))) 1445 | 1446 | (defmethod int16array-get-values ((int16array int16array) length) 1447 | (with-slots (native-pointer) 1448 | int16array 1449 | (gir:invoke (native-pointer "get_values") length))) 1450 | 1451 | (defmethod int16array-sum ((int16array int16array)) 1452 | (with-slots (native-pointer) 1453 | int16array 1454 | (gir:invoke (native-pointer "sum")))) 1455 | 1456 | (defclass int16array-builder (array-builder) nil) 1457 | 1458 | (defun make-int16array-builder-new () 1459 | (let ((pointer (gir:invoke (*ns* "Int16ArrayBuilder" "new")))) 1460 | (make-instance 'int16array-builder :native-pointer pointer))) 1461 | 1462 | (defmethod int16array-builder-append 1463 | ((int16array-builder int16array-builder) value) 1464 | (with-slots (native-pointer) 1465 | int16array-builder 1466 | (gir:invoke (native-pointer "append") value))) 1467 | 1468 | (defmethod int16array-builder-append-null 1469 | ((int16array-builder int16array-builder)) 1470 | (with-slots (native-pointer) 1471 | int16array-builder 1472 | (gir:invoke (native-pointer "append_null")))) 1473 | 1474 | (defmethod int16array-builder-append-nulls 1475 | ((int16array-builder int16array-builder) n) 1476 | (with-slots (native-pointer) 1477 | int16array-builder 1478 | (gir:invoke (native-pointer "append_nulls") n))) 1479 | 1480 | (defmethod int16array-builder-append-value 1481 | ((int16array-builder int16array-builder) value) 1482 | (with-slots (native-pointer) 1483 | int16array-builder 1484 | (gir:invoke (native-pointer "append_value") value))) 1485 | 1486 | (defmethod int16array-builder-append-values 1487 | ((int16array-builder int16array-builder) values) 1488 | (with-slots (native-pointer) 1489 | int16array-builder 1490 | (gir:invoke (native-pointer "append_values") values))) 1491 | 1492 | (defclass int16data-type (gir-object) nil) 1493 | 1494 | (defun make-int16data-type-new () 1495 | (let ((pointer (gir:invoke (*ns* "Int16DataType" "new")))) 1496 | (make-instance 'int16data-type :native-pointer pointer))) 1497 | 1498 | (defclass int32array (gir-object) (length data null-bitmap n-nulls)) 1499 | 1500 | (defun make-int32array-new (length data null-bitmap n-nulls) 1501 | (let ((pointer 1502 | (gir:invoke (*ns* "Int32Array" "new") length data null-bitmap n-nulls))) 1503 | (make-instance 'int32array :native-pointer pointer))) 1504 | 1505 | (defmethod int32array-compare ((int32array int32array) value options) 1506 | (with-slots (native-pointer) 1507 | int32array 1508 | (gir:invoke (native-pointer "compare") value options))) 1509 | 1510 | (defmethod int32array-get-value ((int32array int32array) i) 1511 | (with-slots (native-pointer) 1512 | int32array 1513 | (gir:invoke (native-pointer "get_value") i))) 1514 | 1515 | (defmethod int32array-get-values ((int32array int32array) length) 1516 | (with-slots (native-pointer) 1517 | int32array 1518 | (gir:invoke (native-pointer "get_values") length))) 1519 | 1520 | (defmethod int32array-sum ((int32array int32array)) 1521 | (with-slots (native-pointer) 1522 | int32array 1523 | (gir:invoke (native-pointer "sum")))) 1524 | 1525 | (defclass int32array-builder (array-builder) nil) 1526 | 1527 | (defun make-int32array-builder-new () 1528 | (let ((pointer (gir:invoke (*ns* "Int32ArrayBuilder" "new")))) 1529 | (make-instance 'int32array-builder :native-pointer pointer))) 1530 | 1531 | (defmethod int32array-builder-append 1532 | ((int32array-builder int32array-builder) value) 1533 | (with-slots (native-pointer) 1534 | int32array-builder 1535 | (gir:invoke (native-pointer "append") value))) 1536 | 1537 | (defmethod int32array-builder-append-null 1538 | ((int32array-builder int32array-builder)) 1539 | (with-slots (native-pointer) 1540 | int32array-builder 1541 | (gir:invoke (native-pointer "append_null")))) 1542 | 1543 | (defmethod int32array-builder-append-nulls 1544 | ((int32array-builder int32array-builder) n) 1545 | (with-slots (native-pointer) 1546 | int32array-builder 1547 | (gir:invoke (native-pointer "append_nulls") n))) 1548 | 1549 | (defmethod int32array-builder-append-value 1550 | ((int32array-builder int32array-builder) value) 1551 | (with-slots (native-pointer) 1552 | int32array-builder 1553 | (gir:invoke (native-pointer "append_value") value))) 1554 | 1555 | (defmethod int32array-builder-append-values 1556 | ((int32array-builder int32array-builder) values) 1557 | (with-slots (native-pointer) 1558 | int32array-builder 1559 | (gir:invoke (native-pointer "append_values") values))) 1560 | 1561 | (defclass int32data-type (gir-object) nil) 1562 | 1563 | (defun make-int32data-type-new () 1564 | (let ((pointer (gir:invoke (*ns* "Int32DataType" "new")))) 1565 | (make-instance 'int32data-type :native-pointer pointer))) 1566 | 1567 | (defclass int64array (gir-object) (length data null-bitmap n-nulls)) 1568 | 1569 | (defun make-int64array-new (length data null-bitmap n-nulls) 1570 | (let ((pointer 1571 | (gir:invoke (*ns* "Int64Array" "new") length data null-bitmap n-nulls))) 1572 | (make-instance 'int64array :native-pointer pointer))) 1573 | 1574 | (defmethod int64array-compare ((int64array int64array) value options) 1575 | (with-slots (native-pointer) 1576 | int64array 1577 | (gir:invoke (native-pointer "compare") value options))) 1578 | 1579 | (defmethod int64array-get-value ((int64array int64array) i) 1580 | (with-slots (native-pointer) 1581 | int64array 1582 | (gir:invoke (native-pointer "get_value") i))) 1583 | 1584 | (defmethod int64array-get-values ((int64array int64array) length) 1585 | (with-slots (native-pointer) 1586 | int64array 1587 | (gir:invoke (native-pointer "get_values") length))) 1588 | 1589 | (defmethod int64array-sum ((int64array int64array)) 1590 | (with-slots (native-pointer) 1591 | int64array 1592 | (gir:invoke (native-pointer "sum")))) 1593 | 1594 | (defclass int64array-builder (array-builder) nil) 1595 | 1596 | (defun make-int64array-builder-new () 1597 | (let ((pointer (gir:invoke (*ns* "Int64ArrayBuilder" "new")))) 1598 | (make-instance 'int64array-builder :native-pointer pointer))) 1599 | 1600 | (defmethod int64array-builder-append 1601 | ((int64array-builder int64array-builder) value) 1602 | (with-slots (native-pointer) 1603 | int64array-builder 1604 | (gir:invoke (native-pointer "append") value))) 1605 | 1606 | (defmethod int64array-builder-append-null 1607 | ((int64array-builder int64array-builder)) 1608 | (with-slots (native-pointer) 1609 | int64array-builder 1610 | (gir:invoke (native-pointer "append_null")))) 1611 | 1612 | (defmethod int64array-builder-append-nulls 1613 | ((int64array-builder int64array-builder) n) 1614 | (with-slots (native-pointer) 1615 | int64array-builder 1616 | (gir:invoke (native-pointer "append_nulls") n))) 1617 | 1618 | (defmethod int64array-builder-append-value 1619 | ((int64array-builder int64array-builder) value) 1620 | (with-slots (native-pointer) 1621 | int64array-builder 1622 | (gir:invoke (native-pointer "append_value") value))) 1623 | 1624 | (defmethod int64array-builder-append-values 1625 | ((int64array-builder int64array-builder) values) 1626 | (with-slots (native-pointer) 1627 | int64array-builder 1628 | (gir:invoke (native-pointer "append_values") values))) 1629 | 1630 | (defclass int64data-type (gir-object) nil) 1631 | 1632 | (defun make-int64data-type-new () 1633 | (let ((pointer (gir:invoke (*ns* "Int64DataType" "new")))) 1634 | (make-instance 'int64data-type :native-pointer pointer))) 1635 | 1636 | (defclass int8array (gir-object) (length data null-bitmap n-nulls)) 1637 | 1638 | (defun make-int8array-new (length data null-bitmap n-nulls) 1639 | (let ((pointer 1640 | (gir:invoke (*ns* "Int8Array" "new") length data null-bitmap n-nulls))) 1641 | (make-instance 'int8array :native-pointer pointer))) 1642 | 1643 | (defmethod int8array-compare ((int8array int8array) value options) 1644 | (with-slots (native-pointer) 1645 | int8array 1646 | (gir:invoke (native-pointer "compare") value options))) 1647 | 1648 | (defmethod int8array-get-value ((int8array int8array) i) 1649 | (with-slots (native-pointer) 1650 | int8array 1651 | (gir:invoke (native-pointer "get_value") i))) 1652 | 1653 | (defmethod int8array-get-values ((int8array int8array) length) 1654 | (with-slots (native-pointer) 1655 | int8array 1656 | (gir:invoke (native-pointer "get_values") length))) 1657 | 1658 | (defmethod int8array-sum ((int8array int8array)) 1659 | (with-slots (native-pointer) 1660 | int8array 1661 | (gir:invoke (native-pointer "sum")))) 1662 | 1663 | (defclass int8array-builder (array-builder) nil) 1664 | 1665 | (defun make-int8array-builder-new () 1666 | (let ((pointer (gir:invoke (*ns* "Int8ArrayBuilder" "new")))) 1667 | (make-instance 'int8array-builder :native-pointer pointer))) 1668 | 1669 | (defmethod int8array-builder-append 1670 | ((int8array-builder int8array-builder) value) 1671 | (with-slots (native-pointer) 1672 | int8array-builder 1673 | (gir:invoke (native-pointer "append") value))) 1674 | 1675 | (defmethod int8array-builder-append-null 1676 | ((int8array-builder int8array-builder)) 1677 | (with-slots (native-pointer) 1678 | int8array-builder 1679 | (gir:invoke (native-pointer "append_null")))) 1680 | 1681 | (defmethod int8array-builder-append-nulls 1682 | ((int8array-builder int8array-builder) n) 1683 | (with-slots (native-pointer) 1684 | int8array-builder 1685 | (gir:invoke (native-pointer "append_nulls") n))) 1686 | 1687 | (defmethod int8array-builder-append-value 1688 | ((int8array-builder int8array-builder) value) 1689 | (with-slots (native-pointer) 1690 | int8array-builder 1691 | (gir:invoke (native-pointer "append_value") value))) 1692 | 1693 | (defmethod int8array-builder-append-values 1694 | ((int8array-builder int8array-builder) values) 1695 | (with-slots (native-pointer) 1696 | int8array-builder 1697 | (gir:invoke (native-pointer "append_values") values))) 1698 | 1699 | (defclass int8data-type (gir-object) nil) 1700 | 1701 | (defun make-int8data-type-new () 1702 | (let ((pointer (gir:invoke (*ns* "Int8DataType" "new")))) 1703 | (make-instance 'int8data-type :native-pointer pointer))) 1704 | 1705 | (defclass int-array-builder (array-builder) nil) 1706 | 1707 | (defun make-int-array-builder-new () 1708 | (let ((pointer (gir:invoke (*ns* "IntArrayBuilder" "new")))) 1709 | (make-instance 'int-array-builder :native-pointer pointer))) 1710 | 1711 | (defmethod int-array-builder-append 1712 | ((int-array-builder int-array-builder) value) 1713 | (with-slots (native-pointer) 1714 | int-array-builder 1715 | (gir:invoke (native-pointer "append") value))) 1716 | 1717 | (defmethod int-array-builder-append-null 1718 | ((int-array-builder int-array-builder)) 1719 | (with-slots (native-pointer) 1720 | int-array-builder 1721 | (gir:invoke (native-pointer "append_null")))) 1722 | 1723 | (defmethod int-array-builder-append-nulls 1724 | ((int-array-builder int-array-builder) n) 1725 | (with-slots (native-pointer) 1726 | int-array-builder 1727 | (gir:invoke (native-pointer "append_nulls") n))) 1728 | 1729 | (defmethod int-array-builder-append-value 1730 | ((int-array-builder int-array-builder) value) 1731 | (with-slots (native-pointer) 1732 | int-array-builder 1733 | (gir:invoke (native-pointer "append_value") value))) 1734 | 1735 | (defmethod int-array-builder-append-values 1736 | ((int-array-builder int-array-builder) values) 1737 | (with-slots (native-pointer) 1738 | int-array-builder 1739 | (gir:invoke (native-pointer "append_values") values))) 1740 | 1741 | (defclass integer-data-type (gir-object) nil) 1742 | 1743 | (defmethod integer-data-type-is-signed ((integer-data-type integer-data-type)) 1744 | (with-slots (native-pointer) 1745 | integer-data-type 1746 | (gir:invoke (native-pointer "is_signed")))) 1747 | 1748 | (defclass jsonread-options (gir-object) nil) 1749 | 1750 | (defun make-jsonread-options-new () 1751 | (let ((pointer (gir:invoke (*ns* "JSONReadOptions" "new")))) 1752 | (make-instance 'jsonread-options :native-pointer pointer))) 1753 | 1754 | (defparameter *jsonread-unexpected-field-behavior-infer-type* 1755 | (gir:nget *ns* "JSONReadUnexpectedFieldBehavior" :infer_type)) 1756 | (defparameter *jsonread-unexpected-field-behavior-error* 1757 | (gir:nget *ns* "JSONReadUnexpectedFieldBehavior" :error)) 1758 | (defparameter *jsonread-unexpected-field-behavior-ignore* 1759 | (gir:nget *ns* "JSONReadUnexpectedFieldBehavior" :ignore)) 1760 | 1761 | 1762 | (defclass jsonreader (gir-object) (input options)) 1763 | 1764 | (defun make-jsonreader-new (input options) 1765 | (let ((pointer (gir:invoke (*ns* "JSONReader" "new") input options))) 1766 | (make-instance 'jsonreader :native-pointer pointer))) 1767 | 1768 | (defmethod jsonreader-read ((jsonreader jsonreader)) 1769 | (with-slots (native-pointer) 1770 | jsonreader 1771 | (gir:invoke (native-pointer "read")))) 1772 | 1773 | (defclass large-binary-array (arrow-array) 1774 | (length value-offsets data null-bitmap n-nulls)) 1775 | 1776 | (defun make-large-binary-array-new 1777 | (length value-offsets data null-bitmap n-nulls) 1778 | (let ((pointer 1779 | (gir:invoke (*ns* "LargeBinaryArray" "new") length value-offsets data null-bitmap 1780 | n-nulls))) 1781 | (make-instance 'large-binary-array :native-pointer pointer))) 1782 | 1783 | (defmethod large-binary-array-get-buffer 1784 | ((large-binary-array large-binary-array)) 1785 | (with-slots (native-pointer) 1786 | large-binary-array 1787 | (gir:invoke (native-pointer "get_buffer")))) 1788 | 1789 | (defmethod large-binary-array-get-offsets-buffer 1790 | ((large-binary-array large-binary-array)) 1791 | (with-slots (native-pointer) 1792 | large-binary-array 1793 | (gir:invoke (native-pointer "get_offsets_buffer")))) 1794 | 1795 | (defmethod large-binary-array-get-value 1796 | ((large-binary-array large-binary-array) i) 1797 | (with-slots (native-pointer) 1798 | large-binary-array 1799 | (gir:invoke (native-pointer "get_value") i))) 1800 | 1801 | (defclass large-binary-array-builder (array-builder) nil) 1802 | 1803 | (defun make-large-binary-array-builder-new () 1804 | (let ((pointer (gir:invoke (*ns* "LargeBinaryArrayBuilder" "new")))) 1805 | (make-instance 'large-binary-array-builder :native-pointer pointer))) 1806 | 1807 | (defmethod large-binary-array-builder-append-null 1808 | ((large-binary-array-builder large-binary-array-builder)) 1809 | (with-slots (native-pointer) 1810 | large-binary-array-builder 1811 | (gir:invoke (native-pointer "append_null")))) 1812 | 1813 | (defmethod large-binary-array-builder-append-nulls 1814 | ((large-binary-array-builder large-binary-array-builder) n) 1815 | (with-slots (native-pointer) 1816 | large-binary-array-builder 1817 | (gir:invoke (native-pointer "append_nulls") n))) 1818 | 1819 | (defmethod large-binary-array-builder-append-value 1820 | ((large-binary-array-builder large-binary-array-builder) value) 1821 | (with-slots (native-pointer) 1822 | large-binary-array-builder 1823 | (gir:invoke (native-pointer "append_value") value))) 1824 | 1825 | (defmethod large-binary-array-builder-append-value-bytes 1826 | ((large-binary-array-builder large-binary-array-builder) value) 1827 | (with-slots (native-pointer) 1828 | large-binary-array-builder 1829 | (gir:invoke (native-pointer "append_value_bytes") value))) 1830 | 1831 | (defmethod large-binary-array-builder-append-values 1832 | ((large-binary-array-builder large-binary-array-builder) values) 1833 | (with-slots (native-pointer) 1834 | large-binary-array-builder 1835 | (gir:invoke (native-pointer "append_values") values))) 1836 | 1837 | (defclass large-binary-data-type (arrow-data-type) nil) 1838 | 1839 | (defun make-large-binary-data-type-new () 1840 | (let ((pointer (gir:invoke (*ns* "LargeBinaryDataType" "new")))) 1841 | (make-instance 'large-binary-data-type :native-pointer pointer))) 1842 | 1843 | (defclass large-list-array (arrow-array) 1844 | (data-type length value-offsets values null-bitmap n-nulls)) 1845 | 1846 | (defun make-large-list-array-new 1847 | (data-type length value-offsets values null-bitmap n-nulls) 1848 | (let ((pointer 1849 | (gir:invoke (*ns* "LargeListArray" "new") data-type length value-offsets values 1850 | null-bitmap n-nulls))) 1851 | (make-instance 'large-list-array :native-pointer pointer))) 1852 | 1853 | (defmethod large-list-array-get-value ((large-list-array large-list-array) i) 1854 | (with-slots (native-pointer) 1855 | large-list-array 1856 | (gir:invoke (native-pointer "get_value") i))) 1857 | 1858 | (defmethod large-list-array-get-value-type 1859 | ((large-list-array large-list-array)) 1860 | (with-slots (native-pointer) 1861 | large-list-array 1862 | (gir:invoke (native-pointer "get_value_type")))) 1863 | 1864 | (defclass large-list-array-builder (array-builder) (data-type)) 1865 | 1866 | (defun make-large-list-array-builder-new (data-type) 1867 | (let ((pointer (gir:invoke (*ns* "LargeListArrayBuilder" "new") data-type))) 1868 | (make-instance 'large-list-array-builder :native-pointer pointer))) 1869 | 1870 | (defmethod large-list-array-builder-append-null 1871 | ((large-list-array-builder large-list-array-builder)) 1872 | (with-slots (native-pointer) 1873 | large-list-array-builder 1874 | (gir:invoke (native-pointer "append_null")))) 1875 | 1876 | (defmethod large-list-array-builder-append-value 1877 | ((large-list-array-builder large-list-array-builder)) 1878 | (with-slots (native-pointer) 1879 | large-list-array-builder 1880 | (gir:invoke (native-pointer "append_value")))) 1881 | 1882 | (defmethod large-list-array-builder-get-value-builder 1883 | ((large-list-array-builder large-list-array-builder)) 1884 | (with-slots (native-pointer) 1885 | large-list-array-builder 1886 | (gir:invoke (native-pointer "get_value_builder")))) 1887 | 1888 | (defclass large-list-data-type (arrow-data-type) (field)) 1889 | 1890 | (defun make-large-list-data-type-new (field) 1891 | (let ((pointer (gir:invoke (*ns* "LargeListDataType" "new") field))) 1892 | (make-instance 'large-list-data-type :native-pointer pointer))) 1893 | 1894 | (defmethod large-list-data-type-get-field 1895 | ((large-list-data-type large-list-data-type)) 1896 | (with-slots (native-pointer) 1897 | large-list-data-type 1898 | (gir:invoke (native-pointer "get_field")))) 1899 | 1900 | (defclass large-string-array (large-binary-array) 1901 | (length value-offsets data null-bitmap n-nulls)) 1902 | 1903 | (defun make-large-string-array-new 1904 | (length value-offsets data null-bitmap n-nulls) 1905 | (let ((pointer 1906 | (gir:invoke (*ns* "LargeStringArray" "new") length value-offsets data null-bitmap 1907 | n-nulls))) 1908 | (make-instance 'large-string-array :native-pointer pointer))) 1909 | 1910 | (defmethod large-string-array-get-string 1911 | ((large-string-array large-string-array) i) 1912 | (with-slots (native-pointer) 1913 | large-string-array 1914 | (gir:invoke (native-pointer "get_string") i))) 1915 | 1916 | (defclass large-string-array-builder (large-binary-array-builder) nil) 1917 | 1918 | (defun make-large-string-array-builder-new () 1919 | (let ((pointer (gir:invoke (*ns* "LargeStringArrayBuilder" "new")))) 1920 | (make-instance 'large-string-array-builder :native-pointer pointer))) 1921 | 1922 | (defmethod large-string-array-builder-append-string 1923 | ((large-string-array-builder large-string-array-builder) value) 1924 | (with-slots (native-pointer) 1925 | large-string-array-builder 1926 | (gir:invoke (native-pointer "append_string") value))) 1927 | 1928 | (defmethod large-string-array-builder-append-strings 1929 | ((large-string-array-builder large-string-array-builder) values) 1930 | (with-slots (native-pointer) 1931 | large-string-array-builder 1932 | (gir:invoke (native-pointer "append_strings") values))) 1933 | 1934 | (defclass large-string-data-type (arrow-data-type) nil) 1935 | 1936 | (defun make-large-string-data-type-new () 1937 | (let ((pointer (gir:invoke (*ns* "LargeStringDataType" "new")))) 1938 | (make-instance 'large-string-data-type :native-pointer pointer))) 1939 | 1940 | (defclass list-array (arrow-array) 1941 | (data-type length value-offsets values null-bitmap n-nulls)) 1942 | 1943 | (defun make-list-array-new 1944 | (data-type length value-offsets values null-bitmap n-nulls) 1945 | (let ((pointer 1946 | (gir:invoke (*ns* "ListArray" "new") data-type length value-offsets values 1947 | null-bitmap n-nulls))) 1948 | (make-instance 'list-array :native-pointer pointer))) 1949 | 1950 | (defmethod list-array-get-value ((list-array list-array) i) 1951 | (with-slots (native-pointer) 1952 | list-array 1953 | (gir:invoke (native-pointer "get_value") i))) 1954 | 1955 | (defmethod list-array-get-value-type ((list-array list-array)) 1956 | (with-slots (native-pointer) 1957 | list-array 1958 | (gir:invoke (native-pointer "get_value_type")))) 1959 | 1960 | (defclass list-array-builder (array-builder) (data-type)) 1961 | 1962 | (defun make-list-array-builder-new (data-type) 1963 | (let ((pointer (gir:invoke (*ns* "ListArrayBuilder" "new") data-type))) 1964 | (make-instance 'list-array-builder :native-pointer pointer))) 1965 | 1966 | (defmethod list-array-builder-append ((list-array-builder list-array-builder)) 1967 | (with-slots (native-pointer) 1968 | list-array-builder 1969 | (gir:invoke (native-pointer "append")))) 1970 | 1971 | (defmethod list-array-builder-append-null 1972 | ((list-array-builder list-array-builder)) 1973 | (with-slots (native-pointer) 1974 | list-array-builder 1975 | (gir:invoke (native-pointer "append_null")))) 1976 | 1977 | (defmethod list-array-builder-append-value 1978 | ((list-array-builder list-array-builder)) 1979 | (with-slots (native-pointer) 1980 | list-array-builder 1981 | (gir:invoke (native-pointer "append_value")))) 1982 | 1983 | (defmethod list-array-builder-get-value-builder 1984 | ((list-array-builder list-array-builder)) 1985 | (with-slots (native-pointer) 1986 | list-array-builder 1987 | (gir:invoke (native-pointer "get_value_builder")))) 1988 | 1989 | (defclass list-data-type (arrow-data-type) (field)) 1990 | 1991 | (defun make-list-data-type-new (field) 1992 | (let ((pointer (gir:invoke (*ns* "ListDataType" "new") field))) 1993 | (make-instance 'list-data-type :native-pointer pointer))) 1994 | 1995 | (defmethod list-data-type-get-field ((list-data-type list-data-type)) 1996 | (with-slots (native-pointer) 1997 | list-data-type 1998 | (gir:invoke (native-pointer "get_field")))) 1999 | 2000 | (defmethod list-data-type-get-value-field ((list-data-type list-data-type)) 2001 | (with-slots (native-pointer) 2002 | list-data-type 2003 | (gir:invoke (native-pointer "get_value_field")))) 2004 | 2005 | (defclass local-file-system (file-system) (options)) 2006 | 2007 | (defun make-local-file-system-new (options) 2008 | (let ((pointer (gir:invoke (*ns* "LocalFileSystem" "new") options))) 2009 | (make-instance 'local-file-system :native-pointer pointer))) 2010 | 2011 | (defclass local-file-system-options (gir-object) nil) 2012 | 2013 | (defun make-local-file-system-options-new () 2014 | (let ((pointer (gir:invoke (*ns* "LocalFileSystemOptions" "new")))) 2015 | (make-instance 'local-file-system-options :native-pointer pointer))) 2016 | 2017 | (defclass map-array (list-array) (offsets keys items)) 2018 | 2019 | (defun make-map-array-new (offsets keys items) 2020 | (let ((pointer (gir:invoke (*ns* "MapArray" "new") offsets keys items))) 2021 | (make-instance 'map-array :native-pointer pointer))) 2022 | 2023 | (defmethod map-array-get-items ((map-array map-array)) 2024 | (with-slots (native-pointer) 2025 | map-array 2026 | (gir:invoke (native-pointer "get_items")))) 2027 | 2028 | (defmethod map-array-get-keys ((map-array map-array)) 2029 | (with-slots (native-pointer) 2030 | map-array 2031 | (gir:invoke (native-pointer "get_keys")))) 2032 | 2033 | (defclass map-array-builder (array-builder) (data-type)) 2034 | 2035 | (defun make-map-array-builder-new (data-type) 2036 | (let ((pointer (gir:invoke (*ns* "MapArrayBuilder" "new") data-type))) 2037 | (make-instance 'map-array-builder :native-pointer pointer))) 2038 | 2039 | (defmethod map-array-builder-append-null 2040 | ((map-array-builder map-array-builder)) 2041 | (with-slots (native-pointer) 2042 | map-array-builder 2043 | (gir:invoke (native-pointer "append_null")))) 2044 | 2045 | (defmethod map-array-builder-append-nulls 2046 | ((map-array-builder map-array-builder) n) 2047 | (with-slots (native-pointer) 2048 | map-array-builder 2049 | (gir:invoke (native-pointer "append_nulls") n))) 2050 | 2051 | (defmethod map-array-builder-append-value 2052 | ((map-array-builder map-array-builder)) 2053 | (with-slots (native-pointer) 2054 | map-array-builder 2055 | (gir:invoke (native-pointer "append_value")))) 2056 | 2057 | (defmethod map-array-builder-append-values 2058 | ((map-array-builder map-array-builder) offsets) 2059 | (with-slots (native-pointer) 2060 | map-array-builder 2061 | (gir:invoke (native-pointer "append_values") offsets))) 2062 | 2063 | (defmethod map-array-builder-get-item-builder 2064 | ((map-array-builder map-array-builder)) 2065 | (with-slots (native-pointer) 2066 | map-array-builder 2067 | (gir:invoke (native-pointer "get_item_builder")))) 2068 | 2069 | (defmethod map-array-builder-get-key-builder 2070 | ((map-array-builder map-array-builder)) 2071 | (with-slots (native-pointer) 2072 | map-array-builder 2073 | (gir:invoke (native-pointer "get_key_builder")))) 2074 | 2075 | (defmethod map-array-builder-get-value-builder 2076 | ((map-array-builder map-array-builder)) 2077 | (with-slots (native-pointer) 2078 | map-array-builder 2079 | (gir:invoke (native-pointer "get_value_builder")))) 2080 | 2081 | (defclass map-data-type (list-data-type) (key-type item-type)) 2082 | 2083 | (defun make-map-data-type-new (key-type item-type) 2084 | (let ((pointer (gir:invoke (*ns* "MapDataType" "new") key-type item-type))) 2085 | (make-instance 'map-data-type :native-pointer pointer))) 2086 | 2087 | (defmethod map-data-type-get-item-type ((map-data-type map-data-type)) 2088 | (with-slots (native-pointer) 2089 | map-data-type 2090 | (gir:invoke (native-pointer "get_item_type")))) 2091 | 2092 | (defmethod map-data-type-get-key-type ((map-data-type map-data-type)) 2093 | (with-slots (native-pointer) 2094 | map-data-type 2095 | (gir:invoke (native-pointer "get_key_type")))) 2096 | 2097 | (defclass memory-mapped-input-stream (gir-object) (path)) 2098 | 2099 | (defun make-memory-mapped-input-stream-new (path) 2100 | (let ((pointer (gir:invoke (*ns* "MemoryMappedInputStream" "new") path))) 2101 | (make-instance 'memory-mapped-input-stream :native-pointer pointer))) 2102 | 2103 | (defparameter *metadata-version-v3* (gir:nget *ns* "MetadataVersion" :v3)) 2104 | (defparameter *metadata-version-v2* (gir:nget *ns* "MetadataVersion" :v2)) 2105 | (defparameter *metadata-version-v1* (gir:nget *ns* "MetadataVersion" :v1)) 2106 | 2107 | 2108 | (defclass mutable-buffer (buffer) (data)) 2109 | 2110 | (defun make-mutable-buffer-new (data) 2111 | (let ((pointer (gir:invoke (*ns* "MutableBuffer" "new") data))) 2112 | (make-instance 'mutable-buffer :native-pointer pointer))) 2113 | 2114 | (defun make-mutable-buffer-new-bytes (data) 2115 | (let ((pointer (gir:invoke (*ns* "MutableBuffer" "new_bytes") data))) 2116 | (make-instance 'mutable-buffer :native-pointer pointer))) 2117 | 2118 | (defmethod mutable-buffer-set-data 2119 | ((mutable-buffer mutable-buffer) offset data) 2120 | (with-slots (native-pointer) 2121 | mutable-buffer 2122 | (gir:invoke (native-pointer "set_data") offset data))) 2123 | 2124 | (defmethod mutable-buffer-slice ((mutable-buffer mutable-buffer) offset size) 2125 | (with-slots (native-pointer) 2126 | mutable-buffer 2127 | (gir:invoke (native-pointer "slice") offset size))) 2128 | 2129 | (defclass null-array (arrow-array) (length)) 2130 | 2131 | (defun make-null-array-new (length) 2132 | (let ((pointer (gir:invoke (*ns* "NullArray" "new") length))) 2133 | (make-instance 'null-array :native-pointer pointer))) 2134 | 2135 | (defclass null-array-builder (array-builder) nil) 2136 | 2137 | (defun make-null-array-builder-new () 2138 | (let ((pointer (gir:invoke (*ns* "NullArrayBuilder" "new")))) 2139 | (make-instance 'null-array-builder :native-pointer pointer))) 2140 | 2141 | (defmethod null-array-builder-append-null 2142 | ((null-array-builder null-array-builder)) 2143 | (with-slots (native-pointer) 2144 | null-array-builder 2145 | (gir:invoke (native-pointer "append_null")))) 2146 | 2147 | (defmethod null-array-builder-append-nulls 2148 | ((null-array-builder null-array-builder) n) 2149 | (with-slots (native-pointer) 2150 | null-array-builder 2151 | (gir:invoke (native-pointer "append_nulls") n))) 2152 | 2153 | (defclass null-data-type (arrow-data-type) nil) 2154 | 2155 | (defun make-null-data-type-new () 2156 | (let ((pointer (gir:invoke (*ns* "NullDataType" "new")))) 2157 | (make-instance 'null-data-type :native-pointer pointer))) 2158 | 2159 | (defclass numeric-array (gir-object) nil) 2160 | 2161 | (defmethod numeric-array-mean ((numeric-array numeric-array)) 2162 | (with-slots (native-pointer) 2163 | numeric-array 2164 | (gir:invoke (native-pointer "mean")))) 2165 | 2166 | (defclass numeric-data-type (fixed-width-data-type) nil) 2167 | 2168 | (defclass output-stream (gir-object) nil) 2169 | 2170 | (defmethod output-stream-align ((output-stream output-stream) alignment) 2171 | (with-slots (native-pointer) 2172 | output-stream 2173 | (gir:invoke (native-pointer "align") alignment))) 2174 | 2175 | (defmethod output-stream-write-tensor ((output-stream output-stream) tensor) 2176 | (with-slots (native-pointer) 2177 | output-stream 2178 | (gir:invoke (native-pointer "write_tensor") tensor))) 2179 | 2180 | (defclass primitive-array (arrow-array) nil) 2181 | 2182 | (defmethod primitive-array-get-buffer ((primitive-array primitive-array)) 2183 | (with-slots (native-pointer) 2184 | primitive-array 2185 | (gir:invoke (native-pointer "get_buffer")))) 2186 | 2187 | (defclass record-batch (gir-object) (schema n-rows columns)) 2188 | 2189 | (defun make-record-batch-new (schema n-rows columns) 2190 | (let ((pointer (gir:invoke (*ns* "RecordBatch" "new") schema n-rows columns))) 2191 | (make-instance 'record-batch :native-pointer pointer))) 2192 | 2193 | (defmethod record-batch-add-column ((record-batch record-batch) i field column) 2194 | (with-slots (native-pointer) 2195 | record-batch 2196 | (gir:invoke (native-pointer "add_column") i field column))) 2197 | 2198 | (defmethod record-batch-equal ((record-batch record-batch) other-record-batch) 2199 | (with-slots (native-pointer) 2200 | record-batch 2201 | (gir:invoke (native-pointer "equal") other-record-batch))) 2202 | 2203 | (defmethod record-batch-equal-metadata 2204 | ((record-batch record-batch) other-record-batch check-metadata) 2205 | (with-slots (native-pointer) 2206 | record-batch 2207 | (gir:invoke (native-pointer "equal_metadata") other-record-batch 2208 | check-metadata))) 2209 | 2210 | (defmethod record-batch-filter ((record-batch record-batch) filter options) 2211 | (with-slots (native-pointer) 2212 | record-batch 2213 | (gir:invoke (native-pointer "filter") filter options))) 2214 | 2215 | (defmethod record-batch-get-column-data ((record-batch record-batch) i) 2216 | (with-slots (native-pointer) 2217 | record-batch 2218 | (gir:invoke (native-pointer "get_column_data") i))) 2219 | 2220 | (defmethod record-batch-get-column-name ((record-batch record-batch) i) 2221 | (with-slots (native-pointer) 2222 | record-batch 2223 | (gir:invoke (native-pointer "get_column_name") i))) 2224 | 2225 | (defmethod record-batch-get-n-columns ((record-batch record-batch)) 2226 | (with-slots (native-pointer) 2227 | record-batch 2228 | (gir:invoke (native-pointer "get_n_columns")))) 2229 | 2230 | (defmethod record-batch-get-n-rows ((record-batch record-batch)) 2231 | (with-slots (native-pointer) 2232 | record-batch 2233 | (gir:invoke (native-pointer "get_n_rows")))) 2234 | 2235 | (defmethod record-batch-get-schema ((record-batch record-batch)) 2236 | (with-slots (native-pointer) 2237 | record-batch 2238 | (gir:invoke (native-pointer "get_schema")))) 2239 | 2240 | (defmethod record-batch-remove-column ((record-batch record-batch) i) 2241 | (with-slots (native-pointer) 2242 | record-batch 2243 | (gir:invoke (native-pointer "remove_column") i))) 2244 | 2245 | (defmethod record-batch-slice ((record-batch record-batch) offset length) 2246 | (with-slots (native-pointer) 2247 | record-batch 2248 | (gir:invoke (native-pointer "slice") offset length))) 2249 | 2250 | (defmethod record-batch-take ((record-batch record-batch) indices options) 2251 | (with-slots (native-pointer) 2252 | record-batch 2253 | (gir:invoke (native-pointer "take") indices options))) 2254 | 2255 | (defmethod record-batch-to-string ((record-batch record-batch)) 2256 | (with-slots (native-pointer) 2257 | record-batch 2258 | (gir:invoke (native-pointer "to_string")))) 2259 | 2260 | (defclass record-batch-builder (gir-object) (schema)) 2261 | 2262 | (defun make-record-batch-builder-new (schema) 2263 | (let ((pointer (gir:invoke (*ns* "RecordBatchBuilder" "new") schema))) 2264 | (make-instance 'record-batch-builder :native-pointer pointer))) 2265 | 2266 | (defmethod record-batch-builder-flush 2267 | ((record-batch-builder record-batch-builder)) 2268 | (with-slots (native-pointer) 2269 | record-batch-builder 2270 | (gir:invoke (native-pointer "flush")))) 2271 | 2272 | (defmethod record-batch-builder-get-column-builder 2273 | ((record-batch-builder record-batch-builder) i) 2274 | (with-slots (native-pointer) 2275 | record-batch-builder 2276 | (gir:invoke (native-pointer "get_column_builder") i))) 2277 | 2278 | (defmethod record-batch-builder-get-field 2279 | ((record-batch-builder record-batch-builder) i) 2280 | (with-slots (native-pointer) 2281 | record-batch-builder 2282 | (gir:invoke (native-pointer "get_field") i))) 2283 | 2284 | (defmethod record-batch-builder-get-initial-capacity 2285 | ((record-batch-builder record-batch-builder)) 2286 | (with-slots (native-pointer) 2287 | record-batch-builder 2288 | (gir:invoke (native-pointer "get_initial_capacity")))) 2289 | 2290 | (defmethod record-batch-builder-get-n-columns 2291 | ((record-batch-builder record-batch-builder)) 2292 | (with-slots (native-pointer) 2293 | record-batch-builder 2294 | (gir:invoke (native-pointer "get_n_columns")))) 2295 | 2296 | (defmethod record-batch-builder-get-n-fields 2297 | ((record-batch-builder record-batch-builder)) 2298 | (with-slots (native-pointer) 2299 | record-batch-builder 2300 | (gir:invoke (native-pointer "get_n_fields")))) 2301 | 2302 | (defmethod record-batch-builder-get-schema 2303 | ((record-batch-builder record-batch-builder)) 2304 | (with-slots (native-pointer) 2305 | record-batch-builder 2306 | (gir:invoke (native-pointer "get_schema")))) 2307 | 2308 | (defmethod record-batch-builder-set-initial-capacity 2309 | ((record-batch-builder record-batch-builder) capacity) 2310 | (with-slots (native-pointer) 2311 | record-batch-builder 2312 | (gir:invoke (native-pointer "set_initial_capacity") capacity))) 2313 | 2314 | (defclass record-batch-file-reader (gir-object) (file)) 2315 | 2316 | (defun make-record-batch-file-reader-new (file) 2317 | (let ((pointer (gir:invoke (*ns* "RecordBatchFileReader" "new") file))) 2318 | (make-instance 'record-batch-file-reader :native-pointer pointer))) 2319 | 2320 | (defmethod record-batch-file-reader-get-n-record-batches 2321 | ((record-batch-file-reader record-batch-file-reader)) 2322 | (with-slots (native-pointer) 2323 | record-batch-file-reader 2324 | (gir:invoke (native-pointer "get_n_record_batches")))) 2325 | 2326 | (defmethod record-batch-file-reader-get-record-batch 2327 | ((record-batch-file-reader record-batch-file-reader) i) 2328 | (with-slots (native-pointer) 2329 | record-batch-file-reader 2330 | (gir:invoke (native-pointer "get_record_batch") i))) 2331 | 2332 | (defmethod record-batch-file-reader-get-schema 2333 | ((record-batch-file-reader record-batch-file-reader)) 2334 | (with-slots (native-pointer) 2335 | record-batch-file-reader 2336 | (gir:invoke (native-pointer "get_schema")))) 2337 | 2338 | (defmethod record-batch-file-reader-get-version 2339 | ((record-batch-file-reader record-batch-file-reader)) 2340 | (with-slots (native-pointer) 2341 | record-batch-file-reader 2342 | (gir:invoke (native-pointer "get_version")))) 2343 | 2344 | (defmethod record-batch-file-reader-read-record-batch 2345 | ((record-batch-file-reader record-batch-file-reader) i) 2346 | (with-slots (native-pointer) 2347 | record-batch-file-reader 2348 | (gir:invoke (native-pointer "read_record_batch") i))) 2349 | 2350 | (defclass record-batch-file-writer (gir-object) (sink schema)) 2351 | 2352 | (defun make-record-batch-file-writer-new (sink schema) 2353 | (let ((pointer (gir:invoke (*ns* "RecordBatchFileWriter" "new") sink schema))) 2354 | (make-instance 'record-batch-file-writer :native-pointer pointer))) 2355 | 2356 | (defclass record-batch-iterator (gir-object) (record-batches)) 2357 | 2358 | (defun make-record-batch-iterator-new (record-batches) 2359 | (let ((pointer (gir:invoke (*ns* "RecordBatchIterator" "new") record-batches))) 2360 | (make-instance 'record-batch-iterator :native-pointer pointer))) 2361 | 2362 | (defmethod record-batch-iterator-equal 2363 | ((record-batch-iterator record-batch-iterator) other-iterator) 2364 | (with-slots (native-pointer) 2365 | record-batch-iterator 2366 | (gir:invoke (native-pointer "equal") other-iterator))) 2367 | 2368 | (defmethod record-batch-iterator-next 2369 | ((record-batch-iterator record-batch-iterator)) 2370 | (with-slots (native-pointer) 2371 | record-batch-iterator 2372 | (gir:invoke (native-pointer "next")))) 2373 | 2374 | (defmethod record-batch-iterator-to-list 2375 | ((record-batch-iterator record-batch-iterator)) 2376 | (with-slots (native-pointer) 2377 | record-batch-iterator 2378 | (gir:invoke (native-pointer "to_list")))) 2379 | 2380 | (defclass record-batch-reader (gir-object) nil) 2381 | 2382 | (defmethod record-batch-reader-get-next-record-batch 2383 | ((record-batch-reader record-batch-reader)) 2384 | (with-slots (native-pointer) 2385 | record-batch-reader 2386 | (gir:invoke (native-pointer "get_next_record_batch")))) 2387 | 2388 | (defmethod record-batch-reader-get-schema 2389 | ((record-batch-reader record-batch-reader)) 2390 | (with-slots (native-pointer) 2391 | record-batch-reader 2392 | (gir:invoke (native-pointer "get_schema")))) 2393 | 2394 | (defmethod record-batch-reader-read-next 2395 | ((record-batch-reader record-batch-reader)) 2396 | (with-slots (native-pointer) 2397 | record-batch-reader 2398 | (gir:invoke (native-pointer "read_next")))) 2399 | 2400 | (defmethod record-batch-reader-read-next-record-batch 2401 | ((record-batch-reader record-batch-reader)) 2402 | (with-slots (native-pointer) 2403 | record-batch-reader 2404 | (gir:invoke (native-pointer "read_next_record_batch")))) 2405 | 2406 | (defclass record-batch-stream-reader (record-batch-reader) (stream)) 2407 | 2408 | (defun make-record-batch-stream-reader-new (stream) 2409 | (let ((pointer (gir:invoke (*ns* "RecordBatchStreamReader" "new") stream))) 2410 | (make-instance 'record-batch-stream-reader :native-pointer pointer))) 2411 | 2412 | (defclass record-batch-stream-writer (gir-object) (sink schema)) 2413 | 2414 | (defun make-record-batch-stream-writer-new (sink schema) 2415 | (let ((pointer (gir:invoke (*ns* "RecordBatchStreamWriter" "new") sink schema))) 2416 | (make-instance 'record-batch-stream-writer :native-pointer pointer))) 2417 | 2418 | (defclass record-batch-writer (gir-object) nil) 2419 | 2420 | (defmethod record-batch-writer-close 2421 | ((record-batch-writer record-batch-writer)) 2422 | (with-slots (native-pointer) 2423 | record-batch-writer 2424 | (gir:invoke (native-pointer "close")))) 2425 | 2426 | (defmethod record-batch-writer-write-record-batch 2427 | ((record-batch-writer record-batch-writer) record-batch) 2428 | (with-slots (native-pointer) 2429 | record-batch-writer 2430 | (gir:invoke (native-pointer "write_record_batch") record-batch))) 2431 | 2432 | (defmethod record-batch-writer-write-table 2433 | ((record-batch-writer record-batch-writer) table) 2434 | (with-slots (native-pointer) 2435 | record-batch-writer 2436 | (gir:invoke (native-pointer "write_table") table))) 2437 | 2438 | (defclass resizable-buffer (mutable-buffer) (initial-size)) 2439 | 2440 | (defun make-resizable-buffer-new (initial-size) 2441 | (let ((pointer (gir:invoke (*ns* "ResizableBuffer" "new") initial-size))) 2442 | (make-instance 'resizable-buffer :native-pointer pointer))) 2443 | 2444 | (defmethod resizable-buffer-reserve 2445 | ((resizable-buffer resizable-buffer) new-capacity) 2446 | (with-slots (native-pointer) 2447 | resizable-buffer 2448 | (gir:invoke (native-pointer "reserve") new-capacity))) 2449 | 2450 | (defmethod resizable-buffer-resize 2451 | ((resizable-buffer resizable-buffer) new-size) 2452 | (with-slots (native-pointer) 2453 | resizable-buffer 2454 | (gir:invoke (native-pointer "resize") new-size))) 2455 | 2456 | (defclass arrow-schema (gir-object) (fields)) 2457 | 2458 | (defun make-arrow-schema-new (fields) 2459 | (let ((pointer (gir:invoke (*ns* "Schema" "new") fields))) 2460 | (make-instance 'arrow-schema :native-pointer pointer))) 2461 | 2462 | (defmethod arrow-schema-add-field ((arrow-schema arrow-schema) i field) 2463 | (with-slots (native-pointer) 2464 | arrow-schema 2465 | (gir:invoke (native-pointer "add_field") i field))) 2466 | 2467 | (defmethod arrow-schema-equal ((arrow-schema arrow-schema) other-schema) 2468 | (with-slots (native-pointer) 2469 | arrow-schema 2470 | (gir:invoke (native-pointer "equal") other-schema))) 2471 | 2472 | (defmethod arrow-schema-get-field ((arrow-schema arrow-schema) i) 2473 | (with-slots (native-pointer) 2474 | arrow-schema 2475 | (gir:invoke (native-pointer "get_field") i))) 2476 | 2477 | (defmethod arrow-schema-get-field-by-name ((arrow-schema arrow-schema) name) 2478 | (with-slots (native-pointer) 2479 | arrow-schema 2480 | (gir:invoke (native-pointer "get_field_by_name") name))) 2481 | 2482 | (defmethod arrow-schema-get-field-index ((arrow-schema arrow-schema) name) 2483 | (with-slots (native-pointer) 2484 | arrow-schema 2485 | (gir:invoke (native-pointer "get_field_index") name))) 2486 | 2487 | (defmethod arrow-schema-get-fields ((arrow-schema arrow-schema)) 2488 | (with-slots (native-pointer) 2489 | arrow-schema 2490 | (gir:invoke (native-pointer "get_fields")))) 2491 | 2492 | (defmethod arrow-schema-get-metadata ((arrow-schema arrow-schema)) 2493 | (with-slots (native-pointer) 2494 | arrow-schema 2495 | (gir:invoke (native-pointer "get_metadata")))) 2496 | 2497 | (defmethod arrow-schema-n-fields ((arrow-schema arrow-schema)) 2498 | (with-slots (native-pointer) 2499 | arrow-schema 2500 | (gir:invoke (native-pointer "n_fields")))) 2501 | 2502 | (defmethod arrow-schema-remove-field ((arrow-schema arrow-schema) i) 2503 | (with-slots (native-pointer) 2504 | arrow-schema 2505 | (gir:invoke (native-pointer "remove_field") i))) 2506 | 2507 | (defmethod arrow-schema-replace-field ((arrow-schema arrow-schema) i field) 2508 | (with-slots (native-pointer) 2509 | arrow-schema 2510 | (gir:invoke (native-pointer "replace_field") i field))) 2511 | 2512 | (defmethod arrow-schema-to-string ((arrow-schema arrow-schema)) 2513 | (with-slots (native-pointer) 2514 | arrow-schema 2515 | (gir:invoke (native-pointer "to_string")))) 2516 | 2517 | (defmethod arrow-schema-to-string-metadata 2518 | ((arrow-schema arrow-schema) show-metadata) 2519 | (with-slots (native-pointer) 2520 | arrow-schema 2521 | (gir:invoke (native-pointer "to_string_metadata") show-metadata))) 2522 | 2523 | (defmethod arrow-schema-with-metadata ((arrow-schema arrow-schema) metadata) 2524 | (with-slots (native-pointer) 2525 | arrow-schema 2526 | (gir:invoke (native-pointer "with_metadata") metadata))) 2527 | 2528 | (defclass seekable-input-stream (input-stream) nil) 2529 | 2530 | (defmethod seekable-input-stream-get-size 2531 | ((seekable-input-stream seekable-input-stream)) 2532 | (with-slots (native-pointer) 2533 | seekable-input-stream 2534 | (gir:invoke (native-pointer "get_size")))) 2535 | 2536 | (defmethod seekable-input-stream-get-support-zero-copy 2537 | ((seekable-input-stream seekable-input-stream)) 2538 | (with-slots (native-pointer) 2539 | seekable-input-stream 2540 | (gir:invoke (native-pointer "get_support_zero_copy")))) 2541 | 2542 | (defmethod seekable-input-stream-peek 2543 | ((seekable-input-stream seekable-input-stream) n-bytes) 2544 | (with-slots (native-pointer) 2545 | seekable-input-stream 2546 | (gir:invoke (native-pointer "peek") n-bytes))) 2547 | 2548 | (defmethod seekable-input-stream-read-at 2549 | ((seekable-input-stream seekable-input-stream) position n-bytes) 2550 | (with-slots (native-pointer) 2551 | seekable-input-stream 2552 | (gir:invoke (native-pointer "read_at") position n-bytes))) 2553 | 2554 | (defmethod seekable-input-stream-read-at-bytes 2555 | ((seekable-input-stream seekable-input-stream) position n-bytes) 2556 | (with-slots (native-pointer) 2557 | seekable-input-stream 2558 | (gir:invoke (native-pointer "read_at_bytes") position n-bytes))) 2559 | 2560 | (defclass slow-file-system (file-system) 2561 | (seed base-file-system average-latency)) 2562 | 2563 | (defun make-slow-file-system-new-average-latency 2564 | (base-file-system average-latency) 2565 | (let ((pointer 2566 | (gir:invoke (*ns* "SlowFileSystem" "new_average_latency") base-file-system 2567 | average-latency))) 2568 | (make-instance 'slow-file-system :native-pointer pointer))) 2569 | 2570 | (defun make-slow-file-system-new-average-latency-and-seed 2571 | (base-file-system average-latency seed) 2572 | (let ((pointer 2573 | (gir:invoke (*ns* "SlowFileSystem" "new_average_latency_and_seed") 2574 | base-file-system average-latency seed))) 2575 | (make-instance 'slow-file-system :native-pointer pointer))) 2576 | 2577 | (defclass sparse-union-array (gir-object) (data-type type-ids fields)) 2578 | 2579 | (defun make-sparse-union-array-new (type-ids fields) 2580 | (let ((pointer (gir:invoke (*ns* "SparseUnionArray" "new") type-ids fields))) 2581 | (make-instance 'sparse-union-array :native-pointer pointer))) 2582 | 2583 | (defun make-sparse-union-array-new-data-type (data-type type-ids fields) 2584 | (let ((pointer 2585 | (gir:invoke (*ns* "SparseUnionArray" "new_data_type") data-type type-ids fields))) 2586 | (make-instance 'sparse-union-array :native-pointer pointer))) 2587 | 2588 | (defclass sparse-union-data-type (gir-object) (fields type-codes)) 2589 | 2590 | (defun make-sparse-union-data-type-new (fields type-codes) 2591 | (let ((pointer (gir:invoke (*ns* "SparseUnionDataType" "new") fields type-codes))) 2592 | (make-instance 'sparse-union-data-type :native-pointer pointer))) 2593 | 2594 | (defclass string-array (binary-array) 2595 | (length value-offsets data null-bitmap n-nulls)) 2596 | 2597 | (defun make-string-array-new (length value-offsets data null-bitmap n-nulls) 2598 | (let ((pointer 2599 | (gir:invoke (*ns* "StringArray" "new") length value-offsets data null-bitmap 2600 | n-nulls))) 2601 | (make-instance 'string-array :native-pointer pointer))) 2602 | 2603 | (defmethod string-array-get-string ((string-array string-array) i) 2604 | (with-slots (native-pointer) 2605 | string-array 2606 | (gir:invoke (native-pointer "get_string") i))) 2607 | 2608 | (defclass string-array-builder (binary-array-builder) nil) 2609 | 2610 | (defun make-string-array-builder-new () 2611 | (let ((pointer (gir:invoke (*ns* "StringArrayBuilder" "new")))) 2612 | (make-instance 'string-array-builder :native-pointer pointer))) 2613 | 2614 | (defmethod string-array-builder-append 2615 | ((string-array-builder string-array-builder) value) 2616 | (with-slots (native-pointer) 2617 | string-array-builder 2618 | (gir:invoke (native-pointer "append") value))) 2619 | 2620 | (defmethod string-array-builder-append-string 2621 | ((string-array-builder string-array-builder) value) 2622 | (with-slots (native-pointer) 2623 | string-array-builder 2624 | (gir:invoke (native-pointer "append_string") value))) 2625 | 2626 | (defmethod string-array-builder-append-strings 2627 | ((string-array-builder string-array-builder) values) 2628 | (with-slots (native-pointer) 2629 | string-array-builder 2630 | (gir:invoke (native-pointer "append_strings") values))) 2631 | 2632 | (defmethod string-array-builder-append-value 2633 | ((string-array-builder string-array-builder) value) 2634 | (with-slots (native-pointer) 2635 | string-array-builder 2636 | (gir:invoke (native-pointer "append_value") value))) 2637 | 2638 | (defmethod string-array-builder-append-values 2639 | ((string-array-builder string-array-builder) values) 2640 | (with-slots (native-pointer) 2641 | string-array-builder 2642 | (gir:invoke (native-pointer "append_values") values))) 2643 | 2644 | (defclass string-data-type (arrow-data-type) nil) 2645 | 2646 | (defun make-string-data-type-new () 2647 | (let ((pointer (gir:invoke (*ns* "StringDataType" "new")))) 2648 | (make-instance 'string-data-type :native-pointer pointer))) 2649 | 2650 | (defclass struct-array (arrow-array) 2651 | (data-type length fields null-bitmap n-nulls)) 2652 | 2653 | (defun make-struct-array-new (data-type length fields null-bitmap n-nulls) 2654 | (let ((pointer 2655 | (gir:invoke (*ns* "StructArray" "new") data-type length fields null-bitmap 2656 | n-nulls))) 2657 | (make-instance 'struct-array :native-pointer pointer))) 2658 | 2659 | (defmethod struct-array-flatten ((struct-array struct-array)) 2660 | (with-slots (native-pointer) 2661 | struct-array 2662 | (gir:invoke (native-pointer "flatten")))) 2663 | 2664 | (defmethod struct-array-get-field ((struct-array struct-array) i) 2665 | (with-slots (native-pointer) 2666 | struct-array 2667 | (gir:invoke (native-pointer "get_field") i))) 2668 | 2669 | (defmethod struct-array-get-fields ((struct-array struct-array)) 2670 | (with-slots (native-pointer) 2671 | struct-array 2672 | (gir:invoke (native-pointer "get_fields")))) 2673 | 2674 | (defclass struct-array-builder (array-builder) (data-type)) 2675 | 2676 | (defun make-struct-array-builder-new (data-type) 2677 | (let ((pointer (gir:invoke (*ns* "StructArrayBuilder" "new") data-type))) 2678 | (make-instance 'struct-array-builder :native-pointer pointer))) 2679 | 2680 | (defmethod struct-array-builder-append 2681 | ((struct-array-builder struct-array-builder)) 2682 | (with-slots (native-pointer) 2683 | struct-array-builder 2684 | (gir:invoke (native-pointer "append")))) 2685 | 2686 | (defmethod struct-array-builder-append-null 2687 | ((struct-array-builder struct-array-builder)) 2688 | (with-slots (native-pointer) 2689 | struct-array-builder 2690 | (gir:invoke (native-pointer "append_null")))) 2691 | 2692 | (defmethod struct-array-builder-append-value 2693 | ((struct-array-builder struct-array-builder)) 2694 | (with-slots (native-pointer) 2695 | struct-array-builder 2696 | (gir:invoke (native-pointer "append_value")))) 2697 | 2698 | (defmethod struct-array-builder-get-field-builder 2699 | ((struct-array-builder struct-array-builder) i) 2700 | (with-slots (native-pointer) 2701 | struct-array-builder 2702 | (gir:invoke (native-pointer "get_field_builder") i))) 2703 | 2704 | (defmethod struct-array-builder-get-field-builders 2705 | ((struct-array-builder struct-array-builder)) 2706 | (with-slots (native-pointer) 2707 | struct-array-builder 2708 | (gir:invoke (native-pointer "get_field_builders")))) 2709 | 2710 | (defclass struct-data-type (arrow-data-type) (fields)) 2711 | 2712 | (defun make-struct-data-type-new (fields) 2713 | (let ((pointer (gir:invoke (*ns* "StructDataType" "new") fields))) 2714 | (make-instance 'struct-data-type :native-pointer pointer))) 2715 | 2716 | (defmethod struct-data-type-get-field ((struct-data-type struct-data-type) i) 2717 | (with-slots (native-pointer) 2718 | struct-data-type 2719 | (gir:invoke (native-pointer "get_field") i))) 2720 | 2721 | (defmethod struct-data-type-get-field-by-name 2722 | ((struct-data-type struct-data-type) name) 2723 | (with-slots (native-pointer) 2724 | struct-data-type 2725 | (gir:invoke (native-pointer "get_field_by_name") name))) 2726 | 2727 | (defmethod struct-data-type-get-field-index 2728 | ((struct-data-type struct-data-type) name) 2729 | (with-slots (native-pointer) 2730 | struct-data-type 2731 | (gir:invoke (native-pointer "get_field_index") name))) 2732 | 2733 | (defmethod struct-data-type-get-fields ((struct-data-type struct-data-type)) 2734 | (with-slots (native-pointer) 2735 | struct-data-type 2736 | (gir:invoke (native-pointer "get_fields")))) 2737 | 2738 | (defmethod struct-data-type-get-n-fields ((struct-data-type struct-data-type)) 2739 | (with-slots (native-pointer) 2740 | struct-data-type 2741 | (gir:invoke (native-pointer "get_n_fields")))) 2742 | 2743 | (defclass sub-tree-file-system (file-system) (base-path base-file-system)) 2744 | 2745 | (defun make-sub-tree-file-system-new (base-path base-file-system) 2746 | (let ((pointer (gir:invoke (*ns* "SubTreeFileSystem" "new") base-path base-file-system))) 2747 | (make-instance 'sub-tree-file-system :native-pointer pointer))) 2748 | 2749 | (defclass arrow-table (gir-object) 2750 | (values record-batches chunked-arrays schema arrays)) 2751 | 2752 | (defun make-arrow-table-new-arrays (schema arrays) 2753 | (let ((pointer (gir:invoke (*ns* "Table" "new_arrays") schema arrays))) 2754 | (make-instance 'arrow-table :native-pointer pointer))) 2755 | 2756 | (defun make-arrow-table-new-chunked-arrays (schema chunked-arrays) 2757 | (let ((pointer 2758 | (gir:invoke (*ns* "Table" "new_chunked_arrays") schema chunked-arrays))) 2759 | (make-instance 'arrow-table :native-pointer pointer))) 2760 | 2761 | (defun make-arrow-table-new-record-batches (schema record-batches) 2762 | (let ((pointer 2763 | (gir:invoke (*ns* "Table" "new_record_batches") schema record-batches))) 2764 | (make-instance 'arrow-table :native-pointer pointer))) 2765 | 2766 | (defun make-arrow-table-new-values (schema values) 2767 | (let ((pointer (gir:invoke (*ns* "Table" "new_values") schema values))) 2768 | (make-instance 'arrow-table :native-pointer pointer))) 2769 | 2770 | (defmethod arrow-table-add-column 2771 | ((arrow-table arrow-table) i field chunked-array) 2772 | (with-slots (native-pointer) 2773 | arrow-table 2774 | (gir:invoke (native-pointer "add_column") i field chunked-array))) 2775 | 2776 | (defmethod arrow-table-combine-chunks ((arrow-table arrow-table)) 2777 | (with-slots (native-pointer) 2778 | arrow-table 2779 | (gir:invoke (native-pointer "combine_chunks")))) 2780 | 2781 | (defmethod arrow-table-concatenate ((arrow-table arrow-table) other-tables) 2782 | (with-slots (native-pointer) 2783 | arrow-table 2784 | (gir:invoke (native-pointer "concatenate") other-tables))) 2785 | 2786 | (defmethod arrow-table-equal ((arrow-table arrow-table) other-table) 2787 | (with-slots (native-pointer) 2788 | arrow-table 2789 | (gir:invoke (native-pointer "equal") other-table))) 2790 | 2791 | (defmethod arrow-table-equal-metadata 2792 | ((arrow-table arrow-table) other-table check-metadata) 2793 | (with-slots (native-pointer) 2794 | arrow-table 2795 | (gir:invoke (native-pointer "equal_metadata") other-table check-metadata))) 2796 | 2797 | (defmethod arrow-table-filter ((arrow-table arrow-table) filter options) 2798 | (with-slots (native-pointer) 2799 | arrow-table 2800 | (gir:invoke (native-pointer "filter") filter options))) 2801 | 2802 | (defmethod arrow-table-filter-chunked-array 2803 | ((arrow-table arrow-table) filter options) 2804 | (with-slots (native-pointer) 2805 | arrow-table 2806 | (gir:invoke (native-pointer "filter_chunked_array") filter options))) 2807 | 2808 | (defmethod arrow-table-get-column-data ((arrow-table arrow-table) i) 2809 | (with-slots (native-pointer) 2810 | arrow-table 2811 | (gir:invoke (native-pointer "get_column_data") i))) 2812 | 2813 | (defmethod arrow-table-get-n-columns ((arrow-table arrow-table)) 2814 | (with-slots (native-pointer) 2815 | arrow-table 2816 | (gir:invoke (native-pointer "get_n_columns")))) 2817 | 2818 | (defmethod arrow-table-get-n-rows ((arrow-table arrow-table)) 2819 | (with-slots (native-pointer) 2820 | arrow-table 2821 | (gir:invoke (native-pointer "get_n_rows")))) 2822 | 2823 | (defmethod arrow-table-get-schema ((arrow-table arrow-table)) 2824 | (with-slots (native-pointer) 2825 | arrow-table 2826 | (gir:invoke (native-pointer "get_schema")))) 2827 | 2828 | (defmethod arrow-table-remove-column ((arrow-table arrow-table) i) 2829 | (with-slots (native-pointer) 2830 | arrow-table 2831 | (gir:invoke (native-pointer "remove_column") i))) 2832 | 2833 | (defmethod arrow-table-replace-column 2834 | ((arrow-table arrow-table) i field chunked-array) 2835 | (with-slots (native-pointer) 2836 | arrow-table 2837 | (gir:invoke (native-pointer "replace_column") i field chunked-array))) 2838 | 2839 | (defmethod arrow-table-slice ((arrow-table arrow-table) offset length) 2840 | (with-slots (native-pointer) 2841 | arrow-table 2842 | (gir:invoke (native-pointer "slice") offset length))) 2843 | 2844 | (defmethod arrow-table-take ((arrow-table arrow-table) indices options) 2845 | (with-slots (native-pointer) 2846 | arrow-table 2847 | (gir:invoke (native-pointer "take") indices options))) 2848 | 2849 | (defmethod arrow-table-take-chunked-array 2850 | ((arrow-table arrow-table) indices options) 2851 | (with-slots (native-pointer) 2852 | arrow-table 2853 | (gir:invoke (native-pointer "take_chunked_array") indices options))) 2854 | 2855 | (defmethod arrow-table-to-string ((arrow-table arrow-table)) 2856 | (with-slots (native-pointer) 2857 | arrow-table 2858 | (gir:invoke (native-pointer "to_string")))) 2859 | 2860 | (defmethod arrow-table-write-as-feather 2861 | ((arrow-table arrow-table) sink properties) 2862 | (with-slots (native-pointer) 2863 | arrow-table 2864 | (gir:invoke (native-pointer "write_as_feather") sink properties))) 2865 | 2866 | (defclass table-batch-reader (record-batch-reader) (table)) 2867 | 2868 | (defun make-table-batch-reader-new (table) 2869 | (let ((pointer (gir:invoke (*ns* "TableBatchReader" "new") table))) 2870 | (make-instance 'table-batch-reader :native-pointer pointer))) 2871 | 2872 | (defclass take-options (gir-object) nil) 2873 | 2874 | (defun make-take-options-new () 2875 | (let ((pointer (gir:invoke (*ns* "TakeOptions" "new")))) 2876 | (make-instance 'take-options :native-pointer pointer))) 2877 | 2878 | (defclass arrow-tensor (gir-object) (data-type data shape)) 2879 | 2880 | (defun make-arrow-tensor-new (data-type data shape) 2881 | (let ((pointer (gir:invoke (*ns* "Tensor" "new") data-type data shape))) 2882 | (make-instance 'arrow-tensor :native-pointer pointer))) 2883 | 2884 | (defmethod arrow-tensor-equal ((arrow-tensor arrow-tensor) other-tensor) 2885 | (with-slots (native-pointer) 2886 | arrow-tensor 2887 | (gir:invoke (native-pointer "equal") other-tensor))) 2888 | 2889 | (defmethod arrow-tensor-get-buffer ((arrow-tensor arrow-tensor)) 2890 | (with-slots (native-pointer) 2891 | arrow-tensor 2892 | (gir:invoke (native-pointer "get_buffer")))) 2893 | 2894 | (defmethod arrow-tensor-get-dimension-name ((arrow-tensor arrow-tensor) i) 2895 | (with-slots (native-pointer) 2896 | arrow-tensor 2897 | (gir:invoke (native-pointer "get_dimension_name") i))) 2898 | 2899 | (defmethod arrow-tensor-get-n-dimensions ((arrow-tensor arrow-tensor)) 2900 | (with-slots (native-pointer) 2901 | arrow-tensor 2902 | (gir:invoke (native-pointer "get_n_dimensions")))) 2903 | 2904 | (defmethod arrow-tensor-get-shape ((arrow-tensor arrow-tensor) n-dimensions) 2905 | (with-slots (native-pointer) 2906 | arrow-tensor 2907 | (gir:invoke (native-pointer "get_shape") n-dimensions))) 2908 | 2909 | (defmethod arrow-tensor-get-size ((arrow-tensor arrow-tensor)) 2910 | (with-slots (native-pointer) 2911 | arrow-tensor 2912 | (gir:invoke (native-pointer "get_size")))) 2913 | 2914 | (defmethod arrow-tensor-get-strides ((arrow-tensor arrow-tensor) n-strides) 2915 | (with-slots (native-pointer) 2916 | arrow-tensor 2917 | (gir:invoke (native-pointer "get_strides") n-strides))) 2918 | 2919 | (defmethod arrow-tensor-get-value-data-type ((arrow-tensor arrow-tensor)) 2920 | (with-slots (native-pointer) 2921 | arrow-tensor 2922 | (gir:invoke (native-pointer "get_value_data_type")))) 2923 | 2924 | (defmethod arrow-tensor-get-value-type ((arrow-tensor arrow-tensor)) 2925 | (with-slots (native-pointer) 2926 | arrow-tensor 2927 | (gir:invoke (native-pointer "get_value_type")))) 2928 | 2929 | (defmethod arrow-tensor-is-column-major ((arrow-tensor arrow-tensor)) 2930 | (with-slots (native-pointer) 2931 | arrow-tensor 2932 | (gir:invoke (native-pointer "is_column_major")))) 2933 | 2934 | (defmethod arrow-tensor-is-contiguous ((arrow-tensor arrow-tensor)) 2935 | (with-slots (native-pointer) 2936 | arrow-tensor 2937 | (gir:invoke (native-pointer "is_contiguous")))) 2938 | 2939 | (defmethod arrow-tensor-is-mutable ((arrow-tensor arrow-tensor)) 2940 | (with-slots (native-pointer) 2941 | arrow-tensor 2942 | (gir:invoke (native-pointer "is_mutable")))) 2943 | 2944 | (defmethod arrow-tensor-is-row-major ((arrow-tensor arrow-tensor)) 2945 | (with-slots (native-pointer) 2946 | arrow-tensor 2947 | (gir:invoke (native-pointer "is_row_major")))) 2948 | 2949 | (defclass time32array (numeric-array) 2950 | (data-type length data null-bitmap n-nulls)) 2951 | 2952 | (defun make-time32array-new (data-type length data null-bitmap n-nulls) 2953 | (let ((pointer 2954 | (gir:invoke (*ns* "Time32Array" "new") data-type length data null-bitmap 2955 | n-nulls))) 2956 | (make-instance 'time32array :native-pointer pointer))) 2957 | 2958 | (defmethod time32array-get-value ((time32array time32array) i) 2959 | (with-slots (native-pointer) 2960 | time32array 2961 | (gir:invoke (native-pointer "get_value") i))) 2962 | 2963 | (defmethod time32array-get-values ((time32array time32array) length) 2964 | (with-slots (native-pointer) 2965 | time32array 2966 | (gir:invoke (native-pointer "get_values") length))) 2967 | 2968 | (defclass time32array-builder (array-builder) (data-type)) 2969 | 2970 | (defun make-time32array-builder-new (data-type) 2971 | (let ((pointer (gir:invoke (*ns* "Time32ArrayBuilder" "new") data-type))) 2972 | (make-instance 'time32array-builder :native-pointer pointer))) 2973 | 2974 | (defmethod time32array-builder-append 2975 | ((time32array-builder time32array-builder) value) 2976 | (with-slots (native-pointer) 2977 | time32array-builder 2978 | (gir:invoke (native-pointer "append") value))) 2979 | 2980 | (defmethod time32array-builder-append-null 2981 | ((time32array-builder time32array-builder)) 2982 | (with-slots (native-pointer) 2983 | time32array-builder 2984 | (gir:invoke (native-pointer "append_null")))) 2985 | 2986 | (defmethod time32array-builder-append-nulls 2987 | ((time32array-builder time32array-builder) n) 2988 | (with-slots (native-pointer) 2989 | time32array-builder 2990 | (gir:invoke (native-pointer "append_nulls") n))) 2991 | 2992 | (defmethod time32array-builder-append-value 2993 | ((time32array-builder time32array-builder) value) 2994 | (with-slots (native-pointer) 2995 | time32array-builder 2996 | (gir:invoke (native-pointer "append_value") value))) 2997 | 2998 | (defmethod time32array-builder-append-values 2999 | ((time32array-builder time32array-builder) values) 3000 | (with-slots (native-pointer) 3001 | time32array-builder 3002 | (gir:invoke (native-pointer "append_values") values))) 3003 | 3004 | (defclass time32data-type (gir-object) (unit)) 3005 | 3006 | (defun make-time32data-type-new (unit) 3007 | (let ((pointer (gir:invoke (*ns* "Time32DataType" "new") unit))) 3008 | (make-instance 'time32data-type :native-pointer pointer))) 3009 | 3010 | (defclass time64array (numeric-array) 3011 | (data-type length data null-bitmap n-nulls)) 3012 | 3013 | (defun make-time64array-new (data-type length data null-bitmap n-nulls) 3014 | (let ((pointer 3015 | (gir:invoke (*ns* "Time64Array" "new") data-type length data null-bitmap 3016 | n-nulls))) 3017 | (make-instance 'time64array :native-pointer pointer))) 3018 | 3019 | (defmethod time64array-get-value ((time64array time64array) i) 3020 | (with-slots (native-pointer) 3021 | time64array 3022 | (gir:invoke (native-pointer "get_value") i))) 3023 | 3024 | (defmethod time64array-get-values ((time64array time64array) length) 3025 | (with-slots (native-pointer) 3026 | time64array 3027 | (gir:invoke (native-pointer "get_values") length))) 3028 | 3029 | (defclass time64array-builder (array-builder) (data-type)) 3030 | 3031 | (defun make-time64array-builder-new (data-type) 3032 | (let ((pointer (gir:invoke (*ns* "Time64ArrayBuilder" "new") data-type))) 3033 | (make-instance 'time64array-builder :native-pointer pointer))) 3034 | 3035 | (defmethod time64array-builder-append 3036 | ((time64array-builder time64array-builder) value) 3037 | (with-slots (native-pointer) 3038 | time64array-builder 3039 | (gir:invoke (native-pointer "append") value))) 3040 | 3041 | (defmethod time64array-builder-append-null 3042 | ((time64array-builder time64array-builder)) 3043 | (with-slots (native-pointer) 3044 | time64array-builder 3045 | (gir:invoke (native-pointer "append_null")))) 3046 | 3047 | (defmethod time64array-builder-append-nulls 3048 | ((time64array-builder time64array-builder) n) 3049 | (with-slots (native-pointer) 3050 | time64array-builder 3051 | (gir:invoke (native-pointer "append_nulls") n))) 3052 | 3053 | (defmethod time64array-builder-append-value 3054 | ((time64array-builder time64array-builder) value) 3055 | (with-slots (native-pointer) 3056 | time64array-builder 3057 | (gir:invoke (native-pointer "append_value") value))) 3058 | 3059 | (defmethod time64array-builder-append-values 3060 | ((time64array-builder time64array-builder) values) 3061 | (with-slots (native-pointer) 3062 | time64array-builder 3063 | (gir:invoke (native-pointer "append_values") values))) 3064 | 3065 | (defclass time64data-type (gir-object) (unit)) 3066 | 3067 | (defun make-time64data-type-new (unit) 3068 | (let ((pointer (gir:invoke (*ns* "Time64DataType" "new") unit))) 3069 | (make-instance 'time64data-type :native-pointer pointer))) 3070 | 3071 | (defclass time-data-type (arrow-data-type) nil) 3072 | 3073 | (defmethod time-data-type-get-unit ((time-data-type time-data-type)) 3074 | (with-slots (native-pointer) 3075 | time-data-type 3076 | (gir:invoke (native-pointer "get_unit")))) 3077 | 3078 | (defparameter *time-unit-nano* (gir:nget *ns* "TimeUnit" :nano)) 3079 | (defparameter *time-unit-micro* (gir:nget *ns* "TimeUnit" :micro)) 3080 | (defparameter *time-unit-milli* (gir:nget *ns* "TimeUnit" :milli)) 3081 | (defparameter *time-unit-second* (gir:nget *ns* "TimeUnit" :second)) 3082 | 3083 | 3084 | (defclass timestamp-array (numeric-array) 3085 | (data-type length data null-bitmap n-nulls)) 3086 | 3087 | (defun make-timestamp-array-new (data-type length data null-bitmap n-nulls) 3088 | (let ((pointer 3089 | (gir:invoke (*ns* "TimestampArray" "new") data-type length data null-bitmap 3090 | n-nulls))) 3091 | (make-instance 'timestamp-array :native-pointer pointer))) 3092 | 3093 | (defmethod timestamp-array-get-value ((timestamp-array timestamp-array) i) 3094 | (with-slots (native-pointer) 3095 | timestamp-array 3096 | (gir:invoke (native-pointer "get_value") i))) 3097 | 3098 | (defmethod timestamp-array-get-values 3099 | ((timestamp-array timestamp-array) length) 3100 | (with-slots (native-pointer) 3101 | timestamp-array 3102 | (gir:invoke (native-pointer "get_values") length))) 3103 | 3104 | (defclass timestamp-array-builder (array-builder) (data-type)) 3105 | 3106 | (defun make-timestamp-array-builder-new (data-type) 3107 | (let ((pointer (gir:invoke (*ns* "TimestampArrayBuilder" "new") data-type))) 3108 | (make-instance 'timestamp-array-builder :native-pointer pointer))) 3109 | 3110 | (defmethod timestamp-array-builder-append 3111 | ((timestamp-array-builder timestamp-array-builder) value) 3112 | (with-slots (native-pointer) 3113 | timestamp-array-builder 3114 | (gir:invoke (native-pointer "append") value))) 3115 | 3116 | (defmethod timestamp-array-builder-append-null 3117 | ((timestamp-array-builder timestamp-array-builder)) 3118 | (with-slots (native-pointer) 3119 | timestamp-array-builder 3120 | (gir:invoke (native-pointer "append_null")))) 3121 | 3122 | (defmethod timestamp-array-builder-append-nulls 3123 | ((timestamp-array-builder timestamp-array-builder) n) 3124 | (with-slots (native-pointer) 3125 | timestamp-array-builder 3126 | (gir:invoke (native-pointer "append_nulls") n))) 3127 | 3128 | (defmethod timestamp-array-builder-append-value 3129 | ((timestamp-array-builder timestamp-array-builder) value) 3130 | (with-slots (native-pointer) 3131 | timestamp-array-builder 3132 | (gir:invoke (native-pointer "append_value") value))) 3133 | 3134 | (defmethod timestamp-array-builder-append-values 3135 | ((timestamp-array-builder timestamp-array-builder) values) 3136 | (with-slots (native-pointer) 3137 | timestamp-array-builder 3138 | (gir:invoke (native-pointer "append_values") values))) 3139 | 3140 | (defclass timestamp-data-type (arrow-data-type) (unit)) 3141 | 3142 | (defun make-timestamp-data-type-new (unit) 3143 | (let ((pointer (gir:invoke (*ns* "TimestampDataType" "new") unit))) 3144 | (make-instance 'timestamp-data-type :native-pointer pointer))) 3145 | 3146 | (defmethod timestamp-data-type-get-unit 3147 | ((timestamp-data-type timestamp-data-type)) 3148 | (with-slots (native-pointer) 3149 | timestamp-data-type 3150 | (gir:invoke (native-pointer "get_unit")))) 3151 | 3152 | (defparameter *type-large-list* (gir:nget *ns* "Type" :large_list)) 3153 | (defparameter *type-large-binary* (gir:nget *ns* "Type" :large_binary)) 3154 | (defparameter *type-large-string* (gir:nget *ns* "Type" :large_string)) 3155 | (defparameter *type-duration* (gir:nget *ns* "Type" :duration)) 3156 | (defparameter *type-fixed-size-list* (gir:nget *ns* "Type" :fixed_size_list)) 3157 | (defparameter *type-extension* (gir:nget *ns* "Type" :extension)) 3158 | (defparameter *type-map* (gir:nget *ns* "Type" :map)) 3159 | (defparameter *type-dictionary* (gir:nget *ns* "Type" :dictionary)) 3160 | (defparameter *type-union* (gir:nget *ns* "Type" :union)) 3161 | (defparameter *type-struct* (gir:nget *ns* "Type" :struct)) 3162 | (defparameter *type-list* (gir:nget *ns* "Type" :list)) 3163 | (defparameter *type-decimal* (gir:nget *ns* "Type" :decimal)) 3164 | (defparameter *type-interval* (gir:nget *ns* "Type" :interval)) 3165 | (defparameter *type-time64* (gir:nget *ns* "Type" :time64)) 3166 | (defparameter *type-time32* (gir:nget *ns* "Type" :time32)) 3167 | (defparameter *type-timestamp* (gir:nget *ns* "Type" :timestamp)) 3168 | (defparameter *type-date64* (gir:nget *ns* "Type" :date64)) 3169 | (defparameter *type-date32* (gir:nget *ns* "Type" :date32)) 3170 | (defparameter *type-fixed-size-binary* (gir:nget *ns* "Type" :fixed_size_binary)) 3171 | (defparameter *type-binary* (gir:nget *ns* "Type" :binary)) 3172 | (defparameter *type-string* (gir:nget *ns* "Type" :string)) 3173 | (defparameter *type-double* (gir:nget *ns* "Type" :double)) 3174 | (defparameter *type-float* (gir:nget *ns* "Type" :float)) 3175 | (defparameter *type-half-float* (gir:nget *ns* "Type" :half_float)) 3176 | (defparameter *type-int64* (gir:nget *ns* "Type" :int64)) 3177 | (defparameter *type-uint64* (gir:nget *ns* "Type" :uint64)) 3178 | (defparameter *type-int32* (gir:nget *ns* "Type" :int32)) 3179 | (defparameter *type-uint32* (gir:nget *ns* "Type" :uint32)) 3180 | (defparameter *type-int16* (gir:nget *ns* "Type" :int16)) 3181 | (defparameter *type-uint16* (gir:nget *ns* "Type" :uint16)) 3182 | (defparameter *type-int8* (gir:nget *ns* "Type" :int8)) 3183 | (defparameter *type-uint8* (gir:nget *ns* "Type" :uint8)) 3184 | (defparameter *type-boolean* (gir:nget *ns* "Type" :boolean)) 3185 | (defparameter *type-na* (gir:nget *ns* "Type" :na)) 3186 | 3187 | 3188 | (defclass uint16array (numeric-array) (length data null-bitmap n-nulls)) 3189 | 3190 | (defun make-uint16array-new (length data null-bitmap n-nulls) 3191 | (let ((pointer 3192 | (gir:invoke (*ns* "UInt16Array" "new") length data null-bitmap n-nulls))) 3193 | (make-instance 'uint16array :native-pointer pointer))) 3194 | 3195 | (defmethod uint16array-compare ((uint16array uint16array) value options) 3196 | (with-slots (native-pointer) 3197 | uint16array 3198 | (gir:invoke (native-pointer "compare") value options))) 3199 | 3200 | (defmethod uint16array-get-value ((uint16array uint16array) i) 3201 | (with-slots (native-pointer) 3202 | uint16array 3203 | (gir:invoke (native-pointer "get_value") i))) 3204 | 3205 | (defmethod uint16array-get-values ((uint16array uint16array) length) 3206 | (with-slots (native-pointer) 3207 | uint16array 3208 | (gir:invoke (native-pointer "get_values") length))) 3209 | 3210 | (defmethod uint16array-sum ((uint16array uint16array)) 3211 | (with-slots (native-pointer) 3212 | uint16array 3213 | (gir:invoke (native-pointer "sum")))) 3214 | 3215 | (defclass uint16array-builder (array-builder) nil) 3216 | 3217 | (defun make-uint16array-builder-new () 3218 | (let ((pointer (gir:invoke (*ns* "UInt16ArrayBuilder" "new")))) 3219 | (make-instance 'uint16array-builder :native-pointer pointer))) 3220 | 3221 | (defmethod uint16array-builder-append 3222 | ((uint16array-builder uint16array-builder) value) 3223 | (with-slots (native-pointer) 3224 | uint16array-builder 3225 | (gir:invoke (native-pointer "append") value))) 3226 | 3227 | (defmethod uint16array-builder-append-null 3228 | ((uint16array-builder uint16array-builder)) 3229 | (with-slots (native-pointer) 3230 | uint16array-builder 3231 | (gir:invoke (native-pointer "append_null")))) 3232 | 3233 | (defmethod uint16array-builder-append-nulls 3234 | ((uint16array-builder uint16array-builder) n) 3235 | (with-slots (native-pointer) 3236 | uint16array-builder 3237 | (gir:invoke (native-pointer "append_nulls") n))) 3238 | 3239 | (defmethod uint16array-builder-append-value 3240 | ((uint16array-builder uint16array-builder) value) 3241 | (with-slots (native-pointer) 3242 | uint16array-builder 3243 | (gir:invoke (native-pointer "append_value") value))) 3244 | 3245 | (defmethod uint16array-builder-append-values 3246 | ((uint16array-builder uint16array-builder) values) 3247 | (with-slots (native-pointer) 3248 | uint16array-builder 3249 | (gir:invoke (native-pointer "append_values") values))) 3250 | 3251 | (defclass uint16data-type (integer-data-type) nil) 3252 | 3253 | (defun make-uint16data-type-new () 3254 | (let ((pointer (gir:invoke (*ns* "UInt16DataType" "new")))) 3255 | (make-instance 'uint16data-type :native-pointer pointer))) 3256 | 3257 | (defclass uint32array (numeric-array) (length data null-bitmap n-nulls)) 3258 | 3259 | (defun make-uint32array-new (length data null-bitmap n-nulls) 3260 | (let ((pointer 3261 | (gir:invoke (*ns* "UInt32Array" "new") length data null-bitmap n-nulls))) 3262 | (make-instance 'uint32array :native-pointer pointer))) 3263 | 3264 | (defmethod uint32array-compare ((uint32array uint32array) value options) 3265 | (with-slots (native-pointer) 3266 | uint32array 3267 | (gir:invoke (native-pointer "compare") value options))) 3268 | 3269 | (defmethod uint32array-get-value ((uint32array uint32array) i) 3270 | (with-slots (native-pointer) 3271 | uint32array 3272 | (gir:invoke (native-pointer "get_value") i))) 3273 | 3274 | (defmethod uint32array-get-values ((uint32array uint32array) length) 3275 | (with-slots (native-pointer) 3276 | uint32array 3277 | (gir:invoke (native-pointer "get_values") length))) 3278 | 3279 | (defmethod uint32array-sum ((uint32array uint32array)) 3280 | (with-slots (native-pointer) 3281 | uint32array 3282 | (gir:invoke (native-pointer "sum")))) 3283 | 3284 | (defclass uint32array-builder (array-builder) nil) 3285 | 3286 | (defun make-uint32array-builder-new () 3287 | (let ((pointer (gir:invoke (*ns* "UInt32ArrayBuilder" "new")))) 3288 | (make-instance 'uint32array-builder :native-pointer pointer))) 3289 | 3290 | (defmethod uint32array-builder-append 3291 | ((uint32array-builder uint32array-builder) value) 3292 | (with-slots (native-pointer) 3293 | uint32array-builder 3294 | (gir:invoke (native-pointer "append") value))) 3295 | 3296 | (defmethod uint32array-builder-append-null 3297 | ((uint32array-builder uint32array-builder)) 3298 | (with-slots (native-pointer) 3299 | uint32array-builder 3300 | (gir:invoke (native-pointer "append_null")))) 3301 | 3302 | (defmethod uint32array-builder-append-nulls 3303 | ((uint32array-builder uint32array-builder) n) 3304 | (with-slots (native-pointer) 3305 | uint32array-builder 3306 | (gir:invoke (native-pointer "append_nulls") n))) 3307 | 3308 | (defmethod uint32array-builder-append-value 3309 | ((uint32array-builder uint32array-builder) value) 3310 | (with-slots (native-pointer) 3311 | uint32array-builder 3312 | (gir:invoke (native-pointer "append_value") value))) 3313 | 3314 | (defmethod uint32array-builder-append-values 3315 | ((uint32array-builder uint32array-builder) values) 3316 | (with-slots (native-pointer) 3317 | uint32array-builder 3318 | (gir:invoke (native-pointer "append_values") values))) 3319 | 3320 | (defclass uint32data-type (integer-data-type) nil) 3321 | 3322 | (defun make-uint32data-type-new () 3323 | (let ((pointer (gir:invoke (*ns* "UInt32DataType" "new")))) 3324 | (make-instance 'uint32data-type :native-pointer pointer))) 3325 | 3326 | (defclass uint64array (numeric-array) (length data null-bitmap n-nulls)) 3327 | 3328 | (defun make-uint64array-new (length data null-bitmap n-nulls) 3329 | (let ((pointer 3330 | (gir:invoke (*ns* "UInt64Array" "new") length data null-bitmap n-nulls))) 3331 | (make-instance 'uint64array :native-pointer pointer))) 3332 | 3333 | (defmethod uint64array-compare ((uint64array uint64array) value options) 3334 | (with-slots (native-pointer) 3335 | uint64array 3336 | (gir:invoke (native-pointer "compare") value options))) 3337 | 3338 | (defmethod uint64array-get-value ((uint64array uint64array) i) 3339 | (with-slots (native-pointer) 3340 | uint64array 3341 | (gir:invoke (native-pointer "get_value") i))) 3342 | 3343 | (defmethod uint64array-get-values ((uint64array uint64array) length) 3344 | (with-slots (native-pointer) 3345 | uint64array 3346 | (gir:invoke (native-pointer "get_values") length))) 3347 | 3348 | (defmethod uint64array-sum ((uint64array uint64array)) 3349 | (with-slots (native-pointer) 3350 | uint64array 3351 | (gir:invoke (native-pointer "sum")))) 3352 | 3353 | (defclass uint64array-builder (array-builder) nil) 3354 | 3355 | (defun make-uint64array-builder-new () 3356 | (let ((pointer (gir:invoke (*ns* "UInt64ArrayBuilder" "new")))) 3357 | (make-instance 'uint64array-builder :native-pointer pointer))) 3358 | 3359 | (defmethod uint64array-builder-append 3360 | ((uint64array-builder uint64array-builder) value) 3361 | (with-slots (native-pointer) 3362 | uint64array-builder 3363 | (gir:invoke (native-pointer "append") value))) 3364 | 3365 | (defmethod uint64array-builder-append-null 3366 | ((uint64array-builder uint64array-builder)) 3367 | (with-slots (native-pointer) 3368 | uint64array-builder 3369 | (gir:invoke (native-pointer "append_null")))) 3370 | 3371 | (defmethod uint64array-builder-append-nulls 3372 | ((uint64array-builder uint64array-builder) n) 3373 | (with-slots (native-pointer) 3374 | uint64array-builder 3375 | (gir:invoke (native-pointer "append_nulls") n))) 3376 | 3377 | (defmethod uint64array-builder-append-value 3378 | ((uint64array-builder uint64array-builder) value) 3379 | (with-slots (native-pointer) 3380 | uint64array-builder 3381 | (gir:invoke (native-pointer "append_value") value))) 3382 | 3383 | (defmethod uint64array-builder-append-values 3384 | ((uint64array-builder uint64array-builder) values) 3385 | (with-slots (native-pointer) 3386 | uint64array-builder 3387 | (gir:invoke (native-pointer "append_values") values))) 3388 | 3389 | (defclass uint64data-type (integer-data-type) nil) 3390 | 3391 | (defun make-uint64data-type-new () 3392 | (let ((pointer (gir:invoke (*ns* "UInt64DataType" "new")))) 3393 | (make-instance 'uint64data-type :native-pointer pointer))) 3394 | 3395 | (defclass uint8array (numeric-array) (length data null-bitmap n-nulls)) 3396 | 3397 | (defun make-uint8array-new (length data null-bitmap n-nulls) 3398 | (let ((pointer 3399 | (gir:invoke (*ns* "UInt8Array" "new") length data null-bitmap n-nulls))) 3400 | (make-instance 'uint8array :native-pointer pointer))) 3401 | 3402 | (defmethod uint8array-compare ((uint8array uint8array) value options) 3403 | (with-slots (native-pointer) 3404 | uint8array 3405 | (gir:invoke (native-pointer "compare") value options))) 3406 | 3407 | (defmethod uint8array-get-value ((uint8array uint8array) i) 3408 | (with-slots (native-pointer) 3409 | uint8array 3410 | (gir:invoke (native-pointer "get_value") i))) 3411 | 3412 | (defmethod uint8array-get-values ((uint8array uint8array) length) 3413 | (with-slots (native-pointer) 3414 | uint8array 3415 | (gir:invoke (native-pointer "get_values") length))) 3416 | 3417 | (defmethod uint8array-sum ((uint8array uint8array)) 3418 | (with-slots (native-pointer) 3419 | uint8array 3420 | (gir:invoke (native-pointer "sum")))) 3421 | 3422 | (defclass uint8array-builder (array-builder) nil) 3423 | 3424 | (defun make-uint8array-builder-new () 3425 | (let ((pointer (gir:invoke (*ns* "UInt8ArrayBuilder" "new")))) 3426 | (make-instance 'uint8array-builder :native-pointer pointer))) 3427 | 3428 | (defmethod uint8array-builder-append 3429 | ((uint8array-builder uint8array-builder) value) 3430 | (with-slots (native-pointer) 3431 | uint8array-builder 3432 | (gir:invoke (native-pointer "append") value))) 3433 | 3434 | (defmethod uint8array-builder-append-null 3435 | ((uint8array-builder uint8array-builder)) 3436 | (with-slots (native-pointer) 3437 | uint8array-builder 3438 | (gir:invoke (native-pointer "append_null")))) 3439 | 3440 | (defmethod uint8array-builder-append-nulls 3441 | ((uint8array-builder uint8array-builder) n) 3442 | (with-slots (native-pointer) 3443 | uint8array-builder 3444 | (gir:invoke (native-pointer "append_nulls") n))) 3445 | 3446 | (defmethod uint8array-builder-append-value 3447 | ((uint8array-builder uint8array-builder) value) 3448 | (with-slots (native-pointer) 3449 | uint8array-builder 3450 | (gir:invoke (native-pointer "append_value") value))) 3451 | 3452 | (defmethod uint8array-builder-append-values 3453 | ((uint8array-builder uint8array-builder) values) 3454 | (with-slots (native-pointer) 3455 | uint8array-builder 3456 | (gir:invoke (native-pointer "append_values") values))) 3457 | 3458 | (defclass uint8data-type (integer-data-type) nil) 3459 | 3460 | (defun make-uint8data-type-new () 3461 | (let ((pointer (gir:invoke (*ns* "UInt8DataType" "new")))) 3462 | (make-instance 'uint8data-type :native-pointer pointer))) 3463 | 3464 | (defclass uint-array-builder (array-builder) nil) 3465 | 3466 | (defun make-uint-array-builder-new () 3467 | (let ((pointer (gir:invoke (*ns* "UIntArrayBuilder" "new")))) 3468 | (make-instance 'uint-array-builder :native-pointer pointer))) 3469 | 3470 | (defmethod uint-array-builder-append 3471 | ((uint-array-builder uint-array-builder) value) 3472 | (with-slots (native-pointer) 3473 | uint-array-builder 3474 | (gir:invoke (native-pointer "append") value))) 3475 | 3476 | (defmethod uint-array-builder-append-null 3477 | ((uint-array-builder uint-array-builder)) 3478 | (with-slots (native-pointer) 3479 | uint-array-builder 3480 | (gir:invoke (native-pointer "append_null")))) 3481 | 3482 | (defmethod uint-array-builder-append-nulls 3483 | ((uint-array-builder uint-array-builder) n) 3484 | (with-slots (native-pointer) 3485 | uint-array-builder 3486 | (gir:invoke (native-pointer "append_nulls") n))) 3487 | 3488 | (defmethod uint-array-builder-append-value 3489 | ((uint-array-builder uint-array-builder) value) 3490 | (with-slots (native-pointer) 3491 | uint-array-builder 3492 | (gir:invoke (native-pointer "append_value") value))) 3493 | 3494 | (defmethod uint-array-builder-append-values 3495 | ((uint-array-builder uint-array-builder) values) 3496 | (with-slots (native-pointer) 3497 | uint-array-builder 3498 | (gir:invoke (native-pointer "append_values") values))) 3499 | 3500 | (defclass union-array (arrow-array) nil) 3501 | 3502 | (defmethod union-array-get-field ((union-array union-array) i) 3503 | (with-slots (native-pointer) 3504 | union-array 3505 | (gir:invoke (native-pointer "get_field") i))) 3506 | 3507 | (defclass union-data-type (arrow-data-type) nil) 3508 | 3509 | (defmethod union-data-type-get-field ((union-data-type union-data-type) i) 3510 | (with-slots (native-pointer) 3511 | union-data-type 3512 | (gir:invoke (native-pointer "get_field") i))) 3513 | 3514 | (defmethod union-data-type-get-fields ((union-data-type union-data-type)) 3515 | (with-slots (native-pointer) 3516 | union-data-type 3517 | (gir:invoke (native-pointer "get_fields")))) 3518 | 3519 | (defmethod union-data-type-get-n-fields ((union-data-type union-data-type)) 3520 | (with-slots (native-pointer) 3521 | union-data-type 3522 | (gir:invoke (native-pointer "get_n_fields")))) 3523 | 3524 | (defmethod union-data-type-get-type-codes 3525 | ((union-data-type union-data-type) n-type-codes) 3526 | (with-slots (native-pointer) 3527 | union-data-type 3528 | (gir:invoke (native-pointer "get_type_codes") n-type-codes))) 3529 | 3530 | -------------------------------------------------------------------------------- /src/arrow.lisp: -------------------------------------------------------------------------------- 1 | (in-package #:arrow) 2 | 3 | ;;; CFFI 4 | 5 | (cffi:define-foreign-library :g-lib 6 | (:unix (:or "libglib-2.0.so.0" "libglib-2.0.so")) 7 | (:windows "libglib-2.0-0.dll")) 8 | 9 | (cffi:defctype glist-pointer :pointer) 10 | 11 | (cffi:defctype gpointer :pointer) 12 | 13 | (cffi:defcstruct g-list 14 | (data :pointer) 15 | (next (:pointer (:struct g-list))) 16 | (prev (:pointer (:struct g-list)))) 17 | 18 | (cffi:defcfun ("g_list_prepend" g-list-prepend) (:pointer (:struct g-list)) 19 | (list (:pointer (:struct g-list))) 20 | (data :pointer)) 21 | 22 | (cffi:defcfun ("g_list_concat" g-list-concat) (:pointer (:struct g-list)) 23 | (list-1 (:pointer (:struct g-list))) 24 | (list-2 (:pointer (:struct g-list)))) 25 | 26 | (cffi:defcfun ("g_list_free" g-list-free) :void 27 | (mem (:pointer (:struct g-list)))) 28 | 29 | (cffi:defcfun ("g_list_nth_data" g-list-nth-data) gpointer 30 | (list (:pointer (:struct g-list))) 31 | (n :unsigned-int)) 32 | 33 | ;; High level 34 | 35 | (defmacro with-field-builders ((field-builders) &body body) 36 | `(progn 37 | (unwind-protect 38 | ,@body 39 | (setf ,field-builders (mapcar #'array-builder-finish ,field-builders))))) 40 | 41 | (defgeneric append-value (array-builder &optional value) 42 | (:method ((array-builder gir-object) &optional value) 43 | (with-slots (native-pointer) 44 | array-builder 45 | (if value 46 | (if (stringp value) 47 | (gir:invoke (native-pointer "append_string") value) 48 | (gir:invoke (native-pointer "append_value") value)) 49 | (gir:invoke (native-pointer "append_value")))))) 50 | 51 | 52 | (defgeneric append-null (array-builder) 53 | (:method ((array-builder gir-object)) 54 | (with-slots (native-pointer) 55 | array-builder 56 | (gir:invoke (native-pointer "append_null"))))) 57 | 58 | (defgeneric array-builder-finish (array-builder) 59 | (:method ((array-builder gir-object)) 60 | (with-slots (native-pointer) 61 | array-builder 62 | (gir:invoke (native-pointer "finish"))))) 63 | 64 | (defclass field-list () 65 | ((g-list :type cffi:foreign-pointer 66 | :initarg :g-list 67 | :initform (cffi:null-pointer) 68 | :accessor g-list) 69 | (lisp-list :type list 70 | :initarg :lisp-list 71 | :initform (list) 72 | :accessor lisp-list)) 73 | 74 | (:documentation 75 | "It is often necessary to couple the lifetime of a g-list 76 | containing fields with the lifetime of the fields themselves. If 77 | this is not done, it is easy to end up with a g-list containing 78 | fields that have been garbage collected which can cause non-obvious 79 | bugs. This class handles building up both lists simultaneously to 80 | help couple their lifetimes.")) 81 | 82 | (defmethod concat ((lhs field-list) rhs) 83 | (check-type rhs field-list) 84 | 85 | (with-accessors ((lhs-g-list g-list) (lhs-list lisp-list)) 86 | lhs 87 | (with-accessors ((rhs-g-list g-list) (rhs-list lisp-list)) 88 | rhs 89 | (let ((new-g-list (g-list-concat lhs-g-list rhs-g-list)) 90 | (new-list (append lhs-list rhs-list))) 91 | (make-instance 'field-list :g-list new-g-list 92 | :lisp-list new-list))))) 93 | 94 | (defmethod prepend-field ((l field-list) field) 95 | "Prepends the given field to both the g-list and the list." 96 | (check-type field arrow-low-level:field) 97 | 98 | (with-accessors ((g-list g-list) (list lisp-list)) 99 | l 100 | (setf 101 | g-list (g-list-prepend g-list (gir::this-of (native-pointer field))) 102 | list (cons field list)))) 103 | 104 | (defmethod initialize-instance :after ((l field-list) &key) 105 | "Sets up a finalizer for the field-list which ensures that the 106 | underlying GList is freed when this object is garbage collected." 107 | ;; The purpose of the let block is so that the function being passed 108 | ;; into cffi:finalize doesn't close around a slot-value of 109 | ;; field-list. If it did, the object would never get garbage collected 110 | (let ((g-list (cffi:null-pointer))) 111 | (with-accessors ((g-list* g-list)) 112 | l 113 | (setf g-list g-list*)) 114 | (unless (cffi:null-pointer-p g-list) 115 | (trivial-garbage:finalize 116 | l 117 | (lambda () (g-list-free g-list)))))) 118 | -------------------------------------------------------------------------------- /src/package.lisp: -------------------------------------------------------------------------------- 1 | (defpackage #:arrow-low-level 2 | (:use #:cl) 3 | (:import-from #:gir) 4 | (:export gir-object native-pointer arrow-array-cast arrow-array-count 5 | arrow-array-count-values arrow-array-dictionary-encode 6 | arrow-array-diff-unified arrow-array-equal 7 | arrow-array-equal-approx arrow-array-equal-range 8 | arrow-array-filter arrow-array-get-length 9 | arrow-array-get-n-nulls arrow-array-get-null-bitmap 10 | arrow-array-get-offset arrow-array-get-value-data-type 11 | arrow-array-get-value-type arrow-array-is-in 12 | arrow-array-is-in-chunked-array arrow-array-is-null 13 | arrow-array-is-valid arrow-array-slice 14 | arrow-array-sort-to-indices arrow-array-take 15 | arrow-array-take-chunked-array arrow-array-to-string 16 | arrow-array-unique arrow-array-view arrow-array 17 | array-builder-finish array-builder-get-value-data-type 18 | array-builder-get-value-type array-builder-release-ownership 19 | array-builder make-binary-array-new binary-array-get-buffer 20 | binary-array-get-offsets-buffer binary-array-get-value 21 | binary-array make-binary-array-builder-new 22 | binary-array-builder-append binary-array-builder-append-null 23 | binary-array-builder-append-nulls 24 | binary-array-builder-append-value 25 | binary-array-builder-append-value-bytes 26 | binary-array-builder-append-values binary-array-builder 27 | make-binary-data-type-new binary-data-type 28 | make-boolean-array-new boolean-array-and 29 | boolean-array-get-value boolean-array-get-values 30 | boolean-array-invert boolean-array-or boolean-array-xor 31 | boolean-array make-boolean-array-builder-new 32 | boolean-array-builder-append boolean-array-builder-append-null 33 | boolean-array-builder-append-nulls 34 | boolean-array-builder-append-value 35 | boolean-array-builder-append-values boolean-array-builder 36 | make-boolean-data-type-new boolean-data-type make-buffer-new 37 | make-buffer-new-bytes buffer-copy buffer-equal 38 | buffer-equal-n-bytes buffer-get-capacity buffer-get-data 39 | buffer-get-mutable-data buffer-get-parent buffer-get-size 40 | buffer-is-mutable buffer-slice buffer 41 | make-buffer-input-stream-new buffer-input-stream-get-buffer 42 | buffer-input-stream make-buffer-output-stream-new 43 | buffer-output-stream make-csvread-options-new 44 | csvread-options-add-column-name csvread-options-add-column-type 45 | csvread-options-add-false-value csvread-options-add-null-value 46 | csvread-options-add-schema csvread-options-add-true-value 47 | csvread-options-get-column-names 48 | csvread-options-get-column-types 49 | csvread-options-get-false-values 50 | csvread-options-get-null-values csvread-options-get-true-values 51 | csvread-options-set-column-names 52 | csvread-options-set-false-values 53 | csvread-options-set-null-values csvread-options-set-true-values 54 | csvread-options make-csvreader-new csvreader-read csvreader 55 | make-cast-options-new cast-options make-chunked-array-new 56 | chunked-array-equal chunked-array-filter 57 | chunked-array-filter-chunked-array chunked-array-get-chunk 58 | chunked-array-get-chunks chunked-array-get-length 59 | chunked-array-get-n-chunks chunked-array-get-n-nulls 60 | chunked-array-get-n-rows chunked-array-get-value-data-type 61 | chunked-array-get-value-type chunked-array-slice 62 | chunked-array-take chunked-array-take-chunked-array 63 | chunked-array-to-string chunked-array make-codec-new 64 | codec-get-name codec *compare-operator-equal* 65 | *compare-operator-not-equal* *compare-operator-greater* 66 | *compare-operator-greater-equal* *compare-operator-less* 67 | *compare-operator-less-equal* make-compare-options-new 68 | compare-options make-compressed-input-stream-new 69 | compressed-input-stream make-compressed-output-stream-new 70 | compressed-output-stream *compression-type-uncompressed* 71 | *compression-type-snappy* *compression-type-gzip* 72 | *compression-type-brotli* *compression-type-zstd* 73 | *compression-type-lz4* *compression-type-lzo* 74 | *compression-type-bz2* *count-mode-all* *count-mode-null* 75 | make-count-options-new count-options arrow-data-type-equal 76 | arrow-data-type-get-id arrow-data-type-to-string 77 | arrow-data-type make-date32array-new date32array-get-value 78 | date32array-get-values date32array make-date32array-builder-new 79 | date32array-builder-append date32array-builder-append-null 80 | date32array-builder-append-nulls 81 | date32array-builder-append-value 82 | date32array-builder-append-values date32array-builder 83 | make-date32data-type-new date32data-type make-date64array-new 84 | date64array-get-value date64array-get-values date64array 85 | make-date64array-builder-new date64array-builder-append 86 | date64array-builder-append-null 87 | date64array-builder-append-nulls 88 | date64array-builder-append-value 89 | date64array-builder-append-values date64array-builder 90 | make-date64data-type-new date64data-type 91 | make-decimal128-new-integer make-decimal128-new-string 92 | decimal128-abs decimal128-divide decimal128-equal 93 | decimal128-greater-than decimal128-greater-than-or-equal 94 | decimal128-less-than decimal128-less-than-or-equal 95 | decimal128-minus decimal128-multiply decimal128-negate 96 | decimal128-not-equal decimal128-plus decimal128-rescale 97 | decimal128-to-integer decimal128-to-string 98 | decimal128-to-string-scale decimal128 99 | decimal128array-format-value decimal128array-get-value 100 | decimal128array make-decimal128array-builder-new 101 | decimal128array-builder-append 102 | decimal128array-builder-append-null 103 | decimal128array-builder-append-value decimal128array-builder 104 | make-decimal128data-type-new decimal128data-type 105 | make-decimal-data-type-new decimal-data-type-get-precision 106 | decimal-data-type-get-scale decimal-data-type 107 | make-dense-union-array-new make-dense-union-array-new-data-type 108 | dense-union-array make-dense-union-data-type-new 109 | dense-union-data-type make-dictionary-array-new 110 | dictionary-array-get-dictionary 111 | dictionary-array-get-dictionary-data-type 112 | dictionary-array-get-indices dictionary-array 113 | make-dictionary-data-type-new 114 | dictionary-data-type-get-index-data-type 115 | dictionary-data-type-get-value-data-type 116 | dictionary-data-type-is-ordered dictionary-data-type 117 | make-double-array-new double-array-compare 118 | double-array-get-value double-array-get-values double-array-sum 119 | double-array make-double-array-builder-new 120 | double-array-builder-append double-array-builder-append-null 121 | double-array-builder-append-nulls 122 | double-array-builder-append-value 123 | double-array-builder-append-values double-array-builder 124 | make-double-data-type-new double-data-type 125 | *error-out-of-memory* *error-key* *error-type* *error-invalid* 126 | *error-io* *error-capacity* *error-index* *error-unknown* 127 | *error-not-implemented* *error-serialization* 128 | *error-code-generation* *error-expression-validation* 129 | *error-execution* *error-already-exists* 130 | make-feather-file-reader-new feather-file-reader-get-version 131 | feather-file-reader-read feather-file-reader-read-indices 132 | feather-file-reader-read-names feather-file-reader 133 | make-feather-write-properties-new feather-write-properties 134 | make-field-new make-field-new-full field-equal 135 | field-get-data-type field-get-name field-is-nullable 136 | field-to-string field make-file-info-new file-info-equal 137 | file-info-is-dir file-info-is-file file-info-to-string 138 | file-info *file-mode-read* *file-mode-write* 139 | *file-mode-readwrite* make-file-output-stream-new 140 | file-output-stream file-selector file-system-copy-file 141 | file-system-create-dir file-system-delete-dir 142 | file-system-delete-dir-contents file-system-delete-file 143 | file-system-delete-files file-system-get-file-info 144 | file-system-get-file-infos-paths 145 | file-system-get-file-infos-selector file-system-get-type-name 146 | file-system-move file-system-open-append-stream 147 | file-system-open-input-file file-system-open-input-stream 148 | file-system-open-output-stream file-system 149 | *file-type-not-found* *file-type-unknown* *file-type-file* 150 | *file-type-dir* *filter-null-selection-behavior-drop* 151 | *filter-null-selection-behavior-emit-null* 152 | make-filter-options-new filter-options fixed-size-binary-array 153 | make-fixed-size-binary-data-type-new 154 | fixed-size-binary-data-type-get-byte-width 155 | fixed-size-binary-data-type fixed-width-data-type-get-bit-width 156 | fixed-width-data-type make-float-array-new float-array-compare 157 | float-array-get-value float-array-get-values float-array-sum 158 | float-array make-float-array-builder-new 159 | float-array-builder-append float-array-builder-append-null 160 | float-array-builder-append-nulls 161 | float-array-builder-append-value 162 | float-array-builder-append-values float-array-builder 163 | make-float-data-type-new float-data-type 164 | floating-point-data-type make-gioinput-stream-new 165 | gioinput-stream-get-raw gioinput-stream 166 | make-giooutput-stream-new giooutput-stream-get-raw 167 | giooutput-stream input-stream-advance input-stream-align 168 | input-stream-read-tensor input-stream make-int16array-new 169 | int16array-compare int16array-get-value int16array-get-values 170 | int16array-sum int16array make-int16array-builder-new 171 | int16array-builder-append int16array-builder-append-null 172 | int16array-builder-append-nulls int16array-builder-append-value 173 | int16array-builder-append-values int16array-builder 174 | make-int16data-type-new int16data-type make-int32array-new 175 | int32array-compare int32array-get-value int32array-get-values 176 | int32array-sum int32array make-int32array-builder-new 177 | int32array-builder-append int32array-builder-append-null 178 | int32array-builder-append-nulls int32array-builder-append-value 179 | int32array-builder-append-values int32array-builder 180 | make-int32data-type-new int32data-type make-int64array-new 181 | int64array-compare int64array-get-value int64array-get-values 182 | int64array-sum int64array make-int64array-builder-new 183 | int64array-builder-append int64array-builder-append-null 184 | int64array-builder-append-nulls int64array-builder-append-value 185 | int64array-builder-append-values int64array-builder 186 | make-int64data-type-new int64data-type make-int8array-new 187 | int8array-compare int8array-get-value int8array-get-values 188 | int8array-sum int8array make-int8array-builder-new 189 | int8array-builder-append int8array-builder-append-null 190 | int8array-builder-append-nulls int8array-builder-append-value 191 | int8array-builder-append-values int8array-builder 192 | make-int8data-type-new int8data-type make-int-array-builder-new 193 | int-array-builder-append int-array-builder-append-null 194 | int-array-builder-append-nulls int-array-builder-append-value 195 | int-array-builder-append-values int-array-builder 196 | integer-data-type-is-signed integer-data-type 197 | make-jsonread-options-new jsonread-options 198 | *jsonread-unexpected-field-behavior-ignore* 199 | *jsonread-unexpected-field-behavior-error* 200 | *jsonread-unexpected-field-behavior-infer-type* 201 | make-jsonreader-new jsonreader-read jsonreader 202 | make-large-binary-array-new large-binary-array-get-buffer 203 | large-binary-array-get-offsets-buffer 204 | large-binary-array-get-value large-binary-array 205 | make-large-binary-array-builder-new 206 | large-binary-array-builder-append-null 207 | large-binary-array-builder-append-nulls 208 | large-binary-array-builder-append-value 209 | large-binary-array-builder-append-value-bytes 210 | large-binary-array-builder-append-values 211 | large-binary-array-builder make-large-binary-data-type-new 212 | large-binary-data-type make-large-list-array-new 213 | large-list-array-get-value large-list-array-get-value-type 214 | large-list-array make-large-list-array-builder-new 215 | large-list-array-builder-append-null 216 | large-list-array-builder-append-value 217 | large-list-array-builder-get-value-builder 218 | large-list-array-builder make-large-list-data-type-new 219 | large-list-data-type-get-field large-list-data-type 220 | make-large-string-array-new large-string-array-get-string 221 | large-string-array make-large-string-array-builder-new 222 | large-string-array-builder-append-string 223 | large-string-array-builder-append-strings 224 | large-string-array-builder make-large-string-data-type-new 225 | large-string-data-type make-list-array-new list-array-get-value 226 | list-array-get-value-type list-array 227 | make-list-array-builder-new list-array-builder-append 228 | list-array-builder-append-null list-array-builder-append-value 229 | list-array-builder-get-value-builder list-array-builder 230 | make-list-data-type-new list-data-type-get-field 231 | list-data-type-get-value-field list-data-type 232 | make-local-file-system-new local-file-system 233 | make-local-file-system-options-new local-file-system-options 234 | make-map-array-new map-array-get-items map-array-get-keys 235 | map-array make-map-array-builder-new 236 | map-array-builder-append-null map-array-builder-append-nulls 237 | map-array-builder-append-value map-array-builder-append-values 238 | map-array-builder-get-item-builder 239 | map-array-builder-get-key-builder 240 | map-array-builder-get-value-builder map-array-builder 241 | make-map-data-type-new map-data-type-get-item-type 242 | map-data-type-get-key-type map-data-type 243 | make-memory-mapped-input-stream-new memory-mapped-input-stream 244 | *metadata-version-v1* *metadata-version-v2* 245 | *metadata-version-v3* make-mutable-buffer-new 246 | make-mutable-buffer-new-bytes mutable-buffer-set-data 247 | mutable-buffer-slice mutable-buffer make-null-array-new 248 | null-array make-null-array-builder-new 249 | null-array-builder-append-null null-array-builder-append-nulls 250 | null-array-builder make-null-data-type-new null-data-type 251 | numeric-array-mean numeric-array numeric-data-type 252 | output-stream-align output-stream-write-tensor output-stream 253 | primitive-array-get-buffer primitive-array 254 | make-record-batch-new record-batch-add-column 255 | record-batch-equal record-batch-equal-metadata 256 | record-batch-filter record-batch-get-column-data 257 | record-batch-get-column-name record-batch-get-n-columns 258 | record-batch-get-n-rows record-batch-get-schema 259 | record-batch-remove-column record-batch-slice record-batch-take 260 | record-batch-to-string record-batch 261 | make-record-batch-builder-new record-batch-builder-flush 262 | record-batch-builder-get-column-builder 263 | record-batch-builder-get-field 264 | record-batch-builder-get-initial-capacity 265 | record-batch-builder-get-n-columns 266 | record-batch-builder-get-n-fields 267 | record-batch-builder-get-schema 268 | record-batch-builder-set-initial-capacity record-batch-builder 269 | make-record-batch-file-reader-new 270 | record-batch-file-reader-get-n-record-batches 271 | record-batch-file-reader-get-record-batch 272 | record-batch-file-reader-get-schema 273 | record-batch-file-reader-get-version 274 | record-batch-file-reader-read-record-batch 275 | record-batch-file-reader make-record-batch-file-writer-new 276 | record-batch-file-writer make-record-batch-iterator-new 277 | record-batch-iterator-equal record-batch-iterator-next 278 | record-batch-iterator-to-list record-batch-iterator 279 | record-batch-reader-get-next-record-batch 280 | record-batch-reader-get-schema record-batch-reader-read-next 281 | record-batch-reader-read-next-record-batch record-batch-reader 282 | make-record-batch-stream-reader-new record-batch-stream-reader 283 | make-record-batch-stream-writer-new record-batch-stream-writer 284 | record-batch-writer-close 285 | record-batch-writer-write-record-batch 286 | record-batch-writer-write-table record-batch-writer 287 | make-resizable-buffer-new resizable-buffer-reserve 288 | resizable-buffer-resize resizable-buffer make-arrow-schema-new 289 | arrow-schema-add-field arrow-schema-equal 290 | arrow-schema-get-field arrow-schema-get-field-by-name 291 | arrow-schema-get-field-index arrow-schema-get-fields 292 | arrow-schema-get-metadata arrow-schema-n-fields 293 | arrow-schema-remove-field arrow-schema-replace-field 294 | arrow-schema-to-string arrow-schema-to-string-metadata 295 | arrow-schema-with-metadata arrow-schema 296 | seekable-input-stream-get-size 297 | seekable-input-stream-get-support-zero-copy 298 | seekable-input-stream-peek seekable-input-stream-read-at 299 | seekable-input-stream-read-at-bytes seekable-input-stream 300 | make-slow-file-system-new-average-latency 301 | make-slow-file-system-new-average-latency-and-seed 302 | slow-file-system make-sparse-union-array-new 303 | make-sparse-union-array-new-data-type sparse-union-array 304 | make-sparse-union-data-type-new sparse-union-data-type 305 | make-string-array-new string-array-get-string string-array 306 | make-string-array-builder-new string-array-builder-append 307 | string-array-builder-append-string 308 | string-array-builder-append-strings 309 | string-array-builder-append-value 310 | string-array-builder-append-values string-array-builder 311 | make-string-data-type-new string-data-type 312 | make-struct-array-new struct-array-flatten 313 | struct-array-get-field struct-array-get-fields struct-array 314 | make-struct-array-builder-new struct-array-builder-append 315 | struct-array-builder-append-null 316 | struct-array-builder-append-value 317 | struct-array-builder-get-field-builder 318 | struct-array-builder-get-field-builders struct-array-builder 319 | make-struct-data-type-new struct-data-type-get-field 320 | struct-data-type-get-field-by-name 321 | struct-data-type-get-field-index struct-data-type-get-fields 322 | struct-data-type-get-n-fields struct-data-type 323 | make-sub-tree-file-system-new sub-tree-file-system 324 | make-arrow-table-new-arrays make-arrow-table-new-chunked-arrays 325 | make-arrow-table-new-record-batches make-arrow-table-new-values 326 | arrow-table-add-column arrow-table-combine-chunks 327 | arrow-table-concatenate arrow-table-equal 328 | arrow-table-equal-metadata arrow-table-filter 329 | arrow-table-filter-chunked-array arrow-table-get-column-data 330 | arrow-table-get-n-columns arrow-table-get-n-rows 331 | arrow-table-get-schema arrow-table-remove-column 332 | arrow-table-replace-column arrow-table-slice arrow-table-take 333 | arrow-table-take-chunked-array arrow-table-to-string 334 | arrow-table-write-as-feather arrow-table 335 | make-table-batch-reader-new table-batch-reader 336 | make-take-options-new take-options make-arrow-tensor-new 337 | arrow-tensor-equal arrow-tensor-get-buffer 338 | arrow-tensor-get-dimension-name arrow-tensor-get-n-dimensions 339 | arrow-tensor-get-shape arrow-tensor-get-size 340 | arrow-tensor-get-strides arrow-tensor-get-value-data-type 341 | arrow-tensor-get-value-type arrow-tensor-is-column-major 342 | arrow-tensor-is-contiguous arrow-tensor-is-mutable 343 | arrow-tensor-is-row-major arrow-tensor make-time32array-new 344 | time32array-get-value time32array-get-values time32array 345 | make-time32array-builder-new time32array-builder-append 346 | time32array-builder-append-null 347 | time32array-builder-append-nulls 348 | time32array-builder-append-value 349 | time32array-builder-append-values time32array-builder 350 | make-time32data-type-new time32data-type make-time64array-new 351 | time64array-get-value time64array-get-values time64array 352 | make-time64array-builder-new time64array-builder-append 353 | time64array-builder-append-null 354 | time64array-builder-append-nulls 355 | time64array-builder-append-value 356 | time64array-builder-append-values time64array-builder 357 | make-time64data-type-new time64data-type 358 | time-data-type-get-unit time-data-type *time-unit-second* 359 | *time-unit-milli* *time-unit-micro* *time-unit-nano* 360 | make-timestamp-array-new timestamp-array-get-value 361 | timestamp-array-get-values timestamp-array 362 | make-timestamp-array-builder-new timestamp-array-builder-append 363 | timestamp-array-builder-append-null 364 | timestamp-array-builder-append-nulls 365 | timestamp-array-builder-append-value 366 | timestamp-array-builder-append-values timestamp-array-builder 367 | make-timestamp-data-type-new timestamp-data-type-get-unit 368 | timestamp-data-type *type-na* *type-boolean* *type-uint8* 369 | *type-int8* *type-uint16* *type-int16* *type-uint32* 370 | *type-int32* *type-uint64* *type-int64* *type-half-float* 371 | *type-float* *type-double* *type-string* *type-binary* 372 | *type-fixed-size-binary* *type-date32* *type-date64* 373 | *type-timestamp* *type-time32* *type-time64* *type-interval* 374 | *type-decimal* *type-list* *type-struct* *type-union* 375 | *type-dictionary* *type-map* *type-extension* 376 | *type-fixed-size-list* *type-duration* *type-large-string* 377 | *type-large-binary* *type-large-list* make-uint16array-new 378 | uint16array-compare uint16array-get-value 379 | uint16array-get-values uint16array-sum uint16array 380 | make-uint16array-builder-new uint16array-builder-append 381 | uint16array-builder-append-null 382 | uint16array-builder-append-nulls 383 | uint16array-builder-append-value 384 | uint16array-builder-append-values uint16array-builder 385 | make-uint16data-type-new uint16data-type make-uint32array-new 386 | uint32array-compare uint32array-get-value 387 | uint32array-get-values uint32array-sum uint32array 388 | make-uint32array-builder-new uint32array-builder-append 389 | uint32array-builder-append-null 390 | uint32array-builder-append-nulls 391 | uint32array-builder-append-value 392 | uint32array-builder-append-values uint32array-builder 393 | make-uint32data-type-new uint32data-type make-uint64array-new 394 | uint64array-compare uint64array-get-value 395 | uint64array-get-values uint64array-sum uint64array 396 | make-uint64array-builder-new uint64array-builder-append 397 | uint64array-builder-append-null 398 | uint64array-builder-append-nulls 399 | uint64array-builder-append-value 400 | uint64array-builder-append-values uint64array-builder 401 | make-uint64data-type-new uint64data-type make-uint8array-new 402 | uint8array-compare uint8array-get-value uint8array-get-values 403 | uint8array-sum uint8array make-uint8array-builder-new 404 | uint8array-builder-append uint8array-builder-append-null 405 | uint8array-builder-append-nulls uint8array-builder-append-value 406 | uint8array-builder-append-values uint8array-builder 407 | make-uint8data-type-new uint8data-type 408 | make-uint-array-builder-new uint-array-builder-append 409 | uint-array-builder-append-null uint-array-builder-append-nulls 410 | uint-array-builder-append-value 411 | uint-array-builder-append-values uint-array-builder 412 | union-array-get-field union-array union-data-type-get-field 413 | union-data-type-get-fields union-data-type-get-n-fields 414 | union-data-type-get-type-codes union-data-type)) 415 | 416 | (defpackage #:parquet-low-level 417 | (:use #:cl) 418 | (:import-from #:gir) 419 | (:export gir-object native-pointer make-arrow-file-reader-new-arrow 420 | make-arrow-file-reader-new-path 421 | arrow-file-reader-get-n-row-groups 422 | arrow-file-reader-get-schema 423 | arrow-file-reader-read-column-data 424 | arrow-file-reader-read-table 425 | arrow-file-reader-set-use-threads arrow-file-reader 426 | make-arrow-file-writer-new-arrow 427 | make-arrow-file-writer-new-path arrow-file-writer-close 428 | arrow-file-writer-write-table arrow-file-writer 429 | make-parquet-writer-properties-new 430 | parquet-writer-properties-disable-dictionary 431 | parquet-writer-properties-enable-dictionary 432 | parquet-writer-properties-get-batch-size 433 | parquet-writer-properties-get-compression-path 434 | parquet-writer-properties-get-data-page-size 435 | parquet-writer-properties-get-dictionary-page-size-limit 436 | parquet-writer-properties-get-max-row-group-length 437 | parquet-writer-properties-is-dictionary-enabled 438 | parquet-writer-properties-set-batch-size 439 | parquet-writer-properties-set-compression 440 | parquet-writer-properties-set-data-page-size 441 | parquet-writer-properties-set-dictionary-page-size-limit 442 | parquet-writer-properties-set-max-row-group-length 443 | parquet-writer-properties)) 444 | 445 | (defpackage #:arrow 446 | (:use #:cl 447 | #:arrow-low-level) 448 | (:shadowing-import-from #:arrow-low-level) 449 | (:import-from #:closer-mop) 450 | (:export schema-from-object 451 | entity-class 452 | entity-slot-definition 453 | arrow-field-name 454 | with-field-builders 455 | field-list 456 | prepend-field 457 | concat 458 | lisp-list 459 | g-list)) 460 | 461 | (defpackage #:parquet 462 | (:use #:cl) 463 | (:shadowing-import-from #:parquet-low-level) 464 | (:export with-open-file-writer 465 | write-table)) 466 | -------------------------------------------------------------------------------- /src/parquet-low-level.lisp: -------------------------------------------------------------------------------- 1 | ;;;; Generated by gir2cl on Mon, 04 May 2020 23:49:56 +0000 2 | 3 | (in-package #:parquet-low-level) 4 | 5 | (defparameter *ns* (gir:require-namespace "Parquet")) 6 | 7 | (defclass gir-object nil 8 | ((native-pointer :initarg :native-pointer :reader native-pointer))) 9 | 10 | (defclass arrow-file-reader (gir-object) (path source)) 11 | 12 | (defun make-arrow-file-reader-new-arrow (source) 13 | (let ((pointer (gir:invoke (*ns* "ArrowFileReader" "new_arrow") source))) 14 | (make-instance 'arrow-file-reader :native-pointer pointer))) 15 | 16 | (defun make-arrow-file-reader-new-path (path) 17 | (let ((pointer (gir:invoke (*ns* "ArrowFileReader" "new_path") path))) 18 | (make-instance 'arrow-file-reader :native-pointer pointer))) 19 | 20 | (defmethod arrow-file-reader-get-n-row-groups 21 | ((arrow-file-reader arrow-file-reader)) 22 | (with-slots (native-pointer) 23 | arrow-file-reader 24 | (gir:invoke (native-pointer "get_n_row_groups")))) 25 | 26 | (defmethod arrow-file-reader-get-schema ((arrow-file-reader arrow-file-reader)) 27 | (with-slots (native-pointer) 28 | arrow-file-reader 29 | (gir:invoke (native-pointer "get_schema")))) 30 | 31 | (defmethod arrow-file-reader-read-column-data 32 | ((arrow-file-reader arrow-file-reader) i) 33 | (with-slots (native-pointer) 34 | arrow-file-reader 35 | (gir:invoke (native-pointer "read_column_data") i))) 36 | 37 | (defmethod arrow-file-reader-read-table ((arrow-file-reader arrow-file-reader)) 38 | (with-slots (native-pointer) 39 | arrow-file-reader 40 | (gir:invoke (native-pointer "read_table")))) 41 | 42 | (defmethod arrow-file-reader-set-use-threads 43 | ((arrow-file-reader arrow-file-reader) use-threads) 44 | (with-slots (native-pointer) 45 | arrow-file-reader 46 | (gir:invoke (native-pointer "set_use_threads") use-threads))) 47 | 48 | (defclass arrow-file-writer (gir-object) (path schema sink writer-properties)) 49 | 50 | (defun make-arrow-file-writer-new-arrow (schema sink writer-properties) 51 | (let ((pointer 52 | (gir:invoke (*ns* "ArrowFileWriter" "new_arrow") schema sink writer-properties))) 53 | (make-instance 'arrow-file-writer :native-pointer pointer))) 54 | 55 | (defun make-arrow-file-writer-new-path (schema path writer-properties) 56 | (let ((pointer 57 | (gir:invoke (*ns* "ArrowFileWriter" "new_path") schema path writer-properties))) 58 | (make-instance 'arrow-file-writer :native-pointer pointer))) 59 | 60 | (defmethod arrow-file-writer-close ((arrow-file-writer arrow-file-writer)) 61 | (with-slots (native-pointer) 62 | arrow-file-writer 63 | (gir:invoke (native-pointer "close")))) 64 | 65 | (defmethod arrow-file-writer-write-table 66 | ((arrow-file-writer arrow-file-writer) table chunk-size) 67 | (with-slots (native-pointer) 68 | arrow-file-writer 69 | (gir:invoke (native-pointer "write_table") table chunk-size))) 70 | 71 | (defclass parquet-writer-properties (gir-object) nil) 72 | 73 | (defun make-parquet-writer-properties-new () 74 | (let ((pointer (gir:invoke (*ns* "WriterProperties" "new")))) 75 | (make-instance 'parquet-writer-properties :native-pointer pointer))) 76 | 77 | (defmethod parquet-writer-properties-disable-dictionary 78 | ((parquet-writer-properties parquet-writer-properties) path) 79 | (with-slots (native-pointer) 80 | parquet-writer-properties 81 | (gir:invoke (native-pointer "disable_dictionary") path))) 82 | 83 | (defmethod parquet-writer-properties-enable-dictionary 84 | ((parquet-writer-properties parquet-writer-properties) path) 85 | (with-slots (native-pointer) 86 | parquet-writer-properties 87 | (gir:invoke (native-pointer "enable_dictionary") path))) 88 | 89 | (defmethod parquet-writer-properties-get-batch-size 90 | ((parquet-writer-properties parquet-writer-properties)) 91 | (with-slots (native-pointer) 92 | parquet-writer-properties 93 | (gir:invoke (native-pointer "get_batch_size")))) 94 | 95 | (defmethod parquet-writer-properties-get-compression-path 96 | ((parquet-writer-properties parquet-writer-properties) path) 97 | (with-slots (native-pointer) 98 | parquet-writer-properties 99 | (gir:invoke (native-pointer "get_compression_path") path))) 100 | 101 | (defmethod parquet-writer-properties-get-data-page-size 102 | ((parquet-writer-properties parquet-writer-properties)) 103 | (with-slots (native-pointer) 104 | parquet-writer-properties 105 | (gir:invoke (native-pointer "get_data_page_size")))) 106 | 107 | (defmethod parquet-writer-properties-get-dictionary-page-size-limit 108 | ((parquet-writer-properties parquet-writer-properties)) 109 | (with-slots (native-pointer) 110 | parquet-writer-properties 111 | (gir:invoke (native-pointer "get_dictionary_page_size_limit")))) 112 | 113 | (defmethod parquet-writer-properties-get-max-row-group-length 114 | ((parquet-writer-properties parquet-writer-properties)) 115 | (with-slots (native-pointer) 116 | parquet-writer-properties 117 | (gir:invoke (native-pointer "get_max_row_group_length")))) 118 | 119 | (defmethod parquet-writer-properties-is-dictionary-enabled 120 | ((parquet-writer-properties parquet-writer-properties) path) 121 | (with-slots (native-pointer) 122 | parquet-writer-properties 123 | (gir:invoke (native-pointer "is_dictionary_enabled") path))) 124 | 125 | (defmethod parquet-writer-properties-set-batch-size 126 | ((parquet-writer-properties parquet-writer-properties) batch-size) 127 | (with-slots (native-pointer) 128 | parquet-writer-properties 129 | (gir:invoke (native-pointer "set_batch_size") batch-size))) 130 | 131 | (defmethod parquet-writer-properties-set-compression 132 | ((parquet-writer-properties parquet-writer-properties) 133 | compression-type path) 134 | (with-slots (native-pointer) 135 | parquet-writer-properties 136 | (gir:invoke (native-pointer "set_compression") compression-type path))) 137 | 138 | (defmethod parquet-writer-properties-set-data-page-size 139 | ((parquet-writer-properties parquet-writer-properties) 140 | data-page-size) 141 | (with-slots (native-pointer) 142 | parquet-writer-properties 143 | (gir:invoke (native-pointer "set_data_page_size") data-page-size))) 144 | 145 | (defmethod parquet-writer-properties-set-dictionary-page-size-limit 146 | ((parquet-writer-properties parquet-writer-properties) limit) 147 | (with-slots (native-pointer) 148 | parquet-writer-properties 149 | (gir:invoke (native-pointer "set_dictionary_page_size_limit") limit))) 150 | 151 | (defmethod parquet-writer-properties-set-max-row-group-length 152 | ((parquet-writer-properties parquet-writer-properties) length) 153 | (with-slots (native-pointer) 154 | parquet-writer-properties 155 | (gir:invoke (native-pointer "set_max_row_group_length") length))) 156 | 157 | -------------------------------------------------------------------------------- /src/parquet.lisp: -------------------------------------------------------------------------------- 1 | (in-package #:parquet) 2 | 3 | (defun write-table (writer schema field-builders batch-size) 4 | (let ((table (arrow-low-level:make-arrow-table-new-arrays (arrow-low-level:native-pointer schema) 5 | field-builders))) 6 | (parquet-low-level:arrow-file-writer-write-table writer 7 | (arrow-low-level:native-pointer table) 8 | batch-size))) 9 | 10 | (defmacro with-open-file-writer ((writer writer-properties schema path) &body body) 11 | `(let ((,writer (parquet-low-level:make-arrow-file-writer-new-path 12 | (arrow-low-level:native-pointer ,schema) ,path 13 | (parquet-low-level:native-pointer ,writer-properties)))) 14 | (unwind-protect 15 | ,@body 16 | (parquet-low-level:arrow-file-writer-close ,writer)))) 17 | -------------------------------------------------------------------------------- /src/utils-test.lisp: -------------------------------------------------------------------------------- 1 | (defpackage cl-apache-arrow/tests/utils 2 | (:use :cl 3 | :arrow 4 | :rove)) 5 | (in-package :cl-apache-arrow/tests/utils) 6 | 7 | (defclass test-class () 8 | ((field-a :initarg :field-a 9 | :arrow-field-name "arrow-field-a" 10 | :arrow-type (arrow-low-level:make-string-data-type-new)) 11 | (field-b :initarg :field-b 12 | :arrow-field-name "arrow-field-b" 13 | :arrow-type (arrow-low-level:make-int32data-type-new))) 14 | 15 | (:metaclass arrow:entity-class)) 16 | 17 | (let ((o (make-instance 'test-class 18 | :field-a "value-a" 19 | :field-b 1))) 20 | 21 | (deftest schema-from-object 22 | (testing "The correct schema is generated." 23 | (let ((schema (arrow:schema-from-object o))) 24 | (ok (string= (arrow-low-level:arrow-schema-to-string schema) 25 | "arrow-field-a: string 26 | arrow-field-b: int32")))) 27 | 28 | (testing "The correct field builders are generated." 29 | (multiple-value-bind (schema field-builders) 30 | (arrow:schema-from-object o) 31 | (let ((field-builder-types (mapcar #'type-of field-builders))) 32 | (ok (equalp field-builder-types 33 | '(arrow-low-level:string-array-builder 34 | arrow-low-level:int32array-builder))))))) 35 | 36 | (deftest field-list 37 | (testing "Prepending field-list gives expected sequence" 38 | (let* ((lhs-field-list (make-instance 'arrow:field-list)) 39 | (rhs-field-list (make-instance 'arrow:field-list)) 40 | (string-data-type (arrow-low-level:native-pointer 41 | (arrow-low-level:make-string-data-type-new))) 42 | (a (arrow-low-level:make-field-new "a" string-data-type)) 43 | (b (arrow-low-level:make-field-new "b" string-data-type)) 44 | (c (arrow-low-level:make-field-new "c" string-data-type)) 45 | (d (arrow-low-level:make-field-new "d" string-data-type))) 46 | 47 | (prepend-field lhs-field-list b) 48 | (prepend-field lhs-field-list a) 49 | 50 | (prepend-field rhs-field-list d) 51 | (prepend-field rhs-field-list c) 52 | 53 | (let ((new-field-list (concat lhs-field-list rhs-field-list))) 54 | (ok (equalp (arrow:lisp-list new-field-list) 55 | (append (arrow:lisp-list lhs-field-list) 56 | (arrow:lisp-list rhs-field-list)))) 57 | (loop 58 | for f in (list a b c d) 59 | for i upto 3 60 | do (ok (cffi:pointer-eq 61 | (arrow::g-list-nth-data (arrow:g-list new-field-list) i) 62 | (gir::this-of (arrow-low-level:native-pointer f)))))))))) 63 | -------------------------------------------------------------------------------- /src/utils.lisp: -------------------------------------------------------------------------------- 1 | (in-package #:arrow) 2 | 3 | (defclass entity-slot-definition (closer-mop:standard-direct-slot-definition) 4 | ((arrow-type :type class 5 | :initarg :arrow-type 6 | :accessor arrow-type 7 | :documentation 8 | "One of the Arrow Data types.") 9 | (arrow-field-name :type string 10 | :initarg :arrow-field-name 11 | :accessor arrow-field-name))) 12 | 13 | (defclass entity-class (closer-mop:standard-class) ()) 14 | 15 | (defmethod closer-mop:validate-superclass ((class entity-class) 16 | (super closer-mop:standard-class)) 17 | t) 18 | 19 | (defmethod closer-mop:validate-superclass ((class standard-class) 20 | (super entity-class)) 21 | t) 22 | 23 | (defmethod closer-mop:direct-slot-definition-class ((class entity-class) 24 | &rest initargs) 25 | (declare (ignore class initargs)) 26 | (find-class 'entity-slot-definition)) 27 | 28 | (defun schema-from-object (obj &key (schema '(*)) get-field-name skip-slot-p) 29 | "Enumerates over the slots in a CLOS class and returns a schema 30 | generated from its slots, and a function which, when passed an object 31 | of the same type, will append its values to the correct field 32 | builders." 33 | (check-type obj standard-object) 34 | (check-type schema list) 35 | (check-type get-field-name (or null function)) 36 | (check-type skip-slot-p (or null function)) 37 | 38 | (let ((clos-class-slots (remove-if 39 | (lambda (s) (eq :class s)) 40 | (let ((class (class-of obj))) 41 | (alexandria:flatten 42 | (mapcar #'closer-mop:class-direct-slots 43 | (cons class (closer-mop:class-direct-superclasses class))))) 44 | :key #'closer-mop:slot-definition-allocation))) 45 | 46 | (multiple-value-bind (schema-field-builders field-builders field-list class-slots) 47 | (fields-from-class (class-of obj) clos-class-slots schema) 48 | 49 | (let ((schema (make-arrow-schema-new (g-list field-list)))) 50 | (values 51 | schema 52 | schema-field-builders 53 | (lambda (obj*) 54 | "Populates field builders from slots of a CLOS object." 55 | 56 | (labels ((iterate (slots builders) 57 | (when builders 58 | (let ((builder (car builders)) 59 | (slot (car slots))) 60 | (if (typep builder 'list-array-builder) 61 | (progn 62 | (append-value builder) 63 | (iterate slots (cdr builders))) 64 | 65 | (let ((slot-value (and (slot-boundp obj* slot) 66 | (slot-value obj* slot)))) 67 | (if slot-value 68 | (append-value builder slot-value) 69 | (append-null builder)) 70 | 71 | (iterate (cdr slots) (cdr builders)))))))) 72 | 73 | (iterate class-slots field-builders)))))))) 74 | 75 | ;;; Unexported 76 | 77 | (defun fields-from-class (class clos-class-slots schema &optional wildcard-slots) 78 | "Builds up a list of Arrow field builders which matches the shape of 79 | the schema list passed in. Returns a list of field builders, a GList 80 | of fields, and a list of class slots." 81 | (check-type clos-class-slots list) 82 | (check-type schema list) 83 | (check-type wildcard-slots list) 84 | 85 | (let* ((wildcard-slots (or wildcard-slots 86 | (slot-definitions-difference clos-class-slots (alexandria:flatten schema)))) 87 | (field-builders (list)) 88 | (schema-field-builders (list)) 89 | (class-slots (list)) 90 | (fields (make-instance 'field-list))) 91 | 92 | (loop 93 | for schema-place in schema 94 | do (if (listp schema-place) 95 | ;; We are requesting a nested structure. The first item 96 | ;; in the list is the name of the nested structure in its 97 | ;; parent list. 98 | (multiple-value-bind (struct-field-builder field-builders* field class-slots*) 99 | (nest-struct class clos-class-slots 100 | (car schema-place) (cdr schema-place) wildcard-slots) 101 | 102 | (prepend-field fields field) 103 | (setf field-builders (append field-builders field-builders*) 104 | schema-field-builders (append schema-field-builders (list struct-field-builder)) 105 | class-slots (append class-slots class-slots*))) 106 | 107 | (if (eq '* schema-place) 108 | ;; Replace the star with all the slots not explicitly 109 | ;; defined. 110 | (multiple-value-bind (schema-field-builders* field-builders* fields* class-slots* lisp-fields*) 111 | (fields-from-class class clos-class-slots wildcard-slots wildcard-slots) 112 | 113 | (setf field-builders (append field-builders* field-builders) 114 | schema-field-builders (append schema-field-builders* schema-field-builders) 115 | class-slots (append class-slots* class-slots) 116 | fields (concat fields* fields))) 117 | 118 | ;; Otherwise add bits for the requested slot. 119 | (let ((slot (find-slot-definition clos-class-slots schema-place))) 120 | 121 | (unless slot 122 | (error "Cannot find requested slot \"~a\" for schema in class \"~a\"" 123 | schema-place class)) 124 | 125 | (let* ((arrow-type (arrow-type-from-slot slot)) 126 | (field (make-field-new (arrow-field-name slot) 127 | (native-pointer arrow-type)))) 128 | 129 | (prepend-field fields field) 130 | (setf 131 | field-builders (cons (data-type-array-builder arrow-type) 132 | field-builders) 133 | schema-field-builders (cons (car field-builders) schema-field-builders) 134 | class-slots (cons schema-place class-slots))))))) 135 | 136 | (values schema-field-builders field-builders fields class-slots))) 137 | 138 | (defun nest-struct (class clos-class-slots field-name schema w) 139 | (check-type clos-class-slots list) 140 | (check-type field-name string) 141 | (check-type schema list) 142 | 143 | (multiple-value-bind (schema-field-builders field-builders fields class-slots) 144 | (fields-from-class class clos-class-slots schema w) 145 | (declare (ignore schema-field-builders)) 146 | 147 | (let* ((struct-type (make-struct-data-type-new (g-list fields))) 148 | (inner-list-field (make-field-new "element" (native-pointer struct-type))) 149 | (inner-list-type (make-list-data-type-new (native-pointer inner-list-field))) 150 | 151 | (list-field (make-field-new field-name (native-pointer inner-list-type))) 152 | (list-builder (make-list-array-builder-new (native-pointer inner-list-type)))) 153 | 154 | (values 155 | list-builder 156 | (cons list-builder field-builders) 157 | list-field 158 | class-slots)))) 159 | 160 | (defun slot-definitions-difference (slot-definitions exclusions) 161 | "Finds the slots in the object which are not in the exclusions 162 | list." 163 | (check-type slot-definitions list) 164 | 165 | (set-difference (mapcar #'closer-mop:slot-definition-name 166 | slot-definitions) 167 | exclusions)) 168 | 169 | (defun find-slot-definition (slot-definitions slot-name) 170 | "Finds the MOP slot definition of an object with the given name." 171 | (check-type slot-definitions list) 172 | (check-type slot-name symbol) 173 | 174 | (find slot-name slot-definitions 175 | :key #'closer-mop:slot-definition-name)) 176 | 177 | (defun arrow-type-from-slot (slot) 178 | "Fetches the function that creates an Arrow type from the slot 179 | definition of a CLOS object with a meta-object of entity-class." 180 | (check-type slot closer-mop:slot-definition) 181 | 182 | (let ((arrow-type-fn (arrow-type slot))) 183 | (apply (car arrow-type-fn) (cdr arrow-type-fn)))) 184 | 185 | 186 | (defun data-type-array-builder (data-type) 187 | "Returns an array builder for the given Arrow DataType." 188 | 189 | (typecase data-type 190 | (binary-data-type (make-binary-array-builder-new)) 191 | (boolean-data-type (make-boolean-array-builder-new)) 192 | (date32data-type (make-date32array-builder-new)) 193 | (date64data-type (make-date64array-builder-new)) 194 | ;;(decimal128data-type (make-decimal128array-builder-new)) 195 | ;;(decimal-data-type) 196 | ;;(dense-union-data-type) 197 | ;;(dictionary-data-type) 198 | (double-data-type (make-double-array-builder-new)) 199 | ;;(fixed-size-binary-data-type) 200 | (float-data-type (make-float-array-builder-new)) 201 | (int16data-type (make-int16array-builder-new)) 202 | (int32data-type (make-int32array-builder-new)) 203 | (int64data-type (make-int64array-builder-new)) 204 | (int8data-type (make-int8array-builder-new)) 205 | ;;(list-data-type (make-list-array-builder-new)) 206 | (null-data-type (make-null-array-builder-new)) 207 | ;;(sparse-union-data-type) 208 | (string-data-type (make-string-array-builder-new)) 209 | ;;(struct-data-type (make-struct-array-builder-new)) 210 | ;;(time32data-type (make-time32array-builder-new)) 211 | ;;(time64data-type (make-time64array-builder-new)) 212 | ;;(timestamp-data-type (make-timestamp-array-builder-new)) 213 | (uint16data-type (make-uint16array-builder-new)) 214 | (uint32data-type (make-uint32array-builder-new)) 215 | (uint64data-type (make-uint64array-builder-new)) 216 | (uint8data-type (make-uint8array-builder-new)))) 217 | --------------------------------------------------------------------------------