mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	It was never terribly consistent to use OR REPLACE (because of the lack of comparable functionality for data types, operators, etc), and experimentation shows that it's now positively pernicious in the extension world. We really want a failure to occur if there are any conflicts, else it's unclear what the extension-ownership state of the conflicted object ought to be. Most of the time, CREATE EXTENSION will fail anyway because of conflicts on other object types, but an extension defining only functions can succeed, with bad results.
		
			
				
	
	
		
			30 lines
		
	
	
		
			672 B
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			672 B
		
	
	
	
		
			SQL
		
	
	
	
	
	
/* contrib/test_parser/test_parser--1.0.sql */
 | 
						|
 | 
						|
CREATE FUNCTION testprs_start(internal, int4)
 | 
						|
RETURNS internal
 | 
						|
AS 'MODULE_PATHNAME'
 | 
						|
LANGUAGE C STRICT;
 | 
						|
 | 
						|
CREATE FUNCTION testprs_getlexeme(internal, internal, internal)
 | 
						|
RETURNS internal
 | 
						|
AS 'MODULE_PATHNAME'
 | 
						|
LANGUAGE C STRICT;
 | 
						|
 | 
						|
CREATE FUNCTION testprs_end(internal)
 | 
						|
RETURNS void
 | 
						|
AS 'MODULE_PATHNAME'
 | 
						|
LANGUAGE C STRICT;
 | 
						|
 | 
						|
CREATE FUNCTION testprs_lextype(internal)
 | 
						|
RETURNS internal
 | 
						|
AS 'MODULE_PATHNAME'
 | 
						|
LANGUAGE C STRICT;
 | 
						|
 | 
						|
CREATE TEXT SEARCH PARSER testparser (
 | 
						|
    START    = testprs_start,
 | 
						|
    GETTOKEN = testprs_getlexeme,
 | 
						|
    END      = testprs_end,
 | 
						|
    HEADLINE = pg_catalog.prsd_headline,
 | 
						|
    LEXTYPES = testprs_lextype
 | 
						|
);
 |