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

Commit79fafdf

Browse files
committed
Some early work on error message editing. Operator-not-found and
function-not-found messages now distinguish the cases no-match andambiguous-match, and they follow the style guidelines too.
1 parentcdb8a84 commit79fafdf

30 files changed

+389
-367
lines changed

‎src/backend/catalog/aclchk.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.82 2003/06/27 14:45:26 petere Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.83 2003/07/04 02:51:33 tgl Exp $
1212
*
1313
* NOTES
1414
* See acl.h.
@@ -397,8 +397,7 @@ ExecuteGrantStmt_Function(GrantStmt *stmt)
397397
charnulls[Natts_pg_proc];
398398
charreplaces[Natts_pg_proc];
399399

400-
oid=LookupFuncNameTypeNames(func->funcname,func->funcargs,
401-
stmt->is_grant ?"GRANT" :"REVOKE");
400+
oid=LookupFuncNameTypeNames(func->funcname,func->funcargs, false);
402401

403402
relation=heap_openr(ProcedureRelationName,RowExclusiveLock);
404403
tuple=SearchSysCache(PROCOID,

‎src/backend/catalog/pg_aggregate.c

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.59 2003/07/01 19:10:52 tgl Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.60 2003/07/04 02:51:33 tgl Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -109,8 +109,7 @@ AggregateCreate(const char *aggName,
109109
ObjectIdGetDatum(transfn),
110110
0,0,0);
111111
if (!HeapTupleIsValid(tup))
112-
func_error("AggregateCreate",aggtransfnName,
113-
nargs_transfn,fnArgs,NULL);
112+
elog(ERROR,"cache lookup of function %u failed",transfn);
114113
proc= (Form_pg_proc)GETSTRUCT(tup);
115114

116115
/*
@@ -264,10 +263,12 @@ lookup_agg_function(List *fnName,
264263
&true_oid_array);
265264

266265
/* only valid case is a normal function not returning a set */
267-
if (fdresult!=FUNCDETAIL_NORMAL||
268-
!OidIsValid(fnOid)||
269-
retset)
270-
func_error("AggregateCreate",fnName,nargs,input_types,NULL);
266+
if (fdresult!=FUNCDETAIL_NORMAL|| !OidIsValid(fnOid))
267+
elog(ERROR,"function %s does not exist",
268+
func_signature_string(fnName,nargs,input_types));
269+
if (retset)
270+
elog(ERROR,"function %s returns a set",
271+
func_signature_string(fnName,nargs,input_types));
271272

272273
/*
273274
* If the given type(s) are all polymorphic, there's nothing we
@@ -295,13 +296,15 @@ lookup_agg_function(List *fnName,
295296
if (true_oid_array[0]!=ANYARRAYOID&&
296297
true_oid_array[0]!=ANYELEMENTOID&&
297298
!IsBinaryCoercible(input_types[0],true_oid_array[0]))
298-
func_error("AggregateCreate",fnName,nargs,input_types,NULL);
299+
elog(ERROR,"function %s requires run-time type coercion",
300+
func_signature_string(fnName,nargs,true_oid_array));
299301

300302
if (nargs==2&&
301303
true_oid_array[1]!=ANYARRAYOID&&
302304
true_oid_array[1]!=ANYELEMENTOID&&
303305
!IsBinaryCoercible(input_types[1],true_oid_array[1]))
304-
func_error("AggregateCreate",fnName,nargs,input_types,NULL);
306+
elog(ERROR,"function %s requires run-time type coercion",
307+
func_signature_string(fnName,nargs,true_oid_array));
305308

306309
returnfnOid;
307310
}

‎src/backend/catalog/pg_operator.c

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.78 2003/01/28 22:13:25 tgl Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.79 2003/07/04 02:51:33 tgl Exp $
1212
*
1313
* NOTES
1414
* these routines moved here from commands/define.c and somewhat cleaned up.
@@ -175,7 +175,7 @@ OperatorLookup(List *operatorName,
175175
RegProcedureoprcode;
176176

177177
operatorObjectId=LookupOperName(operatorName,leftObjectId,
178-
rightObjectId);
178+
rightObjectId, true);
179179
if (!OidIsValid(operatorObjectId))
180180
{
181181
*defined= false;
@@ -453,9 +453,7 @@ OperatorCreate(const char *operatorName,
453453
typeId[1]=rightTypeId;
454454
nargs=2;
455455
}
456-
procOid=LookupFuncName(procedureName,nargs,typeId);
457-
if (!OidIsValid(procOid))
458-
func_error("OperatorDef",procedureName,nargs,typeId,NULL);
456+
procOid=LookupFuncName(procedureName,nargs,typeId, false);
459457
operResultType=get_func_rettype(procOid);
460458

461459
/*
@@ -469,9 +467,7 @@ OperatorCreate(const char *operatorName,
469467
typeId[2]=INTERNALOID;/* args list */
470468
typeId[3]=INT4OID;/* varRelid */
471469

472-
restOid=LookupFuncName(restrictionName,4,typeId);
473-
if (!OidIsValid(restOid))
474-
func_error("OperatorDef",restrictionName,4,typeId,NULL);
470+
restOid=LookupFuncName(restrictionName,4,typeId, false);
475471
}
476472
else
477473
restOid=InvalidOid;
@@ -487,9 +483,7 @@ OperatorCreate(const char *operatorName,
487483
typeId[2]=INTERNALOID;/* args list */
488484
typeId[3]=INT2OID;/* jointype */
489485

490-
joinOid=LookupFuncName(joinName,4,typeId);
491-
if (!OidIsValid(joinOid))
492-
func_error("OperatorDef",joinName,4,typeId,NULL);
486+
joinOid=LookupFuncName(joinName,4,typeId, false);
493487
}
494488
else
495489
joinOid=InvalidOid;

