[ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12370219 ]
Kathey Marsden commented on DERBY-970:
--------------------------------------
Knut Asked:
>By the way, how strict is that rule (That metadata queries be handled on the server side
and not the client)?
The functional requirement is pretty simple. On upgrade of the server or client software,
the supported public API's, such as JDBC, that worked in the old version should still
work after they plop down the new jar file. There should be no additional intervention required
on the part of the user or application developer to get what was working to work once again.
For example they cannot be required to upgrade the software on the other end of the wire
or make application changes to get things to work.
The implementation of this is complex and can get quite messy.
For the metadata queries that means that any query executed by a client needs to work with
server versions past and future. Putting an empty ResultSet query in the client might be
likely always to work just fine because it uses SQL Syntax that has the same requirement.
Many of the metadata queries, however, use internal interfaces and unsupported syntax and
refer to system table columns that may have been recently added, so maintaining these on the
client would be very difficult.
For example adding the 10.2 metadata.properties to the 10.2 client and having queries executed
that way would break 10.2 client with 10.1 client right away . To fix with 10.1 we would
have to add the 10.1 metadata.properties to the 10.2 client. We would also need to preserve
the internal interfaces on the servers of the future so the old clients would continue to
work.
It seems easier for these to keep the queries tied to the server and then only the stored
procedure names have to stay the same.
Good references regarding the maintenance of all of this on the Wiki from more architecturally
inclined minds:
http://wiki.apache.org/db-derby/ForwardCompatibility
http://wiki.apache.org/db-derby/SharedComponentVersioningGuidelines#head-021f7965c44f0b0bcb993d3f54922e1b41d53921
> Add new metadata methods to network client driver
> -------------------------------------------------
>
> Key: DERBY-970
> URL: http://issues.apache.org/jira/browse/DERBY-970
> Project: Derby
> Type: Sub-task
> Reporter: David Van Couvering
> Assignee: Knut Anders Hatlen
> Attachments: derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff,
derby-970-part2-v1.stat
>
> Implement new JDBC 4.0 DatabaseMetaData methods in the client driver:
> - supportsStoredFunctionsUsingCallSyntax()
> - autoCommitFailureClosesAllResultSets()
> - getClientInfoProperties()
> - providesQueryObjectGenerator()
> - getSchemas()
> - getRowIdLifetime()
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira