func (wb *WriteBatch) PutLogData(blob []byte, size int) {
	C.rocksdb_writebatch_put_log_data(wb.c, bytesToChar(blob), C.size_t(size))
}
PutLogData appends a blob of arbitrary size to the records in this batch.
The blob will be stored in the transaction log but not in any other files.
In particular, it will not be persisted to the SST files. When iterating
over this WriteBatch, WriteBatch::Handler::LogData will be called with the contents
of the blob as it is encountered. Blobs, puts, deletes, and merges will be
encountered in the same order in which they were inserted. The blob will
NOT consume sequence number(s) and will NOT increase the count of the batch

Example application: add timestamps to the transaction log for use in
replication.
package rocksdb
import "C"
import "unsafe"
type WriteBatch struct {
	c *C.rocksdb_writebatch_t
}
func NewWriteBatch() *WriteBatch {
	return NewNativeWriteBatch(C.rocksdb_writebatch_create())
}
func NewNativeWriteBatch(c *C.rocksdb_writebatch_t) *WriteBatch {
	return &WriteBatch{c: c}
}
func WriteBatchFrom(data []byte) *WriteBatch {
	return NewNativeWriteBatch(C.rocksdb_writebatch_create_from(bytesToChar(data), C.size_t(len(data))))
}
func (wb *WriteBatch) Put(key, value []byte) {
	cKey := bytesToChar(key)
	cValue := bytesToChar(value)
	C.rocksdb_writebatch_put(wb.c, cKey, C.size_t(len(key)), cValue, C.size_t(len(value)))
}
func (wb *WriteBatch) PutCF(cf *ColumnFamilyHandle, key, value []byte) {
	cKey := bytesToChar(key)
	cValue := bytesToChar(value)
	C.rocksdb_writebatch_put_cf(wb.c, cf.c, cKey, C.size_t(len(key)), cValue, C.size_t(len(value)))
}
func (wb *WriteBatch) Delete(key []byte) {
	cKey := bytesToChar(key)
	C.rocksdb_writebatch_delete(wb.c, cKey, C.size_t(len(key)))
}
func (wb *WriteBatch) DeleteCF(cf *ColumnFamilyHandle, key []byte) {
	cKey := bytesToChar(key)
	C.rocksdb_writebatch_delete_cf(wb.c, cf.c, cKey, C.size_t(len(key)))
}
func (wb *WriteBatch) DeleteRange(beginKey, endKey []byte) {
	cBeginKey := bytesToChar(beginKey)
	cEndKey := bytesToChar(endKey)
	C.rocksdb_writebatch_delete_range(wb.c, cBeginKey, C.size_t(len(beginKey)), cEndKey, C.size_t(len(endKey)))
}
func (wb *WriteBatch) DeleteRangeCF(cf *ColumnFamilyHandle, beginKey, endKey []byte) {
	cBeginKey := bytesToChar(beginKey)
	cEndKey := bytesToChar(endKey)
	C.rocksdb_writebatch_delete_range_cf(wb.c, cf.c, cBeginKey, C.size_t(len(beginKey)), cEndKey, C.size_t(len(endKey)))
}
func (wb *WriteBatch) Merge(key, value []byte) {
	cKey := bytesToChar(key)
	cValue := bytesToChar(value)
	C.rocksdb_writebatch_merge(wb.c, cKey, C.size_t(len(key)), cValue, C.size_t(len(value)))
}
func (wb *WriteBatch) MergeCF(cf *ColumnFamilyHandle, key, value []byte) {
	cKey := bytesToChar(key)
	cValue := bytesToChar(value)
	C.rocksdb_writebatch_merge_cf(wb.c, cf.c, cKey, C.size_t(len(key)), cValue, C.size_t(len(value)))
}
func (wb *WriteBatch) Clear() {
	C.rocksdb_writebatch_clear(wb.c)
}
func (wb *WriteBatch) Count() int {
	return int(C.rocksdb_writebatch_count(wb.c))
}
func (wb *WriteBatch) Data() []byte {
	var cSize C.size_t
	cValue := C.rocksdb_writebatch_data(wb.c, &cSize)
	return charToBytes(cValue, cSize)
}