/*
* There can no longer be anyone *else* touching the relation, but we
- * might still have open queries or cursors in our own session.
+ * might still have open queries or cursors, or pending trigger events,
+ * in our own session.
*/
- if (rel->rd_refcnt != 1)
- ereport(ERROR,
- (errcode(ERRCODE_OBJECT_IN_USE),
- errmsg("cannot drop \"%s\" because "
- "it is being used by active queries in this session",
- RelationGetRelationName(rel))));
+ CheckTableNotInUse(rel, "DROP TABLE");
/*
* Schedule unlinking of the relation's physical files at commit.
userIndexRelation = index_open(indexId, AccessExclusiveLock);
+ /*
+ * There can no longer be anyone *else* touching the index, but we
+ * might still have open queries using it in our own session.
+ */
+ CheckTableNotInUse(userIndexRelation, "DROP INDEX");
+
/*
* Schedule physical removal of the files
*/
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_execute on line 53: using PQexec
[NO_PID]: sqlca: code: 0, state: 00000
-[NO_PID]: ecpg_check_PQresult on line 53: ERROR: cannot drop "my_table" because it is being used by active queries in this session
+[NO_PID]: ecpg_check_PQresult on line 53: ERROR: cannot DROP TABLE "my_table" because it is being used by active queries in this session
[NO_PID]: sqlca: code: 0, state: 00000
-[NO_PID]: raising sqlstate 55006 (sqlcode -400) on line 53: cannot drop "my_table" because it is being used by active queries in this session on line 53
+[NO_PID]: raising sqlstate 55006 (sqlcode -400) on line 53: cannot DROP TABLE "my_table" because it is being used by active queries in this session on line 53
[NO_PID]: sqlca: code: -400, state: 55006
-SQL error: cannot drop "my_table" because it is being used by active queries in this session on line 53
+SQL error: cannot DROP TABLE "my_table" because it is being used by active queries in this session on line 53
[NO_PID]: ecpg_finish: connection regress1 closed
[NO_PID]: sqlca: code: 0, state: 00000