@@ -2552,15 +2552,24 @@ getObjectDescription(const ObjectAddress *object)
2552
2552
{
2553
2553
HeapTuple collTup ;
2554
2554
Form_pg_collation coll ;
2555
+ char * nspname ;
2555
2556
2556
2557
collTup = SearchSysCache1 (COLLOID ,
2557
2558
ObjectIdGetDatum (object -> objectId ));
2558
2559
if (!HeapTupleIsValid (collTup ))
2559
2560
elog (ERROR , "cache lookup failed for collation %u" ,
2560
2561
object -> objectId );
2561
2562
coll = (Form_pg_collation ) GETSTRUCT (collTup );
2563
+
2564
+ /* Qualify the name if not visible in search path */
2565
+ if (CollationIsVisible (object -> objectId ))
2566
+ nspname = NULL ;
2567
+ else
2568
+ nspname = get_namespace_name (coll -> collnamespace );
2569
+
2562
2570
appendStringInfo (& buffer , _ ("collation %s" ),
2563
- NameStr (coll -> collname ));
2571
+ quote_qualified_identifier (nspname ,
2572
+ NameStr (coll -> collname )));
2564
2573
ReleaseSysCache (collTup );
2565
2574
break ;
2566
2575
}
@@ -2600,14 +2609,25 @@ getObjectDescription(const ObjectAddress *object)
2600
2609
case OCLASS_CONVERSION :
2601
2610
{
2602
2611
HeapTuple conTup ;
2612
+ Form_pg_conversion conv ;
2613
+ char * nspname ;
2603
2614
2604
2615
conTup = SearchSysCache1 (CONVOID ,
2605
2616
ObjectIdGetDatum (object -> objectId ));
2606
2617
if (!HeapTupleIsValid (conTup ))
2607
2618
elog (ERROR , "cache lookup failed for conversion %u" ,
2608
2619
object -> objectId );
2620
+ conv = (Form_pg_conversion ) GETSTRUCT (conTup );
2621
+
2622
+ /* Qualify the name if not visible in search path */
2623
+ if (ConversionIsVisible (object -> objectId ))
2624
+ nspname = NULL ;
2625
+ else
2626
+ nspname = get_namespace_name (conv -> connamespace );
2627
+
2609
2628
appendStringInfo (& buffer , _ ("conversion %s" ),
2610
- NameStr (((Form_pg_conversion ) GETSTRUCT (conTup ))-> conname ));
2629
+ quote_qualified_identifier (nspname ,
2630
+ NameStr (conv -> conname )));
2611
2631
ReleaseSysCache (conTup );
2612
2632
break ;
2613
2633
}
@@ -2914,59 +2934,103 @@ getObjectDescription(const ObjectAddress *object)
2914
2934
case OCLASS_TSPARSER :
2915
2935
{
2916
2936
HeapTuple tup ;
2937
+ Form_pg_ts_parser prsForm ;
2938
+ char * nspname ;
2917
2939
2918
2940
tup = SearchSysCache1 (TSPARSEROID ,
2919
2941
ObjectIdGetDatum (object -> objectId ));
2920
2942
if (!HeapTupleIsValid (tup ))
2921
2943
elog (ERROR , "cache lookup failed for text search parser %u" ,
2922
2944
object -> objectId );
2945
+ prsForm = (Form_pg_ts_parser ) GETSTRUCT (tup );
2946
+
2947
+ /* Qualify the name if not visible in search path */
2948
+ if (TSParserIsVisible (object -> objectId ))
2949
+ nspname = NULL ;
2950
+ else
2951
+ nspname = get_namespace_name (prsForm -> prsnamespace );
2952
+
2923
2953
appendStringInfo (& buffer , _ ("text search parser %s" ),
2924
- NameStr (((Form_pg_ts_parser ) GETSTRUCT (tup ))-> prsname ));
2954
+ quote_qualified_identifier (nspname ,
2955
+ NameStr (prsForm -> prsname )));
2925
2956
ReleaseSysCache (tup );
2926
2957
break ;
2927
2958
}
2928
2959
2929
2960
case OCLASS_TSDICT :
2930
2961
{
2931
2962
HeapTuple tup ;
2963
+ Form_pg_ts_dict dictForm ;
2964
+ char * nspname ;
2932
2965
2933
2966
tup = SearchSysCache1 (TSDICTOID ,
2934
2967
ObjectIdGetDatum (object -> objectId ));
2935
2968
if (!HeapTupleIsValid (tup ))
2936
2969
elog (ERROR , "cache lookup failed for text search dictionary %u" ,
2937
2970
object -> objectId );
2971
+ dictForm = (Form_pg_ts_dict ) GETSTRUCT (tup );
2972
+
2973
+ /* Qualify the name if not visible in search path */
2974
+ if (TSDictionaryIsVisible (object -> objectId ))
2975
+ nspname = NULL ;
2976
+ else
2977
+ nspname = get_namespace_name (dictForm -> dictnamespace );
2978
+
2938
2979
appendStringInfo (& buffer , _ ("text search dictionary %s" ),
2939
- NameStr (((Form_pg_ts_dict ) GETSTRUCT (tup ))-> dictname ));
2980
+ quote_qualified_identifier (nspname ,
2981
+ NameStr (dictForm -> dictname )));
2940
2982
ReleaseSysCache (tup );
2941
2983
break ;
2942
2984
}
2943
2985
2944
2986
case OCLASS_TSTEMPLATE :
2945
2987
{
2946
2988
HeapTuple tup ;
2989
+ Form_pg_ts_template tmplForm ;
2990
+ char * nspname ;
2947
2991
2948
2992
tup = SearchSysCache1 (TSTEMPLATEOID ,
2949
2993
ObjectIdGetDatum (object -> objectId ));
2950
2994
if (!HeapTupleIsValid (tup ))
2951
2995
elog (ERROR , "cache lookup failed for text search template %u" ,
2952
2996
object -> objectId );
2997
+ tmplForm = (Form_pg_ts_template ) GETSTRUCT (tup );
2998
+
2999
+ /* Qualify the name if not visible in search path */
3000
+ if (TSTemplateIsVisible (object -> objectId ))
3001
+ nspname = NULL ;
3002
+ else
3003
+ nspname = get_namespace_name (tmplForm -> tmplnamespace );
3004
+
2953
3005
appendStringInfo (& buffer , _ ("text search template %s" ),
2954
- NameStr (((Form_pg_ts_template ) GETSTRUCT (tup ))-> tmplname ));
3006
+ quote_qualified_identifier (nspname ,
3007
+ NameStr (tmplForm -> tmplname )));
2955
3008
ReleaseSysCache (tup );
2956
3009
break ;
2957
3010
}
2958
3011
2959
3012
case OCLASS_TSCONFIG :
2960
3013
{
2961
3014
HeapTuple tup ;
3015
+ Form_pg_ts_config cfgForm ;
3016
+ char * nspname ;
2962
3017
2963
3018
tup = SearchSysCache1 (TSCONFIGOID ,
2964
3019
ObjectIdGetDatum (object -> objectId ));
2965
3020
if (!HeapTupleIsValid (tup ))
2966
3021
elog (ERROR , "cache lookup failed for text search configuration %u" ,
2967
3022
object -> objectId );
3023
+ cfgForm = (Form_pg_ts_config ) GETSTRUCT (tup );
3024
+
3025
+ /* Qualify the name if not visible in search path */
3026
+ if (TSConfigIsVisible (object -> objectId ))
3027
+ nspname = NULL ;
3028
+ else
3029
+ nspname = get_namespace_name (cfgForm -> cfgnamespace );
3030
+
2968
3031
appendStringInfo (& buffer , _ ("text search configuration %s" ),
2969
- NameStr (((Form_pg_ts_config ) GETSTRUCT (tup ))-> cfgname ));
3032
+ quote_qualified_identifier (nspname ,
3033
+ NameStr (cfgForm -> cfgname )));
2970
3034
ReleaseSysCache (tup );
2971
3035
break ;
2972
3036
}
0 commit comments