Skip to content

Commit

Permalink
[Internal] Msdata/Direct: Refactors msdata/direct branch with latest …
Browse files Browse the repository at this point in the history
…v3 master and Cosmos.Direct v3.30.4 (#3776)

* [Internal] Client Telemetry: Fixes tests leaking environment variables (#3517)

* Adding log lines

* More logs

* Debugging further

* Removing other builds

* And more debugging

* Wrong build parameters

* Wrong category

* Removing noise

* Fixing test

* Adding utils

* Adding test with client telemetry enabled

* Fixing leak in Client Telemetry Tests

* Reenabling test

* cpu monitor initialization

* Adding name details

* Undo another file

* Updated change log and bumped up the version. (#3526)

* Query: Fixes performance regression on target partition on some ORDER BY queries with continuation (#3525)

* Revert performance regression caused by #1289

* Remove irrelevant comment

* Add a test for validating formatted filters for the target partition

* [Internal] AI Integration: Adds SubStatusCode Information in attributes (#3533)

* wip

* regenerated baseline

* add test

* fix test

Co-authored-by: Sourabh Jain <sourabhjain@microsoft.com>

* Diagnostics: Removes unused properties and reduces size (#3519)

* Remove starttime and id from diagnostics string

* Remove starttime and id from diagnostics string

* Update xml files for trace baseline tests

* Update xml files for trace baseline tests

* Update xml files for trace baseline tests

* Whitespaces update

* Changed starttime position based on code review

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* [Internal] docs: Add address caches conceptual flow (#3534)

* Rough draft

* Some more changes

* Adding a new section

* Some more refinement

* Some changes 

Lets get the feedback

* Some MISC changes

* Release: Adds SDK version and changelog for 3.31.2 (#3546)

* Bumped SDK version and changelog

* Added contracts file for 3.31.2

* [Internal] Documentation: Removes invalid comment from ReadThroughputAsync (#3516)

* [Internal] nugetconfig: Removes specific overrides (#3551)

* Query: Fixes partition range evaluation for spatial queries (#3495)

* Initial commit

* Update.

* Pull/Rebase

* Addressed comments.

* Build fix

* [Internal] Documentation: Refactors cache content on its own document (#3554)

* Add cache file

* Moving content away

* [Internal] Emulator unit tests: Adds IdEncoding unit tests for ComputeGateway (#3556)

* Adding IdEncoding unit tests for ComputeGateway

* Reacting to code review feedback

* Updating md files

* Change Feed Processor: Adds support for Resource Tokens (#3566)

* Adding rid parsing

* Test

* Removing dead code

* Contract update

* [Internal] AI integration: Refactor code how container and database name is flowing to opentelemetry module (#3532)

* wip

* WIP

* Revert "WIP"

This reverts commit 71275de54b9e67fa54a37e79d450b9597e173934.

* Revert "wip"

This reverts commit 586fa9865cc3f40dabd7ef90fb3e0cf499a045bc.

* wip add containe and database info

* redesign how container and database name information flows into opne telemetry data

* test fix

* fix test

* fix tests

* fix typos

* baseline test fix

Co-authored-by: Sourabh Jain <sourabhjain@microsoft.com>

* [Internal] AI Integration: Adds a new flag in DistributedTracingOptions (#3562)

* add flag in diagnostic options

* test fixes

* rename variable

* test fix

* add validation

* fix baseline

* test fix

Co-authored-by: Sourabh Jain <sourabhjain@microsoft.com>

* Query: Fixes default to BadRequestException in case of internal errors in ServiceInterop (#3399)

* Don't default to BadRequestException in case of errors in ServiceInterop

* Incorporate code review feedback

* Fix build error

* fix up failing test

* [Internal] Query: Adds unit tests for Merge/Split implementation with OptimisticDirectExecution pipeline (#3510)

* Added tests to test different aspects of merge/split support with OptimisticDirectExecution pipeline. Tests check for gone exception handling, pipeline switching etc.

* Added gone exception simulation tests.

* Added new tests and improved test infra

* Removed ParalleContEvocation test. Fixed comments

* Removed CreateParallelCrossPartitionPipelineStateAsync() as it is not being used anymore

* Removed while loop in CreateDocumentContainerAsync()

* Fixed comments.

* Updated ExecuteGoneExceptionOnODEPipeline()

* Added type Assert for ExecuteGoneExceptionOnODEPipeline()

* Updated OptimisticDirectExecution pipeline abbreviation

* Updated TestBaseline folder with new xml

* Client Retry Policy: Adds HTTP timeouts with request-level cross-region retry (#3555)

* Fixes to ReadThroughputAsync for databases with no provisioned throughput and null as request options

* fixed failure to ReadReplaceThroughputResponseTests

* Added Stream Method

* Ran UpdateContract.ps1

* Encryption implemtation

* Fixed spelling error

* Update Microsoft.Azure.Cosmos.Encryption/src/EncryptionDatabase.cs

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* Variable name change

* Update Microsoft.Azure.Cosmos/src/Resource/Database/Database.cs

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* Suggested Changes and fixes

* Removed manufactured ResponseMessage + nits

* Simplified PR

* nits

* nits

* initial changes TODO: Update tests

* updated tests

* nits'

* Ran UpdateContracts.ps1

* nits + requested changes

* Delete NuGet.Config

* Update Microsoft.Azure.Cosmos/src/HttpClient/CosmosHttpClientCore.cs

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* Update Microsoft.Azure.Cosmos/src/HttpClient/HttpTimeoutPolicy.cs

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* Update Microsoft.Azure.Cosmos/src/HttpClient/HttpTimeoutPolicy.cs

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* Update Microsoft.Azure.Cosmos/src/HttpClient/HttpTimeoutPolicy.cs

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* Use Cosmos Exception Factory, Simplified Tests

* removed unused code

* nits: removed unused code

* removed unused code

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>
Co-authored-by: Nalu Tripician <ntripician@microsoft.com>

* Documentation: Fixes EUAP in Comments (#3579)

* Query: Fixes incorrect FeedResponse.Count when result contains undefined elements (#3574)

* Do not maintain an independent count on QueryResponse that can go out of sync

* Add more test coverage for QueryResponse<T>.Count

* Output the correct count from CosmosElementSerializer when the input contains CosmosUndefined

* Add untyped tests for CosmosUndefined

* Remove commented code

* removed allr eference (#3581)

Co-authored-by: Sourabh Jain <sourabhjain@microsoft.com>

* Trace: Fixes Tracing/diagnostics hour-times to 24Hours (#3577)

* Trace: Fixes Tracing/diagnostics hour-times to 24Hours

* fixing baseline tests

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* AI Integration: Adds cosmetic fixes (#3576)

* wip

* status code int and internal and client kind activity

* remove unused imports

* update baselines

* fix test

* fixed baseline tests

* fix tests

* update base tetss

Co-authored-by: Sourabh Jain <sourabhjain@microsoft.com>

* Query: Adds ALL Scalar Expression (#3509)

* Add SqlAllScalarExpression to v3 DOM

* updated generated parser files

* Parsing for ALL

* Added tests for ALL and baselines

* Added more tests

* added new test, cleanup

* cleaning & fix typos

* fixed typo

* Added new baseline test file names to csproj file

* renamed AggregateAll to AggregateSubquery to accomodate FIRST and LAST later

* Added keywords for 'left' and 'right' and respective function calls

* fixed bug from last commit

* cleaning

* replace tabs with spaces

* cleaning

* Release: Adds API contracts for 3.31.2-preview (#3586)

* [Internal] sccignore: Adds a .sccignore file to apply an exception for artifacts configuration issues (#3589)

* [Internal] PermissionTests: Adds CosmosPermissionTests Coverage (#3593)

* Ensures that both Direct and Gateway connection modes are tested
* Validates that container read works with PermissionMode.Read (test was previously only validating that Delete was blocked - i.e. the negative case).

* [Internal] AI Integration: Refactors to Operation prefix and add tests (#3583)

* add tests for otel and custome listener

* clean up

* null pointer fix

* fix tets

* handle event generation also at operation level

* added documentation

* wip

* change event sourcename

* rename event Name

Co-authored-by: Sourabh Jain <sourabhjain@microsoft.com>

* [Internal] HttpTimeoutPolicy: Removes Data Plane Writes from being able to be retried (#3607)

* data plane writes no longer failover on timeout

* removed duplication of test\

* [Internal] Performance Testing: Adds Distributed Tracing option in benchmarks (#3611)

Co-authored-by: Sourabh Jain <sourabhjain@microsoft.com>

* [Internal] Benchmark: Refactors code to make Memory Stream capacity configurable (#3624)

Co-authored-by: Sourabh Jain <sourabhjain@microsoft.com>

* add new LatestVersion changefeed mode that has same behavior as Incremental; renamed FullFidelity to AllVersionsAndDeletes (#3596)

* Query: Fixes handling of CosmosUndefined, CosmosGuid and CosmosBinary in unordered DISTINCT (#3632)

* Handle CosmosUndefined, CosmosGuid and CosmosBinary in DistinctMap.UnorderedDistinctMap

* Address code review feedback and remove unnecessary allocations from DistinctQueryPipelineStageTests

* [Internal] Subpartitioning: Adds updates to test coverage for subpartitioning (#3618)

* updates to test coverage for subpartitioning

* bug fixes

* now useses Assert.ThrowsException

* Seperated into multiple tests for clarity

* Put MultiHash test into seperate test file

* nit

* [Internal] ContainerProperties: Fixes version reset when setting PartitionKeyPath (#3637)

* Remember previous value

* test

* [Internal] AI Integration: Adds CorrelationId and Activity Id Attributes for query operation (#3630)

* add activityid in Otel attributes

* added correlation id

* operation type fix

* remove test changes

* test fix

* fix baseline test

* rename correlationId

* fix tests again

* include only not null attributes in test

* fixed tests

* changefeedxml

* test fix

* ordering activity in operationname oerder

* fix test

* review comments

* refator header getter setter

* clean up

Co-authored-by: Sourabh Jain <sourabhjain@microsoft.com>

* Documentation: Fixes CosmosClientBuilder.WithConnectionModeGateway parameter description (#3643)

* Fixed CosmosClientBuilder.WithConnectionModeGateway documentation

* Update Microsoft.Azure.Cosmos/src/Fluent/CosmosClientBuilder.cs

Co-authored-by: Ruben Bartelink <ruben@bartelink.com>

Co-authored-by: Augsten <aaugsten@harbourvest.com>
Co-authored-by: Ruben Bartelink <ruben@bartelink.com>

* Upgrade Resiliency: Refactors Implementation for Opening Rntbd Connections to Backend Replicas in Direct Mode. (#3640)

* Code changes to refactor implementations for opening connections to all replicas. Fixed test failures due to Direct package upgrade.

* Code changes to add poland central region as a part of Regions.cs

* Code changes to update contract to reflect new regions.

* Revert "Code changes to update contract to reflect new regions."

This reverts commit f171b3c1c9889043556ddf96bcd33ccd79565ad9.

* Revert "Code changes to add poland central region as a part of Regions.cs"

This reverts commit 1aafbf18f6d80e9a92baa301b6b23cf065e4b155.

* [Preview] AI integration: Adds IsDistributedTracingEnabled flag as public API to enable/disable this feature (#3598)

* make api public for preview

* add null check

* fix tests

* singleton listener initialization

* assign null to listeners

* fix test

* concurrent bag in listener

* renamed to LatencyThresholdForDiagnosticEvent

* renamed to IsDistributedTracingEnabled

* updated xml

* update contract

* made latency threshold flag internal

* fix test

* regeneratebaselines

* update documentation

* rename builder api

* add docs

* updated contracts and all

* doc update

* import cleanup

Co-authored-by: Sourabh Jain <sourabhjain@microsoft.com>

* Change Feed Processor: Fixes behavior with StartTime on Local (#3645)

* To UTC

* Test

* [Internal] Client Telemetry: Refactors code to use base useragent string (#3653)

* [Internal] AI Integration: Refactors code to rename event name (#3648)

* first draft

* rename event name

* updated xmls

* update files

* Region Availability: Adds Poland Central Region For Public Usage (#3656)

* Client Encryption: Adds validation code to check if the Key Vault URI provided in wrap metadata is a valid key identifier. (#3642)

* Check if the key vault uri provided is a valid Kid

* test fix.

* update changelog and build props

* Update Directory.Build.props

* Update Microsoft.Azure.Cosmos.Encryption.csproj

* Fixed preview version

* Refactor

* Update EncryptionDatabaseExtensions.cs

* [Internal] Query: Adds Split Support for Ode (#3572)

* Added tests to test different aspects of merge/split support with OptimisticDirectExecution pipeline. Tests check for gone exception handling, pipeline switching etc.

* Added gone exception simulation tests.

* Added new tests and improved test infra

* Removed ParalleContEvocation test. Fixed comments

* Removed CreateParallelCrossPartitionPipelineStateAsync() as it is not being used anymore

* Removed while loop in CreateDocumentContainerAsync()

* Fixed comments.

* Updated ExecuteGoneExceptionOnODEPipeline()

* Added type Assert for ExecuteGoneExceptionOnODEPipeline()

* Replaced try-catch with if statement in MoveNextAsync()

* Added delegate to access TryCreateCoreContextAsync()

* Added check to confirm Ode pipeline is not called in fallback plan

* Updated method name from OptimisticDirectExecutionContext() to TryCreateOptimisticDirectExecutionContext()

* Using delegate instead of Func<>.

* Ode fallback plan always calls Specialized pipeline

* Using ServiceInterop/Gateway to get QueryPlan for Specialized Pipeline

* Added new test to check handling of failing fallback pipeline

* Code cleanup

* Added logic for handling non ODE continuation tokens

* Moved delegate away from member variables

* Added tests for Merge case

* Updated method names

* Added checks for tryCatch

* Updated SetCancellationToken() to use Try

* Updated TryUnwrapContinuationToken()

* Removed changes in FlakyDocumentContainer.cs

* Removed unused imports

* Updated comments

* Fixed comments and cleaned up test code

* Added CosmosElement null check in TryUnwrapContinuationToken()

* Removed FlakyDocumentContainer.cs from pull request

* Removed unused imports

* Updated TryUnwrapContinuationToken()

* Update MoveNextAsync() call in OptimisticDirectExecutionQueryBaselineTests.cs

* Made MergeTestUtil.IsFailedFallbackPipelineTest a readonly property

* Added IsPartitionSplitException() overload to take CosmosElement

* Fixed bug regarding syntax error queries

* [Internal] AI Integration : Fixes operation type  for batch (#3660)

* fix op type

* fix conflict

* CosmosClientOptions: Adds ServerCertificateCustomValidationCallback for Http and TCP (#3636)

* Adding ServerCertificateCustomValidationCallback in clientoptions

* Adding Server callback for Http and fixing tests

* Fixing failing E2Etests

* Resolving merge conflicts

* Running update contracts script

* Running Update contracts script

* Running Update contracts script

* Reverting the v3 version change

* Update based on review comments

* Added unit tests

* Added remarks for callback delegate

* Ran update contracts script

* Update based on review comments

* Ran update contracts script

* Updated unit tests

* Making ssl validation function private

* Updating test files

* Update remarks for sslvalidation public contract

* Added emulator tests for server validation

Co-authored-by: Debdatta Kunda <87335885+kundadebdatta@users.noreply.github.com>

* Query: Adds EnableOptimisticDirectExecution flag to QueryRequestOptions (#3664)

* Added new flag to QueryRequestOptions to allow customers to use Ode pipeline

* Updated comments in QueryRequestOptions.cs

* Renamed enabledOde to enableOde

* Removed default setting for EnableOptimisticDirectExecution

* [Internal] Tests: Removes Direct/HTTPS emulator tests (#3679)

* Removing direct/https tests

* mppreference

* [Internal] Benchmark : Fixes issue with dependency on Cosmos Project (#3673)

* users/sourabhjain/benchmarkfix

* update pipeline

* Revert "users/sourabhjain/benchmarkfix"

This reverts commit 81b48f0.

* fix compilation error

* add parama for preview pkg also

---------

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* LocalQuorum: Adds Quorum reads on Consistent Prefix Accounts (#3680)

Co-authored-by: DESKTOP-ED57J7H\Prashanth Venkataram <vprashanth1987@hotmail.com>

* 3.32.0: Adds new SDK version and contract files (#3687)

* 3.32.0: Adds new SDK version and contract files

* 3.32.0: Adds new SDK version and contract files

* Updating changelog version

* Updating changelog version

* Added more commits to changelog and updated release contract

* Added documentation tags PR in changelog

* Updated changelog based on reviews

* Updated PR decsription in changelog

* Update changelog.md

Updated full fidelity change description

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

---------

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* [Internal] Samples: Adds change feed pull model samples (#3646)

* add change feed pull samples

* refactor appsettings validation

* addressing pr comments

* move task delay

* update sample to use latest change feed mode names

---------

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* [Internal] Tests: Refactors emulator CI (#3688)

* [Internal] GitHub Template: Adds needs-investigation label (#3708)

By default, all "Bug report" issues will have "needs-investigation"

* Adding fabric bot action (#3709)

* CosmosNullReferenceException: Refactors CosmosNullReferenceException to pass along InnerException property on parent NullReferenceException (#3713)

* Passed inner exception details to NullReferenceException ctor when instantiating CosmosNullReferenceException.

* Added unit tests.

* Addressed PR feedback.

* [Internal] PriorityRequests: Fixes header value (#3714)

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* [Internal] Query: Adds single physical partition check for OptimisticDirectExecution queries (#3699)

* Added single physical partition check for Ode queries. Updated test infrastructure for Ode emulator tests too.

* Refactored emulator tests to have all the test cases at the top of the file

* Updated TryGetTargetRangeOptimisticDirectExecutionAsync()

* Uodated logic on how many times CreateIngestQueryDeleteAsync() gets called

* Added debug asserts for partitionKeyDefinition

* Added pageSizeOptions parameter in CreateInput() in EmulatorTests

* Fixed comments

* [Internal] CTL: Fixes Reservoir Sampling Logic (#3712)

* Code changes to fix the reservoir sampling logic in CTL

* Code changes to modify help text on reservoir type.

* Code changes to address minor code refactor.

* Diagnostics: Adds startDate in Summary (#3707)

* Adding start date

* Updated trace files

* PR comment

* Committing missing tests

---------

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* [Internal] Client Telemetry: Adds network information in the payload (#3691)

* first draft

* clean code

* add test

* fix test

* add replica info collection

* fix substatuscode and  operation type error

* fix code

* collect http infor in cache also

* message to stacktrace

* remove rntbd recording from cache

* print proper exception message

* fix test

* cleanup unused code and added few status codes in ignore list

* fixed all exception logging

* refactor conditions

* fix tests

* Documentation: Fixes Database.ReadAsync description (#3457)

* Documentation: Modify retry time to timespan 

Modify retry time in seconds to timespan of parameter maxRetryWaitTimeOnThrottledRequests (Method: [WithThrottlingRetryOptions](https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.cosmos.fluent.cosmosclientbuilder.withthrottlingretryoptions?view=azure-dotnet#feedback))
Resolves Azure/azure-sdk-for-net#29567

* Documentation: Fixes DeleteItemAsync Example

Documentation: Fixes DeleteItemAsync Example

* Documentation: Fixes ItemRequestOptions Example

Documentation: Fixes ItemRequestOptions Example

* Documentation:Update Database.ReadAsync description

Documentation: Update Database.ReadAsync description

* Documentation: Update Database.ReadAsync description

Documentation: Update Database.ReadAsync description

* Documentation: Updated ToStreamIterator example

Documentation: Updated ToStreamIterator example

* Modified StreamIterator section

* Update Microsoft.Azure.Cosmos/src/Resource/Database/Database.cs

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* Remarks correction

* Revert the StreamIterator changes

Revert the StreamIterator changes

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>
Co-authored-by: Kiran Kumar Kolli <kirankk@microsoft.com>

* Upgrade Resiliency: Adds Implementation for Validating the Unhealthy Backend Replicas in Direct mode (#3631)

* Code changes to implement replica validation in dotnet v3 sdk.

* Cosmetic changes to add inline code comments.

* Code chages to address review comments.

* Code changes to cover a scenario for async cache.

* Code changes to refactor async non-blocking cache code.

* Code changes to address minor review comments.

---------

Co-authored-by: Kiran Kumar Kolli <kirankk@microsoft.com>

* ReadMany: Fixes BadRequest when using Ids with single quotes (#3732)

* Use parameters

* Emulator tests

* Release: Adds SDK version and changelog for 3.32.1 (#3733)

* version bump

* Contracts

* [Internal] Build: Fixes static tool analysis versions (#3736)

* Update Binskim and follow warnings

* Fixing task

* More version bumps

* binskim args

* Padding

* policheck

* postanalysis parameters

* analysis settings

* Query: Fixes System.ArgumentException when using PartitionKey.None on x86, Linux or in Optimistic Direct Execution (#3730)

* Minor clean up of OptimisticDirectExecutionQueryTests

* More minor cleanup in OptimisticDirectExecutionQueryTests

* Add emulator tests for the bypass query parsing scenario

* Handle PartitionKey.None while creating QueryIterator. This is a workaround for the PartitionKeyInternal.None not following its own contract

* Fix up to correctly handle PartitionKey.None using the CachedContainerQueryProperties

* Add more tests where PartitionKey.None maps to PartitionKey.Undefined

---------

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* Query: Adds FIRST and LAST Scalar Expressions (#3629)

* Add FIRST and LAST objects and update visitors

* add FIRST LAST evaluation and update offline engine visitors

* Add FIRST and LAST to parser

* update another visitor

* Fix typo

* fix typo

* added new tests and baselines

* cleaning

* cleaning

---------

Co-authored-by: neildsh <35383880+neildsh@users.noreply.github.com>
Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* Subpartitioning: Adds support for Prefix Partition Key searches for sub partitioned containers (#3109)

* 1st round of changes to support subpartitioning for ChangeFeed

* name change and moved a method to FeedRangePartitionKey

* support for prefix partition change feed and query including unit and emulator tests. need to verify using FeedRange with QueryIterator

* splitting out unit tests from emulator tests

* 1st round of changes to support subpartitioning for ChangeFeed

* name change and moved a method to FeedRangePartitionKey

* support for prefix partition change feed and query including unit and emulator tests. need to verify using FeedRange with QueryIterator

* splitting out unit tests from emulator tests

* moved logic to choose for prefix partition query and change feed

* additional conditional to check for MultiHash partitionkeydefinition kind

* removed unnecessary using

* cleanup

* unnecessary using

* removed PREVIEW from proj

* unit tests for ResolveFeedRangeBasedOnPrefixContainerAsync

* change access modifier

* since I changed to static, needed to fix tests

* dealing with some testing nits

* removed Console.Writeline

* slight change in test use containerProperties and partitionKeyDefinition

* big fix for resolve feedrange, changes to error behavior, added additional test coverage

* test changes

* ran updateContracts.ps1

* reverting to 3ad5309

* Ran Update Contracts

* ran updateContracts.ps1

* UpdateContracts.ps1

* updatecontracts

* removed bad check from test, removed changes from updatecontracts.ps1

* revert UpdateContracts changes

* Reverting to 756a123

* removed accidental change from changelog

* removed unwanted change from Directory.build.props

* added test clean up

* removed console.writelines

* updates to query test

* removed preview flag

* ran UpdateContrats.ps1

* no longer recread feedRange for queries unless using prefix pk

* simplified if statement

* fixed bug

---------

Co-authored-by: Nalu Tripician <nalutrip@icloud.com>

* [Internal] ClientTelemetry: Adds logic to limit payload size to 2 MB (#3717)

* first draft

wip

fix test and logic

* resolve conflicts

* limit 2 mb

* ad callback

* fix tests

* code refactor

* cosmos json to newtosoft json

* clean up files

* fix logging to argumrnt based

* code refactor

* add null check

* Query: Fixes regression from LINQ custom serializer fix (#3749)

Co-authored-by: Minh Le <leminh@microsoft.com>
Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>

* [Internal] LocalQuorum: Refactors override (i.e. strong) to allow from any account consistency (#3753)

- Localquorum override (i.e. strong) to allow from any account consistency
- Facilitates no-downtime downgrade of existing accounts (i.e. existing Strong/bounded accounts migration to Eventual)

* Release: Adds SDK version and change log for 3.32.2 (#3752)

* version bump

* contract

* changelog

* version bump

* Fixing changelog text

* Add another PR

* Subpartitioning: Adds APIs for public release and increase REST API version (#3763)

* initial commit, Http version issues still needs to be resolved

* updateContracts + update Http Version

* updateded version in test

* update contracts

* requested changed

* changed name in comments to subpartitioning from multihash

* undid changes to TestLiteralSerialization.xml

* removed changes to non API.json files

* removed non XXXAPI.json file changes

* changed verbage on public comments

* changed error message to reflect verbage change

* Change Feed Processor: Fixes LeaseLostException leaks on notification APIs for Renew scenarios (#3775)

* Adding cases

* Tests

* Upgrade Resiliency: Refactors GatewayAddressCache to Mark TransportAddresses to Unhealthy when Connection Reset Event Occurs (#3768)

* Code changes to mark the transport uri to unhealthy for which a connection reset event occures through the connection state listener.

* Code changes to bump up the direct version.

* Code changes to clean up Gateway Address Cache.

* Code changes to fix pipeline build.

* Code changes to fix serilization test failures.

* Code changes to add force refresh to the gateway function callback delegate.

* Code changes to sync up msdata direct.

* Removing direct dependency from documents.test.

---------

Co-authored-by: Matias Quaranta <ealsur@users.noreply.github.com>
Co-authored-by: neildsh <35383880+neildsh@users.noreply.github.com>
Co-authored-by: Sourabh Jain <sourabh.jain.107@gmail.com>
Co-authored-by: Sourabh Jain <sourabhjain@microsoft.com>
Co-authored-by: aavasthy <113193425+aavasthy@users.noreply.github.com>
Co-authored-by: Kiran Kumar Kolli <kirankk@microsoft.com>
Co-authored-by: Aditya <adityasa@users.noreply.github.com>
Co-authored-by: Fabian Meiswinkel <fabian@meiswinkel.com>
Co-authored-by: akotalwar <94020786+akotalwar@users.noreply.github.com>
Co-authored-by: Nalu Tripician <nalutrip@icloud.com>
Co-authored-by: Nalu Tripician <ntripician@microsoft.com>
Co-authored-by: Pramod Valavala <43602528+PramodValavala-MSFT@users.noreply.github.com>
Co-authored-by: Ezra Haleva <115735172+ezrahaleva-msft@users.noreply.github.com>
Co-authored-by: Vivek Ravindran <vivekra@microsoft.com>
Co-authored-by: Prasad Ullal <36418906+prasadu-microsoft@users.noreply.github.com>
Co-authored-by: Philip Thomas <86612891+philipthomas-MSFT@users.noreply.github.com>
Co-authored-by: Arthur Augsten <arthuraugsten@gmail.com>
Co-authored-by: Augsten <aaugsten@harbourvest.com>
Co-authored-by: Ruben Bartelink <ruben@bartelink.com>
Co-authored-by: Santosh Kulkarni <66682828+kr-santosh@users.noreply.github.com>
Co-authored-by: pravengithub <124255233+pravengithub@users.noreply.github.com>
Co-authored-by: DESKTOP-ED57J7H\Prashanth Venkataram <vprashanth1987@hotmail.com>
Co-authored-by: Justine Cocchi <jucocchi@microsoft.com>
Co-authored-by: Abhijeet Mohanty <mabhijeet1995@gmail.com>
Co-authored-by: Achint-Agrawal <45819170+Achint-Agrawal@users.noreply.github.com>
Co-authored-by: Nimit Shah <nimit.svnit@gmail.com>
Co-authored-by: SaurabhSharma-MSFT <38112130+SaurabhSharma-MSFT@users.noreply.github.com>
Co-authored-by: leminh98 <leminh.ams@gmail.com>
Co-authored-by: Minh Le <leminh@microsoft.com>
Co-authored-by: Nalu Tripician <27316859+NaluTripician@users.noreply.github.com>
  • Loading branch information
1 parent 5addb1c commit 94e811f
Show file tree
Hide file tree
Showing 155 changed files with 13,524 additions and 3,249 deletions.
6 changes: 3 additions & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ClientOfficialVersion>3.32.0</ClientOfficialVersion>
<ClientPreviewVersion>3.32.0</ClientPreviewVersion>
<ClientOfficialVersion>3.32.2</ClientOfficialVersion>
<ClientPreviewVersion>3.32.2</ClientPreviewVersion>
<ClientPreviewSuffixVersion>preview</ClientPreviewSuffixVersion>
<DirectVersion>3.30.2</DirectVersion>
<DirectVersion>3.30.4</DirectVersion>
<EncryptionOfficialVersion>2.0.1</EncryptionOfficialVersion>
<EncryptionPreviewVersion>2.0.1</EncryptionPreviewVersion>
<EncryptionPreviewSuffixVersion>preview</EncryptionPreviewSuffixVersion>
Expand Down
1,531 changes: 1,531 additions & 0 deletions Microsoft.Azure.Cosmos/contracts/API_3.32.1-preview.txt

Large diffs are not rendered by default.

1,478 changes: 1,478 additions & 0 deletions Microsoft.Azure.Cosmos/contracts/API_3.32.1.txt

Large diffs are not rendered by default.

1,531 changes: 1,531 additions & 0 deletions Microsoft.Azure.Cosmos/contracts/API_3.32.2-preview.txt

Large diffs are not rendered by default.

1,478 changes: 1,478 additions & 0 deletions Microsoft.Azure.Cosmos/contracts/API_3.32.2.txt

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,17 @@ await this.leaseUpdater.UpdateLeaseAsync(
if (serverLease.Owner != lease.Owner)
{
DefaultTrace.TraceInformation("Lease with token {0} no need to release lease. The lease was already taken by another host '{1}'.", lease.CurrentLeaseToken, serverLease.Owner);
throw new LeaseLostException(lease);
throw new LeaseLostException(
lease,
CosmosExceptionFactory.Create(
statusCode: HttpStatusCode.PreconditionFailed,
message: $"{lease.CurrentLeaseToken} lease token was taken over by owner '{serverLease.Owner}'",
headers: new Headers(),
stackTrace: default,
trace: NoOpTrace.Singleton,
error: default,
innerException: default),
isGone: false);
}
serverLease.Owner = null;
return serverLease;
Expand Down Expand Up @@ -232,7 +242,17 @@ public override async Task<DocumentServiceLease> RenewAsync(DocumentServiceLease
if (serverLease.Owner != lease.Owner)
{
DefaultTrace.TraceInformation("Lease with token {0} was taken over by owner '{1}'", lease.CurrentLeaseToken, serverLease.Owner);
throw new LeaseLostException(lease);
throw new LeaseLostException(
lease,
CosmosExceptionFactory.Create(
statusCode: HttpStatusCode.PreconditionFailed,
message: $"{lease.CurrentLeaseToken} lease token was taken over by owner '{serverLease.Owner}'",
headers: new Headers(),
stackTrace: default,
trace: NoOpTrace.Singleton,
error: default,
innerException: default),
isGone: false);
}
return serverLease;
}).ConfigureAwait(false);
Expand All @@ -245,7 +265,17 @@ public override async Task<DocumentServiceLease> UpdatePropertiesAsync(DocumentS
if (lease.Owner != this.options.HostName)
{
DefaultTrace.TraceInformation("Lease with token '{0}' was taken over by owner '{1}' before lease properties update", lease.CurrentLeaseToken, lease.Owner);
throw new LeaseLostException(lease);
throw new LeaseLostException(
lease,
CosmosExceptionFactory.Create(
statusCode: HttpStatusCode.PreconditionFailed,
message: $"{lease.CurrentLeaseToken} lease token was taken over by owner '{lease.Owner}'",
headers: new Headers(),
stackTrace: default,
trace: NoOpTrace.Singleton,
error: default,
innerException: default),
isGone: false);
}

return await this.leaseUpdater.UpdateLeaseAsync(
Expand All @@ -257,7 +287,17 @@ public override async Task<DocumentServiceLease> UpdatePropertiesAsync(DocumentS
if (serverLease.Owner != lease.Owner)
{
DefaultTrace.TraceInformation("Lease with token '{0}' was taken over by owner '{1}'", lease.CurrentLeaseToken, serverLease.Owner);
throw new LeaseLostException(lease);
throw new LeaseLostException(
lease,
CosmosExceptionFactory.Create(
statusCode: HttpStatusCode.PreconditionFailed,
message: $"{lease.CurrentLeaseToken} lease token was taken over by owner '{serverLease.Owner}'",
headers: new Headers(),
stackTrace: default,
trace: NoOpTrace.Singleton,
error: default,
innerException: default),
isGone: false);
}
serverLease.Properties = lease.Properties;
return serverLease;
Expand Down
5 changes: 1 addition & 4 deletions Microsoft.Azure.Cosmos/src/CosmosClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,11 +115,8 @@ public class CosmosClient : IDisposable

static CosmosClient()
{
#if PREVIEW
HttpConstants.Versions.CurrentVersion = HttpConstants.Versions.v2020_07_15;
#else
HttpConstants.Versions.CurrentVersion = HttpConstants.Versions.v2018_12_31;
#endif

HttpConstants.Versions.CurrentVersionUTF8 = Encoding.UTF8.GetBytes(HttpConstants.Versions.CurrentVersion);

ServiceInteropWrapper.AssembliesExist = new Lazy<bool>(() =>
Expand Down
29 changes: 29 additions & 0 deletions Microsoft.Azure.Cosmos/src/Handler/RequestInvokerHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,14 @@ public virtual async Task<ResponseMessage> SendAsync(

if (feedRange != null)
{
if (!request.OperationType.IsPointOperation())
{
feedRange = await RequestInvokerHandler.ResolveFeedRangeBasedOnPrefixContainerAsync(
feedRange: feedRange,
cosmosContainerCore: cosmosContainerCore,
cancellationToken: cancellationToken);
}

if (feedRange is FeedRangePartitionKey feedRangePartitionKey)
{
if (cosmosContainerCore == null && object.ReferenceEquals(feedRangePartitionKey.PartitionKey, Cosmos.PartitionKey.None))
Expand Down Expand Up @@ -480,5 +488,26 @@ private static bool IsClientNoResponseSet(CosmosClientOptions clientOptions, Ope
&& clientOptions.EnableContentResponseOnWrite.HasValue
&& RequestInvokerHandler.IsItemNoRepsonseSet(clientOptions.EnableContentResponseOnWrite.Value, operationType);
}

internal static async Task<FeedRange> ResolveFeedRangeBasedOnPrefixContainerAsync(
FeedRange feedRange,
ContainerInternal cosmosContainerCore,
CancellationToken cancellationToken)
{
if (feedRange is FeedRangePartitionKey feedRangePartitionKey)
{
PartitionKeyDefinition partitionKeyDefinition = await cosmosContainerCore
.GetPartitionKeyDefinitionAsync(cancellationToken)
.ConfigureAwait(false);

if (partitionKeyDefinition != null && partitionKeyDefinition.Kind == PartitionKind.MultiHash
&& feedRangePartitionKey.PartitionKey.InternalKey?.Components?.Count < partitionKeyDefinition.Paths?.Count)
{
feedRange = new FeedRangeEpk(feedRangePartitionKey.PartitionKey.InternalKey.GetEPKRangeForPrefixPartitionKey(partitionKeyDefinition));
}
}

return feedRange;
}
}
}
5 changes: 3 additions & 2 deletions Microsoft.Azure.Cosmos/src/Handler/TelemetryHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,12 @@ public override async Task<ResponseMessage> SendAsync(
resourceType: request.ResourceType,
consistencyLevel: request.Headers?[Documents.HttpConstants.HttpHeaders.ConsistencyLevel],
requestCharge: response.Headers.RequestCharge,
subStatusCode: response.Headers.SubStatusCode);
subStatusCode: response.Headers.SubStatusCode,
trace: response.Trace);
}
catch (Exception ex)
{
DefaultTrace.TraceError("Error while collecting telemetry information : " + ex.Message);
DefaultTrace.TraceError("Error while collecting telemetry information : {0}", ex);
}
}
return response;
Expand Down
2 changes: 1 addition & 1 deletion Microsoft.Azure.Cosmos/src/Linq/CosmosLinqExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ public static FeedIterator<T> ToFeedIterator<T>(this IQueryable<T> query)
/// <code language="c#">
/// <![CDATA[
/// IOrderedQueryable<ToDoActivity> linqQueryable = this.Container.GetItemLinqQueryable<ToDoActivity>();
/// using (FeedIterator setIterator = linqQueryable.Where(item => (item.taskNum < 100)).ToFeedIterator()
/// using (FeedIterator setIterator = linqQueryable.Where(item => (item.taskNum < 100)).ToStreamIterator())
/// ]]>
/// </code>
/// </example>
Expand Down
47 changes: 15 additions & 32 deletions Microsoft.Azure.Cosmos/src/Linq/ExpressionToSQL.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ namespace Microsoft.Azure.Cosmos.Linq
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
Expand Down Expand Up @@ -111,10 +110,10 @@ public static SqlQuery TranslateQuery(
/// </summary>
/// <param name="inputExpression">Expression to translate.</param>
/// <param name="context">Context for translation.</param>
private static Collection Translate(Expression inputExpression, TranslationContext context)
private static Collection Translate(Expression inputExpression, TranslationContext context)
{
Debug.Assert(context != null, "Translation Context should not be null");

Debug.Assert(context != null, "Translation Context should not be null");

if (inputExpression == null)
{
throw new ArgumentNullException("inputExpression");
Expand Down Expand Up @@ -552,7 +551,7 @@ private static SqlScalarExpression ApplyCustomConverters(Expression left, SqlLit
else if (memberType == typeof(DateTime))
{
SqlStringLiteral serializedDateTime = (SqlStringLiteral)right.Literal;
value = DateTime.Parse(serializedDateTime.Value, provider: null, DateTimeStyles.RoundtripKind);
value = DateTime.Parse(serializedDateTime.Value, provider: null, DateTimeStyles.RoundtripKind);
}

if (value != default(object))
Expand Down Expand Up @@ -712,23 +711,7 @@ public static SqlScalarExpression VisitConstant(ConstantExpression inputExpressi

return SqlArrayCreateScalarExpression.Create(arrayItems.ToImmutableArray());
}

if (context.linqSerializerOptions?.CustomCosmosSerializer != null)
{
StringWriter writer = new StringWriter(CultureInfo.InvariantCulture);

// Use the user serializer for the parameter values so custom conversions are correctly handled
using (Stream stream = context.linqSerializerOptions.CustomCosmosSerializer.ToStream(inputExpression.Value))
{
using (StreamReader streamReader = new StreamReader(stream))
{
string propertyValue = streamReader.ReadToEnd();
writer.Write(propertyValue);
return CosmosElement.Parse(writer.ToString()).Accept(CosmosElementToSqlScalarExpressionVisitor.Singleton);
}
}
}


return CosmosElement.Parse(JsonConvert.SerializeObject(inputExpression.Value)).Accept(CosmosElementToSqlScalarExpressionVisitor.Singleton);
}

Expand Down Expand Up @@ -757,21 +740,21 @@ private static SqlScalarExpression VisitParameter(ParameterExpression inputExpre
private static SqlScalarExpression VisitMemberAccess(MemberExpression inputExpression, TranslationContext context)
{
SqlScalarExpression memberExpression = ExpressionToSql.VisitScalarExpression(inputExpression.Expression, context);
string memberName = inputExpression.Member.GetMemberName(context.linqSerializerOptions);
string memberName = inputExpression.Member.GetMemberName(context.linqSerializerOptions);

// if expression is nullable
if (inputExpression.Expression.Type.IsNullable())
{
MemberNames memberNames = context.memberNames;

MemberNames memberNames = context.memberNames;

// ignore .Value
if (memberName == memberNames.Value)
if (memberName == memberNames.Value)
{
return memberExpression;
}

// convert .HasValue to IS_DEFINED expression
if (memberName == memberNames.HasValue)
if (memberName == memberNames.HasValue)
{
return SqlFunctionCallScalarExpression.CreateBuiltin("IS_DEFINED", memberExpression);
}
Expand Down Expand Up @@ -2028,11 +2011,11 @@ public SqlScalarExpression Visit(CosmosString cosmosString)
{
return SqlLiteralScalarExpression.Create(SqlStringLiteral.Create(cosmosString.Value));
}

public SqlScalarExpression Visit(CosmosUndefined cosmosUndefined)
{
return SqlLiteralScalarExpression.Create(SqlUndefinedLiteral.Create());
}

public SqlScalarExpression Visit(CosmosUndefined cosmosUndefined)
{
return SqlLiteralScalarExpression.Create(SqlUndefinedLiteral.Create());
}
}
private enum SubqueryKind
{
Expand Down
7 changes: 1 addition & 6 deletions Microsoft.Azure.Cosmos/src/PartitionKeyBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,7 @@ namespace Microsoft.Azure.Cosmos
/// <summary>
/// Represents a partition key value list in the Azure Cosmos DB service.
/// </summary>
#if PREVIEW
public
#else
internal
#endif
sealed class PartitionKeyBuilder
public sealed class PartitionKeyBuilder
{
private readonly List<object> partitionKeyValues;

Expand Down
20 changes: 20 additions & 0 deletions Microsoft.Azure.Cosmos/src/Query/Core/Parser/CstToAstVisitor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -568,6 +568,16 @@ public override SqlObject VisitExistsScalarExpression([NotNull] sqlParser.Exists
return SqlExistsScalarExpression.Create(subquery);
}

public override SqlObject VisitFirstScalarExpression([NotNull] sqlParser.FirstScalarExpressionContext context)
{
Contract.Requires(context != null);
// K_FIRST '(' sql_query ')'
Contract.Requires(context.ChildCount == 4);

SqlQuery subquery = (SqlQuery)this.Visit(context.children[2]);
return SqlFirstScalarExpression.Create(subquery);
}

public override SqlObject VisitFunctionCallScalarExpression([NotNull] sqlParser.FunctionCallScalarExpressionContext context)
{
Contract.Requires(context != null);
Expand Down Expand Up @@ -627,6 +637,16 @@ public override SqlObject VisitIn_scalar_expression([NotNull] sqlParser.In_scala
return SqlInScalarExpression.Create(needle, not, searchList.ToImmutableArray());
}

public override SqlObject VisitLastScalarExpression([NotNull] sqlParser.LastScalarExpressionContext context)
{
Contract.Requires(context != null);
// K_LAST '(' sql_query ')'
Contract.Requires(context.ChildCount == 4);

SqlQuery subquery = (SqlQuery)this.Visit(context.children[2]);
return SqlLastScalarExpression.Create(subquery);
}

public override SqlObject VisitLike_scalar_expression([NotNull] sqlParser.Like_scalar_expressionContext context)
{
Contract.Requires(context != null);
Expand Down
24 changes: 24 additions & 0 deletions Microsoft.Azure.Cosmos/src/Query/Core/Parser/IsqlListener.cs
Original file line number Diff line number Diff line change
Expand Up @@ -562,6 +562,18 @@ internal interface IsqlListener : IParseTreeListener {
/// <param name="context">The parse tree.</param>
void ExitObjectCreateScalarExpression([NotNull] sqlParser.ObjectCreateScalarExpressionContext context);
/// <summary>
/// Enter a parse tree produced by the <c>FirstScalarExpression</c>
/// labeled alternative in <see cref="sqlParser.primary_expression"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterFirstScalarExpression([NotNull] sqlParser.FirstScalarExpressionContext context);
/// <summary>
/// Exit a parse tree produced by the <c>FirstScalarExpression</c>
/// labeled alternative in <see cref="sqlParser.primary_expression"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitFirstScalarExpression([NotNull] sqlParser.FirstScalarExpressionContext context);
/// <summary>
/// Enter a parse tree produced by the <c>ArrayCreateScalarExpression</c>
/// labeled alternative in <see cref="sqlParser.primary_expression"/>.
/// </summary>
Expand Down Expand Up @@ -670,6 +682,18 @@ internal interface IsqlListener : IParseTreeListener {
/// <param name="context">The parse tree.</param>
void ExitArrayScalarExpression([NotNull] sqlParser.ArrayScalarExpressionContext context);
/// <summary>
/// Enter a parse tree produced by the <c>LastScalarExpression</c>
/// labeled alternative in <see cref="sqlParser.primary_expression"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterLastScalarExpression([NotNull] sqlParser.LastScalarExpressionContext context);
/// <summary>
/// Exit a parse tree produced by the <c>LastScalarExpression</c>
/// labeled alternative in <see cref="sqlParser.primary_expression"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitLastScalarExpression([NotNull] sqlParser.LastScalarExpressionContext context);
/// <summary>
/// Enter a parse tree produced by the <c>PropertyRefScalarExpressionRecursive</c>
/// labeled alternative in <see cref="sqlParser.primary_expression"/>.
/// </summary>
Expand Down
14 changes: 14 additions & 0 deletions Microsoft.Azure.Cosmos/src/Query/Core/Parser/IsqlVisitor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,13 @@ internal interface IsqlVisitor<Result> : IParseTreeVisitor<Result> {
/// <return>The visitor result.</return>
Result VisitObjectCreateScalarExpression([NotNull] sqlParser.ObjectCreateScalarExpressionContext context);
/// <summary>
/// Visit a parse tree produced by the <c>FirstScalarExpression</c>
/// labeled alternative in <see cref="sqlParser.primary_expression"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
Result VisitFirstScalarExpression([NotNull] sqlParser.FirstScalarExpressionContext context);
/// <summary>
/// Visit a parse tree produced by the <c>ArrayCreateScalarExpression</c>
/// labeled alternative in <see cref="sqlParser.primary_expression"/>.
/// </summary>
Expand Down Expand Up @@ -410,6 +417,13 @@ internal interface IsqlVisitor<Result> : IParseTreeVisitor<Result> {
/// <return>The visitor result.</return>
Result VisitArrayScalarExpression([NotNull] sqlParser.ArrayScalarExpressionContext context);
/// <summary>
/// Visit a parse tree produced by the <c>LastScalarExpression</c>
/// labeled alternative in <see cref="sqlParser.primary_expression"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
Result VisitLastScalarExpression([NotNull] sqlParser.LastScalarExpressionContext context);
/// <summary>
/// Visit a parse tree produced by the <c>PropertyRefScalarExpressionRecursive</c>
/// labeled alternative in <see cref="sqlParser.primary_expression"/>.
/// </summary>
Expand Down
Loading

0 comments on commit 94e811f

Please sign in to comment.