Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite40492e

Browse files
committed
Remove useless and dangerous 'opt_type' option from CREATE INDEX.
1 parent6bfe640 commite40492e

File tree

4 files changed

+27
-43
lines changed

4 files changed

+27
-43
lines changed

‎src/backend/nodes/outfuncs.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
77
* Portions Copyright (c) 1994, Regents of the University of California
88
*
9-
*$Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.121 2000/07/12 02:37:06 tgl Exp $
9+
*$Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.122 2000/07/15 00:01:37 tgl Exp $
1010
*
1111
* NOTES
1212
* Every (plan) node in POSTGRES has an associated "out" routine which
@@ -139,9 +139,9 @@ _outIndexStmt(StringInfo str, IndexStmt *node)
139139
appendStringInfo(str," :rangetable ");
140140
_outNode(str,node->rangetable);
141141

142-
appendStringInfo(str," :lossy %s :unique %s ",
143-
node->lossy ?"true" :"false",
144-
node->unique ?"true" :"false");
142+
appendStringInfo(str," :unique %s :primary %s ",
143+
node->unique ?"true" :"false",
144+
node->primary ?"true" :"false");
145145
}
146146

147147
staticvoid
@@ -210,8 +210,6 @@ _outIndexElem(StringInfo str, IndexElem *node)
210210
_outNode(str,node->args);
211211
appendStringInfo(str," :class ");
212212
_outToken(str,node->class);
213-
appendStringInfo(str," :typename ");
214-
_outNode(str,node->typename);
215213
}
216214

217215
staticvoid

‎src/backend/parser/analyze.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
77
* Portions Copyright (c) 1994, Regents of the University of California
88
*
9-
*$Id: analyze.c,v 1.150 2000/07/14 15:43:32 thomas Exp $
9+
*$Id: analyze.c,v 1.151 2000/07/15 00:01:41 tgl Exp $
1010
*
1111
*-------------------------------------------------------------------------
1212
*/
@@ -947,7 +947,6 @@ transformCreateStmt(ParseState *pstate, CreateStmt *stmt)
947947
iparam->name=pstrdup(column->colname);
948948
iparam->args=NIL;
949949
iparam->class=NULL;
950-
iparam->typename=NULL;
951950
index->indexParams=lappend(index->indexParams,iparam);
952951

953952
if (index->idxname==NULL)

‎src/backend/parser/gram.y

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
*
1212
*
1313
* IDENTIFICATION
14-
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.178 2000/07/14 15:43:32 thomas Exp $
14+
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.179 2000/07/15 00:01:41 tgl Exp $
1515
*
1616
* HISTORY
1717
* AUTHORDATEMAJOR EVENT
@@ -250,7 +250,7 @@ static void doNegateFloat(Value *v);
250250
%type<target>target_el,update_target_el
251251
%type<paramno>ParamNo
252252

253-
%type<typnam>Typename,opt_type,SimpleTypename,ConstTypename
253+
%type<typnam>Typename,SimpleTypename,ConstTypename
254254
Generic,Numeric,Character,ConstDatetime,ConstInterval,Bit
255255
%type<str>typename,generic,numeric,character,datetime,bit
256256
%type<str>extract_arg
@@ -1778,7 +1778,7 @@ TriggerFuncArg: ICONST
17781778
}
17791779
|FCONST{$$ =$1; }
17801780
|Sconst{$$ =$1; }
1781-
|IDENT{$$ =$1; }
1781+
|ColId{$$ =$1; }
17821782
;
17831783

