Skip to content

Commit 54f3b80

Browse files
authored
DRIVERS-2767 QE Range Protocol v2 (#1627)
1 parent 0ba46a8 commit 54f3b80

File tree

68 files changed

+818
-739
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+818
-739
lines changed

src/libmongoc/doc/mongoc_client_encryption_encrypt.rst

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,19 @@ Performs explicit encryption.
2020

2121
``ciphertext`` is always initialized (even on failure). Caller must call :symbol:`bson_value_destroy()` to free.
2222

23-
To insert or query with an "Indexed" or "RangePreview" encrypted payload, use a
23+
To insert or query with an "Indexed" or "Range" encrypted payload, use a
2424
:symbol:`mongoc_client_t` configured with
2525
:symbol:`mongoc_auto_encryption_opts_t`. The
2626
:symbol:`mongoc_auto_encryption_opts_t` may be configured to bypass query
2727
analysis with :symbol:`mongoc_auto_encryption_opts_set_bypass_query_analysis`.
2828
The :symbol:`mongoc_auto_encryption_opts_t` must not be configured to bypass
2929
automatic encryption with
30-
:symbol:`mongoc_auto_encryption_opts_set_bypass_auto_encryption`. **Note** that
31-
the ``"RangePreview"`` payload type |qenc:is-experimental|. The |qenc:range-is-experimental|
30+
:symbol:`mongoc_auto_encryption_opts_set_bypass_auto_encryption`.
3231

33-
To insert with a ``RangePreview`` payload
32+
To insert with a ``Range`` payload
3433
:symbol:`mongoc_client_encryption_encrypt_range_opts_t` must be set in ``opts``.
3534

36-
To query with a ``RangePreview`` payload, use :symbol:`mongoc_client_encryption_encrypt_expression()`
37-
38-
**NOTE** that the |qenc:range-is-experimental|
35+
To query with a ``Range`` payload, use :symbol:`mongoc_client_encryption_encrypt_expression()`
3936

4037
Parameters
4138
----------

src/libmongoc/doc/mongoc_client_encryption_encrypt_expression.rst

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,11 @@ Synopsis
1616
bson_t *expr_out,
1717
bson_error_t *error);
1818
19-
.. important:: The |qenc:range-is-experimental| |qenc:api-is-experimental|
2019
.. versionadded:: 1.24.0
2120

2221
Encrypts a Match Expression or Aggregate Expression to query a range index.
2322

24-
To query with a ``RangePreview`` encrypted payload, use a
23+
To query with a ``Range`` encrypted payload, use a
2524
:symbol:`mongoc_client_t` configured with
2625
:symbol:`mongoc_auto_encryption_opts_t`. The
2726
:symbol:`mongoc_auto_encryption_opts_t` may be configured to bypass query
@@ -30,7 +29,7 @@ The :symbol:`mongoc_auto_encryption_opts_t` must not be configured to bypass
3029
automatic encryption with
3130
:symbol:`mongoc_auto_encryption_opts_set_bypass_auto_encryption`.
3231

33-
To query with a ``RangePreview`` payload, ``expr`` must be one of the following forms:
32+
To query with a ``Range`` payload, ``expr`` must be one of the following forms:
3433

3534
#. A Match Expression of the following form:
3635

src/libmongoc/doc/mongoc_client_encryption_encrypt_opts_set_algorithm.rst

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,9 @@ Synopsis
1414
1515
#define MONGOC_AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
1616
#define MONGOC_AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
17-
// (Experimental: See below)
1817
#define MONGOC_ENCRYPT_ALGORITHM_INDEXED "Indexed"
19-
// (Experimental: See below)
2018
#define MONGOC_ENCRYPT_ALGORITHM_UNINDEXED "Unindexed"
21-
// (Experimental: See below)
22-
#define MONGOC_ENCRYPT_ALGORITHM_RANGEPREVIEW "RangePreview"
19+
#define MONGOC_ENCRYPT_ALGORITHM_RANGE "Range"
2320
2421
Identifies the algorithm to use for encryption. Valid values of ``algorithm`` are:
2522

@@ -39,12 +36,10 @@ Identifies the algorithm to use for encryption. Valid values of ``algorithm`` ar
3936

