aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/oid.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2006-03-02 19:40:29 +0000
committerBruce Momjian <bruce@momjian.us>2006-03-02 19:40:29 +0000
commit3fb582c3bcaae0e712cf9d51fc0aa5826534144d (patch)
treebda0a284726e742d803fd58c4bb9e1732985e640 /src/backend/utils/adt/oid.c
parent006bd450fed0539225d116646c1be45d7e7078a5 (diff)
downloadpostgresql-3fb582c3bcaae0e712cf9d51fc0aa5826534144d.tar.gz
postgresql-3fb582c3bcaae0e712cf9d51fc0aa5826534144d.zip
Backpatch to 8.1.X. Already applied to CVS HEAD.
--------------------------------------------------------------------------- > True, but they're not being used where you'd expect. This seems to be > something to do with the fact that it's not pg_authid which is being > accessed, but rather the view pg_roles. I looked into this and it seems the problem is that the view doesn't get flattened into the main query because of the has_nullable_targetlist limitation in prepjointree.c. That's triggered because pg_roles has '********'::text AS rolpassword which isn't nullable, meaning it would produce wrong behavior if referenced above the outer join. Ultimately, the reason this is a problem is that the planner deals only in simple Vars while processing joins; it doesn't want to think about expressions. I'm starting to think that it may be time to fix this, because I've run into several related restrictions lately, but it seems like a nontrivial project. In the meantime, reducing the LEFT JOIN to pg_roles to a JOIN as per Peter's suggestion seems like the best short-term workaround.
Diffstat (limited to 'src/backend/utils/adt/oid.c')
0 files changed, 0 insertions, 0 deletions