Commit Graph

56 Commits

Author SHA1 Message Date
A.J. Beamon ed9acd550e Properly generate operations with the _TENANT suffix.
Add atomic op functions to the tenant object in Python.
Fix a Python tester bug for tenant operations.
Fix a build error with the binding tester package.
2022-11-30 15:30:10 -08:00
Lukas Molleman 3bf017d59a C:/Program Files/Git/bindings/python/fdb/ Applied flake8 2022-11-09 20:43:43 +01:00
Junhyun Shim 2e51a110f2 Fix Python binding's fdb_c lookup
All python documentations indicate you shouldn't put prefixes like 'lib' or
suffixes like '.so', '.dll', or '.dylib' in argument to ctypes.util.find_library(),
unlike ctypes.CDLL() which demands an exact file name.
I suppose this case hasn't been tested.
2022-09-20 22:47:04 +02:00
Jon Fu c683795f6b add python bindings and revise test code 2022-04-13 14:20:24 -04:00
Aaron Molitor cbaef8f03b update version to 7.2.0 2022-04-11 23:23:27 -05:00
A.J. Beamon b4cfcc10d3 Move Python tenant management to its own module 2022-03-25 11:36:35 -07:00
A.J. Beamon 77ce0f4fc7 Add a unit test in Python to exercise some of the tenant code. Add some comments to the allocate and delete tenant implementations. 2022-03-23 15:50:06 -07:00
A.J. Beamon 8b92d3fccd Use special keys to create/delete tenants 2022-03-23 14:46:56 -07:00
Jon Fu 8e848f16df Support tuples in python tenants 2022-03-23 14:46:55 -07:00
A.J. Beamon ce03f5783d Add tenant support to Python 2022-03-23 14:46:55 -07:00
Ray Jenkins 9e1fd3cee5 Add comment about python thread API not necessarily setting underlying OS thread name. 2022-01-26 12:36:37 -06:00
Ray Jenkins 95d4497e2b Add python binding network thread name. 2022-01-25 13:20:31 -06:00
Jingyu Zhou 3ce31cb347 Upgrade api version from 700 to 710 2021-05-05 21:15:00 -07:00
A.J. Beamon 4a1a55f270 Remove fdb_get_server_protocol from the Python bindings. This C function this was using recently moved and changed signature, so it no longer works in Python. 2021-04-16 13:48:44 -07:00
Richard Chen b4ea82435c fix typo in python 2020-12-07 00:18:22 +00:00
Richard Chen 90caa24af1 add function to get correct checksum class. Remove IChecksum::checkSum function 2020-10-23 02:24:29 +00:00
Richard Chen a4ccf8c5b6 add checksum class to change checksum in the future. expose get server protocol api 2020-10-19 16:57:11 +00:00
Xin Dong e108f041a0 Version the behavior change of existing API so that new behavior only happen after 7.0 2020-09-16 09:43:57 -07:00
Xin Dong acdf04ed18 Make sure Python and Ruby does null check 2020-09-15 14:09:53 -07:00
Xin Dong 13c9dc6e37 Forgot to update local variables 2020-09-11 16:57:00 -07:00
Xin Dong 0282a1745a Address more review comments 2020-09-11 16:44:09 -07:00
Xin Dong 1b923477f7
Apply suggestions from code review
Co-authored-by: A.J. Beamon <ajbeamon@users.noreply.github.com>
2020-09-11 14:28:56 -07:00
Xin Dong 440630a0cb Added bindings supports 2020-07-02 14:05:11 -07:00
Balachandar Namasivayam a167bf344e Update api version to 700 2020-05-28 12:16:03 -07:00
Alex Miller ffc36dcf45 7.0 became 6.3, so change API versions accordingly 2020-05-11 11:53:34 -07:00
Alex Miller 7b87cc3f88 Merge remote-tracking branch 'upstream/release-6.3' into pyfdbgenerators 2020-05-11 11:11:10 -07:00
Dave Cottlehuber f46d452f38 bindings:update python 2020-04-30 18:11:23 +00:00
Xin Dong 5876d694cb Use snake case to be consistent with conventions 2020-03-24 13:26:59 -07:00
Xin Dong 2e1d03cbe7 Addressed AJ's review comments 2020-02-12 14:57:40 -08:00
Xin Dong d20ce99774 Resolved the review comment and renamed the functions 2020-02-12 14:57:40 -08:00
Xin Dong 85c10d13a5 Exposed the byte sample function to the following bindings:
- Flow
- Java
- Go [ needs verify ]
- Python [ needs verify ]
- Ruby [ needs verify ]
2020-02-12 14:57:40 -08:00
Alex Miller 4ceae8c83a Ban generators in 7.0.0 2020-01-23 16:40:14 -08:00
Alex Miller 62baf6d121 Merge remote-tracking branch 'upstream/master' into pyfdbgenerators 2020-01-22 18:05:05 -08:00
Jingyu Zhou 14cb21285f Remove futureGetVersion in C binding and FutureVersion in Python binding 2019-07-16 10:46:07 -07:00
Jingyu Zhou 2dcc3cfd0a Deprecate fdb_future_get_version for version 620
Use fdb_future_get_int64 in all bindings.
2019-07-11 21:17:31 -07:00
Jingyu Zhou b2a89c8b77 Address review comments for PR #1756
Use fdb_future_get_int64 for language bindings and get rid of using Version
with getApproximateSize API.
2019-07-11 16:41:29 -07:00
Jingyu Zhou 5d1437c8e0 Push int directly to stack for getApproximateSize 2019-07-10 15:00:50 -07:00
Jingyu Zhou 8ef8b59fcc Use ThreadFuture for getApproximateSize
Change return type to int64_t and fix C and Python binding to use the correct
type.
2019-07-10 14:58:07 -07:00
Jingyu Zhou c91e712576 Add Python txn get_approximate_size API and test 2019-07-10 14:57:39 -07:00
Alex Miller 40b290b7de If `func` throws, then `ret` will never be assigned, and accessed later.
Thus we now initiailize it with None so that it will always have a
value.
2019-06-27 18:57:58 -07:00
Alex Miller e8f994965d python: Post-API Version 620, @fdb.transactional on a generator will throw.
Previously, writing code like

    @fdb.transactional
    def foo(tr):
      yield tr.get('a')
      yield tr.get('b')

    print(foo(db))

