Skip to content
This repository has been archived by the owner on Apr 12, 2024. It is now read-only.

Use select_related if query contains foreign key references #16

Merged
merged 7 commits into from
Apr 18, 2023

Conversation

preyunk
Copy link
Contributor

@preyunk preyunk commented Apr 18, 2023

Currently we are directly making a db query if we get a property of a model which is declared as a foreign key. Example os.name. This makes the data retrieval very slow if we have many foreign key references since we execute seperate db queries. To avoid that we use select_related on queryset by default if we have foreign_key in the query.

Additional changes: improve logging
Fixes: #13
Signed-off-by: Priyank Singh [email protected]

Currently we are directly making a db query if we get a property of a model which is
declared as a foreign key. Example `os.name`. This makes the data retrieval very slow
if we have many foreign key references since we execute seperate db queries.
To avoid that we use select_related on queryset by default if we have foreign_key
in the query.

Additional changes: improve logging
Fixes: #13
Signed-off-by: Priyank Singh <[email protected]>
@preyunk preyunk requested a review from piyusql April 18, 2023 06:51
preyunk added 2 commits April 18, 2023 14:28
Signed-off-by: Priyank Singh <[email protected]>
validate whether the queryset operation values passed by the client are of
correct type or not. For example passing a string value in fields
(`fields: 'name'`) is invalid, hence it should raise an
`InvalidQueryException`.

Added test cases

Signed-off-by: Priyank Singh <[email protected]>
kartikeyangupta and others added 4 commits April 18, 2023 19:12
on every push

Signed-off-by: Kartikeyan Gupta <[email protected]>
Implemented schema page functionality to show apps, models and fields available in the
application. This page is only accessible by user with staff access and it will act as
documentation for making BridgeQL API requests.

Signed-off-by: Vidya Sagar <[email protected]>
display which operation has invalid type and what should be the expected type
for a queryset operation

Signed-off-by: Priyank Singh <[email protected]>
@vmwclabot
Copy link

@preyunk, you must sign every commit in this pull request acknowledging our Developer Certificate of Origin before your changes are merged. This can be done by adding Signed-off-by: John Doe <[email protected]> to the last line of each Git commit message. The e-mail address used to sign must match the e-mail address of the Git author. Click here to view the Developer Certificate of Origin agreement.

Copy link
Contributor

@piyusql piyusql left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good

@piyusql piyusql merged commit c0112a2 into main Apr 18, 2023
@piyusql piyusql deleted the feature-select-related branch April 21, 2023 11:46
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add support for select_related operation
5 participants