| From: | anand086 <anand086(at)gmail(dot)com> | 
|---|---|
| To: | pgsql-sql(at)postgresql(dot)org | 
| Subject: | Delete failing with -- permission denied | 
| Date: | 2017-06-05 20:44:53 | 
| Message-ID: | 1496695493471-5964882.post@n3.nabble.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-sql | 
Delete from table test.entities_all is failing with "permission denied for
relation". The table from which row has to be deleted, is referenced by
another table "attribute_types" with ON DELETE CASCADE.
I tried deleting the row from attribute_types table and then deleting from
test.entities_all succeed.
I am not able to understand why this delete sql is failing.
######################
Delete from table is failing with 
######################
user_test(at)testdbpg # delete from test.entities_all where entity_type_id =
254 AND entity_id = 20043093223;
ERROR:  permission denied for relation current_change$tmp
CONTEXT:  PL/pgSQL function test.current_change() line 11 at RETURN QUERY
SQL statement "SELECT
        change_num
                                           FROM test.current_change"
PL/pgSQL function test."changes_package$get_change_num"() line 5 at SQL
statement
PL/pgSQL function test."attribute_types_history$attribute_types"() line 6 at
assignment
SQL statement "DELETE FROM ONLY "test"."attribute_types" WHERE $1
OPERATOR(pg_catalog.=) "attribute_type_entity_id""
Time: 65.536 ms
#############################
Table test.entities_all has below 
#############################
Referenced by:
    TABLE "test.entities_all" CONSTRAINT "entities_all_fk2" FOREIGN KEY
(owner_id) REFERENCES test.entities_all(entity_id) ON DELETE SET NULL
    TABLE "test.attribute_types" CONSTRAINT "fkey_at_attribute_entity"
FOREIGN KEY (attribute_type_entity_id) REFERENCES
test.entities_all(entity_id) ON DELETE CASCADE
    TABLE "test.requests" CONSTRAINT "requests_fk2" FOREIGN KEY
(requester_entity_id) REFERENCES test.entities_all(entity_id) ON DELETE
CASCADE
#######################################
Table test.attribute_types has
#######################################
Referenced by:
    TABLE "test.attributes" CONSTRAINT "fkey_attribute_type" FOREIGN KEY
(attribute_type_id) REFERENCES test.attribute_types(attribute_type_id)
###############################
Deleting each row manually 
###############################
user_test(at)testdbpg #begin;
BEGIN
Time: 21.895 ms
user_test(at)testdbpg # delete from test.attributes where
(attribute_type_id)=(1220010);
DELETE 1
Time: 24.145 ms
user_test(at)testdbpg # DELETE FROM ONLY "test"."attribute_types" where
(attribute_type_id)=(1220010);
DELETE 1
Time: 35.638 ms
user_test(at)testdbpg # delete from test.entities_all where  ( entity_type_id =
254::INTEGER AND entity_id = 20043093223::NUMERIC);
DELETE 1
Time: 56.104 ms
user_test(at)testdbpg # rollback;
ROLLBACK
Time: 28.266 ms
user_test(at)testdbpg #
###############################
Function
##############################
CREATE OR REPLACE FUNCTION test."attribute_types_history$attribute_types"()
 RETURNS trigger
 LANGUAGE plpgsql
AS $function$
DECLARE
    new_change_num numeric;
BEGIN
    PERFORM test.changes_package$init();
    new_change_num := test.changes_package$get_change_num();
    INSERT INTO test.attribute_types_history (attribute_type_id,
for_entity_type_id, attribute_name, attribute_description,
attribute_type_entity_id, last_modified_by, last_modified_date,
creation_change_num, deletion_change_num)
    VALUES (OLD.attribute_type_id, OLD.for_entity_type_id,
OLD.attribute_name, OLD.attribute_description, OLD.attribute_type_entity_id,
OLD.last_modified_by, OLD.last_modified_date, OLD.creation_change_num,
new_change_num);
    RETURN OLD;
END;
$function$
######################################################
Able to select from changes_package$get_change_num
######################################################
user_test(at)testdbpg # select * from test.changes_package$get_change_num();
+--------------------------------+
| changes_package$get_change_num |
+--------------------------------+
|                      100759111 |
+--------------------------------+
(1 row)
Time: 27.829 ms
--
View this message in context: http://www.postgresql-archive.org/Delete-failing-with-permission-denied-tp5964882.html
Sent from the PostgreSQL - sql mailing list archive at Nabble.com.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2017-06-05 21:15:17 | Re: Delete failing with -- permission denied | 
| Previous Message | gulsumramazanoglu | 2017-06-02 20:19:17 | YNT: Re: YNT: Re: Using bind variable within BEGIN END |