was accepted by the python bindings, but had surprising semantics.  The
function returned by @fdb.transactional opens a transaction, runs foo(),
commits the transaction, and then returns the generator returned by foo().
This generator then uses the committed transaction.  This worked before API
version 410 (FDB 4.1), and hasn't worked since.  This will also be a problem if
a closure is returned from foo() that contains `tr`, but it's much harder to
check that in Python.

Rather than allow users to hit an unexpected and mysterious "Operation issued
while a commit was outstanding" exception, it's nicer to explicitly highlight
this problem as soon as we can.  Unfortunately, we have no way to know that a
function will return a generator until we call it, so that's the soonest we can
give a more informative error.
2019-06-19 01:38:35 -07:00
Chris Donati f1331dbac6 Improve Python KeySelector representation
Python 2 resolves escape characters when printing byte strings,
which doesn't seem useful in this context.

I replaced __str__ since it defaults to __repr__ and the change
should be suitable for both cases.
2019-03-31 11:54:36 -07:00
A.J. Beamon 32b3c2ad69 Add comment for the code where we replace the semaphore in the exception handler 2019-02-11 10:35:29 -08:00
A.J. Beamon 5bf7e72fc5 If the semaphore acquire is interrupted (e.g. by a signal), then replace it with a new one so that subsequent futures will still work. 2019-02-11 10:22:19 -08:00
A.J. Beamon 8960670694 Python now blocks on a future in Python rather than in native code to preserve Python's signal handling functionality. In particular, this means that ctrl-c will work in the REPL. 2019-02-08 13:51:01 -08:00
A.J. Beamon ec995ebef0 _CBFUNC should be defined outside init_c_api, both because it doesn't depend on the C API and because it is used elsewhere and wasn't available globally as previously written 2019-01-25 11:32:49 -08:00
A.J. Beamon 401f8a6774 Python and Ruby bindings displayed an unhelpful error if trying to load an old incompatible fdb_c with a new binding. 2019-01-14 10:41:54 -08:00
A.J. Beamon bfa97d7ff2 Address review comments 2019-01-10 12:28:14 -08:00
A.J. Beamon 890a0f3e82 Merge branch 'master' into remove-cluster-from-bindings
# Conflicts:
#	bindings/flow/fdb_flow.actor.cpp
2018-11-26 12:01:03 -08:00
A.J. Beamon a2630a68a6 We can't use async as a variable name in python 3.7 because it's now a keyword. Support gevent's new 'async_' name. 2018-10-09 09:51:04 -07:00