You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One of the open questions of the new query object model was whether object references like TableField should allow for recursing traversal and replacement into their parent objects:
I.e. a TableField is a Table and a Field, whereas a Table is a Schema and a Table, etc.
Such recursion could help simplify implementing multitenancy and other types of features. But the price is high:
The recursion is a bit counter intuitive. A TableField isn't "composed" of a Table and a Field. Much rather, the Table is just a property of the Field. When a Field is expected (e.g. x = 1), then it it counter-intuitive to traverse into a Table
Since most Field expressions are probably TableField expressions, the overhead of recursion is quite significant, even when that is hardly ever needed
Consistency dictates that we should treat all Named objects alike. Currently, only SchemaImpl and TableImpl traverse into their parent objects (TableImpl still implements UNotYetImplemented, so this isn't strictly a documented feature)
lukaseder
changed the title
Let SchemaImpl and TableImpl implement UEmpty
Let SchemaImpl and TableImpl avoid traversal and replacement recursion
May 8, 2023
One of the open questions of the new query object model was whether object references like
TableField
should allow for recursing traversal and replacement into their parent objects:I.e. a
TableField
is aTable
and aField
, whereas aTable
is aSchema
and aTable
, etc.Such recursion could help simplify implementing multitenancy and other types of features. But the price is high:
TableField
isn't "composed" of aTable
and aField
. Much rather, theTable
is just a property of theField
. When aField
is expected (e.g.x = 1
), then it it counter-intuitive to traverse into aTable
Field
expressions are probablyTableField
expressions, the overhead of recursion is quite significant, even when that is hardly ever neededNamed
objects alike. Currently, onlySchemaImpl
andTableImpl
traverse into their parent objects (TableImpl
still implementsUNotYetImplemented
, so this isn't strictly a documented feature)Implementing this means #15020 will get rejected.
The text was updated successfully, but these errors were encountered: