Re: has_column_privilege behavior (was Re: Assert failed in snprintf.c)
От | Tom Lane |
---|---|
Тема | Re: has_column_privilege behavior (was Re: Assert failed in snprintf.c) |
Дата | |
Msg-id | 25831.1538421886@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: has_column_privilege behavior (was Re: Assert failed insnprintf.c) (Stephen Frost <sfrost@snowman.net>) |
Ответы |
Re: has_column_privilege behavior (was Re: Assert failed insnprintf.c)
|
Список | pgsql-hackers |
Stephen Frost <sfrost@snowman.net> writes: > * Tom Lane (tgl@sss.pgh.pa.us) wrote: >> The general plan in the has_foo_privilege functions is to throw errors for >> failing name-based lookups, but return null for failing numerically-based >> lookups (object OID or column number). I'm inclined to think we should >> stick to that. In the case at hand, we'd be supporting queries that >> iterate over pg_attribute, but they'd have to pass attnum not attname >> to avoid snapshot-skew failures. That's a bit annoying, but not throwing >> error for a typo'ed name is annoying to a different and probably larger >> set of users. > ... and what's going to happen when they pass in a dropped column, > either via number or name? Well, it'll have to fail for the name case, but not for the attnum case. > I don't have an issue with throwing a failure for name-based lookups but > returning null for failing numerically-based lookups, but I don't really > want us throwing errors on dropped columns. I would think we'd return > null in that case. You can't have it both ways. Either you throw an error if the name's not there, or you don't. > In particular, I can see this function being used in > a where clause across pg_attribute. As said above, it can work as long as you use attnum not attname. I don't think this is really so different from iterating across pg_class (or any other catalog) and passing relname instead of OID. regards, tom lane
В списке pgsql-hackers по дате отправления: