@push.rocks/smartdb 5.5.2 → 5.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_rust/rustdb_linux_amd64 +0 -0
- package/dist_rust/rustdb_linux_amd64.tsrust-build.json +4 -4
- package/dist_rust/rustdb_linux_arm64 +0 -0
- package/dist_rust/rustdb_linux_arm64.tsrust-build.json +4 -4
- package/dist_rust/rustdb_macos_amd64 +0 -0
- package/dist_rust/rustdb_macos_amd64.tsrust-build.json +4 -4
- package/dist_rust/rustdb_macos_arm64 +0 -0
- package/dist_rust/rustdb_macos_arm64.tsrust-build.json +4 -4
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/package.json +1 -1
- package/readme.md +46 -0
- package/ts/00_commitinfo_data.ts +1 -1
|
Binary file
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "
|
|
3
|
+
"binarySha256": "5655214ec6aaa52a37a786e4401199ac0ed9049fdfe9e0aa772f9321068ca213",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@push.rocks/smartdb",
|
|
6
|
-
"projectVersion": "5.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "5.6.1",
|
|
7
|
+
"gitCommit": "ea0aa192b25f5cb4c03d0c3c428c7659de40d314",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
9
|
+
"builtAt": "2026-09-05T18:26:42.556Z",
|
|
10
10
|
"tsrustVersion": "1.10.4",
|
|
11
11
|
"binary": "rustdb",
|
|
12
12
|
"target": "linux_amd64"
|
|
Binary file
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "
|
|
3
|
+
"binarySha256": "74b7d64b133a2e8192eed352c53e67727833593417995610682b7f5eb90326f5",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@push.rocks/smartdb",
|
|
6
|
-
"projectVersion": "5.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "5.6.1",
|
|
7
|
+
"gitCommit": "ea0aa192b25f5cb4c03d0c3c428c7659de40d314",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
9
|
+
"builtAt": "2026-09-05T18:27:24.134Z",
|
|
10
10
|
"tsrustVersion": "1.10.4",
|
|
11
11
|
"binary": "rustdb",
|
|
12
12
|
"target": "linux_arm64"
|
|
Binary file
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "
|
|
3
|
+
"binarySha256": "9ad5d9cd4e00896c71c8de557a8fd3ca548857a79be2d59af84121618ae0e5b6",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@push.rocks/smartdb",
|
|
6
|
-
"projectVersion": "5.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "5.6.1",
|
|
7
|
+
"gitCommit": "ea0aa192b25f5cb4c03d0c3c428c7659de40d314",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
9
|
+
"builtAt": "2026-09-05T18:28:28.488Z",
|
|
10
10
|
"tsrustVersion": "1.10.4",
|
|
11
11
|
"binary": "rustdb",
|
|
12
12
|
"target": "macos_amd64"
|
|
Binary file
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "
|
|
3
|
+
"binarySha256": "144e6fcce955a5ae6e31ef95782a3f2c2931b7af4303102b27b082997b00f9b0",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@push.rocks/smartdb",
|
|
6
|
-
"projectVersion": "5.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "5.6.1",
|
|
7
|
+
"gitCommit": "ea0aa192b25f5cb4c03d0c3c428c7659de40d314",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-09-
|
|
9
|
+
"builtAt": "2026-09-05T18:29:16.114Z",
|
|
10
10
|
"tsrustVersion": "1.10.4",
|
|
11
11
|
"binary": "rustdb",
|
|
12
12
|
"target": "macos_arm64"
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartdb',
|
|
6
|
-
version: '5.
|
|
6
|
+
version: '5.6.1',
|
|
7
7
|
description: 'A MongoDB-compatible embedded database server with wire protocol support, backed by a high-performance Rust engine.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHFIQUFxSDtDQUNuSSxDQUFBIn0=
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -869,6 +869,52 @@ validated no-op and index version `v: 2`. Unsupported options, including
|
|
|
869
869
|
index in the request is created. TTL metadata is retained in the catalog;
|
|
870
870
|
automatic TTL expiry is not implemented.
|
|
871
871
|
|
|
872
|
+
`find()` and collection `aggregate()` accept `hint` as an index name (including
|
|
873
|
+
`_id_`) or an exact ascending/descending key pattern. Key-pattern order matters;
|
|
874
|
+
if several indexes share a key pattern, use a name. The selected active scalar
|
|
875
|
+
index supplies every candidate, using safe full-key equality bounds or a full
|
|
876
|
+
scan of that index. The complete predicate still runs, and explicit sorting,
|
|
877
|
+
projection, skip, and limit retain their normal semantics. Index traversal uses
|
|
878
|
+
bounded pages under the namespace lock, so concurrent writes wait until the
|
|
879
|
+
hinted source read finishes. Unsorted results have no guaranteed BSON value order.
|
|
880
|
+
|
|
881
|
+
```typescript
|
|
882
|
+
await collection.createIndex({ organizationId: 1, userId: 1 }, { name: 'organization_user' });
|
|
883
|
+
const page = await collection.find({ organizationId: 'org-1' }, {
|
|
884
|
+
hint: 'organization_user', sort: { userId: 1, _id: 1 }, skip: 20, limit: 10,
|
|
885
|
+
}).toArray();
|
|
886
|
+
const count = await collection.countDocuments({ organizationId: 'org-1' }, {
|
|
887
|
+
hint: 'organization_user',
|
|
888
|
+
});
|
|
889
|
+
```
|
|
890
|
+
|
|
891
|
+
Unknown or quarantined indexes, malformed/ambiguous patterns, `$natural`, and
|
|
892
|
+
hints on missing collections or views fail explicitly. Forced multikey traversal
|
|
893
|
+
is unsupported and rejects; unhinted array queries keep their existing scan
|
|
894
|
+
behavior. Sparse hints intentionally exclude documents absent from that index,
|
|
895
|
+
including for empty filters and counts. A hint is never silently replaced by a
|
|
896
|
+
collection scan or another index.
|
|
897
|
+
|
|
898
|
+
Hinted transaction reads construct the selected index from the existing bounded
|
|
899
|
+
transaction snapshot plus buffered writes; they never fetch candidate documents
|
|
900
|
+
from live storage. Read-only aggregate source pipelines also use that transaction
|
|
901
|
+
view. Foreign-collection stages (`$lookup`, `$unionWith`) and writing stages
|
|
902
|
+
(`$out`, `$merge`), including stages inside `$facet`, reject within transactions.
|
|
903
|
+
Their existing nontransaction behavior is unchanged.
|
|
904
|
+
|
|
905
|
+
Count pipelines consisting of optional `$match`, optional `$skip`, optional positive
|
|
906
|
+
integer `$limit`, and `$count` (or the driver's equivalent constant-one `$group`)
|
|
907
|
+
stream candidates. With a limit they stop at that limit; without one they count
|
|
908
|
+
to the end of the selected source. They preserve hints,
|
|
909
|
+
deadlines, and empty-result shapes without materializing the matched set. Stage
|
|
910
|
+
dispatch, syntax, specifications, predicates, and streamed BSON processing consume
|
|
911
|
+
the same aggregation work budget as ordinary pipelines. This permits both bounded
|
|
912
|
+
and exact namespace inspection of collections larger than 10,000 documents or
|
|
913
|
+
32 MiB. Work-budget exhaustion, deadlines and signed BSON count overflow reject
|
|
914
|
+
explicitly; exact counts never fall back to estimates. Generic pipelines retain their existing
|
|
915
|
+
materialization limits. Transactions still require the existing bounded base
|
|
916
|
+
snapshot; streaming counts do not bypass its 10,000-document / 32 MiB admission cap.
|
|
917
|
+
|
|
872
918
|
### Database & Admin
|
|
873
919
|
|
|
874
920
|
```typescript
|
package/ts/00_commitinfo_data.ts
CHANGED