4037
for unindexed encryption. Specific to the `Queryable Encryption <queryable-encryption_>`_ feature.
4138

42-
``"RangePreview"``
39+
``"Range"``
4340

4441
for range encryption. Specific to the `Queryable Encryption <queryable-encryption_>`_ feature.
4542

46-
.. note:: The |qenc:range-is-experimental| |qenc:opt-is-experimental|
47-
4843
Parameters
4944
----------
5045

src/libmongoc/doc/mongoc_client_encryption_encrypt_opts_set_contention_factor.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ Synopsis
1515
.. versionadded:: 1.22.0
1616

1717
Sets a contention factor for explicit encryption.
18-
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "Indexed" or "RangePreview".
19-
It is an error to set the contention factor when algorithm is not "Indexed" or "RangePreview". **Note** that the |qenc:range-is-experimental|
18+
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "Indexed" or "Range".
19+
It is an error to set the contention factor when algorithm is not "Indexed" or "Range".
2020
If contention factor is not supplied, it defaults to a value of 0.
2121

2222
Parameters

src/libmongoc/doc/mongoc_client_encryption_encrypt_opts_set_query_type.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Synopsis
99
.. code-block:: c
1010
1111
#define MONGOC_ENCRYPT_QUERY_TYPE_EQUALITY "equality"
12-
#define MONGOC_ENCRYPT_QUERY_TYPE_RANGEPREVIEW "rangePreview"
12+
#define MONGOC_ENCRYPT_QUERY_TYPE_RANGE "range"
1313
1414
MONGOC_EXPORT (void)
1515
mongoc_client_encryption_encrypt_opts_set_query_type (
@@ -18,10 +18,10 @@ Synopsis
1818
.. versionadded:: 1.22.0
1919

2020
Sets a query type for explicit encryption. Currently, the supported values
21-
for ``query_type`` are ``"equality"`` and ``"rangePreview"``. **NOTE** that the |qenc:range-is-experimental|
21+
for ``query_type`` are ``"equality"`` and ``"range"``.
2222

23-
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "Indexed" or "RangePreview".
24-
It is an error to set the query type when algorithm is not "Indexed" or "RangePreview".
23+
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "Indexed" or "Range".
24+
It is an error to set the query type when algorithm is not "Indexed" or "Range".
2525

2626
Parameters
2727
----------

src/libmongoc/doc/mongoc_client_encryption_encrypt_opts_set_range_opts.rst

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,11 @@ Synopsis
1313
mongoc_client_encryption_encrypt_opts_t *opts,
1414
const mongoc_client_encryption_encrypt_range_opts_t *range_opts);
1515
16-
.. important:: The |qenc:range-is-experimental| |qenc:api-is-experimental|
1716
.. versionadded:: 1.24.0
1817

1918
Sets the ``range_opts`` for explicit encryption.
20-
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "RangePreview".
21-
It is an error to set ``range_opts`` when algorithm is not "RangePreview".
19+
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "Range".
20+
It is an error to set ``range_opts`` when algorithm is not "Range".
2221

2322
Parameters
2423
----------

src/libmongoc/doc/mongoc_client_encryption_encrypt_range_opts_destroy.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ Synopsis
1111
void
1212
mongoc_client_encryption_encrypt_range_opts_destroy (mongoc_client_encryption_encrypt_range_opts_t *range_opts);
1313
14-
.. important:: The |qenc:range-is-experimental| |qenc:api-is-experimental|
1514
.. versionadded:: 1.24.0
1615

1716
Frees resources of a :symbol:`mongoc_client_encryption_encrypt_range_opts_t` created with :symbol:`mongoc_client_encryption_encrypt_range_opts_new()`. Does nothing if ``NULL`` is passed.

src/libmongoc/doc/mongoc_client_encryption_encrypt_range_opts_new.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ Synopsis
1111
mongoc_client_encryption_encrypt_range_opts_t *
1212
mongoc_client_encryption_encrypt_range_opts_new (void);
1313
14-
.. important:: The |qenc:range-is-experimental| |qenc:api-is-experimental|
1514
.. versionadded:: 1.24.0
1615

1716
Returns

