The function was tweaked so as it returned one row full of NULLs when
 working on an unsupported relkind or an undefined object as of 
cc53123,
 and after discussion with Amit and Álvaro it looks more natural to make
 it return no rows. 
 Author: Michael Paquier 
Reviewed-by: Álvaro Herrera, Amit Langote Discussion: https://postgr.es/m/
20190227184808.GA17357@alvherre.pgsql  
   
              FuncCallContext *funcctx;
     ListCell  **next;
  
 -   if (!check_rel_can_be_partition(rootrelid))
 -       PG_RETURN_NULL();
 -
     /* stuff done only on the first call of the function */
     if (SRF_IS_FIRSTCALL())
     {
          /* create a function context for cross-call persistence */
         funcctx = SRF_FIRSTCALL_INIT();
  
 +       if (!check_rel_can_be_partition(rootrelid))
 +           SRF_RETURN_DONE(funcctx);
 +
         /* switch to memory context appropriate for multiple function calls */
         oldcxt = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
  
          SELECT * FROM pg_partition_tree(0);
   relid | parentrelid | isleaf | level 
  -------+-------------+--------+-------
 -       |             |        |      
 -(1 row)
 +(0 rows)
  
  SELECT pg_partition_root(NULL);
   pg_partition_root 
   SELECT * FROM pg_partition_tree('ptif_test_view');
   relid | parentrelid | isleaf | level 
  -------+-------------+--------+-------
 -       |             |        |      
 -(1 row)
 +(0 rows)
  
  SELECT * FROM pg_partition_tree('ptif_test_matview');
   relid | parentrelid | isleaf | level 
  -------+-------------+--------+-------
 -       |             |        |      
 -(1 row)
 +(0 rows)
  
  SELECT pg_partition_root('ptif_test_view');
   pg_partition_root