v2-0001-use-Bitmapset-to-represent-not-null-attr-nums.patch
application/octet-stream
Filename: v2-0001-use-Bitmapset-to-represent-not-null-attr-nums.patch
Type: application/octet-stream
Part: 0
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: format-patch
Series: patch v2-0001
Subject: use Bitmapset* to represent not null attr nums
| File | + | − |
|---|---|---|
| src/backend/optimizer/util/clauses.c | 1 | 1 |
| src/backend/optimizer/util/plancat.c | 3 | 3 |
| src/include/optimizer/plancat.h | 1 | 1 |
From ab9475020cdfa5f32cb3756c974a10f90d325e34 Mon Sep 17 00:00:00 2001
From: Junwang Zhao <zhjwpku@gmail.com>
Date: Sun, 7 Sep 2025 19:10:18 +0800
Subject: [PATCH v2] use Bitmapset* to represent not null attr nums
---
src/backend/optimizer/util/clauses.c | 2 +-
src/backend/optimizer/util/plancat.c | 6 +++---
src/include/optimizer/plancat.h | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c
index 6f0b338d2cd..967341af18f 100644
--- a/src/backend/optimizer/util/clauses.c
+++ b/src/backend/optimizer/util/clauses.c
@@ -4203,7 +4203,7 @@ simplify_function(Oid funcid, Oid result_type, int32 result_typmod,
bool
var_is_nonnullable(PlannerInfo *root, Var *var, bool use_rel_info)
{
- Relids notnullattnums = NULL;
+ Bitmapset *notnullattnums = NULL;
Assert(IsA(var, Var));
diff --git a/src/backend/optimizer/util/plancat.c b/src/backend/optimizer/util/plancat.c
index 4536bdd6cb4..03845094bc9 100644
--- a/src/backend/optimizer/util/plancat.c
+++ b/src/backend/optimizer/util/plancat.c
@@ -62,7 +62,7 @@ get_relation_info_hook_type get_relation_info_hook = NULL;
typedef struct NotnullHashEntry
{
Oid relid; /* OID of the relation */
- Relids notnullattnums; /* attnums of NOT NULL columns */
+ Bitmapset *notnullattnums; /* attnums of NOT NULL columns */
} NotnullHashEntry;
@@ -683,7 +683,7 @@ get_relation_notnullatts(PlannerInfo *root, Relation relation)
Oid relid = RelationGetRelid(relation);
NotnullHashEntry *hentry;
bool found;
- Relids notnullattnums = NULL;
+ Bitmapset *notnullattnums = NULL;
/* bail out if the relation has no not-null constraints */
if (relation->rd_att->constr == NULL ||
@@ -750,7 +750,7 @@ get_relation_notnullatts(PlannerInfo *root, Relation relation)
* Searches the hash table and returns the column not-null constraint
* information for a given relation.
*/
-Relids
+Bitmapset *
find_relation_notnullatts(PlannerInfo *root, Oid relid)
{
NotnullHashEntry *hentry;
diff --git a/src/include/optimizer/plancat.h b/src/include/optimizer/plancat.h
index dd8f2cd157f..96107076832 100644
--- a/src/include/optimizer/plancat.h
+++ b/src/include/optimizer/plancat.h
@@ -30,7 +30,7 @@ extern void get_relation_info(PlannerInfo *root, Oid relationObjectId,
extern void get_relation_notnullatts(PlannerInfo *root, Relation relation);
-extern Relids find_relation_notnullatts(PlannerInfo *root, Oid relid);
+extern Bitmapset *find_relation_notnullatts(PlannerInfo *root, Oid relid);
extern List *infer_arbiter_indexes(PlannerInfo *root);
--
2.41.0