head	1.3;
access;
symbols
	release_4_2:1.3
	aix_ok:1.3
	Version_2_1:1.1;
locks; strict;
comment	@ * @;


1.3
date	92.06.28.04.05.53;	author mao;	state Exp;
branches;
next	1.2;

1.2
date	91.06.18.23.28.02;	author cimarron;	state Exp;
branches;
next	1.1;

1.1
date	91.02.12.11.50.04;	author cimarron;	state Exp;
branches;
next	;


desc
@@


1.3
log
@new accessor functions for extra fields in query descriptor
@
text
@/* ----------------------------------------------------------------
 *   FILE
 *     	execdesc.h
 *     
 *   DESCRIPTION
 *     	plan and query descriptor accessor macros used
 *      by the executor and related modules.
 *
 *   NOTES
 *	parse tree macros moved to H/parser/parsetree.h
 *
 *   IDENTIFICATION
 *	$Header: /private/mao/postgres/src/lib/H/executor/RCS/execdesc.h,v 1.2 1991/06/18 23:28:02 cimarron Exp mao $"
 * ----------------------------------------------------------------
 */

#ifndef ExecdescHIncluded
#define ExecdescHIncluded 1	/* include only once */

/* ----------------
 *	query descriptor macros
 * ----------------
 */
#define GetOperation(queryDesc)	     (List) CAR(queryDesc)
#define QdGetParseTree(queryDesc)    (List) CAR(CDR(queryDesc))
#define QdGetPlan(queryDesc)	     (Plan) CAR(CDR(CDR(queryDesc)))
#define QdGetState(queryDesc)	   (EState) CAR(CDR(CDR(CDR(queryDesc))))
#define QdGetFeature(queryDesc)      (List) CAR(CDR(CDR(CDR(CDR(queryDesc)))))
#define QdGetDest(queryDesc) \
    (CommandDest) CInteger(CAR(CDR(CDR(CDR(CDR(CDR(queryDesc)))))))
#define QdGetArguments(queryDesc) \
    (List) CAR(CDR(CDR(CDR(CDR(CDR(CDR(queryDesc)))))))
#define QdGetTypes(queryDesc) \
    (List) CAR(CDR(CDR(CDR(CDR(CDR(CDR(CDR(queryDesc))))))))
#define QdGetNargs(queryDesc) \
    (int) CInteger(CAR(CDR(CDR(CDR(CDR(CDR(CDR(CDR(CDR(queryDesc))))))))))

#define QdSetState(queryDesc, s) \
    (CAR(CDR(CDR(CDR(queryDesc)))) = (List) s)

#define QdSetFeature(queryDesc, f) \
    (CAR(CDR(CDR(CDR(CDR(queryDesc))))) = (List) f)

#define QdSetDest(queryDesc, d) \
    (((List) CAR(CDR(CDR(CDR(CDR(CDR(queryDesc)))))))->val.fixnum = d)

/* ----------------
 *	query feature accessors
 * ----------------
 */
#define FeatureGetCommand(feature)	CAR(feature)
#define FeatureGetCount(feature)	CAR(CDR(feature))

#define QdGetCommand(queryDesc)	FeatureGetCommand(QdGetFeature(queryDesc))
#define QdGetCount(queryDesc)	FeatureGetCount(QdGetFeature(queryDesc))


#endif  ExecdescHIncluded
@


1.2
log
@reorganized executor to use tuple table properly for nested dot stuff
@
text
@d13 1
a13 1
 *	$Header: RCS/execdesc.h,v 1.1 91/02/12 11:50:04 cimarron Exp Locker: cimarron $"
d31 6
@


1.1
log
@query descriptor / parse tree manipulation macros pulled out
of execmisc.h so that command/ code could use them.
@
text
@d6 1
a6 1
 *     	parse, plan and query descriptor accessor macros used
d9 3
d13 1
a13 1
 *	$Header$"
d21 1
a21 1
 *	query descriptor accessors
a50 37
/* ----------------
 *	parse tree accessors
 * ----------------
 */
#define parse_tree_root(parse_tree) \
    CAR(parse_tree)

#define parse_tree_target_list(parse_tree) \
    CAR(CDR(parse_tree))

#define parse_tree_qualification(parse_tree) \
    CAR(CDR(CDR(parse_tree)))

#define parse_tree_root_num_levels(parse_tree_root) \
    CAR(parse_tree_root)

#define parse_tree_root_command_type(parse_tree_root) \
    CAR(CDR(parse_tree_root))

#define parse_tree_root_result_relation(parse_tree_root) \
    CAR(CDR(CDR(parse_tree_root)))

#define parse_tree_root_range_table(parse_tree_root) \
    CAR(CDR(CDR(CDR(parse_tree_root))))

#define parse_tree_root_priority(parse_tree_root) \
    CAR(CDR(CDR(CDR(CDR(parse_tree_root)))))

#define parse_tree_root_rule_info(parse_tree_root) \
    CAR(CDR(CDR(CDR(CDR(CDR((parse_tree_root)))))))


#define parse_tree_range_table(parse_tree)	\
    parse_tree_root_range_table(parse_tree_root(parse_tree))

#define parse_tree_result_relation(parse_tree) \
    parse_tree_root_result_relation(parse_tree_root(parse_tree))
@
