Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 FB3: таблица JOIN процедура  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31305
Здравствуйте ВСЕ!
Склероз настойчиво подсовывает мыслю, что в FB3 (или чуть раньше) правилось поведение оптимизатора в случае соединения таблицы с процедурой, в том случае если процедура является "ведомой"
SELECT *
FROM Table1 T
JOIN Procedure1(T.Field1) P ON 1=1

канонично конечно писать
LEFT JOIN Procedure1(T.Field1) P ON 1=1

но вот въелось в мозг, что отныне LEFT необязателен.

развейте сомнения, плс.
16 июл 20, 18:18    [22168786]     Ответить | Цитировать Сообщить модератору
 Re: FB3: таблица JOIN процедура  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10586
Мимопроходящий,

да необязателен. Вот так красивее

SELECT *
FROM Table1 T
JOIN Procedure1(T.Field1) P ON TRUE


или даже вот так

SELECT *
FROM Table1 T
CROSS JOIN Procedure1(T.Field1) P


А LEFT теперь можно использовать только когда он действительно нужен
16 июл 20, 18:25    [22168790]     Ответить | Цитировать Сообщить модератору
 Re: FB3: таблица JOIN процедура  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31305
я собственно из-за почему вопрос поднял:
сегодня вылез стабильно воспроизводимый случай с

no current record for fetch operation
Statement failed, SQLSTATE = 22000


минимизированный запрос выглядит так:
Select TTN.OpCode,
       (select sum(R.Norm_Price / G.Rate)
          from ROL_TTNormOp X
          join Rasxodn_On_Listor R on R.Code=X.Rolcode
          join getrate(R.Valute, 3, 'NOW') G on 1=1
        where X.KodIn=TTN.KodIn and X.KodOut=TTN.KodOut and X.OpCode=TTN.OpCode)
From TTNorm_Operations TTN
Where TTN.KodIn=19552 And TTN.KodOut=19896

человек писавший запрос уверяет, что "раньше нормально работало, а тут вдруг вылезло"

зы: LI-V3.0.4.33054 x64
16 июл 20, 19:43    [22168824]     Ответить | Цитировать Сообщить модератору
 Re: FB3: таблица JOIN процедура  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 6917
а выложить покоцанно-воспроизводимую вырезку можешь?
16 июл 20, 20:26    [22168849]     Ответить | Цитировать Сообщить модератору
 Re: FB3: таблица JOIN процедура  [new]
alekcvp
Member

Откуда:
Сообщений: 2247
А просто JOIN - это же синоним INNER JOIN, да? Или с процедурами там по-другому?
16 июл 20, 20:27    [22168850]     Ответить | Цитировать Сообщить модератору
 Re: FB3: таблица JOIN процедура  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31305
dimitr
а выложить покоцанно-воспроизводимую вырезку можешь?
постараюсь соорудить
16 июл 20, 20:29    [22168852]     Ответить | Цитировать Сообщить модератору
 Re: FB3: таблица JOIN процедура  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31305
соорудил скрипт.
в сжатом виде 1.3Мб
слать в почту, или выложить?
17 июл 20, 17:49    [22169440]     Ответить | Цитировать Сообщить модератору
 Re: FB3: таблица JOIN процедура  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31305
выложил на яндекс: https://yadi.sk/d/6c29BiL3nznlDQ
17 июл 20, 18:28    [22169463]     Ответить | Цитировать Сообщить модератору
 Re: FB3: таблица JOIN процедура  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 6917
Воспроизвел, спасибо. Буду разбираться.
18 июл 20, 09:07    [22169626]     Ответить | Цитировать Сообщить модератору
 Re: FB3: таблица JOIN процедура  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31305
Ок.
спасибо! :)
18 июл 20, 11:21    [22169655]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить