Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filtering by Dates with Table Service no longer working in 3.25.0 #2069

Closed
thornerygrecianms opened this issue Jul 25, 2023 · 5 comments · Fixed by #2077
Closed

Filtering by Dates with Table Service no longer working in 3.25.0 #2069

thornerygrecianms opened this issue Jul 25, 2023 · 5 comments · Fixed by #2077

Comments

@thornerygrecianms
Copy link

thornerygrecianms commented Jul 25, 2023

Which service(blob, file, queue, table) does this issue concern? Table

Which version of the Azurite was used? 3.25.0

Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension) GitHub and Docker

What's the Node.js version? 9.8.1

What problem was encountered? When filtering with dates to the table service using the Microsoft.Azure.Cosmos.Table library no results are returned with 3.25.0 which used to work with previous versions

Steps to reproduce the issue?

This sample C# code demonstrates the issue, running this in 3.24.0 will output results, in 3.25.0 it returns nothing.

_using Microsoft.Azure.Cosmos.Table;

namespace TestTableCreateAndList

{
    internal class Program
    {
        static async Task Main(string[] args)
        {
            // Create a CloudStorageAccount object
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse("UseDevelopmentStorage=true");

            // Create a CloudTableClient object
            CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

            // Get a reference to the table
            CloudTable table = tableClient.GetTableReference("TestTable");

            table.CreateIfNotExists();

            var dataTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

            TestEntity testEntity = new TestEntity { MyDate = dataTime, RowKey= "1", PartitionKey= "2" };

            TableOperation insertOrReplaceOperation = TableOperation.InsertOrReplace(testEntity);

            // Execute the operation
            TableResult result = await table.ExecuteAsync(insertOrReplaceOperation);

            string filter = TableQuery.GenerateFilterConditionForDate("MyDate", QueryComparisons.Equal, dataTime);          
            
            // This does work, using GenerateFilterCondition
            // string filter = TableQuery.GenerateFilterCondition("MyDate", QueryComparisons.Equal, dataTime.ToString());              

            // Create a TableQuery object with the filter
            TableQuery<TestEntity> query = new TableQuery<TestEntity>().Where(filter);

            // Execute the query            
            TableQuerySegment<TestEntity> resultSegment = await table.ExecuteQuerySegmentedAsync(query, null);
            
            // Display the result
            foreach (TestEntity entity in resultSegment.Results)
            {
                Console.WriteLine(entity.RowKey);
            }
        }
    }

    public class TestEntity : TableEntity
    {
        public DateTime MyDate { get; set; }
    }
}_

If possible, please provide the debug log using the -d parameter, replacing <pathtodebuglog> with an appropriate path for your OS, or review the instructions for docker containers:

In the debug logs we see this.

It seems that the filter has datetime before the filter value: MyDate eq datetime'1970-01-01T00:00:00.0000000Z', it works if filter value: MyDate eq '1970-01-01T00:00:00.0000000Z' when using GenerateFilterCondition

_v24

2023-07-25T15:27:47.511Z 59b40689-be99-403c-87e3-b67d6e3f1dfc info: HandlerMiddleware: DeserializedParameters={"options":{"queryOptions":{"filter":"MyDate eq datetime'1970-01-01T00:00:00.0000000Z'"},"requestId":"78656609-32d7-4248-8cbf-517dddbd6379","dataServiceVersion":"3.0;"},"version":"2017-07-29"}
2023-07-25T15:27:47.514Z 59b40689-be99-403c-87e3-b67d6e3f1dfc debug: TableHandler:queryEntities() Raw response string is "{\"odata.metadata\":\"http://127.0.0.1:10002/devstoreaccount1/$metadata#Tables/@Element\",\"value\":[{\"odata.etag\":\"W/\\\"datetime'2023-07-25T15%3A27%3A47.4012873Z'\\\"\",\"PartitionKey\":\"2\",\"RowKey\":\"1\",\"[email protected]\":\"Edm.DateTime\",\"MyDate\":\"1970-01-01T00:00:00.0000000Z\",\"Timestamp\":\"2023-07-25T15:27:47.4012873Z\"}]}"

v25

