// SetPrefixExtractor sets the prefic extractor. // // If set, use the specified function to determine the // prefixes for keys. These prefixes will be placed in the filter. // Depending on the workload, this can reduce the number of read-IOP // cost for scans when a prefix is passed via ReadOptions to // db.NewIterator(). // Default: nil func (opts *Options) SetPrefixExtractor(value SliceTransform) { if nst, ok := value.(nativeSliceTransform); ok { opts.cst = nst.c } else { idx := registerSliceTransform(value) opts.cst = C.gorocksdb_slicetransform_create(C.uintptr_t(idx)) } C.rocksdb_options_set_prefix_extractor(opts.c, opts.cst) }
// If set, use the specified function to determine the // prefixes for keys. These prefixes will be placed in the filter. // Depending on the workload, this can reduce the number of read-IOP // cost for scans when a prefix is passed via ReadOptions to // db.NewIterator(). // Default: nil func (self *Options) SetPrefixExtractor(value SliceTransform) { if nst, ok := value.(nativeSliceTransform); ok { self.cst = nst.c } else { h := unsafe.Pointer(&value) self.st = &value self.cst = C.gorocksdb_slicetransform_create(h) } C.rocksdb_options_set_prefix_extractor(self.c, self.cst) }