src/libmongoc/doc/mongoc_client_encryption_encrypt_range_opts_set_max.rst

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,11 @@ Synopsis
1313
mongoc_client_encryption_encrypt_range_opts_t *range_opts,
1414
const bson_value_t *max);
1515
16-
.. important:: The |qenc:range-is-experimental| |qenc:api-is-experimental|
1716
.. versionadded:: 1.24.0
1817

1918
Sets the maximum value of the range for explicit encryption.
20-
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "RangePreview".
21-
It is an error to set maximum when algorithm is not "RangePreview".
19+
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "Range".
20+
It is an error to set maximum when algorithm is not "Range".
2221

2322
The maximum must match the value set in the encryptedFields of the destination collection.
2423
It is an error to set a different value.

src/libmongoc/doc/mongoc_client_encryption_encrypt_range_opts_set_min.rst

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,11 @@ Synopsis
1313
mongoc_client_encryption_encrypt_range_opts_t *range_opts,
1414
const bson_value_t *min);
1515
16-
.. important:: The |qenc:range-is-experimental| |qenc:api-is-experimental|
1716
.. versionadded:: 1.24.0
1817

1918
Sets the minimum value of the range for explicit encryption.
20-
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "RangePreview".
21-
It is an error to set minimum when algorithm is not "RangePreview".
19+
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "Range".
20+
It is an error to set minimum when algorithm is not "Range".
2221

2322
The minimum must match the value set in the encryptedFields of the destination collection.
2423
It is an error to set a different value.

src/libmongoc/doc/mongoc_client_encryption_encrypt_range_opts_set_precision.rst

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@ Synopsis
1212
mongoc_client_encryption_encrypt_range_opts_set_precision (
1313
mongoc_client_encryption_encrypt_range_opts_t *range_opts, int32_t precision);
1414
15-
.. important:: The |qenc:range-is-experimental| |qenc:api-is-experimental|
1615
.. versionadded:: 1.24.0
1716

1817
Sets precision for explicit encryption.
19-
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "RangePreview".
20-
It is an error to set precision when algorithm is not "RangePreview".
18+
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "Range".
19+
It is an error to set precision when algorithm is not "Range".
2120

2221
Precision can only be set with double or decimal128 fields.
2322
It is an error to set precision if the type of the encryptedFields in the destination collection is not double or decimal128.

src/libmongoc/doc/mongoc_client_encryption_encrypt_range_opts_set_sparsity.rst

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@ Synopsis
1212
mongoc_client_encryption_encrypt_range_opts_set_sparsity (
1313
mongoc_client_encryption_encrypt_range_opts_t *range_opts, int64_t sparsity);
1414
15-
.. important:: The |qenc:range-is-experimental| |qenc:api-is-experimental|
1615
.. versionadded:: 1.24.0
1716

1817
Sets sparsity for explicit encryption. Sparsity is required for explicit encryption of range indexes.
19-
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "RangePreview".
20-
It is an error to set sparsity when algorithm is not "RangePreview".
18+
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "Range".
19+
It is an error to set sparsity when algorithm is not "Range".
2120

2221
Sparsity must match the value set in the encryptedFields of the destination collection.
2322
It is an error to set a different value.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
:man_page: mongoc_client_encryption_encrypt_range_opts_set_trim_factor
2+
3+
mongoc_client_encryption_encrypt_range_opts_set_trim_factor()
4+
=============================================================
5+
6+
Synopsis
7+
--------
8+
9+
.. code-block:: c
10+
11+
void
12+
mongoc_client_encryption_encrypt_range_opts_set_trim_factor (
13+
mongoc_client_encryption_encrypt_range_opts_t *range_opts, int32_t trim_factor);
14+
15+
.. versionadded:: 1.28.0
16+
17+
Sets trim factor for explicit encryption. Trim factor is required for explicit encryption of range indexes.
18+
Only applies when the algorithm set by :symbol:`mongoc_client_encryption_encrypt_opts_set_algorithm()` is "Range".
19+
It is an error to set trim factor when algorithm is not "Range".
20+
21+
Trim factor must match the value set in the encryptedFields of the destination collection.
22+
It is an error to set a different value.
23+
24+
Parameters
25+
----------
26+
27+
* ``range_opts``: A :symbol:`mongoc_client_encryption_encrypt_range_opts_t`
28+
* ``trim_factor``: A non-negative trim factor.
29+
30+
.. seealso::
31+
| :symbol:`mongoc_client_encryption_encrypt_range_opts_t`

