Hi ,
Looks like ADD UNIQUE( some_fuc( some_feild) ) is not supported with add constraint.
the only way is to add the constriant is using UNIQUE INDEX .
Is it a bug or intended behaviour?
Regds
Mallah.
in 7.3.4
~~~~~~~~~~~~
tradein_clients=# ALTER TABLE general.email_master ADD CONSTRAINT
email_master_uniq_lower_btrim_email UNIQUE( lower(email) );
ERROR: parser: parse error at or near "(" at character 99
tradein_clients=#
tradein_clients=#
tradein_clients=# CREATE UNIQUE INDEX email_master_uniq_lower_btrim_email on general.email_master( lower(email) );
ERROR: Cannot create unique index. Table contains non-unique values
Well the SQL has failed but it was parsed successfully.
tradein_clients=#
SAME PROBLEM IN PGSQL 7.4 RC2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
template1=# alter table t_a add constraint "a" UNIQUE (email);
NOTICE: ALTER TABLE / ADD UNIQUE will create implicit index "a" for table "t_a"
ALTER TABLE
template1=# alter table t_a add constraint "b" UNIQUE (lower(email));
ERROR: syntax error at or near "(" at character 54
template1=#