@@ -874,25 +874,18 @@ pg_relation_filenode(PG_FUNCTION_ARGS)
874
874
PG_RETURN_NULL ();
875
875
relform = (Form_pg_class ) GETSTRUCT (tuple );
876
876
877
- switch ( relform -> relkind )
877
+ if ( RELKIND_HAS_STORAGE ( relform -> relkind ) )
878
878
{
879
- case RELKIND_RELATION :
880
- case RELKIND_MATVIEW :
881
- case RELKIND_INDEX :
882
- case RELKIND_SEQUENCE :
883
- case RELKIND_TOASTVALUE :
884
- /* okay, these have storage */
885
- if (relform -> relfilenode )
886
- result = relform -> relfilenode ;
887
- else /* Consult the relation mapper */
888
- result = RelationMapOidToFilenode (relid ,
889
- relform -> relisshared );
890
- break ;
891
-
892
- default :
893
- /* no storage, return NULL */
894
- result = InvalidOid ;
895
- break ;
879
+ if (relform -> relfilenode )
880
+ result = relform -> relfilenode ;
881
+ else /* Consult the relation mapper */
882
+ result = RelationMapOidToFilenode (relid ,
883
+ relform -> relisshared );
884
+ }
885
+ else
886
+ {
887
+ /* no storage, return NULL */
888
+ result = InvalidOid ;
896
889
}
897
890
898
891
ReleaseSysCache (tuple );
@@ -951,38 +944,30 @@ pg_relation_filepath(PG_FUNCTION_ARGS)
951
944
PG_RETURN_NULL ();
952
945
relform = (Form_pg_class ) GETSTRUCT (tuple );
953
946
954
- switch (relform -> relkind )
947
+ if (RELKIND_HAS_STORAGE (relform -> relkind ))
948
+ {
949
+ /* This logic should match RelationInitPhysicalAddr */
950
+ if (relform -> reltablespace )
951
+ rnode .spcNode = relform -> reltablespace ;
952
+ else
953
+ rnode .spcNode = MyDatabaseTableSpace ;
954
+ if (rnode .spcNode == GLOBALTABLESPACE_OID )
955
+ rnode .dbNode = InvalidOid ;
956
+ else
957
+ rnode .dbNode = MyDatabaseId ;
958
+ if (relform -> relfilenode )
959
+ rnode .relNode = relform -> relfilenode ;
960
+ else /* Consult the relation mapper */
961
+ rnode .relNode = RelationMapOidToFilenode (relid ,
962
+ relform -> relisshared );
963
+ }
964
+ else
955
965
{
956
- case RELKIND_RELATION :
957
- case RELKIND_MATVIEW :
958
- case RELKIND_INDEX :
959
- case RELKIND_SEQUENCE :
960
- case RELKIND_TOASTVALUE :
961
- /* okay, these have storage */
962
-
963
- /* This logic should match RelationInitPhysicalAddr */
964
- if (relform -> reltablespace )
965
- rnode .spcNode = relform -> reltablespace ;
966
- else
967
- rnode .spcNode = MyDatabaseTableSpace ;
968
- if (rnode .spcNode == GLOBALTABLESPACE_OID )
969
- rnode .dbNode = InvalidOid ;
970
- else
971
- rnode .dbNode = MyDatabaseId ;
972
- if (relform -> relfilenode )
973
- rnode .relNode = relform -> relfilenode ;
974
- else /* Consult the relation mapper */
975
- rnode .relNode = RelationMapOidToFilenode (relid ,
976
- relform -> relisshared );
977
- break ;
978
-
979
- default :
980
966
/* no storage, return NULL */
981
967
rnode .relNode = InvalidOid ;
982
968
/* some compilers generate warnings without these next two lines */
983
969
rnode .dbNode = InvalidOid ;
984
970
rnode .spcNode = InvalidOid ;
985
- break ;
986
971
}
987
972
988
973
if (!OidIsValid (rnode .relNode ))
0 commit comments