Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit83ab8e3

Browse files
committed
Fix object identities for text search objects
We were neglecting to schema-qualify them.Backpatch to 9.3, where object identities were introduced as a conceptby commitf8348ea.
1 parent5b68d81 commit83ab8e3

File tree

1 file changed

+29
-16
lines changed

1 file changed

+29
-16
lines changed

‎src/backend/catalog/objectaddress.c

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2717,12 +2717,12 @@ getObjectIdentity(const ObjectAddress *object)
27172717

27182718
caseOCLASS_PROC:
27192719
appendStringInfoString(&buffer,
2720-
format_procedure_qualified(object->objectId));
2720+
format_procedure_qualified(object->objectId));
27212721
break;
27222722

27232723
caseOCLASS_TYPE:
27242724
appendStringInfoString(&buffer,
2725-
format_type_be_qualified(object->objectId));
2725+
format_type_be_qualified(object->objectId));
27262726
break;
27272727

27282728
caseOCLASS_CAST:
@@ -2816,7 +2816,7 @@ getObjectIdentity(const ObjectAddress *object)
28162816
object->objectId);
28172817
conForm= (Form_pg_conversion)GETSTRUCT(conTup);
28182818
appendStringInfoString(&buffer,
2819-
quote_identifier(NameStr(conForm->conname)));
2819+
quote_identifier(NameStr(conForm->conname)));
28202820
ReleaseSysCache(conTup);
28212821
break;
28222822
}
@@ -2884,7 +2884,7 @@ getObjectIdentity(const ObjectAddress *object)
28842884

28852885
caseOCLASS_OPERATOR:
28862886
appendStringInfoString(&buffer,
2887-
format_operator_qualified(object->objectId));
2887+
format_operator_qualified(object->objectId));
28882888
break;
28892889

28902890
caseOCLASS_OPCLASS:
@@ -2911,7 +2911,7 @@ getObjectIdentity(const ObjectAddress *object)
29112911
amForm= (Form_pg_am)GETSTRUCT(amTup);
29122912

29132913
appendStringInfoString(&buffer,
2914-
quote_qualified_identifier(schema,
2914+
quote_qualified_identifier(schema,
29152915
NameStr(opcForm->opcname)));
29162916
appendStringInfo(&buffer," for %s",
29172917
quote_identifier(NameStr(amForm->amname)));
@@ -3070,23 +3070,26 @@ getObjectIdentity(const ObjectAddress *object)
30703070
elog(ERROR,"cache lookup failed for namespace %u",
30713071
object->objectId);
30723072
appendStringInfoString(&buffer,
3073-
quote_identifier(nspname));
3073+
quote_identifier(nspname));
30743074
break;
30753075
}
30763076

