> среди огромного количества других? затеряется нах.

А я, между прочим, за многие чужие фичи голосую. Каждый, кому моя понравится, имеет право поддержать её чтоб не затерялась.


Вот давай рссмотрим твою хотелку
CREATE  PROCEDURE  GET_SOMETHING (
 ID  INTEGER  NOT  NULL,

и чем она отличается от
CREATE  PROCEDURE  GET_SOMETHING (
 ID  INTEGER;
begin
 if (id is null) then
  exception

У меня по всем проектам пара сотен таких проверок, но только как сознательный программист я не просто пишу EXCEPTION NULL_VALUE, а пишу полный текст ошибки с именем поля типа такого:

IF ("ObjectWhoDependsId" IS NULL) THEN
  EXCEPTION ERROR 'ObjectWhoDependsId mast be specified';

И таких проверок у меня бывает штук по пять в одной процедуре. А фича ограничения в том что сервер сам сгенерит вразумительное сообщение об ошибке с именем поля как минимум. Это раз.

Во вторых я ведь давно этого хотел, но не просил. А попросил потому что подумал что раз домены осилили, то и для явно указанного ограничения это не будет сверхзадачей.


А вот эту
IF (...) THEN
EXCEPTION ERROR STRING_FORMAT("Error during inserting into table {0}. Field {1} has incorrect value {2}" BY 'MY_TABLE', 'CULUMN1', COALESCE(NEW.COLUMN1, '<NULL>'))

они недавно хорошо обсуждали в devel
и тебя там не было. А ты зачем-то сразу в трекер полез. Это наверное просто неуважение.

Ну я ж не могу везде успеть это раз. Во вторых Влад ведь часто просит сам: пиши в трекер, пиши в трекер.

А мне эта фича очень нужна. У меня много всякого типа:


"DynamicSQL" = 'SELECT "Changed", "FieldValue" FROM "' || "CheckProcedure" || '"(' || :"ObjectWhoDependsId" || ', ' || :"DependencyTypeId" || ', ''' || COALESCE(:"CommonParameter", '') || ''', ''' || COALESCE(:"SpecificParameter", '') || ''')';

что тут разобрать можно в этой каше с таким синтаксисом?




Предлагаю обсудить в качестве эксперимента такую идею: внешние ключи, которые при каком-то условии ссылаются на одно поле, а при другом условии на другое. Задача вроде как нормально никаким образом не решаемая и вроде полезная.

Синтаксис какой-нить такой:

ALTER TABLE "Child"
ADD CONSTRAINT "Child_fk"
FOREIGN KEY ("ParentId")
REFERENCES
  WHEN "ParentTypeId" = 1 THEN
    "Parent1" ("Id") ON DELETE NO ACTION ON UPDATE NO ACTION
  WHEN "ParentTypeId" = 2 THEN
    "Parent2" ("Id") ON DELETE NO ACTION ON UPDATE NO ACTION;


Если нравиться - давайте оформим и проголосуем коллективно. Тогда она будет в TOP постоянно мелькать и её не забудут.

Reply via email to