powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сто тысяч "Почему так реализовано?"
25 сообщений из 81, страница 3 из 4
Сто тысяч "Почему так реализовано?"
    #39866003
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devСимонов Дениса как раз ограничения от доменов в PSQL часто мешают. Особенно какой-нибудь NOT NULLНикогда не ставлю доменам NOT NULL. Вот уж действительно - бесполезная глупость.Ну и зря.
У меня во всех таблицах есть поле типа T_KEY - очень удобно. Почти во всех - поле(поля) типа T_DATETIME_NN и прочие.
И в параметрах/переменных в процедурах - тоже, хоть и не всегда, тут надо с умом использовать домены с ограничениями. Но тоже удобно.
Я вообще практически не использую голые типы (без доменов).
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866087
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, в примере ниже я предпочёл бы, вместо объявления исключения и использования его по условию в IF, просто написать:
Код: plaintext
DECLARE VARIABLE dig INT64 CHECK(dig BETWEEN 0 AND 9)
не создавая для подобных вещей кучи доменов на все случаи жизни и получая стандартное сообщение об ошибке.
Пример BCD_TO_INT64
Код: plsql
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.
CREATE OR ALTER EXCEPTION "any__xImproperValue" 'Improper value';

SET TERM ^;
CREATE OR ALTER FUNCTION BCD_TO_INT64
  (
    "bcd" INT64 DEFAULT NULL
  )
  RETURNS INT64
  DETERMINISTIC
AS
  DECLARE VARIABLE tmp    INT64;
  DECLARE VARIABLE dig    INT64;
  DECLARE VARIABLE factor INT64 DEFAULT 1;
  DECLARE VARIABLE ret    INT64 DEFAULT 0;
BEGIN
  IF (:"bcd" IS NULL) THEN
    RETURN NULL;
  tmp = "bcd";
  WHILE (:tmp != 0 AND :tmp != -1) DO
    BEGIN
      dig = Bin_AND(tmp, 0x0f);
      IF (:dig > 9) THEN
        EXCEPTION "any__xImproperValue";
      ret = ret + dig * factor;
      factor = factor * 10;
      tmp = Bin_SHR(tmp, 4);
    END
  RETURN ret;
END^
SET TERM ;^


Или, в случае с вычисляемыми полями, когда в CHECK находится какая-то функция, которая писана не мной и вообще эта функция в UDF/UDR, то для проверки выходного значения я предпочёл бы иметь более описательный вариант объявления столбца таблицы:
Код: plsql
1.
"field_3" UINT8 COMPUTED BY (SomeFunction("id"))

вместо
Код: plsql
1.
2.
"field_3" SMALLINT COMPUTED BY (SomeFunction("id"))
CONSTRAINT test__chk CHECK("field_3" BETWEEN 0 AND 255)


А когда при объявлении поля я путаю порядок указания DEFAULT и NOT NULL, то без матов точно не обходится. И вот таких мелочей, которые, казалось бы, должны работать хотя бы из принципа единообразия, огромное количество и это попросту выбешивает. Конечно, это не похоже на хождение по граблям - не тот масштаб, но всё равно неприятно.
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866091
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock, "в каждой избушке свои погремушки".
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866152
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devYuRock, "в каждой избушке свои погремушки".Просто не вижу в этом подводных камней.
И потому не вижу смысла не забывать копипастить везде NOT NULL или NOT NULL DEFAULT CURRENT_TIMESTAMP.
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866154
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисБыл даже тикет чтобы к чекам определённое пользователем сообщение делать, но не сделали.Я нашёл другой тикет .
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866158
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денискомьюнити эта твоя супер фича на фиг не упёрлась. Иначе бы давно попросили.
И я кстати против такой возможностиПопросили давно, ещё в 2007-ом году для версии 2.5.
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866159
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devредпочёл бы иметь более описательный вариант объявления столбца
смешались в кучу... Вот зачем ты смешиваешь в кучу?
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866163
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, затем, что это примерно из той же оперы про доказательство необходимости, казалось бы, очевидных и элементарных вещей, которые должны работать, но не работают.
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866288
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

да нифига не "из той же оперы". Я вообще не понимаю, как у вас там с логикой. Не работает логика совсем (включая "подобия").
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866333
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий, причём тут логика? За ассоциативные связи объектов отвечает ментальный набор атрибутов аналогий объектов, который у нас с тобой разный. :) Просто мой набор атрибутов аналогий шире и более формализован.
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866443
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дывысь кум (ц) советский анекдотИдут по Киеву два кума.
Подходит к ним прохожий: Каак прайти на Крещатик?
Кумы: Га?
Прохожий: Шпрехензидойч?
Кумы: Га?
Прохожий: Дуюспикинглиш?
Кумы: Га?
Прохожий чертыхнулся и пошёл дальше.
Первый кум: Дывысь, кум, яка вумна людина - скильки мовий знает!
Второй кум: Ну и чим та ий помогло?
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866454
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devДмитрий, причём тут логика? За ассоциативные связи объектов отвечает ментальный набор атрибутов аналогий объектов, который у нас с тобой разный. :) Просто мой набор атрибутов аналогий шире и более формализован.Вот чё-то умное написал, я не понял. На всякий случай, если это маты какие-то, предупреждение.
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866458
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devментальный набор атрибутов аналогий объектов
ШТА???
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866460
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvШТА???"Рецессивный аллель влияет на фенотип только если генотип гомозиготен".

P.S.
"Во многих знаниях - многия печали"
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866462
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvrdb_devментальный набор атрибутов аналогий объектов
ШТА???Та ни шо!... Просто выпендриваюсь. :)
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866464
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

у меня предложение. А давай всё оставим как есть
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866467
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devПросто выпендриваюсь. :) А летать-то умеешь?
http://www.vostokolyub.info/myblog/horoshiy-anekdot-malenkaya-pritcha-34.htm
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866468
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov"Во многих знаниях - многия печали" "И кто умножает познания, умножает скорбь"
/Экклесиаст/
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866472
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисrdb_dev, у меня предложение. А давай всё оставим как естьБоюсь, нас комьюнити не поймёт. :)
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866473
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyА летать-то умеешь?Канэшна! Я же ворона, тока белая.
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866474
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

ну не всё, а твою чепуху с CHECK в DECLARE. Всё равно желающих её реализовать не найдётся
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866477
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, людей, желающих что-то реализовывать вообще очень немного. :)
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866488
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

ты сам готов предложить патч?
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866520
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Же не манж па сис жур
...
Рейтинг: 0 / 0
Сто тысяч "Почему так реализовано?"
    #39866570
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисrdb_dev, ты сам готов предложить патч?Чтобы предложить патч, надо, для начала, разобраться в исходниках. Даже боюсь представить, сколько времени этой займёт.
...
Рейтинг: 0 / 0
25 сообщений из 81, страница 3 из 4
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сто тысяч "Почему так реализовано?"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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