:: Visual Foxpro, Foxpro for DOS
To Aleksey Tsingauz - Функция STR и Rashmore
Бураков Сергей
Автор

Сообщений: 280
Откуда: Calgary
Дата регистрации: 07.02.2005
Эта тема уже обсуждалась в форуме "VFP и Foxpro для DOS"
Помещаю сюда немного переделанный пример от PaulWist для того, чтобы он попался на глаза Алексею Цингаузу.
Суть проблемы. В режиме SET ANSI OFF для поиска по началу индексного ключа, содержащего функцию STR, не работает оптимизация Rasнmоre. Повидимому, функция STR считается выражением с неопределенной длиной, поскольку после применения к ней PADR баг исчезает.


SET TALK OFF
Sys(1104)
res=""
SYS(3054,11,"Res")
Set Collate To "MACHINE"

CREATE CURSOR test (ID i)

INDEX ON STR(ID,5) TAG ID

CREATE CURSOR test1 (ID i)

INDEX ON PADR(STR(ID,5),5) TAG ID

FOR i = 1 TO 10000
INSERT INTO test (ID) VALUES (i)
ENDFOR

SET ANSI ON

SELECT * FROM test WHERE STR(ID,5) = ' 2' NOFILTER INTO CURSOR tmp
? res
SET ANSI OFF
SELECT * FROM test WHERE STR(ID,5) = ' 2' NOFILTER INTO CURSOR tmp
? res

SELECT * FROM test1 WHERE PADR(STR(ID,5),5) = ' 2' NOFILTER INTO CURSOR tmp
? res

Результат:

Цитата:
Using index tag Id to rushmore optimize intermediate result
Rushmore optimization level for intermediate result: full

Rushmore optimization level for intermediate result: none

Using index tag Id to rushmore optimize intermediate result
Rushmore optimization level for intermediate result: full




------------------
Ratings: 0 negative/0 positive
Re: To Aleksey Tsingauz - Функция STR и Rashmore
Aleksey Tsingauz [MSFT]
Бураков Сергей писал(а):
Цитата:
В режиме SET ANSI OFF для поиска по началу индексного ключа, содержащего функцию STR, не работает оптимизация Rasнmоre. Повидимому, функция STR считается выражением с неопределенной длиной, поскольку после применения к ней PADR баг исчезает.

Здравствуйте, Сергей!

Это известный баг в VFP9, пару месяцев назад его обсуждали на UT.

Спасибо,
Алексей.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 25 kornienko_ru  (Гостей: 24)

© 2000-2024 Fox Club 
Яндекс.Метрика