Вопрос по версиям FB и алиасам

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Вопрос по версиям FB и алиасам

Сообщение Kotъ-Begemotъ » 18 мар 2008, 20:21

Насклько я понмаю, нельзя смешивать имена таблмц в качестве алмасов и произвольные алиасы. Например вот реальный кусок запроса:

Код: Выделить всё

UPDATE ORDWHSSP SET DAT=(SELECT MIN(MOVEWHS.MOVDATE)FROM MOVEWHS M INNER JOIN SPCMVWH S ON(S.MOVENO=M.MOVENO)AND(S.WHSNO=M.WHSNO)WHERE(M.PRIHOD>0)AND(M.PROVED>0)
Я понимаю, что так нельзя делать, это не мой код, и вопрос даже не в этом. Вопрос: В каких версиях FB это БУДЕТ работать? В 2 я так понял это работать не будет вообще. А в 1.5 будет?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 18 мар 2008, 21:58

2.0.4 и 2.1 имеют спец. ключ в конфиге для разрешения этого безобразия

Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Сообщение Kotъ-Begemotъ » 18 мар 2008, 23:42

hvlad писал(а):2.0.4 и 2.1 имеют спец. ключ в конфиге для разрешения этого безобразия
Отлично, но скажи, пожалуйста, в какой версии FB это было допустимо, и с какой версии это стало недопустимо, мне сейчас именно это важно?

Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Сообщение Kotъ-Begemotъ » 19 мар 2008, 00:03

Kotъ-Begemotъ писал(а):
hvlad писал(а):2.0.4 и 2.1 имеют спец. ключ в конфиге для разрешения этого безобразия
Отлично, но скажи, пожалуйста, в какой версии FB это было допустимо, и с какой версии это стало недопустимо, мне сейчас именно это важно?
Поясни, плиз, как можно в 2.0.3 заставитт работать такой той код?!?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 19 мар 2008, 00:42

Насколько я помню, это запретили в 2.0.0
Это должно быть в релизнотах

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 19 мар 2008, 09:25

я не пойму - а на фига ВОТ ТАК писать?
MOVEWHS.MOVDATE)FROM MOVEWHS M ...

Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Сообщение Kotъ-Begemotъ » 19 мар 2008, 13:46

kdv писал(а):я не пойму - а на фига ВОТ ТАК писать?
MOVEWHS.MOVDATE)FROM MOVEWHS M ...
Сам теряюсь в догадках :(( Единственное объяснение - писал студент за "подножный корм". А понятие DBA или руководителя проекта отсутствовало в принципе. Из за этой хрени я не могу перевести людей на двойку, и не могу использовать инкрементальный бэкап. Ладно бы такая лажа была только в хп и триггерах - их можно переписать. Но у них и в запросах то же самое :(((

Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Сообщение Kotъ-Begemotъ » 19 мар 2008, 18:48

Нда, видимо только установка 2.0.4 или 2.1 спасёт? Боюсь только как бы чего другого не вылезло, что судя по базе более чем возможно :(((

Esperito
Сообщения: 10
Зарегистрирован: 09 авг 2007, 19:23

Сообщение Esperito » 20 мар 2008, 00:34

hvlad писал(а):2.0.4 и 2.1 имеют спец. ключ в конфиге для разрешения этого безобразия
Извините за оффтоп, но где бы найти версию 2.0.4?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 20 мар 2008, 00:51

Esperito писал(а):где бы найти версию 2.0.4?
Пока что в виде снапшотов на официальном сайте

Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Сообщение Kotъ-Begemotъ » 20 мар 2008, 01:02

hvlad писал(а):
Esperito писал(а):где бы найти версию 2.0.4?
Пока что в виде снапшотов на официальном сайте
А что есть снапшот-версия? Что-то типа пре-релиза или беты? С точки хрения стабильности что посоветуешь - 2.0.4 или 2.1 RC2 ?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 20 мар 2008, 09:37

"снапшот" это файлы конкретного билда. просто файлы, без инсталлятора.

2.04 - это релиз.
2.1 - это кандидат в релиз.

поэтому вопрос "что посоветуешь" бессмысленен.

Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Сообщение Kotъ-Begemotъ » 20 мар 2008, 23:03

kdv писал(а):"снапшот" это файлы конкретного билда. просто файлы, без инсталлятора.

2.04 - это релиз.
2.1 - это кандидат в релиз.

поэтому вопрос "что посоветуешь" бессмысленен.
Понял, спасибо. А что включает в себя понятие "снапшот"? Ну, кроме того, что без инсталла? Или это все отличия? То есть понятие снапшон не подразумевает "недорелизности"? И в общем является стабильной версией? Извни что так подробно, но просто это сейчас актуально, вот и спрашиваю.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 21 мар 2008, 09:08

То есть понятие снапшон не подразумевает "недорелизности"?
см. snapshot в словаре. никакая релизность или недорелизность тут вообще ни при чем.
Извни что так подробно, но просто это сейчас актуально, вот и спрашиваю.
что актуально? Есть релиз, есть пре-релиз. что тебе надо, то и используешь. любые альфы, беты и пре-релизы - на свой риск.

Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Сообщение Kotъ-Begemotъ » 21 мар 2008, 16:37

Кстати в FB 2.0.3 тоже есть в firebird.conf
OldParameterOrdering = 0

Он просто "для красоты"?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 21 мар 2008, 16:44

Kotъ-Begemotъ писал(а):Кстати в FB 2.0.3 тоже есть в firebird.conf
OldParameterOrdering = 0

Он просто "для красоты"?
Когда
ты
будешь
читать
релиз ноты
???

:twisted: :twisted: :twisted:

Это не тот параметр, о котором я писал выше.

Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Сообщение Kotъ-Begemotъ » 21 мар 2008, 17:47

hvlad писал(а): Когда
ты
будешь
читать
релиз ноты
???
:twisted: :twisted: :twisted:
Это не тот параметр, о котором я писал выше.
Гм... Я просто не понял в КАКОМ релизноте надо это искать?!? В 2.0.4 своего релизнота нет - лежит от 2.0.3, поэтому я просто открыл firebird.conf и поискал в нём. Да, действительно нужный мне параметр это RelaxedAliasChecking.
Поиск в релизноте по RelaxedAliasChecking ничего не дал. Описание нашёл только в RN по 2.1, котороый только скачал... Так что зря говоришь, я не "чукча-писатель", просто ты сказал что нужные ключи есть в 2.1 И 2.0.4. Поскольку выше kdv меня убедил, что 2.0.4 это релиз, в отличие от релиз-кандидата 2.1, я скачал именно его на пробу, а в его доках про RelaxedAliasChecking ничего нету :( В том числе и в whatsnew.txt, Firebird_conf.txt и прочих файлах в архиве 2.0.4...
Так что зря ругаешься, трудно читая Release Notes найти то, чего в них нет...

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 21 мар 2008, 18:21

Ты спросил конкретно про OldParameterOrdering, который есть во всех RN к той версии в которой его ввели.

2.0.4 ещё не вышел, нет даже RC, посему RN к нему нет.

Причём тут RelaxedAliasChecking ???

Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Сообщение Kotъ-Begemotъ » 21 мар 2008, 18:40

hvlad писал(а):Причём тут RelaxedAliasChecking ???
Ээээ... как это при чём? Я собственно ветку с этого и начал. Что не могу перевести людей на FB2 из-за вот такого безобразного использования алиасов. А в конфиге читаю:

# Relations aliases checking rules in SQL
#
# Since Firebird 2.0, strict alias checking rules were implemented in the SQL
# parser accordingly to the SQL standard requirements. This setting allows
# to relax these rules to make legacy applications run on Firebird 2.0.
# Being set to 1 (true), it allows the parser to resolve a column reference
# by using a relation name even if an alias is specified for that relation.
# For example, queries like:
# SELECT TABLE.X FROM TABLE A
# would be allowed.
#
# It is highly not recommended to turn this setting on. Also note that
# there is no guarantee it will be supported in future Firebird versions.
#
# Type: boolean
#
#RelaxedAliasChecking = 0

Как раз то, что надо.

belov-evgenii
Сообщения: 52
Зарегистрирован: 28 сен 2007, 10:19

Сообщение belov-evgenii » 22 мар 2008, 13:03

Kotъ-Begemotъ писал(а):А в конфиге читаю:
В каком конфиге? У меня в 2.0.3 нету такого

Ответить