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
Reasoning is that these tables are non-production, and are likely to be out of sync with parent/child relationships.
A *_vrepl table is either ongoing an Online DDL operation via vreplication, which means it's being slowly and asynchronously populated from another table, or is the "leftover" of the original table once cut-over is complete. In both cases the table cannot be guaranteed to agree to FK constraints. In fact, it is harmful for VTGate to work with these queries because these are being populated by vreplication.
A _vt_DROP... table is for example one that's about to be dropped. It does not make sense to withhold operations in production table due to e.g. missing rows in this table.
VTGate should completely ignore any parent-child relationship where either parent or child (or both) have an internal table name.
The text was updated successfully, but these errors were encountered:
The best is to avoid sending any information from the vttablet to vtgate about those table that they exists. We would not need any logic in VTGate for it.
Work of VTGate foreign key support described in #12967, and some substantial work in #13823.
Vitess maintains internal tables of the following forms:
_vt_HOLD_...
_..._vrepl
tablesThose tables can be identified by
IsInternalOperationTableName()
, as defined here:vitess/go/vt/schema/name.go
Lines 58 to 71 in 99271d4
Reasoning is that these tables are non-production, and are likely to be out of sync with parent/child relationships.
*_vrepl
table is either ongoing an Online DDL operation viavreplication
, which means it's being slowly and asynchronously populated from another table, or is the "leftover" of the original table once cut-over is complete. In both cases the table cannot be guaranteed to agree to FK constraints. In fact, it is harmful for VTGate to work with these queries because these are being populated byvreplication
._vt_DROP...
table is for example one that's about to be dropped. It does not make sense to withhold operations in production table due to e.g. missing rows in this table.VTGate should completely ignore any parent-child relationship where either parent or child (or both) have an internal table name.
The text was updated successfully, but these errors were encountered: