Good point... I think many DDL statements need fixing in that case:

ij> create table session.permTable ( i int);
0 rows inserted/updated/deleted
ij> create view view1 as select * from session.permTable;
ERROR XCL51: The requested function can not reference tables in SESSION schema.
ij> create trigger trig1 after insert on session.permTable for each row mode db2
sql insert into t1 values (1);
ERROR XCL51: The requested function can not reference tables in SESSION schema.
ij> create synonym syn1 for session.permTable;
ERROR XCL51: The requested function can not reference tables in SESSION schema.
ij> create index indSession on session.permTable (i);   <============ Works correctly.
0 rows inserted/updated/deleted

I seem to have changed from the correct way to check in original submitted patch to incorrect way in the last "cleanup"...  :-(

Satheesh

Daniel John Debrunner wrote:
Satheesh Bandaram (JIRA) wrote:

  
    [ http://issues.apache.org/jira/browse/DERBY-347?page=comments#action_12313495 ] 

Satheesh Bandaram commented on DERBY-347:
-----------------------------------------

The patch looks good, though I would add more description to the CREATE SYNONYM section. Can we also add the following information?

  *  A synonym can be defined for a table/view that doesn't exists at the synonym creation time. If it doesn't exists, a warning (SQLSTATE 01522) is raised. The referenced object must be present when a synonym is used in a DML statement.
    
[snip]
  
  *  A synonym can't be defined on a temporary table. (SQLSTATE XCL51)
    

Is the temp table restriction a DDL time (CREATE SYNONYM) failure or a
runtime (when the SYNONYM is used in a statement)?

Because error XCL51 doesn't exactly match what you describe. XCL51
indicates the operation cannot reference a table in the SESSION schema,
which is where temp tables are defined but that schema can also support
normal tables.

Dan.





  

Reply via email to