db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Hillegas <Richard.Hille...@Sun.COM>
Subject Re: Developer's Guide : Example for table function creation has NO SQL clause but the Java method uses SQL
Date Wed, 23 Apr 2008 21:04:41 GMT
Mamta Satoor wrote:
> Hi,
>
> I could be understanding this wrong but section "Overview of
> Derby-style table functions" in Developer's Guide has following
> example
> CREATE FUNCTION externalEmployees
> ()
> RETURNS TABLE
> (
>   employeeId    INT,
>   lastName      VARCHAR( 50 ),
>   firstName     VARCHAR( 50 ),
>   birthday      DATE
> )
> LANGUAGE JAVA
> PARAMETER STYLE DERBY_JDBC_RESULT_SET
> NO SQL
> EXTERNAL NAME 'com.acme.hrSchema.EmployeeTable.read'
>
> Notice that the example above says NO SQL. Later in the same section,
> when we have an example of the implementation of
> 'com.acme.hrSchema.EmployeeTable.read, it shows the usage of
> PreparedStatement to execute a SQL query. I think we need to fix the
> CREATE FUNCTION example to say "READS SQL DATA".
>
> thanks,
> Mamta
>   
Hi Mamta,

Thanks for digging into the user documentation on table functions. I 
agree that it would be less confusing if the example said "READS SQL 
DATA" rather than "NO SQL". I think that would be a better model for 
people writing this kind of table function. The meaning of those terms 
is ambiguous to me and I am not finding much guidance in the SQL 
standard--at least not in part 2, section 11.50 <SQL-invoked routine> or 
in part 13, section 9.8 <SQL-invoked routine>. It is unclear to me 
whether that clause is supposed to refer just to SQL issued against the 
current connection or whether it also refers to SQL issued against 
connections opened to foreign databases. Derby is able to enforce the 
clause in the first case but in the second case there is not much that 
Derby can do.

Thanks,
-Rick

Mime
View raw message