hofmockel
44cd1978af
Make tests python3 ready
2014-01-26 10:45:36 +01:00
hofmockel
41fc293cb8
Better error reporting for a python prefix extractor
2014-01-26 10:45:06 +01:00
hofmockel
f16932b325
Small code reformat
2014-01-26 09:49:07 +01:00
hofmockel
0dca8c379e
Better error reporting in python filter policy
2014-01-26 09:47:04 +01:00
hofmockel
9133c81f9e
Get rid of the second context, not needed it is always the same
2014-01-24 17:18:29 +01:00
hofmockel
a83a15e1a8
Better error reporting in python comparators
...
* Written to the rocksdb log-file
* raise an exception back to rocksdb
2014-01-24 17:11:41 +01:00
hofmockel
b600d3371f
Get access to the dedicated logger of a DB
2014-01-24 17:06:26 +01:00
hofmockel
43a6997362
Fix deadlock on shutdown by releasing the GIL during del
...
On delete rocksdb waits for the background thread to finish.
However the background threads needs the GIL to execute python-code
(for example comparator)
=>
* main thread has GIL
* main thread waits for background thread
* background thread tries to get GIL
which means deadlock
2014-01-24 17:03:14 +01:00
hofmockel
c8b92d5adb
Fore future use, prevent options beeing shared with other DB objects
...
For better logging I'm going to inject the rocksdb info_logger into the C++ Wrapper classes
=> The classes on the options object have a member to a DB specific logger
=> This c++ classes can only belong to a SINGLE db
=> For simplicity make this requirement also for the options object itself
2014-01-23 08:53:14 +01:00
hofmockel
a4c93f7144
__dealloc__ is also called if __cinit__ raises, be more robust in freeing
2014-01-23 08:34:26 +01:00
hofmockel
6ad545cea0
Fix possible crash if snapshot and DB take part in cyclic gargabe collection
...
The cyclic garbage collector may choose this snappshot object to break the
cycle. In that case tp_clear will remove the reference to self.db.
So if __dealloc__ of the snapshot is called, self.db is not valid anymore
2014-01-23 08:10:51 +01:00
hofmockel
a1cb7f9efc
Raise error if offset+size is too big
2014-01-21 17:34:01 +01:00
hofmockel
36eb7024d3
Make 'prefix_extractor' active
2014-01-21 17:26:30 +01:00
hofmockel
6f452968bc
PySliceTransfrom to bridge python and c++
2014-01-21 13:15:26 +01:00
hofmockel
40c87ae7ed
C callbacks to C++ for wrapping SliceTransfrom
2014-01-21 13:15:26 +01:00
hofmockel
c7d192128b
Call it.Prev() without the GIL
2014-01-19 13:45:02 +01:00
hofmockel
ccfa2b522e
Iterator notifies errors via 'it.status()'
2014-01-19 13:41:49 +01:00
hofmockel
0d20a2564a
Prevent crash if python code is executed in a rocksdb background thread
2014-01-19 12:35:36 +01:00
hofmockel
ecb6e26546
Release the GIL if calls into rocksdb are made
2014-01-18 12:24:49 +01:00
hofmockel
86e6aef6cb
Tag all the C++ functions with nogil and except+
2014-01-17 20:06:17 +01:00
hofmockel
79e8f5da8c
Use bytes for the internal representation of a WriteBatch
2014-01-17 07:39:33 +01:00
hofmockel
38f9c6b57f
Fix import to support python3
2014-01-16 21:33:37 +01:00
hofmockel
7d61b63b79
Separate strictly between bytes/unicode
...
which makes py3 support possible
2014-01-16 21:32:00 +01:00
hofmockel
6277f9ab5c
Support unicode objects for paths
...
Use sys.getfilesystemencoding() for encoding
2014-01-16 08:51:01 +01:00
hofmockel
b4fb12589d
Fix refcount error and use cythons <bytes> to convert a python object to char*
2014-01-15 09:53:27 +01:00
hofmockel
77c384b6b0
Initial commit of the driver
2014-01-13 19:52:22 +01:00