Re: Nit: "Immutable" should be "pure"
От | Bruce Momjian |
---|---|
Тема | Re: Nit: "Immutable" should be "pure" |
Дата | |
Msg-id | 20191107172830.GD12478@momjian.us обсуждение исходный текст |
Ответ на | Nit: "Immutable" should be "pure" (PG Doc comments form <noreply@postgresql.org>) |
Список | pgsql-docs |
On Thu, Nov 7, 2019 at 02:17:58PM +0000, PG Doc comments form wrote: > The following documentation comment has been logged on the website: > > Page: https://www.postgresql.org/docs/12/sql-createindex.html > Description: > > The adjective "immutable" describing the functions and operators used in an > index (see two occurrences in doc snippet below) is incorrect and should be > replaced with "pure". Both "pure" and "immutable" are in popular lexicon now > because of the interest in functional programming, so conflating the two can > happen, but the word immutable applies to data and pure applies to > functions. See https://en.wikipedia.org/wiki/Pure_function. > > From the CREATE INDEX doc: > All functions and operators used in an index definition must be “immutable”, > that is, their results must depend only on their arguments and never on any > outside influence (such as the contents of another table or the current > time). This restriction ensures that the behavior of the index is > well-defined. To use a user-defined function in an index expression or WHERE > clause, remember to mark the function immutable when you create it. Well, we use IMMUTABLE as an option to CREATE FUNCTION so I don't see how we can realign to the new word meanings without a lot of confusion: CREATE [ OR REPLACE ] FUNCTION name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] ) [ RETURNS rettype | RETURNS TABLE ( column_name column_type [, ...] ) ] { LANGUAGE lang_name | TRANSFORM { FOR TYPE type_name } [, ... ] | WINDOW | IMMUTABLE | STABLE | VOLATILE | [ NOT ] LEAKPROOF ^^^^^^^^^ I think the best we can do is to mention that IMMUTABLE functions mean pure, but I am not sure there is even enough demand for that, vs. confusing people. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + As you are, so once was I. As I am, so you will be. + + Ancient Roman grave inscription +
В списке pgsql-docs по дате отправления: