powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / Кто знает о syscolumns.colattr?
10 сообщений из 10, страница 1 из 1
Кто знает о syscolumns.colattr?
    #37283541
victor16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Версия 11.50xC8.
Столкнулся с проблемой, что означает это поле syscolumns.colattr.
В документации не нашел об этом ни слова (может плохо искал).
Экспериментальным путем выяснил, что как-то связано с опциями
создания таблицы, типа "with crcols", "with vercols", "with replcheck".
Никто не может сказать что-нибудь более подробно об этом поле?
Например, как связаны значения поля syscolumns.colattr и опции создания таблицы?

С уважением,
Виктор
...
Рейтинг: 0 / 0
Кто знает о syscolumns.colattr?
    #37284140
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
victor16Добрый день!

Версия 11.50xC8.
Столкнулся с проблемой, что означает это поле syscolumns.colattr.
В документации не нашел об этом ни слова (может плохо искал).
Экспериментальным путем выяснил, что как-то связано с опциями
создания таблицы, типа "with crcols", "with vercols", "with replcheck".
Никто не может сказать что-нибудь более подробно об этом поле?
Например, как связаны значения поля syscolumns.colattr и опции создания таблицы?

С уважением,
Виктор

Скорее всего, это служебное поле для описания скрытых полей (ALTER TABLE ... ADD CRCOLS).

Improving the Performance of Consistency Checking with an Index

You can now increase the speed of a consistency check on a replicate by indexing a new shadow column, ifx_replcheck. You add the ifx_replcheck column to your replicated table using the WITH REPLCHECK clause and create a unique index on the ifx_replcheck column and your primary key columns. You can also alter an existing table to add the ifx_replcheck column. The replicated table must also have the CRCOLS shadow columns. You cannot perform a table-level restore on a table that contains the ifx_replcheck column.

С уважением,
Вадим.
...
Рейтинг: 0 / 0
Кто знает о syscolumns.colattr?
    #37284889
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor16, на страничках Informix Library есть замечательные ссылки типа "пните меня, если здесь что-то не так"...
Проверял - работают :)
На страничке с описание syscolumns нажмите ссылочку и отправьте письмо - и будет Вам счастье. Правда, не моментально :)
...
Рейтинг: 0 / 0
Кто знает о syscolumns.colattr?
    #37286076
victor16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойvictor16, на страничках Informix Library есть замечательные ссылки типа "пните меня, если здесь что-то не так"...
Проверял - работают :)
На страничке с описание syscolumns нажмите ссылочку и отправьте письмо - и будет Вам счастье. Правда, не моментально :)
Если под Informix Library понимать ссылки типа
тут
или тут
или даже тут
вынужден огорчить, там нет ни словечка про поле colattr.
Если бы там было хоть что-то, вопрос бы не возник.
Сейчас изучаю творение Кагеля.
Похоже, в исходниках есть частичный ответ на мой вопрос.
...
Рейтинг: 0 / 0
Кто знает о syscolumns.colattr?
    #37286292
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor16АнатоЛойvictor16, на страничках Informix Library есть замечательные ссылки типа "пните меня, если здесь что-то не так"...
Проверял - работают :)
На страничке с описание syscolumns нажмите ссылочку и отправьте письмо - и будет Вам счастье. Правда, не моментально :)
Если под Informix Library понимать ссылки типа
тут
или тут
или даже тут
вынужден огорчить, там нет ни словечка про поле colattr.
Если бы там было хоть что-то, вопрос бы не возник.
Сейчас изучаю творение Кагеля.
Похоже, в исходниках есть частичный ответ на мой вопрос.
Я действительно предлагал вот на этой страничке:
1. нажать внизу текста ссылочку Send feedback
2. написать в разделе "How can we improve this information?" что-нить типа "This topic not contain information about column "colattr".
3. Указать свой e-mail address
4. Нажать Submit
5. Получить вежливое " Thank you. We have received your comments and will respond as soon as possible."
6. Через некоторое время получить на мыло лично письмо с описанием поля.
7. При выходе патча получить в доке вожделенный текст.

That's all, folks!
...
Рейтинг: 0 / 0
Кто знает о syscolumns.colattr?
    #37288907
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойThat's all, folks!

Точнее, не совсем всё: получен вот такой ответ:

IBMHello Mr. Loy,

Thank you for bringing this matter to my attention!

I searched the documentation of both the 11.50 and 11.70 versions of the IBM Informix database server, and I find no reference to any syscolumns.colattr column in the system catalog for either release, nor for earlier releases. (For many years the system catalog has included syscolattribs, but as you know, that is an entire table, rather than a single column, and the names are not identical.)

I appreciate your concern that this might be a documentation error of omission, but without knowing why you believe syscolumns.colattr is available, I think it is either imaginary, or else a component of some incomplete and undocumented feature that is not yet of practical value to Informix users.

But this is only my personal speculation. When a new Informix feature has been designed, coded, tested and validated, we announce it and document it, so that Informix users can deploy it, and IBM can recover the cost of its development.

