|
|
1.1 root 1: .th FIND AM 9/6/77
2: .sh NAME
3: find - set start and end points for a relation scan
4: .sh SYNOPSIS
5: .nf
6: find(d, mode, lotid, hitid, key)
7: struct descriptor *d;
8: int mode;
9: struct tup_id *lotid, *hitid;
10: char key[MAXTUP];
11: .fi
12: .sh DESCRIPTION
13: FIND is used to determine start and end points for a scan
14: of a relation.
15: MODE must be equal to one of the constants
16: NOKEY, EXACTKEY, LRANGEKEY, HRANGEKEY or FULLKEY
17: which are defined in the "ingres.h" header file.
18: LOTID and HITID will be set to the lower and upper
19: page limits of the scan, respectively.
20: .sp
21: If the entire relation is to be scanned,
22: FIND should be called with MODE = NOKEY.
23: In this case KEY may be omitted and LOTID and HITID
24: are set to the absolute lower and upper limits
25: of the relation.
26: .sp
27: There are two ways to restrict the number of pages
28: to be scanned.
29: One can look for specific values in certain domains,
30: or for a range of values in the domains.
31: In either case,
32: the search values should be placed in KEY using the
33: CLEARKEYS and SETKEY functions.
34: If one is looking for specific values,
35: then FIND should be called with MODE = EXACTKEY.
36: LOTID and HITID will both be set for the proper
37: scan limits.
38: If a range of values is desired, then FIND must be called
39: twice.
40: The first time with MODE = LRANGEKEY and KEY containing
41: the low values for the range.
42: This will set LOTID to the proper limit.
43: The second time with MODE = HRANGEKEY and KEY containing
44: the high values for the range.
45: This will set HITID to the proper limit.
46: It is not necessary to provide values for the same domains
47: on both calls to FIND,
48: but care must be taken to use the CLEARKEYS and SETKEY functions properly.
49: .sp
50: FIND is called with MODE = FULLKEY by FINDBEST and REPLACE.
51: This is the same as the EXACTKEY mode except that SETKEY does not
52: have to be called and values must be provided for every
53: domain of the tuple.
54: .sp
55: FIND can only reduce the number of tuples that one must check
56: against a given qualification.
57: FIND cannot gaurantee that the scan is limited to only
58: those tuples that meet the restrictions given in KEY.
59: .sh DIAGNOSTICS
60: .nf
61: AMFIND_ERR -- unidentifiable relation storage structure
62: AMWRITE_ERR -- pageflush failure
63: AMREAD_ERR -- get_page failure
64: 0 -- success
65: .fi
66: .sh "TRACE FLAGS"
67: 22.0 - 22.8
68: .sh "SEE ALSO"
69: clearkeys, findbest, fullkey, get, ndxsearch, replace, rhash, setkey
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.