Re: default_text_search_config and expression indexes
От | Oleg Bartunov |
---|---|
Тема | Re: default_text_search_config and expression indexes |
Дата | |
Msg-id | Pine.LNX.4.64.0707311202560.18739@sn.sai.msu.ru обсуждение исходный текст |
Ответ на | Re: default_text_search_config and expression indexes (Bruce Momjian <bruce@momjian.us>) |
Список | pgsql-hackers |
On Mon, 30 Jul 2007, Bruce Momjian wrote: > Oleg Bartunov wrote: >>> OK, here is what I am thinking. If we make default_text_search_config >>> super-user-only, then the user can't do SET (using "zero_damaged_pages" >>> as a superuser-only example): >>> >>> test=> set zero_damaged_pages = on; >>> ERROR: permission denied to set parameter "zero_damaged_pages" >>> >>> test=> alter user guest set zero_damaged_pages = on; >>> ERROR: permission denied to set parameter "zero_damaged_pages" >>> >>> but the super-user can set it in postgresql.conf, or: >>> >>> test=# alter user guest set zero_damaged_pages = on; >>> ALTER ROLE >>> >>> or >>> >>> test=# alter database vendor3 set zero_damaged_pages = on; >>> ALTER ROLE >>> >>> meaning while it will be super-user-only, the administrator can set the >>> default for specific databases and users. Is that the best approach? >>> >>> A user can still over-ride the default by specifying the configuration >>> in the function call. >> >> This is ok, but it will not work in hosting environment and still >> doesn't prevent errors. > > Agreed. super-user-only now seems strange to me because it isn't a > security issue, but rather an attempt to avoid people causing errors. > > The fundamental issue is that if you do a query using tsvector and > tsquery everything will work find because default_text_search_config > will be the same for both queries. The problem is if do an expression > index lookup that doesn't specify the configuration name and your > default_text_search_config doesn't match the index, or you INSERT or > UPDATE into an expression index with a mismatched > default_text_search_config. > > If we do make default_text_search_config super-user-only it prevents a > database owner from doing ALTER DATABASE db1 SET > default_text_search_config = 'english', which seems like a pretty big > limitation because I think per-database default_text_search_config makes > the most sense. > > And, again, if you specify the configuration in the expression index you > have to specify it in the WHERE clause and then > default_text_search_config is pretty useless. agree. Notice, this is very limited usage case. > > If we required the configuration to always be specified, you could still > store multiple configurations in the same column by having a secondary > column hold the configuration name: I don't understand this. Let's don't discuss indexes at all, since indexes doesn't know about configuratons at all > > CREATE INDEX i on x USING gist (to_tsvector(config_col, body)); Regards, Oleg _____________________________________________________________ Oleg Bartunov, Research Scientist, Head of AstroNet (www.astronet.ru), Sternberg Astronomical Institute, Moscow University, Russia Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(495)939-16-83, +007(495)939-23-83
В списке pgsql-hackers по дате отправления: