mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
f45df8c014
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
|