db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-5818) values syscs_util.syscs_get_database_property('DataDictionaryVersion' ) does not return full version information
Date Mon, 02 Jul 2012 17:27:23 GMT

    [ https://issues.apache.org/jira/browse/DERBY-5818?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13405145#comment-13405145
] 

Rick Hillegas commented on DERBY-5818:
--------------------------------------

Thanks for the feedback, Saurabh and Bryan. If we decide to add a new builtin function, how
about calling it something a little shorter, like "database_version()"?

Suppose the new function returns exactly the same information as "values syscs_util.syscs_get_database_property(
'DataDictionaryVersion' )". Then, as Knut notes, does the new function add much value? Maybe
we should just document the existing technique of invoking "values syscs_util.syscs_get_database_property(
'DataDictionaryVersion' )".

Here are pro's and con's of the two approaches:

A) Introduce a new database_version() builtin function, which returns a two part major.minor
version string:

+ Short and sweet.
- Won't work for old versions of derby.jar (versions before 10.10.1).


B) Document existing syscs_util.syscs_get_database_property( 'DataDictionaryVersion' ) behavior:

+ Works for all versions of derby.jar.
- Exposes an internal key whose name awkwardly violates Derby's conventions for property names.
- Increases (slightly) the risk that someone will accidentally corrupt their database as described
by DERBY-5838.


Here are responses to Saurabh's other questions:

Saurabh> Is it possible to provide backward compatible and pure SQL solution if we go for
option 1?

Solutions (A) and (B) are both backward compatible, pure SQL approaches which will work with
a derby.jar at version 10.10.1 and return the database version as a two part major.minor id.
Solution (B) will also work with previous versions of derby.jar.

Saurabh?> Do we have any system table, property etc which stores the version level (4 part
or 2 part version id) of derby jar? 

The version of derby.jar isn't stored in any system table or property. You can't query it
via any builtin SQL mechanism. The DBMDWrapper solution can be used with old versions of derby.jar
(back to 10.4.1). A simpler variation of the DBMDWrapper solution, limited to just the getDatabaseProductVersion(),
could be used on older versions of derby.jar. These solutions are SQL-based but not builtin.

What are your thoughts?


Thanks,
-Rick

                
> values syscs_util.syscs_get_database_property('DataDictionaryVersion' ) does not return
full version information
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5818
>                 URL: https://issues.apache.org/jira/browse/DERBY-5818
>             Project: Derby
>          Issue Type: Bug
>            Reporter: Saurabh Kejriwal
>         Attachments: derby-5818-01-aa-dictionaryVersionFunction.diff
>
>
> Details 
> ------------
> $ ./sysinfo 
> ------------------ Java Information ------------------
> Java Version:    1.6.0
> Java Vendor:     Sun Microsystems Inc.
> Java home:       /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre
> Java classpath:  /scratch/ansverma/JavaDBnew/db-derby-10.8.2.2-bin/lib/derby.jar:/scratch/ansverma/JavaDBnew/db-derby-10.8.2.2-bin/lib/derbynet.jar:/scratch/ansverma/JavaDBnew/db-derby-10.8.2.2-bin/lib/derbytools.jar:/scratch/ansverma/JavaDBnew/db-derby-10.8.2.2-bin/lib/derbyclient.jar
> OS name:         Linux
> OS architecture: i386
> OS version:      2.6.18-164.0.0.0.1.el5xen
> Java user name:  ansverma
> Java user home:  /home/ansverma
> Java user dir:   /scratch/ansverma/JavaDBnew/db-derby-10.8.2.2-bin/bin
> java.specification.name: Java Platform API Specification
> java.specification.version: 1.6
> java.runtime.version: 1.6.0-b09
> --------- Derby Information --------
> JRE - JDBC: Java SE 6 - JDBC 4.0
> [/scratch/ansverma/JavaDBnew/db-derby-10.8.2.2-bin/lib/derby.jar] 10.8.2.2 - (1181258)
> [/scratch/ansverma/JavaDBnew/db-derby-10.8.2.2-bin/lib/derbytools.jar] 10.8.2.2 - (1181258)
> [/scratch/ansverma/JavaDBnew/db-derby-10.8.2.2-bin/lib/derbynet.jar] 10.8.2.2 - (1181258)
> [/scratch/ansverma/JavaDBnew/db-derby-10.8.2.2-bin/lib/derbyclient.jar] 10.8.2.2 - (1181258)
> ------------------------------------------------------
> ----------------- Locale Information -----------------
> Current Locale :  [English/United States [en_US]]
> Found support for locale: [cs]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [de_DE]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [es]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [fr]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [hu]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [it]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [ja_JP]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [ko_KR]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [pl]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [pt_BR]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [ru]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [zh_CN]
>          version: 10.8.2.2 - (1181258)
> Found support for locale: [zh_TW]
>          version: 10.8.2.2 - (1181258)
> ------------------------------------------------------
> Description
> -----------------
> I am using Derby 10.8.2.2. I want to get derby version details through SQL. I ran following
query to retrieve version information. 
> $ java -jar /scratch/ansverma/JavaDBnew//db-derby-10.8.2.2-bin/lib/derbyrun.jar ij
> ij version 10.8
> ij> CONNECT 'jdbc:derby:test2;user=test2;password=test2';
> ij> values syscs_util.syscs_get_database_property('DataDictionaryVersion');    
> 1                                                                                   
                                           
> --------------------------------------------------------------------------------------------------------------------------------
> 10.8                                                                                
                                           
> 1 row selected
> It did not return full version information (10.8.2.2) for Derby. 
> Expected result =  10.8.2.2
> Actual result = 10.8
> I want the version details through SQL query.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message