Re: Ensure that maxlen is an integer value in dict_int configuration
От | Arthur Zakirov |
---|---|
Тема | Re: Ensure that maxlen is an integer value in dict_int configuration |
Дата | |
Msg-id | 20180327130359.GA4520@zakirov.localdomain обсуждение исходный текст |
Ответ на | Ensure that maxlen is an integer value in dict_int configuration (Daniel Gustafsson <daniel@yesql.se>) |
Ответы |
Re: Ensure that maxlen is an integer value in dict_int configuration
|
Список | pgsql-hackers |
On Tue, Mar 27, 2018 at 01:17:20PM +0200, Daniel Gustafsson wrote: > I recently had a usecase for dict_int, typoed my script and spent longer than > I’d like to admit finding said typo. The attached patch scratches my itch by > ensuring that the maxlen parameter to dict_int is integer, instead of silently > setting it to zero on malformed input. Instead of this: > > dg=# alter text search dictionary intdict (maxlen = a, rejectlong = true); > ALTER TEXT SEARCH DICTIONARY > dg=# select ts_lexize('intdict', '12345678'); > ts_lexize > ----------- > {} > (1 row) But the patch breaks options parsing in another place. After the patch: =# alter text search dictionary intdict (maxlen = 3, rejectlong = true); ALTER TEXT SEARCH DICTIONARY =# select ts_lexize('intdict', '12345678'); ERROR: maxlen requires an integer value It is because all options are stored as string: =# select dictinitoption from pg_ts_dict where dictname = 'intdict'; dictinitoption ----------------------------------- maxlen = '5', rejectlong = 'true' So the right fix could be as it done in postgres_fdw_validator() for 'fetch_size' option. -- Arthur Zakirov Postgres Professional: http://www.postgrespro.com Russian Postgres Company
В списке pgsql-hackers по дате отправления: