head	1.6;
access;
symbols
	release_4_2:1.6
	aix_ok:1.5
	Version_2_1:1.4
	Version_2:1.4
	C_Demo_1:1.4
	Retrieve_x_qual:1.2;
locks; strict;
comment	@ * @;


1.6
date	93.11.03.04.12.05;	author aoki;	state Exp;
branches;
next	1.5;

1.5
date	91.11.15.16.22.55;	author hong;	state Exp;
branches;
next	1.4;

1.4
date	89.09.05.17.31.33;	author mao;	state Version_2;
branches;
next	1.3;

1.3
date	89.08.25.11.32.49;	author cimarron;	state Exp;
branches;
next	1.2;

1.2
date	89.08.04.17.11.15;	author goh;	state Exp;
branches;
next	1.1;

1.1
date	89.07.21.09.02.56;	author goh;	state Exp;
branches;
next	;


desc
@@


1.6
log
@planner proto update
@
text
@/* ----------------------------------------------------------------
 *   FILE
 *	keys.h
 *
 *   DESCRIPTION
 *	prototypes for keys.c.
 *
 *   NOTES
 *	Automatically generated using mkproto
 *
 *   IDENTIFICATION
 *	$Header$
 * ----------------------------------------------------------------
 */

#ifndef keysIncluded		/* include this file only once */
#define keysIncluded	1

#define INNER 65000
#define OUTER 65001

/*
 *      1. index key
 *              one of:
 *                      attnum
 *                      (attnum arrayindex)
 *      2. path key
 *              (subkey1 ... subkeyN)
 *                      where subkeyI is a var node
 *              note that the 'Keys field is a list of these
 *      3. join key
 *              (outer-subkey inner-subkey)
 *                      where each subkey is a var node
 *      4. sort key
 *              one of:
 *                      SortKey node
 *                      number
 *                      nil
 *              (may also refer to the 'SortKey field of a SortKey node,
 *               which looks exactly like an index key)
 *
 */

extern bool match_indexkey_operand ARGS((LispValue indexkey, Var operand, Rel rel));
extern bool equal_indexkey_var ARGS((LispValue index_key, Var var));
extern LispValue extract_subkey ARGS((JoinKey jk, int which_subkey));
extern bool samekeys ARGS((LispValue keys1, LispValue keys2));
extern Expr matching2_tlvar ARGS((Var var, LispValue tlist, bool (*test)()));
extern LispValue collect_index_pathkeys ARGS((LispValue index_keys, LispValue tlist));
extern bool match_sortkeys_pathkeys ARGS((LispValue relid, LispValue sortkeys, LispValue pathkeys));
extern bool equal_sortkey_pathkey ARGS((LispValue relid, LispValue sortkey, LispValue pathkey));
extern bool valid_sortkeys ARGS((LispValue node));
extern bool valid_numkeys ARGS((LispValue sortkeys));

#endif /* keysIncluded */
@


1.5
log
@planner prototyping
@
text
@d1 17
a17 1
/* $Header: RCS/keys.h,v 1.4 89/09/05 17:31:33 mao Version_2 $ */
d46 1
a46 1
extern LispValue extract_subkey ARGS((JoinKey joinKey, int which_subkey));
d48 1
d54 2
@


1.4
log
@Working version of C-only demo
@
text
@d1 1
a1 1
/* $Header: RCS/keys.h,v 1.3 89/08/25 11:32:49 cimarron Exp $ */
d28 3
a30 3
extern bool match_indexkey_operand ARGS((LispValue indexkey, LispValue operand, LispValue rel));
extern bool equal_indexkey_var ARGS((LispValue index_key, LispValue var));
extern LispValue extract_subkey ARGS((LispValue joinkey, LispValue which_subkey));
@


1.3
log
@had to fix INNER and OUTER to be other than 0 and 1
@
text
@d1 1
a1 1
/* $Header: RCS/keys.h,v 1.2 89/08/04 17:11:15 goh Exp $ */
@


1.2
log
@qualifications now work
@
text
@d1 1
a1 1
/* $Header:$ */
d3 2
a4 2
#define INNER 1
#define OUTER 0
@


1.1
log
@Initial revision
@
text
@d1 2
@
