diff --git a/contrib/btree_gist/btree_gist.c b/contrib/btree_gist/btree_gist.c index e1dc253c96..92520aedae 100644 --- a/contrib/btree_gist/btree_gist.c +++ b/contrib/btree_gist/btree_gist.c @@ -3,7 +3,7 @@ */ #include "postgres.h" -#include "btree_gist.h" +#include "utils/builtins.h" PG_MODULE_MAGIC; @@ -19,22 +19,26 @@ PG_FUNCTION_INFO_V1(gbtreekey_out); Datum gbtreekey_in(PG_FUNCTION_ARGS) { + Oid typioparam = PG_GETARG_OID(1); + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("key_in() not implemented"))); + errmsg("cannot accept a value of type %s", + format_type_extended(typioparam, -1, + FORMAT_TYPE_ALLOW_INVALID)))); - PG_RETURN_POINTER(NULL); + PG_RETURN_VOID(); /* keep compiler quiet */ } -#include "btree_utils_var.h" -#include "utils/builtins.h" Datum gbtreekey_out(PG_FUNCTION_ARGS) { + /* Sadly, we do not receive any indication of the specific type */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("key_out() not implemented"))); - PG_RETURN_POINTER(NULL); + errmsg("cannot display a value of type %s", "gbtreekey?"))); + + PG_RETURN_VOID(); /* keep compiler quiet */ } diff --git a/contrib/hstore/hstore_gist.c b/contrib/hstore/hstore_gist.c index 39ba92a6bf..5d8b806d30 100644 --- a/contrib/hstore/hstore_gist.c +++ b/contrib/hstore/hstore_gist.c @@ -96,15 +96,21 @@ PG_FUNCTION_INFO_V1(ghstore_out); Datum ghstore_in(PG_FUNCTION_ARGS) { - elog(ERROR, "Not implemented"); - PG_RETURN_DATUM(0); + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot accept a value of type %s", "ghstore"))); + + PG_RETURN_VOID(); /* keep compiler quiet */ } Datum ghstore_out(PG_FUNCTION_ARGS) { - elog(ERROR, "Not implemented"); - PG_RETURN_DATUM(0); + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot display a value of type %s", "ghstore"))); + + PG_RETURN_VOID(); /* keep compiler quiet */ } static GISTTYPE * diff --git a/contrib/intarray/_intbig_gist.c b/contrib/intarray/_intbig_gist.c index 887940ca35..dadc18646a 100644 --- a/contrib/intarray/_intbig_gist.c +++ b/contrib/intarray/_intbig_gist.c @@ -32,8 +32,9 @@ _intbig_in(PG_FUNCTION_ARGS) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("_intbig_in() not implemented"))); - PG_RETURN_DATUM(0); + errmsg("cannot accept a value of type %s", "intbig_gkey"))); + + PG_RETURN_VOID(); /* keep compiler quiet */ } Datum @@ -41,8 +42,9 @@ _intbig_out(PG_FUNCTION_ARGS) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("_intbig_out() not implemented"))); - PG_RETURN_DATUM(0); + errmsg("cannot display a value of type %s", "intbig_gkey"))); + + PG_RETURN_VOID(); /* keep compiler quiet */ } static GISTTYPE * diff --git a/contrib/ltree/ltree_gist.c b/contrib/ltree/ltree_gist.c index b582867a93..5d2db6c62b 100644 --- a/contrib/ltree/ltree_gist.c +++ b/contrib/ltree/ltree_gist.c @@ -23,8 +23,9 @@ ltree_gist_in(PG_FUNCTION_ARGS) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("ltree_gist_in() not implemented"))); - PG_RETURN_DATUM(0); + errmsg("cannot accept a value of type %s", "ltree_gist"))); + + PG_RETURN_VOID(); /* keep compiler quiet */ } Datum @@ -32,8 +33,9 @@ ltree_gist_out(PG_FUNCTION_ARGS) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("ltree_gist_out() not implemented"))); - PG_RETURN_DATUM(0); + errmsg("cannot display a value of type %s", "ltree_gist"))); + + PG_RETURN_VOID(); /* keep compiler quiet */ } ltree_gist * diff --git a/contrib/pg_trgm/trgm_gist.c b/contrib/pg_trgm/trgm_gist.c index 7a7be807af..3d74a1463a 100644 --- a/contrib/pg_trgm/trgm_gist.c +++ b/contrib/pg_trgm/trgm_gist.c @@ -55,15 +55,21 @@ PG_FUNCTION_INFO_V1(gtrgm_options); Datum gtrgm_in(PG_FUNCTION_ARGS) { - elog(ERROR, "not implemented"); - PG_RETURN_DATUM(0); + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot accept a value of type %s", "gtrgm"))); + + PG_RETURN_VOID(); /* keep compiler quiet */ } Datum gtrgm_out(PG_FUNCTION_ARGS) { - elog(ERROR, "not implemented"); - PG_RETURN_DATUM(0); + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot display a value of type %s", "gtrgm"))); + + PG_RETURN_VOID(); /* keep compiler quiet */ } static TRGM * diff --git a/src/backend/utils/adt/tsgistidx.c b/src/backend/utils/adt/tsgistidx.c index 728b5e9e71..cabfe4d148 100644 --- a/src/backend/utils/adt/tsgistidx.c +++ b/src/backend/utils/adt/tsgistidx.c @@ -87,10 +87,12 @@ static int32 sizebitvec(BITVECP sign, int siglen); Datum gtsvectorin(PG_FUNCTION_ARGS) { + /* There's no need to support input of gtsvectors */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("gtsvector_in not implemented"))); - PG_RETURN_DATUM(0); + errmsg("cannot accept a value of type %s", "gtsvector"))); + + PG_RETURN_VOID(); /* keep compiler quiet */ } #define SINGOUTSTR "%d true bits, %d false bits"