You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "David Van Couvering (JIRA)" <de...@db.apache.org> on 2006/02/13 22:34:42 UTC

[jira] Created: (DERBY-970) Add new metadata methods to network client driver

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




-- 
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


[jira] Updated: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]

Knut Anders Hatlen updated DERBY-970:
-------------------------------------

    Derby Info: [Patch Available]

> 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

>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: check_server_version-v2.diff, check_server_version-v2.stat, check_server_version.diff, check_server_version.stat, check_server_version_report.txt, derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-v1.stat, derby-970-part3-v2.diff, derby-970-part3-v2.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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Dyre Tjeldvoll (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12370521 ] 

Dyre Tjeldvoll commented on DERBY-970:
--------------------------------------

I have looked at the -part2-v1.diff patch, and I think it looks good. Is it intentional that the "test case" methods. E.g. testAutoCommitFailure(...) just have an ordianary comment, and not proper javadoc? Do we even generate javadoc in in derbyTesting? Anyway, if nobody objects, I think you should go ahead and commit this.

> 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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Dyre Tjeldvoll (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12375329 ] 

Dyre Tjeldvoll commented on DERBY-970:
--------------------------------------

I have looked at the part3-v2 patch and I think it looks good. Even better than the first which was also good ... :) IMHO, it is ready to be committed.

> 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

>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: check_server_version-v2.diff, check_server_version-v2.stat, check_server_version.diff, check_server_version.stat, check_server_version_report.txt, derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-v1.stat, derby-970-part3-v2.diff, derby-970-part3-v2.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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12369863 ] 

Knut Anders Hatlen commented on DERBY-970:
------------------------------------------

> Kathey Marsden commented on DERBY-970:
> --------------------------------------
>
> Sorry I didn't look at this earlier I have a few questions as I try
  to come up to speed on the issues.

Thanks for your comments and suggestions! See my answers below.

>
> 1) Could you clarify the issue with JDK 1.6?
> From what I understand, the issue is:
> We just don't have access to the JDK 1.6 interfaces because in our
> build we don't build with JDK 1.6.  Is that correct?

That's correct. For instance, most of the client driver is compiled
with 1.4. Code that doesn't run in 1.3 is wrapped in an if, like this:

  if (JVMInfo.JDK_ID >= JVMInfo.J2SE_14) {
    // call a method that's not in java 1.3
  }

We could do this with 1.6 code too, but since the 1.6 compiler only
can be used to compile optional (that is, JDBC 4) modules, the body of
the if statement needs to be written using reflection.

> If that is the
> case, can our SystemProcedure just call our internal implementation?

Yes, that is basically what alternative a would do. Since the JDBC 4.0
database metadata methods are implemented in EmbedDatabaseMetaData40,
we need to use reflection to check whether there is an internal
implementation of the metadata call.

Alternatively, we could move the metadata methods from the 4.0 class
to the base class (or add a dummy method throwing not implemented in
the base class). In that case we could avoid the reflection.

Currently, the system procedures do this to get result sets

  rs[0] = getDMD().getXXX(x,y,z);

We would need to cast the return value from getDMD() to
EmbedDatabaseMetaData and change the code like this

  rs[0] = ((EmbedDatabaseMetaData) getDMD()).getXXX(x,y,z);

I was considering this approach earlier, but rejected it because
  a) I didn't like casting from the java.sql interface to some
     internal implementation, and
  b) It wouldn't work if the method signatures contained new language
     constructs

Looking at it again, at least b) doesn't seem to be an issue since
none of the metadata methods added by JDBC 4 use new language
constructs in their signatures.

If SystemProcedure.getDMD() is guaranteed to return an
EmbedDatabaseMetaData object, a) isn't an issue either. I'll check if
that's the case. If it is, I think I like that solution better than
the factory.

> 2) With your plan will metadata.properties remain as is and we keep
>    the stored prepared statements?

Yes.

> 3)Could you epxplain how thie factory solution would work a little
>   more?

Methods that need 1.6 to compile are moved out into another class, say
SysProcHelper40. We would also need a base class, say SysProcHelper,
which is possible to compile under 1.4. For the new getSchemas()
method, we would have something like this:

class SysProcHelper {
    ResultSet getSchemas(DatabaseMetaData dmd, String arg1, String arg2)
        throws SQLException {
        // throw not implemented
    }
}

