Gregory Stark wrote:
>> I guess a generalization of my question is whether the FK-
>> checking machinery
>> simply does a SELECT against the referencing column.
>
> It does
> Actually the query is (effectively, assuming your equality
> operators are named
> "=" and the columns match in type)
>
> SELECT 1
> FROM ONLY B x
> WHERE col1=?
> AND col2=?
> ...
> FOR SHARE OF x
>
> Since it has to take a lock on the record found to ensure it
> doesn't disappear
> before your transaction finishes.
Awesome, this tells me a lot! So I can use EXPLAIN ANALYZE and a
query like this to reason about what indexes I might need on my
foreign key references. Thanks!
- John D. Burger
MITRE