src/libmongoc/doc/mongoc_client_encryption_encrypt_range_opts_t.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@ Synopsis
1010
1111
typedef struct _mongoc_client_encryption_encrypt_range_opts_t mongoc_client_encryption_encrypt_range_opts_t;
1212
13-
.. important:: The |qenc:range-is-experimental| |qenc:api-is-experimental|
1413
.. versionadded:: 1.24.0
1514

16-
RangeOpts specifies index options for a Queryable Encryption field supporting "rangePreview" queries. Used to set options for :symbol:`mongoc_client_encryption_encrypt()`.
15+
RangeOpts specifies index options for a Queryable Encryption field supporting "range" queries. Used to set options for :symbol:`mongoc_client_encryption_encrypt()`.
1716

18-
The options min, max, sparsity, and range must match the values set in the encryptedFields of the destination collection.
17+
The options min, max, trim factor, sparsity, and range must match the values set in the encryptedFields of the destination collection.
1918

2019
For double and decimal128 fields, min/max/precision must all be set, or all be unset.
2120

@@ -30,6 +29,7 @@ For double and decimal128 fields, min/max/precision must all be set, or all be u
3029

3130
mongoc_client_encryption_encrypt_range_opts_new
3231
mongoc_client_encryption_encrypt_range_opts_destroy
32+
mongoc_client_encryption_encrypt_range_opts_set_trim_factor
3333
mongoc_client_encryption_encrypt_range_opts_set_sparsity
3434
mongoc_client_encryption_encrypt_range_opts_set_min
3535
mongoc_client_encryption_encrypt_range_opts_set_max

src/libmongoc/src/mongoc/mongoc-client-side-encryption.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,7 @@ struct _mongoc_client_encryption_encrypt_range_opts_t {
424424
bson_value_t value;
425425
bool set;
426426
} max;
427+
int32_t trim_factor;
427428
int64_t sparsity;
428429
struct {
429430
int32_t value;
@@ -549,6 +550,14 @@ mongoc_client_encryption_encrypt_range_opts_new (void)
549550
return bson_malloc0 (sizeof (mongoc_client_encryption_encrypt_range_opts_t));
550551
}
551552

553+
void
554+
mongoc_client_encryption_encrypt_range_opts_set_trim_factor (mongoc_client_encryption_encrypt_range_opts_t *range_opts,
555+
int32_t trim_factor)
556+
{
557+
BSON_ASSERT_PARAM (range_opts);
558+
range_opts->trim_factor = trim_factor;
559+
}
560+
552561
void
553562
mongoc_client_encryption_encrypt_range_opts_set_sparsity (mongoc_client_encryption_encrypt_range_opts_t *range_opts,
554563
int64_t sparsity)
@@ -612,6 +621,7 @@ copy_range_opts (const mongoc_client_encryption_encrypt_range_opts_t *opts)
612621
opts_new->precision.set = true;
613622
}
614623
opts_new->sparsity = opts->sparsity;
624+
opts_new->trim_factor = opts->trim_factor;
615625
return opts_new;
616626
}
617627

@@ -991,6 +1001,9 @@ append_bson_range_opts (bson_t *bson_range_opts, const mongoc_client_encryption_
9911001
if (opts->range_opts->sparsity) {
9921002
BSON_ASSERT (BSON_APPEND_INT64 (bson_range_opts, "sparsity", opts->range_opts->sparsity));
9931003
}
1004+
if (opts->range_opts->trim_factor) {
1005+
BSON_ASSERT (BSON_APPEND_INT32 (bson_range_opts, "trimFactor", opts->range_opts->trim_factor));
1006+
}
9941007
}
9951008

