>> боюсь, сейчас меня пошлют... но объясните мне пожалуйста чем плоха идея
 >> диалекта SQL? Допустим мы создаем диалект 4, где SELECT из процедуры без
 >> SUSPEND запрещен, но оставляем диалект 3, где он разрешен. Где грабли?
 >
 > Грабли с диалектами будут при
 > эксплуатации.

В чем конкретно? Если мы пишем в документации "работает начиная с версии
2.0", то такое же описание "работает в диалекте 4" должно [теор.] иметь
те же последствия. Существующие программы в любом случае указывают
диалект 3. Новые, скомпилированые с новым ibase.h будут использовать
диалект 4. Тогда можно будет ввести правило, что каждая major версия ФБ
поддерживает новый диалект (основной) и диалект предыдущей major версии
(но не больше).

Я бы даже ввел правило, что с каждой новой major версией номер текущего
диалекта увеличивается на 1. Таким образом разработчики при миграции на
новую версию сервера будут также обязаны мигрировать SQL. Больших
проблем в этом не вижу, так как major версии ФБ у нас чаще чем раз на 2
года не получается выпускать.

Я пока вижу грабли только для разработчиков ФБ - увеличивается число "if
sqlDialect == 4" в коде самого парсера. А еще учитывая общее желание
извести BLR - будет непросто... Но опять, таки, я не слышал (хотя
возможно пропустил) аргументов против виртуальной машины аналогичной
BLR. Джим был категорически против, но деталей не объяснил... А посему у
меня пока еще в голове крутится идея новой виртуальной машины (назвем ее
например extendedBLR), где нет ощутимых ограничений на число встроенных
ф-ций например, и каждый парсер парсит свой диалект SQL в новый eBLR.

Роман


--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---

Ответить