diff --git a/src/backend/parser/parse_agg.c b/src/backend/parser/parse_agg.c index 33e7f677a9..e552d0aa8c 100644 --- a/src/backend/parser/parse_agg.c +++ b/src/backend/parser/parse_agg.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_agg.c,v 1.2 1997/11/26 01:11:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_agg.c,v 1.3 1997/11/26 03:42:37 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -27,6 +27,10 @@ #include "parser/parse_target.h" #include "utils/syscache.h" +static bool contain_agg_clause(Node *clause); +static bool exprIsAggOrGroupCol(Node *expr, List *groupClause); +static bool tleIsAggOrGroupCol(TargetEntry *tle, List *groupClause); + /* * AddAggToParseState - * add the aggregate to the list of unique aggregates in pstate. @@ -93,7 +97,7 @@ finalizeAggregates(ParseState *pstate, Query *qry) * * Returns true if any aggregate found. */ -bool +static bool contain_agg_clause(Node *clause) { if (clause == NULL) @@ -151,7 +155,7 @@ contain_agg_clause(Node *clause) * exprIsAggOrGroupCol - * returns true if the expression does not contain non-group columns. */ -bool +static bool exprIsAggOrGroupCol(Node *expr, List *groupClause) { List *gl; @@ -185,7 +189,7 @@ exprIsAggOrGroupCol(Node *expr, List *groupClause) * tleIsAggOrGroupCol - * returns true if the TargetEntry is Agg or GroupCol. */ -bool +static bool tleIsAggOrGroupCol(TargetEntry *tle, List *groupClause) { Node *expr = tle->expr; diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c index 3f419716d8..ad40222ba6 100644 --- a/src/backend/parser/parse_clause.c +++ b/src/backend/parser/parse_clause.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.2 1997/11/26 01:11:16 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.3 1997/11/26 03:42:39 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -25,6 +25,62 @@ #include "parser/parse_relation.h" #include "parser/parse_target.h" +static TargetEntry *find_targetlist_entry(ParseState *pstate, + SortGroupBy *sortgroupby, List *tlist); +static void parseFromClause(ParseState *pstate, List *frmList); + +/* + * makeRangeTable - + * make a range table with the specified relation (optional) and the + * from-clause. + */ +void +makeRangeTable(ParseState *pstate, char *relname, List *frmList) +{ + RangeTblEntry *rte; + + parseFromClause(pstate, frmList); + + if (relname == NULL) + return; + + if (refnameRangeTablePosn(pstate->p_rtable, relname) < 1) + rte = addRangeTableEntry(pstate, relname, relname, FALSE, FALSE); + else + rte = refnameRangeTableEntry(pstate->p_rtable, relname); + + pstate->p_target_rangetblentry = rte; + Assert(pstate->p_target_relation == NULL); + pstate->p_target_relation = heap_open(rte->relid); + Assert(pstate->p_target_relation != NULL); + /* will close relation later */ +} + +/* + * transformWhereClause - + * transforms the qualification and make sure it is of type Boolean + * + */ +Node * +transformWhereClause(ParseState *pstate, Node *a_expr) +{ + Node *qual; + + if (a_expr == NULL) + return (Node *) NULL; /* no qualifiers */ + + pstate->p_in_where_clause = true; + qual = transformExpr(pstate, a_expr, EXPR_COLUMN_FIRST); + pstate->p_in_where_clause = false; + if (exprType(qual) != BOOLOID) + { + elog(WARN, + "where clause must return type bool, not %s", + typeidTypeName(exprType(qual))); + } + return qual; +} + /* * parseFromClause - * turns the table references specified in the from-clause into a @@ -34,7 +90,7 @@ * also allow that in our POST-SQL) * */ -void +static void parseFromClause(ParseState *pstate, List *frmList) { List *fl; @@ -65,77 +121,13 @@ parseFromClause(ParseState *pstate, List *frmList) } } -/* - * makeRangeTable - - * make a range table with the specified relation (optional) and the - * from-clause. - */ -void -makeRangeTable(ParseState *pstate, char *relname, List *frmList) -{ - RangeTblEntry *rte; - - parseFromClause(pstate, frmList); - - if (relname == NULL) - return; - - if (refnameRangeTablePosn(pstate->p_rtable, relname) < 1) - rte = addRangeTableEntry(pstate, relname, relname, FALSE, FALSE); - else - rte = refnameRangeTableEntry(pstate->p_rtable, relname); - - pstate->p_target_rangetblentry = rte; - Assert(pstate->p_target_relation == NULL); - pstate->p_target_relation = heap_open(rte->relid); - Assert(pstate->p_target_relation != NULL); - /* will close relation later */ -} - -/***************************************************************************** - * - * Where Clause - * - *****************************************************************************/ - -/* - * transformWhereClause - - * transforms the qualification and make sure it is of type Boolean - * - */ -Node * -transformWhereClause(ParseState *pstate, Node *a_expr) -{ - Node *qual; - - if (a_expr == NULL) - return (Node *) NULL; /* no qualifiers */ - - pstate->p_in_where_clause = true; - qual = transformExpr(pstate, a_expr, EXPR_COLUMN_FIRST); - pstate->p_in_where_clause = false; - if (exprType(qual) != BOOLOID) - { - elog(WARN, - "where clause must return type bool, not %s", - typeidTypeName(exprType(qual))); - } - return qual; -} - -/***************************************************************************** - * - * Sort Clause - * - *****************************************************************************/ - /* * find_targetlist_entry - * returns the Resdom in the target list matching the specified varname * and range * */ -TargetEntry * +static TargetEntry * find_targetlist_entry(ParseState *pstate, SortGroupBy *sortgroupby, List *tlist) { List *i; diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c index 5828fbb974..0b0f9b5d10 100644 --- a/src/backend/parser/parse_expr.c +++ b/src/backend/parser/parse_expr.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.2 1997/11/26 01:11:17 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.3 1997/11/26 03:42:41 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -22,6 +22,7 @@ #include "nodes/params.h" #include "nodes/relation.h" #include "parse.h" +#include "parser/gramparse.h" #include "parser/parse_expr.h" #include "parser/parse_func.h" #include "parser/parse_node.h" @@ -29,7 +30,7 @@ #include "parser/parse_target.h" #include "utils/builtins.h" -Oid param_type(int t); /* from gram.y */ +static Node *parser_typecast(Value *expr, TypeName *typename, int typlen); /* * transformExpr - @@ -397,7 +398,7 @@ handleNestedDots(ParseState *pstate, Attr *attr, int *curr_resno) return (retval); } -Node * +static Node * parser_typecast(Value *expr, TypeName *typename, int typlen) { /* check for passing non-ints */ diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c index 1583dc56f0..4d1017b54a 100644 --- a/src/backend/parser/parse_func.c +++ b/src/backend/parser/parse_func.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.2 1997/11/26 01:11:21 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.3 1997/11/26 03:42:42 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -42,6 +42,37 @@ #include "utils/lsyscache.h" #include "utils/syscache.h" +static Node *ParseComplexProjection(ParseState *pstate, + char *funcname, + Node *first_arg, + bool *attisset); +static Oid ** argtype_inherit(int nargs, Oid *oid_array); +static bool can_coerce(int nargs, Oid *input_typeids, Oid *func_typeids); +static int find_inheritors(Oid relid, Oid **supervec); +static CandidateList func_get_candidates(char *funcname, int nargs); +static bool func_get_detail(char *funcname, + int nargs, + Oid *oid_array, + Oid *funcid, /* return value */ + Oid *rettype, /* return value */ + bool *retset, /* return value */ + Oid **true_typeids); +static Oid * func_select_candidate(int nargs, + Oid *input_typeids, + CandidateList candidates); +static Oid funcid_get_rettype(Oid funcid); +static Oid **gen_cross_product(InhPaths *arginh, int nargs); +static void make_arguments(int nargs, + List *fargs, + Oid *input_typeids, + Oid *function_typeids); +static int match_argtypes(int nargs, + Oid *input_typeids, + CandidateList function_typeids, + CandidateList *candidates); +static List *setup_tlist(char *attname, Oid relid); +static List *setup_base_tlist(Oid typeid); + #define ISCOMPLEX(type) (typeidTypeRelid(type) ? true : false) #define MAXFARGS 8 /* max # args to a c or postquel function */ @@ -400,7 +431,7 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs, int *curr_resno) return (retval); } -Oid +static Oid funcid_get_rettype(Oid funcid) { HeapTuple func_tuple = NULL; @@ -422,7 +453,7 @@ funcid_get_rettype(Oid funcid) * get a list of all argument type vectors for which a function named * funcname taking nargs arguments exists */ -CandidateList +static CandidateList func_get_candidates(char *funcname, int nargs) { Relation heapRelation; @@ -500,7 +531,7 @@ func_get_candidates(char *funcname, int nargs) /* * can input_typeids be coerced to func_typeids? */ -bool +static bool can_coerce(int nargs, Oid *input_typeids, Oid *func_typeids) { int i; @@ -539,7 +570,7 @@ can_coerce(int nargs, Oid *input_typeids, Oid *func_typeids) * that match the input typeids (either exactly or by coercion), and * return the number of such arrays */ -int +static int match_argtypes(int nargs, Oid *input_typeids, CandidateList function_typeids, @@ -577,7 +608,7 @@ match_argtypes(int nargs, * returns the selected argtype array if the conflict can be resolved, * otherwise returns NULL */ -Oid * +static Oid * func_select_candidate(int nargs, Oid *input_typeids, CandidateList candidates) @@ -586,7 +617,7 @@ func_select_candidate(int nargs, return (NULL); } -bool +static bool func_get_detail(char *funcname, int nargs, Oid *oid_array, @@ -731,7 +762,7 @@ func_get_detail(char *funcname, * not defined. There are lots of these (mostly builtins) in the * catalogs. */ -Oid ** +static Oid ** argtype_inherit(int nargs, Oid *oid_array) { Oid relid; @@ -745,7 +776,7 @@ argtype_inherit(int nargs, Oid *oid_array) arginh[i].self = oid_array[i]; if ((relid = typeidTypeRelid(oid_array[i])) != InvalidOid) { - arginh[i].nsupers = findsupers(relid, &(arginh[i].supervec)); + arginh[i].nsupers = find_inheritors(relid, &(arginh[i].supervec)); } else { @@ -762,10 +793,10 @@ argtype_inherit(int nargs, Oid *oid_array) } /* return an ordered cross-product of the classes involved */ - return (genxprod(arginh, nargs)); + return (gen_cross_product(arginh, nargs)); } -int findsupers(Oid relid, Oid **supervec) +static int find_inheritors(Oid relid, Oid **supervec) { Oid *relidvec; Relation inhrel; @@ -885,8 +916,8 @@ int findsupers(Oid relid, Oid **supervec) return (nvisited); } -Oid ** -genxprod(InhPaths *arginh, int nargs) +static Oid ** +gen_cross_product(InhPaths *arginh, int nargs) { int nanswers; Oid **result, @@ -946,7 +977,7 @@ genxprod(InhPaths *arginh, int nargs) ** Given the number and types of arguments to a function, and the ** actual arguments and argument types, do the necessary typecasting. */ -void +static void make_arguments(int nargs, List *fargs, Oid *input_typeids, @@ -987,7 +1018,7 @@ make_arguments(int nargs, ** on a tuple parameter or return value. Due to a bug in 4.0, ** it's not possible to refer to system attributes in this case. */ -List * +static List * setup_tlist(char *attname, Oid relid) { TargetEntry *tle; @@ -1021,7 +1052,7 @@ setup_tlist(char *attname, Oid relid) ** Build a tlist that extracts a base type from the tuple ** returned by the executor. */ -List * +static List * setup_base_tlist(Oid typeid) { TargetEntry *tle; @@ -1048,7 +1079,7 @@ setup_base_tlist(Oid typeid) * handles function calls with a single argument that is of complex type. * This routine returns NULL if it can't handle the projection (eg. sets). */ -Node * +static Node * ParseComplexProjection(ParseState *pstate, char *funcname, Node *first_arg, diff --git a/src/backend/parser/parse_node.c b/src/backend/parser/parse_node.c index 574bce472c..90e182cb71 100644 --- a/src/backend/parser/parse_node.c +++ b/src/backend/parser/parse_node.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.2 1997/11/26 01:11:22 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.3 1997/11/26 03:42:44 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -28,6 +28,12 @@ #include "utils/builtins.h" #include "utils/syscache.h" +static void disallow_setop(char *op, Type optype, Node *operand); +static Node *make_operand(char *opname, + Node *tree, + Oid orig_typeId, + Oid true_typeId); + /* * make_parsestate() -- * allocate and initialize a new ParseState. @@ -56,7 +62,7 @@ make_parsestate(void) return (pstate); } -Node * +static Node * make_operand(char *opname, Node *tree, Oid orig_typeId, @@ -110,7 +116,7 @@ make_operand(char *opname, } -void +static void disallow_setop(char *op, Type optype, Node *operand) { if (operand == NULL) diff --git a/src/backend/parser/parse_oper.c b/src/backend/parser/parse_oper.c index e3932806f3..ddc97a4523 100644 --- a/src/backend/parser/parse_oper.c +++ b/src/backend/parser/parse_oper.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.2 1997/11/26 01:11:24 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.3 1997/11/26 03:42:45 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -26,6 +26,21 @@ #include "storage/bufmgr.h" #include "utils/syscache.h" +static int binary_oper_get_candidates(char *opname, + Oid leftTypeId, + Oid rightTypeId, + CandidateList *candidates); +static CandidateList binary_oper_select_candidate(Oid arg1, + Oid arg2, + CandidateList candidates); +static bool equivalentOpersAfterPromotion(CandidateList candidates); +static void op_error(char *op, Oid arg1, Oid arg2); +static int unary_oper_get_candidates(char *op, + Oid typeId, + CandidateList *candidates, + char rightleft); + + Oid any_ordering_op(int restype) { @@ -51,7 +66,7 @@ oprid(Operator op) * opname exists, such that leftTypeId can be coerced to arg1 and * rightTypeId can be coerced to arg2 */ -int +static int binary_oper_get_candidates(char *opname, Oid leftTypeId, Oid rightTypeId, @@ -149,7 +164,7 @@ binary_oper_get_candidates(char *opname, * the all the candidates operate on the same data types after * promotion (int2, int4, float4 -> float8). */ -bool +static bool equivalentOpersAfterPromotion(CandidateList candidates) { CandidateList result; @@ -223,7 +238,7 @@ equivalentOpersAfterPromotion(CandidateList candidates) * given a choice of argument type pairs for a binary operator, * try to choose a default pair */ -CandidateList +static CandidateList binary_oper_select_candidate(Oid arg1, Oid arg2, CandidateList candidates) @@ -366,7 +381,7 @@ oper(char *op, Oid arg1, Oid arg2, bool noWarnings) * a right/left unary operator named opname exists, * such that typeId can be coerced to it */ -int +static int unary_oper_get_candidates(char *op, Oid typeId, CandidateList *candidates, @@ -548,7 +563,7 @@ outstr(char *typename, /* Name of type of value */ * Give a somewhat useful error message when the operator for two types * is not found. */ -void +static void op_error(char *op, Oid arg1, Oid arg2) { Type tp1 = NULL, diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c index 7f550c6b85..2b880213d7 100644 --- a/src/backend/parser/parse_relation.c +++ b/src/backend/parser/parse_relation.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.2 1997/11/26 01:11:28 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.3 1997/11/26 03:42:48 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -24,6 +24,9 @@ #include "utils/builtins.h" #include "utils/lsyscache.h" +static void checkTargetTypes(ParseState *pstate, char *target_colname, + char *refname, char *colname); + struct { char *field; @@ -415,7 +418,7 @@ handleTargetColname(ParseState *pstate, char **resname, * checkTargetTypes - * checks value and target column types */ -void +static void checkTargetTypes(ParseState *pstate, char *target_colname, char *refname, char *colname) { diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c index e2aff8c87d..04739fe550 100644 --- a/src/backend/parser/parse_target.c +++ b/src/backend/parser/parse_target.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.2 1997/11/26 01:11:30 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.3 1997/11/26 03:42:49 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -25,6 +25,13 @@ #include "parser/parse_target.h" #include "utils/builtins.h" +static List *expandAllTables(ParseState *pstate); +static char *figureColname(Node *expr, Node *resval); +static TargetEntry *make_targetlist_expr(ParseState *pstate, + char *colname, + Node *expr, + List *arrayRef); + /* * transformTargetList - * turns a list of ResTarget's into a list of TargetEntry's @@ -310,7 +317,7 @@ transformTargetList(ParseState *pstate, List *targetlist) * * arrayRef is a list of transformed A_Indices */ -TargetEntry * +static TargetEntry * make_targetlist_expr(ParseState *pstate, char *colname, Node *expr, @@ -568,7 +575,7 @@ makeTargetNames(ParseState *pstate, List *cols) * turns '*' (in the target list) into a list of attributes * (of all relations in the range table) */ -List * +static List * expandAllTables(ParseState *pstate) { List *target = NIL; @@ -633,7 +640,7 @@ expandAllTables(ParseState *pstate) * list, we have to guess. * */ -char * +static char * figureColname(Node *expr, Node *resval) { switch (nodeTag(expr)) diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c index 9d267562f3..a8a00c3fbf 100644 --- a/src/backend/utils/time/tqual.c +++ b/src/backend/utils/time/tqual.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.11 1997/11/24 05:09:24 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.12 1997/11/26 03:42:58 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -24,6 +24,8 @@ #include "utils/palloc.h" #include "utils/tqual.h" +static bool heapisoverride(void); + extern bool PostgresIsInitialized; /* @@ -49,8 +51,7 @@ setheapoverride(bool on) } } -/* static */ -bool +static bool heapisoverride() { if (!TransactionIdIsValid(HeapSpecialTransactionId)) diff --git a/src/include/parser/gramparse.h b/src/include/parser/gramparse.h index 2fb04acd56..db400cb416 100644 --- a/src/include/parser/gramparse.h +++ b/src/include/parser/gramparse.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: gramparse.h,v 1.5 1997/09/08 21:53:37 momjian Exp $ + * $Id: gramparse.h,v 1.6 1997/11/26 03:43:05 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -18,6 +18,7 @@ extern void init_io(void); /* from gram.y */ +extern Oid param_type(int t); extern void parser_init(Oid *typev, int nargs); extern int yyparse(void); diff --git a/src/include/parser/parse_agg.h b/src/include/parser/parse_agg.h index fca928c9ee..9761aa94e1 100644 --- a/src/include/parser/parse_agg.h +++ b/src/include/parser/parse_agg.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: parse_agg.h,v 1.2 1997/11/26 01:13:58 momjian Exp $ + * $Id: parse_agg.h,v 1.3 1997/11/26 03:43:08 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -20,9 +20,6 @@ extern void AddAggToParseState(ParseState *pstate, Aggreg *aggreg); extern void finalizeAggregates(ParseState *pstate, Query *qry); -extern bool contain_agg_clause(Node *clause); -extern bool exprIsAggOrGroupCol(Node *expr, List *groupClause); -extern bool tleIsAggOrGroupCol(TargetEntry *tle, List *groupClause); extern void parseCheckAggregates(ParseState *pstate, Query *qry); extern Aggreg *ParseAgg(char *aggname, Oid basetype, Node *target); extern void agg_error(char *caller, char *aggname, Oid basetypeID); diff --git a/src/include/parser/parse_clause.h b/src/include/parser/parse_clause.h index 9c5fed19dd..272bbc17b5 100644 --- a/src/include/parser/parse_clause.h +++ b/src/include/parser/parse_clause.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: parse_clause.h,v 1.2 1997/11/26 01:14:00 momjian Exp $ + * $Id: parse_clause.h,v 1.3 1997/11/26 03:43:09 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -19,11 +19,8 @@ #include #include -extern void parseFromClause(ParseState *pstate, List *frmList); extern void makeRangeTable(ParseState *pstate, char *relname, List *frmList); extern Node *transformWhereClause(ParseState *pstate, Node *a_expr); -extern TargetEntry *find_targetlist_entry(ParseState *pstate, - SortGroupBy *sortgroupby, List *tlist); extern List *transformGroupClause(ParseState *pstate, List *grouplist, List *targetlist); extern List *transformSortClause(ParseState *pstate, diff --git a/src/include/parser/parse_expr.h b/src/include/parser/parse_expr.h index 4bc1d77b3f..f26bf34acb 100644 --- a/src/include/parser/parse_expr.h +++ b/src/include/parser/parse_expr.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: parse_expr.h,v 1.2 1997/11/26 01:14:02 momjian Exp $ + * $Id: parse_expr.h,v 1.3 1997/11/26 03:43:11 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -22,7 +22,6 @@ extern Node *transformExpr(ParseState *pstate, Node *expr, int precedence); extern Node *transformIdent(ParseState *pstate, Node *expr, int precedence); extern Oid exprType(Node *expr); extern Node *handleNestedDots(ParseState *pstate, Attr *attr, int *curr_resno); -extern Node *parser_typecast(Value *expr, TypeName *typename, int typlen); extern Node *parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen); #endif /* PARSE_EXPR_H */ diff --git a/src/include/parser/parse_func.h b/src/include/parser/parse_func.h index dbda5651a3..9ff6ee91b8 100644 --- a/src/include/parser/parse_func.h +++ b/src/include/parser/parse_func.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: parse_func.h,v 1.2 1997/11/26 01:14:04 momjian Exp $ + * $Id: parse_func.h,v 1.3 1997/11/26 03:43:12 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -44,37 +44,7 @@ typedef struct _CandidateList extern Node *ParseFunc(ParseState *pstate, char *funcname, List *fargs, int *curr_resno); -extern Oid funcid_get_rettype(Oid funcid); -extern CandidateList func_get_candidates(char *funcname, int nargs); -extern bool can_coerce(int nargs, Oid *input_typeids, Oid *func_typeids); -extern int match_argtypes(int nargs, - Oid *input_typeids, - CandidateList function_typeids, - CandidateList *candidates); -extern Oid * func_select_candidate(int nargs, - Oid *input_typeids, - CandidateList candidates); -extern bool func_get_detail(char *funcname, - int nargs, - Oid *oid_array, - Oid *funcid, /* return value */ - Oid *rettype, /* return value */ - bool *retset, /* return value */ - Oid **true_typeids); -extern Oid ** argtype_inherit(int nargs, Oid *oid_array); -extern int findsupers(Oid relid, Oid **supervec); -extern Oid **genxprod(InhPaths *arginh, int nargs); -extern void make_arguments(int nargs, - List *fargs, - Oid *input_typeids, - Oid *function_typeids); -extern List *setup_tlist(char *attname, Oid relid); -extern List *setup_base_tlist(Oid typeid); -extern Node *ParseComplexProjection(ParseState *pstate, - char *funcname, - Node *first_arg, - bool *attisset); extern void func_error(char *caller, char *funcname, int nargs, Oid *argtypes); #endif /* PARSE_FUNC_H */ diff --git a/src/include/parser/parse_node.h b/src/include/parser/parse_node.h index 1eb063b8ee..de6b03a1ad 100644 --- a/src/include/parser/parse_node.h +++ b/src/include/parser/parse_node.h @@ -5,7 +5,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: parse_node.h,v 1.2 1997/11/26 01:14:05 momjian Exp $ + * $Id: parse_node.h,v 1.3 1997/11/26 03:43:13 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -42,11 +42,6 @@ typedef struct ParseState } ParseState; extern ParseState *make_parsestate(void); -extern Node *make_operand(char *opname, - Node *tree, - Oid orig_typeId, - Oid true_typeId); -extern void disallow_setop(char *op, Type optype, Node *operand); extern Expr *make_op(char *opname, Node *ltree, Node *rtree); extern Var *make_var(ParseState *pstate, char *refname, char *attrname, Oid *type_id); extern ArrayRef *make_array_ref(Node *expr, diff --git a/src/include/parser/parse_oper.h b/src/include/parser/parse_oper.h index dd32290dde..972f0991df 100644 --- a/src/include/parser/parse_oper.h +++ b/src/include/parser/parse_oper.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: parse_oper.h,v 1.2 1997/11/26 01:14:07 momjian Exp $ + * $Id: parse_oper.h,v 1.3 1997/11/26 03:43:14 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -20,21 +20,8 @@ typedef HeapTuple Operator; extern Oid any_ordering_op(int restype); extern Oid oprid(Operator op); -extern int binary_oper_get_candidates(char *opname, - Oid leftTypeId, - Oid rightTypeId, - CandidateList *candidates); -extern bool equivalentOpersAfterPromotion(CandidateList candidates); -extern CandidateList binary_oper_select_candidate(Oid arg1, - Oid arg2, - CandidateList candidates); extern Operator oper(char *op, Oid arg1, Oid arg2, bool noWarnings); -extern int unary_oper_get_candidates(char *op, - Oid typeId, - CandidateList *candidates, - char rightleft); extern Operator right_oper(char *op, Oid arg); extern Operator left_oper(char *op, Oid arg); -extern void op_error(char *op, Oid arg1, Oid arg2); #endif /* PARSE_OPER_H */ diff --git a/src/include/parser/parse_relation.h b/src/include/parser/parse_relation.h index 4dc909e594..7c78757ac3 100644 --- a/src/include/parser/parse_relation.h +++ b/src/include/parser/parse_relation.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: parse_relation.h,v 1.2 1997/11/26 01:14:08 momjian Exp $ + * $Id: parse_relation.h,v 1.3 1997/11/26 03:43:16 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -38,7 +38,5 @@ extern Oid attnameTypeId(Oid relid, char *attrname); extern Oid attnumTypeId(Relation rd, int attid); extern void handleTargetColname(ParseState *pstate, char **resname, char *refname, char *colname); -extern void checkTargetTypes(ParseState *pstate, char *target_colname, - char *refname, char *colname); #endif /* PARSE_RANGE_H */ diff --git a/src/include/parser/parse_target.h b/src/include/parser/parse_target.h index 6b7451d565..31b2c1594d 100644 --- a/src/include/parser/parse_target.h +++ b/src/include/parser/parse_target.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: parse_target.h,v 1.2 1997/11/26 01:14:10 momjian Exp $ + * $Id: parse_target.h,v 1.3 1997/11/26 03:43:18 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -23,12 +23,6 @@ #define EXPR_RELATION_FIRST 2 extern List *transformTargetList(ParseState *pstate, List *targetlist); -extern TargetEntry *make_targetlist_expr(ParseState *pstate, - char *colname, - Node *expr, - List *arrayRef); -extern List *expandAllTables(ParseState *pstate); -extern char *figureColname(Node *expr, Node *resval); extern List *makeTargetNames(ParseState *pstate, List *cols); #endif /* PARSE_TARGET_H */