powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5.5 игнорирует индекс по UDF
25 сообщений из 78, страница 2 из 4
FB 2.5.5 игнорирует индекс по UDF
    #39181755
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb user,

дык он же постоянно пополняться будет. А список багов пополняется как известно через трекер. И почему именно 2.5.5? Тогда уж для всех версий надо делать.
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181757
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladAriochто есть индекс видимо таки пересоздаётся (считается active), но в нём ноль записейПро gstat знаешь ?

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
    Index YYT1 (0)
        Depth: 1, leaf buckets: 1, nodes: 3
        Average data length: 0.00, total dup: 2, max dup: 2
        Fill distribution:
             0 - 19% = 1
            20 - 39% = 0
            40 - 59% = 0
            60 - 79% = 0
            80 - 99% = 0



hvladPS Там индекс строится до того, как computed by поле получит свою формулу.

Я думаю, ты описался. Не "computed by поле получит свою формулу", а "computed by ИНДЕКС получит свою формулу", поскольку:
1. ключик commit every table в ресторе ничего не меняет
2. индекс напрямую на computed field сделать нельзя, только по выражению совпадающему с computed field

Как я и ожидал, все листья в индексе будут NULL, если поле (точнее, не поле, а индекс) уже есть, а выражения ещё нет.
Но все равно странно, что выдача пустая, три "nodes" есть - так и выдать их из селекта в любом порядке, почему не получается, что там с RDB$KEY в индексе?

Ладно, добавляем в таблицу ещё три строки и делаем
Код: sql
1.
select a.IDT1, a.NOMT1, a.PRENOMT1, a.NOMPRENOMT1 from T1 a order by 4



На выходе - три строчки из шести, свежедобавленные:

IDT1 NOMT1 PRENOMT1 NOMPRENOMT1 (computed)4 NULL NULL NULL5 NULL NULL NULL6 a NULL NULL

Опять же, почему так? Пусть значение в листе NULL, но RDB$KEY-то должен быть... А его нет.

Я бы понял, если бы не показалось ничего - индекс убитый и глобально выносит мозг движку.
Я бы понял, если бы показалась все таблица в случайном порядке - на то и индекс, состоящий только из дупликатов.
А тут - ни рыба, ни мясо...
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181773
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
select a.IDT1, a.NOMT1, a.PRENOMT1, a.NOMPRENOMT1 from T1 a
plan (a order yyt1)

err: index YYT1 cannot be used in the specified plan.



ы?

-------------

О!!!

Код: sql
1.
2.
3.
4.
5.
6.
7.
select count(*) from (select a.IDT1, a.NOMT1, a.PRENOMT1, a.NOMPRENOMT1 from T1 a order by 4 nulls FIRST )

-- result = 3 - не верно!

select count(*) from (select a.IDT1, a.NOMT1, a.PRENOMT1, a.NOMPRENOMT1 from T1 a order by 4 nulls LAST )

-- куыгде = 6 - верно!
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181775
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochиндекс напрямую на computed field сделать нельзя
можно: computed by (field_name)

Ariochстранно, что выдача пустая, три "nodes" есть - так и выдать их из селекта в любом порядке, почему не получается, что там с RDB$KEY в индексе?
все нормально с DBKEY. Скан не возвращает записи, у которых поля не совпадают с индексным ключом. Т.е. если ключ ABC ссылается на запись 123, в которой индексное поле не равно ABC, то такая запись не возвращается.
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181777
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch
Код: sql
1.
2.
3.
4.
select a.IDT1, a.NOMT1, a.PRENOMT1, a.NOMPRENOMT1 from T1 a
plan (a order yyt1)

err: index YYT1 cannot be used in the specified plan.



ы?


правильно он тебе пишет кляуз order by и group by в твоём запросе нет.
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181779
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Код: sql
1.
2.
3.
4.
5.
6.
select a.IDT1, a.NOMT1, a.PRENOMT1, a.NOMPRENOMT1, null from T1 a
order by 5
plan (a index (yyt1))

err: Token unknown - line 3, column 1.
plan.
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181782
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

иди доку читай, писатель
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181785
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Also

Код: sql
1.
2.
3.
4.
5.
6.
select a.IDT1, a.NOMT1, a.PRENOMT1, a.NOMPRENOMT1 from T1 a
order by a.NOMPRENOMT1
plan (a order yyt1)

err: Token unknown - line 3, column 1.
plan.



PS. у меня тут нет пароля от трекера, но м.б. кто-подкинет ссылк на это обсуждение в http://tracker.firebirdsql.org/browse/CORE-5118

IMHO разница nulls first/last и разница индекс ли или поле по выражению не успевает восстановиться - могут бюыть важными деталями
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181786
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrasviridenkovЧто именно дать? Пятигиговый бэкап?
почему бы и нет?

На какой email тебе можно написать? Тот что профиле @users.sourceforge.net?
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181787
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrможно: computed by (field_name)

именно на это я Владу и указал

так что речь идет все же не про поле-по-выражению, а про индекс-по-выражению

dimitrcкан не возвращает записи, у которых поля не совпадают с индексным ключом.

...а ворнинг в лог написать? ведь явно ненормальная ситуация!
...а почему в режиме nulls last возвращает и не морщится ?
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181792
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrArioch,

иди доку читай, писатель

её и читаю - http://www.firebirdsql.org/refdocs/langrefupd25-select.html#langrefupd25-select-plan

по определению синтаксиса в доке все нормально

а главный док-райтер выше предлагает заведомо нерабочие варианты (добаит ьorder by, как будто я не пробовал)- он тоже что ли доку не читал?
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181794
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochведь явно ненормальная ситуация!
Нормальная. Индексная нода может принадлежать старым версиям записи.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181797
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Согласен. Тогда может быть стоит ввести bugcheck на то, что версии совпадают, но значения не совпадают ?

И - всё равно фигня с nulls last
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181800
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

а пардон, фигню написал, вспомнил, что версии в ключе ВООБЩЕ не проставляются
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181831
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochречь идет все же не про поле-по-выражению, а про индекс-по-выражению
индекс-по-выражению-по-полю-по-выражению, если быть точным

Ariochа почему в режиме nulls last возвращает и не морщится ?
потому что плана ORDER там в помине нет
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181835
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochеё и читаю
читай синтаксис селекта, а не PLAN-кляузы
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181836
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asviridenkov,

можно туда, можно на firebird2-гав-яндекс-ру
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181849
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochЯ думаю, ты описался.Мне сухо и почти комфортно, так что - нет, не описался :)
AriochНе "computed by поле получит свою формулу", аИндекс\движок не видит эту формулу - так точнее.
Arioch"computed by ИНДЕКС получит свою формулу"Долго смеялся, не надо так больше
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181851
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrзаписи, у которых поля не совпадают с индексным ключом

да, поля с "честным" null'ом после b&r всё равно видны

dimitrиндекс-по-выражению-по-полю-по-выражению, если быть точным

но первично всё же выражение в индексе,а не в поле
так что первый импульс Влада связать случай udf с core 5118 правильный ,видимо

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
gbak:restoring table T1 
gbak:    restoring column IDT1 
gbak:    restoring column NOMT1 
gbak:    restoring column PRENOMT1 
gbak:    restoring column NOMPRENOMT1 
 gbak:committing metadata for table T1  
gbak:restoring table T2 
gbak:    restoring column IDT2 
 gbak:committing metadata for table T2 
gbak:    committing metadata  
gbak:restoring data for table T2 
gbak:committing data for table T2 
gbak:   1 records restored 
 gbak:    restoring index YYT1  
gbak:    restoring index YYT1N 
gbak:restoring data for table T1 
gbak:committing data for table T1 
gbak:   6 records restored 
gbak:    restoring privilege for user SYSDBA 
       .......
gbak:creating indexes 
gbak:    activating and creating deferred index YYT1 
gbak:    activating and creating deferred index YYT1N 
gbak:    committing metadata 

То есть на момент создания метаданные для таблиц - насколько можно верить логу - уже были созданы

...если конечно выражение столбца не перестало быть метаданными таблицы. Но тогда что делает restore c флагом commit-every-table, столбцы COMPUTED BY (NULL) ?
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181857
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladArioch"computed by ИНДЕКС получит свою формулу"Долго смеялся, не надо так больше

Это смешнее, чем [quote hvlad]computed by поле получит свою формулу[/quote ] ? Ну на здоровье тогда
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181884
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

1. План order может быть только если на поле есть индекс и по нему идёт сортировка (группировка у нас с помощью сортировки делается)
2. План с использованием index может быть только если присутствует where в в котором используется выражение/поле на котором построен этот индекс.

У тебя ни одного из этих условий не соблюдено. Поэтому план ты пишешь от балды.
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181885
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис2. План с использованием index может быть только если присутствует where в в котором используется выражение/поле на котором построен этот индекс.
или в условии соединения JOIN
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181956
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CORE-5122 , спасибо за тестовый пример
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39181993
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оперативненько. :)
...
Рейтинг: 0 / 0
FB 2.5.5 игнорирует индекс по UDF
    #39182002
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, Диме большое спасибо за быстрое решение.
...
Рейтинг: 0 / 0
25 сообщений из 78, страница 2 из 4
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5.5 игнорирует индекс по UDF
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]