class SysProcHelper40 extends SysProcHelper {
    ResultSet getSchemas(DatabaseMetaData dmd, String arg1, String arg2)
        throws SQLException {
        return dmd.getSchemas(arg1, arg2);
    }
}

In SystemProcedures, we would need to add a variable of type
SysProcHelper, which is initialized (using reflection) to a
SysProcHelper or SysProcHelper40 instance depending on JVM.

Then we would implement the system procedure like this:

  rs[0] = sysProcHelper.getSchemas(getDMD(), arg1, arg2);

This way, we would get code that compiles without 1.6, returns the
correct result set when running under 1.6 (with JDBC 4 compiled in),
and throws not implemented when JDBC 4 isn't enabled.

> And a couple of tangental questions:
> 4)
> Do you understand how metadata.properties changes are handled with
> regard to soft upgrade, downgrade, upgrade, etc currentlyy?

Not at all! :)

I guess adding a new query wouldn't cause problems, since that will
just add a new SPS the first time it is used and not affect other
queries.

Modifying existing queries, which has to be done for
DatabaseMetaData.getProcedures() and getProcedureColumns(), is
probably worse. Dropping the SPS or using a new name for the modified
query are the two options I can think of.

> I have
> had on my list for a long time to research what is happenning in
> Derby with this as it was the source of intractable upgrade issues
> in the past and the mechanism that I knew of to handle it (dropping
> the SPS's whenever the version changed) is no longer in Derby.  I
> just haven't been able to get to researching it yet.

Why was the dropping of SPSs removed?

Frankly, I don't see the value in storing SPSs for metadata calls. Is
it for performance? If yes, how many applications exist that would
suffer noticeably from more expensive metadata calls? And if such
applications exist, wouldn't it be better to have prepared statements
whose lifetime didn't exceed the lifetime of the JVM process? Then the
queries would be prepared at most once per process, and we wouldn't
have the upgrade problem. I'm probably missing something.

> 5) Is there a general problem with incompatiblity of compiled Stored
>    Prepared Statements in databases that may have been created with
>    different JVM versions?

I don't think so. Incompatibilities only occur if the SQL text of the
stored prepared statements change when changing JVM, and that is not
the case.

If the SQL text has to change depending on JVM, I think you could
avoid the problem by giving the queries/SPSs different names.

> On   the earlier suggestions:
> Either c or d would be a fatal blow to client/server compatibility,
> so they have all the appeal of euthanasia for client/server compat.

Oh, then we *certainly* should try to avoid that!

By the way, how strict is that rule? It seems like the client driver
already has the queries for these metadata methods hard coded:

  - getSuperTypes()
  - getSuperTables()
  - getAttributes()

All of these have a corresponding entry in metadata.properties, and
SPSs which are only used by the embedded driver. However, all of these
methods return empty result sets.

I was hoping that I could follow the same pattern for
getClientInfoProperties() (which also returns an empty result set).

> 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

>
> Implement new JDBC 4.0 DatabaseMetaData methods in the client driver:
>   - supportsStoredFunctionsUsingCallSyntax()
>   - autoCommitFailureClosesAllResultSets()
>   - getClientInfoProperties()
>   - providesQueryObjectGenerator()
>   - getSchemas()

-- 
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


[jira] Closed: (DERBY-970) Add new metadata methods to network client driver

Posted by "Rick Hillegas (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]
     
Rick Hillegas closed DERBY-970:
-------------------------------


> 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

>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: check_server_version-v2.diff, check_server_version-v2.stat, check_server_version.diff, check_server_version.stat, check_server_version_report.txt, derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-v1.stat, derby-970-part3-v2.diff, derby-970-part3-v2.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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Daniel John Debrunner (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12369895 ] 

Daniel John Debrunner commented on DERBY-970:
---------------------------------------------

David Van Couvering wrote:

> but are we as a community willing to commit to using JDK 1.6 

Not sure what exactly you mean here, require 1.6 to build Derby instead of 1.4?

You have to remember you cannot regress the ability of someone to build Derby currently,
questions that arise in my mind are:
     -  when will 1.6 be available on mac os,
     -  am I forced to use Sun's JDK to build if no others exist, I happily build & test using IBM's vms today.
     -  if Sun is the only JDK 1.6 vm out there, are it's licence terms acceptable to most folks, today since
         the build is 1.4 based, folks have choice.
      - if someone only cares about 1.4/1.5 today, are we forcing them to download 1.6?




