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

[Table Storage] Azurite query behavior different from Azure for null values #2471

Open
yohny opened this issue Oct 1, 2024 · 2 comments
Open
Assignees
Labels
alignment Alignment between Azurite with Azure Storage production table-query table-storage Relating to Azurite table storage implementation

Comments

@yohny
Copy link

yohny commented Oct 1, 2024

The behavior when querying Azurite table storage and real Azure table storage is different.
The query myCol eq null works without issue against Azurite table storage, but when executed against real Azure table storage the error occures.
Azurite log output:

127.0.0.1 - - [01/Oct/2024:08:40:28 +0000] "GET /devstoreaccount1/RemoteSupportRequests()?$filter=myCol%20eq%20null HTTP/1.1" 200 -

Error when the same query is executed against Azure table storage from Nodejs Azure function

Executed 'Functions.registerSR' (Failed, Id=7d45ce46-8903-4a7b-94ed-30315cd4160d, Duration=2756ms)
[2024-10-01T08:48:30.785Z] System.Private.CoreLib: Exception while executing function: Functions.registerSR. System.Private.CoreLib: Result: Failure     
Exception: {"odata.error":{"code":"InvalidInput","message":{"lang":"en-US","value":"One of the request inputs is not valid.\nRequestId:a8fa2604-4002-0083-09de-138354000000\nTime:2024-10-01T08:48:30.7516873Z"}}}
Stack: RestError: {"odata.error":{"code":"InvalidInput","message":{"lang":"en-US","value":"One of the request inputs is not valid.\nRequestId:a8fa2604-4002-0083-09de-138354000000\nTime:2024-10-01T08:48:30.7516873Z"}}}
    at handleErrorResponse (C:\Users\nej\source\repos\azf-samples-ts\node_modules\@azure\core-client\dist\commonjs\deserializationPolicy.js:148:19)      
    at deserializeResponseBody (C:\Users\nej\source\repos\azf-samples-ts\node_modules\@azure\core-client\dist\commonjs\deserializationPolicy.js:83:45)   
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5).

Azurite 3.32.0

@blueww
Copy link
Member

blueww commented Oct 10, 2024

@EmmaZhu Would you please help to look?

@blueww blueww added table-storage Relating to Azurite table storage implementation alignment Alignment between Azurite with Azure Storage production table-query labels Oct 10, 2024
@WolfspiritM
Copy link

We also experienced a similar issue when it comes to default aspire Healthchecks:
#2450

The reason is that the healthcheck uses a filter of just "false" so no elements get returned but azurite seems to not like that:
https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/blob/116a4eac95eac47d1811d33a1f93b053ff87fa19/src/HealthChecks.Azure.Data.Tables/AzureTableServiceHealthCheck.cs#L38

I think "false" and also maybe "true" even so they don't make much sense in general use cases should be supported here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
alignment Alignment between Azurite with Azure Storage production table-query table-storage Relating to Azurite table storage implementation
Projects
None yet
Development

No branches or pull requests

4 participants