Cast functions can be immutable or stable.
This commit is contained in:
parent
db4f3c0334
commit
5ea9322872
@ -1,4 +1,4 @@
|
|||||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_cast.sgml,v 1.3 2002/09/01 02:37:02 tgl Exp $ -->
|
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_cast.sgml,v 1.4 2002/09/15 13:04:16 petere Exp $ -->
|
||||||
|
|
||||||
<refentry id="SQL-CREATECAST">
|
<refentry id="SQL-CREATECAST">
|
||||||
<refmeta>
|
<refmeta>
|
||||||
@ -117,7 +117,7 @@ INSERT INTO foo(f1) VALUES(42);
|
|||||||
be schema-qualified. If it is not, the function will be looked
|
be schema-qualified. If it is not, the function will be looked
|
||||||
up in the path. The argument type must be identical to the
|
up in the path. The argument type must be identical to the
|
||||||
source type, the result data type must match the target type of
|
source type, the result data type must match the target type of
|
||||||
the cast. Cast functions must be marked immutable.
|
the cast. Cast functions must be marked immutable or stable.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/commands/functioncmds.c,v 1.19 2002/09/04 20:31:15 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/commands/functioncmds.c,v 1.20 2002/09/15 13:04:16 petere Exp $
|
||||||
*
|
*
|
||||||
* DESCRIPTION
|
* DESCRIPTION
|
||||||
* These routines take the parse tree and pick out the
|
* These routines take the parse tree and pick out the
|
||||||
@ -676,8 +676,8 @@ CreateCast(CreateCastStmt *stmt)
|
|||||||
elog(ERROR, "argument of cast function must match source data type");
|
elog(ERROR, "argument of cast function must match source data type");
|
||||||
if (procstruct->prorettype != targettypeid)
|
if (procstruct->prorettype != targettypeid)
|
||||||
elog(ERROR, "return data type of cast function must match target data type");
|
elog(ERROR, "return data type of cast function must match target data type");
|
||||||
if (procstruct->provolatile != PROVOLATILE_IMMUTABLE)
|
if (procstruct->provolatile == PROVOLATILE_VOLATILE)
|
||||||
elog(ERROR, "cast function must be immutable");
|
elog(ERROR, "cast function must not be volatile");
|
||||||
if (procstruct->proisagg)
|
if (procstruct->proisagg)
|
||||||
elog(ERROR, "cast function must not be an aggregate function");
|
elog(ERROR, "cast function must not be an aggregate function");
|
||||||
if (procstruct->proretset)
|
if (procstruct->proretset)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user