> 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

>
> Implement new JDBC 4.0 DatabaseMetaData methods in the client driver:
>   - supportsStoredFunctionsUsingCallSyntax()
>   - autoCommitFailureClosesAllResultSets()
>   - getClientInfoProperties()
>   - providesQueryObjectGenerator()
>   - getSchemas()

-- 
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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12371984 ] 

Knut Anders Hatlen commented on DERBY-970:
------------------------------------------

Thanks Dyre, but I have promised that I won't commit the patch yet.

To your question about checkJdbcVersionX(): I think all new JDBC 4
metadata calls that require support by the server should call
checkJdbcVersionX(). I don't see any value in calling it for methods
that return constants (like autoCommitFailureClosesAllResultSets()) or
empty result sets (like getClientInfoProperties()).

I think getFunctions() and getFunctionParameters(), which I have seen
you working on, should call this method.

> 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
>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "David Van Couvering (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12370240 ] 

David Van Couvering commented on DERBY-970:
-------------------------------------------

To Dyre's question: I don't know if there is a consensus, but at least *I* support adding new queries instead of modifying old ones.  Just seems safer in terms of maintaining backward compatibility and upgradability...   But I think this may be more of an issue for the network client than the engine, no?

> 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


[jira] Updated: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]

Knut Anders Hatlen updated DERBY-970:
-------------------------------------

    Attachment: derby-970-part2-v1.diff
                derby-970-part2-v1.stat

Uploaded patch derby-970-part2-v1.diff. The patch is partial and
implements the non-controversial methods only (at least, I believe
they are non-controversial).

This patch implements the following new JDBC 4 DatabaseMetaData
methods in the client driver:

  - getRowIdLifetime() - returns RowIdLifetime.ROWID_UNSUPPORTED

  - supportsStoredFunctionsUsingCallSyntax() - returns true

  - autoCommitFailureClosesAllResultSets() - returns false

  - providesQueryObjectGenerator() - returns false

Canon for jdbc4/TestDbMetaData.java is updated to reflect that the
methods are implemented on the client.

New test cases added to TestDbMetaData:

  - try to execute a stored procedure using the escape syntax, and see
    if the success/failure corresponds to the value returned by
    supportsStoredFunctionsUsingCallSyntax()

  - open a holdable result set in auto-commit mode and, on the same
    connection, execute a query which causes SQLException. Check
    whether the result set is open or closed, and see if the state
    corresponds to the value returned by
    autoCommitFailureClosesAllResultSets()

Both derbyall and the jdbc4 suite ran successfully. Please
review. Thanks.

> 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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12371834 ] 

Knut Anders Hatlen commented on DERBY-970:
------------------------------------------

Thanks for your comments, Kathey. I have no problems with waiting for those issues to be completed.

> 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
>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-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


[jira] Updated: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]

Knut Anders Hatlen updated DERBY-970:
-------------------------------------

    Attachment: derby-970-part3-v1.diff
                derby-970-part3-v1.stat

Attaching patch derby-970-part3-v1.diff which implements the new JDBC
4 methods getSchemas(String, String) and getClientInfoProperties() on
the client driver.

Description of changes on the embedded side:

  1) Moved getSchemas(String, String) from EmbedDatabaseMetaData40 to
     EmbedDatabaseMetaData so that a server running JVM < 1.6 does not
     fail.

  2) Extended SystemProcedures.SQLTABLES() (aka SYSIMB.SQLTABLES) to
     support getSchemas(String, String). It already has support for
     the zero-parameter getSchemas() by passing an option string
     "GETSCHEMAS=1". The new getSchemas() is invoked by passing
     "GETSCHEMAS=2".

Description of changes on the client side:

  3) New SQLSTATE and error message for the case when a JDBC method is
     not supported by the server (i.e., when running a new client
     against an old server). Message text: "JDBC method {0} is not
     supported by the server. Please upgrade the server."

  4) DatabaseMetaData.getClientInfoProperties() returns an empty
     result set with the correct column names. The query is hard-coded
     so that an empty result set is returned regardless of server
     version. (Same pattern is used as in the existing methods
     getSuperTypes(), getSuperTables() and getAttributes().)

  5) DatabaseMetaData.getSchemas(String, String) is implemented as a
     call to SYSIBM.SQLTABLES with the GETSCHEMAS=2 option. Since
     GETSCHEMAS=2 is not supported by older servers, the JDBC version
     of the server is checked. If the server does not support JDBC 4,
     an exception is thrown (without this check, the result of a call
     to getTables() would have been returned).

Description of test changes:

  6) In TestDbMetaData, removed try/catch blocks which were added to
     make the test continue to run when the methods were not
     implemented. (The test is still not enabled in DerbyNetClient
     because getFunctions() and getFunctionParameters() are not
     implemented yet.)

> 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, derby-970-part3-v1.diff, derby-970-part3-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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12370657 ] 

Knut Anders Hatlen commented on DERBY-970:
------------------------------------------

Thanks for looking at the part2 patch, Dyre! I changed two comments in
the test file to javadoc and committed revision 386290.

> 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


[jira] Updated: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]

Knut Anders Hatlen updated DERBY-970:
-------------------------------------

    Description: 
Implement new JDBC 4.0 DatabaseMetaData methods in the client driver:

  - supportsStoredFunctionsUsingCallSyntax()
  - autoCommitFailureClosesAllResultSets()
  - getClientInfoProperties()
  - providesQueryObjectGenerator()
  - getSchemas()
  - getRowIdLifetime()

  was:
Implement new JDBC 4.0 DatabaseMetaData methods in the client driver:

  - supportsStoredFunctionsUsingCallSyntax()
  - autoCommitFailureClosesAllResultSets()
  - getClientInfoProperties()
  - providesQueryObjectGenerator()
  - getSchemas()


> 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
>
> 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


[jira] Updated: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]

Knut Anders Hatlen updated DERBY-970:
-------------------------------------

    Attachment: derby-970-part3-v2.diff
                derby-970-part3-v2.stat

Uploading a new version of the part3 patch. Tests for getSchemas() and
getClientInfoProperties() have been added to jdbcapi/metadata.java,
and metadata.out and Upgrade_10_1_10_2.out have been updated for all
frameworks/jdks.

The only implementation change from the previous patch is that the
embedded implementation of getClientInfoProperties() is moved from
EmbedDatabaseMetaData40 to EmbedDatabaseMetaData so that it can be
tested in the metadata test on JVM<1.6.

Derbyall and the upgrade test ran cleanly on Sun JVM 1.5, Solaris 10
x86. The jdbc40 suite ran cleanly on JVM 1.6 beta2-b79. The metadata
test ran cleanly on all combinations of Sun JVM 1.6/1.4/1.3 and
embedded/DerbyNet/DerbyNetClient.

> 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

>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: check_server_version-v2.diff, check_server_version-v2.stat, check_server_version.diff, check_server_version.stat, check_server_version_report.txt, derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-v1.stat, derby-970-part3-v2.diff, derby-970-part3-v2.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


[jira] Updated: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]

Knut Anders Hatlen updated DERBY-970:
-------------------------------------

    Attachment: check_server_version-v2.diff
                check_server_version-v2.stat

Modified the check_server_version patch slightly. Added the new message id to splitmessages.java so that the message is copied into the client.

> 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

>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: check_server_version-v2.diff, check_server_version-v2.stat, check_server_version.diff, check_server_version.stat, check_server_version_report.txt, derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-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


[jira] Updated: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]

Knut Anders Hatlen updated DERBY-970:
-------------------------------------

    Attachment: derby-970-part1-v1.diff
                derby-970-part1-v1.stat

Attaching patch derby-970-part1-v1.diff. This patch makes the JDBC4
database metadata test (jdbc4/TestDbMetaData.java) also test the
client driver. Currently, none of the new metadata calls are
implemented on the client, some of them even throw
AbstractMethodError. The canon is updated accordingly.

> 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
>
> Implement new JDBC 4.0 DatabaseMetaData methods in the client driver:
>   - supportsStoredFunctionsUsingCallSyntax()
>   - autoCommitFailureClosesAllResultSets()
>   - getClientInfoProperties()
>   - providesQueryObjectGenerator()
>   - getSchemas()

-- 
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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12370031 ] 

Knut Anders Hatlen commented on DERBY-970:
------------------------------------------

Checked in patch which enables test on client driver in revision
385157. No actual code changes are committed yet.

> 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
>
> Implement new JDBC 4.0 DatabaseMetaData methods in the client driver:
>   - supportsStoredFunctionsUsingCallSyntax()
>   - autoCommitFailureClosesAllResultSets()
>   - getClientInfoProperties()
>   - providesQueryObjectGenerator()
>   - getSchemas()

-- 
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


[jira] Updated: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]

Knut Anders Hatlen updated DERBY-970:
-------------------------------------

      Component: JDBC
    Fix Version: 10.2.0.0
     Other Info: [Patch available]

Patch available. Please review!

> 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
>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-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


Re: [jira] Updated: (DERBY-970) Add new metadata methods to network client driver

Posted by Knut Anders Hatlen <Kn...@Sun.COM>.
"Dyre Tjeldvoll (JIRA)" <de...@db.apache.org> writes:

>      [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]
>
> Dyre Tjeldvoll updated DERBY-970:
> ---------------------------------
>
>     Attachment: check_server_version.diff
>                 check_server_version.stat
>                 check_server_version_report.txt
>
> I'm attaching a new patch (check_server_version) for the part of
> this patch that checks the server version.  Derbyall passes, but
> there is no test case for this method (it is protected), but it will
> be used by the rest of 970, 924, 925.

Thanks, Dyre! I'll run some tests and commit the patch.

-- 
Knut Anders

[jira] Updated: (DERBY-970) Add new metadata methods to network client driver

Posted by "Dyre Tjeldvoll (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]

Dyre Tjeldvoll updated DERBY-970:
---------------------------------

    Attachment: check_server_version.diff
                check_server_version.stat
                check_server_version_report.txt

I'm attaching a new patch (check_server_version) for the part of this patch that checks the server version. 
Derbyall passes, but there is no test case for this method (it is protected), but it will be used by the rest of 970, 924, 925.

> 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

>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: check_server_version.diff, check_server_version.stat, check_server_version_report.txt, derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Dyre Tjeldvoll (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12370184 ] 

Dyre Tjeldvoll commented on DERBY-970:
--------------------------------------

So is the consensus NOT to change any queries in metadata.properties, then? And add new versions of those queries that need to change for JDBC 4.0? 
I need new queries for getProcedures (1093) and getProcedureColumns (1094). If I am going to change the existing queries I need to create new masters for metadata.java and odbc_metadata.java. But with new queries I need to discard changes to those masters, and just update the jdbc4 master.  

> 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


[jira] Resolved: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]
     
Knut Anders Hatlen resolved DERBY-970:
--------------------------------------

    Resolution: Fixed

Thanks for the review, Dyre!

Committed revision 395561.

> 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

>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: check_server_version-v2.diff, check_server_version-v2.stat, check_server_version.diff, check_server_version.stat, check_server_version_report.txt, derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-v1.stat, derby-970-part3-v2.diff, derby-970-part3-v2.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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Dyre Tjeldvoll (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12370324 ] 

Dyre Tjeldvoll commented on DERBY-970:
--------------------------------------

Thanks for answering my question, David :) My only problem now is that 3 committers have expressed 3 different views on this :)

David: Make new queries, it is safer!
Dan:    You should just update the old ones!
Kathey: Don't touch anything in metadata.properties!

So, I'm kinda stuck...

> 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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "David Van Couvering (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12369894 ] 

David Van Couvering commented on DERBY-970:
-------------------------------------------

I'll weigh in on a couple of things:

- A lot of the complexity in your solution seems to be dependent on the fact that we can't require JDK 1.6 to build Derby.  I think that requirement needs to continue to exist until JDK 1.6 goes GA, but are we as a community willing to commit to using JDK 1.6 (assuming we can find a build approach that works) once it's GA, so we don't have these kinds of issues come up over and over?

- I think it makes sense to give new revisions of old metadata stored procs new names

- I think it makes a lot of sense to move the new metadata calls into the old metadata class so you don' t have to pick your class at runtime through reflection

- I also agree I don't see the obvious value making metadata calls stored procedures rather than just prepared statements.

David

> 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