23-07-25T15:34:35.033Z 2d7e6abe-6f10-4eba-a55f-9b401db19ef2 info: HandlerMiddleware: DeserializedParameters={"options":{"queryOptions":{"filter":"MyDate eq datetime'1970-01-01T00:00:00.0000000Z'"},"requestId":"9920f2f4-c6d5-4b18-bc0a-1db351c3486e","dataServiceVersion":"3.0;"},"version":"2017-07-29"}
2023-07-25T15:34:35.036Z 2d7e6abe-6f10-4eba-a55f-9b401db19ef2 debug: TableHandler:queryEntities() Raw response string is "{\"odata.metadata\":\"http://127.0.0.1:10002/devstoreaccount1/$metadata#Tables/@Element\",\"value\":[]}"_

Please be sure to remove any PII or sensitive information before sharing!
The debug log will log raw request headers and bodies, so that we can replay these against Azurite using REST and create tests to validate resolution.

Have you found a mitigation/solution? No as we depend on locked SDKs making these calls, however using GenerateFilterCondition as a string does work, it´s just when you use GenerateFilterConditionForDate. We´ve not checked for GenerateFilterConditionForInt etc.

@Slater-1
Copy link

Seeing a similar issue with date ranges on v3.25.0.

Seeded Data:
daterange-repro.csv
image

Query:
image

@XiaoningLiu
Copy link
Member

XiaoningLiu commented Jul 27, 2023

v3.25.0 includes refactor changes on Table entity query implementation #1975. @notheotherben can you help take a look?

@notheotherben
Copy link
Member

