powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB3 и BOOLEAN
25 сообщений из 62, страница 1 из 3
FB3 и BOOLEAN
    #38816027
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Много лет как не использую FireBird, но новости подчитываю и мечтаю когда-нибудь перейти на него обратно с ненавситного MSSQL.

И тут вот на хабре попалась мне ссылка на презентацию

Инаписано там такое:

авторCommon SQL : BOOLEAN data type
Syntax
<data_type> ::= BOOLEAN
<boolean_literal> ::= TRUE | FALSE | UNKNOWN


Это что же получается, что я не смогу записать значение NULL в поле BOOLEAN, т.е. что-то типа

Код: plsql
1.
INSERT ONTO Table (Id, IsReady) VALUES (1, NULL)



Это не прокатит что-ли?
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816031
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold,

NULL и UNKNOWN одно и тоже для BOOLEAN
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816033
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goldя не смогу
Давно бы попробовал... "NULL - не значение, а состояние." (с) ХБ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816053
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне попробовать не на чем. Если работает, то почему список литералов не выглядит так:

<boolean_literal> ::= TRUE | FALSE | UNKNOWN | NULL
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816071
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldМне попробовать не на чем.
Бедный, компьютера нет, сообщения на форум пишешь с мобильника...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816091
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
От вы интересный. И зачем оно мне надо ставить сервер и тулы и пробовать если я пишу что я с FireBird не работаю.
Я сюда пришёл обговорить это место с теоретической точки зрения чтобы все ещё раз это обдумали и сошлись во мнении хорошо это сделано или нет.

Ведь получается же как. Если считать что в списке литералов нет NULL, потому что кто-то думает что NULL - это не литерал, то тогда NULL - это не одно и то же что UNKNOWN.

Я вот читаю дальше там примеры идут с выражениями наподобие BOOLFIELD IS UNKNOWN. Типа как получается что здесь UNKNOWN используется заместо NULL. Ну так тогда возникакет вопрос: раз он такой же как NULL, то тогда он тоже должен не быть литералом и с каких дел он в списке допустимых значений предствлен.

А также и следующий вопрос возникает: раз NULL то же самое что UNKNOWN, тогда можно пи в других местах использовать UNKNOWN вместо NULL, с числами например.

Ну в общем я удочку закинул. Кто за это ответственен - он прочитает и ответит, если посчитает нужным.
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816113
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold,

а ты видел где нибудь для целочисленных или строковых литералов указание что туда можно ставить NULL. Это как бы подразумевается по умолчанию. NULL можно засунуть в любой тип, если нет ограничения NOT NULL. А про то UNKNOWN и NULL это одно и тоже в доке кстати написано.
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816115
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoldА также и следующий вопрос возникает: раз NULL то же самое что UNKNOWN, тогда
можно пи в других местах использовать UNKNOWN вместо NULL, с числами например.

Конечно, трудно запретить идиотам использовать boolean literal с числами, но я надеюсь,
что даже им этой забавы надолго не хватит.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816125
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фигасе сколько лет прошло, Саша Голд объявился... :)

P.S. Дим, осади коней, будь любезен.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816128
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goldпочему список литералов не выглядит так
потому то NULL это не литерал

спецификация SQL5.3
<literal>
Function
Specify a non-null value.
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816155
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам, привет. Та зашёл тут, сколько лет прошло. Как меня кумарит этот MSSQL, если б ты знал, но никак не могу с него слезть, с реплотой всспоминаю о фаербёде и как Влад лично для нас сборки по почте с багофиксами присылал. Мыслимо ли это для MSSQL :-)

dimitr, и тебе привет. Ну я подозревал что вы так так это трактуете. Но согласись что в этом есть некоторая неоднозначность. Ты же пишешь что литерал - это функция, которая представляет значение NOT NULL. А UNKNOWN - представляет значение NULL и он литерал почему-то. Это называется "двойные стандарты".

Я понимаю что есть там стандарт и все дела, но этот UNKNOWN вносит смуту. Вы же, по сути, сделали его синонимом для NULL.

Вот что такое UNKNOWN? Это слово перводится как НЕ ИЗВЕСТНО. А если запихнуть в число NULL, то что это будет? Тоже ведь не известно? Тогда получается что этот UNKNOWN вполне подходит для применения вместо NULL повсеместно.

Вот у майкрософта по другому сделано. Они не парились особо и сделали такой тип данных как BIT, и всё. А EntityFramework его трактует как boolean. И нет вопросов и не надо никаких UNKNOWN
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816162
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К тому же теперь пользователю надо соображать что чему равно UNKNOWN = NULL, UNKNOWN <> NULL, UNKNOWN IS NULL, UNKNOWN IS DISTINCT FROM NULL и все эти мутные штучки
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816176
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold,

