|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
Добрый день. FB 2.5.6 CS. Все действия выполнялись в isql. Создадим таблицу и заполним ее данными: Код: sql 1. 2. 3. 4.
На базе таблицы создадим view: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Создадим домен и изменим на него тип поля VAL: Код: sql 1. 2. 3.
Ошибка попытки удалния системного домена: Код: powershell 1. 2. 3. 4. 5.
Немного изменим сценарий: Создадим таблицу: Код: sql 1. 2. 3. 4. 5. 6.
На базе таблицы создадим view: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Изменим тип и заполним значения поля VAL: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Запрос из view вызывает ошибку: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Понятно, что после перекомпиляции view ошибка исчезает. С уважением, Polesov. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 15:18 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
11.08.2017 15:18, Polesov пишет: > Понятно, что после перекомпиляции view ошибка исчезает. ну а? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 15:30 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
PolesovПонятно, что после перекомпиляции view ошибка исчезает. Вот ты сами и вышел на решение. Всё верно. При изменении типа поля в таблице требуется перекомпиляция всех зависимых от таблицы объектов: процедур, просмотров, триггеров, которые это поле используют. А что дальше-то? В чём вопрос, собственно? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 15:41 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
В оракле тоже инвалидами становятся после каждого чиха. Беспердел! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 16:29 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
o_v_aА что дальше-то? В чём вопрос, собственно? Ну, в идеале было бы предупреждение, что данное поле используется еще где-либо. А так надо помнить, что при изменении домена у поля... (и далее по тексту) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 17:11 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
Polesov, блокировать изменение домена - плохо. не перекомпилировать автоматом объекты - плохо. выдавать ошибку рантайма - плохо. Я бы посоветовал определиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 17:24 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
wadman> В оракле тоже Обсуждалось же много раз. Едва ли на это стоит ориентироваться. Просто иногда лучшего варианта нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 17:24 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
kdv> Я бы посоветовал определиться. Это далеко не все возможные варианты. Есть еще "инвалидировать зависимости и сообщить об этом", например. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 17:26 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
PolesovА так надо помнить, что при изменении домена у поля... (и далее по тексту) Нужно помнить заглянуть на таб с зависимостями, да... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 17:26 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
Какой таб, куда заглянуть? В isql ? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 17:27 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
Про "зависимости зависимостей" я уж молчу. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 17:27 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамКакой таб, куда заглянуть? В isql ? В эксперте вестимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 17:43 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамЕсть еще "инвалидировать зависимости и сообщить об этом", например. в данном конкретном случае это и получилась "инвалидация" - вью не работает после изменения домена. Получаем ошибку в рантайме, все ок. Если бы оно тупо инвалидировалось из-за этого изменения, то не работало бы даже если бы с приведением типов было все ок. понятно, что могут быть и другие случаи, но тут все как-то более-менее нормально получается, я не вижу причин жаловаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 17:56 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
kdvполучилась "инвалидация" - вью не работает после изменения домена вью не работает только в том случае, если после замены домена были изменения данных, превышающие по размеру допустимое значение старого домена. И если ошибка всплывет через какое-то время, поиск ее причины становится весьма не очевидным. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 18:15 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
kdvPolesov, блокировать изменение домена - плохо. не перекомпилировать автоматом объекты - плохо. выдавать ошибку рантайма - плохо. Я бы посоветовал определиться. А ошибке рантайма альтернативы нет? Может быть, какое-нибудь предупреждение? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 18:17 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
PolesovИ если ошибка всплывет через какое-то время, поиск ее причины становится весьма не очевидным. убиться можно. То есть, домен мы создаем чтобы использовать его в таблицах, процедурах, и т.д. А что после изменения размера строкового столбца это может повлиять на зависимые объекты, мы не думаем. Я советую вам в систему проверки записать требование, чтобы при изменении чего-то вручную контролировали все зависимости. Скрипт же можно извлечь через isql -x, и его проверить. PolesovА ошибке рантайма альтернативы нет? Может быть, какое-нибудь предупреждение? проверять все зависимости на соответствие типа? Перекомпилировать автоматом? Сервер не может выдать сразу 10 ошибок при возникновении проблем с этим в 10 объектах. Варианты - либо не допускать изменения метаданных при зависимостях, либо допускать, но выдавать рантайм-ошибку. Либо, иметь флаг инвалидации и инвалидировать зависимые объекты, что как я уже сказал, практически одно и то же. В Оракле вы как раз это и получите. Проблем (таких) не будет только если абсолютно все будет интерпретироваться в рантайме, а не компилироваться заранее. И если в качестве столбцов будет использоваться именно домен. Насколько я помню, у разработчиков ФБ уже проскакивала мысль об интерпретации. Но я не в курсе, насколько далеко она зашла. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 18:53 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
kdvЯ советую вам в систему проверки записать требование, чтобы при изменении чего-то вручную контролировали все зависимости. Так и пытаемся делать, но случаются огрехи. kdvСервер не может выдать сразу 10 ошибок при возникновении проблем с этим в 10 объектах. Пусть выдаст одну первую. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 18:57 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
kdvблокировать изменение домена - плохо. А по-моем - хорошо и правильно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 20:03 |
|
Ошибка во view при изменении домена строкового поля таблицы.
|
|||
---|---|---|---|
#18+
kdv> в данном конкретном случае это и получилась "инвалидация" - вью не работает Вью работает. Данные (некоторые) не помещаются. А могут и помещаться. kdv> Получаем ошибку в рантайме, все ок. Я про рантайм ничего не говорил. kdv> Если бы оно тупо инвалидировалось из-за этого изменения, kdv> то не работало бы даже если бы с приведением типов было все ок. Вовсе необязательно инвалидировать без необходимости. > я не вижу причин жаловаться. Ну как обычно, путаете понятия "жить можно", "жаловаться" и "есть обширное поле для улучшений". Три разных понятия. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2017, 22:08 |
|
|
start [/forum/topic.php?fid=40&msg=39504230&tid=1561460]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 158ms |
0 / 0 |