According to the oracle the below example will gather on the global level.
exec dbms_stats.gather_table_stats( Owname=>'SH', Tabname=>'SALES', Partname=>'23_MAY_2008', Granularity=>Global);
exec dbms_stats.gather_table_stats(ownname=>'SH', tabname=>'SALES', cascade=>true, granularity=>'GLOBAL', degree=>21);
I did a test on inserting into temp table with interval partition setup and execute above command right after.
I noticed that partition level was also being gathered where Granularity was set to Global.
It seems to be confusing what is the backend logic that Oracle do when setting to Granularity=>Global.