ничего не нужно соображать. К сравнению UNKNOWN с другими величинами применяются те же правила, что и при сравнении NULL. Не нравится тебе UNKNOWN используй вместо него NULL вот и всё.
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816180
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё скажу. Пишет пользователь так:

Код: sql
1.
2.
INSERT INTO MyTable (BOOL_FIELD) VALUES (NULL);
INSERT INTO MyTable (BOOL_FIELD) VALUES (UNKNOWN);



Потом делает SELECT BOOL_FIELD FROM MyTable

А что ты ему покажешь?

NULL
NULL

Так?

А у человека возникнет вопрос закономерный. Он скажет что он же литерал вставил, не NULL. Чё за дела, верните мой литерал. Все остальные литералы возвращает, а этот нет.
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816181
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold> Как меня кумарит этот MSSQL, если б ты знал, но никак не могу с него слезть

А на какой верси вы сидите? И что именно не нравится?
СУБД как СУБД, со своими плюсами и минусами - хоть
достаточно распространена и популярна, по крайней мере.

> Вот что такое UNKNOWN?

ИМХО ты тупо до буковки доколупался. Нет никакой
разницы и проблем. Я Пастернака не читал, но скорее
всего UNKNOWN просто эквивалент NULL только
для boolean полей. Со всеми вытекающими. Как только
ты это примешь все остальные вопросы про <>, = и пр.
автоматически снимутся.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816183
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold> А что ты ему покажешь?

По идее

NULL
UNKNOWN


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816184
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис> К сравнению UNKNOWN с другими величинами применяются
Симонов Денис> те же правила, что и при сравнении NULL

Справедливости ради, результат операций сравнения таки
надо явно прописать (если не уже) - Null будет возвращено
или UNKNOWN. Ну и про поля Not Null.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816193
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам, та ну вот есть у нас кто на XP и там выше 2008 не получается. Тянули всех на 2008, но решил я на 2012 перходить. Делал инсталляцию. Щас же как хотят - чтоб всё в один клик ставилось. Начал встраивать в иснталлятор предустановку сервера, обычный весит под триста мегабайт, а с ManagementStudio гигабайт. Это ужас, не у всех же интернет нормальный. Потом триггеры ихние и курсоры - это ужас.

По поводу до буковки доколупался. Моё мнение такое что надо сначала всё продумывать, а потом делать. А то будет как помню с индексами по выражению. Сделать сделали, а потом оказалось что туда можно и подзапрос воткнуть и что угодно. И, с одной стороны, это лучше чем ничего, а с другой на лицо то, что теория плохо проработала и у определённой части людей это вызовет проблемы. Например у майкросовта есть понятие детерминированных функций и нет и контролируется что можно в выражениях использовать и что нет. И разница в том, что система больше защищена от неправильного использования. Врядли ты поспоришь что это хорошо.

Вообще щас же все пытаются максимально всё упростить и сделать дуракоустойчивым. Если не брать во внимание стандарт, то мне не понятно зачем вообще нужен был этот UNKNOWM.

Так мало того, я уверен что можно придумать выражение, которое завалит сервер, какой-нить CAST(UNKWNOWN AS ... b т.д. и т.п. написать, где оно не доделано, и всё.
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816197
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПо идее

NULL
UNKNOWN

Я на 99.99999 уверен что это не так. Хотя где это написано? Опять же, лишние вопросы у людей.
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816198
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold> с ManagementStudio гигабайт

А нафига ты им SSMS суёшь-то?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816206
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так надо бывает в базе пколупаться. А бывает надо просто приаттачить существующую или восстановить из бэкапа. Я же не могу в свой инсталлятор и конфигуратор напихать всё это - слишком круто будет.
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816208
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К стати про UNKNOWN ещё придумал тему.

Раз это литералл, то человек подумает: ага, я могу использовать это в CHECK CONSTRAINT, и скорее всего у него что-то не срастётся...
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816209
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create table MyTable(
  id int generated by default as identity primary key,
  bool_field boolean
);

insert into MyTable(bool_field) values(null);
insert into MyTable(bool_field) values(unknown);

commit;

select * from MyTable;

ID    BOOL_FIELD
===================
1     <null>
2     <null>
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816212
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select
  (1 is null) as f1
from rdb$database;

f1
=======
<false>

select
  (1 is unknown) as f1
from rdb$database

Dynamic SQL Error.
SQL error code = -104.
Invalid usage of boolean expression.
...
Рейтинг: 0 / 0
FB3 и BOOLEAN
    #38816216
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рустам, видишь, Денис проверил, я же говорил что NULL вернёт. А ты говоришь я доколупался до буквы.
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB3 и BOOLEAN
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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