Looking into this now, I suspect the issue here is the micro-second precision (which isn't reflected in the type coercion happening during evaluation). I'll see what we can do to get that resolved.

notheotherben added a commit to notheotherben/Azurite that referenced this issue Jul 27, 2023
…osecond precision is provided in the underlying value.

Fixes Filtering by Dates with Table Service no longer working in 3.25.0 Azure#2069
@notheotherben
Copy link
Member

notheotherben commented Jul 27, 2023

#2077 should resolve this, running the above repro locally I get the following results (which appear to be valid).

image

Big thank you to @thornerygrecianms and @Slater-1 for the comprehensive bug report here, it made tracking down the issue a lot easier than it would otherwise have been.

notheotherben added a commit to notheotherben/Azurite that referenced this issue Aug 4, 2023
…osecond precision is provided in the underlying value.

Fixes Filtering by Dates with Table Service no longer working in 3.25.0 Azure#2069
EmmaZhu pushed a commit that referenced this issue Aug 7, 2023
…osecond precision is provided in the underlying value. (#2077)

* fix: Resolve issues with datetime comparisons in scenarios where microsecond precision is provided in the underlying value.

Fixes Filtering by Dates with Table Service no longer working in 3.25.0 #2069

* doc: Update changelog

* fix: Ensure that we only match exact GUIDs for the legacy comparison model
@thornerygrecianms
Copy link
Author

Thanks for you help with this @notheotherben @EmmaZhu have pulled the latest version and everything is now working as expected.

PrasantJillella pushed a commit to PrasantJillella/Azurite that referenced this issue Aug 18, 2023
…osecond precision is provided in the underlying value. (Azure#2077)

* fix: Resolve issues with datetime comparisons in scenarios where microsecond precision is provided in the underlying value.

Fixes Filtering by Dates with Table Service no longer working in 3.25.0 Azure#2069

* doc: Update changelog

* fix: Ensure that we only match exact GUIDs for the legacy comparison model
blueww added a commit that referenced this issue Aug 21, 2023
… Malformed Etag" (#2062)

* "Update, Delete and Merge entities throw InvalidInput error for Malformed Etag"

* Address comments

* Address comments

* Minor correction

* Fix build failure

* Moving new tests to bottom of file

* "Update, Delete and Merge entities throw InvalidInput error for Malformed Etag"

* Address comments

* Address comments

* Minor correction

* Fix build failure

* Moving new tests to bottom of file

* "Update, Delete and Merge entities throw InvalidInput error for Malformed Etag"

* Address comments

* Address comments

* Minor correction

* Fix build failure

* Moving new tests to bottom of file

* Update changeLog with fix information

* Update version to 3.25.0 (#2063)

* Bump tedious from 16.2.0 to 16.4.0 (#2080)

Bumps [tedious](https://github.com/tediousjs/tedious) from 16.2.0 to 16.4.0.
- [Release notes](https://github.com/tediousjs/tedious/releases)
- [Commits](tediousjs/tedious@v16.2.0...v16.4.0)

---
updated-dependencies:
- dependency-name: tedious
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump eslint from 8.45.0 to 8.46.0 (#2081)

Bumps [eslint](https://github.com/eslint/eslint) from 8.45.0 to 8.46.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](eslint/eslint@v8.45.0...v8.46.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump xml2js from 0.6.0 to 0.6.2 (#2075)

Bumps [xml2js](https://github.com/Leonidas-from-XIV/node-xml2js) from 0.6.0 to 0.6.2.
- [Commits](Leonidas-from-XIV/node-xml2js@0.6.0...0.6.2)

---
updated-dependencies:
- dependency-name: xml2js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add requestId to appendBlock (#2074)

Add missing requestId to the appendBlock operation of an append blob.

Fixes #631.

* Bump tslib from 2.6.0 to 2.6.1 (#2071)

Bumps [tslib](https://github.com/Microsoft/tslib) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/Microsoft/tslib/releases)
- [Commits](microsoft/tslib@2.6.0...v2.6.1)

---
updated-dependencies:
- dependency-name: tslib
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: Resolve issues with datetime comparisons in scenarios where microsecond precision is provided in the underlying value. (#2077)

* fix: Resolve issues with datetime comparisons in scenarios where microsecond precision is provided in the underlying value.

Fixes Filtering by Dates with Table Service no longer working in 3.25.0 #2069

* doc: Update changelog

* fix: Ensure that we only match exact GUIDs for the legacy comparison model

* fix : Resolve issues with empty partition key query not returning anything (#2079)

* Adding all of the code to correctly remove any entities with non populated fields when doing a query on said field. This includes the tests, as well as a reproduction for the current issue

* The current check for partition key was using !! which for an empty string in JS resolve to false, causing the query context to think this was a table instead of an entity. Instead check for the existence of the field

* Adding to the changelog

* Addressing PR comment and removing unecessary !! symbols

---------

Co-authored-by: Garrett Baski <[email protected]>
Co-authored-by: Wei Wei <[email protected]>

* Bump version for hot fix (#2085)

* Bump @azure/core-auth from 1.4.0 to 1.5.0 (#2092)

Bumps [@azure/core-auth](https://github.com/Azure/azure-sdk-for-js) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/Azure/azure-sdk-for-js/releases)
- [Changelog](https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/Changelog-for-next-generation.md)
- [Commits](https://github.com/Azure/azure-sdk-for-js/compare/@azure/core-auth_1.4.0...@azure/core-auth_1.5.0)

---
updated-dependencies:
- dependency-name: "@azure/core-auth"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @azure/core-rest-pipeline from 1.11.0 to 1.12.0 (#2093)

Bumps [@azure/core-rest-pipeline](https://github.com/Azure/azure-sdk-for-js) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/Azure/azure-sdk-for-js/releases)
- [Changelog](https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/Changelog-for-next-generation.md)
- [Commits](https://github.com/Azure/azure-sdk-for-js/compare/@azure/core-rest-pipeline_1.11.0...@azure/core-rest-pipeline_1.12.0)

---
updated-dependencies:
- dependency-name: "@azure/core-rest-pipeline"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump cross-env from 6.0.3 to 7.0.3 (#2094)

Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 6.0.3 to 7.0.3.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/master/CHANGELOG.md)
- [Commits](kentcdodds/cross-env@v6.0.3...v7.0.3)

---
updated-dependencies:
- dependency-name: cross-env
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @types/validator from 13.7.17 to 13.11.1 (#2091)

Bumps [@types/validator](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/validator) from 13.7.17 to 13.11.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/validator)

---
updated-dependencies:
- dependency-name: "@types/validator"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump jsonwebtoken and @types/jsonwebtoken (#2098)

Bumps [jsonwebtoken](https://github.com/auth0/node-jsonwebtoken) and [@types/jsonwebtoken](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jsonwebtoken). These dependencies needed to be updated together.

Updates `jsonwebtoken` from 9.0.0 to 9.0.1
- [Changelog](https://github.com/auth0/node-jsonwebtoken/blob/master/CHANGELOG.md)
- [Commits](auth0/node-jsonwebtoken@v9.0.0...v9.0.1)

Updates `@types/jsonwebtoken` from 9.0.1 to 9.0.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jsonwebtoken)

---
updated-dependencies:
- dependency-name: jsonwebtoken
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: "@types/jsonwebtoken"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump prettier from 3.0.0 to 3.0.1 (#2097)

Bumps [prettier](https://github.com/prettier/prettier) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.0.0...3.0.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump mysql2 from 3.5.2 to 3.6.0 (#2096)

Bumps [mysql2](https://github.com/sidorares/node-mysql2) from 3.5.2 to 3.6.0.
- [Release notes](https://github.com/sidorares/node-mysql2/releases)
- [Changelog](https://github.com/sidorares/node-mysql2/blob/master/Changelog.md)
- [Commits](sidorares/node-mysql2@v3.5.2...v3.6.0)

---
updated-dependencies:
- dependency-name: mysql2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @types/bluebird from 3.5.37 to 3.5.38 (#2105)

Bumps [@types/bluebird](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bluebird) from 3.5.37 to 3.5.38.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/bluebird)

---
updated-dependencies:
- dependency-name: "@types/bluebird"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @types/vscode from 1.80.0 to 1.81.0 (#2101)

Bumps [@types/vscode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/vscode) from 1.80.0 to 1.81.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/vscode)

---
updated-dependencies:
- dependency-name: "@types/vscode"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump rcedit from 3.0.1 to 3.1.0 (#2103)

Bumps [rcedit](https://github.com/electron/node-rcedit) from 3.0.1 to 3.1.0.
- [Release notes](https://github.com/electron/node-rcedit/releases)
- [Changelog](https://github.com/electron/node-rcedit/blob/master/.releaserc.json)
- [Commits](electron/node-rcedit@v3.0.1...v3.1.0)

---
updated-dependencies:
- dependency-name: rcedit
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix issue #2061, #2064, #2083 (#2087)

* Fix 2061 & 2083

* fix issue #2064

* Add test cases and change log

---------

Co-authored-by: EmmaZhu <[email protected]>

* Updated examples of setting Customized Storage Accounts & Keys in enviroment varialbe (#2029)

* Bump prettier from 3.0.1 to 3.0.2 (#2110)

Bumps [prettier](https://github.com/prettier/prettier) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.0.1...3.0.2)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump eslint from 8.46.0 to 8.47.0 (#2108)

Bumps [eslint](https://github.com/eslint/eslint) from 8.46.0 to 8.47.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](eslint/eslint@v8.46.0...v8.47.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump lint-staged from 13.2.3 to 14.0.0 (#2106)

Bumps [lint-staged](https://github.com/okonet/lint-staged) from 13.2.3 to 14.0.0.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](lint-staged/lint-staged@v13.2.3...v14.0.0)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump service version to 2023-08-03 (#2111)

* Bump azure-storage from 2.10.6 to 2.10.7 (#2117)

Bumps [azure-storage](https://github.com/Azure/azure-storage-node) from 2.10.6 to 2.10.7.
- [Release notes](https://github.com/Azure/azure-storage-node/releases)
- [Changelog](https://github.com/Azure/azure-storage-node/blob/master/ChangeLog.md)
- [Commits](https://github.com/Azure/azure-storage-node/commits)

---
updated-dependencies:
- dependency-name: azure-storage
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fetch latest from main and updated changeLog file accordingly

* "Move change to Upcoming release header"

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Wei Wei <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James Tomlinson <[email protected]>
Co-authored-by: Benjamin Pannell <[email protected]>
Co-authored-by: Garrett Baski <[email protected]>
Co-authored-by: Garrett Baski <[email protected]>
Co-authored-by: EmmaZhu-MSFT <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants