db-derby-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j..@apache.org
Subject svn commit: r160991 - in incubator/derby/site/trunk: build/site/ build/site/papers/ build/site/releases/ src/documentation/content/xdocs/ src/documentation/content/xdocs/papers/
Date Tue, 12 Apr 2005 00:25:04 GMT
Author: jta
Date: Mon Apr 11 17:25:01 2005
New Revision: 160991

URL: http://svn.apache.org/viewcvs?view=rev&rev=160991
Log:
Committed versionupgrade.{xml,html} paper by Dibyendu Majumdar <dibyendu@mazumdar.demon.co.uk>.

Added:
    incubator/derby/site/trunk/build/site/papers/versionupgrade.html   (with props)
    incubator/derby/site/trunk/src/documentation/content/xdocs/papers/versionupgrade.xml   (with props)
Modified:
    incubator/derby/site/trunk/build/site/linkmap.html
    incubator/derby/site/trunk/build/site/papers/ApacheConUs04.html
    incubator/derby/site/trunk/build/site/papers/JDBCImplementation.html
    incubator/derby/site/trunk/build/site/papers/MiscPresentations.html
    incubator/derby/site/trunk/build/site/papers/derby_arch.html
    incubator/derby/site/trunk/build/site/papers/derby_htw.html
    incubator/derby/site/trunk/build/site/papers/derby_web.html
    incubator/derby/site/trunk/build/site/papers/fortune_tut.html
    incubator/derby/site/trunk/build/site/papers/index.html
    incubator/derby/site/trunk/build/site/papers/logformats.html
    incubator/derby/site/trunk/build/site/papers/optimizer.html   (contents, props changed)
    incubator/derby/site/trunk/build/site/papers/pageformats.html
    incubator/derby/site/trunk/build/site/papers/recovery.html
    incubator/derby/site/trunk/build/site/releases/release-10.0.2.1.html
    incubator/derby/site/trunk/src/documentation/content/xdocs/papers/index.xml
    incubator/derby/site/trunk/src/documentation/content/xdocs/papers/optimizer.xml   (props changed)
    incubator/derby/site/trunk/src/documentation/content/xdocs/site.xml

Modified: incubator/derby/site/trunk/build/site/linkmap.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/linkmap.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/linkmap.html (original)
+++ incubator/derby/site/trunk/build/site/linkmap.html Mon Apr 11 17:25:01 2005
@@ -182,6 +182,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_1.5', 'skin/')" id="menu_1.5Title" class="menutitle">Presentations</div>
 <div id="menu_1.5" class="menuitemgroup">
@@ -446,6 +449,10 @@
       
 <li>
 <a class="external" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>&nbsp;&nbsp;&nbsp;_________________________&nbsp;&nbsp;<em>types</em>
+</li>
+      
+<li>
+<a href="papers/versionupgrade.html">Versioning</a>&nbsp;&nbsp;&nbsp;_________________________&nbsp;&nbsp;<em>version</em>
 </li>
   
 </ul>

Modified: incubator/derby/site/trunk/build/site/papers/ApacheConUs04.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/papers/ApacheConUs04.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/papers/ApacheConUs04.html (original)
+++ incubator/derby/site/trunk/build/site/papers/ApacheConUs04.html Mon Apr 11 17:25:01 2005
@@ -146,6 +146,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="../papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_selected_1.3', '../skin/')" id="menu_selected_1.3Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Presentations</div>
 <div id="menu_selected_1.3" class="selectedmenuitemgroup" style="display: block;">

Modified: incubator/derby/site/trunk/build/site/papers/JDBCImplementation.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/papers/JDBCImplementation.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/papers/JDBCImplementation.html (original)
+++ incubator/derby/site/trunk/build/site/papers/JDBCImplementation.html Mon Apr 11 17:25:01 2005
@@ -146,6 +146,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="../papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Presentations</div>
 <div id="menu_1.3" class="menuitemgroup">

Modified: incubator/derby/site/trunk/build/site/papers/MiscPresentations.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/papers/MiscPresentations.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/papers/MiscPresentations.html (original)
+++ incubator/derby/site/trunk/build/site/papers/MiscPresentations.html Mon Apr 11 17:25:01 2005
@@ -146,6 +146,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="../papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_selected_1.3', '../skin/')" id="menu_selected_1.3Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Presentations</div>
 <div id="menu_selected_1.3" class="selectedmenuitemgroup" style="display: block;">

Modified: incubator/derby/site/trunk/build/site/papers/derby_arch.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/papers/derby_arch.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/papers/derby_arch.html (original)
+++ incubator/derby/site/trunk/build/site/papers/derby_arch.html Mon Apr 11 17:25:01 2005
@@ -146,6 +146,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="../papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Presentations</div>
 <div id="menu_1.3" class="menuitemgroup">

Modified: incubator/derby/site/trunk/build/site/papers/derby_htw.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/papers/derby_htw.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/papers/derby_htw.html (original)
+++ incubator/derby/site/trunk/build/site/papers/derby_htw.html Mon Apr 11 17:25:01 2005
@@ -146,6 +146,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="../papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Presentations</div>
 <div id="menu_1.3" class="menuitemgroup">

Modified: incubator/derby/site/trunk/build/site/papers/derby_web.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/papers/derby_web.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/papers/derby_web.html (original)
+++ incubator/derby/site/trunk/build/site/papers/derby_web.html Mon Apr 11 17:25:01 2005
@@ -146,6 +146,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="../papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Presentations</div>
 <div id="menu_1.3" class="menuitemgroup">

Modified: incubator/derby/site/trunk/build/site/papers/fortune_tut.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/papers/fortune_tut.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/papers/fortune_tut.html (original)
+++ incubator/derby/site/trunk/build/site/papers/fortune_tut.html Mon Apr 11 17:25:01 2005
@@ -146,6 +146,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="../papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Presentations</div>
 <div id="menu_1.3" class="menuitemgroup">

