Skip to content

Commit

Permalink
Cleaner struct definitions when structs support pointer types.
Browse files Browse the repository at this point in the history
  • Loading branch information
cnuernber committed Feb 28, 2024
1 parent 591c1fc commit 4f88d9d
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 15 deletions.
1 change: 1 addition & 0 deletions deps.edn
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{:paths ["src" "lib"]
:deps {techascent/tech.ml.dataset {:mvn/version "7.026"}
cnuernber/dtype-next {:mvn/version "10.111"}
techascent/tech.ml.dataset.sql {:mvn/version "7.000-beta-52"}
net.java.dev.jna/jna {:mvn/version "5.13.0"}}
:aliases
Expand Down
30 changes: 15 additions & 15 deletions src/tmducken/duckdb/ffi.clj
Original file line number Diff line number Diff line change
Expand Up @@ -480,23 +480,23 @@ all memory associated with the appender.

(defonce blob-def* (delay (dt-struct/define-datatype! :duckdb-blob
[{:name :data
:datatype @ptr-dtype*}
:datatype :pointer}
{:name :size
:datatype :uint64}])))


(defonce column-def* (delay (dt-struct/define-datatype! :duckdb-column
[{:name :data
:datatype @ptr-dtype*}
:datatype :pointer}
{:name :nullmask
:datatype @ptr-dtype*}
:datatype :pointer}
;;duckdb-type
{:name :type
:datatype :int32}
{:name :name
:datatype @ptr-dtype*}
:datatype :pointer}
{:name :internal_data
:datatype @ptr-dtype*}])))
:datatype :pointer}])))


(defonce result-def* (delay
Expand All @@ -508,52 +508,52 @@ all memory associated with the appender.
{:name :rows-changed
:datatype :uint64}
{:name :columns
:datatype @ptr-dtype*}
:datatype :pointer}
{:name :error-message
:datatype @ptr-dtype*}
:datatype :pointer}
{:name :internal-data
:datatype @ptr-dtype*}])))
:datatype :pointer}])))



(defonce logical-type-def*
(delay
(dt-struct/define-datatype! :duckdb-logical-type
[{:name :__lglt
:datatype @ptr-dtype*}])))
:datatype :pointer}])))


(defonce data-chunk-def*
(delay
(dt-struct/define-datatype! :duckdb-data-chunk
[{:name :__dtck
:datatype @ptr-dtype*}])))
:datatype :pointer}])))


(defonce vector-def*
(delay
(dt-struct/define-datatype! :duckdb-vector
[{:name :__vec
:datatype @ptr-dtype*}])))
:datatype :pointer}])))


(defonce appender-def*
(delay
(dt-struct/define-datatype! :duckdb-appender
[{:name :__appn
:datatype @ptr-dtype*}])))
:datatype :pointer}])))

(defonce prepared-statement-def*
(delay
(dt-struct/define-datatype! :duckdb-prepared-statement
[{:name :__prep
:datatype @ptr-dtype*}])
:datatype :pointer}])
(dt-struct/define-datatype! :duckdb-extracted-statements
[{:name :__extrac
:datatype @ptr-dtype*}])
:datatype :pointer}])
(dt-struct/define-datatype! :duckdb-pending-result
[{:name :__pend
:datatype @ptr-dtype*}])
:datatype :pointer}])
))


Expand Down
11 changes: 11 additions & 0 deletions test/tmducken/duckdb_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,17 @@

(duckdb/initialize!)

(comment
(require '[tech.v3.datatype.ffi.mmodel-jdk21 :as mm])
(def cls-def (mm/define-library duckdb-ffi/lib-fns nil nil))
(def lib-path (str (java.nio.file.Paths/get (System/getenv "DUCKDB_HOME")
(into-array String [(System/mapLibraryName "duckdb")]))))
(def sym (mm/load-library lib-path))
(def inst (tech.v3.datatype.ffi/instantiate-library cls-def sym))
(tech.v3.datatype.ffi/library-singleton-set-instance! duckdb-ffi/lib inst)
)


(def db* (delay (duckdb/initialize!)
(duckdb/open-db)))

Expand Down

0 comments on commit 4f88d9d

Please sign in to comment.