mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Make CREATE TYPE print warnings if a datatype's I/O functions are volatile.
This is a followup to commit 43ac12c6e6
,
which added regression tests checking that I/O functions of built-in
types are not marked volatile. Complaining in CREATE TYPE should push
developers of add-on types to fix any misdeclared functions in their
types. It's just a warning not an error, to avoid creating upgrade
problems for what might be just cosmetic mis-markings.
Aside from adding the warning code, fix a number of types that were
sloppily created in the regression tests.
This commit is contained in:
@ -6,12 +6,12 @@ CREATE TYPE casttesttype;
|
||||
CREATE FUNCTION casttesttype_in(cstring)
|
||||
RETURNS casttesttype
|
||||
AS 'textin'
|
||||
LANGUAGE internal STRICT;
|
||||
LANGUAGE internal STRICT IMMUTABLE;
|
||||
NOTICE: return type casttesttype is only a shell
|
||||
CREATE FUNCTION casttesttype_out(casttesttype)
|
||||
RETURNS cstring
|
||||
AS 'textout'
|
||||
LANGUAGE internal STRICT;
|
||||
LANGUAGE internal STRICT IMMUTABLE;
|
||||
NOTICE: argument type casttesttype is only a shell
|
||||
CREATE TYPE casttesttype (
|
||||
internallength = variable,
|
||||
|
@ -41,22 +41,22 @@ CREATE TYPE text_w_default;
|
||||
CREATE FUNCTION int42_in(cstring)
|
||||
RETURNS int42
|
||||
AS 'int4in'
|
||||
LANGUAGE internal STRICT;
|
||||
LANGUAGE internal STRICT IMMUTABLE;
|
||||
NOTICE: return type int42 is only a shell
|
||||
CREATE FUNCTION int42_out(int42)
|
||||
RETURNS cstring
|
||||
AS 'int4out'
|
||||
LANGUAGE internal STRICT;
|
||||
LANGUAGE internal STRICT IMMUTABLE;
|
||||
NOTICE: argument type int42 is only a shell
|
||||
CREATE FUNCTION text_w_default_in(cstring)
|
||||
RETURNS text_w_default
|
||||
AS 'textin'
|
||||
LANGUAGE internal STRICT;
|
||||
LANGUAGE internal STRICT IMMUTABLE;
|
||||
NOTICE: return type text_w_default is only a shell
|
||||
CREATE FUNCTION text_w_default_out(text_w_default)
|
||||
RETURNS cstring
|
||||
AS 'textout'
|
||||
LANGUAGE internal STRICT;
|
||||
LANGUAGE internal STRICT IMMUTABLE;
|
||||
NOTICE: argument type text_w_default is only a shell
|
||||
CREATE TYPE int42 (
|
||||
internallength = 4,
|
||||
|
@ -5,22 +5,22 @@
|
||||
CREATE FUNCTION widget_in(cstring)
|
||||
RETURNS widget
|
||||
AS '@libdir@/regress@DLSUFFIX@'
|
||||
LANGUAGE C STRICT;
|
||||
LANGUAGE C STRICT IMMUTABLE;
|
||||
|
||||
CREATE FUNCTION widget_out(widget)
|
||||
RETURNS cstring
|
||||
AS '@libdir@/regress@DLSUFFIX@'
|
||||
LANGUAGE C STRICT;
|
||||
LANGUAGE C STRICT IMMUTABLE;
|
||||
|
||||
CREATE FUNCTION int44in(cstring)
|
||||
RETURNS city_budget
|
||||
AS '@libdir@/regress@DLSUFFIX@'
|
||||
LANGUAGE C STRICT;
|
||||
LANGUAGE C STRICT IMMUTABLE;
|
||||
|
||||
CREATE FUNCTION int44out(city_budget)
|
||||
RETURNS cstring
|
||||
AS '@libdir@/regress@DLSUFFIX@'
|
||||
LANGUAGE C STRICT;
|
||||
LANGUAGE C STRICT IMMUTABLE;
|
||||
|
||||
CREATE FUNCTION check_primary_key ()
|
||||
RETURNS trigger
|
||||
|
@ -4,24 +4,24 @@
|
||||
CREATE FUNCTION widget_in(cstring)
|
||||
RETURNS widget
|
||||
AS '@libdir@/regress@DLSUFFIX@'
|
||||
LANGUAGE C STRICT;
|
||||
LANGUAGE C STRICT IMMUTABLE;
|
||||
NOTICE: type "widget" is not yet defined
|
||||
DETAIL: Creating a shell type definition.
|
||||
CREATE FUNCTION widget_out(widget)
|
||||
RETURNS cstring
|
||||
AS '@libdir@/regress@DLSUFFIX@'
|
||||
LANGUAGE C STRICT;
|
||||
LANGUAGE C STRICT IMMUTABLE;
|
||||
NOTICE: argument type widget is only a shell
|
||||
CREATE FUNCTION int44in(cstring)
|
||||
RETURNS city_budget
|
||||
AS '@libdir@/regress@DLSUFFIX@'
|
||||
LANGUAGE C STRICT;
|
||||
LANGUAGE C STRICT IMMUTABLE;
|
||||
NOTICE: type "city_budget" is not yet defined
|
||||
DETAIL: Creating a shell type definition.
|
||||
CREATE FUNCTION int44out(city_budget)
|
||||
RETURNS cstring
|
||||
AS '@libdir@/regress@DLSUFFIX@'
|
||||
LANGUAGE C STRICT;
|
||||
LANGUAGE C STRICT IMMUTABLE;
|
||||
NOTICE: argument type city_budget is only a shell
|
||||
CREATE FUNCTION check_primary_key ()
|
||||
RETURNS trigger
|
||||
|
@ -8,11 +8,11 @@ CREATE TYPE casttesttype;
|
||||
CREATE FUNCTION casttesttype_in(cstring)
|
||||
RETURNS casttesttype
|
||||
AS 'textin'
|
||||
LANGUAGE internal STRICT;
|
||||
LANGUAGE internal STRICT IMMUTABLE;
|
||||
CREATE FUNCTION casttesttype_out(casttesttype)
|
||||
RETURNS cstring
|
||||
AS 'textout'
|
||||
LANGUAGE internal STRICT;
|
||||
LANGUAGE internal STRICT IMMUTABLE;
|
||||
|
||||
CREATE TYPE casttesttype (
|
||||
internallength = variable,
|
||||
|
@ -44,19 +44,19 @@ CREATE TYPE text_w_default;
|
||||
CREATE FUNCTION int42_in(cstring)
|
||||
RETURNS int42
|
||||
AS 'int4in'
|
||||
LANGUAGE internal STRICT;
|
||||
LANGUAGE internal STRICT IMMUTABLE;
|
||||
CREATE FUNCTION int42_out(int42)
|
||||
RETURNS cstring
|
||||
AS 'int4out'
|
||||
LANGUAGE internal STRICT;
|
||||
LANGUAGE internal STRICT IMMUTABLE;
|
||||
CREATE FUNCTION text_w_default_in(cstring)
|
||||
RETURNS text_w_default
|
||||
AS 'textin'
|
||||
LANGUAGE internal STRICT;
|
||||
LANGUAGE internal STRICT IMMUTABLE;
|
||||
CREATE FUNCTION text_w_default_out(text_w_default)
|
||||
RETURNS cstring
|
||||
AS 'textout'
|
||||
LANGUAGE internal STRICT;
|
||||
LANGUAGE internal STRICT IMMUTABLE;
|
||||
|
||||
CREATE TYPE int42 (
|
||||
internallength = 4,
|
||||
|
Reference in New Issue
Block a user