Index: openacs-4/packages/schema-browser/tcl/schema-browser-procs-postgresql.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/schema-browser/tcl/schema-browser-procs-postgresql.tcl,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/schema-browser/tcl/schema-browser-procs-postgresql.tcl 22 Mar 2005 05:27:49 -0000 1.7 +++ openacs-4/packages/schema-browser/tcl/schema-browser-procs-postgresql.tcl 3 Sep 2013 12:22:25 -0000 1.8 @@ -81,7 +81,7 @@ pg_trigger t join (select oid from pg_class where relname = lower(:table_name)) c on (c.oid = t.tgrelid) join pg_proc p on (p.oid = t.tgfoid) - where not tgisconstraint + where true " { append return_string "\nCREATE TRIGGER $trigger_name $trigger_type EXECUTE PROCEDURE $proname $status" } if_no_rows { @@ -98,18 +98,19 @@ set return_string "\n\n-- Tables with foreign keys that refer to $table_name:" db_foreach schema_browser_get_referencess " select distinct r1.relname as child_table, - t.tgconstrname as constraint_name + conname as constraint_name from pg_trigger t, pg_class r, pg_class r1, - pg_proc p + pg_proc p, + pg_constraint c where lower(r.relname) = lower(:table_name) and r.oid = t.tgconstrrelid and r1.oid = t.tgrelid and - t.tgisconstraint and t.tgfoid = p.oid and + c.conrelid = r.oid and p.proname = 'RI_FKey_check_ins' " { if { $html_anchor_p == "t" } { @@ -206,7 +207,7 @@ set complex_foreign_keys [list] db_foreach schema_browser_get_referencess " select t.tgargs as constraint_args, - t.tgconstrname as constraint_name, + conname as constraint_name, 'NOACTION' as action, 'CHECK' as trigger_kind, r1.relname as refer_table, @@ -216,17 +217,18 @@ pg_trigger t, pg_class r, pg_class r1, + pg_constraint c, pg_proc p where lower(r.relname) = lower(:table_name) and r.oid = t.tgrelid and r1.oid = t.tgconstrrelid and - t.tgisconstraint and t.tgfoid = p.oid and + c.conrelid = r.oid and p.proname = 'RI_FKey_check_ins' union all select t.tgargs as constraint_args, - t.tgconstrname as constraint_name, + conname as constraint_name, case when p.proname like '%noaction%' then 'NOACTION' when p.proname like '%cascade%' then 'CASCADE' @@ -244,13 +246,14 @@ pg_trigger t, pg_class r, pg_class r1, + pg_constraint c, pg_proc p where lower(r.relname) = lower(:table_name) and r.oid = t.tgconstrrelid and r1.oid = t.tgrelid and - t.tgisconstraint and t.tgfoid = p.oid and + c.conrelid = r.oid and not p.proname like 'RI%_check_%' order by oid, sort_key " { @@ -264,7 +267,7 @@ switch $trigger_kind { CHECK { if { [info exists foreign_key_sql] } { - if { $arg_count == 1 } { + if { [info exists arg_count] && $arg_count == 1 } { set references($on_var) $foreign_key_sql } else { lappend complex_foreign_keys $foreign_key_sql