@@ -1590,15 +1590,24 @@ getObjectDescription(const ObjectAddress *object)
1590
1590
{
1591
1591
HeapTuple collTup ;
1592
1592
Form_pg_collation coll ;
1593
+ char * nspname ;
1593
1594
1594
1595
collTup = SearchSysCache1 (COLLOID ,
1595
1596
ObjectIdGetDatum (object -> objectId ));
1596
1597
if (!HeapTupleIsValid (collTup ))
1597
1598
elog (ERROR , "cache lookup failed for collation %u" ,
1598
1599
object -> objectId );
1599
1600
coll = (Form_pg_collation ) GETSTRUCT (collTup );
1601
+
1602
+ /* Qualify the name if not visible in search path */
1603
+ if (CollationIsVisible (object -> objectId ))
1604
+ nspname = NULL ;
1605
+ else
1606
+ nspname = get_namespace_name (coll -> collnamespace );
1607
+
1600
1608
appendStringInfo (& buffer , _ ("collation %s" ),
1601
- NameStr (coll -> collname ));
1609
+ quote_qualified_identifier (nspname ,
1610
+ NameStr (coll -> collname )));
1602
1611
ReleaseSysCache (collTup );
1603
1612
break ;
1604
1613
}
@@ -1638,14 +1647,25 @@ getObjectDescription(const ObjectAddress *object)
1638
1647
case OCLASS_CONVERSION :
1639
1648
{
1640
1649
HeapTuple conTup ;
1650
+ Form_pg_conversion conv ;
1651
+ char * nspname ;
1641
1652
1642
1653
conTup = SearchSysCache1 (CONVOID ,
1643
1654
ObjectIdGetDatum (object -> objectId ));
1644
1655
if (!HeapTupleIsValid (conTup ))
1645
1656
elog (ERROR , "cache lookup failed for conversion %u" ,
1646
1657
object -> objectId );
1658
+ conv = (Form_pg_conversion ) GETSTRUCT (conTup );
1659
+
1660
+ /* Qualify the name if not visible in search path */
1661
+ if (ConversionIsVisible (object -> objectId ))
1662
+ nspname = NULL ;
1663
+ else
1664
+ nspname = get_namespace_name (conv -> connamespace );
1665
+
1647
1666
appendStringInfo (& buffer , _ ("conversion %s" ),
1648
- NameStr (((Form_pg_conversion ) GETSTRUCT (conTup ))-> conname ));
1667
+ quote_qualified_identifier (nspname ,
1668
+ NameStr (conv -> conname )));
1649
1669
ReleaseSysCache (conTup );
1650
1670
break ;
1651
1671
}
@@ -1940,59 +1960,103 @@ getObjectDescription(const ObjectAddress *object)
1940
1960
case OCLASS_TSPARSER :
1941
1961
{
1942
1962
HeapTuple tup ;
1963
+ Form_pg_ts_parser prsForm ;
1964
+ char * nspname ;
1943
1965
1944
1966
tup = SearchSysCache1 (TSPARSEROID ,
1945
1967
ObjectIdGetDatum (object -> objectId ));
1946
1968
if (!HeapTupleIsValid (tup ))
1947
1969
elog (ERROR , "cache lookup failed for text search parser %u" ,
1948
1970
object -> objectId );
1971
+ prsForm = (Form_pg_ts_parser ) GETSTRUCT (tup );
1972
+
1973
+ /* Qualify the name if not visible in search path */
1974
+ if (TSParserIsVisible (object -> objectId ))
1975
+ nspname = NULL ;
1976
+ else
1977
+ nspname = get_namespace_name (prsForm -> prsnamespace );
1978
+
1949
1979
appendStringInfo (& buffer , _ ("text search parser %s" ),
1950
- NameStr (((Form_pg_ts_parser ) GETSTRUCT (tup ))-> prsname ));
1980
+ quote_qualified_identifier (nspname ,
1981
+ NameStr (prsForm -> prsname )));
1951
1982
ReleaseSysCache (tup );
1952
1983
break ;
1953
1984
}
1954
1985
1955
1986
case OCLASS_TSDICT :
1956
1987
{
1957
1988
HeapTuple tup ;
1989
+ Form_pg_ts_dict dictForm ;
1990
+ char * nspname ;
1958
1991
1959
1992
tup = SearchSysCache1 (TSDICTOID ,
1960
1993
ObjectIdGetDatum (object -> objectId ));
1961
1994
if (!HeapTupleIsValid (tup ))
1962
1995
elog (ERROR , "cache lookup failed for text search dictionary %u" ,
1963
1996
object -> objectId );
1997
+ dictForm = (Form_pg_ts_dict ) GETSTRUCT (tup );
1998
+
1999
+ /* Qualify the name if not visible in search path */
2000
+ if (TSDictionaryIsVisible (object -> objectId ))
2001
+ nspname = NULL ;
2002
+ else
2003
+ nspname = get_namespace_name (dictForm -> dictnamespace );
2004
+
1964
2005
appendStringInfo (& buffer , _ ("text search dictionary %s" ),
1965
- NameStr (((Form_pg_ts_dict ) GETSTRUCT (tup ))-> dictname ));
2006
+ quote_qualified_identifier (nspname ,
2007
+ NameStr (dictForm -> dictname )));
1966
2008
ReleaseSysCache (tup );
1967
2009
break ;
1968
2010
}
1969
2011
1970
2012
case OCLASS_TSTEMPLATE :
1971
2013
{
1972
2014
HeapTuple tup ;
2015
+ Form_pg_ts_template tmplForm ;
2016
+ char * nspname ;
1973
2017
1974
2018
tup = SearchSysCache1 (TSTEMPLATEOID ,
1975
2019
ObjectIdGetDatum (object -> objectId ));
1976
2020
if (!HeapTupleIsValid (tup ))
1977
2021
elog (ERROR , "cache lookup failed for text search template %u" ,
1978
2022
object -> objectId );
2023
+ tmplForm = (Form_pg_ts_template ) GETSTRUCT (tup );
2024
+
2025
+ /* Qualify the name if not visible in search path */
2026
+ if (TSTemplateIsVisible (object -> objectId ))
2027
+ nspname = NULL ;
2028
+ else
2029
+ nspname = get_namespace_name (tmplForm -> tmplnamespace );
2030
+
1979
2031
appendStringInfo (& buffer , _ ("text search template %s" ),
1980
- NameStr (((Form_pg_ts_template ) GETSTRUCT (tup ))-> tmplname ));
2032
+ quote_qualified_identifier (nspname ,
2033
+ NameStr (tmplForm -> tmplname )));
1981
2034
ReleaseSysCache (tup );
1982
2035
break ;
1983
2036
}
1984
2037
1985
2038
case OCLASS_TSCONFIG :
1986
2039
{
1987
2040
HeapTuple tup ;
2041
+ Form_pg_ts_config cfgForm ;
2042
+ char * nspname ;
1988
2043
1989
2044
tup = SearchSysCache1 (TSCONFIGOID ,
1990
2045
ObjectIdGetDatum (object -> objectId ));
1991
2046
if (!HeapTupleIsValid (tup ))
1992
2047
elog (ERROR , "cache lookup failed for text search configuration %u" ,
1993
2048
object -> objectId );
2049
+ cfgForm = (Form_pg_ts_config ) GETSTRUCT (tup );
2050
+
2051
+ /* Qualify the name if not visible in search path */
2052
+ if (TSConfigIsVisible (object -> objectId ))
2053
+ nspname = NULL ;
2054
+ else
2055
+ nspname = get_namespace_name (cfgForm -> cfgnamespace );
2056
+
1994
2057
appendStringInfo (& buffer , _ ("text search configuration %s" ),
1995
- NameStr (((Form_pg_ts_config ) GETSTRUCT (tup ))-> cfgname ));
2058
+ quote_qualified_identifier (nspname ,
2059
+ NameStr (cfgForm -> cfgname )));
1996
2060
ReleaseSysCache (tup );
1997
2061
break ;
1998
2062
}
0 commit comments