mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	blanks, in hopes of reducing the surprise factor for newbies. Remove redundant operators for VARCHAR (it depends wholly on TEXT operations now). Clean up resolution of ambiguous operators/functions to avoid surprising choices for domains: domains are treated as equivalent to their base types and binary-coercibility is no longer considered a preference item when choosing among multiple operators/functions. IsBinaryCoercible now correctly reflects the notion that you need *only* relabel the type to get from type A to type B: that is, a domain is binary-coercible to its base type, but not vice versa. Various marginal cleanup, including merging the essentially duplicate resolution code in parse_func.c and parse_oper.c. Improve opr_sanity regression test to understand about binary compatibility (using pg_cast), and fix a couple of small errors in the catalogs revealed thereby. Restructure "special operator" handling to fetch operators via index opclasses rather than hardwiring assumptions about names (cleans up the pattern_ops stuff a little).
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef ARRAY_ITERATOR_H
 | 
						|
#define ARRAY_ITERATOR_H
 | 
						|
 | 
						|
static int32 array_iterator(Oid proc, int and,
 | 
						|
			   ArrayType *array, Datum value);
 | 
						|
 | 
						|
int32		array_texteq(ArrayType *array, void *value);
 | 
						|
int32		array_all_texteq(ArrayType *array, void *value);
 | 
						|
int32		array_textregexeq(ArrayType *array, void *value);
 | 
						|
int32		array_all_textregexeq(ArrayType *array, void *value);
 | 
						|
 | 
						|
int32		array_bpchareq(ArrayType *array, void *value);
 | 
						|
int32		array_all_bpchareq(ArrayType *array, void *value);
 | 
						|
int32		array_bpcharregexeq(ArrayType *array, void *value);
 | 
						|
int32		array_all_bpcharregexeq(ArrayType *array, void *value);
 | 
						|
 | 
						|
int32		array_int4eq(ArrayType *array, int4 value);
 | 
						|
int32		array_all_int4eq(ArrayType *array, int4 value);
 | 
						|
int32		array_int4ne(ArrayType *array, int4 value);
 | 
						|
int32		array_all_int4ne(ArrayType *array, int4 value);
 | 
						|
int32		array_int4gt(ArrayType *array, int4 value);
 | 
						|
int32		array_all_int4gt(ArrayType *array, int4 value);
 | 
						|
int32		array_int4ge(ArrayType *array, int4 value);
 | 
						|
int32		array_all_int4ge(ArrayType *array, int4 value);
 | 
						|
int32		array_int4lt(ArrayType *array, int4 value);
 | 
						|
int32		array_all_int4lt(ArrayType *array, int4 value);
 | 
						|
int32		array_int4le(ArrayType *array, int4 value);
 | 
						|
int32		array_all_int4le(ArrayType *array, int4 value);
 | 
						|
 | 
						|
int32		array_oideq(ArrayType *array, Oid value);
 | 
						|
int32		array_all_oidne(ArrayType *array, Oid value);
 | 
						|
 | 
						|
int32		array_ineteq(ArrayType *array, void *value);
 | 
						|
int32		array_all_ineteq(ArrayType *array, void *value);
 | 
						|
int32		array_inetne(ArrayType *array, void *value);
 | 
						|
int32		array_all_inetne(ArrayType *array, void *value);
 | 
						|
 | 
						|
#endif
 |