Azure / Azurite

A lightweight server clone of Azure Storage that simulates most of the commands supported by it with minimal dependencies
MIT License
1.74k stars 309 forks source link

TableClient.CreateQueryFilter(predicate) treating long data type filter as string type. #2396

Closed piyushanshu closed 1 month ago

piyushanshu commented 1 month ago

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

Table

Which version of the Azurite was used?

3.26.0

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

npm

What's the Node.js version?

v18.13.0

What problem was encountered?

Using TableClient.CreateQueryFilter(predicate) to convert predicate into ODATA filter string used for query. It is producing filter query string - "((((PartitionKey eq 'tables_querytests_1') and (RowKey ge 'rowkey_0')) and (RowKey le 'rowkey_1')) and (IsGCed eq false)) and (LongPrimitive gt 60L)" This filterQueryString is accepted in AzureStorage emulator as ^0L is treated as Long data type and returns correct result But the same Azurite treats 60L as string hence is returning incorrect result due to comparing coloumn data as string

Steps to reproduce the issue?

Create table query with filter on some column which of type long it will give incorrect result.

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

blueww commented 1 month ago

@piyushanshu

We recently has a fix for long data in table query: https://github.com/Azure/Azurite/pull/2386 Would you please install/run the latest Azurite 3.30.0, and see if the issue repro or not?

piyushanshu commented 1 month ago

@piyushanshu

We recently has a fix for long data in table query: #2386 Would you please install/run the latest Azurite 3.30.0, and see if the issue repro or not?

Thanks for the update.