-
-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Parse.Query.and Problem with nested "equalTo relational fields" condition #7579
Comments
Thanks for opening this issue!
|
Can you please change the code in "Steps to reproduce" to a specific example that one can copy/paste to reproduce the issue? Instead of using placeholders in |
here is the pr with a new test case |
I don't know which branch should be chosen to be the target branch, so I opened 2 PRs. one is 'release-4.x.x', the other is 'master' branch. I just want to prove that this issue can be reproduced on both branches. If there is no need to open PR for both of them, I will close one of them. :) |
We usually work and complete a fix for the master branch, and after merging backport it to 4.x branch. But you did well thinking about both branches! Maybe we can close the 4.x PR for now, until we have completed the master PR. |
done. |
I've pushed some commits to #7593, and please check it out. :) |
I think It's necessary to backport this bugfix to |
Thanks for pointing this out! Let's first merge this into the master branch, then try to backport it into 4.x. |
any plans to merge this into alpha branch? #7593 |
Sure, I'll take a look at the PR, apologies for the wait. |
Thanks for merging the pr into alpha, I'll try using the newest pre-release for my production. Should I close this issue now? These days I've noticed that the issue was labeled by |
Amazing, we can't have enough alpha testers, so please let us know in case you find any issues with the alpha release. There is indeed a bounty on this issue, the Parse Bounty Program explains how you can request the payout. This issue can be closed as we assume the merged PR has solved it. Thanks for your contribution! |
@mtrezza there's a PR that broke the parse-server and I've tracked it to this PR. 5.0.0-alpha.1 works for me, 5.0.0-alpha.2 I haven't tested yet, but it only adds a GraphQL change which I'm not using. Leaving this one in which my servers don't work anymore for 5.0.0-alpha.3. Below is is my error logs: parse-hipaa-parse-1 | info: afterSave triggered for _User for user undefined:
parse-hipaa-parse-1 | Input: {"authData":{"anonymous":{"id":"9601869f-2eef-4fff-8519-690a422310fa"}},"ACL":{"*":{"read":true,"write":false},"aAnt8JX15Q9vjix6kGdZgjRQWm5QGrPY":{"read":true,"write":true}},"createdAt":"2021-11-22T22:21:46.478Z","username":"YBBMbganzC1KGlFhhKXWFRjNn","sessionToken":"r:97d78ad4fac78246134dc96ed8c08cac","updatedAt":"2021-11-22T22:21:46.478Z","objectId":"aAnt8JX15Q9vjix6kGdZgjRQWm5QGrPY"}
parse-hipaa-parse-1 | Result: undefined {"className":"_User","triggerType":"afterSave"}
parse-hipaa-parse-1 | /parse-server/lib/ParseServer.js:258
parse-hipaa-parse-1 | throw err;
parse-hipaa-parse-1 | ^
parse-hipaa-parse-1 |
parse-hipaa-parse-1 | TypeError: Cannot read properties of undefined (reading 'type')
parse-hipaa-parse-1 | at /parse-server/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js:1344:40
parse-hipaa-parse-1 | at Array.forEach (<anonymous>)
parse-hipaa-parse-1 | at PostgresStorageAdapter.createObject (/parse-server/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js:1303:25)
parse-hipaa-parse-1 | at /parse-server/lib/Controllers/DatabaseController.js:782:29
parse-hipaa-parse-1 | at processTicksAndRejections (node:internal/process/task_queues:96:5)
parse-hipaa-parse-1 exited with code 7 Note, this completely crashes the server. I'm using the Swift SDK, but Query.and is implemented like the rest of the Client SDKs, so this a major breaking change. In addition, skimming the additions in this PR, I highly doubt the server wasn't handling $and before this PR. If I remove the code that uses triggers, none of my client side queries work correctly because of this PR. I'll open an issue soon. |
New Issue Checklist
Issue Description
I'm doing a data collection and publication application. It has two roles, data uploader, and reader. When readers retrieve data, the server need to remove data that is not reviewed by the administrator and only show data which had been reviewed. But for data uploader, he/she can see data uploaded by him/herself although the data has not been reviewed by the administrator. So we defined
beforeFind
trigger in a class named Topic(data class), it has a nested "equalTo relational fields" in Parse.Query.and (Parse.Query.or is ok). But the server sdk will treat nested "equalTo relational fields" as "equalTo pointer fields", other than relation.Steps to reproduce
Actual Outcome
zero results found.
explain:
the 'rel' not be parsed to containedIn but be treated as a pointer.
Expected Outcome
multiple results found.
expected explain:
Environment
^4.10.3
Server
Database
Client
test using Postman and restful-api for parse server too.
Logs
Topic is the target class, and 'cls' is a relational field to the class named 'Class'.
The text was updated successfully, but these errors were encountered: