title: In Oracle, why do public synonyms become invalid when a table partition is dropped
body: <p>can someone tell me why the following behavior occurs (Oracle 10.2):</p>
  
  <pre><code>SQL&gt; create table part_test (
          i int primary key,
          d date
  )
  partition by range (d) (partition part_test_1 values less than (to_date('  2    3    4    5  1980-01-01', 'yyyy-mm-dd')));
  
  create public synonym part_test for part_test;
  
  select object_name, object_type, status from all_objects where object_name = 'PART_TEST';
  
  alter table part_test add partition part_test_2 values less than (to_date('1981-01-01', 'yyyy-mm-dd'));
  
  select object_name, object_type, status from all_objects where object_name = 'PART_TEST';
  
  alter table part_test drop partition part_test_1;
  
  select object_name, object_type, status from all_objects where object_name = 'PART_TEST';
  
  drop public synonym part_test;
  drop table part_test;
  
  Table created.
  
  SQL&gt; SQL&gt; 
  Synonym created.
  
  SQL&gt; SQL&gt; 
  OBJECT_NAME                    OBJECT_TYPE         STATUS
  ------------------------------ ------------------- -------
  PART_TEST                      TABLE               VALID
  PART_TEST                      TABLE PARTITION     VALID
  PART_TEST                      SYNONYM             VALID
  
  SQL&gt; SQL&gt; 
  Table altered.
  
  SQL&gt; SQL&gt; 
  OBJECT_NAME                    OBJECT_TYPE         STATUS
  ------------------------------ ------------------- -------
  PART_TEST                      TABLE               VALID
  PART_TEST                      TABLE PARTITION     VALID
  PART_TEST                      TABLE PARTITION     VALID
  PART_TEST                      SYNONYM             VALID
  
  SQL&gt; SQL&gt; 
  Table altered.
  
  SQL&gt; SQL&gt; 
  OBJECT_NAME                    OBJECT_TYPE         STATUS
  ------------------------------ ------------------- -------
  PART_TEST                      TABLE               VALID
  PART_TEST                      TABLE PARTITION     VALID
  PART_TEST                      SYNONYM             INVALID
  
  SQL&gt; SQL&gt; 
  Synonym dropped.
  
  SQL&gt; 
  Table dropped.
  
  SQL&gt; 
  </code></pre>
  
  <p>The synonym becomes invalid after partitions are dropped, and I can't work out why.</p>
  
  <p>Thanks for any thoughts.</p>