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

Commit3357e1d

Browse files
committed
Back out pg_shadow changes to allow create table and locking permissions.
1 parent64948db commit3357e1d

File tree

13 files changed

+53
-225
lines changed

13 files changed

+53
-225
lines changed

‎src/backend/commands/command.c

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.78 2000/06/09 15:50:43 momjian Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.79 2000/06/12 03:40:29 momjian Exp $
1212
*
1313
* NOTES
1414
* The PortalExecutorHeapMemory crap needs to be eliminated
@@ -30,7 +30,6 @@
3030
#include"commands/command.h"
3131
#include"executor/spi.h"
3232
#include"catalog/heap.h"
33-
#include"catalog/pg_shadow.h"
3433
#include"miscadmin.h"
3534
#include"optimizer/prep.h"
3635
#include"utils/acl.h"
@@ -1212,21 +1211,6 @@ LockTableCommand(LockStmt *lockstmt)
12121211
{
12131212
Relationrel;
12141213
intaclresult;
1215-
HeapTupletup;
1216-
1217-
1218-
/* ----------
1219-
* Check pg_shadow for global lock setting
1220-
* ----------
1221-
*/
1222-
tup=SearchSysCacheTuple(SHADOWNAME,PointerGetDatum(GetPgUserName()),0,0,0);
1223-
1224-
if (!HeapTupleIsValid(tup))
1225-
elog(ERROR,"LOCK TABLE: look at pg_shadow failed");
1226-
1227-
if (!((Form_pg_shadow)GETSTRUCT(tup))->uselocktable)
1228-
elog(ERROR,"LOCK TABLE: permission denied");
1229-
12301214

12311215
rel=heap_openr(lockstmt->relname,NoLock);
12321216
if (!RelationIsValid(rel))

‎src/backend/commands/creatinh.c

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
*
1010
* IDENTIFICATION
1111
<<<<<<< creatinh.c
12-
* $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.60 2000/06/09 15:50:43 momjian Exp $
12+
* $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.61 2000/06/12 03:40:29 momjian Exp $
1313
=======
14-
* $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.60 2000/06/09 15:50:43 momjian Exp $
14+
* $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.61 2000/06/12 03:40:29 momjian Exp $
1515
>>>>>>> 1.58
1616
*
1717
*-------------------------------------------------------------------------
@@ -26,10 +26,8 @@
2626
#include"catalog/pg_inherits.h"
2727
#include"catalog/pg_ipl.h"
2828
#include"catalog/pg_type.h"
29-
#include"catalog/pg_shadow.h"
3029
#include"commands/creatinh.h"
3130
#include"utils/syscache.h"
32-
#include"miscadmin.h"
3331

3432
/* ----------------
3533
*local stuff
@@ -65,22 +63,6 @@ DefineRelation(CreateStmt *stmt, char relkind)
6563
inti;
6664
AttrNumberattnum;
6765

68-
if (!stmt->istemp) {
69-
HeapTupletup;
70-
71-
/* ----------
72-
* Check pg_shadow for global createTable setting
73-
* ----------
74-
*/
75-
tup=SearchSysCacheTuple(SHADOWNAME,PointerGetDatum(GetPgUserName()),0,0,0);
76-
77-
if (!HeapTupleIsValid(tup))
78-
elog(ERROR,"CREATE TABLE: look at pg_shadow failed");
79-
80-
if (!((Form_pg_shadow)GETSTRUCT(tup))->usecreatetable)
81-
elog(ERROR,"CREATE TABLE: permission denied");
82-
}
83-
8466
if (strlen(stmt->relname) >=NAMEDATALEN)
8567
elog(ERROR,"the relation name %s is >= %d characters long",
8668
stmt->relname,NAMEDATALEN);

‎src/backend/commands/user.c

Lines changed: 4 additions & 35 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/commands/user.c,v 1.59 2000/06/09 15:50:43 momjian Exp $
9+
* $Header: /cvsroot/pgsql/src/backend/commands/user.c,v 1.60 2000/06/12 03:40:29 momjian Exp $
1010
*
1111
*-------------------------------------------------------------------------
1212
*/
@@ -250,10 +250,6 @@ CreateUser(CreateUserStmt *stmt)
250250
return;
251251
}
252252

