Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/backend/commands/lockcmds.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,10 @@ RangeVarCallbackForLockTable(const RangeVar *rv, Oid relid, Oid oldrelid,

/* Currently, we only allow plain tables or views to be locked */
if (relkind != RELKIND_RELATION && relkind != RELKIND_PARTITIONED_TABLE &&
relkind != RELKIND_VIEW)
relkind != RELKIND_VIEW && relkind != RELKIND_DIRECTORY_TABLE)
ereport(ERROR,
(errcode(ERRCODE_WRONG_OBJECT_TYPE),
errmsg("\"%s\" is not a table or view",
errmsg("\"%s\" is not a table, directory table or view",
rv->relname)));

#if 0 /* Upstream code not applicable to GPDB */
Expand Down
11 changes: 11 additions & 0 deletions src/test/regress/input/directory_table.source
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,17 @@ SELECT count(*) FROM pg_directory_table;
SELECT relname, relisshared, relpersistence, relkind FROM pg_class WHERE relname like '%dir_table%' ORDER BY 1;
\c regression

--Test Lock directory table
BEGIN;
LOCK TABLE dir_table1 IN ACCESS SHARE MODE;
LOCK TABLE dir_table1 IN ACCESS EXCLUSIVE MODE;
COMMIT;

BEGIN;
LOCK TABLE dir_table1 IN ACCESS SHARE MODE;
LOCK TABLE dir_table1 IN ACCESS EXCLUSIVE MODE;
ROLLBACK;

-- Test CREATE/DROP/REINDEX on DIRECTORY SCHEMA TABLE
-- Test CREATE INDEX on DIRECTORY SCHEMA TABLE
CREATE INDEX dirtable1_relative_path_idx on dir_table1(relative_path);
Expand Down
9 changes: 9 additions & 0 deletions src/test/regress/output/directory_table.source
Original file line number Diff line number Diff line change
Expand Up @@ -657,6 +657,15 @@ SELECT relname, relisshared, relpersistence, relkind FROM pg_class WHERE relname
(0 rows)

\c regression
--Test Lock directory table
BEGIN;
LOCK TABLE dir_table1 IN ACCESS SHARE MODE;
LOCK TABLE dir_table1 IN ACCESS EXCLUSIVE MODE;
COMMIT;
BEGIN;
LOCK TABLE dir_table1 IN ACCESS SHARE MODE;
LOCK TABLE dir_table1 IN ACCESS EXCLUSIVE MODE;
ROLLBACK;
-- Test CREATE/DROP/REINDEX on DIRECTORY SCHEMA TABLE
-- Test CREATE INDEX on DIRECTORY SCHEMA TABLE
CREATE INDEX dirtable1_relative_path_idx on dir_table1(relative_path);
Expand Down
9 changes: 9 additions & 0 deletions src/test/regress/output/directory_table_optimizer.source
Original file line number Diff line number Diff line change
Expand Up @@ -657,6 +657,15 @@ SELECT relname, relisshared, relpersistence, relkind FROM pg_class WHERE relname
(0 rows)

\c regression
--Test Lock directory table
BEGIN;
LOCK TABLE dir_table1 IN ACCESS SHARE MODE;
LOCK TABLE dir_table1 IN ACCESS EXCLUSIVE MODE;
COMMIT;
BEGIN;
LOCK TABLE dir_table1 IN ACCESS SHARE MODE;
LOCK TABLE dir_table1 IN ACCESS EXCLUSIVE MODE;
ROLLBACK;
-- Test CREATE/DROP/REINDEX on DIRECTORY SCHEMA TABLE
-- Test CREATE INDEX on DIRECTORY SCHEMA TABLE
CREATE INDEX dirtable1_relative_path_idx on dir_table1(relative_path);
Expand Down