diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2002-04-09 20:35:55 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2002-04-09 20:35:55 +0000 |
commit | f2d70d32ebd6c38d4fe93c1a684f5f29e5e76938 (patch) | |
tree | 5d041018177cdf6e9ca3ef0cc2eafac580a5bb0b /src/include/nodes/parsenodes.h | |
parent | c419c224142eb4bbf6e9a47d2d3626f212fda0fc (diff) |
Functions live in namespaces. Qualified function names work, eg
SELECT schema1.func2(...). Aggregate names can be qualified at the
syntactic level, but the qualification is ignored for the moment.
Diffstat (limited to 'src/include/nodes/parsenodes.h')
-rw-r--r-- | src/include/nodes/parsenodes.h | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index e2b0d9f38f3..6fc2fec9ad9 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: parsenodes.h,v 1.168 2002/04/05 11:56:54 momjian Exp $ + * $Id: parsenodes.h,v 1.169 2002/04/09 20:35:54 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -304,7 +304,7 @@ typedef struct Ident typedef struct FuncCall { NodeTag type; - char *funcname; /* name of function */ + List *funcname; /* qualified name of function */ List *args; /* the arguments (list of exprs) */ bool agg_star; /* argument was really '*' */ bool agg_distinct; /* arguments were labeled DISTINCT */ @@ -390,15 +390,16 @@ typedef struct RangeSubselect /* * IndexElem - index parameters (used in CREATE INDEX) * - * For a plain index, each 'name' is an attribute name in the heap relation, - * and 'args' is NIL. For a functional index, only one IndexElem is allowed. - * It has name = name of function and args = list of attribute names that - * are the function's arguments. + * For a plain index, each 'name' is an attribute name in the heap relation; + * 'funcname' and 'args' are NIL. For a functional index, only one IndexElem + * is allowed. It has name = NULL, funcname = name of function and args = + * list of attribute names that are the function's arguments. */ typedef struct IndexElem { NodeTag type; - char *name; /* name of attribute to index, or function */ + char *name; /* name of attribute to index, or NULL */ + List *funcname; /* qualified name of function */ List *args; /* list of names of function arguments */ char *class; /* name of desired opclass; NULL = default */ } IndexElem; @@ -780,7 +781,7 @@ typedef struct PrivGrantee typedef struct FuncWithArgs { NodeTag type; - char *funcname; + List *funcname; /* qualified name of function */ List *funcargs; /* list of Typename nodes */ } FuncWithArgs; @@ -919,10 +920,10 @@ typedef struct FkConstraint typedef struct CreateTrigStmt { NodeTag type; - char *trigname; /* TRIGGER' name */ - RangeVar *relation; /* triggered relation */ - char *funcname; /* function to call (or NULL) */ - List *args; /* list of (T_String) Values or NULL */ + char *trigname; /* TRIGGER's name */ + RangeVar *relation; /* relation trigger is on */ + List *funcname; /* qual. name of function to call */ + List *args; /* list of (T_String) Values or NIL */ bool before; /* BEFORE/AFTER */ bool row; /* ROW/STATEMENT */ char actions[4]; /* Insert, Update, Delete */ @@ -954,7 +955,7 @@ typedef struct CreatePLangStmt { NodeTag type; char *plname; /* PL name */ - char *plhandler; /* PL call handler function */ + List *plhandler; /* PL call handler function (qual. name) */ char *plcompiler; /* lancompiler text */ bool pltrusted; /* PL is trusted */ } CreatePLangStmt; @@ -1097,12 +1098,9 @@ typedef struct CommentStmt { NodeTag type; int objtype; /* Object's type */ - char *objschema; /* Schema where object is defined, - * if object is schema specific */ - char *objname; /* Name of the object */ - char *objproperty; /* Property Id (such as column) */ - List *objlist; /* Arguments for VAL objects */ - char *comment; /* The comment to insert */ + List *objname; /* Qualified name of the object */ + List *objargs; /* Arguments if needed (eg, for functions) */ + char *comment; /* Comment to insert, or NULL to remove */ } CommentStmt; /* ---------------------- @@ -1154,7 +1152,7 @@ typedef struct ProcedureStmt { NodeTag type; bool replace; /* T => replace if already exists */ - List *funcname; /* name of function to create */ + List *funcname; /* qualified name of function to create */ List *argTypes; /* list of argument types (TypeName nodes) */ TypeName *returnType; /* the return type */ List *withClause; /* a list of DefElem */ @@ -1169,7 +1167,7 @@ typedef struct ProcedureStmt typedef struct RemoveAggrStmt { NodeTag type; - char *aggname; /* aggregate to drop */ + List *aggname; /* aggregate to drop */ TypeName *aggtype; /* TypeName for input datatype, or NULL */ } RemoveAggrStmt; @@ -1180,7 +1178,7 @@ typedef struct RemoveAggrStmt typedef struct RemoveFuncStmt { NodeTag type; - char *funcname; /* function to drop */ + List *funcname; /* function to drop */ List *args; /* types of the arguments */ } RemoveFuncStmt; |