Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
5507b22d
Commit
5507b22d
authored
Mar 19, 2008
by
Tom Lane
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Support ALTER TYPE RENAME. Petr Jelinek
parent
a9686591
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
180 additions
and
47 deletions
+180
-47
doc/src/sgml/ref/alter_type.sgml
doc/src/sgml/ref/alter_type.sgml
+20
-5
src/backend/catalog/pg_type.c
src/backend/catalog/pg_type.c
+9
-8
src/backend/commands/alter.c
src/backend/commands/alter.c
+6
-2
src/backend/commands/tablecmds.c
src/backend/commands/tablecmds.c
+51
-24
src/backend/commands/typecmds.c
src/backend/commands/typecmds.c
+71
-1
src/backend/parser/gram.y
src/backend/parser/gram.y
+9
-1
src/backend/tcop/utility.c
src/backend/tcop/utility.c
+4
-1
src/include/catalog/pg_type.h
src/include/catalog/pg_type.h
+2
-2
src/include/commands/tablecmds.h
src/include/commands/tablecmds.h
+6
-2
src/include/commands/typecmds.h
src/include/commands/typecmds.h
+2
-1
No files found.
doc/src/sgml/ref/alter_type.sgml
View file @
5507b22d
<!--
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_type.sgml,v 1.
4 2006/09/16 00:30:16 momjian
Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_type.sgml,v 1.
5 2008/03/19 18:38:29 tgl
Exp $
PostgreSQL documentation
PostgreSQL documentation
-->
-->
...
@@ -24,6 +24,7 @@ PostgreSQL documentation
...
@@ -24,6 +24,7 @@ PostgreSQL documentation
<refsynopsisdiv>
<refsynopsisdiv>
<synopsis>
<synopsis>
ALTER TYPE <replaceable class="PARAMETER">name</replaceable> RENAME TO <replaceable class="PARAMETER">new_name</replaceable>
ALTER TYPE <replaceable class="PARAMETER">name</replaceable> OWNER TO <replaceable class="PARAMETER">new_owner</replaceable>
ALTER TYPE <replaceable class="PARAMETER">name</replaceable> OWNER TO <replaceable class="PARAMETER">new_owner</replaceable>
ALTER TYPE <replaceable class="PARAMETER">name</replaceable> SET SCHEMA <replaceable class="PARAMETER">new_schema</replaceable>
ALTER TYPE <replaceable class="PARAMETER">name</replaceable> SET SCHEMA <replaceable class="PARAMETER">new_schema</replaceable>
</synopsis>
</synopsis>
...
@@ -34,8 +35,6 @@ ALTER TYPE <replaceable class="PARAMETER">name</replaceable> SET SCHEMA <replace
...
@@ -34,8 +35,6 @@ ALTER TYPE <replaceable class="PARAMETER">name</replaceable> SET SCHEMA <replace
<para>
<para>
<command>ALTER TYPE</command> changes the definition of an existing type.
<command>ALTER TYPE</command> changes the definition of an existing type.
The only currently available capabilities are changing the owner and schema
of a type.
</para>
</para>
<para>
<para>
...
@@ -65,6 +64,15 @@ ALTER TYPE <replaceable class="PARAMETER">name</replaceable> SET SCHEMA <replace
...
@@ -65,6 +64,15 @@ ALTER TYPE <replaceable class="PARAMETER">name</replaceable> SET SCHEMA <replace
</listitem>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term><replaceable class="PARAMETER">new_name</replaceable></term>
<listitem>
<para>
The new name for the type.
</para>
</listitem>
</varlistentry>
<varlistentry>
<varlistentry>
<term><replaceable class="PARAMETER">new_owner</replaceable></term>
<term><replaceable class="PARAMETER">new_owner</replaceable></term>
<listitem>
<listitem>
...
@@ -91,7 +99,14 @@ ALTER TYPE <replaceable class="PARAMETER">name</replaceable> SET SCHEMA <replace
...
@@ -91,7 +99,14 @@ ALTER TYPE <replaceable class="PARAMETER">name</replaceable> SET SCHEMA <replace
<title>Examples</title>
<title>Examples</title>
<para>
<para>
To change the owner of the user-defined type <literal>email</literal>
To rename a data type:
<programlisting>
ALTER TYPE electronic_mail RENAME TO email;
</programlisting>
</para>
<para>
To change the owner of the type <literal>email</literal>
to <literal>joe</literal>:
to <literal>joe</literal>:
<programlisting>
<programlisting>
ALTER TYPE email OWNER TO joe;
ALTER TYPE email OWNER TO joe;
...
@@ -99,7 +114,7 @@ ALTER TYPE email OWNER TO joe;
...
@@ -99,7 +114,7 @@ ALTER TYPE email OWNER TO joe;
</para>
</para>
<para>
<para>
To change the schema of the
user-defined
type <literal>email</literal>
To change the schema of the type <literal>email</literal>
to <literal>customers</literal>:
to <literal>customers</literal>:
<programlisting>
<programlisting>
ALTER TYPE email SET SCHEMA customers;
ALTER TYPE email SET SCHEMA customers;
...
...
src/backend/catalog/pg_type.c
View file @
5507b22d
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.11
5 2008/01/01 19:45:48 momjian
Exp $
* $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.11
6 2008/03/19 18:38:30 tgl
Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -552,15 +552,16 @@ GenerateTypeDependencies(Oid typeNamespace,
...
@@ -552,15 +552,16 @@ GenerateTypeDependencies(Oid typeNamespace,
}
}
/*
/*
*
TypeRename
*
RenameTypeInternal
* This renames a type, as well as any associated array type.
* This renames a type, as well as any associated array type.
*
*
* Note: this isn't intended to be a user-exposed function; it doesn't check
* Caller must have already checked privileges.
* permissions etc. (Perhaps TypeRenameInternal would be a better name.)
*
* Currently this is only used for renaming table rowtypes.
* Currently this is used for renaming table rowtypes and for
* ALTER TYPE RENAME TO command.
*/
*/
void
void
TypeRename
(
Oid
typeOid
,
const
char
*
newTypeName
,
Oid
typeNamespace
)
RenameTypeInternal
(
Oid
typeOid
,
const
char
*
newTypeName
,
Oid
typeNamespace
)
{
{
Relation
pg_type_desc
;
Relation
pg_type_desc
;
HeapTuple
tuple
;
HeapTuple
tuple
;
...
@@ -606,7 +607,7 @@ TypeRename(Oid typeOid, const char *newTypeName, Oid typeNamespace)
...
@@ -606,7 +607,7 @@ TypeRename(Oid typeOid, const char *newTypeName, Oid typeNamespace)
{
{
char
*
arrname
=
makeArrayTypeName
(
newTypeName
,
typeNamespace
);
char
*
arrname
=
makeArrayTypeName
(
newTypeName
,
typeNamespace
);
TypeRename
(
arrayOid
,
arrname
,
typeNamespace
);
RenameTypeInternal
(
arrayOid
,
arrname
,
typeNamespace
);
pfree
(
arrname
);
pfree
(
arrname
);
}
}
}
}
...
@@ -706,7 +707,7 @@ moveArrayTypeName(Oid typeOid, const char *typeName, Oid typeNamespace)
...
@@ -706,7 +707,7 @@ moveArrayTypeName(Oid typeOid, const char *typeName, Oid typeNamespace)
newname
=
makeArrayTypeName
(
typeName
,
typeNamespace
);
newname
=
makeArrayTypeName
(
typeName
,
typeNamespace
);
/* Apply the rename */
/* Apply the rename */
TypeRename
(
typeOid
,
newname
,
typeNamespace
);
RenameTypeInternal
(
typeOid
,
newname
,
typeNamespace
);
/*
/*
* We must bump the command counter so that any subsequent use of
* We must bump the command counter so that any subsequent use of
...
...
src/backend/commands/alter.c
View file @
5507b22d
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/alter.c,v 1.2
7 2008/02/07 21:07:55
tgl Exp $
* $PostgreSQL: pgsql/src/backend/commands/alter.c,v 1.2
8 2008/03/19 18:38:30
tgl Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -117,7 +117,7 @@ ExecRenameStmt(RenameStmt *stmt)
...
@@ -117,7 +117,7 @@ ExecRenameStmt(RenameStmt *stmt)
aclcheck_error
(
aclresult
,
ACL_KIND_NAMESPACE
,
aclcheck_error
(
aclresult
,
ACL_KIND_NAMESPACE
,
get_namespace_name
(
namespaceId
));
get_namespace_name
(
namespaceId
));
renamerel
(
relid
,
stmt
->
newname
,
stmt
->
renameType
);
RenameRelation
(
relid
,
stmt
->
newname
,
stmt
->
renameType
);
break
;
break
;
}
}
case
OBJECT_COLUMN
:
case
OBJECT_COLUMN
:
...
@@ -154,6 +154,10 @@ ExecRenameStmt(RenameStmt *stmt)
...
@@ -154,6 +154,10 @@ ExecRenameStmt(RenameStmt *stmt)
RenameTSConfiguration
(
stmt
->
object
,
stmt
->
newname
);
RenameTSConfiguration
(
stmt
->
object
,
stmt
->
newname
);
break
;
break
;
case
OBJECT_TYPE
:
RenameType
(
stmt
->
object
,
stmt
->
newname
);
break
;
default:
default:
elog
(
ERROR
,
"unrecognized rename stmt type: %d"
,
elog
(
ERROR
,
"unrecognized rename stmt type: %d"
,
(
int
)
stmt
->
renameType
);
(
int
)
stmt
->
renameType
);
...
...
src/backend/commands/tablecmds.c
View file @
5507b22d
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.24
2 2008/02/07 17:09:51
tgl Exp $
* $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.24
3 2008/03/19 18:38:30
tgl Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -1612,26 +1612,18 @@ renameatt(Oid myrelid,
...
@@ -1612,26 +1612,18 @@ renameatt(Oid myrelid,
relation_close
(
targetrelation
,
NoLock
);
/* close rel but keep lock */
relation_close
(
targetrelation
,
NoLock
);
/* close rel but keep lock */
}
}
/*
/*
*
renamerel - change the name of a relation
*
Execute ALTER TABLE/INDEX/SEQUENCE/VIEW RENAME
*
*
* XXX - When renaming sequences, we don't bother to modify the
* Caller has already done permissions checks.
* sequence name that is stored within the sequence itself
* (this would cause problems with MVCC). In the future,
* the sequence name should probably be removed from the
* sequence, AFAIK there's no need for it to be there.
*/
*/
void
void
renamerel
(
Oid
myrelid
,
const
char
*
newrelname
,
ObjectType
reltype
)
RenameRelation
(
Oid
myrelid
,
const
char
*
newrelname
,
ObjectType
reltype
)
{
{
Relation
targetrelation
;
Relation
targetrelation
;
Relation
relrelation
;
/* for RELATION relation */
HeapTuple
reltup
;
Form_pg_class
relform
;
Oid
namespaceId
;
Oid
namespaceId
;
char
*
oldrelname
;
char
relkind
;
char
relkind
;
bool
relhastriggers
;
/*
/*
* Grab an exclusive lock on the target table, index, sequence or view,
* Grab an exclusive lock on the target table, index, sequence or view,
...
@@ -1639,20 +1631,13 @@ renamerel(Oid myrelid, const char *newrelname, ObjectType reltype)
...
@@ -1639,20 +1631,13 @@ renamerel(Oid myrelid, const char *newrelname, ObjectType reltype)
*/
*/
targetrelation
=
relation_open
(
myrelid
,
AccessExclusiveLock
);
targetrelation
=
relation_open
(
myrelid
,
AccessExclusiveLock
);
oldrelname
=
pstrdup
(
RelationGetRelationName
(
targetrelation
));
namespaceId
=
RelationGetNamespace
(
targetrelation
);
namespaceId
=
RelationGetNamespace
(
targetrelation
);
relkind
=
targetrelation
->
rd_rel
->
relkind
;
if
(
!
allowSystemTableMods
&&
IsSystemRelation
(
targetrelation
))
ereport
(
ERROR
,
(
errcode
(
ERRCODE_INSUFFICIENT_PRIVILEGE
),
errmsg
(
"permission denied:
\"
%s
\"
is a system catalog"
,
RelationGetRelationName
(
targetrelation
))));
/*
/*
* For compatibility with prior releases, we don't complain if ALTER TABLE
* For compatibility with prior releases, we don't complain if ALTER TABLE
* or ALTER INDEX is used to rename a sequence or view.
* or ALTER INDEX is used to rename a sequence or view.
*/
*/
relkind
=
targetrelation
->
rd_rel
->
relkind
;
if
(
reltype
==
OBJECT_SEQUENCE
&&
relkind
!=
RELKIND_SEQUENCE
)
if
(
reltype
==
OBJECT_SEQUENCE
&&
relkind
!=
RELKIND_SEQUENCE
)
ereport
(
ERROR
,
ereport
(
ERROR
,
(
errcode
(
ERRCODE_WRONG_OBJECT_TYPE
),
(
errcode
(
ERRCODE_WRONG_OBJECT_TYPE
),
...
@@ -1665,7 +1650,48 @@ renamerel(Oid myrelid, const char *newrelname, ObjectType reltype)
...
@@ -1665,7 +1650,48 @@ renamerel(Oid myrelid, const char *newrelname, ObjectType reltype)
errmsg
(
"
\"
%s
\"
is not a view"
,
errmsg
(
"
\"
%s
\"
is not a view"
,
RelationGetRelationName
(
targetrelation
))));
RelationGetRelationName
(
targetrelation
))));
relhastriggers
=
(
targetrelation
->
rd_rel
->
reltriggers
>
0
);
/*
* Don't allow ALTER TABLE on composite types.
* We want people to use ALTER TYPE for that.
*/
if
(
relkind
==
RELKIND_COMPOSITE_TYPE
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_WRONG_OBJECT_TYPE
),
errmsg
(
"
\"
%s
\"
is a composite type"
,
RelationGetRelationName
(
targetrelation
)),
errhint
(
"Use ALTER TYPE instead."
)));
/* Do the work */
RenameRelationInternal
(
myrelid
,
newrelname
,
namespaceId
);
/*
* Close rel, but keep exclusive lock!
*/
relation_close
(
targetrelation
,
NoLock
);
}
/*
* RenameRelationInternal - change the name of a relation
*
* XXX - When renaming sequences, we don't bother to modify the
* sequence name that is stored within the sequence itself
* (this would cause problems with MVCC). In the future,
* the sequence name should probably be removed from the
* sequence, AFAIK there's no need for it to be there.
*/
void
RenameRelationInternal
(
Oid
myrelid
,
const
char
*
newrelname
,
Oid
namespaceId
)
{
Relation
targetrelation
;
Relation
relrelation
;
/* for RELATION relation */
HeapTuple
reltup
;
Form_pg_class
relform
;
/*
* Grab an exclusive lock on the target table, index, sequence or
* view, which we will NOT release until end of transaction.
*/
targetrelation
=
relation_open
(
myrelid
,
AccessExclusiveLock
);
/*
/*
* Find relation's pg_class tuple, and make sure newrelname isn't in use.
* Find relation's pg_class tuple, and make sure newrelname isn't in use.
...
@@ -1703,12 +1729,13 @@ renamerel(Oid myrelid, const char *newrelname, ObjectType reltype)
...
@@ -1703,12 +1729,13 @@ renamerel(Oid myrelid, const char *newrelname, ObjectType reltype)
* Also rename the associated type, if any.
* Also rename the associated type, if any.
*/
*/
if
(
OidIsValid
(
targetrelation
->
rd_rel
->
reltype
))
if
(
OidIsValid
(
targetrelation
->
rd_rel
->
reltype
))
TypeRename
(
targetrelation
->
rd_rel
->
reltype
,
newrelname
,
namespaceId
);
RenameTypeInternal
(
targetrelation
->
rd_rel
->
reltype
,
newrelname
,
namespaceId
);
/*
/*
* Also rename the associated constraint, if any.
* Also rename the associated constraint, if any.
*/
*/
if
(
relkind
==
RELKIND_INDEX
)
if
(
targetrelation
->
rd_rel
->
relkind
==
RELKIND_INDEX
)
{
{
Oid
constraintId
=
get_index_constraint
(
myrelid
);
Oid
constraintId
=
get_index_constraint
(
myrelid
);
...
...
src/backend/commands/typecmds.c
View file @
5507b22d
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.11
3 2008/01/01 19:45:49 momjian
Exp $
* $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.11
4 2008/03/19 18:38:30 tgl
Exp $
*
*
* DESCRIPTION
* DESCRIPTION
* The "DefineFoo" routines take the parse tree and pick out the
* The "DefineFoo" routines take the parse tree and pick out the
...
@@ -2339,6 +2339,76 @@ GetDomainConstraints(Oid typeOid)
...
@@ -2339,6 +2339,76 @@ GetDomainConstraints(Oid typeOid)
return
result
;
return
result
;
}
}
/*
* Execute ALTER TYPE RENAME
*/
void
RenameType
(
List
*
names
,
const
char
*
newTypeName
)
{
TypeName
*
typename
;
Oid
typeOid
;
Relation
rel
;
HeapTuple
tup
;
Form_pg_type
typTup
;
/* Make a TypeName so we can use standard type lookup machinery */
typename
=
makeTypeNameFromNameList
(
names
);
typeOid
=
typenameTypeId
(
NULL
,
typename
,
NULL
);
/* Look up the type in the type table */
rel
=
heap_open
(
TypeRelationId
,
RowExclusiveLock
);
tup
=
SearchSysCacheCopy
(
TYPEOID
,
ObjectIdGetDatum
(
typeOid
),
0
,
0
,
0
);
if
(
!
HeapTupleIsValid
(
tup
))
elog
(
ERROR
,
"cache lookup failed for type %u"
,
typeOid
);
typTup
=
(
Form_pg_type
)
GETSTRUCT
(
tup
);
/* check permissions on type */
if
(
!
pg_type_ownercheck
(
typeOid
,
GetUserId
()))
aclcheck_error
(
ACLCHECK_NOT_OWNER
,
ACL_KIND_TYPE
,
format_type_be
(
typeOid
));
/*
* If it's a composite type, we need to check that it really is a
* free-standing composite type, and not a table's rowtype. We
* want people to use ALTER TABLE not ALTER TYPE for that case.
*/
if
(
typTup
->
typtype
==
TYPTYPE_COMPOSITE
&&
get_rel_relkind
(
typTup
->
typrelid
)
!=
RELKIND_COMPOSITE_TYPE
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_WRONG_OBJECT_TYPE
),
errmsg
(
"%s is a table's row type"
,
format_type_be
(
typeOid
)),
errhint
(
"Use ALTER TABLE instead."
)));
/* don't allow direct alteration of array types, either */
if
(
OidIsValid
(
typTup
->
typelem
)
&&
get_array_type
(
typTup
->
typelem
)
==
typeOid
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_WRONG_OBJECT_TYPE
),
errmsg
(
"cannot alter array type %s"
,
format_type_be
(
typeOid
)),
errhint
(
"You can alter type %s, which will alter the array type as well."
,
format_type_be
(
typTup
->
typelem
))));
/*
* If type is composite we need to rename associated pg_class entry too.
* RenameRelationInternal will call RenameTypeInternal automatically.
*/
if
(
typTup
->
typtype
==
TYPTYPE_COMPOSITE
)
RenameRelationInternal
(
typTup
->
typrelid
,
newTypeName
,
typTup
->
typnamespace
);
else
RenameTypeInternal
(
typeOid
,
newTypeName
,
typTup
->
typnamespace
);
/* Clean up */
heap_close
(
rel
,
RowExclusiveLock
);
}
/*
/*
* Change the owner of a type.
* Change the owner of a type.
*/
*/
...
...
src/backend/parser/gram.y
View file @
5507b22d
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.60
7 2008/02/15 22:17:06
tgl Exp $
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.60
8 2008/03/19 18:38:30
tgl Exp $
*
*
* HISTORY
* HISTORY
* AUTHOR DATE MAJOR EVENT
* AUTHOR DATE MAJOR EVENT
...
@@ -4734,6 +4734,14 @@ RenameStmt: ALTER AGGREGATE func_name aggr_args RENAME TO name
...
@@ -4734,6 +4734,14 @@ RenameStmt: ALTER AGGREGATE func_name aggr_args RENAME TO name
n->newname = $8;
n->newname = $8;
$$ = (Node *)n;
$$ = (Node *)n;
}
}
| ALTER TYPE_P any_name RENAME TO name
{
RenameStmt *n = makeNode(RenameStmt);
n->renameType = OBJECT_TYPE;
n->object = $3;
n->newname = $6;
$$ = (Node *)n;
}
;
;
opt_column: COLUMN { $$ = COLUMN; }
opt_column: COLUMN { $$ = COLUMN; }
...
...
src/backend/tcop/utility.c
View file @
5507b22d
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.29
0 2008/03/14 17:25:58 alvherre
Exp $
* $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.29
1 2008/03/19 18:38:30 tgl
Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -1613,6 +1613,9 @@ CreateCommandTag(Node *parsetree)
...
@@ -1613,6 +1613,9 @@ CreateCommandTag(Node *parsetree)
case
OBJECT_TSCONFIGURATION
:
case
OBJECT_TSCONFIGURATION
:
tag
=
"ALTER TEXT SEARCH CONFIGURATION"
;
tag
=
"ALTER TEXT SEARCH CONFIGURATION"
;
break
;
break
;
case
OBJECT_TYPE
:
tag
=
"ALTER TYPE"
;
break
;
default:
default:
tag
=
"???"
;
tag
=
"???"
;
break
;
break
;
...
...
src/include/catalog/pg_type.h
View file @
5507b22d
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
* Portions Copyright (c) 1994, Regents of the University of California
*
*
* $PostgreSQL: pgsql/src/include/catalog/pg_type.h,v 1.19
1 2008/01/01 19:45:57 momjian
Exp $
* $PostgreSQL: pgsql/src/include/catalog/pg_type.h,v 1.19
2 2008/03/19 18:38:30 tgl
Exp $
*
*
* NOTES
* NOTES
* the genbki.sh script reads this file and generates .bki
* the genbki.sh script reads this file and generates .bki
...
@@ -682,7 +682,7 @@ extern void GenerateTypeDependencies(Oid typeNamespace,
...
@@ -682,7 +682,7 @@ extern void GenerateTypeDependencies(Oid typeNamespace,
Node
*
defaultExpr
,
Node
*
defaultExpr
,
bool
rebuild
);
bool
rebuild
);
extern
void
TypeRename
(
Oid
typeOid
,
const
char
*
newTypeName
,
extern
void
RenameTypeInternal
(
Oid
typeOid
,
const
char
*
newTypeName
,
Oid
typeNamespace
);
Oid
typeNamespace
);
extern
char
*
makeArrayTypeName
(
const
char
*
typeName
,
Oid
typeNamespace
);
extern
char
*
makeArrayTypeName
(
const
char
*
typeName
,
Oid
typeNamespace
);
...
...
src/include/commands/tablecmds.h
View file @
5507b22d
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
* Portions Copyright (c) 1994, Regents of the University of California
*
*
* $PostgreSQL: pgsql/src/include/commands/tablecmds.h,v 1.3
7 2008/01/30 19:46:48
tgl Exp $
* $PostgreSQL: pgsql/src/include/commands/tablecmds.h,v 1.3
8 2008/03/19 18:38:30
tgl Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -44,10 +44,14 @@ extern void renameatt(Oid myrelid,
...
@@ -44,10 +44,14 @@ extern void renameatt(Oid myrelid,
bool
recurse
,
bool
recurse
,
bool
recursing
);
bool
recursing
);
extern
void
renamerel
(
Oid
myrelid
,
extern
void
RenameRelation
(
Oid
myrelid
,
const
char
*
newrelname
,
const
char
*
newrelname
,
ObjectType
reltype
);
ObjectType
reltype
);
extern
void
RenameRelationInternal
(
Oid
myrelid
,
const
char
*
newrelname
,
Oid
namespaceId
);
extern
void
find_composite_type_dependencies
(
Oid
typeOid
,
extern
void
find_composite_type_dependencies
(
Oid
typeOid
,
const
char
*
origTblName
,
const
char
*
origTblName
,
const
char
*
origTypeName
);
const
char
*
origTypeName
);
...
...
src/include/commands/typecmds.h
View file @
5507b22d
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
* Portions Copyright (c) 1994, Regents of the University of California
*
*
* $PostgreSQL: pgsql/src/include/commands/typecmds.h,v 1.2
2 2008/01/01 19:45:57 momjian
Exp $
* $PostgreSQL: pgsql/src/include/commands/typecmds.h,v 1.2
3 2008/03/19 18:38:30 tgl
Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -35,6 +35,7 @@ extern void AlterDomainDropConstraint(List *names, const char *constrName,
...
@@ -35,6 +35,7 @@ extern void AlterDomainDropConstraint(List *names, const char *constrName,
extern
List
*
GetDomainConstraints
(
Oid
typeOid
);
extern
List
*
GetDomainConstraints
(
Oid
typeOid
);
extern
void
RenameType
(
List
*
names
,
const
char
*
newTypeName
);
extern
void
AlterTypeOwner
(
List
*
names
,
Oid
newOwnerId
);
extern
void
AlterTypeOwner
(
List
*
names
,
Oid
newOwnerId
);
extern
void
AlterTypeOwnerInternal
(
Oid
typeOid
,
Oid
newOwnerId
,
extern
void
AlterTypeOwnerInternal
(
Oid
typeOid
,
Oid
newOwnerId
,
bool
hasDependEntry
);
bool
hasDependEntry
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment