Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Blob Subtype 2 / 17 сообщений из 17, страница 1 из 1
23.10.2020, 11:47
    #40011131
dedRasta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
Чисто любопытно. В примерах к FibPlus есть скрипт бд Employee. В нем есть такой кусок:
Код: plsql
1.
2.
3.
4.
CREATE TABLE FIB$APP_STATISTICS (
    ID               INTEGER NOT NULL,
    APP_ID           VARCHAR(12),
    SQL_TEXT         BLOB SUB_TYPE 2 SEGMENT SIZE 1,


При попытке выполнить Firebird (2.5.9) меня обломил, ибо:
What are BLOB subtypes?

Blobs can store infinite amounts of data. They can be used to store text, images, videos, audio, or any other kind of data. Retrieving and writing data to blobs is done with separate functions, so it is usable to have some basic string (CHAR, VARCHAR) operations available for textual blob. Therefore the sub types were added (as blob is a type). The subtypes are:

0 - binary data (image, video, audio, whatever)
1 - text (basic character functions work)
2 - BLR (used for definitions of Firebird procedures, triggers, etc.)

User applications should only use subtypes 0 and 1.

Пришлось создать таблицу с подтипом 1. Но потом: изменяю поле -> редактирую домен -> меняю подтип на 2 - и получаю
Код: plsql
1.
2.
3.
4.
CREATE TABLE FIB$APP_STATISTICS (
    ID               INTEGER NOT NULL,
    APP_ID           VARCHAR(12),
    SQL_TEXT         BLOB SUB_TYPE 2 SEGMENT SIZE 1,


Т. е. если нельзя, но очень хочется, значит, можно?
...
Рейтинг: 0 / 0
23.10.2020, 12:04
    #40011134
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
dedRasta
Т. е. если нельзя, но очень хочется, значит, можно?
а смысл?
...
Рейтинг: 0 / 0
23.10.2020, 12:04
    #40011135
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
dedRasta,

скрипт этот, видимо, делался во времена царя гороха. И непонятно, почему столбец называется SQL_TEXT, а тип ему задан как для BLR. Теоретически, если там и правда был бы BLR, это было сделано для удобства просмотра столбца в IBExpert, и ни для чего более.
Также смущает SEGMENT SIZE 1, при том что у самих же FIBPlus размер сегмента в либах задан в 16к.
А "всем известно", что размер сегмента, определяемый в ddl, практически всем приложениям (и фибплюсу исходно) абсолютно пофиг. Как и серверу.
dedRastaНо потом: изменяю поле -> редактирую домен -> меняю подтип на 2
редактируешь чем? alter ... или колупаешь системные таблицы редактором в IBE?
...
Рейтинг: 0 / 0
23.10.2020, 13:10
    #40011175
dedRasta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
kdv
dedRasta,
редактируешь чем? alter ... или колупаешь системные таблицы редактором в IBE?

Редактором IBE, тем, который выскакивает, когда поле своей таблицы правишь
...
Рейтинг: 0 / 0
23.10.2020, 13:12
    #40011177
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
dedRasta,

кстати, "я видел всё". Оказалось, что абсолютно такое же уже видел в одной базе, для которой мы миграцию делали год назад.
Именно BLOB SUB_TYPE 2 SEGMENT SIZE 1. Такой тип использовался в одном столбце для картинок, в другом для х.з. чего.
Как обычно, на вопрос "зачем так сделано" ответить не смогли, за давностью DDL.

Сильно не искал, но конструкция SEGMENT SIZE 1 действительно попадается только в статьях FIBPlus. Нахрена это, я не знаю.
...
Рейтинг: 0 / 0
23.10.2020, 13:13
    #40011179
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
dedRastaРедактором IBE, тем, который выскакивает, когда поле своей таблицы правишь
ну, привет тебе. Отвыкай.
...
Рейтинг: 0 / 0
23.10.2020, 13:24
    #40011185
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
kdv
конструкция SEGMENT SIZE 1 действительно попадается только в статьях FIBPlus. Нахрена это, я не знаю.
потому, что 0 нельзя
...
Рейтинг: 0 / 0
23.10.2020, 13:45
    #40011201
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
Мимопроходящий,

а нафига его вообще указывать???
...
Рейтинг: 0 / 0
23.10.2020, 13:49
    #40011203
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
kdv,

IBExpert и по сей день в скриптах таблиц показывает SEGMENT SIZE 80
...
Рейтинг: 0 / 0
23.10.2020, 13:56
    #40011204
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
kdv
а нафига его вообще указывать???
это вопрос к востриковым
...
Рейтинг: 0 / 0
23.10.2020, 14:27
    #40011220
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
Симонов Денис
IBExpert и по сей день в скриптах таблиц показывает SEGMENT SIZE 80
это не его вина.
это сервер по умолчанию пихает 80, если при создании не указано иное.
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE TAB(BLB BLOB SUB_TYPE TEXT);

SELECT F.Rdb$field_name, D.Rdb$segment_length
FROM Rdb$relation_fields F
JOIN Rdb$fields D ON D.Rdb$field_name = F.Rdb$field_source
WHERE (F.Rdb$relation_name = 'TAB')
  AND (F.Rdb$field_name = 'BLB')
...
Рейтинг: 0 / 0
23.10.2020, 14:45
    #40011232
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
Симонов Денис,

ну и пусть пихает. Вот зачем пихать 1 - это вопрос. Какая-то разновидность "программерской шутки"?
...
Рейтинг: 0 / 0
23.10.2020, 14:50
    #40011236
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
Мимопроходящий,

да пусть пихает свои 80 в системные таблицы. Не обязательно эту фразу в DDL извлекать, даже если в Rdb$segment_length что-то записано.

Если я правильно понимаю сервер всё равно кладёт болт на то что указано в SEGMENT SIZE и пишет тупо тем размером сегмента который посылает клиент. Для поточных блобов так это предложение вообще бессмысленно.
...
Рейтинг: 0 / 0
23.10.2020, 14:55
    #40011239
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
Симонов Денис
Не обязательно эту фразу в DDL извлекать
это... как его...
ВОЛЮНТАРИЗЪМ!
(С)
...
Рейтинг: 0 / 0
23.10.2020, 15:47
    #40011270
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
что лежит в системных таблицах, то и отображается.
к isql претензий нет?
...
Рейтинг: 0 / 0
23.10.2020, 22:18
    #40011441
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
Мимопроходящий,

Кстати, мне вот тоже интересно.... Если на SEGMENT SIZE все кладут - может ли быть случай, когда он "сыграет"?
...
Рейтинг: 0 / 0
23.10.2020, 23:27
    #40011452
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Blob Subtype 2
DarkMaster,

если на стене висит ружье ...
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Blob Subtype 2 / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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