mirror of
https://github.com/postgres/postgres.git
synced 2025-04-22 23:02:54 +03:00
Add ALTER VIEW ... RENAME TO, and a RENAME TO clause to ALTER SEQUENCE.
Sequences and views could previously be renamed using ALTER TABLE, but this was a repeated source of confusion for users. Update the docs, and psql tab completion. Patch from David Fetter; various minor fixes by myself.
This commit is contained in:
parent
a1587e41ae
commit
a55898131e
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/allfiles.sgml,v 1.70 2007/04/26 16:13:08 neilc Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/allfiles.sgml,v 1.71 2007/07/03 01:30:35 neilc Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
Complete list of usable sgml source files in this directory.
|
Complete list of usable sgml source files in this directory.
|
||||||
-->
|
-->
|
||||||
@ -25,6 +25,7 @@ Complete list of usable sgml source files in this directory.
|
|||||||
<!entity alterTrigger system "alter_trigger.sgml">
|
<!entity alterTrigger system "alter_trigger.sgml">
|
||||||
<!entity alterType system "alter_type.sgml">
|
<!entity alterType system "alter_type.sgml">
|
||||||
<!entity alterUser system "alter_user.sgml">
|
<!entity alterUser system "alter_user.sgml">
|
||||||
|
<!entity alterView system "alter_view.sgml">
|
||||||
<!entity analyze system "analyze.sgml">
|
<!entity analyze system "analyze.sgml">
|
||||||
<!entity begin system "begin.sgml">
|
<!entity begin system "begin.sgml">
|
||||||
<!entity checkpoint system "checkpoint.sgml">
|
<!entity checkpoint system "checkpoint.sgml">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_sequence.sgml,v 1.16 2007/01/31 23:26:02 momjian Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_sequence.sgml,v 1.17 2007/07/03 01:30:35 neilc Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -29,6 +29,7 @@ ALTER SEQUENCE <replaceable class="parameter">name</replaceable> [ INCREMENT [ B
|
|||||||
[ RESTART [ WITH ] <replaceable class="parameter">start</replaceable> ] [ CACHE <replaceable class="parameter">cache</replaceable> ] [ [ NO ] CYCLE ]
|
[ RESTART [ WITH ] <replaceable class="parameter">start</replaceable> ] [ CACHE <replaceable class="parameter">cache</replaceable> ] [ [ NO ] CYCLE ]
|
||||||
[ OWNED BY { <replaceable class="parameter">table</replaceable>.<replaceable class="parameter">column</replaceable> | NONE } ]
|
[ OWNED BY { <replaceable class="parameter">table</replaceable>.<replaceable class="parameter">column</replaceable> | NONE } ]
|
||||||
ALTER SEQUENCE <replaceable class="parameter">name</replaceable> SET SCHEMA <replaceable class="parameter">new_schema</replaceable>
|
ALTER SEQUENCE <replaceable class="parameter">name</replaceable> SET SCHEMA <replaceable class="parameter">new_schema</replaceable>
|
||||||
|
ALTER SEQUENCE <replaceable class="parameter">name</replaceable> RENAME TO <replaceable class="parameter">new_name</replaceable>
|
||||||
</synopsis>
|
</synopsis>
|
||||||
</refsynopsisdiv>
|
</refsynopsisdiv>
|
||||||
|
|
||||||
@ -190,6 +191,16 @@ ALTER SEQUENCE <replaceable class="parameter">name</replaceable> SET SCHEMA <rep
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><replaceable class="parameter">new_name</replaceable></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The new name for the sequence.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
88
doc/src/sgml/ref/alter_view.sgml
Normal file
88
doc/src/sgml/ref/alter_view.sgml
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<!--
|
||||||
|
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_view.sgml,v 1.1 2007/07/03 01:30:35 neilc Exp $
|
||||||
|
PostgreSQL documentation
|
||||||
|
-->
|
||||||
|
|
||||||
|
<refentry id="SQL-ALTERVIEW">
|
||||||
|
<refmeta>
|
||||||
|
<refentrytitle id="SQL-ALTERVIEW-TITLE">ALTER VIEW</refentrytitle>
|
||||||
|
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
||||||
|
</refmeta>
|
||||||
|
|
||||||
|
<refnamediv>
|
||||||
|
<refname>ALTER VIEW</refname>
|
||||||
|
<refpurpose>change the definition of a view</refpurpose>
|
||||||
|
</refnamediv>
|
||||||
|
|
||||||
|
<indexterm zone="sql-alterview">
|
||||||
|
<primary>ALTER VIEW</primary>
|
||||||
|
</indexterm>
|
||||||
|
|
||||||
|
<refsynopsisdiv>
|
||||||
|
<synopsis>
|
||||||
|
ALTER VIEW <replaceable>name</replaceable> RENAME TO <replaceable>newname</replaceable>
|
||||||
|
</synopsis>
|
||||||
|
</refsynopsisdiv>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Description</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<command>ALTER VIEW</command> changes the definition of a
|
||||||
|
view. To execute this command you must be the owner of the view.
|
||||||
|
</para>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Parameters</title>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><replaceable class="parameter">name</replaceable></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The name (optionally schema-qualified) of an existing view.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><replaceable class="parameter">newname</replaceable></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The new name of the view.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Examples</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To rename the view <literal>foo</literal> to
|
||||||
|
<literal>bar</literal>:
|
||||||
|
<programlisting>
|
||||||
|
ALTER VIEW foo RENAME TO bar;
|
||||||
|
</programlisting>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Compatibility</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<command>ALTER VIEW</command> is a <productname>PostgreSQL</>
|
||||||
|
extension of the SQL standard.
|
||||||
|
</para>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>See Also</title>
|
||||||
|
|
||||||
|
<simplelist type="inline">
|
||||||
|
<member><xref linkend="sql-createview" endterm="sql-createview-title"></member>
|
||||||
|
<member><xref linkend="sql-dropview" endterm="sql-dropview-title"></member>
|
||||||
|
</simplelist>
|
||||||
|
</refsect1>
|
||||||
|
</refentry>
|
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/create_view.sgml,v 1.35 2007/02/01 00:28:18 momjian Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/create_view.sgml,v 1.36 2007/07/03 01:30:35 neilc Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -226,6 +226,7 @@ CREATE VIEW <replaceable class="parameter">name</replaceable> [ ( <replaceable c
|
|||||||
<title>See Also</title>
|
<title>See Also</title>
|
||||||
|
|
||||||
<simplelist type="inline">
|
<simplelist type="inline">
|
||||||
|
<member><xref linkend="sql-alterview" endterm="sql-alterview-title"></member>
|
||||||
<member><xref linkend="sql-dropview" endterm="sql-dropview-title"></member>
|
<member><xref linkend="sql-dropview" endterm="sql-dropview-title"></member>
|
||||||
</simplelist>
|
</simplelist>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/drop_view.sgml,v 1.23 2006/09/16 00:30:18 momjian Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/drop_view.sgml,v 1.24 2007/07/03 01:30:35 neilc Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -104,6 +104,7 @@ DROP VIEW kinds;
|
|||||||
<title>See Also</title>
|
<title>See Also</title>
|
||||||
|
|
||||||
<simplelist type="inline">
|
<simplelist type="inline">
|
||||||
|
<member><xref linkend="sql-alterview" endterm="sql-alterview-title"></member>
|
||||||
<member><xref linkend="sql-createview" endterm="sql-createview-title"></member>
|
<member><xref linkend="sql-createview" endterm="sql-createview-title"></member>
|
||||||
</simplelist>
|
</simplelist>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/reference.sgml,v 1.63 2007/04/26 16:13:08 neilc Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/reference.sgml,v 1.64 2007/07/03 01:30:35 neilc Exp $ -->
|
||||||
|
|
||||||
<part id="reference">
|
<part id="reference">
|
||||||
<title>Reference</title>
|
<title>Reference</title>
|
||||||
@ -53,6 +53,7 @@
|
|||||||
&alterTrigger;
|
&alterTrigger;
|
||||||
&alterType;
|
&alterType;
|
||||||
&alterUser;
|
&alterUser;
|
||||||
|
&alterView;
|
||||||
&analyze;
|
&analyze;
|
||||||
&begin;
|
&begin;
|
||||||
&checkpoint;
|
&checkpoint;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/alter.c,v 1.23 2007/03/26 16:58:38 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/alter.c,v 1.24 2007/07/03 01:30:36 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -83,6 +83,8 @@ ExecRenameStmt(RenameStmt *stmt)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case OBJECT_TABLE:
|
case OBJECT_TABLE:
|
||||||
|
case OBJECT_SEQUENCE:
|
||||||
|
case OBJECT_VIEW:
|
||||||
case OBJECT_INDEX:
|
case OBJECT_INDEX:
|
||||||
case OBJECT_COLUMN:
|
case OBJECT_COLUMN:
|
||||||
case OBJECT_TRIGGER:
|
case OBJECT_TRIGGER:
|
||||||
@ -96,6 +98,8 @@ ExecRenameStmt(RenameStmt *stmt)
|
|||||||
switch (stmt->renameType)
|
switch (stmt->renameType)
|
||||||
{
|
{
|
||||||
case OBJECT_TABLE:
|
case OBJECT_TABLE:
|
||||||
|
case OBJECT_SEQUENCE:
|
||||||
|
case OBJECT_VIEW:
|
||||||
case OBJECT_INDEX:
|
case OBJECT_INDEX:
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@ -113,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);
|
renamerel(relid, stmt->newname, stmt->renameType);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case OBJECT_COLUMN:
|
case OBJECT_COLUMN:
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.228 2007/06/23 22:12:50 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.229 2007/07/03 01:30:36 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -41,6 +41,7 @@
|
|||||||
#include "executor/executor.h"
|
#include "executor/executor.h"
|
||||||
#include "miscadmin.h"
|
#include "miscadmin.h"
|
||||||
#include "nodes/makefuncs.h"
|
#include "nodes/makefuncs.h"
|
||||||
|
#include "nodes/parsenodes.h"
|
||||||
#include "optimizer/clauses.h"
|
#include "optimizer/clauses.h"
|
||||||
#include "optimizer/plancat.h"
|
#include "optimizer/plancat.h"
|
||||||
#include "optimizer/prep.h"
|
#include "optimizer/prep.h"
|
||||||
@ -1621,7 +1622,7 @@ renameatt(Oid myrelid,
|
|||||||
* sequence, AFAIK there's no need for it to be there.
|
* sequence, AFAIK there's no need for it to be there.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
renamerel(Oid myrelid, const char *newrelname)
|
renamerel(Oid myrelid, const char *newrelname, ObjectType reltype)
|
||||||
{
|
{
|
||||||
Relation targetrelation;
|
Relation targetrelation;
|
||||||
Relation relrelation; /* for RELATION relation */
|
Relation relrelation; /* for RELATION relation */
|
||||||
@ -1633,8 +1634,8 @@ renamerel(Oid myrelid, const char *newrelname)
|
|||||||
bool relhastriggers;
|
bool relhastriggers;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Grab an exclusive lock on the target table or index, which we will NOT
|
* Grab an exclusive lock on the target table, index, sequence or
|
||||||
* release until end of transaction.
|
* view, which we will NOT release until end of transaction.
|
||||||
*/
|
*/
|
||||||
targetrelation = relation_open(myrelid, AccessExclusiveLock);
|
targetrelation = relation_open(myrelid, AccessExclusiveLock);
|
||||||
|
|
||||||
@ -1647,7 +1648,24 @@ renamerel(Oid myrelid, const char *newrelname)
|
|||||||
errmsg("permission denied: \"%s\" is a system catalog",
|
errmsg("permission denied: \"%s\" is a system catalog",
|
||||||
RelationGetRelationName(targetrelation))));
|
RelationGetRelationName(targetrelation))));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* For compatibility with prior releases, we don't complain if
|
||||||
|
* ALTER TABLE or ALTER INDEX is used to rename a sequence or
|
||||||
|
* view.
|
||||||
|
*/
|
||||||
relkind = targetrelation->rd_rel->relkind;
|
relkind = targetrelation->rd_rel->relkind;
|
||||||
|
if (reltype == OBJECT_SEQUENCE && relkind != 'S')
|
||||||
|
ereport(ERROR,
|
||||||
|
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
|
||||||
|
errmsg("\"%s\" is not a sequence",
|
||||||
|
RelationGetRelationName(targetrelation))));
|
||||||
|
|
||||||
|
if (reltype == OBJECT_VIEW && relkind != 'v')
|
||||||
|
ereport(ERROR,
|
||||||
|
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
|
||||||
|
errmsg("\"%s\" is not a view",
|
||||||
|
RelationGetRelationName(targetrelation))));
|
||||||
|
|
||||||
relhastriggers = (targetrelation->rd_rel->reltriggers > 0);
|
relhastriggers = (targetrelation->rd_rel->reltriggers > 0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.596 2007/06/23 22:12:51 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.597 2007/07/03 01:30:36 neilc Exp $
|
||||||
*
|
*
|
||||||
* HISTORY
|
* HISTORY
|
||||||
* AUTHOR DATE MAJOR EVENT
|
* AUTHOR DATE MAJOR EVENT
|
||||||
@ -4546,6 +4546,24 @@ RenameStmt: ALTER AGGREGATE func_name aggr_args RENAME TO name
|
|||||||
n->newname = $6;
|
n->newname = $6;
|
||||||
$$ = (Node *)n;
|
$$ = (Node *)n;
|
||||||
}
|
}
|
||||||
|
| ALTER SEQUENCE relation_expr RENAME TO name
|
||||||
|
{
|
||||||
|
RenameStmt *n = makeNode(RenameStmt);
|
||||||
|
n->renameType = OBJECT_SEQUENCE;
|
||||||
|
n->relation = $3;
|
||||||
|
n->subname = NULL;
|
||||||
|
n->newname = $6;
|
||||||
|
$$ = (Node *)n;
|
||||||
|
}
|
||||||
|
| ALTER VIEW relation_expr RENAME TO name
|
||||||
|
{
|
||||||
|
RenameStmt *n = makeNode(RenameStmt);
|
||||||
|
n->renameType = OBJECT_VIEW;
|
||||||
|
n->relation = $3;
|
||||||
|
n->subname = NULL;
|
||||||
|
n->newname = $6;
|
||||||
|
$$ = (Node *)n;
|
||||||
|
}
|
||||||
| ALTER INDEX relation_expr RENAME TO name
|
| ALTER INDEX relation_expr RENAME TO name
|
||||||
{
|
{
|
||||||
RenameStmt *n = makeNode(RenameStmt);
|
RenameStmt *n = makeNode(RenameStmt);
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.282 2007/06/28 00:02:39 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.283 2007/07/03 01:30:37 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -1574,6 +1574,9 @@ CreateCommandTag(Node *parsetree)
|
|||||||
case OBJECT_SCHEMA:
|
case OBJECT_SCHEMA:
|
||||||
tag = "ALTER SCHEMA";
|
tag = "ALTER SCHEMA";
|
||||||
break;
|
break;
|
||||||
|
case OBJECT_SEQUENCE:
|
||||||
|
tag = "ALTER SEQUENCE";
|
||||||
|
break;
|
||||||
case OBJECT_COLUMN:
|
case OBJECT_COLUMN:
|
||||||
case OBJECT_TABLE:
|
case OBJECT_TABLE:
|
||||||
tag = "ALTER TABLE";
|
tag = "ALTER TABLE";
|
||||||
@ -1584,6 +1587,9 @@ CreateCommandTag(Node *parsetree)
|
|||||||
case OBJECT_TRIGGER:
|
case OBJECT_TRIGGER:
|
||||||
tag = "ALTER TRIGGER";
|
tag = "ALTER TRIGGER";
|
||||||
break;
|
break;
|
||||||
|
case OBJECT_VIEW:
|
||||||
|
tag = "ALTER VIEW";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
tag = "???";
|
tag = "???";
|
||||||
break;
|
break;
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
|
* Copyright (c) 2000-2007, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.165 2007/06/13 23:59:47 neilc Exp $
|
* $PostgreSQL: pgsql/src/bin/psql/tab-complete.c,v 1.166 2007/07/03 01:30:37 neilc Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
@ -602,7 +602,7 @@ psql_completion(char *text, int start, int end)
|
|||||||
static const char *const list_ALTER[] =
|
static const char *const list_ALTER[] =
|
||||||
{"AGGREGATE", "CONVERSION", "DATABASE", "DOMAIN", "FUNCTION",
|
{"AGGREGATE", "CONVERSION", "DATABASE", "DOMAIN", "FUNCTION",
|
||||||
"GROUP", "INDEX", "LANGUAGE", "OPERATOR", "ROLE", "SCHEMA", "SEQUENCE", "TABLE",
|
"GROUP", "INDEX", "LANGUAGE", "OPERATOR", "ROLE", "SCHEMA", "SEQUENCE", "TABLE",
|
||||||
"TABLESPACE", "TRIGGER", "TYPE", "USER", NULL};
|
"TABLESPACE", "TRIGGER", "TYPE", "USER", "VIEW", NULL};
|
||||||
|
|
||||||
COMPLETE_WITH_LIST(list_ALTER);
|
COMPLETE_WITH_LIST(list_ALTER);
|
||||||
}
|
}
|
||||||
@ -714,7 +714,7 @@ psql_completion(char *text, int start, int end)
|
|||||||
{
|
{
|
||||||
static const char *const list_ALTERSEQUENCE[] =
|
static const char *const list_ALTERSEQUENCE[] =
|
||||||
{"INCREMENT", "MINVALUE", "MAXVALUE", "RESTART", "NO", "CACHE", "CYCLE",
|
{"INCREMENT", "MINVALUE", "MAXVALUE", "RESTART", "NO", "CACHE", "CYCLE",
|
||||||
"SET SCHEMA", NULL};
|
"SET SCHEMA", "RENAME TO", NULL};
|
||||||
|
|
||||||
COMPLETE_WITH_LIST(list_ALTERSEQUENCE);
|
COMPLETE_WITH_LIST(list_ALTERSEQUENCE);
|
||||||
}
|
}
|
||||||
@ -728,6 +728,14 @@ psql_completion(char *text, int start, int end)
|
|||||||
|
|
||||||
COMPLETE_WITH_LIST(list_ALTERSEQUENCE2);
|
COMPLETE_WITH_LIST(list_ALTERSEQUENCE2);
|
||||||
}
|
}
|
||||||
|
/* ALTER VIEW <name> */
|
||||||
|
else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
|
||||||
|
pg_strcasecmp(prev2_wd, "VIEW") == 0)
|
||||||
|
{
|
||||||
|
static const char *const list_ALTERVIEW[] = {"RENAME TO", NULL};
|
||||||
|
|
||||||
|
COMPLETE_WITH_LIST(list_ALTERVIEW);
|
||||||
|
}
|
||||||
/* ALTER TRIGGER <name>, add ON */
|
/* ALTER TRIGGER <name>, add ON */
|
||||||
else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
|
else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
|
||||||
pg_strcasecmp(prev2_wd, "TRIGGER") == 0)
|
pg_strcasecmp(prev2_wd, "TRIGGER") == 0)
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2007, 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.33 2007/05/11 20:17:10 tgl Exp $
|
* $PostgreSQL: pgsql/src/include/commands/tablecmds.h,v 1.34 2007/07/03 01:30:37 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -43,7 +43,8 @@ extern void renameatt(Oid myrelid,
|
|||||||
bool recursing);
|
bool recursing);
|
||||||
|
|
||||||
extern void renamerel(Oid myrelid,
|
extern void renamerel(Oid myrelid,
|
||||||
const char *newrelname);
|
const char *newrelname,
|
||||||
|
ObjectType reltype);
|
||||||
|
|
||||||
extern void find_composite_type_dependencies(Oid typeOid,
|
extern void find_composite_type_dependencies(Oid typeOid,
|
||||||
const char *origTblName,
|
const char *origTblName,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user