Merge pull request #147 from alecgrieser/merge-release-5.2
Merge release 5.2 into master
This commit is contained in:
commit
bf7e680a7d
|
@ -1536,7 +1536,6 @@ struct UnitTestsFunc : InstructionFunc {
|
|||
tr->setOption(FDBTransactionOption::FDB_TR_OPTION_CAUSAL_READ_RISKY);
|
||||
tr->setOption(FDBTransactionOption::FDB_TR_OPTION_CAUSAL_WRITE_RISKY);
|
||||
tr->setOption(FDBTransactionOption::FDB_TR_OPTION_READ_YOUR_WRITES_DISABLE);
|
||||
tr->setOption(FDBTransactionOption::FDB_TR_OPTION_READ_AHEAD_DISABLE);
|
||||
tr->setOption(FDBTransactionOption::FDB_TR_OPTION_READ_SYSTEM_KEYS);
|
||||
tr->setOption(FDBTransactionOption::FDB_TR_OPTION_ACCESS_SYSTEM_KEYS);
|
||||
tr->setOption(FDBTransactionOption::FDB_TR_OPTION_DURABILITY_DEV_NULL_IS_WEB_SCALE);
|
||||
|
|
|
@ -785,7 +785,6 @@ func (sm *StackMachine) processInst(idx int, inst tuple.Tuple) {
|
|||
tr.Options().SetCausalReadRisky()
|
||||
tr.Options().SetCausalWriteRisky()
|
||||
tr.Options().SetReadYourWritesDisable()
|
||||
tr.Options().SetReadAheadDisable()
|
||||
tr.Options().SetReadSystemKeys()
|
||||
tr.Options().SetAccessSystemKeys()
|
||||
tr.Options().SetDurabilityDevNullIsWebScale()
|
||||
|
|
|
@ -477,7 +477,6 @@ public class AsyncStackTester {
|
|||
tr.options().setCausalReadRisky();
|
||||
tr.options().setCausalWriteRisky();
|
||||
tr.options().setReadYourWritesDisable();
|
||||
tr.options().setReadAheadDisable();
|
||||
tr.options().setReadSystemKeys();
|
||||
tr.options().setAccessSystemKeys();
|
||||
tr.options().setDurabilityDevNullIsWebScale();
|
||||
|
|
|
@ -427,7 +427,6 @@ public class StackTester {
|
|||
tr.options().setCausalReadRisky();
|
||||
tr.options().setCausalWriteRisky();
|
||||
tr.options().setReadYourWritesDisable();
|
||||
tr.options().setReadAheadDisable();
|
||||
tr.options().setReadSystemKeys();
|
||||
tr.options().setAccessSystemKeys();
|
||||
tr.options().setDurabilityDevNullIsWebScale();
|
||||
|
|
|
@ -1,115 +0,0 @@
|
|||
/*
|
||||
* fdb.js
|
||||
*
|
||||
* This source file is part of the FoundationDB open source project
|
||||
*
|
||||
* Copyright 2013-2018 Apple Inc. and the FoundationDB project authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
"use strict";
|
||||
|
||||
var KeySelector = require('./keySelector');
|
||||
var Cluster = require('./cluster');
|
||||
var future = require('./future');
|
||||
var Transactional = require('./retryDecorator');
|
||||
var tuple = require('./tuple');
|
||||
var buffer = require('./bufferConversion');
|
||||
var fdb = require('./fdbModule');
|
||||
var FDBError = require('./error');
|
||||
var locality = require('./locality');
|
||||
var directory = require('./directory');
|
||||
var Subspace = require('./subspace');
|
||||
var selectedApiVersion = require('./apiVersion');
|
||||
|
||||
var fdbModule = {};
|
||||
|
||||
module.exports = {
|
||||
FDBError: FDBError,
|
||||
apiVersion: function(version) {
|
||||
if(selectedApiVersion.value && version !== selectedApiVersion.value)
|
||||
throw new Error('Cannot select multiple different FDB API versions');
|
||||
if(version < 500)
|
||||
throw new RangeError('FDB API versions before 500 are not supported');
|
||||
if(version > 520)
|
||||
throw new RangeError('Latest known FDB API version is 520');
|
||||
|
||||
if(!selectedApiVersion.value) {
|
||||
fdb.apiVersion(version);
|
||||
|
||||
fdbModule.FDBError = this.FDBError;
|
||||
fdbModule.KeySelector = KeySelector;
|
||||
fdbModule.future = future;
|
||||
fdbModule.transactional = Transactional;
|
||||
fdbModule.tuple = tuple;
|
||||
fdbModule.buffer = buffer;
|
||||
fdbModule.locality = locality;
|
||||
fdbModule.directory = directory.directory;
|
||||
fdbModule.DirectoryLayer = directory.DirectoryLayer;
|
||||
fdbModule.Subspace = Subspace;
|
||||
|
||||
fdbModule.options = fdb.options;
|
||||
fdbModule.streamingMode = fdb.streamingMode;
|
||||
|
||||
var dbCache = {};
|
||||
|
||||
var doInit = function() {
|
||||
fdb.startNetwork();
|
||||
|
||||
process.on('exit', function() {
|
||||
//Clearing out the caches makes memory debugging a little easier
|
||||
dbCache = null;
|
||||
|
||||
fdb.stopNetwork();
|
||||
});
|
||||
|
||||
//Subsequent calls do nothing
|
||||
doInit = function() { };
|
||||
};
|
||||
|
||||
fdbModule.init = function() {
|
||||
doInit();
|
||||
};
|
||||
|
||||
fdbModule.createCluster = function(clusterFile, cb) {
|
||||
if(!clusterFile)
|
||||
clusterFile = '';
|
||||
|
||||
return new Cluster(fdb.createCluster(clusterFile));
|
||||
};
|
||||
|
||||
fdbModule.open = function(clusterFile, cb) {
|
||||
if(clusterFile)
|
||||
fdb.options.setClusterFile(clusterFile);
|
||||
|
||||
this.init();
|
||||
|
||||
var database = dbCache[clusterFile];
|
||||
if(!database) {
|
||||
var cluster = fdbModule.createCluster(clusterFile);
|
||||
database = cluster.openDatabase();
|
||||
dbCache[clusterFile] = database;
|
||||
}
|
||||
|
||||
return database;
|
||||
};
|
||||
}
|
||||
|
||||
selectedApiVersion.value = version;
|
||||
return fdbModule;
|
||||
}
|
||||
};
|
||||
|
||||
fdb.FDBError = module.exports.FDBError;
|
|
@ -1,27 +0,0 @@
|
|||
/*
|
||||
* Version.h
|
||||
*
|
||||
* This source file is part of the FoundationDB open source project
|
||||
*
|
||||
* Copyright 2013-2018 Apple Inc. and the FoundationDB project authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef FDB_NODE_VERSION_H
|
||||
#define FDB_NODE_VERSION_H
|
||||
|
||||
#define FDB_API_VERSION 520
|
||||
|
||||
#endif
|
|
@ -1,101 +0,0 @@
|
|||
/*
|
||||
* tuple_test.js
|
||||
*
|
||||
* This source file is part of the FoundationDB open source project
|
||||
*
|
||||
* Copyright 2013-2018 Apple Inc. and the FoundationDB project authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
var fdb = require('../lib/fdb.js').apiVersion(520);
|
||||
var fdbModule = require('../lib/fdbModule.js');
|
||||
|
||||
console.log(fdb.tuple.pack([-Math.pow(2,53)]));
|
||||
console.log(fdb.tuple.pack([-Math.pow(2,53)+1]));
|
||||
|
||||
console.log(fdb.tuple.unpack(fdb.tuple.pack([-Math.pow(2,53)])));
|
||||
console.log(fdb.tuple.unpack(fdb.tuple.pack([-Math.pow(2,53)+1])));
|
||||
|
||||
try {
|
||||
console.log(fdb.tuple.unpack(fdb.buffer.fromByteLiteral('\x0d\xdf\xff\xff\xff\xff\xff\xfe')));
|
||||
}
|
||||
catch(err) {
|
||||
console.log(err);
|
||||
}
|
||||
|
||||
console.log(fdb.tuple.pack([0xff * 0xff]));
|
||||
console.log(fdb.tuple.pack([0xffffffff + 100 ]));
|
||||
console.log(fdb.buffer.printable(fdb.tuple.pack(['begin', [true, null, false], 'end'])))
|
||||
console.log(fdb.tuple.unpack(fdb.buffer.fromByteLiteral('\x1a\xff\xff\xff\xff\xff\xff')));
|
||||
console.log(fdb.tuple.unpack(fdb.tuple.pack(['TEST', 'herp', 1, -10, 393493, '\u0000abc', 0xffffffff + 100, true, false, [new Boolean(true), null, new Boolean(false), 0, 'asdf'], null])));
|
||||
console.log(fdb.buffer.printable(fdb.tuple.pack([[[[['three']]], 'two'], 'one'])))
|
||||
console.log(fdb.tuple.range(['TEST', 1]));
|
||||
console.log(fdb.buffer.printable(fdb.tuple.pack([fdb.tuple.Float.fromBytes(new Buffer('402df854', 'hex')), fdb.tuple.Double.fromBytes(new Buffer('4005BF0A8B145769', 'hex')), new fdb.tuple.UUID(new Buffer('deadc0deba5eba115ca1ab1edeadc0de', 'hex'))])))
|
||||
console.log(fdb.tuple.unpack(fdb.tuple.pack([fdb.tuple.Float.fromBytes(new Buffer('2734236f', 'hex'))])))
|
||||
|
||||
tuples = [
|
||||
[1,2],
|
||||
[1],
|
||||
[2],
|
||||
[true],
|
||||
[false],
|
||||
[1,true],
|
||||
[1,false],
|
||||
[1, []],
|
||||
[1, [null]],
|
||||
[1, [0]],
|
||||
[1, [1]],
|
||||
[1, [0,1,2]],
|
||||
[null],
|
||||
[]
|
||||
];
|
||||
tuples.sort(fdb.tuple.compare);
|
||||
console.log(tuples);
|
||||
|
||||
tuples = [
|
||||
[fdb.tuple.Float.fromBytes(new Buffer('2734236f', 'hex'))], // A really small value.
|
||||
[fdb.tuple.Float.fromBytes(new Buffer('80000000', 'hex'))], // -0.0
|
||||
[new fdb.tuple.Float(0.0)],
|
||||
[new fdb.tuple.Float(3.14)],
|
||||
[new fdb.tuple.Float(-3.14)],
|
||||
[new fdb.tuple.Float(2.7182818)],
|
||||
[new fdb.tuple.Float(-2.7182818)],
|
||||
[fdb.tuple.Float.fromBytes(new Buffer('7f800000', 'hex'))], // Infinity
|
||||
[fdb.tuple.Float.fromBytes(new Buffer('7fffffff', 'hex'))], // NaN
|
||||
[fdb.tuple.Float.fromBytes(new Buffer('ffffffff', 'hex'))], // -NaN
|
||||
];
|
||||
tuples.sort(fdb.tuple.compare);
|
||||
console.log(tuples);
|
||||
|
||||
// Float overruns.
|
||||
const floats = [ 2.037036e90, -2.037036e90, 4.9090935e-91, -4.9090935e-91, 2.345624805922133125e14, -2.345624805922133125e14 ];
|
||||
for (var i = 0; i < floats.length; i++) {
|
||||
var f = floats[i];
|
||||
console.log(f + " -> " + fdb.tuple.Float.fromBytes((new fdb.tuple.Float(f)).toBytes()).value);
|
||||
}
|
||||
|
||||
// Float type errors.
|
||||
try {
|
||||
console.log((new fdb.tuple.Float("asdf")).toBytes());
|
||||
} catch (e) {
|
||||
console.log("Caught!");
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
try {
|
||||
console.log(fdbModule.toFloat(3.14, 2.718));
|
||||
} catch (e) {
|
||||
console.log("Caught!");
|
||||
console.log(e);
|
||||
}
|
|
@ -136,7 +136,6 @@ def test_options(tr):
|
|||
tr.options.set_causal_read_risky()
|
||||
tr.options.set_causal_write_risky()
|
||||
tr.options.set_read_your_writes_disable()
|
||||
tr.options.set_read_ahead_disable()
|
||||
tr.options.set_read_system_keys()
|
||||
tr.options.set_access_system_keys()
|
||||
tr.options.set_durability_dev_null_is_web_scale()
|
||||
|
|
|
@ -460,7 +460,6 @@ class Tester
|
|||
tr.options.set_causal_read_risky
|
||||
tr.options.set_causal_write_risky
|
||||
tr.options.set_read_your_writes_disable
|
||||
tr.options.set_read_ahead_disable
|
||||
tr.options.set_read_system_keys
|
||||
tr.options.set_access_system_keys
|
||||
tr.options.set_durability_dev_null_is_web_scale
|
||||
|
|
|
@ -10,38 +10,38 @@ macOS
|
|||
|
||||
The macOS installation package is supported on macOS 10.7+. It includes the client and (optionally) the server.
|
||||
|
||||
* `FoundationDB-5.1.4.pkg <https://www.foundationdb.org/downloads/5.1.4/macOS/installers/FoundationDB-5.1.4.pkg>`_
|
||||
* `FoundationDB-5.1.5.pkg <https://www.foundationdb.org/downloads/5.1.5/macOS/installers/FoundationDB-5.1.5.pkg>`_
|
||||
|
||||
Ubuntu
|
||||
------
|
||||
|
||||
The Ubuntu packages are supported on 64-bit Ubuntu 12.04+, but beware of the Linux kernel bug in Ubuntu 12.x.
|
||||
|
||||
* `foundationdb-clients-5.1.4-1_amd64.deb <https://www.foundationdb.org/downloads/5.1.4/ubuntu/installers/foundationdb-clients_5.1.4-1_amd64.deb>`_
|
||||
* `foundationdb-server-5.1.4-1_amd64.deb <https://www.foundationdb.org/downloads/5.1.4/ubuntu/installers/foundationdb-server_5.1.4-1_amd64.deb>`_ (depends on the clients package)
|
||||
* `foundationdb-clients-5.1.5-1_amd64.deb <https://www.foundationdb.org/downloads/5.1.5/ubuntu/installers/foundationdb-clients_5.1.5-1_amd64.deb>`_
|
||||
* `foundationdb-server-5.1.5-1_amd64.deb <https://www.foundationdb.org/downloads/5.1.5/ubuntu/installers/foundationdb-server_5.1.5-1_amd64.deb>`_ (depends on the clients package)
|
||||
|
||||
RHEL/CentOS EL6
|
||||
---------------
|
||||
|
||||
The RHEL/CentOS EL6 packages are supported on 64-bit RHEL/CentOS 6.x.
|
||||
|
||||
* `foundationdb-clients-5.1.4-1.el6.x86_64.rpm <https://www.foundationdb.org/downloads/5.1.4/rhel6/installers/foundationdb-clients-5.1.4-1.el6.x86_64.rpm>`_
|
||||
* `foundationdb-server-5.1.4-1.el6.x86_64.rpm <https://www.foundationdb.org/downloads/5.1.4/rhel6/installers/foundationdb-server-5.1.4-1.el6.x86_64.rpm>`_ (depends on the clients package)
|
||||
* `foundationdb-clients-5.1.5-1.el6.x86_64.rpm <https://www.foundationdb.org/downloads/5.1.5/rhel6/installers/foundationdb-clients-5.1.5-1.el6.x86_64.rpm>`_
|
||||
* `foundationdb-server-5.1.5-1.el6.x86_64.rpm <https://www.foundationdb.org/downloads/5.1.5/rhel6/installers/foundationdb-server-5.1.5-1.el6.x86_64.rpm>`_ (depends on the clients package)
|
||||
|
||||
RHEL/CentOS EL7
|
||||
---------------
|
||||
|
||||
The RHEL/CentOS EL7 packages are supported on 64-bit RHEL/CentOS 7.x.
|
||||
|
||||
* `foundationdb-clients-5.1.4-1.el7.x86_64.rpm <https://www.foundationdb.org/downloads/5.1.4/rhel7/installers/foundationdb-clients-5.1.4-1.el7.x86_64.rpm>`_
|
||||
* `foundationdb-server-5.1.4-1.el7.x86_64.rpm <https://www.foundationdb.org/downloads/5.1.4/rhel7/installers/foundationdb-server-5.1.4-1.el7.x86_64.rpm>`_ (depends on the clients package)
|
||||
* `foundationdb-clients-5.1.5-1.el7.x86_64.rpm <https://www.foundationdb.org/downloads/5.1.5/rhel7/installers/foundationdb-clients-5.1.5-1.el7.x86_64.rpm>`_
|
||||
* `foundationdb-server-5.1.5-1.el7.x86_64.rpm <https://www.foundationdb.org/downloads/5.1.5/rhel7/installers/foundationdb-server-5.1.5-1.el7.x86_64.rpm>`_ (depends on the clients package)
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
The Windows installer is supported on 64-bit Windows XP and later. It includes the client and (optionally) the server.
|
||||
|
||||
* `foundationdb-5.1.4-x64.msi <https://www.foundationdb.org/downloads/5.1.4/windows/installers/foundationdb-5.1.4-x64.msi>`_
|
||||
* `foundationdb-5.1.5-x64.msi <https://www.foundationdb.org/downloads/5.1.5/windows/installers/foundationdb-5.1.5-x64.msi>`_
|
||||
|
||||
API Language Bindings
|
||||
=====================
|
||||
|
@ -58,18 +58,18 @@ On macOS and Windows, the FoundationDB Python API bindings are installed as part
|
|||
|
||||
If you need to use the FoundationDB Python API from other Python installations or paths, download the Python package:
|
||||
|
||||
* `foundationdb-5.1.4.tar.gz <https://www.foundationdb.org/downloads/5.1.4/bindings/python/foundationdb-5.1.4.tar.gz>`_
|
||||
* `foundationdb-5.1.5.tar.gz <https://www.foundationdb.org/downloads/5.1.5/bindings/python/foundationdb-5.1.5.tar.gz>`_
|
||||
|
||||
Ruby 1.9.3/2.0.0+
|
||||
-----------------
|
||||
|
||||
* `fdb-5.1.4.gem <https://www.foundationdb.org/downloads/5.1.4/bindings/ruby/fdb-5.1.4.gem>`_
|
||||
* `fdb-5.1.5.gem <https://www.foundationdb.org/downloads/5.1.5/bindings/ruby/fdb-5.1.5.gem>`_
|
||||
|
||||
Java 8+
|
||||
-------
|
||||
|
||||
* `fdb-java-5.1.4.jar <https://www.foundationdb.org/downloads/5.1.4/bindings/java/fdb-java-5.1.4.jar>`_
|
||||
* `fdb-java-5.1.4-javadoc.jar <https://www.foundationdb.org/downloads/5.1.4/bindings/java/fdb-java-5.1.4-javadoc.jar>`_
|
||||
* `fdb-java-5.1.5.jar <https://www.foundationdb.org/downloads/5.1.5/bindings/java/fdb-java-5.1.5.jar>`_
|
||||
* `fdb-java-5.1.5-javadoc.jar <https://www.foundationdb.org/downloads/5.1.5/bindings/java/fdb-java-5.1.5-javadoc.jar>`_
|
||||
|
||||
Go 1.1+
|
||||
-------
|
||||
|
|
|
@ -2,6 +2,23 @@
|
|||
Release Notes
|
||||
#############
|
||||
|
||||
5.1.5
|
||||
=====
|
||||
|
||||
Fixes
|
||||
-----
|
||||
|
||||
* The consistency check calculated the size of the database inefficiently. <rdar://problem/38385230>
|
||||
* Could not create new directories with the Python and Ruby implementations of the directory layer. <rdar://problem/38911902> <rdar://problem/38477474>
|
||||
* fdbcli could erroneously report that it was incompatible with some processes in the cluster. <rdar://problem/39353867>
|
||||
* The commit commmand in fdbcli did not wait for the result of the commit before continuing to the next command.
|
||||
|
||||
|
||||
Other Changes
|
||||
-------------
|
||||
|
||||
* renamed the ``multi_dc`` replication mode to ``three_datacenter``.
|
||||
|
||||
5.1.4
|
||||
=====
|
||||
|
||||
|
|
|
@ -2513,7 +2513,7 @@ ACTOR Future<int> cli(CLIOptions opt, LineNoise* plinenoise) {
|
|||
printf("ERROR: No active transaction\n");
|
||||
is_error = true;
|
||||
} else {
|
||||
commitTransaction( tr );
|
||||
Void _ = wait( commitTransaction( tr ) );
|
||||
intrans = false;
|
||||
options = &globalOptions;
|
||||
}
|
||||
|
|
|
@ -144,7 +144,8 @@ public:
|
|||
pingReceiver(endpoints),
|
||||
warnAlwaysForLargePacket(true),
|
||||
lastIncompatibleMessage(0),
|
||||
transportId(transportId)
|
||||
transportId(transportId),
|
||||
numIncompatibleConnections(0)
|
||||
{}
|
||||
|
||||
void initMetrics() {
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
|
||||
<Product Name='$(var.Title)'
|
||||
Id='{C5A52D50-7162-4EDC-ADE3-481133E5D407}'
|
||||
Id='{A98BF301-533D-41E6-B62F-2F90EF5E73E1}'
|
||||
UpgradeCode='{A95EA002-686E-4164-8356-C715B7F8B1C8}'
|
||||
Version='$(var.Version)'
|
||||
Manufacturer='$(var.Manufacturer)'
|
||||
|
|
|
@ -54,6 +54,6 @@ pkgbuild --root $SERVERDIR --identifier FoundationDB-server --version $VERSION.$
|
|||
|
||||
rm -rf $SERVERDIR
|
||||
|
||||
productbuild --distribution packaging/osx/Distribution.xml --package-path . $PKGFILE
|
||||
productbuild --distribution packaging/osx/Distribution.xml --resources packaging/osx/resources --package-path . $PKGFILE
|
||||
|
||||
rm FoundationDB-clients.pkg FoundationDB-server.pkg
|
||||
|
|
|
@ -3,4 +3,4 @@
|
|||
{\colortbl;\red255\green255\blue255;}
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
|
||||
|
||||
\f0\fs26 \cf0 Thank you for installing FoundationDB. For documentation, please visit {\field{\*\fldinst HYPERLINK "https://www.foundationdb.org/documentation"}{\fldrslt https://www.foundationdb.org/documentation}}.}
|
||||
\f0\fs26 \cf0 Thank you for installing FoundationDB. For documentation, please visit {\field{\*\fldinst HYPERLINK "https://www.foundationdb.org"}{\fldrslt https://www.foundationdb.org}}.}
|
Loading…
Reference in New Issue