> среди огромного количества других? затеряется нах.
А я, между прочим, за многие чужие фичи голосую. Каждый, кому моя
понравится, имеет право поддержать её чтоб не затерялась.
Вот давай рссмотрим твою хотелку
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 постоянно мелькать и её не забудут.