Обсуждение: executing a dml within a utility

Поиск
Список
Период
Сортировка

executing a dml within a utility

От
"Ehab Galal"
Дата:
I created a CMD_UTILITY, which upon being executed by the user should do the 
following atomically:
1- drops a table
2- deletes from another table all rows with a certain criterion: "DELETE 
FROM pg_t1 WHERE att = val"
3- deletes from a third table all rows with a certain criterion: "DELETE 
FROM pg_t2 WHERE att = val"

I do the first step using ProcessUtility(). How can i do the 2nd/3rd steps? 
Any suggestions?

I tried calling exec_simple_query() but this didn't work. I am getting an 
error "cannot drop active portal"


Thanks a lot,
ehab

_________________________________________________________________
Find sales, coupons, and free shipping, all in one place! �MSN Shopping 
Sales & Deals 
http://shopping.msn.com/content/shp/?ctid=198,ptnrid=176,ptnrdata=200639



Re: executing a dml within a utility

От
Alvaro Herrera
Дата:
Ehab Galal wrote:
> I created a CMD_UTILITY, which upon being executed by the user should do 
> the following atomically:
> 1- drops a table
> 2- deletes from another table all rows with a certain criterion: "DELETE 
> FROM pg_t1 WHERE att = val"
> 3- deletes from a third table all rows with a certain criterion: "DELETE 
> FROM pg_t2 WHERE att = val"
> 
> I do the first step using ProcessUtility(). How can i do the 2nd/3rd steps? 
> Any suggestions?

Don't do that.  Instead, use performDeletion and register your tuples in
the pg_t1 and pg_t2 catalogs in pg_depend (using recordDependencyOn).

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.