253-
AssertState(BoolIsValid(stmt->createtable));
254-
new_record[Anum_pg_shadow_usecreatetable-1]= (Datum)(stmt->createtable);
255-
AssertState(BoolIsValid(stmt->locktable));
256-
new_record[Anum_pg_shadow_uselocktable-1]= (Datum)(stmt->locktable);
257253
/*
258254
* Build a tuple to insert
259255
*/
@@ -267,8 +263,6 @@ CreateUser(CreateUserStmt *stmt)
267263
AssertState(BoolIsValid(stmt->createuser));
268264
new_record[Anum_pg_shadow_usesuper-1]= (Datum) (stmt->createuser);
269265
/* superuser gets catupd right by default */
270-
new_record_nulls[Anum_pg_shadow_usecreatetable-1]=' ';
271-
new_record_nulls[Anum_pg_shadow_uselocktable-1]=' ';
272266
new_record[Anum_pg_shadow_usecatupd-1]= (Datum) (stmt->createuser);
273267

274268
if (stmt->password)
@@ -358,8 +352,7 @@ AlterUser(AlterUserStmt *stmt)
358352

359353
/* must be superuser or just want to change your own password */
360354
if (!superuser()&&
361-
!(stmt->createdb==0&&stmt->createuser==0&&stmt->createtable==0
362-
&&stmt->locktable==0&& !stmt->validUntil
355+
!(stmt->createdb==0&&stmt->createuser==0&& !stmt->validUntil
363356
&&stmt->password&&strcmp(GetPgUserName(),stmt->user)==0))
364357
elog(ERROR,"ALTER USER: permission denied");
365358

@@ -387,32 +380,8 @@ AlterUser(AlterUserStmt *stmt)
387380
/*
388381
* Build a tuple to update, perusing the information just obtained
389382
*/
390-
391-
/* createtable */
392-
if (stmt->createtable==0)
393-
{
394-
/* don't change */
395-
new_record[Anum_pg_shadow_usecreatetable-1]=heap_getattr(tuple,Anum_pg_shadow_usecreatetable,pg_shadow_dsc,&null);
396-
new_record_nulls[Anum_pg_shadow_usecreatetable-1]=null ?'n' :' ';
397-
}
398-
else
399-
{
400-
new_record[Anum_pg_shadow_usecreatetable-1]= (Datum)(stmt->createtable>0 ? true : false);
401-
new_record_nulls[Anum_pg_shadow_usecreatetable-1]=' ';
402-
}
403-
404-
/* locktable */
405-
if (stmt->locktable==0)
406-
{
407-
/* don't change */
408-
new_record[Anum_pg_shadow_uselocktable-1]=heap_getattr(tuple,Anum_pg_shadow_uselocktable,pg_shadow_dsc,&null);
409-
new_record_nulls[Anum_pg_shadow_uselocktable-1]=null ?'n' :' ';
410-
}
411-
else
412-
{
413-
new_record[Anum_pg_shadow_uselocktable-1]= (Datum)(stmt->locktable>0 ? true : false);
414-
new_record_nulls[Anum_pg_shadow_uselocktable-1]=' ';
415-
}
383+
new_record[Anum_pg_shadow_usename-1]=PointerGetDatum(namein(stmt->user));
384+
new_record_nulls[Anum_pg_shadow_usename-1]=' ';
416385

417386
/* sysid - leave as is */
418387
new_record[Anum_pg_shadow_usesysid-1]=heap_getattr(tuple,Anum_pg_shadow_usesysid,pg_shadow_dsc,&null);

‎src/backend/parser/gram.y

Lines changed: 20 additions & 47 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.171 2000/06/09 15:50:44 momjian Exp $
14+
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.172 2000/06/12 03:40:30 momjian Exp $
1515
*
1616
* HISTORY
1717
* AUTHORDATEMAJOR EVENT
@@ -145,8 +145,7 @@ static void doNegateFloat(Value *v);
145145
%type<ival>opt_lock,lock_type
146146
%type<boolean>opt_lmode,opt_force
147147

148-
%type<ival>user_createdb_clause,user_createuser_clause,user_createtable_clause,
149-
user_locktable_clause
148+
%type<ival>user_createdb_clause,user_createuser_clause
150149
%type<str>user_passwd_clause
151150
%type<ival>sysid_clause
152151
%type<str>user_valid_clause
@@ -340,14 +339,14 @@ static void doNegateFloat(Value *v);
340339
*/
341340
%tokenABORT_TRANS,ACCESS,AFTER,AGGREGATE,ANALYZE,
342341
BACKWARD,BEFORE,BINARY,BIT,
343-
CACHE,CLUSTER,COMMENT,COPY,CREATEDB,CREATETABLE,CREATEUSER,CYCLE,
342+
CACHE,CLUSTER,COMMENT,COPY,CREATEDB,CREATEUSER,CYCLE,
344343
DATABASE,DELIMITERS,DO,
345344
EACH,ENCODING,EXCLUSIVE,EXPLAIN,EXTEND,
346345
FORCE,FORWARD,FUNCTION,HANDLER,
347346
INCREMENT,INDEX,INHERITS,INSTEAD,ISNULL,
348-
LANCOMPILER,LIMIT,LISTEN,LOAD,LOCATION,LOCK_P,LOCKTABLE,
347+
LANCOMPILER,LIMIT,LISTEN,LOAD,LOCATION,LOCK_P,
349348
MAXVALUE,MINVALUE,MODE,MOVE,
350-
NEW,NOCREATEDB,NOCREATETABLE,NOCREATEUSER,NOLOCKTABLE,NONE,NOTHING,NOTIFY,NOTNULL,
349+
NEW,NOCREATEDB,NOCREATEUSER,NONE,NOTHING,NOTIFY,NOTNULL,
351350
OFFSET,OIDS,OPERATOR,PASSWORD,PROCEDURAL,
352351
REINDEX,RENAME,RESET,RETURNS,ROW,RULE,
353352
SEQUENCE,SERIAL,SETOF,SHARE,SHOW,START,STATEMENT,STDIN,STDOUT,SYSID,
@@ -474,37 +473,32 @@ stmt :AlterTableStmt
474473
*
475474
*****************************************************************************/
476475

477-
CreateUserStmt:CREATEUSERUserIduser_createdb_clauseuser_createuser_clause
478-
user_createtable_clauseuser_locktable_clauseuser_group_clause
476+
CreateUserStmt:CREATEUSERUserId
477+
user_createdb_clauseuser_createuser_clauseuser_group_clause
479478
user_valid_clause
480479
{
481480
CreateUserStmt *n = makeNode(CreateUserStmt);
482481
n->user =$3;
483-
n->sysid = -1;
482+
n->sysid = -1;
484483
n->password =NULL;
485484
n->createdb =$4 == +1 ?true :false;
486485
n->createuser =$5 == +1 ?true :false;
487-
n->createtable =$6 == +1 ?true :false;
488-
n->locktable =$7 == +1 ?true :false;
489-
n->groupElts =$8;
490-
n->validUntil =$9;
486+
n->groupElts =$6;
487+
n->validUntil =$7;
491488
$$ = (Node *)n;
492489
}
493490
|CREATEUSERUserIdWITHsysid_clauseuser_passwd_clause
494-
user_createdb_clauseuser_createuser_clause
495-
user_createtable_clauseuser_locktable_clauseuser_group_clause
491+
user_createdb_clauseuser_createuser_clauseuser_group_clause
496492
user_valid_clause
497493
{
498494
CreateUserStmt *n = makeNode(CreateUserStmt);
499495
n->user =$3;
500-
n->sysid =$5;
496+
n->sysid =$5;
501497
n->password =$6;
502498
n->createdb =$7 == +1 ?true :false;
503499
n->createuser =$8 == +1 ?true :false;
504-
n->createtable =$9 == +1 ?true :false;
505-
n->locktable =$10 == +1 ?true :false;
506-
n->groupElts =$11;
507-
n->validUntil =$12;
500+
n->groupElts =$9;
501+
n->validUntil =$10;
508502
$$ = (Node *)n;
509503
}
510504
;
@@ -516,32 +510,27 @@ CreateUserStmt: CREATE USER UserId user_createdb_clause user_createuser_clause
516510
*
517511
*****************************************************************************/
518512

519-
AlterUserStmt:ALTERUSERUserIduser_createdb_clauseuser_createuser_clause
520-
user_createtable_clauseuser_locktable_clauseuser_valid_clause
513+
AlterUserStmt:ALTERUSERUserIduser_createdb_clause
514+
user_createuser_clauseuser_valid_clause
521515
{
522516
AlterUserStmt *n = makeNode(AlterUserStmt);
523517
n->user =$3;
524518
n->password =NULL;
525519
n->createdb =$4;
526520
n->createuser =$5;
527-
n->createtable =$6;
528-
n->locktable =$7;
529-
n->validUntil =$8;
521+
n->validUntil =$6;
530522
$$ = (Node *)n;
531523
}
532524
|ALTERUSERUserIdWITHPASSWORDSconst
533-
user_createdb_clauseuser_createuser_clause
534-
user_createtable_clauseuser_locktable_clause
535-
user_valid_clause
525+
user_createdb_clause
526+
user_createuser_clauseuser_valid_clause
536527
{
537528
AlterUserStmt *n = makeNode(AlterUserStmt);
538529
n->user =$3;
539530
n->password =$6;
540531
n->createdb =$7;
541532
n->createuser =$8;
542-
n->createtable =$9;
543-
n->locktable =$10;
544-
n->validUntil =$11;
533+
n->validUntil =$9;
545534
$$ = (Node *)n;
546535
}
547536
;
@@ -584,22 +573,6 @@ user_createuser_clause: CREATEUSER{ $$ = +1; }
584573
|/*EMPTY*/{$$ =0; }
585574
;
586575

587-
user_createtable_clause:CREATETABLE{$$ = +1; }
588-
|NOCREATETABLE{$$ = -1; }
589-
|/*EMPTY*/{
590-
/* EMPTY is default = CREATETABLE*/
591-
$$ = +1;
592-
}
593-
;
594-
595-
user_locktable_clause:LOCKTABLE{$$ = +1; }
596-
|NOLOCKTABLE{$$ = -1; }
597-
|/*EMPTY*/{
598-
/* EMPTY is default = LOCKTABLE*/
599-
$$ = +1;
600-
}
601-
;
602-
603576
user_list:user_list','UserId
604577
{
605578
$$ = lcons((void*)makeString($3),$1);

‎src/backend/parser/keywords.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
*
1010
* IDENTIFICATION
1111
<<<<<<< keywords.c
12-
* $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.75 2000/06/09 15:50:45 momjian Exp $
12+
* $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.76 2000/06/12 03:40:30 momjian Exp $
1313
=======
14-
* $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.75 2000/06/09 15:50:45 momjian Exp $
14+
* $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.76 2000/06/12 03:40:30 momjian Exp $
1515
>>>>>>> 1.73
1616
*
1717
*-------------------------------------------------------------------------
@@ -75,7 +75,6 @@ static ScanKeyword ScanKeywords[] = {
7575
{"copy",COPY},
7676
{"create",CREATE},
7777
{"createdb",CREATEDB},
78-
{"createtable",CREATETABLE},
7978
{"createuser",CREATEUSER},
8079
{"cross",CROSS},
8180
{"current_date",CURRENT_DATE},
@@ -156,7 +155,6 @@ static ScanKeyword ScanKeywords[] = {
156155
{"local",LOCAL},
157156
{"location",LOCATION},
158157
{"lock",LOCK_P},
159-
{"locktable",LOCKTABLE},
160158
{"match",MATCH},
161159
{"maxvalue",MAXVALUE},
162160
{"minute",MINUTE_P},
@@ -172,9 +170,7 @@ static ScanKeyword ScanKeywords[] = {
172170
{"next",NEXT},
173171
{"no",NO},
174172
{"nocreatedb",NOCREATEDB},
175-
{"nocreatetable",NOCREATETABLE},
176173
{"nocreateuser",NOCREATEUSER},
177-
{"nolocktable",NOLOCKTABLE},
178174
{"none",NONE},
179175
{"not",NOT},
180176
{"nothing",NOTHING},

‎src/backend/tcop/pquery.c

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.33 2000/06/09 15:50:46 momjian Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/tcop/pquery.c,v 1.34 2000/06/12 03:40:40 momjian Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -20,9 +20,6 @@
2020
#include"executor/executor.h"
2121
#include"tcop/pquery.h"
2222
#include"utils/ps_status.h"
23-
#include"catalog/pg_shadow.h"
24-
#include"miscadmin.h"
25-
#include"utils/syscache.h"
2623

2724
staticchar*CreateOperationTag(intoperationType);
2825
staticvoidProcessQueryDesc(QueryDesc*queryDesc,Node*limoffset,
@@ -253,23 +250,6 @@ ProcessQueryDesc(QueryDesc *queryDesc, Node *limoffset, Node *limcount)
253250
elseif (parseTree->into!=NULL)
254251
{
255252
/* select into table */
256-
257-
if (!parseTree->isTemp) {
258-
HeapTupletup;
259-
260-
/* ----------
261-
* Check pg_shadow for global createTable setting
262-
* ----------
263-
*/
264-
tup=SearchSysCacheTuple(SHADOWNAME,PointerGetDatum(GetPgUserName()),0,0,0);
265-
266-
if (!HeapTupleIsValid(tup))
267-
elog(ERROR,"ProcessQueryDesc: look at pg_shadow failed");
268-
269-
if (!((Form_pg_shadow)GETSTRUCT(tup))->usecreatetable)
270-
elog(ERROR,"SELECT INTO TABLE: permission denied");
271-
}
272-
273253
isRetrieveIntoRelation= true;
274254
}
275255

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp