This patch changes quite a few instances of references of Oid's

as ints and longs.  Touches on quite a few function args as
well.  Most other files look ok as far as Oids go...still checking
though...

Since Oids are type'd as unsigned ints, they should prolly be used
with the %ud format string in elog and sprintf messages.  Not sure
what kind of strangeness that could produce.

Darren King
This commit is contained in:
Bruce Momjian 1996-11-30 18:07:02 +00:00
parent f0a9e64afd
commit 63df35e249
11 changed files with 103 additions and 95 deletions

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.9 1996/11/13 20:47:53 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.10 1996/11/30 18:05:57 momjian Exp $
*
*
* INTERFACE ROUTINES
@ -288,7 +288,7 @@ BuildFuncTupleDesc(FuncIndexInfo *funcInfo)
0);
if (!HeapTupleIsValid(tuple))
func_error("BuildFuncTupleDesc", funcname, nargs, (int*)argtypes);
func_error("BuildFuncTupleDesc", funcname, nargs, argtypes);
retType = ((Form_pg_proc)GETSTRUCT(tuple))->prorettype;
@ -1097,7 +1097,7 @@ index_create(char *heapRelationName,
if (!HeapTupleIsValid(proc_tup)) {
func_error("index_create", FIgetname(funcInfo),
FIgetnArgs(funcInfo),
(int*) FIgetArglist(funcInfo));
FIgetArglist(funcInfo));
}
FIgetProcOid(funcInfo) = proc_tup->t_oid;
}

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.6 1996/11/08 00:44:33 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.7 1996/11/30 18:06:03 momjian Exp $
*
* NOTES
* these routines moved here from commands/define.c and somewhat cleaned up.
@ -530,7 +530,7 @@ OperatorDef(char *operatorName,
0);
if (!PointerIsValid(tup))
func_error("OperatorDef", procedureName, nargs, (int*)typeId);
func_error("OperatorDef", procedureName, nargs, typeId);
values[ Anum_pg_operator_oprcode-1 ] = ObjectIdGetDatum(tup->t_oid);
values[ Anum_pg_operator_oprresult-1 ] =
@ -554,7 +554,7 @@ OperatorDef(char *operatorName,
ObjectIdGetDatum(typeId),
0);
if (!HeapTupleIsValid(tup))
func_error("OperatorDef", restrictionName, 5, (int*)typeId);
func_error("OperatorDef", restrictionName, 5, typeId);
values[ Anum_pg_operator_oprrest-1 ] = ObjectIdGetDatum(tup->t_oid);
} else
@ -578,7 +578,7 @@ OperatorDef(char *operatorName,
Int32GetDatum(typeId),
0);
if (!HeapTupleIsValid(tup))
func_error("OperatorDef", joinName, 5, (int*)typeId);
func_error("OperatorDef", joinName, 5, typeId);
values[Anum_pg_operator_oprjoin-1] = ObjectIdGetDatum(tup->t_oid);
} else

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.4 1996/11/06 07:31:26 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.5 1996/11/30 18:06:06 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -417,7 +417,7 @@ TypeCreate(char *typeName,
0);
}
if (!HeapTupleIsValid(tup)) {
func_error("TypeCreate", procname, 1, (int*)argList);
func_error("TypeCreate", procname, 1, argList);
}
}

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/Attic/remove.c,v 1.6 1996/11/06 08:21:38 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/commands/Attic/remove.c,v 1.7 1996/11/30 18:06:10 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -350,7 +350,7 @@ RemoveFunction(char *functionName, /* function name to be removed */
Int32GetDatum(nargs),
PointerGetDatum(argList),0);
if (!HeapTupleIsValid(tup))
func_error("RemoveFunction", functionName, nargs, (int*)argList);
func_error("RemoveFunction", functionName, nargs, argList);
#ifndef NO_SECURITY
userName = GetPgUserName();
@ -387,7 +387,7 @@ RemoveFunction(char *functionName, /* function name to be removed */
{
heap_endscan(scan);
heap_close(relation);
func_error("RemoveFunction", functionName,nargs, (int*)argList);
func_error("RemoveFunction", functionName,nargs, argList);
}
/* ok, function has been found */

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.17 1996/11/29 15:56:16 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.18 1996/11/30 18:06:20 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -1233,7 +1233,8 @@ make_targetlist_expr(ParseState *pstate,
Node *expr,
List *arrayRef)
{
int type_id, type_len, attrtype, attrlen;
Oid type_id, attrtype;
int type_len, attrlen;
int resdomno;
Relation rd;
bool attrisset;
@ -1244,7 +1245,7 @@ make_targetlist_expr(ParseState *pstate,
elog(WARN, "make_targetlist_expr: invalid use of NULL expression");
type_id = exprType(expr);
if (!type_id) {
if (type_id == InvalidOid) {
type_len = 0;
} else
type_len = tlen(get_id_type(type_id));
@ -1297,7 +1298,7 @@ make_targetlist_expr(ParseState *pstate,
}
} else if((Typecast_ok) && (attrtype != type_id)){
lnext(expr) =
parser_typecast2(expr, get_id_type((long)attrtype));
parser_typecast2(expr, get_id_type(attrtype));
} else
if (attrtype != type_id) {
if ((attrtype == INT2OID) && (type_id == INT4OID))
@ -1322,12 +1323,12 @@ make_targetlist_expr(ParseState *pstate,
Oid typelem = get_typelem(attrtype);
expr = (Node*)parser_typecast2(expr,
type_id,
get_id_type((long)typelem),
get_id_type(typelem),
attrlen);
} else
expr = (Node*)parser_typecast2(expr,
type_id,
get_id_type((long)attrtype),
get_id_type(attrtype),
attrlen);
} else {
/* currently, we can't handle casting of expressions */
@ -1466,7 +1467,7 @@ any_ordering_op(int restype)
Oid order_opid;
order_op = oper("<",restype,restype);
order_opid = (Oid)oprid(order_op);
order_opid = oprid(order_op);
return order_opid;
}
@ -1660,7 +1661,7 @@ make_arguments(int nargs,
i<nargs;
i++, current_fargs = lnext(current_fargs)) {
if (input_typeids[i] == UNKNOWNOID && function_typeids[i] != 0) {
if (input_typeids[i] == UNKNOWNOID && function_typeids[i] != InvalidOid) {
lfirst(current_fargs) =
parser_typecast2(lfirst(current_fargs),
input_typeids[i],
@ -1877,7 +1878,8 @@ ParseComplexProjection(ParseState *pstate,
return NULL;
}
static bool is_lowercase(char *string)
static
bool is_lowercase(char *string)
{
int i;
@ -1890,7 +1892,8 @@ static bool is_lowercase(char *string)
return true;
}
static void make_lowercase(char *string)
static
void make_lowercase(char *string)
{
int i;
@ -1957,7 +1960,7 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs, int *curr_resno)
* it is a set, treat it like a function and drop through.
*/
if (get_attnum(relid, funcname) != InvalidAttrNumber) {
int dummyTypeId;
Oid dummyTypeId;
return
((Node*)make_var(pstate,
@ -2022,7 +2025,7 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs, int *curr_resno)
} else {
/* try one more time with lowercase --djm 8/17/96 */
if(!is_lowercase(funcname)) {
char *lowercase_funcname = strdup(funcname);
char *lowercase_funcname = pstrdup(funcname);
make_lowercase(lowercase_funcname);
if (strcmp(lowercase_funcname, "count") == 0)

View File

@ -6,7 +6,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/catalog_utils.c,v 1.11 1996/11/26 03:17:47 bryanh Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/catalog_utils.c,v 1.12 1996/11/30 18:06:31 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -270,8 +270,8 @@ oprid(Operator op)
*/
static int
binary_oper_get_candidates(char *opname,
int leftTypeId,
int rightTypeId,
Oid leftTypeId,
Oid rightTypeId,
CandidateList *candidates)
{
CandidateList current_candidate;
@ -363,7 +363,7 @@ equivalentOpersAfterPromotion(CandidateList candidates)
{
CandidateList result;
CandidateList promotedCandidates = NULL;
int leftarg, rightarg;
Oid leftarg, rightarg;
for (result = candidates; result != NULL; result = result->next) {
CandidateList c;
@ -419,8 +419,8 @@ equivalentOpersAfterPromotion(CandidateList candidates)
* try to choose a default pair
*/
static CandidateList
binary_oper_select_candidate(int arg1,
int arg2,
binary_oper_select_candidate(Oid arg1,
Oid arg2,
CandidateList candidates)
{
CandidateList result;
@ -473,7 +473,7 @@ binary_oper_select_candidate(int arg1,
/* Given operator, types of arg1, and arg2, return oper struct */
/* arg1, arg2 --typeids */
Operator
oper(char *op, int arg1, int arg2)
oper(char *op, Oid arg1, Oid arg2)
{
HeapTuple tup;
CandidateList candidates;
@ -542,7 +542,7 @@ oper(char *op, int arg1, int arg2)
*/
static int
unary_oper_get_candidates(char *op,
int typeId,
Oid typeId,
CandidateList *candidates,
char rightleft)
{
@ -606,7 +606,7 @@ unary_oper_get_candidates(char *op,
/* Given unary right-side operator (operator on right), return oper struct */
/* arg-- type id */
Operator
right_oper(char *op, int arg)
right_oper(char *op, Oid arg)
{
HeapTuple tup;
CandidateList candidates;
@ -649,7 +649,7 @@ right_oper(char *op, int arg)
/* Given unary left-side operator (operator on left), return oper struct */
/* arg--type id */
Operator
left_oper(char *op, int arg)
left_oper(char *op, Oid arg)
{
HeapTuple tup;
CandidateList candidates;
@ -1015,7 +1015,8 @@ func_select_candidate(int nargs,
return (NULL);
}
static bool is_lowercase(char *string)
static
bool is_lowercase(char *string)
{
int i;
@ -1028,7 +1029,8 @@ static bool is_lowercase(char *string)
return true;
}
static void make_lowercase(char *string)
static
void make_lowercase(char *string)
{
int i;
@ -1113,7 +1115,7 @@ func_get_detail(char *funcname,
funcname);
elog(NOTICE, "that satisfies the given argument types. you will have to");
elog(NOTICE, "retype your query using explicit typecasts.");
func_error("func_get_detail", funcname, nargs, (int*)oid_array);
func_error("func_get_detail", funcname, nargs, oid_array);
}
else {
ftup = SearchSysCacheTuple(PRONAME,
@ -1158,7 +1160,7 @@ func_get_detail(char *funcname,
elog(WARN, "no such attribute or function \"%s\"",
funcname);
}
func_error("func_get_detail", funcname, nargs, (int*)oid_array);
func_error("func_get_detail", funcname, nargs, oid_array);
}
} else {
pform = (Form_pg_proc) GETSTRUCT(ftup);
@ -1385,9 +1387,9 @@ genxprod(InhPaths *arginh, int nargs)
/* Given a type id, returns the in-conversion function of the type */
Oid
typeid_get_retinfunc(int type_id)
typeid_get_retinfunc(Oid type_id)
{
HeapTuple typeTuple;
HeapTuple typeTuple;
TypeTupleForm type;
Oid infunc;
typeTuple = SearchSysCacheTuple(TYPOID,
@ -1395,7 +1397,7 @@ typeid_get_retinfunc(int type_id)
0,0,0);
if ( !HeapTupleIsValid ( typeTuple ))
elog(WARN,
"typeid_get_retinfunc: Invalid type - oid = %d",
"typeid_get_retinfunc: Invalid type - oid = %ud",
type_id);
type = (TypeTupleForm) GETSTRUCT(typeTuple);
@ -1404,23 +1406,24 @@ typeid_get_retinfunc(int type_id)
}
Oid
typeid_get_relid(int type_id)
typeid_get_relid(Oid type_id)
{
HeapTuple typeTuple;
HeapTuple typeTuple;
TypeTupleForm type;
Oid infunc;
typeTuple = SearchSysCacheTuple(TYPOID,
ObjectIdGetDatum(type_id),
0,0,0);
if ( !HeapTupleIsValid ( typeTuple ))
elog(WARN, "typeid_get_relid: Invalid type - oid = %d ", type_id);
elog(WARN, "typeid_get_relid: Invalid type - oid = %ud ", type_id);
type = (TypeTupleForm) GETSTRUCT(typeTuple);
infunc = type->typrelid;
return(infunc);
}
Oid get_typrelid(Type typ)
Oid
get_typrelid(Type typ)
{
TypeTupleForm typtup;
@ -1432,13 +1435,13 @@ Oid get_typrelid(Type typ)
Oid
get_typelem(Oid type_id)
{
HeapTuple typeTuple;
HeapTuple typeTuple;
TypeTupleForm type;
if (!(typeTuple = SearchSysCacheTuple(TYPOID,
ObjectIdGetDatum(type_id),
0,0,0))) {
elog (WARN , "type id lookup of %d failed", type_id);
elog (WARN , "type id lookup of %ud failed", type_id);
}
type = (TypeTupleForm) GETSTRUCT(typeTuple);
@ -1448,8 +1451,8 @@ get_typelem(Oid type_id)
char
FindDelimiter(char *typename)
{
char delim;
HeapTuple typeTuple;
char delim;
HeapTuple typeTuple;
TypeTupleForm type;
@ -1469,7 +1472,7 @@ FindDelimiter(char *typename)
* is not found.
*/
void
op_error(char *op, int arg1, int arg2)
op_error(char *op, Oid arg1, Oid arg2)
{
Type tp1 = NULL, tp2 = NULL;
@ -1498,7 +1501,7 @@ op_error(char *op, int arg1, int arg2)
* argument types
*/
void
func_error(char *caller, char *funcname, int nargs, int *argtypes)
func_error(char *caller, char *funcname, int nargs, Oid *argtypes)
{
Type get_id_type();
char p[(NAMEDATALEN+2)*MAXFMGRARGS], *ptr;

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/parse_query.c,v 1.9 1996/11/19 05:06:39 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/parse_query.c,v 1.10 1996/11/30 18:06:34 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -175,7 +175,8 @@ expandAll(ParseState *pstate, char *relname, char *refname, int *this_resno)
List *te_tail = NIL, *te_head = NIL;
Var *varnode;
int varattno, maxattrs;
int type_id, type_len;
Oid type_id;
int type_len;
RangeTblEntry *rte;
rte = refnameRangeTableEntry(pstate->p_rtable, refname);
@ -208,7 +209,7 @@ expandAll(ParseState *pstate, char *relname, char *refname, int *this_resno)
* set itself is not. */
te->resdom = makeResdom((AttrNumber) (*this_resno)++,
(Oid)type_id,
type_id,
(Size)type_len,
attrname,
(Index)0,
@ -290,8 +291,8 @@ disallow_setop(char *op, Type optype, Node *operand)
static Node *
make_operand(char *opname,
Node *tree,
int orig_typeId,
int true_typeId)
Oid orig_typeId,
Oid true_typeId)
{
Node *result;
Type true_type;
@ -340,7 +341,7 @@ make_operand(char *opname,
Expr *
make_op(char *opname, Node *ltree, Node *rtree)
{
int ltypeId, rtypeId;
Oid ltypeId, rtypeId;
Operator temp;
OperatorTupleForm opform;
Oper *newop;
@ -398,10 +399,11 @@ make_op(char *opname, Node *ltree, Node *rtree)
return result;
}
int
Oid
find_atttype(Oid relid, char *attrname)
{
int attid, vartype;
int attid;
Oid vartype;
Relation rd;
rd = heap_open(relid);
@ -429,10 +431,11 @@ find_atttype(Oid relid, char *attrname)
Var *
make_var(ParseState *pstate, char *refname, char *attrname, int *type_id)
make_var(ParseState *pstate, char *refname, char *attrname, Oid *type_id)
{
Var *varnode;
int vnum, attid, vartypeid;
int vnum, attid;
Oid vartypeid;
Relation rd;
RangeTblEntry *rte;
@ -444,7 +447,7 @@ make_var(ParseState *pstate, char *refname, char *attrname, int *type_id)
rd = heap_open(rte->relid);
attid = nf_varattno(rd, (char *) attrname);
attid = nf_varattno(rd, attrname);
if (attid == InvalidAttrNumber)
elog(WARN, "Invalid attribute %s\n", attrname);
vartypeid = att_typeid(rd, attid);
@ -473,15 +476,15 @@ ArrayRef *
make_array_ref(Node *expr,
List *indirection)
{
Oid typearray;
HeapTuple type_tuple;
Oid typearray;
HeapTuple type_tuple;
TypeTupleForm type_struct_array, type_struct_element;
ArrayRef *aref;
int reftype;
ArrayRef *aref;
Oid reftype;
List *upperIndexpr=NIL;
List *lowerIndexpr=NIL;
typearray = (Oid) exprType(expr);
typearray = exprType(expr);
type_tuple = SearchSysCacheTuple(TYPOID,
ObjectIdGetDatum(typearray),
@ -548,12 +551,12 @@ make_array_set(Expr *target_expr,
List *lowerIndexpr,
Expr *expr)
{
Oid typearray;
HeapTuple type_tuple;
Oid typearray;
HeapTuple type_tuple;
TypeTupleForm type_struct_array;
TypeTupleForm type_struct_element;
ArrayRef *aref;
int reftype;
ArrayRef *aref;
Oid reftype;
typearray = exprType((Node*)target_expr);
@ -717,7 +720,8 @@ void
checkTargetTypes(ParseState *pstate, char *target_colname,
char *refname, char *colname)
{
int attrtype_id, attrtype_target, resdomno_id, resdomno_target;
Oid attrtype_id, attrtype_target;
int resdomno_id, resdomno_target;
Relation rd;
RangeTblEntry *rte;

View File

@ -6,7 +6,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/parser.c,v 1.13 1996/11/30 17:49:02 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/parser.c,v 1.14 1996/11/30 18:06:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -294,7 +294,7 @@ parser_typecast(Value *expr, TypeName *typename, int typlen)
}
Node *
parser_typecast2(Node *expr, int exprType, Type tp, int typlen)
parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen)
{
/* check for passing non-ints */
Const *adt;
@ -357,11 +357,11 @@ parser_typecast2(Node *expr, int exprType, Type tp, int typlen)
const_string = (char *) textout((struct varlena *)const_string);
break;
default:
elog(WARN,"unknown type%d ",exprType);
elog(WARN,"unknown type %ud ",exprType);
}
if (!exprType) {
adt = makeConst((Oid)typeid(tp),
adt = makeConst(typeid(tp),
(Size) 0,
(Datum) NULL,
true, /* isnull */
@ -398,14 +398,14 @@ parser_typecast2(Node *expr, int exprType, Type tp, int typlen)
}
}
adt = makeConst((Oid)typeid(tp),
adt = makeConst(typeid(tp),
(Size)len,
(Datum)lcp,
0,
0 /*was omitted*/,
0 /* not a set */);
/*
printf("adt %s : %d %d %d\n",CString(expr),typeid(tp) ,
printf("adt %s : %ud %d %d\n",CString(expr),typeid(tp) ,
len,cp);
*/
if (string_palloced) pfree(const_string);
@ -466,5 +466,3 @@ ParseAgg(char *aggname, Oid basetype, Node *target)
return aggreg;
}

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/tcop/Attic/aclchk.c,v 1.4 1996/11/08 05:59:23 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/tcop/Attic/aclchk.c,v 1.5 1996/11/30 18:06:45 momjian Exp $
*
* NOTES
* See acl.h.
@ -551,7 +551,7 @@ pg_func_ownercheck(char *usename,
PointerGetDatum(arglist),
0);
if (!HeapTupleIsValid(htp))
func_error("pg_func_ownercheck", funcname, nargs, (int*)arglist);
func_error("pg_func_ownercheck", funcname, nargs, arglist);
owner_id = ((Form_pg_proc) GETSTRUCT(htp))->proowner;

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: catalog_utils.h,v 1.4 1996/11/04 12:12:47 scrappy Exp $
* $Id: catalog_utils.h,v 1.5 1996/11/30 18:06:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -31,9 +31,9 @@ extern bool tbyval(Type t);
extern char *tname(Type t);
extern int tbyvalue(Type t);
extern Oid oprid(Operator op);
extern Operator oper(char *op, int arg1, int arg2);
extern Operator right_oper(char *op, int arg);
extern Operator left_oper(char *op, int arg);
extern Operator oper(char *op, Oid arg1, Oid arg2);
extern Operator right_oper(char *op, Oid arg);
extern Operator left_oper(char *op, Oid arg);
extern int varattno(Relation rd, char *a);
extern bool varisset(Relation rd, char *name);
extern int nf_varattno(Relation rd, char *a);
@ -45,12 +45,12 @@ extern Oid GetArrayElementType(Oid typearray);
extern Oid funcid_get_rettype(Oid funcid);
extern bool func_get_detail(char *funcname, int nargs, Oid *oid_array,
Oid *funcid, Oid *rettype, bool *retset, Oid **true_typeids);
extern Oid typeid_get_retinfunc(int type_id);
extern Oid typeid_get_relid(int type_id);
extern Oid typeid_get_retinfunc(Oid type_id);
extern Oid typeid_get_relid(Oid type_id);
extern Oid get_typrelid(Type typ);
extern Oid get_typelem(Oid type_id);
extern char FindDelimiter(char *typename);
extern void op_error(char *op, int arg1, int arg2);
extern void func_error(char *caller, char *funcname, int nargs, int *argtypes);
extern void op_error(char *op, Oid arg1, Oid arg2);
extern void func_error(char *caller, char *funcname, int nargs, Oid *argtypes);
#endif /* CATALOG_UTILS_H */

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: parse_query.h,v 1.6 1996/11/10 03:05:45 momjian Exp $
* $Id: parse_query.h,v 1.7 1996/11/30 18:07:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -35,9 +35,9 @@ extern TimeQual makeTimeRange(char *datestring1, char *datestring2,
int timecode);
extern Expr *make_op(char *opname, Node *ltree, Node *rtree);
extern int find_atttype(Oid relid, char *attrname);
extern Oid find_atttype(Oid relid, char *attrname);
extern Var *make_var(ParseState *pstate,
char *relname, char *attrname, int *type_id);
char *relname, char *attrname, Oid *type_id);
extern ArrayRef *make_array_ref(Node *array, List *indirection);
extern ArrayRef *make_array_set(Expr *target_expr, List *upperIndexpr,
List *lowerIndexpr, Expr *expr);
@ -49,7 +49,7 @@ extern Oid param_type(int t);
/* parser.c (was ylib.c) */
extern QueryTreeList *parser(char *str, Oid *typev, int nargs);
extern Node *parser_typecast(Value *expr, TypeName *typename, int typlen);
extern Node *parser_typecast2(Node *expr, int exprType, Type tp, int typlen);
extern Node *parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen);
extern Aggreg *ParseAgg(char *aggname, Oid basetype, Node *target);
extern void handleTargetColname(ParseState *pstate, char **resname,
char *refname, char *colname);
@ -74,6 +74,6 @@ extern Oid *param_type_info;
extern int pfunc_num_args;
/* useful macros */
#define ISCOMPLEX(type) (typeid_get_relid((Oid)type) ? true : false)
#define ISCOMPLEX(type) (typeid_get_relid(type) ? true : false)
#endif /* PARSE_QUERY_H */