@azure/cosmos 4.7.0 → 4.8.0-alpha.20251121.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/browser/CosmosClientOptions.d.ts +1 -1
- package/dist/browser/CosmosClientOptions.js.map +1 -1
- package/dist/browser/client/ChangeFeed/ChangeFeedForEpkRange.d.ts.map +1 -1
- package/dist/browser/client/ChangeFeed/ChangeFeedForEpkRange.js +2 -34
- package/dist/browser/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
- package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
- package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.js +2 -35
- package/dist/browser/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
- package/dist/browser/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts +15 -0
- package/dist/browser/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts.map +1 -1
- package/dist/browser/client/ChangeFeed/ChangeFeedIteratorOptions.js.map +1 -1
- package/dist/browser/client/ChangeFeed/InternalChangeFeedOptions.d.ts +3 -0
- package/dist/browser/client/ChangeFeed/InternalChangeFeedOptions.d.ts.map +1 -1
- package/dist/browser/client/ChangeFeed/InternalChangeFeedOptions.js.map +1 -1
- package/dist/browser/client/ChangeFeed/changeFeedUtils.d.ts +6 -0
- package/dist/browser/client/ChangeFeed/changeFeedUtils.d.ts.map +1 -1
- package/dist/browser/client/ChangeFeed/changeFeedUtils.js +47 -0
- package/dist/browser/client/ChangeFeed/changeFeedUtils.js.map +1 -1
- package/dist/browser/common/constants.d.ts.map +1 -1
- package/dist/browser/common/constants.js +16 -1
- package/dist/browser/common/constants.js.map +1 -1
- package/dist/browser/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts +99 -0
- package/dist/browser/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts.map +1 -0
- package/dist/browser/documents/ContinuationToken/CompositeQueryContinuationToken.js +84 -0
- package/dist/browser/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -0
- package/dist/browser/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts +40 -0
- package/dist/browser/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts.map +1 -0
- package/dist/browser/documents/ContinuationToken/OrderByQueryContinuationToken.js +39 -0
- package/dist/browser/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -0
- package/dist/browser/documents/ContinuationToken/PartitionRangeUpdate.d.ts +21 -0
- package/dist/browser/documents/ContinuationToken/PartitionRangeUpdate.d.ts.map +1 -0
- package/dist/browser/documents/ContinuationToken/PartitionRangeUpdate.js +4 -0
- package/dist/browser/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -0
- package/dist/browser/documents/VectorEmbeddingPolicy.d.ts +4 -0
- package/dist/browser/documents/VectorEmbeddingPolicy.d.ts.map +1 -1
- package/dist/browser/documents/VectorEmbeddingPolicy.js +4 -0
- package/dist/browser/documents/VectorEmbeddingPolicy.js.map +1 -1
- package/dist/browser/queryExecutionContext/Aggregators/MaxAggregator.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/Aggregators/MaxAggregator.js +4 -0
- package/dist/browser/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
- package/dist/browser/queryExecutionContext/Aggregators/MinAggregator.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/Aggregators/MinAggregator.js +4 -0
- package/dist/browser/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts +2 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js +174 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts +2 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +28 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts +2 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +129 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts +2 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +66 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenParser.d.ts +2 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenParser.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenParser.js +23 -0
- package/dist/browser/queryExecutionContext/ContinuationTokenParser.js.map +1 -0
- package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +22 -7
- package/dist/browser/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +21 -5
- package/dist/browser/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +28 -6
- package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +23 -7
- package/dist/browser/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +35 -4
- package/dist/browser/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts +1 -0
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +22 -4
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +24 -5
- package/dist/browser/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +18 -5
- package/dist/browser/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
- package/dist/browser/queryExecutionContext/LegacyFetchImplementation.d.ts +14 -0
- package/dist/browser/queryExecutionContext/LegacyFetchImplementation.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/LegacyFetchImplementation.js +55 -0
- package/dist/browser/queryExecutionContext/LegacyFetchImplementation.js.map +1 -0
- package/dist/browser/queryExecutionContext/PartitionRangeManager.d.ts +73 -0
- package/dist/browser/queryExecutionContext/PartitionRangeManager.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/PartitionRangeManager.js +156 -0
- package/dist/browser/queryExecutionContext/PartitionRangeManager.js.map +1 -0
- package/dist/browser/queryExecutionContext/PartitionRangeUtils.d.ts +19 -0
- package/dist/browser/queryExecutionContext/PartitionRangeUtils.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/PartitionRangeUtils.js +105 -0
- package/dist/browser/queryExecutionContext/PartitionRangeUtils.js.map +1 -0
- package/dist/browser/queryExecutionContext/QueryControlFetchImplementation.d.ts +20 -0
- package/dist/browser/queryExecutionContext/QueryControlFetchImplementation.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/QueryControlFetchImplementation.js +93 -0
- package/dist/browser/queryExecutionContext/QueryControlFetchImplementation.js.map +1 -0
- package/dist/browser/queryExecutionContext/QueryValidationHelper.d.ts +9 -0
- package/dist/browser/queryExecutionContext/QueryValidationHelper.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/QueryValidationHelper.js +65 -0
- package/dist/browser/queryExecutionContext/QueryValidationHelper.js.map +1 -0
- package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.d.ts +2 -2
- package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js +2 -1
- package/dist/browser/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
- package/dist/browser/queryExecutionContext/documentProducer.d.ts +9 -3
- package/dist/browser/queryExecutionContext/documentProducer.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/documentProducer.js +17 -4
- package/dist/browser/queryExecutionContext/documentProducer.js.map +1 -1
- package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.d.ts +1 -1
- package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js +18 -13
- package/dist/browser/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
- package/dist/browser/queryExecutionContext/index.d.ts +7 -0
- package/dist/browser/queryExecutionContext/index.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/index.js +4 -0
- package/dist/browser/queryExecutionContext/index.js.map +1 -1
- package/dist/browser/queryExecutionContext/nonStreamingOrderByResult.d.ts +5 -1
- package/dist/browser/queryExecutionContext/nonStreamingOrderByResult.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
- package/dist/browser/queryExecutionContext/orderByComparator.d.ts +11 -2
- package/dist/browser/queryExecutionContext/orderByComparator.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/orderByComparator.js +20 -3
- package/dist/browser/queryExecutionContext/orderByComparator.js.map +1 -1
- package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.d.ts +4 -0
- package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js +18 -7
- package/dist/browser/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
- package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.d.ts +7 -10
- package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js +30 -23
- package/dist/browser/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContext.d.ts +18 -10
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContext.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContext.js +47 -23
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.d.ts +160 -26
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js +453 -106
- package/dist/browser/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
- package/dist/browser/queryExecutionContext/parallelQueryResult.d.ts +35 -0
- package/dist/browser/queryExecutionContext/parallelQueryResult.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/parallelQueryResult.js +23 -0
- package/dist/browser/queryExecutionContext/parallelQueryResult.js.map +1 -0
- package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.d.ts +37 -7
- package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.d.ts.map +1 -1
- package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js +173 -120
- package/dist/browser/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts +40 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +4 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +49 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +310 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts +18 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +102 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts +51 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +180 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts +76 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +93 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts +30 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +4 -0
- package/dist/browser/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts +29 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +53 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts +27 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +34 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts +36 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +4 -0
- package/dist/browser/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -0
- package/dist/browser/queryExecutionContext/queryRangeMapping.d.ts +22 -0
- package/dist/browser/queryExecutionContext/queryRangeMapping.d.ts.map +1 -0
- package/dist/browser/queryExecutionContext/queryRangeMapping.js +4 -0
- package/dist/browser/queryExecutionContext/queryRangeMapping.js.map +1 -0
- package/dist/browser/queryIterator.js.map +1 -1
- package/dist/browser/request/RequestHandler.d.ts.map +1 -1
- package/dist/browser/request/RequestHandler.js +10 -4
- package/dist/browser/request/RequestHandler.js.map +1 -1
- package/dist/browser/utils/offers.d.ts.map +1 -1
- package/dist/browser/utils/offers.js +0 -1
- package/dist/browser/utils/offers.js.map +1 -1
- package/dist/commonjs/CosmosClientOptions.d.ts +1 -1
- package/dist/commonjs/CosmosClientOptions.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.d.ts.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js +1 -33
- package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js +1 -34
- package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts +15 -0
- package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts.map +1 -1
- package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorOptions.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/InternalChangeFeedOptions.d.ts +3 -0
- package/dist/commonjs/client/ChangeFeed/InternalChangeFeedOptions.d.ts.map +1 -1
- package/dist/commonjs/client/ChangeFeed/InternalChangeFeedOptions.js.map +1 -1
- package/dist/commonjs/client/ChangeFeed/changeFeedUtils.d.ts +6 -0
- package/dist/commonjs/client/ChangeFeed/changeFeedUtils.d.ts.map +1 -1
- package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js +48 -0
- package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js.map +1 -1
- package/dist/commonjs/common/constants.d.ts.map +1 -1
- package/dist/commonjs/common/constants.js +13 -2
- package/dist/commonjs/common/constants.js.map +1 -1
- package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts +99 -0
- package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts.map +1 -0
- package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.js +93 -0
- package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -0
- package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts +40 -0
- package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts.map +1 -0
- package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.js +44 -0
- package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -0
- package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.d.ts +21 -0
- package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.d.ts.map +1 -0
- package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.js +5 -0
- package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -0
- package/dist/commonjs/documents/VectorEmbeddingPolicy.d.ts +4 -0
- package/dist/commonjs/documents/VectorEmbeddingPolicy.d.ts.map +1 -1
- package/dist/commonjs/documents/VectorEmbeddingPolicy.js +4 -0
- package/dist/commonjs/documents/VectorEmbeddingPolicy.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js +4 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js +4 -0
- package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts +2 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js +178 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts +2 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +31 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts +2 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +133 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts +2 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +70 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.d.ts +2 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.js +26 -0
- package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +22 -7
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +21 -5
- package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +28 -6
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +23 -7
- package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +35 -4
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts +1 -0
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +22 -4
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +24 -5
- package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +18 -5
- package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.d.ts +14 -0
- package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.js +59 -0
- package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeManager.d.ts +73 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeManager.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeManager.js +160 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeManager.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.d.ts +19 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.js +109 -0
- package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.d.ts +20 -0
- package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.js +97 -0
- package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/QueryValidationHelper.d.ts +9 -0
- package/dist/commonjs/queryExecutionContext/QueryValidationHelper.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/QueryValidationHelper.js +69 -0
- package/dist/commonjs/queryExecutionContext/QueryValidationHelper.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.d.ts +2 -2
- package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js +2 -1
- package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/documentProducer.d.ts +9 -3
- package/dist/commonjs/queryExecutionContext/documentProducer.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/documentProducer.js +17 -4
- package/dist/commonjs/queryExecutionContext/documentProducer.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.d.ts +1 -1
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js +18 -13
- package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/index.d.ts +7 -0
- package/dist/commonjs/queryExecutionContext/index.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/index.js +10 -0
- package/dist/commonjs/queryExecutionContext/index.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResult.d.ts +5 -1
- package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResult.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/orderByComparator.d.ts +11 -2
- package/dist/commonjs/queryExecutionContext/orderByComparator.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/orderByComparator.js +21 -3
- package/dist/commonjs/queryExecutionContext/orderByComparator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.d.ts +4 -0
- package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js +18 -7
- package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.d.ts +7 -10
- package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js +30 -23
- package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.d.ts +18 -10
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.js +47 -23
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.d.ts +160 -26
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js +453 -106
- package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/parallelQueryResult.d.ts +35 -0
- package/dist/commonjs/queryExecutionContext/parallelQueryResult.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/parallelQueryResult.js +26 -0
- package/dist/commonjs/queryExecutionContext/parallelQueryResult.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.d.ts +37 -7
- package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.d.ts.map +1 -1
- package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js +173 -120
- package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts +40 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +5 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +49 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +314 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts +18 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +106 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts +51 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +184 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts +76 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +97 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts +30 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +5 -0
- package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts +29 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +57 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts +27 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +38 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts +36 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +5 -0
- package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryRangeMapping.d.ts +22 -0
- package/dist/commonjs/queryExecutionContext/queryRangeMapping.d.ts.map +1 -0
- package/dist/commonjs/queryExecutionContext/queryRangeMapping.js +5 -0
- package/dist/commonjs/queryExecutionContext/queryRangeMapping.js.map +1 -0
- package/dist/commonjs/queryIterator.js.map +1 -1
- package/dist/commonjs/request/RequestHandler.d.ts.map +1 -1
- package/dist/commonjs/request/RequestHandler.js +10 -4
- package/dist/commonjs/request/RequestHandler.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/commonjs/utils/offers.d.ts.map +1 -1
- package/dist/commonjs/utils/offers.js +0 -1
- package/dist/commonjs/utils/offers.js.map +1 -1
- package/dist/esm/CosmosClientOptions.d.ts +1 -1
- package/dist/esm/CosmosClientOptions.js.map +1 -1
- package/dist/esm/client/ChangeFeed/ChangeFeedForEpkRange.d.ts.map +1 -1
- package/dist/esm/client/ChangeFeed/ChangeFeedForEpkRange.js +2 -34
- package/dist/esm/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
- package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
- package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js +2 -35
- package/dist/esm/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
- package/dist/esm/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts +15 -0
- package/dist/esm/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts.map +1 -1
- package/dist/esm/client/ChangeFeed/ChangeFeedIteratorOptions.js.map +1 -1
- package/dist/esm/client/ChangeFeed/InternalChangeFeedOptions.d.ts +3 -0
- package/dist/esm/client/ChangeFeed/InternalChangeFeedOptions.d.ts.map +1 -1
- package/dist/esm/client/ChangeFeed/InternalChangeFeedOptions.js.map +1 -1
- package/dist/esm/client/ChangeFeed/changeFeedUtils.d.ts +6 -0
- package/dist/esm/client/ChangeFeed/changeFeedUtils.d.ts.map +1 -1
- package/dist/esm/client/ChangeFeed/changeFeedUtils.js +47 -0
- package/dist/esm/client/ChangeFeed/changeFeedUtils.js.map +1 -1
- package/dist/esm/common/constants.d.ts.map +1 -1
- package/dist/esm/common/constants.js +16 -1
- package/dist/esm/common/constants.js.map +1 -1
- package/dist/esm/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts +99 -0
- package/dist/esm/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts.map +1 -0
- package/dist/esm/documents/ContinuationToken/CompositeQueryContinuationToken.js +84 -0
- package/dist/esm/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -0
- package/dist/esm/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts +40 -0
- package/dist/esm/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts.map +1 -0
- package/dist/esm/documents/ContinuationToken/OrderByQueryContinuationToken.js +39 -0
- package/dist/esm/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -0
- package/dist/esm/documents/ContinuationToken/PartitionRangeUpdate.d.ts +21 -0
- package/dist/esm/documents/ContinuationToken/PartitionRangeUpdate.d.ts.map +1 -0
- package/dist/esm/documents/ContinuationToken/PartitionRangeUpdate.js +4 -0
- package/dist/esm/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -0
- package/dist/esm/documents/VectorEmbeddingPolicy.d.ts +4 -0
- package/dist/esm/documents/VectorEmbeddingPolicy.d.ts.map +1 -1
- package/dist/esm/documents/VectorEmbeddingPolicy.js +4 -0
- package/dist/esm/documents/VectorEmbeddingPolicy.js.map +1 -1
- package/dist/esm/queryExecutionContext/Aggregators/MaxAggregator.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/Aggregators/MaxAggregator.js +4 -0
- package/dist/esm/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
- package/dist/esm/queryExecutionContext/Aggregators/MinAggregator.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/Aggregators/MinAggregator.js +4 -0
- package/dist/esm/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts +2 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js +174 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts +2 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +28 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts +2 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +129 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts +2 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +66 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenParser.d.ts +2 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenParser.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenParser.js +23 -0
- package/dist/esm/queryExecutionContext/ContinuationTokenParser.js.map +1 -0
- package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +22 -7
- package/dist/esm/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +21 -5
- package/dist/esm/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +28 -6
- package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +23 -7
- package/dist/esm/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +35 -4
- package/dist/esm/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts +1 -0
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +22 -4
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +24 -5
- package/dist/esm/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +18 -5
- package/dist/esm/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
- package/dist/esm/queryExecutionContext/LegacyFetchImplementation.d.ts +14 -0
- package/dist/esm/queryExecutionContext/LegacyFetchImplementation.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/LegacyFetchImplementation.js +55 -0
- package/dist/esm/queryExecutionContext/LegacyFetchImplementation.js.map +1 -0
- package/dist/esm/queryExecutionContext/PartitionRangeManager.d.ts +73 -0
- package/dist/esm/queryExecutionContext/PartitionRangeManager.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/PartitionRangeManager.js +156 -0
- package/dist/esm/queryExecutionContext/PartitionRangeManager.js.map +1 -0
- package/dist/esm/queryExecutionContext/PartitionRangeUtils.d.ts +19 -0
- package/dist/esm/queryExecutionContext/PartitionRangeUtils.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/PartitionRangeUtils.js +105 -0
- package/dist/esm/queryExecutionContext/PartitionRangeUtils.js.map +1 -0
- package/dist/esm/queryExecutionContext/QueryControlFetchImplementation.d.ts +20 -0
- package/dist/esm/queryExecutionContext/QueryControlFetchImplementation.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/QueryControlFetchImplementation.js +93 -0
- package/dist/esm/queryExecutionContext/QueryControlFetchImplementation.js.map +1 -0
- package/dist/esm/queryExecutionContext/QueryValidationHelper.d.ts +9 -0
- package/dist/esm/queryExecutionContext/QueryValidationHelper.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/QueryValidationHelper.js +65 -0
- package/dist/esm/queryExecutionContext/QueryValidationHelper.js.map +1 -0
- package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.d.ts +2 -2
- package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js +2 -1
- package/dist/esm/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
- package/dist/esm/queryExecutionContext/documentProducer.d.ts +9 -3
- package/dist/esm/queryExecutionContext/documentProducer.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/documentProducer.js +17 -4
- package/dist/esm/queryExecutionContext/documentProducer.js.map +1 -1
- package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.d.ts +1 -1
- package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js +18 -13
- package/dist/esm/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
- package/dist/esm/queryExecutionContext/index.d.ts +7 -0
- package/dist/esm/queryExecutionContext/index.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/index.js +4 -0
- package/dist/esm/queryExecutionContext/index.js.map +1 -1
- package/dist/esm/queryExecutionContext/nonStreamingOrderByResult.d.ts +5 -1
- package/dist/esm/queryExecutionContext/nonStreamingOrderByResult.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
- package/dist/esm/queryExecutionContext/orderByComparator.d.ts +11 -2
- package/dist/esm/queryExecutionContext/orderByComparator.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/orderByComparator.js +20 -3
- package/dist/esm/queryExecutionContext/orderByComparator.js.map +1 -1
- package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.d.ts +4 -0
- package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js +18 -7
- package/dist/esm/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
- package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.d.ts +7 -10
- package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js +30 -23
- package/dist/esm/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContext.d.ts +18 -10
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContext.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContext.js +47 -23
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.d.ts +160 -26
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js +453 -106
- package/dist/esm/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
- package/dist/esm/queryExecutionContext/parallelQueryResult.d.ts +35 -0
- package/dist/esm/queryExecutionContext/parallelQueryResult.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/parallelQueryResult.js +23 -0
- package/dist/esm/queryExecutionContext/parallelQueryResult.js.map +1 -0
- package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.d.ts +37 -7
- package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.d.ts.map +1 -1
- package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js +173 -120
- package/dist/esm/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts +40 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +4 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +49 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +310 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts +18 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +102 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts +51 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +180 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts +76 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +93 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts +30 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +4 -0
- package/dist/esm/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts +29 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +53 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts +27 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +34 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts +36 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +4 -0
- package/dist/esm/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -0
- package/dist/esm/queryExecutionContext/queryRangeMapping.d.ts +22 -0
- package/dist/esm/queryExecutionContext/queryRangeMapping.d.ts.map +1 -0
- package/dist/esm/queryExecutionContext/queryRangeMapping.js +4 -0
- package/dist/esm/queryExecutionContext/queryRangeMapping.js.map +1 -0
- package/dist/esm/queryIterator.js.map +1 -1
- package/dist/esm/request/RequestHandler.d.ts.map +1 -1
- package/dist/esm/request/RequestHandler.js +10 -4
- package/dist/esm/request/RequestHandler.js.map +1 -1
- package/dist/esm/utils/offers.d.ts.map +1 -1
- package/dist/esm/utils/offers.js +0 -1
- package/dist/esm/utils/offers.js.map +1 -1
- package/dist/react-native/CosmosClientOptions.d.ts +1 -1
- package/dist/react-native/CosmosClientOptions.js.map +1 -1
- package/dist/react-native/client/ChangeFeed/ChangeFeedForEpkRange.d.ts.map +1 -1
- package/dist/react-native/client/ChangeFeed/ChangeFeedForEpkRange.js +2 -34
- package/dist/react-native/client/ChangeFeed/ChangeFeedForEpkRange.js.map +1 -1
- package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.d.ts.map +1 -1
- package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js +2 -35
- package/dist/react-native/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +1 -1
- package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts +15 -0
- package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorOptions.d.ts.map +1 -1
- package/dist/react-native/client/ChangeFeed/ChangeFeedIteratorOptions.js.map +1 -1
- package/dist/react-native/client/ChangeFeed/InternalChangeFeedOptions.d.ts +3 -0
- package/dist/react-native/client/ChangeFeed/InternalChangeFeedOptions.d.ts.map +1 -1
- package/dist/react-native/client/ChangeFeed/InternalChangeFeedOptions.js.map +1 -1
- package/dist/react-native/client/ChangeFeed/changeFeedUtils.d.ts +6 -0
- package/dist/react-native/client/ChangeFeed/changeFeedUtils.d.ts.map +1 -1
- package/dist/react-native/client/ChangeFeed/changeFeedUtils.js +47 -0
- package/dist/react-native/client/ChangeFeed/changeFeedUtils.js.map +1 -1
- package/dist/react-native/common/constants.d.ts.map +1 -1
- package/dist/react-native/common/constants.js +16 -1
- package/dist/react-native/common/constants.js.map +1 -1
- package/dist/react-native/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts +99 -0
- package/dist/react-native/documents/ContinuationToken/CompositeQueryContinuationToken.d.ts.map +1 -0
- package/dist/react-native/documents/ContinuationToken/CompositeQueryContinuationToken.js +84 -0
- package/dist/react-native/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -0
- package/dist/react-native/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts +40 -0
- package/dist/react-native/documents/ContinuationToken/OrderByQueryContinuationToken.d.ts.map +1 -0
- package/dist/react-native/documents/ContinuationToken/OrderByQueryContinuationToken.js +39 -0
- package/dist/react-native/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -0
- package/dist/react-native/documents/ContinuationToken/PartitionRangeUpdate.d.ts +21 -0
- package/dist/react-native/documents/ContinuationToken/PartitionRangeUpdate.d.ts.map +1 -0
- package/dist/react-native/documents/ContinuationToken/PartitionRangeUpdate.js +4 -0
- package/dist/react-native/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -0
- package/dist/react-native/documents/VectorEmbeddingPolicy.d.ts +4 -0
- package/dist/react-native/documents/VectorEmbeddingPolicy.d.ts.map +1 -1
- package/dist/react-native/documents/VectorEmbeddingPolicy.js +4 -0
- package/dist/react-native/documents/VectorEmbeddingPolicy.js.map +1 -1
- package/dist/react-native/queryExecutionContext/Aggregators/MaxAggregator.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/Aggregators/MaxAggregator.js +4 -0
- package/dist/react-native/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
- package/dist/react-native/queryExecutionContext/Aggregators/MinAggregator.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/Aggregators/MinAggregator.js +4 -0
- package/dist/react-native/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts +2 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js +174 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts +2 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +28 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts +2 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +129 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts +2 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +66 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenParser.d.ts +2 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenParser.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenParser.js +23 -0
- package/dist/react-native/queryExecutionContext/ContinuationTokenParser.js.map +1 -0
- package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +22 -7
- package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +21 -5
- package/dist/react-native/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +28 -6
- package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +23 -7
- package/dist/react-native/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +35 -4
- package/dist/react-native/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts +1 -0
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +22 -4
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +24 -5
- package/dist/react-native/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +18 -5
- package/dist/react-native/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +1 -1
- package/dist/react-native/queryExecutionContext/LegacyFetchImplementation.d.ts +14 -0
- package/dist/react-native/queryExecutionContext/LegacyFetchImplementation.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/LegacyFetchImplementation.js +55 -0
- package/dist/react-native/queryExecutionContext/LegacyFetchImplementation.js.map +1 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeManager.d.ts +73 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeManager.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeManager.js +156 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeManager.js.map +1 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeUtils.d.ts +19 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeUtils.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeUtils.js +105 -0
- package/dist/react-native/queryExecutionContext/PartitionRangeUtils.js.map +1 -0
- package/dist/react-native/queryExecutionContext/QueryControlFetchImplementation.d.ts +20 -0
- package/dist/react-native/queryExecutionContext/QueryControlFetchImplementation.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/QueryControlFetchImplementation.js +93 -0
- package/dist/react-native/queryExecutionContext/QueryControlFetchImplementation.js.map +1 -0
- package/dist/react-native/queryExecutionContext/QueryValidationHelper.d.ts +9 -0
- package/dist/react-native/queryExecutionContext/QueryValidationHelper.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/QueryValidationHelper.js +65 -0
- package/dist/react-native/queryExecutionContext/QueryValidationHelper.js.map +1 -0
- package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.d.ts +2 -2
- package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js +2 -1
- package/dist/react-native/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
- package/dist/react-native/queryExecutionContext/documentProducer.d.ts +9 -3
- package/dist/react-native/queryExecutionContext/documentProducer.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/documentProducer.js +17 -4
- package/dist/react-native/queryExecutionContext/documentProducer.js.map +1 -1
- package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.d.ts +1 -1
- package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js +18 -13
- package/dist/react-native/queryExecutionContext/hybridQueryExecutionContext.js.map +1 -1
- package/dist/react-native/queryExecutionContext/index.d.ts +7 -0
- package/dist/react-native/queryExecutionContext/index.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/index.js +4 -0
- package/dist/react-native/queryExecutionContext/index.js.map +1 -1
- package/dist/react-native/queryExecutionContext/nonStreamingOrderByResult.d.ts +5 -1
- package/dist/react-native/queryExecutionContext/nonStreamingOrderByResult.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
- package/dist/react-native/queryExecutionContext/orderByComparator.d.ts +11 -2
- package/dist/react-native/queryExecutionContext/orderByComparator.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/orderByComparator.js +20 -3
- package/dist/react-native/queryExecutionContext/orderByComparator.js.map +1 -1
- package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.d.ts +4 -0
- package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js +18 -7
- package/dist/react-native/queryExecutionContext/orderByDocumentProducerComparator.js.map +1 -1
- package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.d.ts +7 -10
- package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js +30 -23
- package/dist/react-native/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContext.d.ts +18 -10
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContext.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContext.js +47 -23
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.d.ts +160 -26
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js +453 -106
- package/dist/react-native/queryExecutionContext/parallelQueryExecutionContextBase.js.map +1 -1
- package/dist/react-native/queryExecutionContext/parallelQueryResult.d.ts +35 -0
- package/dist/react-native/queryExecutionContext/parallelQueryResult.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/parallelQueryResult.js +23 -0
- package/dist/react-native/queryExecutionContext/parallelQueryResult.js.map +1 -0
- package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.d.ts +37 -7
- package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.d.ts.map +1 -1
- package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js +173 -120
- package/dist/react-native/queryExecutionContext/pipelinedQueryExecutionContext.js.map +1 -1
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts +40 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/FilterStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +4 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +49 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +310 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts +18 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +102 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts +51 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +180 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts +76 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +93 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts +30 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +4 -0
- package/dist/react-native/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts +29 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +53 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts +27 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +34 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts +36 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +4 -0
- package/dist/react-native/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -0
- package/dist/react-native/queryExecutionContext/queryRangeMapping.d.ts +22 -0
- package/dist/react-native/queryExecutionContext/queryRangeMapping.d.ts.map +1 -0
- package/dist/react-native/queryExecutionContext/queryRangeMapping.js +4 -0
- package/dist/react-native/queryExecutionContext/queryRangeMapping.js.map +1 -0
- package/dist/react-native/queryIterator.js.map +1 -1
- package/dist/react-native/request/RequestHandler.d.ts.map +1 -1
- package/dist/react-native/request/RequestHandler.js +10 -4
- package/dist/react-native/request/RequestHandler.js.map +1 -1
- package/dist/react-native/utils/offers.d.ts.map +1 -1
- package/dist/react-native/utils/offers.js +0 -1
- package/dist/react-native/utils/offers.js.map +1 -1
- package/package.json +23 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybridQueryExecutionContext.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/hybridQueryExecutionContext.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AzureLogger } from \"@azure/logger\";\nimport { createClientLogger } from \"@azure/logger\";\nimport type { ClientContext } from \"../ClientContext.js\";\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport type {\n FeedOptions,\n GlobalStatistics,\n PartitionedQueryExecutionInfo,\n QueryInfo,\n QueryRange,\n Response,\n} from \"../request/index.js\";\nimport { HybridSearchQueryResult } from \"../request/hybridSearchQueryResult.js\";\nimport { GlobalStatisticsAggregator } from \"./Aggregators/GlobalStatisticsAggregator.js\";\nimport type { CosmosHeaders } from \"./CosmosHeaders.js\";\nimport type { ExecutionContext } from \"./ExecutionContext.js\";\nimport { getInitialHeader, mergeHeaders } from \"./headerUtils.js\";\nimport { ParallelQueryExecutionContext } from \"./parallelQueryExecutionContext.js\";\nimport { PipelinedQueryExecutionContext } from \"./pipelinedQueryExecutionContext.js\";\nimport { SqlQuerySpec } from \"./SqlQuerySpec.js\";\n\n/** @hidden */\nexport enum HybridQueryExecutionContextBaseStates {\n uninitialized = \"uninitialized\",\n initialized = \"initialized\",\n draining = \"draining\",\n done = \"done\",\n}\nexport class HybridQueryExecutionContext implements ExecutionContext {\n private globalStatisticsExecutionContext: ExecutionContext;\n private componentsExecutionContext: ExecutionContext[] = [];\n private pageSize: number;\n private state: HybridQueryExecutionContextBaseStates;\n private globalStatisticsAggregator: GlobalStatisticsAggregator;\n private emitRawOrderByPayload: boolean = true;\n private buffer: HybridSearchQueryResult[] = [];\n private DEFAULT_PAGE_SIZE = 10;\n private TOTAL_WORD_COUNT_PLACEHOLDER = \"documentdb-formattablehybridsearchquery-totalwordcount\";\n private HIT_COUNTS_ARRAY_PLACEHOLDER = \"documentdb-formattablehybridsearchquery-hitcountsarray\";\n private TOTAL_DOCUMENT_COUNT_PLACEHOLDER =\n \"documentdb-formattablehybridsearchquery-totaldocumentcount\";\n private RRF_CONSTANT = 60; // Constant for RRF score calculation\n private logger: AzureLogger = createClientLogger(\"HybridQueryExecutionContext\");\n private hybridSearchResult: HybridSearchQueryResult[] = [];\n private uniqueItems = new Map<string, HybridSearchQueryResult>();\n private isSingleComponent: boolean = false;\n\n constructor(\n private clientContext: ClientContext,\n private collectionLink: string,\n private query: string | SqlQuerySpec,\n private options: FeedOptions,\n private partitionedQueryExecutionInfo: PartitionedQueryExecutionInfo,\n private correlatedActivityId: string,\n private allPartitionsRanges: QueryRange[],\n ) {\n this.state = HybridQueryExecutionContextBaseStates.uninitialized;\n this.pageSize = this.options.maxItemCount;\n if (this.pageSize === undefined) {\n this.pageSize = this.DEFAULT_PAGE_SIZE;\n }\n if (partitionedQueryExecutionInfo.hybridSearchQueryInfo.requiresGlobalStatistics) {\n const globalStaticsQueryOptions: FeedOptions = { maxItemCount: this.pageSize };\n this.globalStatisticsAggregator = new GlobalStatisticsAggregator();\n\n const globalStatisticsQuery =\n this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.globalStatisticsQuery;\n const globalStatisticsQueryExecutionInfo: PartitionedQueryExecutionInfo = {\n partitionedQueryExecutionInfoVersion: 1,\n queryInfo: {\n distinctType: \"None\",\n hasSelectValue: false,\n groupByAliasToAggregateType: {},\n rewrittenQuery: globalStatisticsQuery,\n hasNonStreamingOrderBy: false,\n },\n queryRanges: this.allPartitionsRanges,\n };\n\n this.globalStatisticsExecutionContext = new ParallelQueryExecutionContext(\n this.clientContext,\n this.collectionLink,\n globalStatisticsQuery,\n globalStaticsQueryOptions,\n globalStatisticsQueryExecutionInfo,\n this.correlatedActivityId,\n );\n } else {\n this.createComponentExecutionContexts();\n this.state = HybridQueryExecutionContextBaseStates.initialized;\n }\n }\n public async nextItem(diagnosticNode: DiagnosticNodeInternal): Promise<Response<any>> {\n const nextItemRespHeaders = getInitialHeader();\n while (\n (this.state === HybridQueryExecutionContextBaseStates.uninitialized ||\n this.state === HybridQueryExecutionContextBaseStates.initialized) &&\n this.buffer.length === 0\n ) {\n await this.fetchMoreInternal(diagnosticNode, nextItemRespHeaders);\n }\n\n if (this.state === HybridQueryExecutionContextBaseStates.draining && this.buffer.length > 0) {\n return this.drainOne(nextItemRespHeaders);\n } else {\n return this.done(nextItemRespHeaders);\n }\n }\n\n public hasMoreResults(): boolean {\n switch (this.state) {\n case HybridQueryExecutionContextBaseStates.uninitialized:\n return true;\n case HybridQueryExecutionContextBaseStates.initialized:\n return true;\n case HybridQueryExecutionContextBaseStates.draining:\n return this.buffer.length > 0;\n case HybridQueryExecutionContextBaseStates.done:\n return false;\n default:\n return false;\n }\n }\n\n public async fetchMore(diagnosticNode?: DiagnosticNodeInternal): Promise<Response<any>> {\n const fetchMoreRespHeaders = getInitialHeader();\n return this.fetchMoreInternal(diagnosticNode, fetchMoreRespHeaders);\n }\n\n private async fetchMoreInternal(\n diagnosticNode: DiagnosticNodeInternal,\n headers: CosmosHeaders,\n ): Promise<Response<any>> {\n switch (this.state) {\n case HybridQueryExecutionContextBaseStates.uninitialized:\n await this.initialize(diagnosticNode, headers);\n return {\n result: [],\n headers: headers,\n };\n\n case HybridQueryExecutionContextBaseStates.initialized:\n await this.executeComponentQueries(diagnosticNode, headers);\n return {\n result: [],\n headers: headers,\n };\n case HybridQueryExecutionContextBaseStates.draining:\n return this.drain(headers);\n case HybridQueryExecutionContextBaseStates.done:\n return this.done(headers);\n default:\n throw new Error(`Invalid state: ${this.state}`);\n }\n }\n\n private async initialize(\n diagnosticNode: DiagnosticNodeInternal,\n fetchMoreRespHeaders: CosmosHeaders,\n ): Promise<void> {\n try {\n while (this.globalStatisticsExecutionContext.hasMoreResults()) {\n const result = await this.globalStatisticsExecutionContext.fetchMore(diagnosticNode);\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (result && result.result) {\n for (const item of result.result) {\n const globalStatistics: GlobalStatistics = item;\n if (globalStatistics) {\n // iterate over the components update placeholders from globalStatistics\n this.globalStatisticsAggregator.aggregate(globalStatistics);\n }\n }\n }\n }\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n\n // create component execution contexts for each component query\n this.createComponentExecutionContexts();\n this.state = HybridQueryExecutionContextBaseStates.initialized;\n }\n\n private async executeComponentQueries(\n diagnosticNode: DiagnosticNodeInternal,\n fetchMoreRespHeaders: CosmosHeaders,\n ): Promise<void> {\n if (this.isSingleComponent) {\n await this.drainSingleComponent(diagnosticNode, fetchMoreRespHeaders);\n return;\n }\n try {\n if (this.options.enableQueryControl) {\n // track componentExecutionContexts with remaining results and call them in LIFO order\n if (this.componentsExecutionContext.length > 0) {\n const componentExecutionContext = this.componentsExecutionContext.pop();\n if (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagnosticNode);\n const response = result.result;\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (response) {\n response.forEach((item: any) => {\n const hybridItem = HybridSearchQueryResult.create(item);\n if (!this.uniqueItems.has(hybridItem.rid)) {\n this.uniqueItems.set(hybridItem.rid, hybridItem);\n }\n });\n }\n if (componentExecutionContext.hasMoreResults()) {\n this.componentsExecutionContext.push(componentExecutionContext);\n }\n }\n }\n if (this.componentsExecutionContext.length === 0) {\n this.processUniqueItems();\n }\n } else {\n for (const componentExecutionContext of this.componentsExecutionContext) {\n while (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagnosticNode);\n const response = result.result;\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (response) {\n response.forEach((item: any) => {\n const hybridItem = HybridSearchQueryResult.create(item);\n if (!this.uniqueItems.has(hybridItem.rid)) {\n this.uniqueItems.set(hybridItem.rid, hybridItem);\n }\n });\n }\n }\n }\n this.processUniqueItems();\n }\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private processUniqueItems(): void {\n this.uniqueItems.forEach((item) => this.hybridSearchResult.push(item));\n if (this.hybridSearchResult.length === 0 || this.hybridSearchResult.length === 1) {\n // return the result as no or one element is present\n this.hybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.state = HybridQueryExecutionContextBaseStates.draining;\n return;\n }\n\n // Initialize an array to hold ranks for each document\n const componentWeights = this.extractComponentWeights();\n const sortedHybridSearchResult = this.sortHybridSearchResultByRRFScore(\n this.hybridSearchResult,\n componentWeights,\n );\n // store the result to buffer\n // add only data from the sortedHybridSearchResult in the buffer\n sortedHybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.applySkipAndTakeToBuffer();\n this.state = HybridQueryExecutionContextBaseStates.draining;\n }\n\n private applySkipAndTakeToBuffer(): void {\n const { skip, take } = this.partitionedQueryExecutionInfo.hybridSearchQueryInfo;\n if (skip) {\n this.buffer = skip >= this.buffer.length ? [] : this.buffer.slice(skip);\n }\n if (take) {\n this.buffer = take <= 0 ? [] : this.buffer.slice(0, take);\n }\n }\n\n private async drain(fetchMoreRespHeaders: CosmosHeaders): Promise<Response<any>> {\n try {\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n return this.done(fetchMoreRespHeaders);\n }\n const result = this.buffer.slice(0, this.pageSize);\n this.buffer = this.buffer.slice(this.pageSize);\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n }\n return {\n result: result,\n headers: fetchMoreRespHeaders,\n };\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private async drainOne(nextItemRespHeaders: CosmosHeaders): Promise<Response<any>> {\n try {\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n return this.done(nextItemRespHeaders);\n }\n const result = this.buffer.shift();\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n }\n return {\n result: result,\n headers: nextItemRespHeaders,\n };\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private done(fetchMoreRespHeaders: CosmosHeaders): Response<any> {\n return {\n result: undefined,\n headers: fetchMoreRespHeaders,\n };\n }\n\n private sortHybridSearchResultByRRFScore(\n hybridSearchResult: HybridSearchQueryResult[],\n componentWeights: ComponentWeight[],\n ): HybridSearchQueryResult[] {\n if (hybridSearchResult.length === 0) {\n return [];\n }\n const ranksArray: { rid: string; ranks: number[] }[] = hybridSearchResult.map((item) => ({\n rid: item.rid,\n ranks: new Array(item.componentScores.length).fill(0),\n }));\n // Compute ranks for each component score\n for (let i = 0; i < hybridSearchResult[0].componentScores.length; i++) {\n // Sort based on the i-th component score\n hybridSearchResult.sort((a, b) =>\n componentWeights[i].comparator(a.componentScores[i], b.componentScores[i]),\n );\n\n // Assign ranks\n let rank = 1;\n for (let j = 0; j < hybridSearchResult.length; j++) {\n if (\n j > 0 &&\n hybridSearchResult[j].componentScores[i] !== hybridSearchResult[j - 1].componentScores[i]\n ) {\n ++rank;\n }\n const rankIndex = ranksArray.findIndex(\n (rankItem) => rankItem.rid === hybridSearchResult[j].rid,\n );\n ranksArray[rankIndex].ranks[i] = rank; // 1-based rank\n }\n }\n\n // Compute RRF scores and sort based on them\n const rrfScores = ranksArray.map((item) => ({\n rid: item.rid,\n rrfScore: this.computeRRFScore(item.ranks, this.RRF_CONSTANT, componentWeights),\n }));\n\n // Sort based on RRF scores\n rrfScores.sort((a, b) => b.rrfScore - a.rrfScore);\n // Map sorted RRF scores back to hybridSearchResult\n const sortedHybridSearchResult = rrfScores.map((scoreItem) =>\n hybridSearchResult.find((item) => item.rid === scoreItem.rid),\n );\n return sortedHybridSearchResult;\n }\n\n private async drainSingleComponent(\n diagNode: DiagnosticNodeInternal,\n fetchMoreRespHeaders: CosmosHeaders,\n ): Promise<void> {\n if (this.componentsExecutionContext && this.componentsExecutionContext.length !== 1) {\n this.logger.error(\"drainSingleComponent called on multiple components\");\n return;\n }\n try {\n if (this.options.enableQueryControl) {\n const componentExecutionContext = this.componentsExecutionContext[0];\n if (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagNode);\n const response = result.result;\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (response) {\n response.forEach((item: any) => {\n this.hybridSearchResult.push(HybridSearchQueryResult.create(item));\n });\n }\n }\n if (!componentExecutionContext.hasMoreResults()) {\n this.state = HybridQueryExecutionContextBaseStates.draining;\n this.hybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.applySkipAndTakeToBuffer();\n this.state = HybridQueryExecutionContextBaseStates.draining;\n }\n return;\n } else {\n const componentExecutionContext = this.componentsExecutionContext[0];\n const hybridSearchResult: HybridSearchQueryResult[] = [];\n // add check for enable query control\n while (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagNode);\n const response = result.result;\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (response) {\n response.forEach((item: any) => {\n hybridSearchResult.push(HybridSearchQueryResult.create(item));\n });\n }\n }\n hybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.applySkipAndTakeToBuffer();\n this.state = HybridQueryExecutionContextBaseStates.draining;\n }\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private createComponentExecutionContexts(): void {\n // rewrite queries based on global statistics\n let queryInfos: QueryInfo[] =\n this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.componentQueryInfos;\n if (this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.requiresGlobalStatistics) {\n queryInfos = this.processComponentQueries(\n this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.componentQueryInfos,\n this.globalStatisticsAggregator.getResult(),\n );\n }\n // create component execution contexts\n for (const componentQueryInfo of queryInfos) {\n const componentPartitionExecutionInfo: PartitionedQueryExecutionInfo = {\n partitionedQueryExecutionInfoVersion: 1,\n queryInfo: componentQueryInfo,\n queryRanges: this.partitionedQueryExecutionInfo.queryRanges,\n };\n const rewrittenSqlQuerySpec: string | SqlQuerySpec =\n typeof this.query === \"string\"\n ? componentQueryInfo.rewrittenQuery\n : {\n query: componentQueryInfo.rewrittenQuery,\n parameters: this.query?.parameters ?? [],\n };\n const executionContext = new PipelinedQueryExecutionContext(\n this.clientContext,\n this.collectionLink,\n rewrittenSqlQuerySpec,\n this.options,\n componentPartitionExecutionInfo,\n this.correlatedActivityId,\n this.emitRawOrderByPayload,\n );\n this.componentsExecutionContext.push(executionContext);\n }\n this.isSingleComponent = this.componentsExecutionContext.length === 1;\n }\n private processComponentQueries(\n componentQueryInfos: QueryInfo[],\n globalStats: GlobalStatistics,\n ): QueryInfo[] {\n return componentQueryInfos.map((queryInfo) => {\n let rewrittenOrderByExpressions = queryInfo.orderByExpressions;\n if (queryInfo.orderBy && queryInfo.orderBy.length > 0) {\n if (!queryInfo.hasNonStreamingOrderBy) {\n throw new Error(\"The component query must have a non-streaming order by clause.\");\n }\n rewrittenOrderByExpressions = queryInfo.orderByExpressions.map((expr) =>\n this.replacePlaceholdersWorkaroud(expr, globalStats, componentQueryInfos.length),\n );\n }\n return {\n ...queryInfo,\n rewrittenQuery: this.replacePlaceholdersWorkaroud(\n queryInfo.rewrittenQuery,\n globalStats,\n componentQueryInfos.length,\n ),\n orderByExpressions: rewrittenOrderByExpressions,\n };\n });\n }\n // This method is commented currently, but we will switch back to using this\n // once the gateway has been redeployed with the fix for placeholder indexes\n // private replacePlaceholders(query: string, globalStats: GlobalStatistics): string {\n // // Replace total document count\n // query = query.replace(\n // new RegExp(`{${this.TOTAL_DOCUMENT_COUNT_PLACEHOLDER}}`, \"g\"),\n // globalStats.documentCount.toString(),\n // );\n\n // // Replace total word counts and hit counts from fullTextStatistics\n // globalStats.fullTextStatistics.forEach((stats, index) => {\n // // Replace total word counts\n // query = query.replace(\n // new RegExp(`{${this.TOTAL_WORD_COUNT_PLACEHOLDER}-${index}}`, \"g\"),\n // stats.totalWordCount.toString(),\n // );\n // // Replace hit counts\n // query = query.replace(\n // new RegExp(`{${this.HIT_COUNTS_ARRAY_PLACEHOLDER}-${index}}`, \"g\"),\n // `[${stats.hitCounts.join(\",\")}]`,\n // );\n // });\n\n // return query;\n // }\n\n private replacePlaceholdersWorkaroud(\n query: string,\n globalStats: GlobalStatistics,\n componentCount: number,\n ): string {\n if (\n !globalStats ||\n !globalStats.documentCount ||\n !Array.isArray(globalStats.fullTextStatistics)\n ) {\n throw new Error(\"GlobalStats validation failed\");\n }\n // Replace total document count\n query = query.replace(\n new RegExp(`{${this.TOTAL_DOCUMENT_COUNT_PLACEHOLDER}}`, \"g\"),\n globalStats.documentCount.toString(),\n );\n let statisticsIndex: number = 0;\n for (let i = 0; i < componentCount; i++) {\n // Replace total word counts and hit counts from fullTextStatistics\n const wordCountPlaceholder = `{${this.TOTAL_WORD_COUNT_PLACEHOLDER}-${i}}`;\n const hitCountPlaceholder = `{${this.HIT_COUNTS_ARRAY_PLACEHOLDER}-${i}}`;\n if (!query.includes(wordCountPlaceholder)) {\n continue;\n }\n const stats = globalStats.fullTextStatistics[statisticsIndex];\n // Replace total word counts\n query = query.replace(new RegExp(wordCountPlaceholder, \"g\"), stats.totalWordCount.toString());\n // Replace hit counts\n query = query.replace(new RegExp(hitCountPlaceholder, \"g\"), `[${stats.hitCounts.join(\",\")}]`);\n statisticsIndex++;\n }\n return query;\n }\n\n private computeRRFScore = (\n ranks: number[],\n k: number,\n componentWeights: ComponentWeight[],\n ): number => {\n if (ranks.length !== componentWeights.length) {\n throw new Error(\"Ranks and component weights length mismatch\");\n }\n let rrfScore = 0;\n for (let i = 0; i < ranks.length; i++) {\n const rank = ranks[i];\n const weight = componentWeights[i].weight;\n rrfScore += weight * (1 / (k + rank));\n }\n return rrfScore;\n };\n\n private extractComponentWeights(): ComponentWeight[] {\n const hybridSearchQueryInfo = this.partitionedQueryExecutionInfo.hybridSearchQueryInfo;\n const useDefaultComponentWeight =\n !hybridSearchQueryInfo.componentWeights ||\n hybridSearchQueryInfo.componentWeights.length === 0;\n\n const result: {\n weight: number;\n comparator: (x: number, y: number) => number;\n }[] = [];\n\n for (let index = 0; index < hybridSearchQueryInfo.componentQueryInfos.length; ++index) {\n const queryInfo = hybridSearchQueryInfo.componentQueryInfos[index];\n\n if (queryInfo.orderBy && queryInfo.orderBy.length > 0) {\n if (!queryInfo.hasNonStreamingOrderBy) {\n throw new Error(\"The component query should have a non streaming order by\");\n }\n\n if (!queryInfo.orderByExpressions || queryInfo.orderByExpressions.length !== 1) {\n throw new Error(\"The component query should have exactly one order by expression\");\n }\n }\n const componentWeight = useDefaultComponentWeight\n ? 1\n : hybridSearchQueryInfo.componentWeights[index];\n const hasOrderBy = queryInfo.orderBy && queryInfo.orderBy.length > 0;\n const sortOrder = hasOrderBy && queryInfo.orderBy[0].includes(\"Ascending\") ? 1 : -1;\n result.push({\n weight: componentWeight,\n comparator: (x: number, y: number) => sortOrder * (x - y),\n });\n }\n return result;\n }\n}\n\nexport interface ComponentWeight {\n weight: number;\n comparator: (x: number, y: number) => number;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"hybridQueryExecutionContext.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/hybridQueryExecutionContext.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AzureLogger } from \"@azure/logger\";\nimport { createClientLogger } from \"@azure/logger\";\nimport type { ClientContext } from \"../ClientContext.js\";\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport type {\n FeedOptions,\n GlobalStatistics,\n PartitionedQueryExecutionInfo,\n QueryInfo,\n QueryRange,\n Response,\n} from \"../request/index.js\";\nimport { HybridSearchQueryResult } from \"../request/hybridSearchQueryResult.js\";\nimport { GlobalStatisticsAggregator } from \"./Aggregators/GlobalStatisticsAggregator.js\";\nimport type { CosmosHeaders } from \"./CosmosHeaders.js\";\nimport type { ExecutionContext } from \"./ExecutionContext.js\";\nimport { getInitialHeader, mergeHeaders } from \"./headerUtils.js\";\nimport { ParallelQueryExecutionContext } from \"./parallelQueryExecutionContext.js\";\nimport { PipelinedQueryExecutionContext } from \"./pipelinedQueryExecutionContext.js\";\nimport type { SqlQuerySpec } from \"./SqlQuerySpec.js\";\nimport { type ParallelQueryResult } from \"./parallelQueryResult.js\";\nimport {\n rejectContinuationTokenForUnsupportedQueries,\n QueryTypes,\n} from \"./QueryValidationHelper.js\";\n\n/** @hidden */\nexport enum HybridQueryExecutionContextBaseStates {\n uninitialized = \"uninitialized\",\n initialized = \"initialized\",\n draining = \"draining\",\n done = \"done\",\n}\nexport class HybridQueryExecutionContext implements ExecutionContext {\n private globalStatisticsExecutionContext: ExecutionContext;\n private componentsExecutionContext: ExecutionContext[] = [];\n private pageSize: number;\n private state: HybridQueryExecutionContextBaseStates;\n private globalStatisticsAggregator: GlobalStatisticsAggregator;\n private emitRawOrderByPayload: boolean = true;\n private buffer: HybridSearchQueryResult[] = [];\n private DEFAULT_PAGE_SIZE = 10;\n private TOTAL_WORD_COUNT_PLACEHOLDER = \"documentdb-formattablehybridsearchquery-totalwordcount\";\n private HIT_COUNTS_ARRAY_PLACEHOLDER = \"documentdb-formattablehybridsearchquery-hitcountsarray\";\n private TOTAL_DOCUMENT_COUNT_PLACEHOLDER =\n \"documentdb-formattablehybridsearchquery-totaldocumentcount\";\n private RRF_CONSTANT = 60; // Constant for RRF score calculation\n private logger: AzureLogger = createClientLogger(\"HybridQueryExecutionContext\");\n private hybridSearchResult: HybridSearchQueryResult[] = [];\n private uniqueItems = new Map<string, HybridSearchQueryResult>();\n private isSingleComponent: boolean = false;\n\n constructor(\n private clientContext: ClientContext,\n private collectionLink: string,\n private query: string | SqlQuerySpec,\n private options: FeedOptions,\n private partitionedQueryExecutionInfo: PartitionedQueryExecutionInfo,\n private correlatedActivityId: string,\n private allPartitionsRanges: QueryRange[],\n ) {\n rejectContinuationTokenForUnsupportedQueries(this.options.continuationToken, [\n QueryTypes.hybridSearch(true),\n ]);\n\n this.state = HybridQueryExecutionContextBaseStates.uninitialized;\n this.pageSize = this.options.maxItemCount;\n if (this.pageSize === undefined) {\n this.pageSize = this.DEFAULT_PAGE_SIZE;\n }\n if (partitionedQueryExecutionInfo.hybridSearchQueryInfo.requiresGlobalStatistics) {\n const globalStaticsQueryOptions: FeedOptions = { maxItemCount: this.pageSize };\n this.globalStatisticsAggregator = new GlobalStatisticsAggregator();\n\n const globalStatisticsQuery =\n this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.globalStatisticsQuery;\n const globalStatisticsQueryExecutionInfo: PartitionedQueryExecutionInfo = {\n partitionedQueryExecutionInfoVersion: 1,\n queryInfo: {\n distinctType: \"None\",\n hasSelectValue: false,\n groupByAliasToAggregateType: {},\n rewrittenQuery: globalStatisticsQuery,\n hasNonStreamingOrderBy: false,\n },\n queryRanges: this.allPartitionsRanges,\n };\n\n this.globalStatisticsExecutionContext = new ParallelQueryExecutionContext(\n this.clientContext,\n this.collectionLink,\n globalStatisticsQuery,\n globalStaticsQueryOptions,\n globalStatisticsQueryExecutionInfo,\n this.correlatedActivityId,\n );\n } else {\n this.createComponentExecutionContexts();\n this.state = HybridQueryExecutionContextBaseStates.initialized;\n }\n }\n public async nextItem(diagnosticNode: DiagnosticNodeInternal): Promise<Response<any>> {\n const nextItemRespHeaders = getInitialHeader();\n while (\n (this.state === HybridQueryExecutionContextBaseStates.uninitialized ||\n this.state === HybridQueryExecutionContextBaseStates.initialized) &&\n this.buffer.length === 0\n ) {\n await this.fetchMoreInternal(diagnosticNode, nextItemRespHeaders);\n }\n\n if (this.state === HybridQueryExecutionContextBaseStates.draining && this.buffer.length > 0) {\n return this.drainOne(nextItemRespHeaders);\n } else {\n return this.done(nextItemRespHeaders);\n }\n }\n\n public hasMoreResults(): boolean {\n switch (this.state) {\n case HybridQueryExecutionContextBaseStates.uninitialized:\n return true;\n case HybridQueryExecutionContextBaseStates.initialized:\n return true;\n case HybridQueryExecutionContextBaseStates.draining:\n return this.buffer.length > 0;\n case HybridQueryExecutionContextBaseStates.done:\n return false;\n default:\n return false;\n }\n }\n\n public async fetchMore(diagnosticNode?: DiagnosticNodeInternal): Promise<Response<any>> {\n const fetchMoreRespHeaders = getInitialHeader();\n return this.fetchMoreInternal(diagnosticNode, fetchMoreRespHeaders);\n }\n\n private async fetchMoreInternal(\n diagnosticNode: DiagnosticNodeInternal,\n headers: CosmosHeaders,\n ): Promise<Response<any>> {\n switch (this.state) {\n case HybridQueryExecutionContextBaseStates.uninitialized:\n await this.initialize(diagnosticNode, headers);\n return {\n result: [],\n headers: headers,\n };\n\n case HybridQueryExecutionContextBaseStates.initialized:\n await this.executeComponentQueries(diagnosticNode, headers);\n return {\n result: [],\n headers: headers,\n };\n case HybridQueryExecutionContextBaseStates.draining:\n return this.drain(headers);\n case HybridQueryExecutionContextBaseStates.done:\n return this.done(headers);\n default:\n throw new Error(`Invalid state: ${this.state}`);\n }\n }\n\n private async initialize(\n diagnosticNode: DiagnosticNodeInternal,\n fetchMoreRespHeaders: CosmosHeaders,\n ): Promise<void> {\n try {\n while (this.globalStatisticsExecutionContext.hasMoreResults()) {\n const result = await this.globalStatisticsExecutionContext.fetchMore(diagnosticNode);\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n if (result && result.result) {\n const resultData = (result.result as ParallelQueryResult).buffer;\n for (const item of resultData) {\n const globalStatistics: GlobalStatistics = item;\n if (globalStatistics) {\n // iterate over the components update placeholders from globalStatistics\n this.globalStatisticsAggregator.aggregate(globalStatistics);\n }\n }\n }\n }\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n\n // create component execution contexts for each component query\n this.createComponentExecutionContexts();\n this.state = HybridQueryExecutionContextBaseStates.initialized;\n }\n\n private async executeComponentQueries(\n diagnosticNode: DiagnosticNodeInternal,\n fetchMoreRespHeaders: CosmosHeaders,\n ): Promise<void> {\n if (this.isSingleComponent) {\n await this.drainSingleComponent(diagnosticNode, fetchMoreRespHeaders);\n return;\n }\n try {\n if (this.options.enableQueryControl) {\n // track componentExecutionContexts with remaining results and call them in LIFO order\n if (this.componentsExecutionContext.length > 0) {\n const componentExecutionContext = this.componentsExecutionContext.pop();\n if (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagnosticNode);\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n\n const resultData = result.result;\n if (result && resultData) {\n resultData.forEach((item: any) => {\n const hybridItem = HybridSearchQueryResult.create(item);\n if (!this.uniqueItems.has(hybridItem.rid)) {\n this.uniqueItems.set(hybridItem.rid, hybridItem);\n }\n });\n }\n if (componentExecutionContext.hasMoreResults()) {\n this.componentsExecutionContext.push(componentExecutionContext);\n }\n }\n }\n if (this.componentsExecutionContext.length === 0) {\n this.processUniqueItems();\n }\n } else {\n for (const componentExecutionContext of this.componentsExecutionContext) {\n while (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagnosticNode);\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n\n const resultData = result.result;\n if (result && resultData) {\n resultData.forEach((item: any) => {\n const hybridItem = HybridSearchQueryResult.create(item);\n if (!this.uniqueItems.has(hybridItem.rid)) {\n this.uniqueItems.set(hybridItem.rid, hybridItem);\n }\n });\n }\n }\n }\n this.processUniqueItems();\n }\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private processUniqueItems(): void {\n this.uniqueItems.forEach((item) => this.hybridSearchResult.push(item));\n if (this.hybridSearchResult.length === 0 || this.hybridSearchResult.length === 1) {\n // return the result as no or one element is present\n this.hybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.state = HybridQueryExecutionContextBaseStates.draining;\n return;\n }\n\n // Initialize an array to hold ranks for each document\n const componentWeights = this.extractComponentWeights();\n const sortedHybridSearchResult = this.sortHybridSearchResultByRRFScore(\n this.hybridSearchResult,\n componentWeights,\n );\n // store the result to buffer\n // add only data from the sortedHybridSearchResult in the buffer\n sortedHybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.applySkipAndTakeToBuffer();\n this.state = HybridQueryExecutionContextBaseStates.draining;\n }\n\n private applySkipAndTakeToBuffer(): void {\n const { skip, take } = this.partitionedQueryExecutionInfo.hybridSearchQueryInfo;\n if (skip) {\n this.buffer = skip >= this.buffer.length ? [] : this.buffer.slice(skip);\n }\n if (take) {\n this.buffer = take <= 0 ? [] : this.buffer.slice(0, take);\n }\n }\n\n private async drain(fetchMoreRespHeaders: CosmosHeaders): Promise<Response<any>> {\n try {\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n return this.done(fetchMoreRespHeaders);\n }\n const result = this.buffer.slice(0, this.pageSize);\n this.buffer = this.buffer.slice(this.pageSize);\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n }\n return {\n result: result,\n headers: fetchMoreRespHeaders,\n };\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private async drainOne(nextItemRespHeaders: CosmosHeaders): Promise<Response<any>> {\n try {\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n return this.done(nextItemRespHeaders);\n }\n const result = this.buffer.shift();\n if (this.buffer.length === 0) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n }\n return {\n result: result,\n headers: nextItemRespHeaders,\n };\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private done(fetchMoreRespHeaders: CosmosHeaders): Response<any> {\n return {\n result: undefined,\n headers: fetchMoreRespHeaders,\n };\n }\n\n private sortHybridSearchResultByRRFScore(\n hybridSearchResult: HybridSearchQueryResult[],\n componentWeights: ComponentWeight[],\n ): HybridSearchQueryResult[] {\n if (hybridSearchResult.length === 0) {\n return [];\n }\n const ranksArray: { rid: string; ranks: number[] }[] = hybridSearchResult.map((item) => ({\n rid: item.rid,\n ranks: new Array(item.componentScores.length).fill(0),\n }));\n // Compute ranks for each component score\n for (let i = 0; i < hybridSearchResult[0].componentScores.length; i++) {\n // Sort based on the i-th component score\n hybridSearchResult.sort((a, b) =>\n componentWeights[i].comparator(a.componentScores[i], b.componentScores[i]),\n );\n\n // Assign ranks\n let rank = 1;\n for (let j = 0; j < hybridSearchResult.length; j++) {\n if (\n j > 0 &&\n hybridSearchResult[j].componentScores[i] !== hybridSearchResult[j - 1].componentScores[i]\n ) {\n ++rank;\n }\n const rankIndex = ranksArray.findIndex(\n (rankItem) => rankItem.rid === hybridSearchResult[j].rid,\n );\n ranksArray[rankIndex].ranks[i] = rank; // 1-based rank\n }\n }\n\n // Compute RRF scores and sort based on them\n const rrfScores = ranksArray.map((item) => ({\n rid: item.rid,\n rrfScore: this.computeRRFScore(item.ranks, this.RRF_CONSTANT, componentWeights),\n }));\n\n // Sort based on RRF scores\n rrfScores.sort((a, b) => b.rrfScore - a.rrfScore);\n // Map sorted RRF scores back to hybridSearchResult\n const sortedHybridSearchResult = rrfScores.map((scoreItem) =>\n hybridSearchResult.find((item) => item.rid === scoreItem.rid),\n );\n return sortedHybridSearchResult;\n }\n\n private async drainSingleComponent(\n diagNode: DiagnosticNodeInternal,\n fetchMoreRespHeaders: CosmosHeaders,\n ): Promise<void> {\n if (this.componentsExecutionContext && this.componentsExecutionContext.length !== 1) {\n this.logger.error(\"drainSingleComponent called on multiple components\");\n return;\n }\n try {\n if (this.options.enableQueryControl) {\n const componentExecutionContext = this.componentsExecutionContext[0];\n if (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagNode);\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n\n const resultData = result.result;\n\n if (result && resultData) {\n resultData.forEach((item: any) => {\n this.hybridSearchResult.push(HybridSearchQueryResult.create(item));\n });\n }\n }\n if (!componentExecutionContext.hasMoreResults()) {\n this.state = HybridQueryExecutionContextBaseStates.draining;\n this.hybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.applySkipAndTakeToBuffer();\n this.state = HybridQueryExecutionContextBaseStates.draining;\n }\n return;\n } else {\n const componentExecutionContext = this.componentsExecutionContext[0];\n const hybridSearchResult: HybridSearchQueryResult[] = [];\n // add check for enable query control\n while (componentExecutionContext.hasMoreResults()) {\n const result = await componentExecutionContext.fetchMore(diagNode);\n mergeHeaders(fetchMoreRespHeaders, result.headers);\n\n const resultData = result.result;\n if (result && resultData) {\n resultData.forEach((item: any) => {\n hybridSearchResult.push(HybridSearchQueryResult.create(item));\n });\n }\n }\n hybridSearchResult.forEach((item) => this.buffer.push(item.data));\n this.applySkipAndTakeToBuffer();\n this.state = HybridQueryExecutionContextBaseStates.draining;\n }\n } catch (error) {\n this.state = HybridQueryExecutionContextBaseStates.done;\n throw error;\n }\n }\n\n private createComponentExecutionContexts(): void {\n // rewrite queries based on global statistics\n let queryInfos: QueryInfo[] =\n this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.componentQueryInfos;\n if (this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.requiresGlobalStatistics) {\n queryInfos = this.processComponentQueries(\n this.partitionedQueryExecutionInfo.hybridSearchQueryInfo.componentQueryInfos,\n this.globalStatisticsAggregator.getResult(),\n );\n }\n // create component execution contexts\n for (const componentQueryInfo of queryInfos) {\n const componentPartitionExecutionInfo: PartitionedQueryExecutionInfo = {\n partitionedQueryExecutionInfoVersion: 1,\n queryInfo: componentQueryInfo,\n queryRanges: this.partitionedQueryExecutionInfo.queryRanges,\n };\n const rewrittenSqlQuerySpec: string | SqlQuerySpec =\n typeof this.query === \"string\"\n ? componentQueryInfo.rewrittenQuery\n : {\n query: componentQueryInfo.rewrittenQuery,\n parameters: this.query?.parameters ?? [],\n };\n const executionContext = new PipelinedQueryExecutionContext(\n this.clientContext,\n this.collectionLink,\n rewrittenSqlQuerySpec,\n this.options,\n componentPartitionExecutionInfo,\n this.correlatedActivityId,\n this.emitRawOrderByPayload,\n );\n this.componentsExecutionContext.push(executionContext);\n }\n this.isSingleComponent = this.componentsExecutionContext.length === 1;\n }\n private processComponentQueries(\n componentQueryInfos: QueryInfo[],\n globalStats: GlobalStatistics,\n ): QueryInfo[] {\n return componentQueryInfos.map((queryInfo) => {\n let rewrittenOrderByExpressions = queryInfo.orderByExpressions;\n if (queryInfo.orderBy && queryInfo.orderBy.length > 0) {\n if (!queryInfo.hasNonStreamingOrderBy) {\n throw new Error(\"The component query must have a non-streaming order by clause.\");\n }\n rewrittenOrderByExpressions = queryInfo.orderByExpressions.map((expr) =>\n this.replacePlaceholdersWorkaroud(expr, globalStats, componentQueryInfos.length),\n );\n }\n return {\n ...queryInfo,\n rewrittenQuery: this.replacePlaceholdersWorkaroud(\n queryInfo.rewrittenQuery,\n globalStats,\n componentQueryInfos.length,\n ),\n orderByExpressions: rewrittenOrderByExpressions,\n };\n });\n }\n // This method is commented currently, but we will switch back to using this\n // once the gateway has been redeployed with the fix for placeholder indexes\n // private replacePlaceholders(query: string, globalStats: GlobalStatistics): string {\n // // Replace total document count\n // query = query.replace(\n // new RegExp(`{${this.TOTAL_DOCUMENT_COUNT_PLACEHOLDER}}`, \"g\"),\n // globalStats.documentCount.toString(),\n // );\n\n // // Replace total word counts and hit counts from fullTextStatistics\n // globalStats.fullTextStatistics.forEach((stats, index) => {\n // // Replace total word counts\n // query = query.replace(\n // new RegExp(`{${this.TOTAL_WORD_COUNT_PLACEHOLDER}-${index}}`, \"g\"),\n // stats.totalWordCount.toString(),\n // );\n // // Replace hit counts\n // query = query.replace(\n // new RegExp(`{${this.HIT_COUNTS_ARRAY_PLACEHOLDER}-${index}}`, \"g\"),\n // `[${stats.hitCounts.join(\",\")}]`,\n // );\n // });\n\n // return query;\n // }\n\n private replacePlaceholdersWorkaroud(\n query: string,\n globalStats: GlobalStatistics,\n componentCount: number,\n ): string {\n if (\n !globalStats ||\n !globalStats.documentCount ||\n !Array.isArray(globalStats.fullTextStatistics)\n ) {\n throw new Error(\"GlobalStats validation failed\");\n }\n // Replace total document count\n query = query.replace(\n new RegExp(`{${this.TOTAL_DOCUMENT_COUNT_PLACEHOLDER}}`, \"g\"),\n globalStats.documentCount.toString(),\n );\n let statisticsIndex: number = 0;\n for (let i = 0; i < componentCount; i++) {\n // Replace total word counts and hit counts from fullTextStatistics\n const wordCountPlaceholder = `{${this.TOTAL_WORD_COUNT_PLACEHOLDER}-${i}}`;\n const hitCountPlaceholder = `{${this.HIT_COUNTS_ARRAY_PLACEHOLDER}-${i}}`;\n if (!query.includes(wordCountPlaceholder)) {\n continue;\n }\n const stats = globalStats.fullTextStatistics[statisticsIndex];\n // Replace total word counts\n query = query.replace(new RegExp(wordCountPlaceholder, \"g\"), stats.totalWordCount.toString());\n // Replace hit counts\n query = query.replace(new RegExp(hitCountPlaceholder, \"g\"), `[${stats.hitCounts.join(\",\")}]`);\n statisticsIndex++;\n }\n return query;\n }\n\n private computeRRFScore = (\n ranks: number[],\n k: number,\n componentWeights: ComponentWeight[],\n ): number => {\n if (ranks.length !== componentWeights.length) {\n throw new Error(\"Ranks and component weights length mismatch\");\n }\n let rrfScore = 0;\n for (let i = 0; i < ranks.length; i++) {\n const rank = ranks[i];\n const weight = componentWeights[i].weight;\n rrfScore += weight * (1 / (k + rank));\n }\n return rrfScore;\n };\n\n private extractComponentWeights(): ComponentWeight[] {\n const hybridSearchQueryInfo = this.partitionedQueryExecutionInfo.hybridSearchQueryInfo;\n const useDefaultComponentWeight =\n !hybridSearchQueryInfo.componentWeights ||\n hybridSearchQueryInfo.componentWeights.length === 0;\n\n const result: {\n weight: number;\n comparator: (x: number, y: number) => number;\n }[] = [];\n\n for (let index = 0; index < hybridSearchQueryInfo.componentQueryInfos.length; ++index) {\n const queryInfo = hybridSearchQueryInfo.componentQueryInfos[index];\n\n if (queryInfo.orderBy && queryInfo.orderBy.length > 0) {\n if (!queryInfo.hasNonStreamingOrderBy) {\n throw new Error(\"The component query should have a non streaming order by\");\n }\n\n if (!queryInfo.orderByExpressions || queryInfo.orderByExpressions.length !== 1) {\n throw new Error(\"The component query should have exactly one order by expression\");\n }\n }\n const componentWeight = useDefaultComponentWeight\n ? 1\n : hybridSearchQueryInfo.componentWeights[index];\n const hasOrderBy = queryInfo.orderBy && queryInfo.orderBy.length > 0;\n const sortOrder = hasOrderBy && queryInfo.orderBy[0].includes(\"Ascending\") ? 1 : -1;\n result.push({\n weight: componentWeight,\n comparator: (x: number, y: number) => sortOrder * (x - y),\n });\n }\n return result;\n }\n}\n\nexport interface ComponentWeight {\n weight: number;\n comparator: (x: number, y: number) => number;\n}\n"]}
|
|
@@ -11,4 +11,11 @@ export * from "./parallelQueryExecutionContext.js";
|
|
|
11
11
|
export * from "./orderByQueryExecutionContext.js";
|
|
12
12
|
export * from "./pipelinedQueryExecutionContext.js";
|
|
13
13
|
export * from "./orderByComparator.js";
|
|
14
|
+
export type { FilterContext, FilterStrategy } from "./queryFilteringStrategy/FilterStrategy.js";
|
|
15
|
+
export { RidSkipCountFilter } from "./queryFilteringStrategy/RidSkipCountFilter.js";
|
|
16
|
+
export { TargetPartitionRangeManager, QueryExecutionContextType, } from "./queryFilteringStrategy/TargetPartitionRangeManager.js";
|
|
17
|
+
export type { TargetPartitionRangeManagerConfig } from "./queryFilteringStrategy/TargetPartitionRangeManager.js";
|
|
18
|
+
export type { TargetPartitionRangeStrategy, PartitionRangeFilterResult, } from "./queryFilteringStrategy/TargetPartitionRangeStrategy.js";
|
|
19
|
+
export { ParallelQueryRangeStrategy } from "./queryFilteringStrategy/ParallelQueryRangeStrategy.js";
|
|
20
|
+
export { OrderByQueryRangeStrategy } from "./queryFilteringStrategy/OrderByQueryRangeStrategy.js";
|
|
14
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/queryExecutionContext/index.ts"],"names":[],"mappings":"AAEA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/queryExecutionContext/index.ts"],"names":[],"mappings":"AAEA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC;AAGvC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,yDAAyD,CAAC;AACjE,YAAY,EAAE,iCAAiC,EAAE,MAAM,yDAAyD,CAAC;AACjH,YAAY,EACV,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,0DAA0D,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wDAAwD,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC"}
|
|
@@ -13,4 +13,8 @@ export * from "./parallelQueryExecutionContext.js";
|
|
|
13
13
|
export * from "./orderByQueryExecutionContext.js";
|
|
14
14
|
export * from "./pipelinedQueryExecutionContext.js";
|
|
15
15
|
export * from "./orderByComparator.js";
|
|
16
|
+
export { RidSkipCountFilter } from "./queryFilteringStrategy/RidSkipCountFilter.js";
|
|
17
|
+
export { TargetPartitionRangeManager, QueryExecutionContextType, } from "./queryFilteringStrategy/TargetPartitionRangeManager.js";
|
|
18
|
+
export { ParallelQueryRangeStrategy } from "./queryFilteringStrategy/ParallelQueryRangeStrategy.js";
|
|
19
|
+
export { OrderByQueryRangeStrategy } from "./queryFilteringStrategy/OrderByQueryRangeStrategy.js";
|
|
16
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nexport * from \"./headerUtils.js\";\nexport * from \"./SqlQuerySpec.js\";\nexport * from \"./defaultQueryExecutionContext.js\";\nexport * from \"./Aggregators/index.js\";\nexport * from \"./documentProducer.js\";\nexport * from \"./FetchResult.js\";\nexport * from \"./orderByDocumentProducerComparator.js\";\nexport * from \"./ExecutionContext.js\";\nexport * from \"./parallelQueryExecutionContextBase.js\";\nexport * from \"./parallelQueryExecutionContext.js\";\nexport * from \"./orderByQueryExecutionContext.js\";\nexport * from \"./pipelinedQueryExecutionContext.js\";\nexport * from \"./orderByComparator.js\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mCAAmC,CAAC;AAClD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC;AAIvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,yDAAyD,CAAC;AAMjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wDAAwD,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nexport * from \"./headerUtils.js\";\nexport * from \"./SqlQuerySpec.js\";\nexport * from \"./defaultQueryExecutionContext.js\";\nexport * from \"./Aggregators/index.js\";\nexport * from \"./documentProducer.js\";\nexport * from \"./FetchResult.js\";\nexport * from \"./orderByDocumentProducerComparator.js\";\nexport * from \"./ExecutionContext.js\";\nexport * from \"./parallelQueryExecutionContextBase.js\";\nexport * from \"./parallelQueryExecutionContext.js\";\nexport * from \"./orderByQueryExecutionContext.js\";\nexport * from \"./pipelinedQueryExecutionContext.js\";\nexport * from \"./orderByComparator.js\";\n\n// Query Filtering Strategy - Direct exports\nexport type { FilterContext, FilterStrategy } from \"./queryFilteringStrategy/FilterStrategy.js\";\nexport { RidSkipCountFilter } from \"./queryFilteringStrategy/RidSkipCountFilter.js\";\nexport {\n TargetPartitionRangeManager,\n QueryExecutionContextType,\n} from \"./queryFilteringStrategy/TargetPartitionRangeManager.js\";\nexport type { TargetPartitionRangeManagerConfig } from \"./queryFilteringStrategy/TargetPartitionRangeManager.js\";\nexport type {\n TargetPartitionRangeStrategy,\n PartitionRangeFilterResult,\n} from \"./queryFilteringStrategy/TargetPartitionRangeStrategy.js\";\nexport { ParallelQueryRangeStrategy } from \"./queryFilteringStrategy/ParallelQueryRangeStrategy.js\";\nexport { OrderByQueryRangeStrategy } from \"./queryFilteringStrategy/OrderByQueryRangeStrategy.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nonStreamingOrderByResult.d.ts","sourceRoot":"","sources":["../../../src/queryExecutionContext/nonStreamingOrderByResult.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"nonStreamingOrderByResult.d.ts","sourceRoot":"","sources":["../../../src/queryExecutionContext/nonStreamingOrderByResult.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC;CACd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nonStreamingOrderByResult.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/nonStreamingOrderByResult.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport interface NonStreamingOrderByResult {\n orderByItems: [];\n payload: any;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nonStreamingOrderByResult.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/nonStreamingOrderByResult.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport interface NonStreamingOrderByResult {\n orderByItems: any[];\n payload: any;\n}\n\nexport interface OrderByDocument {\n orderByItems: any[];\n payload: any;\n}\n"]}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { OrderByDocument } from "./nonStreamingOrderByResult.js";
|
|
2
|
+
/**
|
|
3
|
+
* @hidden
|
|
4
|
+
* Utility function to compare two sets of OrderBy items according to sort orders
|
|
5
|
+
* @param orderByItemsA - First set of order by items
|
|
6
|
+
* @param orderByItemsB - Second set of order by items
|
|
7
|
+
* @param sortOrders - Array of sort orders ("Ascending" or "Descending")
|
|
8
|
+
* @returns Comparison result: negative if A \< B, 0 if A == B, positive if A \> B
|
|
9
|
+
*/
|
|
10
|
+
export declare function compareOrderByItems(orderByItemsA: any[], orderByItemsB: any[], sortOrders: string[]): number;
|
|
2
11
|
/** @hidden */
|
|
3
12
|
export declare class OrderByComparator {
|
|
4
13
|
sortOrder: string[];
|
|
5
14
|
constructor(sortOrder: string[]);
|
|
6
|
-
compareItems(
|
|
15
|
+
compareItems(a: OrderByDocument, b: OrderByDocument): number;
|
|
7
16
|
private getOrderByItems;
|
|
8
17
|
private compareOrderByItem;
|
|
9
18
|
private getType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderByComparator.d.ts","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByComparator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"orderByComparator.d.ts","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByComparator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,GAAG,EAAE,EACpB,aAAa,EAAE,GAAG,EAAE,EACpB,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,CAQR;AAoCD,cAAc;AACd,qBAAa,iBAAiB;IACT,SAAS,EAAE,MAAM,EAAE;gBAAnB,SAAS,EAAE,MAAM,EAAE;IAE/B,YAAY,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM;IAmBnE,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,OAAO;IAuBf,OAAO,CAAC,YAAY;CAkCrB"}
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
+
/**
|
|
4
|
+
* @hidden
|
|
5
|
+
* Utility function to compare two sets of OrderBy items according to sort orders
|
|
6
|
+
* @param orderByItemsA - First set of order by items
|
|
7
|
+
* @param orderByItemsB - Second set of order by items
|
|
8
|
+
* @param sortOrders - Array of sort orders ("Ascending" or "Descending")
|
|
9
|
+
* @returns Comparison result: negative if A \< B, 0 if A == B, positive if A \> B
|
|
10
|
+
*/
|
|
11
|
+
export function compareOrderByItems(orderByItemsA, orderByItemsB, sortOrders) {
|
|
12
|
+
const comparator = new OrderByComparator(sortOrders);
|
|
13
|
+
// Create temporary OrderByDocument objects for comparison
|
|
14
|
+
const docA = { orderByItems: orderByItemsA, payload: null };
|
|
15
|
+
const docB = { orderByItems: orderByItemsB, payload: null };
|
|
16
|
+
return comparator.compareItems(docA, docB);
|
|
17
|
+
}
|
|
3
18
|
/**
|
|
4
19
|
* @hidden
|
|
5
20
|
* ord is used to compare different types. Eg. in ascending order, for cross type comparison, boolean will come first, then number and, then string.
|
|
@@ -37,9 +52,9 @@ export class OrderByComparator {
|
|
|
37
52
|
constructor(sortOrder) {
|
|
38
53
|
this.sortOrder = sortOrder;
|
|
39
54
|
}
|
|
40
|
-
compareItems(
|
|
41
|
-
const orderByItemsRes1 = this.getOrderByItems(
|
|
42
|
-
const orderByItemsRes2 = this.getOrderByItems(
|
|
55
|
+
compareItems(a, b) {
|
|
56
|
+
const orderByItemsRes1 = this.getOrderByItems(a);
|
|
57
|
+
const orderByItemsRes2 = this.getOrderByItems(b);
|
|
43
58
|
for (let i = 0; i < orderByItemsRes1.length; i++) {
|
|
44
59
|
// compares the orderby items one by one
|
|
45
60
|
const compRes = this.compareOrderByItem(orderByItemsRes1[i], orderByItemsRes2[i]);
|
|
@@ -52,6 +67,8 @@ export class OrderByComparator {
|
|
|
52
67
|
}
|
|
53
68
|
}
|
|
54
69
|
}
|
|
70
|
+
// If all orderBy items are equal, return 0
|
|
71
|
+
return 0;
|
|
55
72
|
}
|
|
56
73
|
getOrderByItems(res) {
|
|
57
74
|
return res["orderByItems"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderByComparator.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByComparator.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC;;;;GAIG;AACH,MAAM,iBAAiB,GAEnB,MAAM,CAAC,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,GAAG,EAAE,CAAC;KACP;IACD,SAAS,EAAE;QACT,GAAG,EAAE,CAAC;KACP;IACD,OAAO,EAAE;QACP,GAAG,EAAE,CAAC;QACN,QAAQ,EAAE,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE;YACnC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;KACF;IACD,MAAM,EAAE;QACN,GAAG,EAAE,CAAC;QACN,QAAQ,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;KACF;IACD,MAAM,EAAE;QACN,GAAG,EAAE,CAAC;QACN,QAAQ,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;KACF;CACF,CAAC,CAAC;AAEH,cAAc;AACd,MAAM,OAAO,iBAAiB;IACT;IAAnB,YAAmB,SAAmB;QAAnB,cAAS,GAAT,SAAS,CAAU;IAAG,CAAC;IAEnC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"orderByComparator.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByComparator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OrderByDocument } from \"./nonStreamingOrderByResult.js\";\n\n/**\n * @hidden\n * Utility function to compare two sets of OrderBy items according to sort orders\n * @param orderByItemsA - First set of order by items\n * @param orderByItemsB - Second set of order by items\n * @param sortOrders - Array of sort orders (\"Ascending\" or \"Descending\")\n * @returns Comparison result: negative if A \\< B, 0 if A == B, positive if A \\> B\n */\nexport function compareOrderByItems(\n orderByItemsA: any[],\n orderByItemsB: any[],\n sortOrders: string[],\n): number {\n const comparator = new OrderByComparator(sortOrders);\n\n // Create temporary OrderByDocument objects for comparison\n const docA: OrderByDocument = { orderByItems: orderByItemsA, payload: null };\n const docB: OrderByDocument = { orderByItems: orderByItemsB, payload: null };\n\n return comparator.compareItems(docA, docB);\n}\n\n/**\n * @hidden\n * ord is used to compare different types. Eg. in ascending order, for cross type comparison, boolean will come first, then number and, then string.\n * compFunc is used to compare the same type comparison.\n */\nconst TYPEORDCOMPARATOR: {\n [type: string]: { ord: number; compFunc?: (a: any, b: any) => number };\n} = Object.freeze({\n NoValue: {\n ord: 0,\n },\n undefined: {\n ord: 1,\n },\n boolean: {\n ord: 2,\n compFunc: (a: boolean, b: boolean) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n number: {\n ord: 4,\n compFunc: (a: number, b: number) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n string: {\n ord: 5,\n compFunc: (a: string, b: string) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n});\n\n/** @hidden */\nexport class OrderByComparator {\n constructor(public sortOrder: string[]) {}\n\n public compareItems(a: OrderByDocument, b: OrderByDocument): number {\n const orderByItemsRes1 = this.getOrderByItems(a);\n const orderByItemsRes2 = this.getOrderByItems(b);\n\n for (let i = 0; i < orderByItemsRes1.length; i++) {\n // compares the orderby items one by one\n const compRes = this.compareOrderByItem(orderByItemsRes1[i], orderByItemsRes2[i]);\n if (compRes !== 0) {\n if (this.sortOrder[i] === \"Descending\") {\n return compRes;\n } else if (this.sortOrder[i] === \"Ascending\") {\n return -compRes;\n }\n }\n }\n // If all orderBy items are equal, return 0\n return 0;\n }\n\n private getOrderByItems(res: any): any {\n return res[\"orderByItems\"];\n }\n\n private compareOrderByItem(orderByItem1: any, orderByItem2: any): number {\n const type1 = this.getType(orderByItem1);\n const type2 = this.getType(orderByItem2);\n return this.compareValue(orderByItem1[\"item\"], type1, orderByItem2[\"item\"], type2);\n }\n\n private getType(\n orderByItem: any,\n ):\n | \"string\"\n | \"number\"\n | \"bigint\"\n | \"boolean\"\n | \"symbol\"\n | \"undefined\"\n | \"object\"\n | \"function\"\n | \"NoValue\" {\n // TODO: any item?\n if (orderByItem === undefined || orderByItem.item === undefined) {\n return \"NoValue\";\n }\n const type = typeof orderByItem.item;\n if (TYPEORDCOMPARATOR[type] === undefined) {\n throw new Error(`unrecognizable type ${type}`);\n }\n return type;\n }\n\n private compareValue(item1: unknown, type1: string, item2: unknown, type2: string): number {\n // TODO: https://github.com/Azure/azure-sdk-for-js/issues/30122\n // currently we do not support same type and cross type comparision for object and arrays.\n\n if (type1 === \"object\" || type2 === \"object\") {\n throw new Error(\"Tried to compare an object type\");\n }\n const type1Ord = TYPEORDCOMPARATOR[type1].ord;\n const type2Ord = TYPEORDCOMPARATOR[type2].ord;\n\n // Validate if the two item are of same type or not based on the type ordinal.\n const typeCmp = type1Ord - type2Ord;\n\n // if not same type, compare based on the type ordinal. Lower ordinal takes precedence over higher ordinal.\n if (typeCmp !== 0) {\n return typeCmp;\n }\n\n // both are of the same type\n if (\n type1Ord === TYPEORDCOMPARATOR[\"undefined\"].ord ||\n type1Ord === TYPEORDCOMPARATOR[\"NoValue\"].ord\n ) {\n // if both types are undefined or Null they are equal\n return 0;\n }\n\n const compFunc = TYPEORDCOMPARATOR[type1].compFunc;\n if (typeof compFunc === \"undefined\") {\n throw new Error(\"Cannot find the comparison function\");\n }\n // same type and type is defined compare the items\n return compFunc(item1, item2);\n }\n}\n"]}
|
|
@@ -3,6 +3,10 @@ import type { DocumentProducer } from "./documentProducer.js";
|
|
|
3
3
|
export declare class OrderByDocumentProducerComparator {
|
|
4
4
|
sortOrder: string[];
|
|
5
5
|
constructor(sortOrder: string[]);
|
|
6
|
+
/**
|
|
7
|
+
* Compares document producers based on their partition key range minInclusive values.
|
|
8
|
+
* Uses minEPK as a tie-breaker when minInclusive values are equal.
|
|
9
|
+
*/
|
|
6
10
|
private targetPartitionKeyRangeDocProdComparator;
|
|
7
11
|
compare(docProd1: DocumentProducer, docProd2: DocumentProducer): number;
|
|
8
12
|
compareValue(item1: unknown, type1: string, item2: unknown, type2: string): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderByDocumentProducerComparator.d.ts","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByDocumentProducerComparator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAiC9D,cAAc;AACd,qBAAa,iCAAiC;IACzB,SAAS,EAAE,MAAM,EAAE;gBAAnB,SAAS,EAAE,MAAM,EAAE;IAEtC,OAAO,CAAC,wCAAwC;
|
|
1
|
+
{"version":3,"file":"orderByDocumentProducerComparator.d.ts","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByDocumentProducerComparator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAiC9D,cAAc;AACd,qBAAa,iCAAiC;IACzB,SAAS,EAAE,MAAM,EAAE;gBAAnB,SAAS,EAAE,MAAM,EAAE;IAEtC;;;OAGG;IACH,OAAO,CAAC,wCAAwC;IAkBzC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,MAAM;IAmCvE,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IA8BzF,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,OAAO;IAuBf,OAAO,CAAC,eAAe;CAIxB"}
|
|
@@ -32,10 +32,21 @@ export class OrderByDocumentProducerComparator {
|
|
|
32
32
|
constructor(sortOrder) {
|
|
33
33
|
this.sortOrder = sortOrder;
|
|
34
34
|
} // TODO: This should be an enum
|
|
35
|
+
/**
|
|
36
|
+
* Compares document producers based on their partition key range minInclusive values.
|
|
37
|
+
* Uses minEPK as a tie-breaker when minInclusive values are equal.
|
|
38
|
+
*/
|
|
35
39
|
targetPartitionKeyRangeDocProdComparator(docProd1, docProd2) {
|
|
36
|
-
const a = docProd1.
|
|
37
|
-
const b = docProd2.
|
|
38
|
-
|
|
40
|
+
const a = docProd1.getTargetPartitionKeyRange().minInclusive;
|
|
41
|
+
const b = docProd2.getTargetPartitionKeyRange().minInclusive;
|
|
42
|
+
// Primary comparison using minInclusive (ascending lexicographic order)
|
|
43
|
+
if (a !== b) {
|
|
44
|
+
return a < b ? -1 : 1;
|
|
45
|
+
}
|
|
46
|
+
// Tie-breaker: use minEPK when minInclusive values are equal
|
|
47
|
+
const epkA = docProd1.startEpk;
|
|
48
|
+
const epkB = docProd2.startEpk;
|
|
49
|
+
return epkA !== undefined && epkB !== undefined ? (epkA < epkB ? -1 : epkA > epkB ? 1 : 0) : 0;
|
|
39
50
|
}
|
|
40
51
|
compare(docProd1, docProd2) {
|
|
41
52
|
// Need to check for split, since we don't want to dereference "item" of undefined / exception
|
|
@@ -63,7 +74,9 @@ export class OrderByDocumentProducerComparator {
|
|
|
63
74
|
}
|
|
64
75
|
}
|
|
65
76
|
}
|
|
66
|
-
|
|
77
|
+
// If all ORDER BY comparisons result in equality, use partition range as tie-breaker
|
|
78
|
+
const partitionRangeResult = this.targetPartitionKeyRangeDocProdComparator(docProd1, docProd2);
|
|
79
|
+
return partitionRangeResult;
|
|
67
80
|
}
|
|
68
81
|
// TODO: This smells funny
|
|
69
82
|
compareValue(item1, type1, item2, type2) {
|
|
@@ -91,9 +104,7 @@ export class OrderByDocumentProducerComparator {
|
|
|
91
104
|
return compFunc(item1, item2);
|
|
92
105
|
}
|
|
93
106
|
compareOrderByItem(orderByItem1, orderByItem2) {
|
|
94
|
-
|
|
95
|
-
const type2 = this.getType(orderByItem2);
|
|
96
|
-
return this.compareValue(orderByItem1["item"], type1, orderByItem2["item"], type2);
|
|
107
|
+
return this.compareValue(orderByItem1["item"], this.getType(orderByItem1), orderByItem2["item"], this.getType(orderByItem2));
|
|
97
108
|
}
|
|
98
109
|
validateOrderByItems(res1, res2) {
|
|
99
110
|
if (res1.length !== res2.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderByDocumentProducerComparator.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByDocumentProducerComparator.ts"],"names":[],"mappings":"AAIA,0BAA0B;AAC1B,cAAc;AACd,MAAM,iBAAiB,GAEnB,MAAM,CAAC,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,GAAG,EAAE,CAAC;KACP;IACD,SAAS,EAAE;QACT,GAAG,EAAE,CAAC;KACP;IACD,OAAO,EAAE;QACP,GAAG,EAAE,CAAC;QACN,QAAQ,EAAE,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE;YACnC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;KACF;IACD,MAAM,EAAE;QACN,GAAG,EAAE,CAAC;QACN,QAAQ,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;KACF;IACD,MAAM,EAAE;QACN,GAAG,EAAE,CAAC;QACN,QAAQ,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;KACF;CACF,CAAC,CAAC;AAEH,cAAc;AACd,MAAM,OAAO,iCAAiC;IACzB;IAAnB,YAAmB,SAAmB;QAAnB,cAAS,GAAT,SAAS,CAAU;IAAG,CAAC,CAAC,+BAA+B;IAElE,wCAAwC,CAC9C,QAA0B,EAC1B,QAA0B;QAE1B,MAAM,CAAC,GAAG,QAAQ,CAAC,yBAAyB,EAAE,CAAC,cAAc,CAAC,CAAC;QAC/D,MAAM,CAAC,GAAG,QAAQ,CAAC,yBAAyB,EAAE,CAAC,cAAc,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAEM,OAAO,CAAC,QAA0B,EAAE,QAA0B;QACnE,8FAA8F;QAC9F,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/E,oCAAoC;QACpC,yEAAyE;QACzE,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAE9D,gCAAgC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,wCAAwC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;YAClF,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;oBACtC,OAAO,OAAO,CAAC;gBACjB,CAAC;qBAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;oBAC9C,OAAO,CAAC,OAAO,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,wCAAwC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAED,0BAA0B;IACnB,YAAY,CAAC,KAAc,EAAE,KAAa,EAAE,KAAc,EAAE,KAAa;QAC9E,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;QAC9C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;QAC9C,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAEpC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,+CAA+C;YAC/C,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,4BAA4B;QAC5B,IACE,QAAQ,KAAK,iBAAiB,CAAC,WAAW,CAAC,CAAC,GAAG;YAC/C,QAAQ,KAAK,iBAAiB,CAAC,SAAS,CAAC,CAAC,GAAG,EAC7C,CAAC;YACD,qDAAqD;YACrD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;QACnD,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,kDAAkD;QAClD,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAEO,kBAAkB,CAAC,YAAiB,EAAE,YAAiB;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IACrF,CAAC;IAEO,oBAAoB,CAAC,IAAc,EAAE,IAAc;QACzD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,MAAM,aAAa,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CACb,YAAY,KAAK,aAAa,KAAK,4JAA4J,CAChM,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,OAAO,CACb,WAAgB;QAWhB,kBAAkB;QAClB,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;QACrC,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe,CAAC,GAAQ;QAC9B,iBAAiB;QACjB,OAAO,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { DocumentProducer } from \"./documentProducer.js\";\n\n// TODO: this smells funny\n/** @hidden */\nconst TYPEORDCOMPARATOR: {\n [type: string]: { ord: number; compFunc?: (a: any, b: any) => number };\n} = Object.freeze({\n NoValue: {\n ord: 0,\n },\n undefined: {\n ord: 1,\n },\n boolean: {\n ord: 2,\n compFunc: (a: boolean, b: boolean) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n number: {\n ord: 4,\n compFunc: (a: number, b: number) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n string: {\n ord: 5,\n compFunc: (a: string, b: string) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n});\n\n/** @hidden */\nexport class OrderByDocumentProducerComparator {\n constructor(public sortOrder: string[]) {} // TODO: This should be an enum\n\n private targetPartitionKeyRangeDocProdComparator(\n docProd1: DocumentProducer,\n docProd2: DocumentProducer,\n ): 0 | 1 | -1 {\n const a = docProd1.getTargetParitionKeyRange()[\"minInclusive\"];\n const b = docProd2.getTargetParitionKeyRange()[\"minInclusive\"];\n return a === b ? 0 : a > b ? 1 : -1;\n }\n\n public compare(docProd1: DocumentProducer, docProd2: DocumentProducer): number {\n // Need to check for split, since we don't want to dereference \"item\" of undefined / exception\n if (docProd1.gotSplit()) {\n return -1;\n }\n if (docProd2.gotSplit()) {\n return 1;\n }\n\n const orderByItemsRes1 = this.getOrderByItems(docProd1.peekBufferedItems()[0]);\n const orderByItemsRes2 = this.getOrderByItems(docProd2.peekBufferedItems()[0]);\n\n // validate order by items and types\n // TODO: once V1 order by on different types is fixed this need to change\n this.validateOrderByItems(orderByItemsRes1, orderByItemsRes2);\n\n // no async call in the for loop\n for (let i = 0; i < orderByItemsRes1.length; i++) {\n // compares the orderby items one by one\n const compRes = this.compareOrderByItem(orderByItemsRes1[i], orderByItemsRes2[i]);\n if (compRes !== 0) {\n if (this.sortOrder[i] === \"Ascending\") {\n return compRes;\n } else if (this.sortOrder[i] === \"Descending\") {\n return -compRes;\n }\n }\n }\n\n return this.targetPartitionKeyRangeDocProdComparator(docProd1, docProd2);\n }\n\n // TODO: This smells funny\n public compareValue(item1: unknown, type1: string, item2: unknown, type2: string): number {\n if (type1 === \"object\" || type2 === \"object\") {\n throw new Error(\"Tried to compare an object type\");\n }\n const type1Ord = TYPEORDCOMPARATOR[type1].ord;\n const type2Ord = TYPEORDCOMPARATOR[type2].ord;\n const typeCmp = type1Ord - type2Ord;\n\n if (typeCmp !== 0) {\n // if the types are different, use type ordinal\n return typeCmp;\n }\n\n // both are of the same type\n if (\n type1Ord === TYPEORDCOMPARATOR[\"undefined\"].ord ||\n type1Ord === TYPEORDCOMPARATOR[\"NoValue\"].ord\n ) {\n // if both types are undefined or Null they are equal\n return 0;\n }\n\n const compFunc = TYPEORDCOMPARATOR[type1].compFunc;\n if (typeof compFunc === \"undefined\") {\n throw new Error(\"Cannot find the comparison function\");\n }\n // same type and type is defined compare the items\n return compFunc(item1, item2);\n }\n\n private compareOrderByItem(orderByItem1: any, orderByItem2: any): number {\n const type1 = this.getType(orderByItem1);\n const type2 = this.getType(orderByItem2);\n return this.compareValue(orderByItem1[\"item\"], type1, orderByItem2[\"item\"], type2);\n }\n\n private validateOrderByItems(res1: string[], res2: string[]): void {\n if (res1.length !== res2.length) {\n throw new Error(`Expected ${res1.length}, but got ${res2.length}.`);\n }\n if (res1.length !== this.sortOrder.length) {\n throw new Error(\"orderByItems cannot have a different size than sort orders.\");\n }\n\n for (let i = 0; i < this.sortOrder.length; i++) {\n const type1 = this.getType(res1[i]);\n const type2 = this.getType(res2[i]);\n if (type1 !== type2) {\n throw new Error(\n `Expected ${type1}, but got ${type2}. Cannot execute cross partition order-by queries on mixed types. Consider filtering your query using IS_STRING or IS_NUMBER to get around this exception.`,\n );\n }\n }\n }\n\n private getType(\n orderByItem: any,\n ):\n | \"string\"\n | \"number\"\n | \"bigint\"\n | \"boolean\"\n | \"symbol\"\n | \"undefined\"\n | \"object\"\n | \"function\"\n | \"NoValue\" {\n // TODO: any item?\n if (orderByItem === undefined || orderByItem.item === undefined) {\n return \"NoValue\";\n }\n const type = typeof orderByItem.item;\n if (TYPEORDCOMPARATOR[type] === undefined) {\n throw new Error(`unrecognizable type ${type}`);\n }\n return type;\n }\n\n private getOrderByItems(res: any): any {\n // TODO: any res?\n return res[\"orderByItems\"];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"orderByDocumentProducerComparator.js","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByDocumentProducerComparator.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { DocumentProducer } from \"./documentProducer.js\";\n\n// TODO: this smells funny\n/** @hidden */\nconst TYPEORDCOMPARATOR: {\n [type: string]: { ord: number; compFunc?: (a: any, b: any) => number };\n} = Object.freeze({\n NoValue: {\n ord: 0,\n },\n undefined: {\n ord: 1,\n },\n boolean: {\n ord: 2,\n compFunc: (a: boolean, b: boolean) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n number: {\n ord: 4,\n compFunc: (a: number, b: number) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n string: {\n ord: 5,\n compFunc: (a: string, b: string) => {\n return a === b ? 0 : a > b ? 1 : -1;\n },\n },\n});\n\n/** @hidden */\nexport class OrderByDocumentProducerComparator {\n constructor(public sortOrder: string[]) {} // TODO: This should be an enum\n\n /**\n * Compares document producers based on their partition key range minInclusive values.\n * Uses minEPK as a tie-breaker when minInclusive values are equal.\n */\n private targetPartitionKeyRangeDocProdComparator(\n docProd1: DocumentProducer,\n docProd2: DocumentProducer,\n ): 0 | 1 | -1 {\n const a = docProd1.getTargetPartitionKeyRange().minInclusive;\n const b = docProd2.getTargetPartitionKeyRange().minInclusive;\n\n // Primary comparison using minInclusive (ascending lexicographic order)\n if (a !== b) {\n return a < b ? -1 : 1;\n }\n\n // Tie-breaker: use minEPK when minInclusive values are equal\n const epkA = docProd1.startEpk;\n const epkB = docProd2.startEpk;\n return epkA !== undefined && epkB !== undefined ? (epkA < epkB ? -1 : epkA > epkB ? 1 : 0) : 0;\n }\n\n public compare(docProd1: DocumentProducer, docProd2: DocumentProducer): number {\n // Need to check for split, since we don't want to dereference \"item\" of undefined / exception\n if (docProd1.gotSplit()) {\n return -1;\n }\n if (docProd2.gotSplit()) {\n return 1;\n }\n\n const orderByItemsRes1 = this.getOrderByItems(docProd1.peekBufferedItems()[0]);\n const orderByItemsRes2 = this.getOrderByItems(docProd2.peekBufferedItems()[0]);\n\n // validate order by items and types\n // TODO: once V1 order by on different types is fixed this need to change\n this.validateOrderByItems(orderByItemsRes1, orderByItemsRes2);\n\n // no async call in the for loop\n for (let i = 0; i < orderByItemsRes1.length; i++) {\n // compares the orderby items one by one\n const compRes = this.compareOrderByItem(orderByItemsRes1[i], orderByItemsRes2[i]);\n if (compRes !== 0) {\n if (this.sortOrder[i] === \"Ascending\") {\n return compRes;\n } else if (this.sortOrder[i] === \"Descending\") {\n return -compRes;\n }\n }\n }\n\n // If all ORDER BY comparisons result in equality, use partition range as tie-breaker\n const partitionRangeResult = this.targetPartitionKeyRangeDocProdComparator(docProd1, docProd2);\n return partitionRangeResult;\n }\n\n // TODO: This smells funny\n public compareValue(item1: unknown, type1: string, item2: unknown, type2: string): number {\n if (type1 === \"object\" || type2 === \"object\") {\n throw new Error(\"Tried to compare an object type\");\n }\n const type1Ord = TYPEORDCOMPARATOR[type1].ord;\n const type2Ord = TYPEORDCOMPARATOR[type2].ord;\n const typeCmp = type1Ord - type2Ord;\n\n if (typeCmp !== 0) {\n // if the types are different, use type ordinal\n return typeCmp;\n }\n\n // both are of the same type\n if (\n type1Ord === TYPEORDCOMPARATOR[\"undefined\"].ord ||\n type1Ord === TYPEORDCOMPARATOR[\"NoValue\"].ord\n ) {\n // if both types are undefined or Null they are equal\n return 0;\n }\n\n const compFunc = TYPEORDCOMPARATOR[type1].compFunc;\n if (typeof compFunc === \"undefined\") {\n throw new Error(\"Cannot find the comparison function\");\n }\n // same type and type is defined compare the items\n return compFunc(item1, item2);\n }\n\n private compareOrderByItem(orderByItem1: any, orderByItem2: any): number {\n return this.compareValue(\n orderByItem1[\"item\"],\n this.getType(orderByItem1),\n orderByItem2[\"item\"],\n this.getType(orderByItem2),\n );\n }\n\n private validateOrderByItems(res1: string[], res2: string[]): void {\n if (res1.length !== res2.length) {\n throw new Error(`Expected ${res1.length}, but got ${res2.length}.`);\n }\n if (res1.length !== this.sortOrder.length) {\n throw new Error(\"orderByItems cannot have a different size than sort orders.\");\n }\n\n for (let i = 0; i < this.sortOrder.length; i++) {\n const type1 = this.getType(res1[i]);\n const type2 = this.getType(res2[i]);\n if (type1 !== type2) {\n throw new Error(\n `Expected ${type1}, but got ${type2}. Cannot execute cross partition order-by queries on mixed types. Consider filtering your query using IS_STRING or IS_NUMBER to get around this exception.`,\n );\n }\n }\n }\n\n private getType(\n orderByItem: any,\n ):\n | \"string\"\n | \"number\"\n | \"bigint\"\n | \"boolean\"\n | \"symbol\"\n | \"undefined\"\n | \"object\"\n | \"function\"\n | \"NoValue\" {\n // TODO: any item?\n if (orderByItem === undefined || orderByItem.item === undefined) {\n return \"NoValue\";\n }\n const type = typeof orderByItem.item;\n if (TYPEORDCOMPARATOR[type] === undefined) {\n throw new Error(`unrecognizable type ${type}`);\n }\n return type;\n }\n\n private getOrderByItems(res: any): any {\n // TODO: any res?\n return res[\"orderByItems\"];\n }\n}\n"]}
|
|
@@ -3,12 +3,11 @@ import type { PartitionedQueryExecutionInfo } from "../request/ErrorResponse.js"
|
|
|
3
3
|
import type { FeedOptions } from "../request/FeedOptions.js";
|
|
4
4
|
import type { DocumentProducer } from "./documentProducer.js";
|
|
5
5
|
import type { ExecutionContext } from "./ExecutionContext.js";
|
|
6
|
-
import {
|
|
6
|
+
import type { Response } from "../request/index.js";
|
|
7
7
|
import { ParallelQueryExecutionContextBase } from "./parallelQueryExecutionContextBase.js";
|
|
8
8
|
import type { SqlQuerySpec } from "./SqlQuerySpec.js";
|
|
9
9
|
/** @hidden */
|
|
10
10
|
export declare class OrderByQueryExecutionContext extends ParallelQueryExecutionContextBase implements ExecutionContext {
|
|
11
|
-
private orderByComparator;
|
|
12
11
|
/**
|
|
13
12
|
* Provides the OrderByQueryExecutionContext.
|
|
14
13
|
* This class is capable of handling orderby queries and dervives from ParallelQueryExecutionContextBase.
|
|
@@ -24,17 +23,15 @@ export declare class OrderByQueryExecutionContext extends ParallelQueryExecution
|
|
|
24
23
|
*/
|
|
25
24
|
constructor(clientContext: ClientContext, collectionLink: string, query: string | SqlQuerySpec, options: FeedOptions, partitionedQueryExecutionInfo: PartitionedQueryExecutionInfo, correlatedActivityId: string);
|
|
26
25
|
/**
|
|
27
|
-
*
|
|
28
|
-
* @returns Comparator Function
|
|
29
|
-
* @hidden
|
|
26
|
+
* Fetches next single item from producer for ORDER BY processing.
|
|
30
27
|
*/
|
|
31
|
-
|
|
28
|
+
protected fetchFromProducer(producer: DocumentProducer): Promise<Response<any>>;
|
|
32
29
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* @
|
|
30
|
+
* Determines if buffered producers should continue to be processed for ORDER BY queries.
|
|
31
|
+
* For ORDER BY, only process when no unfilled producers remain to maintain order.
|
|
32
|
+
* @param isUnfilledQueueEmpty - Whether the unfilled queue is empty
|
|
36
33
|
* @hidden
|
|
37
34
|
*/
|
|
38
|
-
|
|
35
|
+
protected shouldProcessBufferedProducers(isUnfilledQueueEmpty: boolean): boolean;
|
|
39
36
|
}
|
|
40
37
|
//# sourceMappingURL=orderByQueryExecutionContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderByQueryExecutionContext.d.ts","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByQueryExecutionContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"orderByQueryExecutionContext.d.ts","sourceRoot":"","sources":["../../../src/queryExecutionContext/orderByQueryExecutionContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,cAAc;AACd,qBAAa,4BACX,SAAQ,iCACR,YAAW,gBAAgB;IAE3B;;;;;;;;;;;;OAYG;gBAED,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,GAAG,YAAY,EAC5B,OAAO,EAAE,WAAW,EACpB,6BAA6B,EAAE,6BAA6B,EAC5D,oBAAoB,EAAE,MAAM;IAmC9B;;OAEG;cACa,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAWrF;;;;;OAKG;IACH,SAAS,CAAC,8BAA8B,CAAC,oBAAoB,EAAE,OAAO,GAAG,OAAO;CAIjF"}
|