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

Commitc504513

Browse files
committed
Adjust many backend functions to return OID rather than void.
Extracted from a larger patch by Dimitri Fontaine. It is hoped thatthis will provide infrastructure for enriching the new event triggerfunctionality, but it seems possibly useful for other purposes aswell.
1 parent31bc839 commitc504513

39 files changed

+385
-276
lines changed

‎src/backend/catalog/pg_aggregate.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ static Oid lookup_agg_function(List *fnName, int nargs, Oid *input_types,
4242
/*
4343
* AggregateCreate
4444
*/
45-
void
45+
Oid
4646
AggregateCreate(constchar*aggName,
4747
OidaggNamespace,
4848
Oid*aggArgTypes,
@@ -316,6 +316,8 @@ AggregateCreate(const char *aggName,
316316
referenced.objectSubId=0;
317317
recordDependencyOn(&myself,&referenced,DEPENDENCY_NORMAL);
318318
}
319+
320+
returnprocOid;
319321
}
320322

321323
/*

‎src/backend/catalog/pg_operator.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ OperatorShellMake(const char *operatorName,
326326
* Forward declaration is used only for this purpose, it is
327327
* not available to the user as it is for type definition.
328328
*/
329-
void
329+
Oid
330330
OperatorCreate(constchar*operatorName,
331331
OidoperatorNamespace,
332332
OidleftTypeId,
@@ -565,6 +565,8 @@ OperatorCreate(const char *operatorName,
565565

566566
if (OidIsValid(commutatorId)||OidIsValid(negatorId))
567567
OperatorUpd(operatorObjectId,commutatorId,negatorId);
568+
569+
returnoperatorObjectId;
568570
}
569571

570572
/*

‎src/backend/commands/aggregatecmds.c

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
* is specified by a BASETYPE element in the parameters. Otherwise,
4747
* "args" defines the input type(s).
4848
*/
49-
void
49+
Oid
5050
DefineAggregate(List*name,List*args,boololdstyle,List*parameters)
5151
{
5252
char*aggName;
@@ -216,23 +216,23 @@ DefineAggregate(List *name, List *args, bool oldstyle, List *parameters)
216216
/*
217217
* Most of the argument-checking is done inside of AggregateCreate
218218
*/
219-
AggregateCreate(aggName,/* aggregate name */
220-
aggNamespace,/* namespace */
221-
aggArgTypes,/* input data type(s) */
222-
numArgs,
223-
transfuncName,/* step function name */
224-
finalfuncName,/* final function name */
225-
sortoperatorName,/* sort operator name */
226-
transTypeId,/* transition data type */
227-
initval);/* initial condition */
219+
returnAggregateCreate(aggName,/* aggregate name */
220+
aggNamespace,/* namespace */
221+
aggArgTypes,/* input data type(s) */
222+
numArgs,
223+
transfuncName,/* step function name */
224+
finalfuncName,/* final function name */
225+
sortoperatorName,/* sort operator name */
226+
transTypeId,/* transition data type */
227+
initval);/* initial condition */
228228
}
229229

230230

231231
/*
232232
* RenameAggregate
233233
*Rename an aggregate.
234234
*/
235-
void
235+
Oid
236236
RenameAggregate(List*name,List*args,constchar*newname)
237237
{
238238
OidprocOid;
@@ -286,4 +286,6 @@ RenameAggregate(List *name, List *args, const char *newname)
286286

287287
heap_close(rel,NoLock);
288288
heap_freetuple(tup);
289+
290+
returnprocOid;
289291
}

‎src/backend/commands/alter.c

Lines changed: 52 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -50,153 +50,126 @@
5050
* Executes an ALTER OBJECT / RENAME TO statement.Based on the object
5151
* type, the function appropriate to that type is executed.
5252
*/
53-
void
53+
Oid
5454
ExecRenameStmt(RenameStmt*stmt)
5555
{
5656
switch (stmt->renameType)
5757
{
5858
caseOBJECT_AGGREGATE:
59-
RenameAggregate(stmt->object,stmt->objarg,stmt->newname);
60-
break;
59+
returnRenameAggregate(stmt->object,stmt->objarg,stmt->newname);
6160

6261
caseOBJECT_COLLATION:
63-
RenameCollation(stmt->object,stmt->newname);
64-
break;
62+
returnRenameCollation(stmt->object,stmt->newname);
6563

6664
caseOBJECT_CONSTRAINT:
67-
RenameConstraint(stmt);
68-
break;
65+
returnRenameConstraint(stmt);
6966

7067
caseOBJECT_CONVERSION:
71-
RenameConversion(stmt->object,stmt->newname);
72-
break;
68+
returnRenameConversion(stmt->object,stmt->newname);
7369

7470
caseOBJECT_DATABASE:
75-
RenameDatabase(stmt->subname,stmt->newname);
76-
break;
71+
returnRenameDatabase(stmt->subname,stmt->newname);
7772

7873
caseOBJECT_FDW:
79-
RenameForeignDataWrapper(stmt->subname,stmt->newname);
80-
break;
74+
returnRenameForeignDataWrapper(stmt->subname,stmt->newname);
8175

8276
caseOBJECT_FOREIGN_SERVER:
83-
RenameForeignServer(stmt->subname,stmt->newname);
84-
break;
77+
returnRenameForeignServer(stmt->subname,stmt->newname);
8578

8679
caseOBJECT_EVENT_TRIGGER:
87-
RenameEventTrigger(stmt->subname,stmt->newname);
88-
break;
80+
returnRenameEventTrigger(stmt->subname,stmt->newname);
8981

9082
caseOBJECT_FUNCTION:
91-
RenameFunction(stmt->object,stmt->objarg,stmt->newname);
92-
break;
83+
returnRenameFunction(stmt->object,stmt->objarg,stmt->newname);
9384

9485
caseOBJECT_LANGUAGE:
95-
RenameLanguage(stmt->subname,stmt->newname);
96-
break;
86+
returnRenameLanguage(stmt->subname,stmt->newname);
9787

9888
caseOBJECT_OPCLASS:
99-
RenameOpClass(stmt->object,stmt->subname,stmt->newname);
100-
break;
89+
returnRenameOpClass(stmt->object,stmt->subname,stmt->newname);
10190

10291
caseOBJECT_OPFAMILY:
103-
RenameOpFamily(stmt->object,stmt->subname,stmt->newname);
104-
break;
92+
returnRenameOpFamily(stmt->object,stmt->subname,stmt->newname);
10593

10694
caseOBJECT_ROLE:
107-
RenameRole(stmt->subname,stmt->newname);
108-
break;
95+
returnRenameRole(stmt->subname,stmt->newname);
10996

11097
caseOBJECT_SCHEMA:
111-
RenameSchema(stmt->subname,stmt->newname);
112-
break;
98+
returnRenameSchema(stmt->subname,stmt->newname);
11399

114100
caseOBJECT_TABLESPACE:
115-
RenameTableSpace(stmt->subname,stmt->newname);
116-
break;
101+
returnRenameTableSpace(stmt->subname,stmt->newname);
117102

118103
caseOBJECT_TABLE:
119104
caseOBJECT_SEQUENCE:
120105
caseOBJECT_VIEW:
121106
caseOBJECT_INDEX:
122107
caseOBJECT_FOREIGN_TABLE:
123-
RenameRelation(stmt);
124-
break;
108+
returnRenameRelation(stmt);
125109

126110
caseOBJECT_COLUMN:
127111
caseOBJECT_ATTRIBUTE:
128-
renameatt(stmt);
129-
break;
112+
returnrenameatt(stmt);
130113

131114
caseOBJECT_TRIGGER:
132-
renametrig(stmt);
133-
break;
115+
returnrenametrig(stmt);
134116

135117
caseOBJECT_TSPARSER:
136-
RenameTSParser(stmt->object,stmt->newname);
137-
break;
118+
returnRenameTSParser(stmt->object,stmt->newname);
138119

139120
caseOBJECT_TSDICTIONARY:
140-
RenameTSDictionary(stmt->object,stmt->newname);
141-
break;
121+
returnRenameTSDictionary(stmt->object,stmt->newname);
142122

143123
caseOBJECT_TSTEMPLATE:
144-
RenameTSTemplate(stmt->object,stmt->newname);
145-
break;
124+
returnRenameTSTemplate(stmt->object,stmt->newname);
146125

147126
caseOBJECT_TSCONFIGURATION:
148-
RenameTSConfiguration(stmt->object,stmt->newname);
149-
break;
127+
returnRenameTSConfiguration(stmt->object,stmt->newname);
150128

151129
caseOBJECT_DOMAIN:
152130
caseOBJECT_TYPE:
153-
RenameType(stmt);
154-
break;
131+
returnRenameType(stmt);
155132

156133
default:
157134
elog(ERROR,"unrecognized rename stmt type: %d",
158135
(int)stmt->renameType);
136+
returnInvalidOid;/* keep compiler happy */
159137
}
160138
}
161139

162140
/*
163141
* Executes an ALTER OBJECT / SET SCHEMA statement. Based on the object
164142
* type, the function appropriate to that type is executed.
165143
*/
166-
void
144+
Oid
167145
ExecAlterObjectSchemaStmt(AlterObjectSchemaStmt*stmt)
168146
{
169147
switch (stmt->objectType)
170148
{
171149
caseOBJECT_AGGREGATE:
172-
AlterFunctionNamespace(stmt->object,stmt->objarg, true,
173-
stmt->newschema);
174-
break;
150+
returnAlterFunctionNamespace(stmt->object,stmt->objarg, true,
151+
stmt->newschema);
175152

176153
caseOBJECT_COLLATION:
177-
AlterCollationNamespace(stmt->object,stmt->newschema);
178-
break;
154+
returnAlterCollationNamespace(stmt->object,stmt->newschema);
179155

180156
caseOBJECT_EXTENSION:
181-
AlterExtensionNamespace(stmt->object,stmt->newschema);
182-
break;
157+
returnAlterExtensionNamespace(stmt->object,stmt->newschema);
183158

184159
caseOBJECT_FUNCTION:
185-
AlterFunctionNamespace(stmt->object,stmt->objarg, false,
186-
stmt->newschema);
187-
break;
160+
returnAlterFunctionNamespace(stmt->object,stmt->objarg, false,
161+
stmt->newschema);
188162

189163
caseOBJECT_SEQUENCE:
190164
caseOBJECT_TABLE:
191165
caseOBJECT_VIEW:
192166
caseOBJECT_FOREIGN_TABLE:
193-
AlterTableNamespace(stmt);
194-
break;
167+
returnAlterTableNamespace(stmt);
195168

196169
caseOBJECT_TYPE:
197170
caseOBJECT_DOMAIN:
198-
AlterTypeNamespace(stmt->object,stmt->newschema,stmt->objectType);
199-
break;
171+
returnAlterTypeNamespace(stmt->object,stmt->newschema,
172+
stmt->objectType);
200173

201174
/* generic code path */
202175
caseOBJECT_CONVERSION:
@@ -228,12 +201,15 @@ ExecAlterObjectSchemaStmt(AlterObjectSchemaStmt *stmt)
228201
AlterObjectNamespace_internal(catalog,address.objectId,
229202
nspOid);
230203
heap_close(catalog,RowExclusiveLock);
204+
205+
returnaddress.objectId;
231206
}
232207
break;
233208

234209
default:
235210
elog(ERROR,"unrecognized AlterObjectSchemaStmt type: %d",
236211
(int)stmt->objectType);
212+
returnInvalidOid;/* keep compiler happy */
237213
}
238214
}
239215

@@ -435,38 +411,35 @@ AlterObjectNamespace_internal(Relation rel, Oid objid, Oid nspOid)
435411
* Executes an ALTER OBJECT / OWNER TO statement. Based on the object
436412
* type, the function appropriate to that type is executed.
437413
*/
438-
void
414+
Oid
439415
ExecAlterOwnerStmt(AlterOwnerStmt*stmt)
440416
{
441417
Oidnewowner=get_role_oid(stmt->newowner, false);
442418

443419
switch (stmt->objectType)
444420
{
445421
caseOBJECT_DATABASE:
446-
AlterDatabaseOwner(strVal(linitial(stmt->object)),newowner);
447-
break;
422+
returnAlterDatabaseOwner(strVal(linitial(stmt->object)),newowner);
448423

449424
caseOBJECT_SCHEMA:
450-
AlterSchemaOwner(strVal(linitial(stmt->object)),newowner);
451-
break;
425+
returnAlterSchemaOwner(strVal(linitial(stmt->object)),newowner);
452426

453427
caseOBJECT_TYPE:
454428
caseOBJECT_DOMAIN:/* same as TYPE */
455-
AlterTypeOwner(stmt->object,newowner,stmt->objectType);
429+
returnAlterTypeOwner(stmt->object,newowner,stmt->objectType);
456430
break;
457431

458432
caseOBJECT_FDW:
459-
AlterForeignDataWrapperOwner(strVal(linitial(stmt->object)),
460-
newowner);
461-
break;
433+
returnAlterForeignDataWrapperOwner(strVal(linitial(stmt->object)),
434+
newowner);
462435

463436
caseOBJECT_FOREIGN_SERVER:
464-
AlterForeignServerOwner(strVal(linitial(stmt->object)),newowner);
465-
break;
437+
returnAlterForeignServerOwner(strVal(linitial(stmt->object)),
438+
newowner);
466439

467440
caseOBJECT_EVENT_TRIGGER:
468-
AlterEventTriggerOwner(strVal(linitial(stmt->object)),newowner);
469-
break;
441+
returnAlterEventTriggerOwner(strVal(linitial(stmt->object)),
442+
newowner);
470443

471444
/* Generic cases */
472445
caseOBJECT_AGGREGATE:
@@ -508,12 +481,16 @@ ExecAlterOwnerStmt(AlterOwnerStmt *stmt)
508481

509482
AlterObjectOwner_internal(catalog,address.objectId,newowner);
510483
heap_close(catalog,RowExclusiveLock);
484+
485+
returnaddress.objectId;
511486
}
512487
break;
513488

514489
default:
515490
elog(ERROR,"unrecognized AlterOwnerStmt type: %d",
516491
(int)stmt->objectType);
492+
493+
returnInvalidOid;/* keep compiler happy */
517494
}
518495
}
519496

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp