btree.extract (OpenInsight Specific)
At 10 NOV 1997 11:33:36AM J Ignatius wrote:
Hi,
I am having problems when performing a btree.extract.
I created a btree index on a multi-valued column (date) in a table.
When I put a btree.extract function after this, I found that there were
dates in the column that were overlooked. The keylist that was returned
did not contain all of the members. Does btree.extract work on multi-
valued columns?
At 10 NOV 1997 11:43PM Don Bakke wrote:
Does btree.extract work on multi- valued columns?
Yes it does. Normally the problem you are experiencing is related to the following:
1. Corrupted index
2. Delimiter in a key(s)
3. Indexed column length not long enough for the largest possible data it would contain
Have you eliminated these possibilities?
dbakke@srpcs.com
At 11 NOV 1997 04:49AM J Ignatius wrote:
Given below is the code I have written.
unit=UNIT"
eof="
rows=0
open unit to unit_table else return
select unit_table
loop
readnext id else eof=1
until eof do
rows += 1
repeat
flag="
keylist ="
date_range=last_date:"~":current_date
search_criteria=DATE":@VM:date_range:@FM
create_index("1","DICT.":unit, "DATE", "0", "1")
open "DICT.":unit to @DICT else return
btree.extract(search_criteria,"DICT.UNIT",@DICT,keylist,"",flag)
delete_index(unit,"DATE","1")
The keylist returned is null when it shouldn't be. There are dates
within the multi-valued column DATE that are being overlooked.
Any suggestions?
Jacob Ignatius.
At 12 NOV 1997 02:16PM Cameron Revelation wrote:
J Ignatius,
I am puzzled by your example. You are creating and dropping the index in the same procedure? You are also not checking for error returns from the create index call or the btree extract call.
Cameron Purdy
info@revelation.com
At 13 NOV 1997 05:11AM J Ignatius wrote:
I have managed to sort out my previous problems with btree.extract.
The code now looks like this -
flag="
keylist ="
create_index("1",unit,"TRANSACTION_DATE","0","1")
date_range=start_date:"…":end_date
search_criteria=TRANSACTION_DATE":@VM:date_range:@FM
open "DICT.":unit to @DICT else return
btree.extract(search_criteria,unit,@DICT,keylist,"",flag)
Is there a routine like btree.extract that would work on
an array? If I use a loop and inspect every element of
the array it can take a long time if the array is long.