Forum .LRN Q&A: Fixed this bug but encountered a new one . . .
Posted by
Hamilton Chua
on 09/26/02 07:22 AM
Hello Everyone,
Am usgin PG7.2. I checked out the latest copy of bulkmail and I also encountered the same problem above.
I found that it was this query that was the problem
set query " select '$from' as from_addr, '$sender_first_names' as sender_first_names, '$sender_last_name' as sender_last_name, parties.email, 'decode(acs_objects.object_type, 'user', (select first_names from persons where person_id = parties.party_id), 'group', (select group_name from groups where group_id = parties.party_id), 'rel_segment', (select segment_name from rel_segments where segment_id = parties.party_id), '') as first_names, decode(acs_objects.object_type, 'user', (select last_name from persons where person_id = parties.party_id), '') as last_name, '$community_name' as community_name, '$community_url' as community_url from party_approved_member_map, parties, acs_objects where party_approved_member_map.party_id = $segment_id and party_approved_member_map.member_id <> $segment_id and party_approved_member_map.member_id = parties.party_id and parties.party_id = acs_objects.object_id "
It is found in /dotlrn/www/spam.tcl.
I corrected it for postgres by replacing decode with case when - here is what it looks now
set query " select '$from' as from_addr, '$sender_first_names' as sender_first_names, '$sender_last_name' as sender_last_name, parties.email, CASE WHEN acs_objects.object_type = 'user' THEN (select first_names from persons where person_id = parties.party_id) WHEN acs_objects.object_type = 'group' THEN (select group_name from groups where group_id = parties.party_id) WHEN acs_objects.object_type = 'rel_segment' THEN (select segment_name from rel_segments where segment_id = parties.party_id) ELSE '' END as first_names, CASE WHEN acs_objects.object_type = 'user' THEN (select last_name from persons where person_id = parties.party_id) ELSE '' END as last_name, '$community_name' as community_name, '$community_url' as community_url from party_approved_member_map, parties, acs_objects where party_approved_member_map.party_id = $segment_id and party_approved_member_map.member_id <> $segment_id and party_approved_member_map.member_id = parties.party_id and parties.party_id = acs_objects.object_id "After the above fix, I found a new error which seems very rooted into the ACS Objects procs that I am having difficulty fixing. Can you guys take a look ?
[26/Sep/2002:13:32:15][5858.449541][-conn15-] Notice: Querying ' select bulk_mail__new();' [26/Sep/2002:13:32:15][5858.449541][-conn15-] Error: Ns_PgExec: result status: 7 message: ERROR: Function 'bulk_mail__new()' does not exist Unable to identify a function that satisfies the given argument types You may need to add explicit typecasts [26/Sep/2002:13:32:15][5858.449541][-conn15-] Error: dbinit: error(localhost::robs,ERROR: Function 'bulk_mail__new()' does not exist Unable to identify a function that satisfies the given argument types You may need to add explicit typecasts ): ' select bulk_mail__new() ' [26/Sep/2002:13:32:15][5858.449541][-conn15-] Notice: RP (3396.696 ms): error in rp_handler: serving POST /dotlrn/clubs/academic-pentathlon/spam ad_url "/dotlrn/clubs/academic-pentathlon/spam" maps to file "/web/robs/packages/dotlrn/www/spam.adp" errmsg is Database operation "0or1row" failed (exception NSDB, "Query was not a statement returning rows.") [26/Sep/2002:13:32:15][5858.449541][-conn15-] Notice: Querying ' select 1 where 't' = acs_permission__permission_p('50951', '2577', 'admin');' [26/Sep/2002:13:32:16][5858.449541][-conn15-] Notice: dbinit: sql(localhost::robs): ' select 1 where 't' = acs_permission__permission_p('50951', '2577', 'admin') ' [26/Sep/2002:13:32:16][5858.449541][-conn15-] Error: POST http://robs.ham.ip.inet/dotlrn/clubs/academic-pentathlon/spam? referred by "http://robs.ham.ip.inet/dotlrn/clubs/academic-pentathlon/spam" Database operation "0or1row" failed (exception NSDB, "Query was not a statement returning rows.") while executing "ns_pg_bind 0or1row nsdb0 { select bulk_mail__new() }"