отаке, переписка продолжается :)
...
Рейтинг: 0 / 0
Кто знает о syscolumns.colattr?
    #37297782
victor16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если кому-то интересно...

Удалось выяснить, что это зависит от опций оператора CREATE TABLE ..
если указать WITH replcheck , то в syscolumns появляется поле ifx_replcheck , у которого colattr=9

если указать WITH vercols , то в syscolumns появляются два поля:
ifx_row_version , у которого colattr=3
ifx_insert_checksum , у которого colattr=5

Во всех остальных случаях, в том числе и если создать поля вручную с аналогичными названиями colattr=0 .
Других значений мне не удалось получить.
...
Рейтинг: 0 / 0
Кто знает о syscolumns.colattr?
    #37298288
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor16, техпис от IBM написал, что данное поле не вынесено на документирование архитектором (разработчиками), поэтому пока можем пользоваться только на свой страх и риск :(. Если интересно, могу привести ответ на аглицком.

И тут уже начинает распирать любопытство: а Вам это поле зачем?
...
Рейтинг: 0 / 0
Кто знает о syscolumns.colattr?
    #37298583
victor16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что Server Studio, коим я частенько пользуюсь, тоже, оказывается, не знает об syscolumns.colattr,
и при выполнении операции diff между таблицей, созданной с опциями (WITH vercols, WITH replcheck)
и таблицей без оных, често генерит sql-скрипт, создающий эти служебные поля, но не так как надо.
Т.е. вместо оператора
Код: plaintext
ALTER TABLE ... ADD vercols; ALTER TABLE ... ADD replcheck
Server Studio генерит бессмыслицу, вроде
Код: plaintext
1.
2.
ALTER TABLE ... ADD ifx_insert_checksum INT default NULL,
    ifx_row_version INT default  1 ,
    ifx_replcheck BIGINT default AAAAAAAAAAE  1 
При этом myschema от Кагеля генерит нормальный синтаксис.
Мне нужно было пройтись по всем таблицам, не имеющим опций vercols и replcheck и сгенерить скрипт для их создания,
а также для удаления того, что было сделано через Server Studio. Получилось что-то типа этого:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
SELECT UNIQUE
"ALTER TABLE " || TRIM(tabname) || " DROP ifx_replcheck;" 
FROM syscolumns, systables
WHERE systables.tabid = syscolumns.tabid
AND syscolumns.colname = "ifx_replcheck"
AND syscolumns.colattr ==  0 ; -- must be 9
SELECT UNIQUE
"ALTER TABLE " || TRIM(tabname) || " DROP ifx_row_version;" 
FROM syscolumns, systables
WHERE systables.tabid = syscolumns.tabid
AND syscolumns.colname = "ifx_row_version"
AND syscolumns.colattr ==  0 ; -- must be 3

SELECT UNIQUE
"ALTER TABLE " || TRIM(tabname) || " DROP ifx_insert_checksum;" 
FROM syscolumns, systables
WHERE systables.tabid = syscolumns.tabid
AND syscolumns.colname = "ifx_insert_checksum"
AND syscolumns.colattr ==  0 ; -- must be 5

select "ALTER TABLE " || tabname || " ADD crcols;"
from systables
where tabid >=  99 
and tabtype = "T"
and flags !=  8 
AND tabid IN (SELECT tabid FROM sysconstraints WHERE constrtype = "P");

select "ALTER TABLE " || tabname || " ADD vercols;"
from systables
where tabid >=  99 
and tabtype = "T"
and tabid not in (
select tabid from syscolumns
where colname = "ifx_row_version" and colattr =  3 ) 
and tabid not in (
select tabid from syscolumns
where colname = "ifx_insert_checksum" and colattr =  5 ) 
AND tabid IN (SELECT tabid FROM sysconstraints WHERE constrtype = "P");

select "ALTER TABLE " || tabname || " ADD replcheck;"
from systables
where tabid >=  99 
and tabtype = "T"
and tabid not in (
select tabid from syscolumns
where colname = "ifx_replcheck" and colattr =  9 ) 
AND tabid IN (SELECT tabid FROM sysconstraints WHERE constrtype = "P");

-- select "CREATE UNIQUE INDEX irc_" || tabname || " ON " || tabname || " (" || trim(get_idx_colname(idxname)) || ", ifx_replcheck) IN dbidx;"
--   FROM systables, sysconstraints
--  WHERE sysconstraints.tabid = systables.tabid
--    AND sysconstraints.constrtype = "P"
-- AND systables.tabid IN (SELECT tabid FROM sysconstraints WHERE constrtype = "P");

Последние закомментированные строки - это рекомендации из Informix Enterprise Replication Guide,
для ускорения синхронизации данных узлов ER, но думаю, что создание такого индекса не сильно помогает .
...
Рейтинг: 0 / 0
Кто знает о syscolumns.colattr?
    #37299216
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor16, спасибо, познавательно.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Кто знает о syscolumns.colattr?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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