2015-03-22 3:55 GMT+01:00 Peter Eisentraut <pete...@gmx.net>: > Here is an updated patch. > > On 3/17/15 1:11 AM, Pavel Stehule wrote: > > 2015-03-17 2:51 GMT+01:00 Peter Eisentraut <pete...@gmx.net > > <mailto:pete...@gmx.net>>: > > > > On 3/12/15 8:12 AM, Pavel Stehule wrote: > > > 1. fix missing semicolon pg_proc.h > > > > > > Oid protrftypes[1]; /* types for which to apply > > > transforms */ > > > > Darn, I thought I had fixed that. > > Fixed. > > > > 2. strange load lib by in sql scripts: > > > > > > DO '' LANGUAGE plperl; > > > SELECT NULL::hstore; > > > > > > use load plperl; load hstore; instead > > > > OK > > The reason I had actually not used LOAD is that LOAD requires a file > name, and the file name of those extensions is an implementation detail. > So it is less of a violation to just execute something from those > modules rather than reach in and deal with the file directly. > > It's not terribly pretty either way, I admit. A proper fix would be to > switch to lazy symbol resolution, but that would be a much bigger change. > > > > 3. missing documentation for new contrib modules, > > > > OK > > They actually are documented as part of the hstore and ltree modules > already. > > > > 4. pg_dump - wrong comment > > > > > > +<-----><------>/* > > > +<-----><------> * protrftypes was added at v9.4 > > > +<-----><------> */ > > > > OK > > Fixed. > > > > 4. Why guc-use-transforms? Is there some possible negative side > effect > > > of transformations, so we have to disable it? If somebody don't > would to > > > use some transformations, then he should not to install some > specific > > > transformation. > > > > Well, there was extensive discussion last time around where people > > disagreed with that assertion. > > > > > > I don't like it, but I can accept it - it should not to impact a > > functionality. > > Removed. > > > > 5. I don't understand to motivation for introduction of > protrftypes in > > > pg_proc and TRANSFORM clause for CREATE FUNCTION - it is not clean > from > > > documentation, and examples in contribs works without it. Is it > this > > > functionality really necessary? Missing tests, missing examples. > > > > Again, this came out from the last round of discussion that people > > wanted to select which transforms to use and that the function needs > to > > remember that choice, so it doesn't depend on whether a transform > > happens to be installed or not. Also, it's in the SQL standard that > way > > (by analogy). > > > > > > I am sorry, I didn't discuss this topic and I don't agree so it is good > > idea. I looked to standard, and I found CREATE TRANSFORM part there. But > > nothing else. > > > > Personally I am thinking, so it is terrible wrong idea, unclean, > > redundant. If we define TRANSFORM, then we should to use it. Not prepare > > bypass in same moment. > > > > Can be it faster, safer with it? I don't think. > > Well, I don't think there is any point in reopening this discussion. > This is a safety net of sorts that people wanted. You can argue that it > would be more fun without it, but nobody else would agree. There is > really no harm in keeping it. All the function lookup is mostly cached > anyway. The only time this is really important is for pg_dump to be > able to accurately restore function behavior. >
1. It add attribute to pg_proc, so impact is not minimal 2. Minimally it is not tested - there are no any test for this functionality 3. I'll reread a discuss about this design - Now I am thinking so this duality (in design) is wrong - worse in relatively critical part of Postgres. I can mark this patch as "ready for commiter" with objection - It is task for commiter, who have to decide. Regards Pavel