Modified: incubator/derby/site/trunk/build/site/papers/index.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/papers/index.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/papers/index.html (original)
+++ incubator/derby/site/trunk/build/site/papers/index.html Mon Apr 11 17:25:01 2005
@@ -146,6 +146,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="../papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Presentations</div>
 <div id="menu_1.3" class="menuitemgroup">
@@ -218,45 +221,80 @@
 <a name="N10012"></a><a name="Derby+Engine"></a>
 <h2 class="boxed">Derby Engine</h2>
 <div class="section">
-<ul>
-	
-<li> Architecture: <a href="derby_arch.html">Derby Engine Architecture
-	 Overview</a>
-</li>
-        
-<li>Disk Page Format:<a href="pageformats.html">Derby On Disk Page Format</a>
-</li>
-        
-<li>
-<a href="derby_htw.html">How Things Work</a> 
-</li> 
-        
-<li>Intersect &amp; Except: <a href="Intersect-design.html">Intersect
-          &amp; Except Design</a>
-</li>
-	
-<li>JDBC: <a href="JDBCImplementation.html">Derby JDBC Implementation
-		Notes</a>
-</li>
-	
-<li>Log Format: <a href="logformats.html">Derby Write Ahead Log Format</a>
-</li>
-	
-<li>Logging &amp; Recovery: <a href="recovery.html">Derby Logging and Recovery</a>
-</li>
-        
-<li>Optimizer: <a href="optimizer.html">Derby Optimizer Design</a>
-</li>
-        
-<li>Type System: <a class="external" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Derby Type System</a>
-        
-</li>
+<p>
+The table below summarizes white papers that describe the Derby engine.
+</p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
 
-</ul>
+<tr>
+<th colspan="1" rowspan="1">Navigation Menu Entry</th><th colspan="1" rowspan="1">Title</th>
+</tr>
+
+<tr>
+<td colspan="1" rowspan="1"> Architecture</td>
+    <td colspan="1" rowspan="1"> <a href="derby_arch.html">Derby Engine Architecture Overview</a></td>
+
+</tr>
+
+<tr>
+<td colspan="1" rowspan="1">Disk Page Format</td>
+    <td colspan="1" rowspan="1"><a href="pageformats.html">Derby On Disk Page Format</a></td>
+
+</tr>
+
+<tr>
+<td colspan="1" rowspan="1">How Things Work</td> 
+    <td colspan="1" rowspan="1"><a href="derby_htw.html">How Things Work</a> </td> 
+
+</tr>
+
+<tr>
+<td colspan="1" rowspan="1">Intersect &amp; Except</td>
+    <td colspan="1" rowspan="1"><a href="Intersect-design.html">Intersect &amp; Except Design</a></td>
+
+</tr>
+
+<tr>
+<td colspan="1" rowspan="1">JDBC</td>
+    <td colspan="1" rowspan="1"><a href="JDBCImplementation.html">Derby JDBC Implementation Notes</a></td>
+
+</tr>
+
+<tr>
+<td colspan="1" rowspan="1">Log Format</td>
+    <td colspan="1" rowspan="1"><a href="logformats.html">Derby Write Ahead Log Format</a></td>
+
+</tr>
+
+<tr>
+<td colspan="1" rowspan="1">Logging &amp; Recovery</td>
+    <td colspan="1" rowspan="1"><a href="recovery.html">Derby Logging and Recovery</a></td>
+
+</tr>
+
+<tr>
+<td colspan="1" rowspan="1">Optimizer</td>
+    <td colspan="1" rowspan="1"><a href="optimizer.html">Derby Optimizer Design</a></td>
+
+</tr>
+
+<tr>
+<td colspan="1" rowspan="1">Type System</td>
+    <td colspan="1" rowspan="1"><a class="external" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Derby Type System</a> </td>
+
+</tr>
+
+<tr>
+<td colspan="1" rowspan="1">Versioning</td>
+    <td colspan="1" rowspan="1"><a href="versionupgrade.html">Derby Versioning Scheme</a></td>
+
+</tr>
+
+</table>
 </div>
 
 
-<a name="N10053"></a><a name="Presentations"></a>
+<a name="N100B8"></a><a name="Presentations"></a>
 <h2 class="boxed">Presentations</h2>
 <div class="section">
 <ul>
@@ -315,7 +353,7 @@
 </div>
 
 
-<a name="N100B9"></a><a name="Instruction"></a>
+<a name="N1011E"></a><a name="Instruction"></a>
 <h2 class="boxed">Instruction</h2>
 <div class="section">
 <ul>
@@ -344,7 +382,7 @@
 </div>
 
 
-<a name="N100D8"></a><a name="How+to+Contribute+Papers"></a>
+<a name="N1013D"></a><a name="How+to+Contribute+Papers"></a>
 <h2 class="boxed">How to Contribute Papers</h2>
 <div class="section">
 <p>

Modified: incubator/derby/site/trunk/build/site/papers/logformats.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/papers/logformats.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/papers/logformats.html (original)
+++ incubator/derby/site/trunk/build/site/papers/logformats.html Mon Apr 11 17:25:01 2005
@@ -146,6 +146,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="../papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Presentations</div>
 <div id="menu_1.3" class="menuitemgroup">

Modified: incubator/derby/site/trunk/build/site/papers/optimizer.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/papers/optimizer.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/papers/optimizer.html (original)
+++ incubator/derby/site/trunk/build/site/papers/optimizer.html Mon Apr 11 17:25:01 2005
@@ -146,6 +146,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="../papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Presentations</div>
 <div id="menu_1.3" class="menuitemgroup">

