Commit Graph

86 Commits

Author SHA1 Message Date
Susan LoVerso
6f78c3d431 Ignore __wt_lsn in language interfaces. #1106 2014-07-15 15:49:55 -04:00
Susan LoVerso
af428ba90c Revert languages to using lang_private. 2014-05-28 11:02:10 -04:00
Alex Gorrod
c904ad189f Add an app_private field to the WT_ASYNC_OP handle. 2014-05-28 15:14:14 +10:00
Susan LoVerso
82bb27627b Expose the private field with a macro. 2014-05-27 13:07:06 -04:00
Michael Cahill
151f14dace Merge branch 'develop' into json-dump
Conflicts:
	src/cursor/cur_std.c
	src/include/cursor.h
	src/include/packing.i
2014-05-08 14:33:51 +10:00
Michael Cahill
f146b172b0 Fix handling of raw cursors in the async API: always go through the {get,set}_raw calls, don't access key/value buffers directly. 2014-05-02 16:00:04 +10:00
Don Anderson
10b45b8a73 Python for async:
- Various fixes to allow test_async01.py to work for string key/value.
- Hand rolled AsyncCallback class to mirror C's WT_ASYNC_CALLBACK.
- Keep the async callback in the PY_CALLBACK struct hidden in cursor's
  lang_private.
- Some cleanups in writeToPythonStream(), including fixing
  potential race condition.

Java for async:
- Modified Java SWIG interfaces for async enough to allow it compile.
- Standardized class spelling to 'AsyncOp'.
- Removed a few non-applicable methods from AsyncOp.
2014-05-01 13:13:47 -04:00
Susan LoVerso
4f55f15433 Add pyApiAsyncCallback definition. 2014-04-23 09:58:03 -04:00
Susan LoVerso
1d079a8d36 Add ENOMEM_OK for async_new_op. 2014-04-22 19:50:19 -04:00
Don Anderson
9028dc71a0 Use dump=json as config option for json cursor.
Changed name of cursor flag to reflect that.  refs #740.
2014-04-15 19:44:50 -04:00
Don Anderson
02b44c7e27 Changed json cursor to behave more like other dump cursors, returning
a const char *.  Refactor wt dump code to make integration tighter.
refs #740.
2014-04-15 14:02:32 -04:00
Don Anderson
9cda73d9b2 Add 'json' config option to cursor, to create JSON output.
Supports using 'json' with index cursors as well as tables.
New 'wt jsondump' utility that uses json cursors.  refs #740.
2014-04-09 16:21:55 -04:00
Susan LoVerso
569be29173 Use an underlying cursor for async op keys/values. 2014-04-09 14:25:51 -04:00
Susan LoVerso
ca14ca7764 Merge branch 'async' of github.com:wiredtiger/wiredtiger into async 2014-04-07 15:32:28 -04:00
Susan LoVerso
733cf25bc9 Add the uri/config/format cached queue for async ops. 2014-04-07 15:31:14 -04:00
Michael Cahill
5cba38f382 Merge branch 'develop' into async
Conflicts:
	src/include/extern.h
	src/include/wiredtiger.in
2014-04-07 15:39:23 +10:00
Susan LoVerso
f4d482a234 Python fixes. 2014-04-03 15:04:36 -04:00
Susan LoVerso
7a64629447 Add python functions. Fix warning. 2014-04-03 14:08:02 -04:00
Susan LoVerso
f61cc053b0 Add async_op config processing. 2014-04-03 13:42:04 -04:00
Alex Gorrod
c93b75875b Fix include paths for Java and Python builds.
This means that Java and Python builds work from the root
(or arbitrary) directories again.
2014-03-31 13:03:53 +11:00
Susan LoVerso
3c802c3ac5 Add some python support 2014-03-27 16:19:17 -04:00
Don Anderson
80404edbaf In python, flush during callbacks to wrute to sys streams. refs #883. 2014-03-03 13:38:43 -05:00
Michael Cahill
c6ef3c5eda whitespace 2014-01-20 15:33:21 +11:00
Alex Gorrod
9eebe8b7ff Fix bug in Python SWIG layer.
The Python interpreter can shut down threading before we are finished with
it unless an explicit lock is taken.

See:
http://stackoverflow.com/questions/12178897/swig-crashes-python
2014-01-15 22:18:30 +11:00
Keith Bostic
5b509b7220 Update copyright notices for 2014.
Move lang/java and lang/python into the public domain.
2014-01-07 10:30:12 -05:00
Don Anderson
67e7b1c79d Using a closed {Cursor,Session,Connection} handle in Python
will not crash the VM on use. ref #485

Uses the event callback for close to give notification on close
of a handle.  For explicit calls to close(), we set the SWIG 'this'
attribute on the containing object to None.

On uses of a handle as an input argument, we check to see if it is
None, or if its 'this' attribute is None, and issue the
appropriate exception.

Includes a set of test cases that parallel Java test cases for the same.
2013-12-10 13:27:09 -05:00
Michael Cahill
f23871f394 Switch log_printf to use a log record in the same format as transactional operations, update "wt printlog" to print all log record types.
refs #605
2013-11-21 17:26:48 +11:00
Don Anderson
ab49b06be4 Use the event handler to capture stderr, stdout.
Cleaned up test suite infrastructure a bit using this.
Any verbose messages from the infrastructure itself do not get captured.
refs #649