>
> Implement new JDBC 4.0 DatabaseMetaData methods in the client driver:
>   - supportsStoredFunctionsUsingCallSyntax()
>   - autoCommitFailureClosesAllResultSets()
>   - getClientInfoProperties()
>   - providesQueryObjectGenerator()
>   - getSchemas()

-- 
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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Kathey Marsden (JIRA)" <de...@db.apache.org>.
    [ 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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12369251 ] 

Knut Anders Hatlen commented on DERBY-970:
------------------------------------------

Most of the JDBC 4 DatabaseMetaData methods that return a ResultSet
are implemented in the embedded driver. I can think of many ways to
implement them in the client driver, but I don't like any of them very
much.

The current pattern for implementing such methods is:

  1) write a query and put it in metadata.properties

  2) implement method in EmbedDatabaseMetaData executing query in
     metadata.properties

  3) create system procedure in SystemProcedures, calling the method
     through the java.sql.DatabaseMetaData interface

  4) implement method in the client driver, calling the system
     procedure

Since JDK 1.6 compilation is optional, step 3 is not possible without
using reflection. There are (at least) two ways that step can be
performed with reflection:

  a) find and invoke the correct JDBC 4 DatabaseMetaData method with
     reflection

  b) have some kind of JDBC 4 SystemProcedure factory which can load a
     class compiled under JDK 1.6

Then there is the possibility to break the current pattern and let the
client execute the query directly instead of going through the system
procedure. Two options:

  c) hard code the query in the client driver (already used for some
     metadata methods returning an empty ResultSet, in which case it
     is OK?)

  d) let client access metadata.properties (by letting ant copy the
     file)

My objections to these approaches are:

Approach a will result in messy and hard to read code where all sorts
of exceptions need to be caught and handled.

Approach b needs at least two additional java files (interface and
implementation) which seems like too much complexity for something
this simple.

Approach c duplicates code (that is, SQL code).

Approach d can cause compatibility problems if the name of a system
table/schema changes in a subsequent Derby version.

Also, approaches c and d won't create and store an SPS (stored
prepared statement). Is performance a big issue for metadata calls?

I would appreciate getting some advice on which of these ugly
solutions to choose. Of course, if someone has a solution that is not
ugly, I would appreciate that too!

Thanks!

> 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

>
> Implement new JDBC 4.0 DatabaseMetaData methods in the client driver:
>   - supportsStoredFunctionsUsingCallSyntax()
>   - autoCommitFailureClosesAllResultSets()
>   - getClientInfoProperties()
>   - providesQueryObjectGenerator()
>   - getSchemas()

-- 
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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Kathey Marsden (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12370361 ] 

Kathey Marsden commented on DERBY-970:
--------------------------------------

Dyre said I said
>Kathey: Don't touch anything in metadata.properties!
I don't think I said that.  What I was trying to say was:

1) Don't break anything that works now when you change metadata.properties.
2) Make sure upgrade/softupgrade and downgrade are tested when you change metdata.properties
3) Keep metadata.properties on the server.
4) Be careful in there.  DERBY-1107 creates a mine field which in the past has created bugs which were impossible to fix without solution of the time travel problem.
 
As for implementation:
I think adding additional columns to existing queries is fine and perhaps preferable where possible  because it avoids duplication of queries and should not impact existing applications.
I think changing the results returned  for existing columns is probably *not*  OK.
I think adding new  queries is fine too if needed.


> 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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Kathey Marsden (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12370231 ] 

Kathey Marsden commented on DERBY-970:
--------------------------------------

Note: My previous comment had an error. I said:
>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 .

But should have said:
>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 server  right away.

I could not see how to delete and repost my comment  to make the correction as I have done in the past..



> 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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Kathey Marsden (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12369672 ] 

Kathey Marsden commented on DERBY-970:
--------------------------------------

Sorry I didn't look at this earlier I have a few  questions as I try to come up to speed on the issues.

1) Could you clarify the issue with JDK 1.6?
>From what I understand, the issue is:
 We just don't have access to the JDK 1.6 interfaces because in our build we don't build with JDK 1.6.   Is that correct?   If that is the case, can our SystemProcedure just call our internal implementation?

2) With your plan will metadata.properties remain as is and we keep the stored prepared statements?

3)Could you epxplain how thie factory solution would work a little more?


And a couple of tangental questions:
4)
Do you understand how metadata.properties changes are handled with regard to soft upgrade, downgrade, upgrade, etc currentlyy?  I have had on my list for a long time to research what is happenning in Derby with this as it was the source of intractable upgrade issues in the past and the mechanism that I knew of to handle it (dropping the SPS's whenever the version changed) is no longer in Derby.  I just haven't been able to get to researching it yet.


5)  Is there a general problem with incompatiblity of compiled Stored Prepared Statements  in databases that may have been created with different JVM versions?


On   the earlier suggestions:

Either c or d  would be a fatal blow to client/server compatibility, so they have all the appeal of euthanasia for client/server compat.




> 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

>
> Implement new JDBC 4.0 DatabaseMetaData methods in the client driver:
>   - supportsStoredFunctionsUsingCallSyntax()
>   - autoCommitFailureClosesAllResultSets()
>   - getClientInfoProperties()
>   - providesQueryObjectGenerator()
>   - getSchemas()

-- 
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


[jira] Updated: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]

Knut Anders Hatlen updated DERBY-970:
-------------------------------------

    Derby Info:   (was: [Patch Available])

The part 3 patch has conflicts with the current trunk. Removing "patch available" until a new patch is uploaded.

> 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

>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Kathey Marsden (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12371737 ] 

Kathey Marsden commented on DERBY-970:
--------------------------------------

Thanks Knut for the clarification.  Metadata  seems such a delicate area right now and as you say the tests  are behind the feature devopment.  I get a little wary  of all the changes happening in this area, given the testing situation and the outstanding bugs.  I  think maybe we should hold off on metadata checkins until DERBY-514 is complete and DERBY-1120 and DERBY-1124 are resolved.   Also a clear  strategy on DERBY-1107  would be good as well, but not required.   I know these are not your issues but I think it would be a good cautionary measure to get these core testing issues and bugs resolved  with metadata resolved before checkin in more metadata enhancements.

Thoughts?




> 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
>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12373988 ] 

Knut Anders Hatlen commented on DERBY-970:
------------------------------------------

Committed check_server_version-v2.diff in revision 393164.

> 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

>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: check_server_version-v2.diff, check_server_version-v2.stat, check_server_version.diff, check_server_version.stat, check_server_version_report.txt, derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-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


[jira] Updated: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]

Knut Anders Hatlen updated DERBY-970:
-------------------------------------

    Description: 
Implement new JDBC 4.0 DatabaseMetaData methods in the client driver:

  - supportsStoredFunctionsUsingCallSyntax()
  - autoCommitFailureClosesAllResultSets()
  - getClientInfoProperties()
  - providesQueryObjectGenerator()
  - getSchemas()
    Environment: 

> 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

>
> Implement new JDBC 4.0 DatabaseMetaData methods in the client driver:
>   - supportsStoredFunctionsUsingCallSyntax()
>   - autoCommitFailureClosesAllResultSets()
>   - getClientInfoProperties()
>   - providesQueryObjectGenerator()
>   - getSchemas()

-- 
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


Re: [jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by Dy...@Sun.COM.
"David Van Couvering (JIRA)" <de...@db.apache.org> writes:

>     [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12370402 ] 
>
> David Van Couvering commented on DERBY-970:
> -------------------------------------------
>
> So, I think Kathey's answer is the right compromise between mine and Dan's.  I agree if we *can* reuse existing queries without affecting upgrade and compatibility, let's do so.  I think we need to make sure as part of our tests that upgrade works and we don't have any compatibility errors when running metadata tests.  I would think running an old client against a new database would be a good thing, as well as upgrading an old database and making sure the new metadata queries work correctly.

As far as I could tell, she did not suggest a particular solution?

Anyway, I would like to continue this part of the discussion (which
queries to put in metadata.properties and how to refer to them) to
DERBY-1093, and/or DERBY-1094, since this is really separate from the
client/server version compatibility issue.

-- 
dt


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "David Van Couvering (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12370402 ] 

David Van Couvering commented on DERBY-970:
-------------------------------------------

So, I think Kathey's answer is the right compromise between mine and Dan's.  I agree if we *can* reuse existing queries without affecting upgrade and compatibility, let's do so.  I think we need to make sure as part of our tests that upgrade works and we don't have any compatibility errors when running metadata tests.  I would think running an old client against a new database would be a good thing, as well as upgrading an old database and making sure the new metadata queries work correctly.

David

> 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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12371723 ] 

