Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2003-05-26 00:11:29 +0000
committerTom Lane2003-05-26 00:11:29 +0000
commitf45df8c0144005739d09387cb594baaaa08295a6 (patch)
tree45bf02ceab43e8eb24ff7c961cff9a89e3db2770 /contrib/array
parent297c1658ed35dc0ac4a13c190f29cc5e2ad49a0b (diff)
Cause CHAR(n) to TEXT or VARCHAR conversion to automatically strip trailing
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).
Diffstat (limited to 'contrib/array')
-rw-r--r--contrib/array/array_iterator.c37
-rw-r--r--contrib/array/array_iterator.h5
-rw-r--r--contrib/array/array_iterator.sql.in53
3 files changed, 0 insertions, 95 deletions
diff --git a/contrib/array/array_iterator.c b/contrib/array/array_iterator.c
index d2a9a3271e6..9504f752779 100644
--- a/contrib/array/array_iterator.c
+++ b/contrib/array/array_iterator.c
@@ -146,43 +146,6 @@ array_all_textregexeq(ArrayType *array, void *value)
}
/*
- * Iterator functions for type _varchar. Note that the regexp
- * operators take the second argument of type text.
- */
-
-int32
-array_varchareq(ArrayType *array, void *value)
-{
- return array_iterator(F_VARCHAREQ,
- 0, /* logical or */
- array, (Datum) value);
-}
-
-int32
-array_all_varchareq(ArrayType *array, void *value)
-{
- return array_iterator(F_VARCHAREQ,
- 1, /* logical and */
- array, (Datum) value);
-}
-
-int32
-array_varcharregexeq(ArrayType *array, void *value)
-{
- return array_iterator(F_TEXTREGEXEQ,
- 0, /* logical or */
- array, (Datum) value);
-}
-
-int32
-array_all_varcharregexeq(ArrayType *array, void *value)
-{
- return array_iterator(F_TEXTREGEXEQ,
- 1, /* logical and */
- array, (Datum) value);
-}
-
-/*
* Iterator functions for type _bpchar. Note that the regexp
* operators take the second argument of type text.
*/
diff --git a/contrib/array/array_iterator.h b/contrib/array/array_iterator.h
index c85d68f27ac..75cfba07dd7 100644
--- a/contrib/array/array_iterator.h
+++ b/contrib/array/array_iterator.h
@@ -9,11 +9,6 @@ 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_varchareq(ArrayType *array, void *value);
-int32 array_all_varchareq(ArrayType *array, void *value);
-int32 array_varcharregexeq(ArrayType *array, void *value);
-int32 array_all_varcharregexeq(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);
diff --git a/contrib/array/array_iterator.sql.in b/contrib/array/array_iterator.sql.in
index 4108a63eafd..2d89f2c9872 100644
--- a/contrib/array/array_iterator.sql.in
+++ b/contrib/array/array_iterator.sql.in
@@ -55,59 +55,6 @@ CREATE OPERATOR **~ (
);
--- define the array operators *=, **=, *~ and **~ for type _varchar
---
--- NOTE: "varchar" is also a reserved word and must be quoted.
---
-CREATE OR REPLACE FUNCTION array_varchareq(_varchar, varchar)
-RETURNS bool
-AS 'MODULE_PATHNAME'
-LANGUAGE 'C' IMMUTABLE STRICT;
-
-CREATE OR REPLACE FUNCTION array_all_varchareq(_varchar, varchar)
-RETURNS bool
-AS 'MODULE_PATHNAME'
-LANGUAGE 'C' IMMUTABLE STRICT;
-
-CREATE OR REPLACE FUNCTION array_varcharregexeq(_varchar, varchar)
-RETURNS bool
-AS 'MODULE_PATHNAME'
-LANGUAGE 'C' IMMUTABLE STRICT;
-
-CREATE OR REPLACE FUNCTION array_all_varcharregexeq(_varchar, varchar)
-RETURNS bool
-AS 'MODULE_PATHNAME'
-LANGUAGE 'C' IMMUTABLE STRICT;
-
-DROP OPERATOR *=(_varchar,"varchar");
-CREATE OPERATOR *= (
- LEFTARG=_varchar,
- RIGHTARG="varchar",
- PROCEDURE=array_varchareq
-);
-
-DROP OPERATOR **=(_varchar,"varchar");
-CREATE OPERATOR **= (
- LEFTARG=_varchar,
- RIGHTARG="varchar",
- PROCEDURE=array_all_varchareq
-);
-
-DROP OPERATOR *~(_varchar,"varchar");
-CREATE OPERATOR *~ (
- LEFTARG=_varchar,
- RIGHTARG="varchar",
- PROCEDURE=array_varcharregexeq
-);
-
-DROP OPERATOR **~(_varchar,"varchar");
-CREATE OPERATOR **~ (
- LEFTARG=_varchar,
- RIGHTARG="varchar",
- PROCEDURE=array_all_varcharregexeq
-);
-
-
-- define the array operators *=, **=, *~ and **~ for type _bpchar
--
CREATE OR REPLACE FUNCTION array_bpchareq(_bpchar, bpchar)