‎src/backend/commands/aggregatecmds.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*
1111
* IDENTIFICATION
12-
* $Header: /cvsroot/pgsql/src/backend/commands/aggregatecmds.c,v 1.9 2003/07/01 19:10:52 tgl Exp $
12+
* $Header: /cvsroot/pgsql/src/backend/commands/aggregatecmds.c,v 1.10 2003/07/04 02:51:33 tgl Exp $
1313
*
1414
* DESCRIPTION
1515
* The "DefineFoo" routines take the parse tree and pick out the
@@ -165,7 +165,7 @@ RemoveAggregate(RemoveAggrStmt *stmt)
165165
else
166166
basetypeID=ANYOID;
167167

168-
procOid=find_aggregate_func("RemoveAggregate",aggName,basetypeID);
168+
procOid=find_aggregate_func(aggName,basetypeID, false);
169169

170170
/*
171171
* Find the function tuple, do permissions and validity checks
@@ -223,7 +223,7 @@ RenameAggregate(List *name, TypeName *basetype, const char *newname)
223223

224224
rel=heap_openr(ProcedureRelationName,RowExclusiveLock);
225225

226-
procOid=find_aggregate_func("RenameAggregate",name,basetypeOid);
226+
procOid=find_aggregate_func(name,basetypeOid, false);
227227

228228
tup=SearchSysCacheCopy(PROCOID,
229229
ObjectIdGetDatum(procOid),

‎src/backend/commands/comment.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Copyright (c) 1996-2001, PostgreSQL Global Development Group
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/commands/comment.c,v 1.63 2003/06/27 14:45:27 petere Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/commands/comment.c,v 1.64 2003/07/04 02:51:33 tgl Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -629,7 +629,7 @@ CommentAggregate(List *aggregate, List *arguments, char *comment)
629629

630630
/* Now, attempt to find the actual tuple in pg_proc */
631631

632-
oid=find_aggregate_func("CommentAggregate",aggregate,baseoid);
632+
oid=find_aggregate_func(aggregate,baseoid, false);
633633

634634
/* Next, validate the user's attempt to comment */
635635

@@ -657,8 +657,7 @@ CommentProc(List *function, List *arguments, char *comment)
657657

658658
/* Look up the procedure */
659659

660-
oid=LookupFuncNameTypeNames(function,arguments,
661-
"CommentProc");
660+
oid=LookupFuncNameTypeNames(function,arguments, false);
662661

663662
/* Now, validate the user's ability to comment on this function */
664663

@@ -689,8 +688,7 @@ CommentOperator(List *opername, List *arguments, char *comment)
689688
Oidclassoid;
690689

691690
/* Look up the operator */
692-
oid=LookupOperNameTypeNames(opername,typenode1,typenode2,
693-
"CommentOperator");
691+
oid=LookupOperNameTypeNames(opername,typenode1,typenode2, false);
694692

