mirror of
https://github.com/postgres/postgres.git
synced 2025-10-18 04:29:09 +03:00
Use the right type OID after creating a shell type
Commit a2e35b53c3
neglected to update the type OID to use further
down in DefineType when TypeShellMake was changed to return
ObjectAddress instead of OID (it got it right in DefineRange, however.)
This resulted in an internal error message being issued when looking up
I/O functions.
Author: Michael Paquier
Also add Asserts() to a couple of other places to ensure that the type
OID being used is as expected.
This commit is contained in:
@@ -215,6 +215,7 @@ DefineType(List *names, List *parameters)
|
||||
if (!OidIsValid(typoid))
|
||||
{
|
||||
address = TypeShellMake(typeName, typeNamespace, GetUserId());
|
||||
typoid = address.objectId;
|
||||
/* Make new shell type visible for modification below */
|
||||
CommandCounterIncrement();
|
||||
|
||||
@@ -628,6 +629,7 @@ DefineType(List *names, List *parameters)
|
||||
0, /* Array Dimensions of typbasetype */
|
||||
false, /* Type NOT NULL */
|
||||
collation); /* type's collation */
|
||||
Assert(typoid == address.objectId);
|
||||
|
||||
/*
|
||||
* Create the array type that goes with it.
|
||||
@@ -1505,7 +1507,7 @@ DefineRange(CreateRangeStmt *stmt)
|
||||
0, /* Array dimensions of typbasetype */
|
||||
false, /* Type NOT NULL */
|
||||
InvalidOid); /* type's collation (ranges never have one) */
|
||||
typoid = address.objectId;
|
||||
Assert(typoid == address.objectId);
|
||||
|
||||
/* Create the entry in pg_range */
|
||||
RangeCreate(typoid, rangeSubtype, rangeCollation, rangeSubOpclass,
|
||||
|
Reference in New Issue
Block a user