Knut Anders Hatlen commented on DERBY-970:
------------------------------------------

Kathey wrote:

> 1) What is the soft upgrde impact of this change if any?

There should be no soft upgrade impact of this change.

getClientInfoProperties() contains a query that always returns an
empty result set, so you can upgrade and downgrade as much as you
want, both softly and hard, and still see the same result.

getSchemas() uses an existing system procedure (SQLTABLES) which is
available in soft upgrade mode. The system procedure is slightly
modified, but it's interface is unchanged, so I can't see how it
should be affected by soft upgrade.

And since both the methods are new in JDBC 4, old clients won't notice
any change.

> DERBY-1075 was checked in last night so you could probably go ahead
> and add soft upgrade tests for this.

It doesn't seem like the upgrade test is quite ready, yet. At least, I
get a *huge* diff when I try to run it. I'm also not sure it's easy to
add tests for new JDBC 4 methods (that is, without heavy use of
reflection).

> 2) Did you run the derbynetmats suite (JCC) with your change?

Yes. No failures.

> 3) I was thinking to add coverage for specific client/server version
>    code paths, it would be good to add tests to:
>  java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/compatibility/JDBCDriverTest
>   and run with the original client release and then run with:
> . original 10.1 client / trunk server
>    original 10.1 server/ trunk client

Again, I don't think it's trivial to add tests for new JDBC 4 methods
to that test. I also don't thinks these methods are very interesting
to have in a compatibility test. getClientInfoProperties() just
returns an empty result set, getSchemas() is supposed to fail with an
old server, and old clients don't even have the methods, so there
isn't much compatibility to test.

> 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
>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Dyre Tjeldvoll (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12371977 ] 

Dyre Tjeldvoll commented on DERBY-970:
--------------------------------------

I have looked at the part3 patch, and I think it looks good. +1 to commit. Should all new jdbc4 *X methods now call checkJdbcVersionX() as you have done in getSchemasX()? 

> 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
>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-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


[jira] Assigned: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]

Knut Anders Hatlen reassigned DERBY-970:
----------------------------------------

    Assign To: Knut Anders Hatlen

> 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

>


-- 
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


[jira] Updated: (DERBY-970) Add new metadata methods to network client driver

Posted by "Andrew McIntyre (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-970?page=all ]

Andrew McIntyre updated DERBY-970:
----------------------------------

    Other Info:   (was: [Patch available])
    Derby Info: [Patch Available]

> 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
>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Kathey Marsden (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12371584 ] 

Kathey Marsden commented on DERBY-970:
--------------------------------------

I have not reviewed the patch yet but have a few questions/comments.

1) What is the soft upgrde impact of this change if any?
    DERBY-1075 was checked in last night so you could probably go ahead and add soft upgrade tests for this.

2) Did you run the derbynetmats suite (JCC) with your change?

3) I was thinking  to add coverage for specific client/server version code paths, it would be good to add tests to:
   java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/compatibility/JDBCDriverTest and run with the original client release and then run with:
.    original 10.1 client  / trunk server
    original 10.1 server/ trunk client

Thanks

Kathey


> 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
>   Components: JDBC
>     Reporter: David Van Couvering
>     Assignee: Knut Anders Hatlen
>      Fix For: 10.2.0.0
>  Attachments: derby-970-part1-v1.diff, derby-970-part1-v1.stat, derby-970-part2-v1.diff, derby-970-part2-v1.stat, derby-970-part3-v1.diff, derby-970-part3-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


[jira] Commented: (DERBY-970) Add new metadata methods to network client driver

Posted by "Knut Anders Hatlen (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-970?page=comments#action_12369646 ] 

Knut Anders Hatlen commented on DERBY-970:
------------------------------------------

Since no one seems to have strong opinions on this, I will go ahead
using the factory approach. I think that will be the cleanest one, and
it can be reused in DERBY-924 and DERBY-925.

> 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

>
> Implement new JDBC 4.0 DatabaseMetaData methods in the client driver:
>   - supportsStoredFunctionsUsingCallSyntax()
>   - autoCommitFailureClosesAllResultSets()
>   - getClientInfoProperties()
>   - providesQueryObjectGenerator()
>   - getSchemas()

-- 
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