695693
/* Valid user's ability to comment on this operator */
696694
if (!pg_oper_ownercheck(oid,GetUserId()))

‎src/backend/commands/conversioncmds.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/commands/conversioncmds.c,v 1.6 2003/06/27 14:45:27 petere Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/commands/conversioncmds.c,v 1.7 2003/07/04 02:51:33 tgl Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -70,10 +70,8 @@ CreateConversionCommand(CreateConversionStmt *stmt)
7070
* Check the existence of the conversion function. Function name could
7171
* be a qualified name.
7272
*/
73-
funcoid=LookupFuncName(func_name,sizeof(funcargs) /sizeof(Oid),funcargs);
74-
if (!OidIsValid(funcoid))
75-
func_error("CreateConversion",func_name,
76-
sizeof(funcargs) /sizeof(Oid),funcargs,NULL);
73+
funcoid=LookupFuncName(func_name,sizeof(funcargs) /sizeof(Oid),
74+
funcargs, false);
7775

7876
/* Check we have EXECUTE rights for the function */
7977
aclresult=pg_proc_aclcheck(funcoid,GetUserId(),ACL_EXECUTE);

‎src/backend/commands/functioncmds.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*
1111
* IDENTIFICATION
12-
* $Header: /cvsroot/pgsql/src/backend/commands/functioncmds.c,v 1.26 2003/06/27 14:45:27 petere Exp $
12+
* $Header: /cvsroot/pgsql/src/backend/commands/functioncmds.c,v 1.27 2003/07/04 02:51:33 tgl Exp $
1313
*
1414
* DESCRIPTION
1515
* These routines take the parse tree and pick out the
@@ -495,8 +495,7 @@ RemoveFunction(RemoveFuncStmt *stmt)
495495
/*
496496
* Find the function, do permissions and validity checks
497497
*/
498-
funcOid=LookupFuncNameTypeNames(functionName,argTypes,
499-
"RemoveFunction");
498+
funcOid=LookupFuncNameTypeNames(functionName,argTypes, false);
500499

501500
tup=SearchSysCache(PROCOID,
502501
ObjectIdGetDatum(funcOid),
@@ -607,7 +606,7 @@ RenameFunction(List *name, List *argtypes, const char *newname)
607606

608607
rel=heap_openr(ProcedureRelationName,RowExclusiveLock);
609608

610-
procOid=LookupFuncNameTypeNames(name,argtypes,"RenameFunction");
609+
procOid=LookupFuncNameTypeNames(name,argtypes,false);
611610

612611
tup=SearchSysCacheCopy(PROCOID,
613612
ObjectIdGetDatum(procOid),
@@ -796,7 +795,7 @@ CreateCast(CreateCastStmt *stmt)
796795

797796
funcid=LookupFuncNameTypeNames(stmt->func->funcname,
798797
stmt->func->funcargs,
799-
"CreateCast");
798+
false);
800799

801800
tuple=SearchSysCache(PROCOID,
802801
ObjectIdGetDatum(funcid),

‎src/backend/commands/opclasscmds.c

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*
1111
* IDENTIFICATION
12-
* $Header: /cvsroot/pgsql/src/backend/commands/opclasscmds.c,v 1.10 2003/06/27 14:45:27 petere Exp $
12+
* $Header: /cvsroot/pgsql/src/backend/commands/opclasscmds.c,v 1.11 2003/07/04 02:51:33 tgl Exp $
1313
*
1414
*-------------------------------------------------------------------------
1515
*/
@@ -155,19 +155,15 @@ DefineOpClass(CreateOpClassStmt *stmt)
155155
TypeName*typeName2= (TypeName*)lsecond(item->args);
156156

157157
operOid=LookupOperNameTypeNames(item->name,
158-
typeName1,typeName2,
159-
"DefineOpClass");
160-
/* No need to check for error */
158+
typeName1,
159+
typeName2,
160+
false);
161161
}
162162
else
163163
{
164164
/* Default to binary op on input datatype */
165-
operOid=LookupOperName(item->name,typeoid,typeoid);
166-
if (!OidIsValid(operOid))
167-
elog(ERROR,"DefineOpClass: Operator '%s' for types '%s' and '%s' does not exist",
168-
NameListToString(item->name),
169-
format_type_be(typeoid),
170-
format_type_be(typeoid));
165+
operOid=LookupOperName(item->name,typeoid,typeoid,
166+
false);
171167
}
172168
/* Caller must have execute permission on operators */
173169
funcOid=get_opcode(operOid);
@@ -187,7 +183,7 @@ DefineOpClass(CreateOpClassStmt *stmt)
187183
elog(ERROR,"DefineOpClass: procedure number %d appears more than once",
188184
item->number);
189185
funcOid=LookupFuncNameTypeNames(item->name,item->args,
190-
"DefineOpClass");
186+
false);
191187
/* Caller must have execute permission on functions */
192188
aclresult=pg_proc_aclcheck(funcOid,GetUserId(),
193189
ACL_EXECUTE);

‎src/backend/commands/operatorcmds.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*
1111
* IDENTIFICATION
12-
* $Header: /cvsroot/pgsql/src/backend/commands/operatorcmds.c,v 1.7 2002/09/0420:31:15 momjian Exp $
12+
* $Header: /cvsroot/pgsql/src/backend/commands/operatorcmds.c,v 1.8 2003/07/0402:51:33 tgl Exp $
1313
*
1414
* DESCRIPTION
1515
* The "DefineFoo" routines take the parse tree and pick out the
@@ -206,14 +206,13 @@ RemoveOperator(RemoveOperStmt *stmt)
206206
ObjectAddressobject;
207207

208208
operOid=LookupOperNameTypeNames(operatorName,typeName1,typeName2,
209-
"RemoveOperator");
209+
false);
210210

211211
tup=SearchSysCache(OPEROID,
212212
ObjectIdGetDatum(operOid),
213213
0,0,0);
214214
if (!HeapTupleIsValid(tup))/* should not happen */
215-
elog(ERROR,"RemoveOperator: failed to find tuple for operator '%s'",
216-
NameListToString(operatorName));
215+
elog(ERROR,"cache lookup of operator %u failed",operOid);
217216

218217
/* Permission check: must own operator or its namespace */
219218
if (!pg_oper_ownercheck(operOid,GetUserId())&&

‎src/backend/commands/proclang.c

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Portions Copyright (c) 1994, Regents of the University of California
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/commands/proclang.c,v 1.44 2003/06/27 14:45:27 petere Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/commands/proclang.c,v 1.45 2003/07/04 02:51:33 tgl Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -77,10 +77,7 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
7777
* return type
7878
*/
7979
MemSet(typev,0,sizeof(typev));
80-
procOid=LookupFuncName(stmt->plhandler,0,typev);
81-
if (!OidIsValid(procOid))
82-
elog(ERROR,"function %s() doesn't exist",
83-
NameListToString(stmt->plhandler));
80+
procOid=LookupFuncName(stmt->plhandler,0,typev, false);
8481
funcrettype=get_func_rettype(procOid);
8582
if (funcrettype!=LANGUAGE_HANDLEROID)
8683
{
@@ -104,10 +101,7 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
104101
if (stmt->plvalidator)
105102
{
106103
typev[0]=OIDOID;
107-
valProcOid=LookupFuncName(stmt->plvalidator,1,typev);
108-
if (!OidIsValid(valProcOid))
109-
elog(ERROR,"function %s(oid) doesn't exist",
110-
NameListToString(stmt->plvalidator));
104+
valProcOid=LookupFuncName(stmt->plvalidator,1,typev, false);
111105
/* return value is ignored, so we don't check the type */
112106
}
113107
else

‎src/backend/commands/trigger.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Portions Copyright (c) 1994, Regents of the University of California
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.149 2003/06/24 23:25:44 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.150 2003/07/04 02:51:33 tgl Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -257,10 +257,7 @@ CreateTrigger(CreateTrigStmt *stmt, bool forConstraint)
257257
* Find and validate the trigger function.
258258
*/
259259
MemSet(fargtypes,0,FUNC_MAX_ARGS*sizeof(Oid));
260-
funcoid=LookupFuncName(stmt->funcname,0,fargtypes);
261-
if (!OidIsValid(funcoid))
262-
elog(ERROR,"CreateTrigger: function %s() does not exist",
263-
NameListToString(stmt->funcname));
260+
funcoid=LookupFuncName(stmt->funcname,0,fargtypes, false);
264261
funcrettype=get_func_rettype(funcoid);
265262
if (funcrettype!=TRIGGEROID)
266263
{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp