BTREE.EXTRACT (Aaron Kaplan ... or anyone else) (AREV Specific)
At 22 NOV 1998 05:35:11PM Michael - LMS wrote:
Continuing from our previous discussion ….
I tried the "D" option and came up with the following;
The "Query Spec" contained the correct info.
The "Query Plan" contained the correct info.
The Select statement was correct and returned the correct number of keys (12512).
It then displayed the message "Performing SI operation"
I then checked the values of my variables.
STATUS() was set to zero.
flag was set to zero
option was unchanged (ie option=D :@FM: 1 :@FM)
num_keys=12507
It seems to be working correctly EXCEPT that it does not set flag or return the set handle in the third parameter of option, as the documentation says it should, when there is more than 64k worth of keys.
Thanks,
Michael
At 23 NOV 1998 04:00PM K Gilfilen wrote:
This is way out there, a shot in the dark. Doesn't SI refer to secondary indexing? If the system thinks you have a two parts to the query, it may remove some keys that it thinks don't fit both clauses. (I didn't state that very well)
In this case, you are looking for keys that have an asterisk in them, which is how AREV denotes (someone help me here, I don't remember the details) query results that contain multivalues. It may see the "*2" and think it has another operation to do. to pare down the list. I notice you lost 5 keys in the pared down list, perhaps bringing the total under the 64K limit.
I just remember seeing search results of one record count reduced after secondary values are removed.
Or perhaps AREV is trying to store the results in a linked list, where key list one has a value of xxxx and key list two has xxxx*2 and so on, but the list it creates already has a key of *2, so it writes record one, with the *2, but never sees it because it has a *2, which it always treats as record number two.
Phew! That's probably way off base, but I could see it happening, because AREV uses some data schemes for internal processing that people use for application-level processing.
At 23 NOV 1998 05:43PM Michael - LMS wrote:
"B*2" is a two part key in the PAYEE table.
At 24 NOV 1998 02:40PM [email protected] - [url=http://www.sprezzatura.com]Sprezzatura, Inc.[/url] wrote:
It will return less than 64K of keys in the outset. The handles should be sequential numbers, so try passing it back with a 2 in opts.