changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate lisp/lib/rdb/obj.lisp

changeset 112: 430e69339ac3
parent: 2aec94d6a480
child: afcb1f02bb66
author: ellis <ellis@rwest.io>
date: Tue, 19 Dec 2023 18:10:02 -0500
permissions: -rw-r--r--
description: fixed rdb tests
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
1
 (in-package :rdb)
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
2
 
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
3
 ;;; rdb-opts
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
4
 (defvar *rdb-opts-lookup-table*
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
5
   (let ((table (make-hash-table :test #'equal)))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
6
     (mapc (lambda (x) (setf (gethash (car x) table) (cdr x)))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
7
           (loop for y across *rocksdb-options*
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
8
                 collect (cons y (format nil "rocksdb-options-set-~x" y))))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
9
     table))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
10
 
102
db52ddb25d7f progress
ellis <ellis@rwest.io>
parents: 100
diff changeset
11
 (defmacro rdb-opt-setter (key)
db52ddb25d7f progress
ellis <ellis@rwest.io>
parents: 100
diff changeset
12
   `(symbolicate (format nil "rocksdb-options-set-~x" ,key)))
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
13
 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
14
 (defun %set-rocksdb-option (opt key val)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
15
   (funcall (rdb-opt-setter key) opt val))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
16
 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
17
 ;; (funcall (rdb-opt-setter "create-if-missing") (rocksdb-options-create) nil)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
18
 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
19
 (defclass rdb-opts ()
102
db52ddb25d7f progress
ellis <ellis@rwest.io>
parents: 100
diff changeset
20
   ((table :initarg :table :type hash-table :accessor rdb-opts-table)
db52ddb25d7f progress
ellis <ellis@rwest.io>
parents: 100
diff changeset
21
    (sap :initarg :sap :type (or null alien) :accessor rdb-opts-sap)))
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
22
 
112
430e69339ac3 fixed rdb tests
ellis <ellis@rwest.io>
parents: 111
diff changeset
23
 (defmethod initialize-instance ((self rdb-opts) &rest initargs &key &allow-other-keys)
102
db52ddb25d7f progress
ellis <ellis@rwest.io>
parents: 100
diff changeset
24
   (with-slots (sap table) self
db52ddb25d7f progress
ellis <ellis@rwest.io>
parents: 100
diff changeset
25
     (unless (getf initargs :table) (setf table (make-hash-table :test #'equal)))
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
26
     (unless (getf initargs :sap) (setf sap (rocksdb-options-create)))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
27
     (loop for (k v) on initargs by #'cddr while v
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
28
           do (let ((k (typecase k
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
29
                         (string (string-downcase k))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
30
                         (symbol (string-downcase (symbol-name k)))
102
db52ddb25d7f progress
ellis <ellis@rwest.io>
parents: 100
diff changeset
31
                         (t (string-downcase (format nil "~s" k))))))
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
32
                (set-opt self k v)))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
33
     self))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
34
 
99
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 97
diff changeset
35
 (defun make-rdb-opts (&rest values)
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 97
diff changeset
36
   (apply #'make-instance 'rdb-opts values))
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 97
diff changeset
37
 
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
38
 (defmethod get-opt ((self rdb-opts) key)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
39
   "Return the current value of KEY in SELF if found, else return nil."
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
40
   (gethash key (rdb-opts-table self)))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
41
 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
42
 (defmethod set-opt ((self rdb-opts) key val &key push)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
43
   "Set the VAL of KEY in SELF with '(setf (gethash SELF KEY) VAL)'."
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
44
   (prog1
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
45
       (setf (gethash key (rdb-opts-table self)) val)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
46
     (when push (push-sap self key))))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
47
 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
48
 (defmethod push-sap ((self rdb-opts) key)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
49
   "Push KEY from slot :TABLE to the instance :SAP."
102
db52ddb25d7f progress
ellis <ellis@rwest.io>
parents: 100
diff changeset
50
   (%set-rocksdb-option (rdb-opts-sap self) key (get-opt self key)))
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
51
   
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
52
 (defmethod push-sap* ((self rdb-opts))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
53
   "Initialized the SAP slot with values from TABLE."
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
54
   (with-slots (table) self
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
55
     (loop for k across (hash-table-keys table)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
56
           do (push-sap self k))))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
57
 
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
58
 (defun default-rdb-opts () 
112
430e69339ac3 fixed rdb tests
ellis <ellis@rwest.io>
parents: 111
diff changeset
59
   (make-rdb-opts :create-if-missing t))
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
60
 
97
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
61
 ;;; bytes
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
62
 (defclass rdb-bytes (sequence)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
63
     ((buffer :initarg :buffer :type (array unsigned-byte) :accessor rdb-bytes-buffer))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
64
   (:documentation "RDB unsigned-byte array. Implements the iterator protocol."))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
65
 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
66
 (defmethod sequence:length ((self rdb-bytes))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
67
   (length (rdb-bytes-buffer self)))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
68
 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
69
 (defmethod sequence:elt ((self rdb-bytes) index)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
70
   (elt (rdb-bytes-buffer self) index))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
71
 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
72
 (defmethod sequence:make-sequence-like ((self rdb-bytes) length &key initial-element initial-contents)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
73
   (let ((res (make-instance 'rdb-bytes)))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
74
     (cond 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
75
       ((and initial-element initial-contents) (error "supplied both ~S and ~S to ~S" :initial-element :initial-contents 'make-sequence-like))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
76
       (initial-element (setf (rdb-bytes-buffer res) (make-array length :element-type (array-element-type self)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
77
                                                                        :initial-element initial-element)))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
78
       (initial-contents (setf (rdb-bytes-buffer res) (make-array length :element-type (array-element-type self)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
79
                                                                        :initial-contents initial-contents)))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
80
       (t (setf (rdb-bytes-buffer res) (make-array length :element-type (array-element-type self)))))))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
81
 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
82
 ;; (sequence:make-sequence-iterator (make-instance 'rdb-bytes :buffer (vector 1 2 3)))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
83
 (defmethod sequence:make-sequence-iterator ((self rdb-bytes) &key from-end start end)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
84
   (sequence:make-sequence-iterator (rdb-bytes-buffer self) :from-end from-end :start start :end end))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
85
 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
86
 ;; (defmethod sequence:subseq ((self rdb-bytes) start &optional end))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
87
 ;; (defmethod sequence:concatenate ((self rdb-bytes) &rest sequences))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
88
 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
89
 (defclass rdb-val (rdb-bytes)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
90
   ()
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
91
   (:documentation "RDB value protocol.
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
92
 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
93
 Values must be able to be encoded to and from (array unsigned-byte)."))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
94
 
97
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
95
 (defun make-rdb-val (val)
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
96
   "Convert VAL to an object of type RDB-VAL."
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
97
   (make-instance 'rdb-val :buffer val))
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
98
 
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
99
 (defclass rdb-key (rdb-bytes)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
100
   ()
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
101
   (:documentation "RDB key protocol.
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
102
 
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
103
 Keys must be able to be encoded to and from (array unsigned-byte)."))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
104
 
97
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
105
 (defun make-rdb-key (key)
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
106
   "Convert KEY to an object of type RDB-KEY."
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
107
   (make-instance 'rdb-key :buffer key))
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
108
 
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
109
 (defclass rdb-kv (rdb-bytes)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
110
   ((key :initarg :key :type rdb-key)
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
111
    (val :initarg :val :type rdb-val)))
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
112
 
97
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
113
 (defun make-rdb-kv (key val)
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
114
   "Generate a new RDB-KV pair."
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
115
   (make-instance 'rdb-kv 
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
116
     :key (make-rdb-key key) 
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
117
     :val (make-rdb-val val)))
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
118
 
97
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
119
 ;;; rdb-cf
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
120
 (defstruct rdb-cf
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
121
   "RDB Column Family structure. Contains a name, a cons of (rdb-key-type
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
122
 . rdb-val-type), and a system-area-pointer to the underlying
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
123
 rocksdb_cf_t handle."
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
124
   (name "" :type string)
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
125
   (kv (make-instance 'rdb-kv) :type rdb-kv)
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
126
   (sap nil :type (or null alien)))
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
127
 
110
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 102
diff changeset
128
 ;; TODO: fix
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
129
 (defun create-cf (db cf)
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
130
   (setf (rdb-cf-sap cf)
111
2aec94d6a480 rdb fixes
ellis <ellis@rwest.io>
parents: 110
diff changeset
131
         (create-cf-raw db (rdb-cf-name cf))))
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
132
 
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
133
 ;;; rdb
111
2aec94d6a480 rdb fixes
ellis <ellis@rwest.io>
parents: 110
diff changeset
134
 (defstruct rdb
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
135
   (name "" :type string)
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
136
   (opts (default-rdb-opts) :type rdb-opts)
100
9c535e6b3d99 getting closer
ellis <ellis@rwest.io>
parents: 99
diff changeset
137
   (cfs (make-array 0 :element-type 'rdb-cf :adjustable t :fill-pointer 0) :type (array rdb-cf))
9c535e6b3d99 getting closer
ellis <ellis@rwest.io>
parents: 99
diff changeset
138
   (db nil :type (or null alien)))
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
139
 
112
430e69339ac3 fixed rdb tests
ellis <ellis@rwest.io>
parents: 111
diff changeset
140
 (defun create-db (name &key opts cfs)
100
9c535e6b3d99 getting closer
ellis <ellis@rwest.io>
parents: 99
diff changeset
141
   "Construct a new RDB instance from NAME and optional OPTS and DB-PTR."
112
430e69339ac3 fixed rdb tests
ellis <ellis@rwest.io>
parents: 111
diff changeset
142
   (make-rdb :name name 
430e69339ac3 fixed rdb tests
ellis <ellis@rwest.io>
parents: 111
diff changeset
143
             :opts (or opts (default-rdb-opts))
430e69339ac3 fixed rdb tests
ellis <ellis@rwest.io>
parents: 111
diff changeset
144
             :cfs (or cfs (make-array 0 :element-type 'rdb-cf :adjustable t :fill-pointer 0))
430e69339ac3 fixed rdb tests
ellis <ellis@rwest.io>
parents: 111
diff changeset
145
             :db (open-db-raw name (if opts (rdb-opts-sap opts) (default-rocksdb-options)))))
99
40d91ba5a115 rdb stuff
ellis <ellis@rwest.io>
parents: 97
diff changeset
146
 
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
147
 (defmethod push-cf ((cf rdb-cf) (db rdb))
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
148
   (vector-push cf (rdb-cfs db)))
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
149
 
111
2aec94d6a480 rdb fixes
ellis <ellis@rwest.io>
parents: 110
diff changeset
150
 ;; (defmethod open-db ((self rdb) (opts rdb-opts))
2aec94d6a480 rdb fixes
ellis <ellis@rwest.io>
parents: 110
diff changeset
151
 ;;   (open-db-raw (rdb-name self) (rdb-opts-sap opts)))
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
152
 
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
153
 (defmethod close-db ((self rdb))  
112
430e69339ac3 fixed rdb tests
ellis <ellis@rwest.io>
parents: 111
diff changeset
154
   (with-slots (db) self
430e69339ac3 fixed rdb tests
ellis <ellis@rwest.io>
parents: 111
diff changeset
155
     (close-db-raw db)
430e69339ac3 fixed rdb tests
ellis <ellis@rwest.io>
parents: 111
diff changeset
156
     (setf db nil)))
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
157
 
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
158
 (defmethod destroy-db ((self rdb))  
97
cc8100641c10 more rdb errptr manging
ellis <ellis@rwest.io>
parents: 95
diff changeset
159
   (when (rdb-db self) (close-db self))
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
160
   (destroy-db-raw (rdb-name self)))
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
161
 
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
162
 (defmethod init-db ((self rdb))
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
163
   (loop for cf across (rdb-cfs self)
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
164
         do (create-cf (rdb-db self) cf)))
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
165
 
94
01051403700f rdb work
ellis <ellis@rwest.io>
parents: 93
diff changeset
166
 (defmethod insert-key ((self rdb) key val &key cf)
93
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
167
   (if cf
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
168
     (put-cf-raw
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
169
      (rdb-db self)
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
170
      (rdb-cf-sap (find cf (rdb-cfs self) :key #'rdb-cf-name :test #'equal))
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
171
      key
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
172
      val)
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
173
     (put-kv-raw
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
174
      (rdb-db self)
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
175
      key 
17b6d1f39506 rdb refactor, skel stuff
ellis <ellis@rwest.io>
parents:
diff changeset
176
      val)))