remove-heap-create-check.patch
application/octet-stream
Filename: remove-heap-create-check.patch
Type: application/octet-stream
Part: 0
Message:
Re: creating objects in pg_catalog
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
| File | + | − |
|---|---|---|
| src/backend/bootstrap/bootparse.y | 1 | 2 |
| src/backend/catalog/heap.c | 2 | 16 |
| src/backend/catalog/index.c | 1 | 2 |
| src/include/catalog/heap.h | 1 | 2 |
diff --git a/src/backend/bootstrap/bootparse.y b/src/backend/bootstrap/bootparse.y
index d7bc572..18f0add 100644
--- a/src/backend/bootstrap/bootparse.y
+++ b/src/backend/bootstrap/bootparse.y
@@ -222,8 +222,7 @@ Boot_CreateStmt:
RELKIND_RELATION,
RELPERSISTENCE_PERMANENT,
shared_relation,
- mapped_relation,
- true);
+ mapped_relation);
elog(DEBUG4, "bootstrap relation created");
}
else
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index 8fc69ae..aba98f4 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -242,8 +242,7 @@ heap_create(const char *relname,
char relkind,
char relpersistence,
bool shared_relation,
- bool mapped_relation,
- bool allow_system_table_mods)
+ bool mapped_relation)
{
bool create_storage;
Relation rel;
@@ -252,18 +251,6 @@ heap_create(const char *relname,
Assert(OidIsValid(relid));
/*
- * sanity checks
- */
- if (!allow_system_table_mods &&
- (IsSystemNamespace(relnamespace) || IsToastNamespace(relnamespace)) &&
- IsNormalProcessingMode())
- ereport(ERROR,
- (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
- errmsg("permission denied to create \"%s.%s\"",
- get_namespace_name(relnamespace), relname),
- errdetail("System catalog modifications are currently disallowed.")));
-
- /*
* Decide if we need storage or not, and handle a couple other special
* cases for particular relkinds.
*/
@@ -1124,8 +1111,7 @@ heap_create_with_catalog(const char *relname,
relkind,
relpersistence,
shared_relation,
- mapped_relation,
- allow_system_table_mods);
+ mapped_relation);
Assert(relid == RelationGetRelid(new_rel_desc));
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 998379c..3057d4b 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -816,8 +816,7 @@ index_create(Relation heapRelation,
RELKIND_INDEX,
relpersistence,
shared_relation,
- mapped_relation,
- allow_system_table_mods);
+ mapped_relation);
Assert(indexRelationId == RelationGetRelid(indexRelation));
diff --git a/src/include/catalog/heap.h b/src/include/catalog/heap.h
index bc98d5d..bc8c63a 100644
--- a/src/include/catalog/heap.h
+++ b/src/include/catalog/heap.h
@@ -46,8 +46,7 @@ extern Relation heap_create(const char *relname,
char relkind,
char relpersistence,
bool shared_relation,
- bool mapped_relation,
- bool allow_system_table_mods);
+ bool mapped_relation);
extern Oid heap_create_with_catalog(const char *relname,
Oid relnamespace,