Re: Minor point about contrib/xml2 functions "IMMUTABLE" marking
От | Bruce Momjian |
---|---|
Тема | Re: Minor point about contrib/xml2 functions "IMMUTABLE" marking |
Дата | |
Msg-id | 200510130346.j9D3kVA11440@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Minor point about contrib/xml2 functions "IMMUTABLE" marking (John Gray <jgray@azuli.co.uk>) |
Ответы |
Re: Minor point about contrib/xml2 functions "IMMUTABLE"
(Neil Conway <neilc@samurai.com>)
|
Список | pgsql-hackers |
Agreed. I have changed them both to stable. I think xslt_process() should be stable because it is unlikely you would want a URL's contents to change inside a transaction, but likely you would want it to change between transactions. --------------------------------------------------------------------------- John Gray wrote: > Hi, > > I did see the message about the change of the function signatures to > include IMMUTABLE and thought "Yes, that makes sense" - however, it has > now occurred to me that: > > 1. xpath_table uses a SELECT query to fetch the data it uses, so should > presumably be marked STABLE? > > 2. xslt_process is to be considered IMMUTABLE if the stylesheet or > document are literal values, but if either is a URL then they are fetched > on evaluation. An optimisation down to one call of xslt_process (using the > URL contents current at that point) almost certainly conforms with "least > surprise" for most use cases, but it's not strictly true as a second call > could return a different result - comments? > > It may be that neither of these has a significant practical impact for > most users, but I thought it might be worth flagging, now that I've been > working on contrib/xml2 again[*] > > Regards > > John > > [*] I've written an XML output function that composes the XML document > structure based on the SQL join hierarchy; I'll post something on hackers > for comments in the near future. This may or may not have been rendered > redundant by the SQL/XML work recently added! > > ---------------------------(end of broadcast)--------------------------- > TIP 9: In versions below 8.0, the planner will ignore your desire to > choose an index scan if your joining column's datatypes do not > match > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 Index: contrib/xml2/pgxml.sql.in =================================================================== RCS file: /cvsroot/pgsql/contrib/xml2/pgxml.sql.in,v retrieving revision 1.4 diff -c -c -r1.4 pgxml.sql.in *** contrib/xml2/pgxml.sql.in 14 Jul 2005 07:12:27 -0000 1.4 --- contrib/xml2/pgxml.sql.in 13 Oct 2005 03:41:32 -0000 *************** *** 44,50 **** CREATE OR REPLACE FUNCTION xpath_table(text,text,text,text,text) RETURNS setof record AS 'MODULE_PATHNAME' ! LANGUAGE 'c' STRICT IMMUTABLE; -- XSLT functions -- Delete from here to the end of the file if you are not compiling with --- 44,50 ---- CREATE OR REPLACE FUNCTION xpath_table(text,text,text,text,text) RETURNS setof record AS 'MODULE_PATHNAME' ! LANGUAGE 'c' STRICT STABLE; -- XSLT functions -- Delete from here to the end of the file if you are not compiling with *************** *** 52,58 **** CREATE OR REPLACE FUNCTION xslt_process(text,text,text) RETURNS text ! AS 'MODULE_PATHNAME' LANGUAGE 'c' STRICT IMMUTABLE; -- the function checks for the correct argument count --- 52,58 ---- CREATE OR REPLACE FUNCTION xslt_process(text,text,text) RETURNS text ! AS 'MODULE_PATHNAME' LANGUAGE 'c' STRICT STABLE; -- the function checks for the correct argument count
В списке pgsql-hackers по дате отправления:
Предыдущее
От: Neil ConwayДата:
Сообщение: Re: [COMMITTERS] pgsql: Do all accesses to shared buffer
Следующее
От: Tom LaneДата:
Сообщение: Re: [COMMITTERS] pgsql: Do all accesses to shared buffer headers through