test_reconfig.py needed special treatment.  Verbose output from
threads is not necessarily flushed until the connection is closed;
we reopen the connection to force the flush so that the test should
pass on all platforms.
refs #698
2013-10-24 11:08:37 -04:00
Alex Gorrod
99ee0bd6f9 Remove Python custom error and message callback implementations.
They cause problems with the Python test suite.
2013-08-28 10:13:26 +00:00
Alex Gorrod
22214b382c Merge branch 'develop' into java-auto-close 2013-08-15 18:43:39 +10:00
Michael Cahill
a37f94d337 Move pack/unpack methods into the extension API, because extensions shouldn't link with the WiredTiger library.
While in the area, make doxygen comment formatting consistent: block comments should have a blank first line.
2013-04-22 17:41:34 +10:00
Michael Cahill
9a74a794a7 Change the extension function names to "init" and "terminate" so that API changes are caught at compile time. 2013-04-19 17:11:21 +10:00
Keith Bostic
3f5f248803 Add an extension "unload" entry point, configured with "unload" and with
a default of wiredtiger_extension_unload.

Rename "entry" load extension entry point to be "load", rename the default
from wiredtiger_extension_init to wiredtiger_extension_load, to match.
2013-04-18 08:44:08 -04:00
Keith Bostic
ce9c3de74b Remove WT_EXTENSION_CONFIG, export WT_CONFIG_ITEM instead. 2013-04-17 13:46:43 -04:00
Keith Bostic
08c982ad15 Replace wiredtiger_extension_api() with WT_CONNECTION.get_extension_api.
Pass the wiredtiger_extension_init function a (WT_CONNECTION *) instead
of a (WT_SESSION *, WT_EXTENSION_API) pair.
2013-04-17 11:02:54 -04:00
Alex Gorrod
9f32a8755c Add implementation for close callbacks. Add event callbacks to Python.
This breaks the test suite - since it is playing tricks to capture a
weird output stream, due to not implementing the event callbacks.
2013-04-17 12:01:27 +10:00
Keith Bostic
9889288775 Make WiredTiger extension functions available to linked-in modules via
a new function wiredtiger_extension_api(WT_EXTENSION_API **pp).

Write some WT_EXTENSION_API documentation.

Remove WT_SESSION::msg_printf, add a new msg_printf extension function
instead, convert test/format to use it.

Quit using __UNUSED in the extension code, use explicit (void) casting,
it's cleaner.
2013-04-09 13:12:36 -04:00
Michael Cahill
6234ba40fc Improvements for the Java API documentation: create a Java API module, link to class documentation and wiredtiger_open documentation. 2013-02-25 16:13:39 +11:00
Keith Bostic
963d37a4e6 Update copyright notice to 2013. 2013-01-01 09:45:50 +00:00
Michael Cahill
3bdf27747a Add a "size of checkpoint" statistic.
Merge statistics from file and LSM sources into a "data source" statistic structure.  Rename and regroup some shared stastistics.  Make statistics constant names upper case.  Add a helper to the Python API to lookup in a cursor in a simple expression.
closes #232
2012-11-16 21:02:27 +11:00
Michael Cahill
439f1213d6 Switch the Python API to not allocate objects explicitly, and instead leave that to SWIG typemaps.
This avoids making calls into Python's C API from our methods.  The problem with that is that in SWIG "thread" mode, we are not holding the Python interpreter lock, and some Python functions (including allocation functions) expect to be single-threaded.

While in the area, prefer generic SWIG macros to Python-specific ones and avoid int returns that are used purely for error checking.

closes #374
2012-10-24 14:33:39 +11:00
Michael Cahill
ca6c9037fa Cache cursor key/value formats in Python, to save a native call from every get_key/value. 2012-10-24 14:33:39 +11:00
Keith Bostic
0c60365433 Replace cursor.equals with cursor.compare (#314) 2012-09-07 17:41:26 +00:00
Michael Cahill
e4a08ad7f6 whitespace 2012-07-30 17:08:51 +10:00
Michael Cahill
b608c27425 Fix methods that return integer parameters from Python.
This includes cursor.equals and cursor.search_near.
closes #276
2012-07-30 16:05:15 +10:00
Keith Bostic
71442cc95f Change cursor.equals to return a standard error value and store the cursor
equality result in a separate argument: close #274.

Add connection.is_new to the list of methods in the SWIG file that don't
require error handling, add a connection.is_new smoke test to the test
suite.

Add a connection.get_home smoke test to the test suite.
2012-07-28 11:56:53 +00:00
Michael Cahill
fd3a1bcc34 Determine statically in SWIG how to handle errors.
(This change requires SWIG 2.0.x for a bug fix involving interaction between
thread mode and exceptions in SWIG).
2012-07-11 13:53:51 +10:00
Michael Cahill
c4cf6417f6 Revert change to use SWIG exception in the Python API.
That relied on a bug fix in swig 2.0 (SWIG bug ID 2818499),
and we don't have SWIG 2.0 available everywhere.
reverts 2fb179afbd
2012-07-10 12:28:21 +10:00
Michael Cahill
2fb179afbd Decide statically what error handling is required. 2012-07-10 11:12:53 +10:00
Keith Bostic
80c1c05662 Change SWIG mapping to treat cursor.equals as a boolean return.
Change SWIG mapping to only support WT_NOTFOUND return from cursor methods
that search for keys.
2012-07-09 14:05:26 +00:00