17841784
OptConstrFromTable:/* Empty*/
@@ -2315,8 +2315,6 @@ RevokeStmt: REVOKE privileges ON relation_name_list FROM grantee
23152315
IndexStmt:CREATEindex_opt_uniqueINDEXindex_nameONrelation_name
23162316
access_method_clause'('index_params')'opt_with
23172317
{
2318-
/* should check that access_method is valid,
2319-
etc ... but doesn't*/
23202318
IndexStmt *n = makeNode(IndexStmt);
23212319
n->unique =$2;
23222320
n->idxname =$4;
@@ -2345,37 +2343,24 @@ index_list: index_list ',' index_elem{ $$ = lappend($1, $3); }
23452343
|index_elem{$$ = lcons($1, NIL); }
23462344
;
23472345

2348-
func_index:func_name'('name_list')'opt_typeopt_class
2346+
func_index:func_name'('name_list')'opt_class
23492347
{
23502348
$$ = makeNode(IndexElem);
23512349
$$->name =$1;
23522350
$$->args =$3;
2353-
$$->class =$6;
2354-
$$->typename =$5;
2351+
$$->class =$5;
23552352
}
23562353
;
23572354

2358-
index_elem:attr_nameopt_typeopt_class
2355+
index_elem:attr_nameopt_class
23592356
{
23602357
$$ = makeNode(IndexElem);
23612358
$$->name =$1;
23622359
$$->args = NIL;
2363-
$$->class =$3;
2364-
$$->typename =$2;
2360+
$$->class =$2;
23652361
}
23662362
;
23672363

2368-
opt_type:':'Typename{$$ =$2; }
2369-
|FORTypename{$$ =$2; }
2370-
|/*EMPTY*/{$$ =NULL; }
2371-
;
2372-
2373-
/* opt_class "WITH class" conflicts with preceeding opt_type
2374-
* for Typename of "TIMESTAMP WITH TIME ZONE"
2375-
* So, remove "WITH class" from the syntax. OK??
2376-
* - thomas 1997-10-12
2377-
*| WITH class{ $$ = $2; }
2378-
*/
23792364
opt_class:class{
23802365
/*
23812366
* Release 7.0 removed network_ops, timespan_ops, and datetime_ops,
@@ -5352,9 +5337,9 @@ relation_name:SpecialRuleRelation
53525337
;
53535338

53545339
database_name:ColId{$$ =$1; };
5355-
access_method:IDENT{$$ =$1; };
5340+
access_method:ColId{$$ =$1; };
53565341
attr_name:ColId{$$ =$1; };
5357-
class:IDENT{$$ =$1; };
5342+
class:ColId{$$ =$1; };
53585343
index_name:ColId{$$ =$1; };
53595344

53605345
/* Functions
@@ -5365,7 +5350,6 @@ name:ColId{ $$ = $1; };
53655350
func_name:ColId{$$ = xlateSqlFunc($1); };
53665351

53675352
file_name:Sconst{$$ =$1; };
5368-
/* NOT USED recipe_name:IDENT{ $$ = $1; };*/
53695353

53705354
/* Constants
53715355
* Include TRUE/FALSE for SQL3 support. - thomas 1997-10-24
@@ -5453,7 +5437,7 @@ ParamNo: PARAM opt_indirection
54535437

54545438
Iconst:ICONST{$$ =$1; };
54555439
Sconst:SCONST{$$ =$1; };
5456-
UserId:IDENT{$$ =$1; };
5440+
UserId:ColId{$$ =$1; };
54575441

54585442
/* Column identifier
54595443
* Include date/time keywords as SQL92 extension.

‎src/include/nodes/parsenodes.h

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
88
* Portions Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: parsenodes.h,v 1.109 2000/07/14 15:43:51 thomas Exp $
10+
* $Id: parsenodes.h,v 1.110 2000/07/15 00:01:38 tgl Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -467,13 +467,12 @@ typedef struct IndexStmt
467467
NodeTagtype;
468468
char*idxname;/* name of the index */
469469
char*relname;/* name of relation to index on */
470-
char*accessMethod;/* name ofacess methood (eg. btree) */
470+
char*accessMethod;/* name ofaccess method (eg. btree) */
471471
List*indexParams;/* a list of IndexElem */
472472
List*withClause;/* a list of DefElem */
473-
Node*whereClause;/*qualifications */
474-
List*rangetable;/* range table, filled in by
473+
Node*whereClause;/*qualification (partial-index predicate) */
474+
List*rangetable;/* range table for qual, filled in by
475475
* transformStmt() */
476-
bool*lossy;/* is index lossy? */
477476
boolunique;/* is index unique? */
478477
boolprimary;/* is index on primary key? */
479478
}IndexStmt;
@@ -1088,14 +1087,18 @@ typedef struct RangeVar
10881087

10891088
/*
10901089
* IndexElem - index parameters (used in CREATE INDEX)
1090+
*
1091+
* For a plain index, each 'name' is an attribute name in the heap relation,
1092+
* and 'args' is NIL. For a functional index, only one IndexElem is allowed.
1093+
* It has name = name of function and args = list of attribute names that
1094+
* are the function's arguments.
10911095
*/
10921096
typedefstructIndexElem
10931097
{
10941098
NodeTagtype;
1095-
char*name;/* name of index */
1096-
List*args;/* if not NULL, function index */
1097-
char*class;
1098-
TypeName*typename;/* type of index's keys (optional) */
1099+
char*name;/* name of attribute to index, or function */
1100+
List*args;/* list of names of function arguments */
1101+
char*class;/* name of desired opclass; NULL = default */
10991102
}IndexElem;
11001103

11011104
/*

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp