add 'node_type' to list of immutable model fields #3619
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1700
In the conversion from a backend entity to an ORM entity, the
node_type
attribute of the ModelWrapper is requested, which triggereda database query.
This meant that a QueryBuilder returning N nodes actually caused 1+N
queries to the database instead of 1 (with obvious performance hits).
By making 'node_type' explicitly immutable (changing the type of a node
should not be allowed), requesting it no longer triggers a database
query.
Note: Currently, the
IMMUTABLE_MODEL_FIELDS
is a global list, which is applied to all models.As @muhrin mentioned, we might want to add an
immutable_fields
property to themodel
s so that they can define their own immutable fields. Happy to open an issue for this.