Agreed. We can catch all usages in a single place: ExpressionCompiler.resolveColumn(ColumnParseNode). The only exception is UPSERT VALUES which we can handle here.

We'll need to do the adding of the tenantId filter in a slightly different way. I'll comment there about what needs to change.