?
This document uses PHP Chinese website manual Release
這個(gè)特性用來允許那些由附加模塊添加(比如過程語(yǔ)言)的選項(xiàng),通常 PostgreSQL并不知道它們。這樣,附加的模塊 就可以用標(biāo)準(zhǔn)的方式配置。
這個(gè)變量以逗號(hào)分隔的列表聲明一個(gè)或多個(gè)用于自定義變量的類名稱。自定義 變量通常是PostgreSQL并不知道的變量, 但是被一些附加的模塊使用。這樣的變量名必須由一個(gè)類別名、一個(gè)點(diǎn)、 一個(gè)變量名組成。custom_variable_classes聲明在一次安裝 里的所有類別名。這個(gè)選項(xiàng)只能在服務(wù)器啟動(dòng)的時(shí)候或者在 postgresql.conf文件里設(shè)置。
在postgresql.conf里設(shè)置自定義變量的困難在于這個(gè)文件 必須在附加模塊被裝載之前讀取,因此自定義變量通常會(huì)被認(rèn)為是未知而拒絕。 在設(shè)置了custom_variable_classes之后,服務(wù)器將接受每個(gè) 聲明的類別里的任意變量。這些變量將被當(dāng)作占位符,并且在定義它們的模塊 裝載之前沒有任何用處。在一個(gè)特定類別的模塊加載后,它將為這個(gè)類別名增 加合適的變量定義,根據(jù)它們的定義把那些占位符數(shù)值進(jìn)行轉(zhuǎn)換,并且為該類 別剩下的任何占位符發(fā)出警告(這些很有可能是拼寫錯(cuò)的配置變量)。
下面是一個(gè)在使用自定義變量時(shí)postgresql.conf可能包含的東西 的例子。
custom_variable_classes = 'plpgsql,plperl' plpgsql.variable_conflict = use_variable plperl.use_strict = true plruby.use_strict = true # generates error: unknown class name