Skip to content

Write-time joins should be optional and configurable #5118 #13

Description

@evrenesat

In current implementation, write-time joins works without any limitation or configuration. It tries to cache all relations of a model without entering a recursion loop. But this implementation isn't working efficiently as it should be. It has some obscure bugs too.

Caching should be turned of by default and should be configurable (by specifying a step size) for each relation. I've started to work on this in (rejoin) branch. Initially I've removed all caching realted features. After be able to pass all the tests (pyoko/zengine/ulakbus) I'll merge it to master. Then I will continue to work on it as a side work.

In the following model structure, only B, E and G model's data should be cached on A.

+----+       +-----+
| A  |  2    |     |
|    +-----> |  E  |
+--+-+       +--+--+
   |            |
 1 |            |
   |            |
+--v-+       +--v---+
| B  |       | G    |
|    |       |      |
+--+-+       +---+--+
   |             |
   |             |
   |             |
+--v--+      +---v--+
| C   |      |      |
|     |      | H    |
+--+--+      |      |
   |         +------+
   |
+--v--+
|  D  |
|     |
+-----+

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions