mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
Use format_type sibling in backend error messages, so the user sees
consistent type naming.
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_agg.c,v 1.44 2001/01/24 19:43:01 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_agg.c,v 1.45 2001/08/09 18:28:17 petere Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "parser/parse_expr.h"
|
||||
#include "parser/parsetree.h"
|
||||
#include "parser/parse_type.h"
|
||||
#include "utils/builtins.h"
|
||||
#include "utils/lsyscache.h"
|
||||
#include "utils/syscache.h"
|
||||
|
||||
@@ -249,6 +250,6 @@ agg_error(char *caller, char *aggname, Oid basetypeID)
|
||||
elog(ERROR, "%s: aggregate '%s' for all types does not exist",
|
||||
caller, aggname);
|
||||
else
|
||||
elog(ERROR, "%s: aggregate '%s' for '%s' does not exist",
|
||||
caller, aggname, typeidTypeName(basetypeID));
|
||||
elog(ERROR, "%s: aggregate '%s' for type %s does not exist",
|
||||
caller, aggname, format_type_be(basetypeID));
|
||||
}
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.81 2001/06/19 22:39:11 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.82 2001/08/09 18:28:17 petere Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -29,6 +29,7 @@
|
||||
#include "parser/parse_relation.h"
|
||||
#include "parser/parse_target.h"
|
||||
#include "parser/parse_type.h"
|
||||
#include "utils/builtins.h"
|
||||
#include "utils/guc.h"
|
||||
|
||||
|
||||
@@ -292,8 +293,8 @@ transformJoinUsingClause(ParseState *pstate, List *leftVars, List *rightVars)
|
||||
* "=" operator that doesn't return bool is wrong anyway.
|
||||
*/
|
||||
if (exprType(result) != BOOLOID)
|
||||
elog(ERROR, "JOIN/USING clause must return type bool, not type %s",
|
||||
typeidTypeName(exprType(result)));
|
||||
elog(ERROR, "JOIN/USING clause must return type boolean, not type %s",
|
||||
format_type_be(exprType(result)));
|
||||
|
||||
return result;
|
||||
} /* transformJoinUsingClause() */
|
||||
@@ -328,8 +329,8 @@ transformJoinOnClause(ParseState *pstate, JoinExpr *j,
|
||||
result = transformExpr(pstate, j->quals, EXPR_COLUMN_FIRST);
|
||||
|
||||
if (! coerce_to_boolean(pstate, &result))
|
||||
elog(ERROR, "JOIN/ON clause must return type bool, not type %s",
|
||||
typeidTypeName(exprType(result)));
|
||||
elog(ERROR, "JOIN/ON clause must return type boolean, not type %s",
|
||||
format_type_be(exprType(result)));
|
||||
|
||||
pstate->p_namespace = save_namespace;
|
||||
|
||||
@@ -775,8 +776,8 @@ transformWhereClause(ParseState *pstate, Node *clause)
|
||||
qual = transformExpr(pstate, clause, EXPR_COLUMN_FIRST);
|
||||
|
||||
if (! coerce_to_boolean(pstate, &qual))
|
||||
elog(ERROR, "WHERE clause must return type bool, not type %s",
|
||||
typeidTypeName(exprType(qual)));
|
||||
elog(ERROR, "WHERE clause must return type boolean, not type %s",
|
||||
format_type_be(exprType(qual)));
|
||||
|
||||
return qual;
|
||||
}
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.98 2001/06/19 22:39:11 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.99 2001/08/09 18:28:17 petere Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -179,13 +179,13 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
|
||||
|
||||
if (! coerce_to_boolean(pstate, &lexpr))
|
||||
elog(ERROR, "left-hand side of AND is type '%s', not '%s'",
|
||||
typeidTypeName(exprType(lexpr)),
|
||||
typeidTypeName(BOOLOID));
|
||||
format_type_be(exprType(lexpr)),
|
||||
format_type_be(BOOLOID));
|
||||
|
||||
if (! coerce_to_boolean(pstate, &rexpr))
|
||||
elog(ERROR, "right-hand side of AND is type '%s', not '%s'",
|
||||
typeidTypeName(exprType(rexpr)),
|
||||
typeidTypeName(BOOLOID));
|
||||
format_type_be(exprType(rexpr)),
|
||||
format_type_be(BOOLOID));
|
||||
|
||||
expr->typeOid = BOOLOID;
|
||||
expr->opType = AND_EXPR;
|
||||
@@ -205,13 +205,13 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
|
||||
|
||||
if (! coerce_to_boolean(pstate, &lexpr))
|
||||
elog(ERROR, "left-hand side of OR is type '%s', not '%s'",
|
||||
typeidTypeName(exprType(lexpr)),
|
||||
typeidTypeName(BOOLOID));
|
||||
format_type_be(exprType(lexpr)),
|
||||
format_type_be(BOOLOID));
|
||||
|
||||
if (! coerce_to_boolean(pstate, &rexpr))
|
||||
elog(ERROR, "right-hand side of OR is type '%s', not '%s'",
|
||||
typeidTypeName(exprType(rexpr)),
|
||||
typeidTypeName(BOOLOID));
|
||||
format_type_be(exprType(rexpr)),
|
||||
format_type_be(BOOLOID));
|
||||
|
||||
expr->typeOid = BOOLOID;
|
||||
expr->opType = OR_EXPR;
|
||||
@@ -228,8 +228,8 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
|
||||
|
||||
if (! coerce_to_boolean(pstate, &rexpr))
|
||||
elog(ERROR, "argument to NOT is type '%s', not '%s'",
|
||||
typeidTypeName(exprType(rexpr)),
|
||||
typeidTypeName(BOOLOID));
|
||||
format_type_be(exprType(rexpr)),
|
||||
format_type_be(BOOLOID));
|
||||
|
||||
expr->typeOid = BOOLOID;
|
||||
expr->opType = NOT_EXPR;
|
||||
@@ -962,8 +962,8 @@ parser_typecast_expression(ParseState *pstate,
|
||||
targetType, typename->typmod);
|
||||
if (expr == NULL)
|
||||
elog(ERROR, "Cannot cast type '%s' to '%s'",
|
||||
typeidTypeName(inputType),
|
||||
typeidTypeName(targetType));
|
||||
format_type_be(inputType),
|
||||
format_type_be(targetType));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.109 2001/06/22 19:16:22 wieck Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.110 2001/08/09 18:28:18 petere Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -29,6 +29,7 @@
|
||||
#include "parser/parse_func.h"
|
||||
#include "parser/parse_relation.h"
|
||||
#include "parser/parse_type.h"
|
||||
#include "utils/builtins.h"
|
||||
#include "utils/fmgroids.h"
|
||||
#include "utils/lsyscache.h"
|
||||
#include "utils/syscache.h"
|
||||
@@ -288,7 +289,7 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
|
||||
{
|
||||
/* Multiple possible matches --- give up */
|
||||
elog(ERROR, "Unable to select an aggregate function %s(%s)",
|
||||
funcname, typeidTypeName(basetype));
|
||||
funcname, format_type_be(basetype));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -300,7 +301,7 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
|
||||
* function could not have been meant.
|
||||
*/
|
||||
elog(ERROR, "There is no aggregate function %s(%s)",
|
||||
funcname, typeidTypeName(basetype));
|
||||
funcname, format_type_be(basetype));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.54 2001/05/22 16:37:16 petere Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.55 2001/08/09 18:28:18 petere Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -373,8 +373,8 @@ transformArraySubscripts(ParseState *pstate,
|
||||
elog(ERROR, "Array assignment requires type '%s'"
|
||||
" but expression is of type '%s'"
|
||||
"\n\tYou will need to rewrite or cast the expression",
|
||||
typeidTypeName(typeneeded),
|
||||
typeidTypeName(typesource));
|
||||
format_type_be(typeneeded),
|
||||
format_type_be(typesource));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.49 2001/04/23 04:32:30 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.50 2001/08/09 18:28:18 petere Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "parser/parse_func.h"
|
||||
#include "parser/parse_oper.h"
|
||||
#include "parser/parse_type.h"
|
||||
#include "utils/builtins.h"
|
||||
#include "utils/fmgroids.h"
|
||||
#include "utils/syscache.h"
|
||||
|
||||
@@ -48,7 +49,7 @@ any_ordering_op(Oid argtype)
|
||||
if (!OidIsValid(order_opid))
|
||||
elog(ERROR, "Unable to identify an ordering operator '%s' for type '%s'"
|
||||
"\n\tUse an explicit ordering operator or modify the query",
|
||||
"<", typeidTypeName(argtype));
|
||||
"<", format_type_be(argtype));
|
||||
return order_opid;
|
||||
}
|
||||
|
||||
@@ -931,7 +932,7 @@ op_error(char *op, Oid arg1, Oid arg2)
|
||||
|
||||
elog(ERROR, "Unable to identify an operator '%s' for types '%s' and '%s'"
|
||||
"\n\tYou will have to retype this query using an explicit cast",
|
||||
op, typeidTypeName(arg1), typeidTypeName(arg2));
|
||||
op, format_type_be(arg1), format_type_be(arg2));
|
||||
}
|
||||
|
||||
/* unary_op_error()
|
||||
@@ -942,13 +943,25 @@ static void
|
||||
unary_op_error(char *op, Oid arg, bool is_left_op)
|
||||
{
|
||||
if (!typeidIsValid(arg))
|
||||
elog(ERROR, "Argument of %s operator '%s' has an unknown type"
|
||||
"\n\tProbably a bad attribute name",
|
||||
(is_left_op ? "left" : "right"),
|
||||
op);
|
||||
|
||||
elog(ERROR, "Unable to identify a %s operator '%s' for type '%s'"
|
||||
"\n\tYou may need to add parentheses or an explicit cast",
|
||||
(is_left_op ? "left" : "right"),
|
||||
op, typeidTypeName(arg));
|
||||
{
|
||||
if (is_left_op)
|
||||
elog(ERROR, "operand of prefix operator '%s' has an unknown type"
|
||||
"\n\t(probably an invalid column reference)",
|
||||
op);
|
||||
else
|
||||
elog(ERROR, "operand of postfix operator '%s' has an unknown type"
|
||||
"\n\t(probably an invalid column reference)",
|
||||
op);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (is_left_op)
|
||||
elog(ERROR, "Unable to identify a prefix operator '%s' for type '%s'"
|
||||
"\n\tYou may need to add parentheses or an explicit cast",
|
||||
op, format_type_be(arg));
|
||||
else
|
||||
elog(ERROR, "Unable to identify a postfix operator '%s' for type '%s'"
|
||||
"\n\tYou may need to add parentheses or an explicit cast",
|
||||
op, format_type_be(arg));
|
||||
}
|
||||
}
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.69 2001/06/24 02:41:21 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.70 2001/08/09 18:28:18 petere Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "parser/parse_relation.h"
|
||||
#include "parser/parse_target.h"
|
||||
#include "parser/parse_type.h"
|
||||
#include "utils/builtins.h"
|
||||
|
||||
|
||||
static List *ExpandAllTables(ParseState *pstate);
|
||||
@@ -265,12 +266,12 @@ updateTargetListEntry(ParseState *pstate,
|
||||
tle->expr = CoerceTargetExpr(pstate, tle->expr, type_id,
|
||||
attrtype, attrtypmod);
|
||||
if (tle->expr == NULL)
|
||||
elog(ERROR, "Attribute '%s' is of type '%s'"
|
||||
elog(ERROR, "column \"%s\" is of type '%s'"
|
||||
" but expression is of type '%s'"
|
||||
"\n\tYou will need to rewrite or cast the expression",
|
||||
colname,
|
||||
typeidTypeName(attrtype),
|
||||
typeidTypeName(type_id));
|
||||
format_type_be(attrtype),
|
||||
format_type_be(type_id));
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user