Propchange: incubator/derby/site/trunk/build/site/papers/optimizer.html
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/derby/site/trunk/build/site/papers/pageformats.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/papers/pageformats.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/papers/pageformats.html (original)
+++ incubator/derby/site/trunk/build/site/papers/pageformats.html Mon Apr 11 17:25:01 2005
@@ -146,6 +146,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="../papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Presentations</div>
 <div id="menu_1.3" class="menuitemgroup">

Modified: incubator/derby/site/trunk/build/site/papers/recovery.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/papers/recovery.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/papers/recovery.html (original)
+++ incubator/derby/site/trunk/build/site/papers/recovery.html Mon Apr 11 17:25:01 2005
@@ -146,6 +146,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="../papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Presentations</div>
 <div id="menu_1.3" class="menuitemgroup">

Added: incubator/derby/site/trunk/build/site/papers/versionupgrade.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/papers/versionupgrade.html?view=auto&rev=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/papers/versionupgrade.html (added)
+++ incubator/derby/site/trunk/build/site/papers/versionupgrade.html Mon Apr 11 17:25:01 2005
@@ -0,0 +1,532 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.6">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Derby Versioning Scheme</title>
+<link type="text/css" href="../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../skin/profile.css" rel="stylesheet">
+<script src="../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> &gt; <a href="http://incubator.apache.org/">incubator</a><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="http://incubator.apache.org"><img class="logoImage" alt="" src="../images/apache-incubator-logo.png" title=""></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogo">
+<a href="http://incubator.apache.org/derby/"><img class="logoImage" alt="Derby" src="../images/derby-logo.jpg" title="Derby is a zero admin java RDBMS."></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Search
+    +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google:');" value="Search the site with google:" size="25" name="q" id="query" type="text">&nbsp; 
+                    <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+    |end search
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li>
+<a class="base-not-selected" href="../index.html">Home</a>
+</li>
+<li>
+<a class="base-not-selected" href="../derby_comm.html">Community</a>
+</li>
+<li>
+<a class="base-not-selected" href="../manuals/index.html">Manuals</a>
+</li>
+<li class="current">
+<a class="base-selected" href="../papers/index.html">Papers</a>
+</li>
+<li>
+<a class="base-not-selected" href="../integrate/index.html">Integration</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript" language="JavaScript"><!--
+              document.write("Published: " + document.lastModified);
+              //  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+             
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_1.1', '../skin/')" id="menu_1.1Title" class="menutitle">About</div>
+<div id="menu_1.1" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../papers/index.html">Index</a>
+</div>
+<div class="menuitem">
+<a title="" href="../papers/derby_web.html">Derby Web Site</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.2', '../skin/')" id="menu_selected_1.2Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Derby Engine</div>
+<div id="menu_selected_1.2" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a title="" href="../papers/derby_arch.html">Architecture</a>
+</div>
+<div class="menuitem">
+<a title="" href="../papers/pageformats.html">Disk Page Format</a>
+</div>
+<div class="menuitem">
+<a title="" href="../papers/derby_htw.html">How Things Work</a>
+</div>
+<div class="menuitem">
+<a title="" href="../papers/Intersect-design.html">Intersect &amp; Except</a>
+</div>
+<div class="menuitem">
+<a title="" href="../papers/JDBCImplementation.html">JDBC</a>
+</div>
+<div class="menuitem">
+<a title="" href="../papers/logformats.html">Log Format</a>
+</div>
+<div class="menuitem">
+<a title="" href="../papers/recovery.html">Logging &amp; Recovery</a>
+</div>
+<div class="menuitem">
+<a title="" href="../papers/optimizer.html">Optimizer</a>
+</div>
+<div class="menuitem">
+<a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Versioning</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Presentations</div>
+<div id="menu_1.3" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../papers/MiscPresentations.html">Colorado 2004</a>
+</div>
+<div class="menuitem">
+<a title="" href="../papers/ApacheConUs04.html">ApacheCon US '04</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4', '../skin/')" id="menu_1.4Title" class="menutitle">Instruction</div>
+<div id="menu_1.4" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="../papers/fortune_tut.html">Embedded Tutorial</a>
+</div>
+<div class="menuitem">
+<a title="" href="http://objectinnovations.com/CourseOutlines/168.html">Object Innovations JDBC Course</a>
+</div>
+<div class="menuitem">
+<a title="" href="http://www.ibm.com/developerworks/edu/dm-dw-dm-0412kubasta-i.html?S_TACT=104AHW11&S_CMP=LIB">Cloudscape Detective</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<div id="skinconf-txtlink"></div>
+<div class="trail">
+	        Font size: 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>Derby Versioning Scheme</h1>
+<div class="abstract">This document describes the Derby Versioning Scheme. This is a 
+        work-in-progress derived from Javadoc comments and from explanations Dan 
+        Debrunner and others posted to the Derby lists. Please post questions, 
+        comments, and corrections to derby-dev@db.apache.org. </div>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Basic+Numbering+Scheme">Basic Numbering Scheme</a>
+</li>
+<li>
+<a href="#Sysinfo+and+how+it+reports+versions">Sysinfo and how it reports versions</a>
+</li>
+<li>
+<a href="#Version+Upgrade+Mechanism">Version Upgrade Mechanism</a>
+</li>
+<li>
+<a href="#Upgrading+System+Catalogs">Upgrading System Catalogs</a>
+</li>
+</ul>
+</div> 
+      
+<a name="N1000F"></a><a name="Basic+Numbering+Scheme"></a>
+<h2 class="boxed">Basic Numbering Scheme</h2>
+<div class="section">
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">This is an overview of how the version scheme is set up in the Derby 
+          code and was intended to work for Cloudscape. It was described by Dan 
+          Debrunner on 26 Aug 2004.</div>
+</div>
+<p> Externally the Derby code uses a four part version number </p>
+<p> Minor.major.fixpack.point or M.m.f.p </p>
+<p> The initial version (as in the code drop from IBM) is set to 10.0.2.0 
+        </p>
+<p> Major.minor is a typical major and minor release numbering scheme 
+          and maps to the version scheme expected by JDBC (major and minor version 
+          numbers for Driver and Database). A change in these numbers indicated 
+          new functionality in Cloudscape, typically that which modified the on-disk 
+          format in some way that would not be understood by an older release, 
+          e.g. support of a new SQL catalog item such as triggers. For Cloudscape 
+          each M.m version had its own (and only one) branch in the Perforce SCM 
+          system. </p>
+<p> The point (p) value was increased every time a "point release" of 
+          Cloudscape was made, which were releases with a bug fix or fixes for 
+          customers. The point releases were always cumulative, that is 10.0.2.7 
+          would include the fixes of 10.0.2.6 as well as the new bug fix(es). 
+          Point releases did not contain changes that changed the on-disk format 
+          of databases. Testing on point releases was restricted to nightly functional 
+          testing as a point release was usually in response to a customer issue, 
+          sothe fix had to be released within a few days of the report. As a "closed-source" 
+          project IBM could control releases so that the point number was only 
+          bumped when the software was actually released to a customer, regardless 
+          of the number fixes between releases. </p>
+<p> Fixpack was intended to indicate a release of a given Major.minor 
+          that had undergone more testing than a point release, e.g. a multi-week 
+          quality assurance (QA) testing cycle. A fix pack release would include 
+          all the fixes of the previous point release, e.g. 10.0.5.0 would include 
+          all the fixes from 10.0.4.12 if that was the most recent point release 
+          for 10.0. </p>
+<p> Fixpack (f) of 0 (zero) is a special value that indicates alpha quality 
+          software and causes version string to be appended with the word "alpha". 
+        </p>
+<p> Additionally a boolean beta flag exists, which when true causes the 
+          version string to be appended with the word "beta" to indicate beta 
+          quality software. The initial code drop has the beta flag as false. 
+        </p>
+<p> A build number can also be set which corresponded to the Perforce 
+          (SCM) global change number for Cloudscape. </p>
+<p> The single branch model for a M.m used by Cloudscape meant that customers 
+          never received special one-off releases. A customer that needed a new 
+          release for a newly discovered bug always received a point release with 
+          all the bugs fixed for that branch and the new bug fix. E.g. a customer 
+          that was using 10.0.2.3 and found a new bug, might receive a point release 
+          that was 10.0.5.2, thus included all the fixes in the 10.0 branch and 
+          had undergone 3 additional QA testing cycles. </p>
+</div>
+      
+<a name="N10037"></a><a name="Sysinfo+and+how+it+reports+versions"></a>
+<h2 class="boxed">Sysinfo and how it reports versions</h2>
+<div class="section">
+<p> This version value is reported by the sysinfo utility, in some messages 
+          and in the java.sql.DatabaseMetaData methods as follows </p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4"> 
+          
+<tr> 
+            
+<th colspan="1" rowspan="1">Method</th>
+            <th colspan="1" rowspan="1">Return value</th>
+          
+</tr>
+          
+<tr> 
+            
+<td colspan="1" rowspan="1"> String getDatabaseProductVersion()<br> String getDriverVersion() 
+               </td>
+            <td colspan="1" rowspan="1"> both return M.m.f.p [ {alpha|beta} ] </td>
+          
+</tr>
+          
+<tr> 
+            
+<td colspan="1" rowspan="1"> int getDatabaseMajorVersion()<br> int getDriverMajorVersion() 
+              </td>
+            <td colspan="1" rowspan="1"> both return M </td>
+          
+</tr>
+          
+<tr> 
+            
+<td colspan="1" rowspan="1"> int getDatabaseMajorVersion()<br> int getDriverMajorVersion() 
+               </td>
+            <td colspan="1" rowspan="1"> both return M </td>
+          
+</tr>
+          
+<tr> 
+            
+<td colspan="1" rowspan="1"> int getDatabaseMinorVersion()<br> int getDriverMinorVersion() 
+              </td>
+            <td colspan="1" rowspan="1"> both return m </td>
+          
+</tr>
+        
+</table>
+</div>
+      
+<a name="N1008D"></a><a name="Version+Upgrade+Mechanism"></a>
+<h2 class="boxed">Version Upgrade Mechanism</h2>
+<div class="section">
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content"> This is a description of how the mechanics of the code is set up 
+          to handle upgrade and how it was intended to work for Cloudscape. </div>
+</div>
+<p> The database engine has a version EM.Em.Ef.Ep. </p>
+<p> An on disk database has a persistent current version that corresponds 
+          to the engine that created it, or last upgraded it, DM.Dm.Df.Dp. </p>
+<p> The general rules for Cloudscape were (and are in the Derby code) 
+        </p>
+<p> For a on-disk database at version DM.Dm.Df.Dp </p>
+<ol> 
+          
+<li> Any engine with EM == DM and Em == Dm can be used. </li>
+          
+<li> Any engine with EM.Em &lt; DM.Dm will not boot the database. </li>
+          
+<li> Any engine with EM.Em &gt; DM.Dm will boot the database in soft 
+            upgrade mode. </li>
+          
+<li> Any engine with EM.Em &gt; DM.DM can boot and upgrade the database 
+            to its own version (EM.Em.Ef.Ep). </li>
+          
+<li> Exception that any database created by an alpha or beta engine 
+            can not be upgraded or run in soft upgrade mode. </li>
+          
+<li> Exception that any alpha or beta engine may not run in soft upgrade 
+            mode or perform an upgrade. </li>
+          
+<li> Requirement that EM &lt;= 10 and DM &gt;= 10. </li>
+        
+</ol>
+<p> Soft upgrade is a mode where a newer engine can run against an older 
+          database successfully, but does not support any of the engine's new 
+          features that would not be understood by an engine at the database's 
+          version of DM.Dm. An exception is thrown if such a feature is used. 
+          The idea here is to allow a single version of the engine in a JVM be 
+          upgraded without requiring all databases be upgraded. Soft upgrade may 
+          make changes to the on-disk database that can be safely consumed by 
+          older releases, e.g. fix incorrect system catalog entries. </p>
+<p> Upgrade is enabled by the boot connection to the database using the 
+          upgrade=true attribute. This modifies the on-disk form of the database 
+          by making any required changes, such as adding a new system catalog 
+          to support some new SQL feature. Once a database is upgraded, it cannot 
+          be downgraded. </p>
+<p> Example (all version numbers are made up, only the inital code at 
+          10.0.2.0 exists at the moment) </p>
+<p> Database SALESDB created by 10.0.2.4 engine. </p>
+<p> Any 10.0.x.y engine can now run successfully against SALESDB, e.g. 
+          application can use 10.0.2.8, 10.0.4.23, revert to 10.0.2.0 with no 
+          issues. </p>
+<p> A future 10.2.0.0 (alpha) release would not boot SALESDB as it is 
+          an alpha release. </p>
+<p> A future 10.2.1.3 (beta) release would not boot SALESDB as it is an 
+          beta release. </p>
+<p> A future 10.2.2.3 release would boot SALESDB in soft upgrade mode. 
+          If say 10.2.2.3 had added GRANT/REVOKE, then any attempt to use those 
+          SQL statements would result in an exception indicating the database 
+          must be upgraded to 10.2. Also any new features added in 10.1 would 
+          throw an exception indicating the database must be upgraded to 10.1. 
+        </p>
+<p> Connecting to SALESDB with 10.2.2.3 with the attribute upgrade=true 
+          would upgrade the database to 10.2.2.3. Subsquently any attempt to boot 
+          SALESDB with 10.0.x.y or 10.1.x.y would fail. </p>
+</div>
+      
+<a name="N100D6"></a><a name="Upgrading+System+Catalogs"></a>
+<h2 class="boxed">Upgrading System Catalogs</h2>
+<div class="section">
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">This was described by Dan Debrunner on 16 March 2005</div>
+</div>
+<p> Here is some more on the mechanics of the upgrade for the system catalogs. 
+          I will add this into code comments in the relevant classes. I working 
+          on a submission that adds more comments into this area and sets the 
+          system catalog version number correctly for 10.1. This will then allow 
+          people to code the upgrade mechanics for new features. </p>
+<p> System catalog upgrade issues - there are various kinds of changes 
+          that affect the system catalogs with a new release. A release may not 
+          contain all of these types, but will typically include at least one. 
+        </p>
+<ol> 
+          
+<li> Change structure of system tables, examples are: 
+            <ul> 
+              
+<li> add new system table</li>
+              
+<li> add new column to existing system table</li>
+              
+<li> add index to existing system table</li>
+            
+</ul>
+          
+</li>
+          
+<li> Modify contents of system table(s), examples are 
+            <ul> 
+              
+<li> fix incorect information, e.g. inccorrect nullability of column 
+              </li>
+              
+<li> Change a value for a set of rows to support new functionality 
+                (rare, usually the code uses the old values) </li>
+            
+</ul>
+          
+</li>
+          
+<li> New version of engine will write information that will not be understood 
+            by a previous release, e.g. 
+            <ul> 
+              
+<li> new table type value in systables </li>
+              
+<li> new alias descriptor in sysaliases </li>
+            
+</ul>
+          
+</li>
+        
+</ol>
+<p> When running in soft upgrade mode the upgrade code (in DD_Version) 
+          needs to: </p>
+<ol> 
+          
+<li> Check the current soft upgrade level (property derby.softDataDictionaryVersion) 
+            and determine which "safe changes" can be made. </li>
+          
+<li> Apply "safe changes" from category 2) in a single transaction. 
+            An example would be fixing incorrect information. </li>
+          
+<li> Set derby.softDataDictionaryVersion to represent the current engine 
+            version to indicate the changes in 2. have been applied. Otherwise 
+            in soft upgrade no other changes are made to the system catalogs </li>
+        
+</ol>
+<p> In full upgrade mode, initial database connection with upgrade=true 
+          these steps are made: </p>
+<ol> 
+          
+<li> Check the current hard upgrade level (property DataDictionaryVersion) 
+            and determine which changes are required. </li>
+          
+<li> Make any changes from categories 1) and 2) in a single transaction. 
+          </li>
+          
+<li> Set DataDictionaryVersion to represent the current engine version 
+            thus indicating the upgrade on the system catalogs has been completed. 
+            Thus new features can execute code that would result in changes in 
+            category 3 </li>
+        
+</ol>
+<p> Code that will make changes in category 3) or requires other changes 
+          made by hard upgrade is required to check the version of the system 
+          catalogs using the DataDictionary.checkVersion method, or the corresponding 
+          utility method in the parser. This check will throw an exception if 
+          the system catalog has not been hard upgraded to the current level. 
+        </p>
+<p> As examples, with the current development going on for Derby I know 
+          of these items that require upgrade thought: </p>
+<ul> 
+          
+<li> Java signatures in method definitions, writes information into 
+            the system catalog in its current structure, but the signature would 
+            not be understood by 10.0. Would need to perform a checkVersion(10.1) 
+            if a signature is present. (10.1 is not the actual constant, just 
+            to give an idea). </li>
+          
+<li> Log record checksum to detect out of order writes. If in soft upgrade 
+            mode, need to ensure checksum records are not written. Though this 
+            is a store upgrade issue, not a system catalog one. </li>
+          
+<li> Synonym support, like java signatures, most likely would be implemented 
+            by new information in system catalogs that would not be understood 
+            by 10.0, thus a checkVersion(10.1) would be required. </li>
+        
+</ul>
+</div>
+    
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+ Copyright &copy; 2004-2005 Apache Software Foundation</div>
+<div id="feedback">
+    Send feedback about the website to:
+  <a id="feedbackto" href="mailto:derby-dev@db.apache.org?subject=Feedback%C2%A0papers/versionupgrade.html">derby-dev@db.apache.org</a>
+</div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>