9961009
/*--------------------------------------------------------------------------

src/libmongoc/src/mongoc/mongoc-client-side-encryption.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,11 @@ struct _mongoc_database_t;
3333
#define MONGOC_AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
3434
#define MONGOC_ENCRYPT_ALGORITHM_INDEXED "Indexed"
3535
#define MONGOC_ENCRYPT_ALGORITHM_UNINDEXED "Unindexed"
36+
#define MONGOC_ENCRYPT_ALGORITHM_RANGE "Range"
3637
#define MONGOC_ENCRYPT_ALGORITHM_RANGEPREVIEW "RangePreview"
3738

3839
#define MONGOC_ENCRYPT_QUERY_TYPE_EQUALITY "equality"
40+
#define MONGOC_ENCRYPT_QUERY_TYPE_RANGE "range"
3941
#define MONGOC_ENCRYPT_QUERY_TYPE_RANGEPREVIEW "rangePreview"
4042

4143

@@ -247,6 +249,10 @@ mongoc_client_encryption_encrypt_range_opts_new (void);
247249
MONGOC_EXPORT (void)
248250
mongoc_client_encryption_encrypt_range_opts_destroy (mongoc_client_encryption_encrypt_range_opts_t *range_opts);
249251

252+
MONGOC_EXPORT (void)
253+
mongoc_client_encryption_encrypt_range_opts_set_trim_factor (mongoc_client_encryption_encrypt_range_opts_t *range_opts,
254+
int32_t trim_factor);
255+
250256
MONGOC_EXPORT (void)
251257
mongoc_client_encryption_encrypt_range_opts_set_sparsity (mongoc_client_encryption_encrypt_range_opts_t *range_opts,
252258
int64_t sparsity);

src/libmongoc/src/mongoc/mongoc-crypt.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1419,6 +1419,11 @@ _mongoc_crypt_new (const bson_t *kms_providers,
14191419
// Enable the NEEDS_CREDENTIALS state for on-demand credential loading
14201420
mongocrypt_setopt_use_need_kms_credentials_state (crypt->handle);
14211421

1422+
if (!mongocrypt_setopt_use_range_v2 (crypt->handle)) {
1423+
_crypt_check_error (crypt->handle, error, true);
1424+
goto fail;
1425+
}
1426+
14221427
if (!mongocrypt_init (crypt->handle)) {
14231428
_crypt_check_error (crypt->handle, error, true);
14241429
goto fail;

src/libmongoc/tests/client_side_encryption_prose/explicit_encryption/range-encryptedFields-Date.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,13 @@
1010
"path": "encryptedDate",
1111
"bsonType": "date",
1212
"queries": {
13-
"queryType": "rangePreview",
13+
"queryType": "range",
1414
"contention": {
1515
"$numberLong": "0"
1616
},
17+
"trimFactor": {
18+
"$numberLong": "1"
19+
},
1720
"sparsity": {
1821
"$numberLong": "1"
1922
},

src/libmongoc/tests/client_side_encryption_prose/explicit_encryption/range-encryptedFields-DecimalNoPrecision.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"path": "encryptedDecimalNoPrecision",
1111
"bsonType": "decimal",
1212
"queries": {
13-
"queryType": "rangePreview",
13+
"queryType": "range",
1414
"contention": {
1515
"$numberLong": "0"
1616
},

src/libmongoc/tests/client_side_encryption_prose/explicit_encryption/range-encryptedFields-DecimalPrecision.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,13 @@
1010
"path": "encryptedDecimalPrecision",
1111
"bsonType": "decimal",
1212
"queries": {
13-
"queryType": "rangePreview",
13+
"queryType": "range",
1414
"contention": {
1515
"$numberLong": "0"
1616
},
17+
"trimFactor": {
18+
"$numberLong": "1"
19+
},
1720
"sparsity": {
1821
"$numberLong": "1"
1922
},

src/libmongoc/tests/client_side_encryption_prose/explicit_encryption/range-encryptedFields-DoubleNoPrecision.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"path": "encryptedDoubleNoPrecision",
1111
"bsonType": "double",
1212
"queries": {
13-
"queryType": "rangePreview",
13+
"queryType": "range",
1414
"contention": {
1515
"$numberLong": "0"
1616
},

src/libmongoc/tests/client_side_encryption_prose/explicit_encryption/range-encryptedFields-DoublePrecision.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,13 @@
1010
"path": "encryptedDoublePrecision",
1111
"bsonType": "double",
1212
"queries": {
13-
"queryType": "rangePreview",
13+
"queryType": "range",
1414
"contention": {
1515
"$numberLong": "0"
1616
},
17+
"trimFactor": {
18+
"$numberLong": "1"
19+
},
1720
"sparsity": {
1821
"$numberLong": "1"
1922
},

0 commit comments

Comments
 (0)