Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit c504513

Browse files
committed
Adjust many backend functions to return OID rather than void.
Extracted from a larger patch by Dimitri Fontaine. It is hoped that this will provide infrastructure for enriching the new event trigger functionality, but it seems possibly useful for other purposes as well.
1 parent 31bc839 commit c504513

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(const char *aggName,
4747
Oid aggNamespace,
4848
Oid *aggArgTypes,
@@ -316,6 +316,8 @@ AggregateCreate(const char *aggName,
316316
referenced.objectSubId = 0;
317317
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
318318
}
319+
320+
return procOid;
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(const char *operatorName,
331331
Oid operatorNamespace,
332332
Oid leftTypeId,
@@ -565,6 +565,8 @@ OperatorCreate(const char *operatorName,
565565

566566
if (OidIsValid(commutatorId) || OidIsValid(negatorId))
567567
OperatorUpd(operatorObjectId, commutatorId, negatorId);
568+
569+
return operatorObjectId;
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, bool oldstyle, 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+
return 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 */
228228
}
229229

230230

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

287287
heap_close(rel, NoLock);
288288
heap_freetuple(tup);
289+
290+
return procOid;
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
case OBJECT_AGGREGATE:
59-
RenameAggregate(stmt->object, stmt->objarg, stmt->newname);
60-
break;
59+
return RenameAggregate(stmt->object, stmt->objarg, stmt->newname);
6160

6261
case OBJECT_COLLATION:
63-
RenameCollation(stmt->object, stmt->newname);
64-
break;
62+
return RenameCollation(stmt->object, stmt->newname);
6563

6664
case OBJECT_CONSTRAINT:
67-
RenameConstraint(stmt);
68-
break;
65+
return RenameConstraint(stmt);
6966

7067
case OBJECT_CONVERSION:
71-
RenameConversion(stmt->object, stmt->newname);
72-
break;
68+
return RenameConversion(stmt->object, stmt->newname);
7369

7470
case OBJECT_DATABASE:
75-
RenameDatabase(stmt->subname, stmt->newname);
76-
break;
71+
return RenameDatabase(stmt->subname, stmt->newname);
7772

7873
case OBJECT_FDW:
79-
RenameForeignDataWrapper(stmt->subname, stmt->newname);
80-
break;
74+
return RenameForeignDataWrapper(stmt->subname, stmt->newname);
8175

8276
case OBJECT_FOREIGN_SERVER:
83-
RenameForeignServer(stmt->subname, stmt->newname);
84-
break;
77+
return RenameForeignServer(stmt->subname, stmt->newname);
8578

8679
case OBJECT_EVENT_TRIGGER:
87-
RenameEventTrigger(stmt->subname, stmt->newname);
88-
break;
80+
return RenameEventTrigger(stmt->subname, stmt->newname);
8981

9082
case OBJECT_FUNCTION:
91-
RenameFunction(stmt->object, stmt->objarg, stmt->newname);
92-
break;
83+
return RenameFunction(stmt->object, stmt->objarg, stmt->newname);
9384

9485
case OBJECT_LANGUAGE:
95-
RenameLanguage(stmt->subname, stmt->newname);
96-
break;
86+
return RenameLanguage(stmt->subname, stmt->newname);
9787

9888
case OBJECT_OPCLASS:
99-
RenameOpClass(stmt->object, stmt->subname, stmt->newname);
100-
break;
89+
return RenameOpClass(stmt->object, stmt->subname, stmt->newname);
10190

10291
case OBJECT_OPFAMILY:
103-
RenameOpFamily(stmt->object, stmt->subname, stmt->newname);
104-
break;
92+
return RenameOpFamily(stmt->object, stmt->subname, stmt->newname);
10593

10694
case OBJECT_ROLE:
107-
RenameRole(stmt->subname, stmt->newname);
108-
break;
95+
return RenameRole(stmt->subname, stmt->newname);
10996

11097
case OBJECT_SCHEMA:
111-
RenameSchema(stmt->subname, stmt->newname);
112-
break;
98+
return RenameSchema(stmt->subname, stmt->newname);
11399

114100
case OBJECT_TABLESPACE:
115-
RenameTableSpace(stmt->subname, stmt->newname);
116-
break;
101+
return RenameTableSpace(stmt->subname, stmt->newname);
117102

118103
case OBJECT_TABLE:
119104
case OBJECT_SEQUENCE:
120105
case OBJECT_VIEW:
121106
case OBJECT_INDEX:
122107
case OBJECT_FOREIGN_TABLE:
123-
RenameRelation(stmt);
124-
break;
108+
return RenameRelation(stmt);
125109

126110
case OBJECT_COLUMN:
127111
case OBJECT_ATTRIBUTE:
128-
renameatt(stmt);
129-
break;
112+
return renameatt(stmt);
130113

131114
case OBJECT_TRIGGER:
132-
renametrig(stmt);
133-
break;
115+
return renametrig(stmt);
134116

135117
case OBJECT_TSPARSER:
136-
RenameTSParser(stmt->object, stmt->newname);
137-
break;
118+
return RenameTSParser(stmt->object, stmt->newname);
138119

139120
case OBJECT_TSDICTIONARY:
140-
RenameTSDictionary(stmt->object, stmt->newname);
141-
break;
121+
return RenameTSDictionary(stmt->object, stmt->newname);
142122

143123
case OBJECT_TSTEMPLATE:
144-
RenameTSTemplate(stmt->object, stmt->newname);
145-
break;
124+
return RenameTSTemplate(stmt->object, stmt->newname);
146125

147126
case OBJECT_TSCONFIGURATION:
148-
RenameTSConfiguration(stmt->object, stmt->newname);
149-
break;
127+
return RenameTSConfiguration(stmt->object, stmt->newname);
150128

151129
case OBJECT_DOMAIN:
152130
case OBJECT_TYPE:
153-
RenameType(stmt);
154-
break;
131+
return RenameType(stmt);
155132

156133
default:
157134
elog(ERROR, "unrecognized rename stmt type: %d",
158135
(int) stmt->renameType);
136+
return InvalidOid; /* 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
case OBJECT_AGGREGATE:
172-
AlterFunctionNamespace(stmt->object, stmt->objarg, true,
173-
stmt->newschema);
174-
break;
150+
return AlterFunctionNamespace(stmt->object, stmt->objarg, true,
151+
stmt->newschema);
175152

176153
case OBJECT_COLLATION:
177-
AlterCollationNamespace(stmt->object, stmt->newschema);
178-
break;
154+
return AlterCollationNamespace(stmt->object, stmt->newschema);
179155

180156
case OBJECT_EXTENSION:
181-
AlterExtensionNamespace(stmt->object, stmt->newschema);
182-
break;
157+
return AlterExtensionNamespace(stmt->object, stmt->newschema);
183158

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

189163
case OBJECT_SEQUENCE:
190164
case OBJECT_TABLE:
191165
case OBJECT_VIEW:
192166
case OBJECT_FOREIGN_TABLE:
193-
AlterTableNamespace(stmt);
194-
break;
167+
return AlterTableNamespace(stmt);
195168

196169
case OBJECT_TYPE:
197170
case OBJECT_DOMAIN:
198-
AlterTypeNamespace(stmt->object, stmt->newschema, stmt->objectType);
199-
break;
171+
return AlterTypeNamespace(stmt->object, stmt->newschema,
172+
stmt->objectType);
200173

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

234209
default:
235210
elog(ERROR, "unrecognized AlterObjectSchemaStmt type: %d",
236211
(int) stmt->objectType);
212+
return InvalidOid; /* 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
Oid newowner = get_role_oid(stmt->newowner, false);
442418

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

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

453427
case OBJECT_TYPE:
454428
case OBJECT_DOMAIN: /* same as TYPE */
455-
AlterTypeOwner(stmt->object, newowner, stmt->objectType);
429+
return AlterTypeOwner(stmt->object, newowner, stmt->objectType);
456430
break;
457431

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

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

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

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

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

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

0 commit comments

Comments
 (0)