Propchange: incubator/derby/site/trunk/build/site/papers/versionupgrade.html
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/derby/site/trunk/build/site/releases/release-10.0.2.1.html
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/build/site/releases/release-10.0.2.1.html?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/build/site/releases/release-10.0.2.1.html (original)
+++ incubator/derby/site/trunk/build/site/releases/release-10.0.2.1.html Mon Apr 11 17:25:01 2005
@@ -182,6 +182,9 @@
 <div class="menuitem">
 <a title="" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Type System</a>
 </div>
+<div class="menuitem">
+<a title="" href="../papers/versionupgrade.html">Versioning</a>
+</div>
 </div>
 <div onclick="SwitchMenu('menu_1.5', '../skin/')" id="menu_1.5Title" class="menutitle">Presentations</div>
 <div id="menu_1.5" class="menuitemgroup">

Modified: incubator/derby/site/trunk/src/documentation/content/xdocs/papers/index.xml
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/src/documentation/content/xdocs/papers/index.xml?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/src/documentation/content/xdocs/papers/index.xml (original)
+++ incubator/derby/site/trunk/src/documentation/content/xdocs/papers/index.xml Mon Apr 11 17:25:01 2005
@@ -15,21 +15,43 @@
 <section>
 <title>Derby Engine</title>
 
