1/*- 2 * See the file LICENSE for redistribution information. 3 * 4 * Copyright (c) 1998,2008 Oracle. All rights reserved. 5 * 6 * $Id: db_join.h,v 12.8 2008/01/08 20:58:17 bostic Exp $ 7 */ 8 9#ifndef _DB_JOIN_H_ 10#define _DB_JOIN_H_ 11 12#if defined(__cplusplus) 13extern "C" { 14#endif 15 16/* 17 * Joins use a join cursor that is similar to a regular DB cursor except 18 * that it only supports c_get and c_close functionality. Also, it does 19 * not support the full range of flags for get. 20 */ 21typedef struct __join_cursor { 22 u_int8_t *j_exhausted; /* Array of flags; is cursor i exhausted? */ 23 DBC **j_curslist; /* Array of cursors in the join: constant. */ 24 DBC **j_fdupcurs; /* Cursors w/ first instances of current dup. */ 25 DBC **j_workcurs; /* Scratch cursor copies to muck with. */ 26 DB *j_primary; /* Primary dbp. */ 27 DBT j_key; /* Used to do lookups. */ 28 DBT j_rdata; /* Memory used for data return. */ 29 u_int32_t j_ncurs; /* How many cursors do we have? */ 30#define JOIN_RETRY 0x01 /* Error on primary get; re-return same key. */ 31 u_int32_t flags; 32} JOIN_CURSOR; 33 34#if defined(__cplusplus) 35} 36#endif 37#endif /* !_DB_JOIN_H_ */ 38