Commit Graph

39 Commits

Author SHA1 Message Date
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
A.J. Beamon d5357d2439 Update all of the bindings to use the new C API and deprecate or remove unneeded parts of their APIs. 2018-10-02 15:28:46 -07:00
Jay Kominek fb33412b3a use inspect.getfullargspec when available
getargspec was deprecated in python3, this should use
getfullargspec when available, and degrade gracefully
otherwise.
2018-06-08 01:07:18 -06:00
Alec Grieser 0bae9880f1 remove trailing whitespace from our copyright headers ; fixed formatting of python setup.py 2018-02-21 10:25:11 -08:00
Alec Grieser e104c21160 tweaks to fix some places where python format rewrite looked kind of bad 2018-02-07 16:59:59 -08:00
Alec Grieser 57986cfe00 format python files to be roughtly pep8 compliant 2018-01-24 19:06:58 -08:00
FDB Dev Team a674cb4ef4 Initial repository commit 2017-05-25 13:48:44 -07:00