Skip to content

Commit 3bc936f

Browse files
author
Rahul Parande
committed
1. Moved logic to find schema_name, view_name, etc in search_bbf_view_def
2. Updated recursion logic to mark only direct dependency as broken or weak Signed-off-by: Rahul Parande <rparande@amazon.com>
1 parent dbb1898 commit 3bc936f

File tree

5 files changed

+301
-466
lines changed

5 files changed

+301
-466
lines changed

contrib/babelfishpg_tsql/src/catalog.c

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1199,17 +1199,40 @@ get_bbf_view_def_idx_oid()
11991199
}
12001200

12011201
HeapTuple
1202-
search_bbf_view_def(Relation bbf_view_def_rel, int16 dbid, const char *logical_schema_name, const char *view_name)
1202+
search_bbf_view_def(Relation bbf_view_def_rel, Oid viewOid)
12031203
{
12041204

12051205
ScanKeyData scanKey[3];
12061206
SysScanDesc scan;
12071207
HeapTuple scantup,
12081208
oldtup;
1209+
Oid schema_id;
1210+
char *schema_name,
1211+
*view_name;
1212+
const char *logical_schema_name = NULL;
1213+
int16 dbid = InvalidDbid;
1214+
1215+
if (OidIsValid(viewOid))
1216+
{
1217+
schema_id = get_rel_namespace(viewOid);
1218+
schema_name = get_namespace_name(schema_id);
1219+
view_name = get_rel_name(viewOid);
1220+
1221+
if (!schema_name)
1222+
return NULL;
1223+
1224+
logical_schema_name = get_logical_schema_name(schema_name, true);
1225+
dbid = get_dbid_from_physical_schema_name(schema_name, true);
1226+
}
12091227

12101228
if (!DbidIsValid(dbid) || logical_schema_name == NULL || view_name == NULL)
1229+
{
1230+
pfree(view_name);
1231+
pfree(schema_name);
1232+
if (logical_schema_name)
1233+
pfree((char *) logical_schema_name);
12111234
return NULL;
1212-
1235+
}
12131236

12141237
/* Search and drop the definition */
12151238
ScanKeyInit(&scanKey[0],
@@ -1280,8 +1303,7 @@ check_is_tsql_view(Oid relid, bool *is_weak_view)
12801303
}
12811304
/* Fetch the relation */
12821305
bbf_view_def_rel = table_open(get_bbf_view_def_oid(), AccessShareLock);
1283-
1284-
scantup = search_bbf_view_def(bbf_view_def_rel, logical_dbid, logical_schema_name, view_name);
1306+
scantup = search_bbf_view_def(bbf_view_def_rel, relid);
12851307

12861308
if (HeapTupleIsValid(scantup))
12871309
{

contrib/babelfishpg_tsql/src/catalog.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,7 @@ extern Oid bbf_view_def_idx_oid;
216216

217217
extern Oid get_bbf_view_def_oid(void);
218218
extern Oid get_bbf_view_def_idx_oid(void);
219-
extern HeapTuple search_bbf_view_def(Relation bbf_view_def_rel, int16 dbid,
220-
const char *logical_schema_name, const char *view_name);
219+
extern HeapTuple search_bbf_view_def(Relation bbf_view_def_rel, Oid viewOid);
221220
extern bool check_is_tsql_view(Oid relid, bool *is_weak_view);
222221
extern void clean_up_bbf_view_def(int16 dbid);
223222
extern void drop_bbf_schema_permission_entries(int16 dbid);

0 commit comments

Comments
 (0)