mirror of
https://github.com/postgres/postgres.git
synced 2025-07-31 22:04:40 +03:00
Fix DDL command collection for TRANSFORM
Commitb488c580ae
, which added the DDL command collection feature, neglected to update the code that commitcac7658205
had previously added two weeks earlier for the TRANSFORM feature. Reported by Michael Paquier.
This commit is contained in:
@ -1740,7 +1740,7 @@ check_transform_function(Form_pg_proc procstruct)
|
|||||||
/*
|
/*
|
||||||
* CREATE TRANSFORM
|
* CREATE TRANSFORM
|
||||||
*/
|
*/
|
||||||
Oid
|
ObjectAddress
|
||||||
CreateTransform(CreateTransformStmt *stmt)
|
CreateTransform(CreateTransformStmt *stmt)
|
||||||
{
|
{
|
||||||
Oid typeid;
|
Oid typeid;
|
||||||
@ -1938,7 +1938,7 @@ CreateTransform(CreateTransformStmt *stmt)
|
|||||||
|
|
||||||
heap_close(relation, RowExclusiveLock);
|
heap_close(relation, RowExclusiveLock);
|
||||||
|
|
||||||
return transformid;
|
return myself;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1438,7 +1438,7 @@ ProcessUtilitySlow(Node *parsetree,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case T_CreateTransformStmt:
|
case T_CreateTransformStmt:
|
||||||
CreateTransform((CreateTransformStmt *) parsetree);
|
address = CreateTransform((CreateTransformStmt *) parsetree);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_AlterOpFamilyStmt:
|
case T_AlterOpFamilyStmt:
|
||||||
|
@ -51,7 +51,7 @@ extern void SetFunctionArgType(Oid funcOid, int argIndex, Oid newArgType);
|
|||||||
extern ObjectAddress AlterFunction(AlterFunctionStmt *stmt);
|
extern ObjectAddress AlterFunction(AlterFunctionStmt *stmt);
|
||||||
extern ObjectAddress CreateCast(CreateCastStmt *stmt);
|
extern ObjectAddress CreateCast(CreateCastStmt *stmt);
|
||||||
extern void DropCastById(Oid castOid);
|
extern void DropCastById(Oid castOid);
|
||||||
extern Oid CreateTransform(CreateTransformStmt *stmt);
|
extern ObjectAddress CreateTransform(CreateTransformStmt *stmt);
|
||||||
extern void DropTransformById(Oid transformOid);
|
extern void DropTransformById(Oid transformOid);
|
||||||
extern void IsThereFunctionInNamespace(const char *proname, int pronargs,
|
extern void IsThereFunctionInNamespace(const char *proname, int pronargs,
|
||||||
oidvector *proargtypes, Oid nspOid);
|
oidvector *proargtypes, Oid nspOid);
|
||||||
|
@ -15,6 +15,7 @@ REGRESS = test_ddl_deparse \
|
|||||||
create_domain \
|
create_domain \
|
||||||
create_sequence_1 \
|
create_sequence_1 \
|
||||||
create_table \
|
create_table \
|
||||||
|
create_transform \
|
||||||
alter_table \
|
alter_table \
|
||||||
create_view \
|
create_view \
|
||||||
create_trigger \
|
create_trigger \
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
--
|
||||||
|
-- CREATE_TRANSFORM
|
||||||
|
--
|
||||||
|
-- Create a dummy transform
|
||||||
|
-- The function FROM SQL should have internal as single argument as well
|
||||||
|
-- as return type. The function TO SQL should have as single argument
|
||||||
|
-- internal and as return argument the datatype of the transform done.
|
||||||
|
-- pl/plpgsql does not authorize the use of internal as data type.
|
||||||
|
CREATE TRANSFORM FOR int LANGUAGE SQL (
|
||||||
|
FROM SQL WITH FUNCTION varchar_transform(internal),
|
||||||
|
TO SQL WITH FUNCTION int4recv(internal));
|
||||||
|
NOTICE: DDL test: type simple, tag CREATE TRANSFORM
|
||||||
|
DROP TRANSFORM FOR int LANGUAGE SQL;
|
14
src/test/modules/test_ddl_deparse/sql/create_transform.sql
Normal file
14
src/test/modules/test_ddl_deparse/sql/create_transform.sql
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
--
|
||||||
|
-- CREATE_TRANSFORM
|
||||||
|
--
|
||||||
|
|
||||||
|
-- Create a dummy transform
|
||||||
|
-- The function FROM SQL should have internal as single argument as well
|
||||||
|
-- as return type. The function TO SQL should have as single argument
|
||||||
|
-- internal and as return argument the datatype of the transform done.
|
||||||
|
-- pl/plpgsql does not authorize the use of internal as data type.
|
||||||
|
CREATE TRANSFORM FOR int LANGUAGE SQL (
|
||||||
|
FROM SQL WITH FUNCTION varchar_transform(internal),
|
||||||
|
TO SQL WITH FUNCTION int4recv(internal));
|
||||||
|
|
||||||
|
DROP TRANSFORM FOR int LANGUAGE SQL;
|
Reference in New Issue
Block a user