// Store ... func (db *Database) Store(key, value []byte) (err error) { res := C.unqlite_kv_store(db.handle, unsafe.Pointer(&key[0]), C.int(len(key)), unsafe.Pointer(&value[0]), C.unqlite_int64(len(value))) if res == C.UNQLITE_OK { return nil } return UnQLiteError(res) }
// Append ... func (db *Database) Append(key, value []byte) (err error) { res := C.unqlite_kv_append(db.handle, unsafe.Pointer(&key[0]), C.int(len(key)), unsafe.Pointer(&value[0]), C.unqlite_int64(len(value))) if res != C.UNQLITE_OK { err = UnQLiteError(res) } return }
func (u *Unqlite) KvFetch(key, value []byte) ([]byte, error) { outlen := C.unqlite_int64(len(value)) e := C.unqlite_kv_fetch(u.db, unsafe.Pointer(&key[0]), C.int(len(key)), unsafe.Pointer(&value[0]), &outlen) err := code2Error(e) n := int(outlen) if n <= 0 { return nil, err } return value[:n], err }
// K-V store func (u *Unqlite) KvStore(key, value []byte) error { var k, v unsafe.Pointer if len(key) > 0 { k = unsafe.Pointer(&key[0]) } if len(value) > 0 { v = unsafe.Pointer(&value[0]) } e := C.unqlite_kv_store(u.db, k, C.int(len(key)), v, C.unqlite_int64(len(value))) return code2Error(e) }
//get data from the cursor, data can be nil func (c *Cursor) Data(data []byte) ([]byte, error) { var v unsafe.Pointer outlen := C.unqlite_int64(len(data)) if outlen == 0 { e := C.unqlite_kv_cursor_data(c.c, nil, &outlen) if e != C.UNQLITE_OK { return nil, code2Error(e) } data = make([]byte, outlen) } v = unsafe.Pointer(&data[0]) e := C.unqlite_kv_cursor_data(c.c, v, &outlen) if e != C.UNQLITE_OK { return nil, code2Error(e) } return data[:outlen], code2Error(e) }
// KvStore write a new record into the database. If the record does not exists, it is created. Otherwise, the new data chunk is appended to the end of the old chunk. // See: http://unqlite.org/c_api/unqlite_kv_append.html func (u *Unqlite) KvAppend(key []byte, value []byte) error { if rc := C.unqlite_kv_append(u.db, unsafe.Pointer(&key[0]), C.int(len(key)), unsafe.Pointer(&value[0]), C.unqlite_int64(len(value))); rc != C.UNQLITE_OK { return ErrCode(rc) } return nil }
// Append appends value to the key-value pair in the database. func (h *Handle) Append(key, value []byte) error { rv := C.unqlite_kv_append(h.db, unsafe.Pointer(&key[0]), C.int(len(key)), unsafe.Pointer(&value[0]), C.unqlite_int64(len(value))) if rv == C.UNQLITE_OK { return nil } return Errno(rv) }
func (c *Context) Int64(i64 int64) error { e := C.unqlite_result_int64(c.c, C.unqlite_int64(i64)) return code2Error(e) }
func (v *Value) Int64(i64 int64) error { e := C.unqlite_value_int64(v.v, C.unqlite_int64(i64)) return code2Error(e) }