2.11BSD/ingres/source/dbu/purgetup.c

Compare this file to the similar file:
Show the results in this format:

# include	"../ingres.h"

/*
**	Remove tuples from the specified system relation.
**
**	'Desa' is a descriptor for a system relation and
**	key[12] and dom[12] are the keys and domain numbers
**	to match on for the delete.
**	All the tuples in 'desa' with key1 and key2
**	are deleted from the relation.
*/

purgetup(desa, key1, dom1, key2, dom2)
struct descriptor	*desa;
char			*key1;
int			dom1;
char			*key2;
int			dom2;
{
	struct tup_id			tid, limtid;
	register int			i;
	char				tupkey[MAXTUP], tuple[MAXTUP];
	register struct descriptor	*d;

	d = desa;

	setkey(d, tupkey, key1, dom1);
	setkey(d, tupkey, key2, dom2);
	if (i = find(d, EXACTKEY, &tid, &limtid, tupkey))
		syserr("purgetup:find:%d", i);
	while ((i = get(d, &tid, &limtid, tuple, TRUE)) == 0)
	{
		if (kcompare(d, tuple, tupkey) == 0)
			if (i = delete(d, &tid))
				syserr("attflush: delete %d", i);
	}

	if (i < 0)
		syserr("purgetup:get %.14s:%d", d->relid, i);
}