30773077
caseOCLASS_TSPARSER:
30783078
{
30793079
HeapTupletup;
30803080
Form_pg_ts_parserformParser;
3081+
char*schema;
30813082

30823083
tup=SearchSysCache1(TSPARSEROID,
30833084
ObjectIdGetDatum(object->objectId));
30843085
if (!HeapTupleIsValid(tup))
30853086
elog(ERROR,"cache lookup failed for text search parser %u",
30863087
object->objectId);
30873088
formParser= (Form_pg_ts_parser)GETSTRUCT(tup);
3089+
schema=get_namespace_name(formParser->prsnamespace);
30883090
appendStringInfoString(&buffer,
3089-
quote_identifier(NameStr(formParser->prsname)));
3091+
quote_qualified_identifier(schema,
3092+
NameStr(formParser->prsname)));
30903093
ReleaseSysCache(tup);
30913094
break;
30923095
}
@@ -3095,15 +3098,18 @@ getObjectIdentity(const ObjectAddress *object)
30953098
{
30963099
HeapTupletup;
30973100
Form_pg_ts_dictformDict;
3101+
char*schema;
30983102

30993103
tup=SearchSysCache1(TSDICTOID,
31003104
ObjectIdGetDatum(object->objectId));
31013105
if (!HeapTupleIsValid(tup))
31023106
elog(ERROR,"cache lookup failed for text search dictionary %u",
31033107
object->objectId);
31043108
formDict= (Form_pg_ts_dict)GETSTRUCT(tup);
3109+
schema=get_namespace_name(formDict->dictnamespace);
31053110
appendStringInfoString(&buffer,
3106-
quote_identifier(NameStr(formDict->dictname)));
3111+
quote_qualified_identifier(schema,
3112+
NameStr(formDict->dictname)));
31073113
ReleaseSysCache(tup);
31083114
break;
31093115
}
@@ -3112,15 +3118,19 @@ getObjectIdentity(const ObjectAddress *object)
31123118
{
31133119
HeapTupletup;
31143120
Form_pg_ts_templateformTmpl;
3121+
char*schema;
31153122

31163123
tup=SearchSysCache1(TSTEMPLATEOID,
31173124
ObjectIdGetDatum(object->objectId));
31183125
if (!HeapTupleIsValid(tup))
31193126
elog(ERROR,"cache lookup failed for text search template %u",
31203127
object->objectId);
31213128
formTmpl= (Form_pg_ts_template)GETSTRUCT(tup);
3129+
schema=get_namespace_name(formTmpl->tmplnamespace);
31223130
appendStringInfoString(&buffer,
3123-
quote_identifier(NameStr(formTmpl->tmplname)));
3131+
quote_qualified_identifier(schema,
3132+
NameStr(formTmpl->tmplname)));
3133+
pfree(schema);
31243134
ReleaseSysCache(tup);
31253135
break;
31263136
}
@@ -3129,15 +3139,18 @@ getObjectIdentity(const ObjectAddress *object)
31293139
{
31303140
HeapTupletup;
31313141
Form_pg_ts_configformCfg;
3142+
char*schema;
31323143

31333144
tup=SearchSysCache1(TSCONFIGOID,
31343145
ObjectIdGetDatum(object->objectId));
31353146
if (!HeapTupleIsValid(tup))
31363147
elog(ERROR,"cache lookup failed for text search configuration %u",
31373148
object->objectId);
31383149
formCfg= (Form_pg_ts_config)GETSTRUCT(tup);
3150+
schema=get_namespace_name(formCfg->cfgnamespace);
31393151
appendStringInfoString(&buffer,
3140-
quote_identifier(NameStr(formCfg->cfgname)));
3152+
quote_qualified_identifier(schema,
3153+
NameStr(formCfg->cfgname)));
31413154
ReleaseSysCache(tup);
31423155
break;
31433156
}
@@ -3148,7 +3161,7 @@ getObjectIdentity(const ObjectAddress *object)
31483161

31493162
username=GetUserNameFromId(object->objectId);
31503163
appendStringInfoString(&buffer,
3151-
quote_identifier(username));
3164+
quote_identifier(username));
31523165
break;
31533166
}
31543167

@@ -3161,7 +3174,7 @@ getObjectIdentity(const ObjectAddress *object)
31613174
elog(ERROR,"cache lookup failed for database %u",
31623175
object->objectId);
31633176
appendStringInfoString(&buffer,
3164-
quote_identifier(datname));
3177+
quote_identifier(datname));
31653178
break;
31663179
}
31673180

@@ -3174,7 +3187,7 @@ getObjectIdentity(const ObjectAddress *object)
31743187
elog(ERROR,"cache lookup failed for tablespace %u",
31753188
object->objectId);
31763189
appendStringInfoString(&buffer,
3177-
quote_identifier(tblspace));
3190+
quote_identifier(tblspace));
31783191
break;
31793192
}
31803193

@@ -3193,7 +3206,7 @@ getObjectIdentity(const ObjectAddress *object)
31933206

31943207
srv=GetForeignServer(object->objectId);
31953208
appendStringInfoString(&buffer,
3196-
quote_identifier(srv->servername));
3209+
quote_identifier(srv->servername));
31973210
break;
31983211
}
31993212

@@ -3377,8 +3390,8 @@ getRelationIdentity(StringInfo buffer, Oid relid)
33773390

33783391
schema=get_namespace_name(relForm->relnamespace);
33793392
appendStringInfoString(buffer,
3380-
quote_qualified_identifier(schema,
3381-
NameStr(relForm->relname)));
3393+
quote_qualified_identifier(schema,
3394+
NameStr(relForm->relname)));
33823395

33833396
ReleaseSysCache(relTup);
33843397
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp