Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB3.0 isql bug? / 6 сообщений из 6, страница 1 из 1
03.02.2017, 12:38
    #39398051
sonkz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB3.0 isql bug?
У меня в пакетном режиме работает извлекалка метаданных из разных баз для получения дельты между ними.
Мета извлекается в скрипте командой:

Код: powershell
1.
isql -a ${base_} -user ${user_} -pass ${pass_}  -o ${ddl_file} 2>${err_f}



Для "computed by" полей при использовании isql от 2.5 получаем (пример)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
/* Table: CALENDAR_, Owner: Owner */
CREATE TABLE CALENDAR_ (
        DATE_ BAS$DATE NOT NULL,
        BANKS_DAY BAS$BOOL default 1,
        YEAR_ COMPUTED BY (extract(year from date_)),
        QUARTER_ COMPUTED BY ((cast(ceil(cast(extract(month from cast(DATE_ as date)) as double precision)/3.0) as smallint))),
        MONTH_ COMPUTED BY (extract(month from date_)),
        DAY_OF_MONTH COMPUTED BY (extract(day from date_)),
        DAY_OF_YEAR COMPUTED BY (cast((extract(yearday from date_)+1)as smallint)),
CONSTRAINT PK_CALENDAR PRIMARY KEY (DATE_));



Та же таблица при использовании isql от трешки (3.0 или 3.0.1)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
/* Table: CALENDAR_, Owner: Owner */
CREATE TABLE CALENDAR_ (
        DATE_ BAS$DATE NOT NULL,
        BANKS_DAY BAS$BOOL default 1,
        YEAR_ SMALLINT COMPUTED BY (NULL),
        QUARTER_ SMALLINT COMPUTED BY (NULL),
        MONTH_ SMALLINT COMPUTED BY (NULL),
        DAY_OF_MONTH SMALLINT COMPUTED BY (NULL),
        DAY_OF_YEAR SMALLINT COMPUTED BY (NULL),
CONSTRAINT PK_CALENDAR PRIMARY KEY (DATE_));



Это жук?
...
Рейтинг: 0 / 0
03.02.2017, 13:19
    #39398105
sonkz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB3.0 isql bug?
Нашел - точно известный жук CORE-5194
Звиняйте.
...
Рейтинг: 0 / 0
03.02.2017, 13:22
    #39398112
sonkz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB3.0 isql bug?
Только получается, что он нифига не пофиксеный. :-(
...
Рейтинг: 0 / 0
03.02.2017, 14:31
    #39398193
sonkz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB3.0 isql bug?
Вот облажался, так облажался...
Пофиксеный баг. Просто computed by извлекается отдельным статментом.

Код: sql
1.
2.
3.
4.
5.
6.
ALTER TABLE CALENDAR_
        ALTER YEAR_ TYPE SMALLINT COMPUTED BY (extract(year from date_)),
        ALTER QUARTER_ TYPE SMALLINT COMPUTED BY ((cast(ceil(cast(extract(month from cast(DATE_ as timestamp)) as double precision)/3.0) as smallint))),
        ALTER MONTH_ TYPE SMALLINT COMPUTED BY (extract(month from date_)),
        ALTER DAY_OF_MONTH TYPE SMALLINT COMPUTED BY (extract(day from date_)),
        ALTER DAY_OF_YEAR TYPE SMALLINT COMPUTED BY (cast((extract(yearday from date_)+1)as smallint));



а мой ddl парсер об этом ни сном, ни духом...
...
Рейтинг: 0 / 0
03.02.2017, 14:34
    #39398198
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB3.0 isql bug?
sonkz,

и правильно что отдельным статментом. А то можно такие вычисляемые поля насочинять, что там рекурсивные зависимости полезут.
...
Рейтинг: 0 / 0
03.02.2017, 14:39
    #39398205
sonkz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB3.0 isql bug?
Симонов Денис, дык оно понятно... Я ж написал, что облажался...
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB3.0 isql bug? / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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