-<ul>
-	<li> Architecture: <a href="derby_arch.html">Derby Engine Architecture
-	 Overview</a></li>
-        <li>Disk Page Format:<a href="pageformats.html">Derby On Disk Page Format</a></li>
-        <li><a href="derby_htw.html">How Things Work</a> </li> 
-        <li>Intersect &amp; Except: <a href="Intersect-design.html">Intersect
-          &amp; Except Design</a></li>
-	<li>JDBC: <a href="JDBCImplementation.html">Derby JDBC Implementation
-		Notes</a></li>
-	<li>Log Format: <a href="logformats.html">Derby Write Ahead Log Format</a></li>
-	<li>Logging &amp; Recovery: <a href="recovery.html">Derby Logging and Recovery</a></li>
-        <li>Optimizer: <a href="optimizer.html">Derby Optimizer Design</a></li>
-        <li>Type System: <a href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Derby Type System</a>
-        </li>
-</ul>
+<p>
+The table below summarizes white papers that describe the Derby engine.
+</p>
+
+<table>
+<tr><th>Navigation Menu Entry</th><th>Title</th></tr>
+<tr><td> Architecture</td>
+    <td> <a href="derby_arch.html">Derby Engine Architecture Overview</a></td>
+</tr>
+<tr><td>Disk Page Format</td>
+    <td><a href="pageformats.html">Derby On Disk Page Format</a></td>
+</tr>
+<tr><td>How Things Work</td> 
+    <td><a href="derby_htw.html">How Things Work</a> </td> 
+</tr>
+<tr><td>Intersect &amp; Except</td>
+    <td><a href="Intersect-design.html">Intersect &amp; Except Design</a></td>
+</tr>
+<tr><td>JDBC</td>
+    <td><a href="JDBCImplementation.html">Derby JDBC Implementation Notes</a></td>
+</tr>
+<tr><td>Log Format</td>
+    <td><a href="logformats.html">Derby Write Ahead Log Format</a></td>
+</tr>
+<tr><td>Logging &amp; Recovery</td>
+    <td><a href="recovery.html">Derby Logging and Recovery</a></td>
+</tr>
+<tr><td>Optimizer</td>
+    <td><a href="optimizer.html">Derby Optimizer Design</a></td>
+</tr>
+<tr><td>Type System</td>
+    <td><a href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html">Derby Type System</a> </td>
+</tr>
+<tr><td>Versioning</td>
+    <td><a href="versionupgrade.html">Derby Versioning Scheme</a></td>
+</tr>
+</table>
 
 </section>
 

Propchange: incubator/derby/site/trunk/src/documentation/content/xdocs/papers/optimizer.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/derby/site/trunk/src/documentation/content/xdocs/papers/versionupgrade.xml
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/src/documentation/content/xdocs/papers/versionupgrade.xml?view=auto&rev=160991
==============================================================================
--- incubator/derby/site/trunk/src/documentation/content/xdocs/papers/versionupgrade.xml (added)
+++ incubator/derby/site/trunk/src/documentation/content/xdocs/papers/versionupgrade.xml Mon Apr 11 17:25:01 2005
@@ -0,0 +1,235 @@
+<?xml version="1.0"?>
+  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
+  <document> 
+    <header> 
+      <title>Derby Versioning Scheme</title>
+      <abstract>This document describes the Derby Versioning Scheme. This is a 
+        work-in-progress derived from Javadoc comments and from explanations Dan 
+        Debrunner and others posted to the Derby lists. Please post questions, 
+        comments, and corrections to derby-dev@db.apache.org. </abstract>
+    </header>
+    <body> 
+      <section> 
+        <title>Basic Numbering Scheme</title>
+        <note>This is an overview of how the version scheme is set up in the Derby 
+          code and was intended to work for Cloudscape. It was described by Dan 
+          Debrunner on 26 Aug 2004.</note>
+        <p> Externally the Derby code uses a four part version number </p>
+        <p> Minor.major.fixpack.point or M.m.f.p </p>
+        <p> The initial version (as in the code drop from IBM) is set to 10.0.2.0 
+        </p>
+        <p> Major.minor is a typical major and minor release numbering scheme 
+          and maps to the version scheme expected by JDBC (major and minor version 
+          numbers for Driver and Database). A change in these numbers indicated 
+          new functionality in Cloudscape, typically that which modified the on-disk 
+          format in some way that would not be understood by an older release, 
+          e.g. support of a new SQL catalog item such as triggers. For Cloudscape 
+          each M.m version had its own (and only one) branch in the Perforce SCM 
+          system. </p>
+        <p> The point (p) value was increased every time a "point release" of 
+          Cloudscape was made, which were releases with a bug fix or fixes for 
+          customers. The point releases were always cumulative, that is 10.0.2.7 
+          would include the fixes of 10.0.2.6 as well as the new bug fix(es). 
+          Point releases did not contain changes that changed the on-disk format 
+          of databases. Testing on point releases was restricted to nightly functional 
+          testing as a point release was usually in response to a customer issue, 
+          sothe fix had to be released within a few days of the report. As a "closed-source" 
+          project IBM could control releases so that the point number was only 
+          bumped when the software was actually released to a customer, regardless 
+          of the number fixes between releases. </p>
+        <p> Fixpack was intended to indicate a release of a given Major.minor 
+          that had undergone more testing than a point release, e.g. a multi-week 
+          quality assurance (QA) testing cycle. A fix pack release would include 
+          all the fixes of the previous point release, e.g. 10.0.5.0 would include 
+          all the fixes from 10.0.4.12 if that was the most recent point release 
+          for 10.0. </p>
+        <p> Fixpack (f) of 0 (zero) is a special value that indicates alpha quality 
+          software and causes version string to be appended with the word "alpha". 
+        </p>
+        <p> Additionally a boolean beta flag exists, which when true causes the 
+          version string to be appended with the word "beta" to indicate beta 
+          quality software. The initial code drop has the beta flag as false. 
+        </p>
+        <p> A build number can also be set which corresponded to the Perforce 
+          (SCM) global change number for Cloudscape. </p>
+        <p> The single branch model for a M.m used by Cloudscape meant that customers 
+          never received special one-off releases. A customer that needed a new 
+          release for a newly discovered bug always received a point release with 
+          all the bugs fixed for that branch and the new bug fix. E.g. a customer 
+          that was using 10.0.2.3 and found a new bug, might receive a point release 
+          that was 10.0.5.2, thus included all the fixes in the 10.0 branch and 
+          had undergone 3 additional QA testing cycles. </p>
+      </section>
+      <section> 
+        <title>Sysinfo and how it reports versions</title>
+        <p> This version value is reported by the sysinfo utility, in some messages 
+          and in the java.sql.DatabaseMetaData methods as follows </p>
+        <table> 
+          <tr> 
+            <th>Method</th>
+            <th>Return value</th>
+          </tr>
+          <tr> 
+            <td> String getDatabaseProductVersion()<br/> String getDriverVersion() 
+               </td>
+            <td> both return M.m.f.p [ {alpha|beta} ] </td>
+          </tr>
+          <tr> 
+            <td> int getDatabaseMajorVersion()<br/> int getDriverMajorVersion() 
+              </td>
+            <td> both return M </td>
+          </tr>
+          <tr> 
+            <td> int getDatabaseMajorVersion()<br/> int getDriverMajorVersion() 
+               </td>
+            <td> both return M </td>
+          </tr>
+          <tr> 
+            <td> int getDatabaseMinorVersion()<br/> int getDriverMinorVersion() 
+              </td>
+            <td> both return m </td>
+          </tr>
+        </table>
+      </section>
+      <section> 
+        <title>Version Upgrade Mechanism</title>
+        <note> This is a description of how the mechanics of the code is set up 
+          to handle upgrade and how it was intended to work for Cloudscape. </note>
+        <p> The database engine has a version EM.Em.Ef.Ep. </p>
+        <p> An on disk database has a persistent current version that corresponds 
+          to the engine that created it, or last upgraded it, DM.Dm.Df.Dp. </p>
+        <p> The general rules for Cloudscape were (and are in the Derby code) 
+        </p>
+        <p> For a on-disk database at version DM.Dm.Df.Dp </p>
+        <ol> 
+          <li> Any engine with EM == DM and Em == Dm can be used. </li>
+          <li> Any engine with EM.Em &lt; DM.Dm will not boot the database. </li>
+          <li> Any engine with EM.Em &gt; DM.Dm will boot the database in soft 
+            upgrade mode. </li>
+          <li> Any engine with EM.Em &gt; DM.DM can boot and upgrade the database 
+            to its own version (EM.Em.Ef.Ep). </li>
+          <li> Exception that any database created by an alpha or beta engine 
+            can not be upgraded or run in soft upgrade mode. </li>
+          <li> Exception that any alpha or beta engine may not run in soft upgrade 
+            mode or perform an upgrade. </li>
+          <li> Requirement that EM &lt;= 10 and DM &gt;= 10. </li>
+        </ol>
+        <p> Soft upgrade is a mode where a newer engine can run against an older 
+          database successfully, but does not support any of the engine's new 
+          features that would not be understood by an engine at the database's 
+          version of DM.Dm. An exception is thrown if such a feature is used. 
+          The idea here is to allow a single version of the engine in a JVM be 
+          upgraded without requiring all databases be upgraded. Soft upgrade may 
+          make changes to the on-disk database that can be safely consumed by 
+          older releases, e.g. fix incorrect system catalog entries. </p>
+        <p> Upgrade is enabled by the boot connection to the database using the 
+          upgrade=true attribute. This modifies the on-disk form of the database 
+          by making any required changes, such as adding a new system catalog 
+          to support some new SQL feature. Once a database is upgraded, it cannot 
+          be downgraded. </p>
+        <p> Example (all version numbers are made up, only the inital code at 
+          10.0.2.0 exists at the moment) </p>
+        <p> Database SALESDB created by 10.0.2.4 engine. </p>
+        <p> Any 10.0.x.y engine can now run successfully against SALESDB, e.g. 
+          application can use 10.0.2.8, 10.0.4.23, revert to 10.0.2.0 with no 
+          issues. </p>
+        <p> A future 10.2.0.0 (alpha) release would not boot SALESDB as it is 
+          an alpha release. </p>
+        <p> A future 10.2.1.3 (beta) release would not boot SALESDB as it is an 
+          beta release. </p>
+        <p> A future 10.2.2.3 release would boot SALESDB in soft upgrade mode. 
+          If say 10.2.2.3 had added GRANT/REVOKE, then any attempt to use those 
+          SQL statements would result in an exception indicating the database 
+          must be upgraded to 10.2. Also any new features added in 10.1 would 
+          throw an exception indicating the database must be upgraded to 10.1. 
+        </p>
+        <p> Connecting to SALESDB with 10.2.2.3 with the attribute upgrade=true 
+          would upgrade the database to 10.2.2.3. Subsquently any attempt to boot 
+          SALESDB with 10.0.x.y or 10.1.x.y would fail. </p>
+      </section>
+      <section> 
+        <title>Upgrading System Catalogs</title>
+        <note>This was described by Dan Debrunner on 16 March 2005</note>
+        <p> Here is some more on the mechanics of the upgrade for the system catalogs. 
+          I will add this into code comments in the relevant classes. I working 
+          on a submission that adds more comments into this area and sets the 
+          system catalog version number correctly for 10.1. This will then allow 
+          people to code the upgrade mechanics for new features. </p>
+        <p> System catalog upgrade issues - there are various kinds of changes 
+          that affect the system catalogs with a new release. A release may not 
+          contain all of these types, but will typically include at least one. 
+        </p>
+        <ol> 
+          <li> Change structure of system tables, examples are: 
+            <ul> 
+              <li> add new system table</li>
+              <li> add new column to existing system table</li>
+              <li> add index to existing system table</li>
+            </ul>
+          </li>
+          <li> Modify contents of system table(s), examples are 
+            <ul> 
+              <li> fix incorect information, e.g. inccorrect nullability of column 
+              </li>
+              <li> Change a value for a set of rows to support new functionality 
+                (rare, usually the code uses the old values) </li>
+            </ul>
+          </li>
+          <li> New version of engine will write information that will not be understood 
+            by a previous release, e.g. 
+            <ul> 
+              <li> new table type value in systables </li>
+              <li> new alias descriptor in sysaliases </li>
+            </ul>
+          </li>
+        </ol>
+        <p> When running in soft upgrade mode the upgrade code (in DD_Version) 
+          needs to: </p>
+        <ol> 
+          <li> Check the current soft upgrade level (property derby.softDataDictionaryVersion) 
+            and determine which "safe changes" can be made. </li>
+          <li> Apply "safe changes" from category 2) in a single transaction. 
+            An example would be fixing incorrect information. </li>
+          <li> Set derby.softDataDictionaryVersion to represent the current engine 
+            version to indicate the changes in 2. have been applied. Otherwise 
+            in soft upgrade no other changes are made to the system catalogs </li>
+        </ol>
+        <p> In full upgrade mode, initial database connection with upgrade=true 
+          these steps are made: </p>
+        <ol> 
+          <li> Check the current hard upgrade level (property DataDictionaryVersion) 
+            and determine which changes are required. </li>
+          <li> Make any changes from categories 1) and 2) in a single transaction. 
+          </li>
+          <li> Set DataDictionaryVersion to represent the current engine version 
+            thus indicating the upgrade on the system catalogs has been completed. 
+            Thus new features can execute code that would result in changes in 
+            category 3 </li>
+        </ol>
+        <p> Code that will make changes in category 3) or requires other changes 
+          made by hard upgrade is required to check the version of the system 
+          catalogs using the DataDictionary.checkVersion method, or the corresponding 
+          utility method in the parser. This check will throw an exception if 
+          the system catalog has not been hard upgraded to the current level. 
+        </p>
+        <p> As examples, with the current development going on for Derby I know 
+          of these items that require upgrade thought: </p>
+        <ul> 
+          <li> Java signatures in method definitions, writes information into 
+            the system catalog in its current structure, but the signature would 
+            not be understood by 10.0. Would need to perform a checkVersion(10.1) 
+            if a signature is present. (10.1 is not the actual constant, just 
+            to give an idea). </li>
+          <li> Log record checksum to detect out of order writes. If in soft upgrade 
+            mode, need to ensure checksum records are not written. Though this 
+            is a store upgrade issue, not a system catalog one. </li>
+          <li> Synonym support, like java signatures, most likely would be implemented 
+            by new information in system catalogs that would not be understood 
+            by 10.0, thus a checkVersion(10.1) would be required. </li>
+        </ul>
+      </section>
+    </body>
+    <footer> 
+      <legal></legal>
+    </footer>
+  </document>

Propchange: incubator/derby/site/trunk/src/documentation/content/xdocs/papers/versionupgrade.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/derby/site/trunk/src/documentation/content/xdocs/site.xml
URL: http://svn.apache.org/viewcvs/incubator/derby/site/trunk/src/documentation/content/xdocs/site.xml?view=diff&r1=160990&r2=160991
==============================================================================
--- incubator/derby/site/trunk/src/documentation/content/xdocs/site.xml (original)
+++ incubator/derby/site/trunk/src/documentation/content/xdocs/site.xml Mon Apr 11 17:25:01 2005
@@ -33,6 +33,7 @@
       <recover   label="Logging &amp; Recovery" href="recovery.html"/>
       <optimizer label="Optimizer"              href="optimizer.html"/>
       <types     label="Type System" href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/engine/org/apache/derby/iapi/types/package.html"/>
+      <version   label="Versioning"             href="versionupgrade.html"/>
   </engine>
 
   <present label="Presentations" href="papers/" tab="papers">



Mime
View raw message