Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сервером заменяется тип поля при группировке в представлении / 25 сообщений из 29, страница 1 из 2
11.10.2017, 09:43
    #39534431
Kirill Razuvaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
Добрый день!
Несколько дней назад уже пытался задать этот вопрос, но, похоже, зря сформулировал его с упором в сторону приложения. Меж тем, ноги растут к серверу.
Итак, создаем, таблицу:
Код: sql
1.
2.
3.
4.
CREATE TABLE A (
    ID    D_INTEGER NOT NULL /* D_INTEGER = INTEGER */,
    FLAG  D_BOOLEAN /* D_BOOLEAN = INTEGER CHECK (VALUE BETWEEN 0 and 1) */
)


На ее основе создаем простое представление:
Код: sql
1.
2.
3.
CREATE OR ALTER VIEW VIEW_SIMPLE(ID, FLAG) 
AS
select id, flag from a;


Смотрим типы полей (я смотрю в IBExpert) и видим D_INTEGER и D_BOOLEAN. Теперь создаем аналогичное представление, но с группировкой (для упрощения не используем даже агрегатных функций, хотя с ними результат аналогичен):
Код: sql
1.
2.
3.
CREATE OR ALTER VIEW VIEW_GROUP(ID, FLAG)
AS
select id, flag from a group by 1,2;


На выходе получаем поля с типами вида RDB$24155, RDB$24156. Но почему?
Я мог бы понять, если бы типы были заменены для полей, для которых применяются агрегаты типа SUM, но в данном случае диапазон значений полей не может меняться!
FB 2.5.7.
...
Рейтинг: 0 / 0
20.10.2017, 13:12
    #39539506
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
Kirill RazuvaevНо почему?Наверное, тупо захардкодено, что для всех выражений,
в т.ч. при группировке типы подбираются, а не копируются.
В систаблицах нахакать нельзя?

P.S. Если в 3.0 так же, то можно регить тикет, в принципе.
...
Рейтинг: 0 / 0
20.10.2017, 13:57
    #39539540
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
Kirill Razuvaev,

а если group by id, flag вместо цифр, то же самое будет?
...
Рейтинг: 0 / 0
20.10.2017, 21:22
    #39539766
Kirill Razuvaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
kdvKirill Razuvaev,

а если group by id, flag вместо цифр, то же самое будет?Проверю в понедельник
...
Рейтинг: 0 / 0
23.10.2017, 10:31
    #39540297
Kirill Razuvaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
kdvа если group by id, flag вместо цифр, то же самое будет?Да, то же самое.

Гаджимурадов РустамP.S. Если в 3.0 так же, то можно регить тикет, в принципе.Не могу проверить, увы, за отсутствие 3.0.
...
Рейтинг: 0 / 0
23.10.2017, 10:33
    #39540299
Kirill Razuvaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
Гаджимурадов РустамВ систаблицах нахакать нельзя?Вы про принудительное указание типа? Это же до ближайшей перекомпиляции представления, а кто потом вспомнит, что тонкий тюнинг после этого снова нужен...
...
Рейтинг: 0 / 0
23.10.2017, 10:57
    #39540323
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
особенность реализации. После группировки меняется контекст и исходной таблицы снаружи уже не видно, поля после этого выглядят "выражениями".
...
Рейтинг: 0 / 0
23.10.2017, 12:18
    #39540378
Kirill Razuvaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
dimitrособенность реализации.А техническая возможность поправить существует?
...
Рейтинг: 0 / 0
23.10.2017, 12:27
    #39540382
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
Kirill RazuvaevА техническая возможность поправить существует?
может быть, но зачем? Оно же отломится еще в каком-нибудь случае - например при union all. Просто не надо закладываться на имя домена в выходных параметрах, это очень криво. Тип совпадает? Ну и замечательно.
...
Рейтинг: 0 / 0
24.10.2017, 01:24
    #39540784
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
Kirill Razuvaev> Не могу проверить, увы, за отсутствие 3.0.

Дима подтвердил, можно в трекер.

Kirill Razuvaev> Вы про принудительное указание типа?
Kirill Razuvaev> Это же до ближайшей перекомпиляции
Kirill Razuvaev> представления, а кто потом вспомнит,
Kirill Razuvaev> что тонкий тюнинг после этого снова нужен...

Ну да, отломится. Но более лучших способов как-то не придумалось...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.10.2017, 01:33
    #39540788
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
dimitr> может быть, но зачем?

Неаккуратненько... (с)

Да и мало ли для чего там домен может
понадобиться, чеки чекать, например. :)
(интересно, они вообще предварительно
проверяются или тупо транслируются в
триггеры и таблицы напрямую?)

Можно ручной каст типа полей в DDL разрешить
(если это не противоречит стандарту, конечно).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.10.2017, 09:45
    #39540863
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
Гаджимурадов РустамДа и мало ли для чего там домен может
понадобиться
в приложении - ни для чего
...
Рейтинг: 0 / 0
24.10.2017, 10:14
    #39540875
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
dimitrГаджимурадов РустамДа и мало ли для чего там домен может
понадобиться
в приложении - ни для чего
В фиб+ так булевские поля распознаются, например.
...
Рейтинг: 0 / 0
24.10.2017, 12:10
    #39540960
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
чччД,

это костыль, который для более-менее непростых запросов не работает. И заставлять сервер, чтобы он таки осилил еще один случай из 100500 - мартышкин труд.
...
Рейтинг: 0 / 0
24.10.2017, 12:29
    #39540983
Kirill Razuvaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
В свете того, что в 3.0 поддерживается нативный логический тип, пните, пожалуйста, где почитать про особенности перехода, кроме как в RN.
...
Рейтинг: 0 / 0
24.10.2017, 12:34
    #39540984
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
Kirill RazuvaevВ свете того, что в 3.0 поддерживается нативный логический тип, пните, пожалуйста, где почитать про особенности перехода, кроме как в RN.
Ты хочешь в старом коде поменять поля Int на Boolean?
...
Рейтинг: 0 / 0
24.10.2017, 12:38
    #39540989
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
...
Рейтинг: 0 / 0
24.10.2017, 13:21
    #39541025
rico_spb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
В свете того, что в 3.0 поддерживается нативный логический тип, пните, пожалуйста, где почитать про особенности перехода, кроме как в RN.
...
Рейтинг: 0 / 0
24.10.2017, 13:30
    #39541031
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
rico_spbВ свете того, что в 3.0 поддерживается нативный логический тип, пните, пожалуйста, где почитать про особенности перехода, кроме как в RN.
Какого такого "перехода"?

В предыдущих версиях ты не использовал boolean ввиду их отсутствия, стало быть, никакого "перехода" не будет.
...
Рейтинг: 0 / 0
24.10.2017, 15:14
    #39541139
Kirill Razuvaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
чччДКакого такого "перехода"?Раньше или позже переезжать с 2.5 на 3.0 все равно придется. Сейчас есть повод задуматься об этом.
...
Рейтинг: 0 / 0
24.10.2017, 15:17
    #39541143
Kirill Razuvaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
...
Рейтинг: 0 / 0
24.10.2017, 15:18
    #39541146
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
24.10.2017 15:14, Kirill Razuvaev пишет:
> Раньше или позже переезжать с 2.5 на 3.0 все равно придется

просто так надо?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.10.2017, 15:38
    #39541169
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
Мимопроходящий24.10.2017 15:14, Kirill Razuvaev пишет:
> Раньше или позже переезжать с 2.5 на 3.0 все равно придется

просто так надо?Просто на взгляд полно мест, где трешка заметно (процентов на 20 и более) шустрее, при прочих равных. Но это у меня, за всех судить не возьмусь. В общем моя в процессе неспешного переползания.
...
Рейтинг: 0 / 0
24.10.2017, 15:43
    #39541175
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
24.10.2017 15:38, Ivan_Pisarevsky пишет:
> Просто на взгляд полно мест, где трешка заметно (процентов на 20 и более) шустрее, при прочих равных. Но это у меня, за всех судить не возьмусь. В общем моя в процессе неспешного переползания.

на бы железяку обновить до того что у тебя в эксплуатации, так вообще пределов счастью не было бы...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.10.2017, 15:51
    #39541182
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервером заменяется тип поля при группировке в представлении
Мимопроходящийна бы железяку обновить до того что у тебя в эксплуатации, так вообще пределов счастью не было бы...Железкой лечится не все и не всегда. Да и типовой двухпроцовый сервак на пару сотен коннектов не вот, чтоб сказать, "фонтан счастья". Чтоб оный не прилег приходится и "план покурить" и "мозгами пораскинуть".
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сервером заменяется тип поля при группировке в представлении / 25 сообщений из 29, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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