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=# ---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend