powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Blob Subtype 2
17 сообщений из 17, страница 1 из 1
Blob Subtype 2
    #40011131
dedRasta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чисто любопытно. В примерах к 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
Blob Subtype 2
    #40011134
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRasta
Т. е. если нельзя, но очень хочется, значит, можно?
а смысл?
...
Рейтинг: 0 / 0
Blob Subtype 2
    #40011135
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dedRasta,

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

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

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

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

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

IBExpert и по сей день в скриптах таблиц показывает SEGMENT SIZE 80
...
Рейтинг: 0 / 0
Blob Subtype 2
    #40011204
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
а нафига его вообще указывать???
это вопрос к востриковым
...
Рейтинг: 0 / 0
Blob Subtype 2
    #40011220
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
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
Blob Subtype 2
    #40011232
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

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

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

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

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

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


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