Modified: websites/production/db/content/derby/papers/JDBCImplementation.html
==============================================================================
--- websites/production/db/content/derby/papers/JDBCImplementation.html
(original)
+++ websites/production/db/content/derby/papers/JDBCImplementation.html Sat Sep
9 23:49:09 2017
@@ -3,8 +3,9 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
+<meta name="generator" content="">
<meta name="" content="">
<meta name="GENERATOR" content="">
<meta name="CREATED" content="">
@@ -322,7 +323,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Derby JDBC Implementation Notes</h1>
-<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -453,8 +453,7 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
-</div>
-<a name="Overview"></a>
+<a name="N10049"></a><a name="Overview"></a>
<h2 class="boxed">Overview</h2>
<div class="section">
<p>The JDBC specification is sometimes unclear or contradictory. This document
covers how Derby implements some JDBC features where the specification might be
unclear.</p>
@@ -466,38 +465,38 @@ document.write("Last Published: " + docu
<p>[TUTORIAL3] – JDBC API Tutorial and Reference, Third Edition. ISBN
0321173848 <a class="external"
href="http://java.sun.com/developer/Books/jdbc/Fisher/index.html">http://java.sun.com/developer/Books/jdbc/Fisher/index.html</a>
</p>
</div>
-<a name="Java.sql.Connection"></a>
+<a name="N10060"></a><a name="Java.sql.Connection"></a>
<h2 class="boxed">Java.sql.Connection</h2>
<div class="section">
-<a name="CreateStatement%2C+prepareStatement+and+prepareCall"></a>
+<a name="N10064"></a><a
name="CreateStatement%2C+prepareStatement+and+prepareCall"></a>
<h3 class="boxed">CreateStatement, prepareStatement and prepareCall</h3>
<p>Behavior Clarification</p>
<p>CONCUR_UPDATABLE concurrency is supported for FORWARD ONLY ResultSet types
only.</p>
</div>
-<a name="Java.sql.PreparedStatement"></a>
+<a name="N1006C"></a><a name="Java.sql.PreparedStatement"></a>
<h2 class="boxed">Java.sql.PreparedStatement</h2>
<div class="section">
-<a name="setAsciiStream%2CsetBinaryStream%2CsetCharacterStream"></a>
+<a name="N10070"></a><a
name="setAsciiStream%2CsetBinaryStream%2CsetCharacterStream"></a>
<h3 class="boxed">setAsciiStream,setBinaryStream,setCharacterStream</h3>
<p>Behavior Clarification</p>
<p>In Derby, the stream must have the exact amount of data as the length
argument, otherwise an exception with the following message 'Input Stream did
not have exact amount of data as the requested length' is thrown.</p>
<p>Stream parameter values are not re-used. The JDBC 3.0 specification says in
the last paragraph of 13.2.2 that parameters are re-used but nothing special
about streams. However javadoc for java.sql.PreparedStatement.clearParamters()
says 'In general, parameter values remain in force for repeated use of a
statement'. Maybe 'in general' can be interpreted to mean 'except for streams'.
Stream parameter values are not re-used and if a stream is re-used, the
statement execution will fail with 'Stream has already been read and
end-of-file reached and cannot be re-used.'.</p>
</div>
-<a name="Java.sql.ResultSet"></a>
+<a name="N1007A"></a><a name="Java.sql.ResultSet"></a>
<h2 class="boxed">Java.sql.ResultSet</h2>
<div class="section">
<p>Support for data conversion using the getXXX() methods matches Table B-6 in
the [JDBC3], with some extensions described below.</p>
<p>Extension</p>
<p>If the value column is null, then generally any getXXX method can be used
to fetch the null value and a null or a representation of zero will be returned
and a subsequent call to wasNull() will return true. It is not recommended that
applications take advantage of this liberal conversion of SQL NULL values, use
of a getXXX() method that works against NULL and non-NULL values is strongly
recommended.</p>
-<a name="deleteRow%28%29"></a>
+<a name="N10084"></a><a name="deleteRow%28%29"></a>
<h3 class="boxed">deleteRow()</h3>
<p>Behavior Clarification</p>
<p>After deleteRow, ResultSet will be positioned right before the next row for
FORWARD ONLY updatable ResultSets.</p>
-<a name="updateRow%28%29"></a>
+<a name="N1008C"></a><a name="updateRow%28%29"></a>
<h3 class="boxed">updateRow()</h3>
<p>Behavior Clarification</p>
<p>After updateRow, ResultSet will be positioned right before the next row for
FORWARD ONLY updatable ResultSets.</p>
-<a name="GetAsciiStream%28%29"></a>
+<a name="N10094"></a><a name="GetAsciiStream%28%29"></a>
<h3 class="boxed">GetAsciiStream()</h3>
<p>Behavior Clarification</p>
<p>An ASCII character is defined as an eight bit character (range 0x00 to
0xff), see CHAR() function definition by [JDBC3] in appendix C.2.</p>
@@ -515,11 +514,11 @@ document.write("Last Published: " + docu
</li>
</ul>
<p>This method is not recommended to use in Derby.<br>Because Derby handles
characters as unicode internally , there is no advantage in using this method
.</p>
-<a name="GetBinaryStream%28%29"></a>
+<a name="N100AE"></a><a name="GetBinaryStream%28%29"></a>
<h3 class="boxed">GetBinaryStream()</h3>
<p>Extensions</p>
<p>On Types.BLOB columns returns a stream with identical contents to that
returned by getBlob().getBinaryStream() on the same column if the BLOB value is
not NULL. If the BLOB value is NULL then null is returned.</p>
-<a name="GetCharacterStream%28%29"></a>
+<a name="N100B6"></a><a name="GetCharacterStream%28%29"></a>
<h3 class="boxed">GetCharacterStream()</h3>
<p>Behavior Clarification</p>
<p>For binary types (Types.BINARY, Types.VARBINARY, and Types.LONGVARBINARY,
Types.BLOB) getString() the value is converted to a stream of characters as
though it is encoded using UTF-16BE.</p>
@@ -534,7 +533,7 @@ document.write("Last Published: " + docu
<p>On Types.BLOB columns supported with conversion as a binary type.</p>
</li>
</ul>
-<a name="GetString%28%29"></a>
+<a name="N100C8"></a><a name="GetString%28%29"></a>
<h3 class="boxed">GetString()</h3>
<p>Behavior Clarification</p>
<p>For binary types (Types.BINARY, Types.VARBINARY, and Types.LONGVARBINARY,
Types.BLOB) getString() returns String containing a two character hexadecimal
representation for every byte in a non-null value. The two characters are
in the range ‘0’ – ‘9’ and ‘a’
– ‘f’. For NULL values, null is returned. Note, that this
String does not match the contents of the stream returned by getAsciiStream or
getCharacterStream on the same column.</p>
@@ -549,10 +548,10 @@ document.write("Last Published: " + docu
<p>On Types.BLOB columns supported with conversion as a binary type.</p>
</li>
</ul>
-<a name="GetUnicodeStream%28%29"></a>
+<a name="N100DA"></a><a name="GetUnicodeStream%28%29"></a>
<h3 class="boxed">GetUnicodeStream()</h3>
<p>Not implemented, deprecated by [JDBC3].</p>
-<a name="Examples"></a>
+<a name="N100E0"></a><a name="Examples"></a>
<h3 class="boxed">Examples</h3>
<p>Binary Column</p>
<p>If a binary column has been set with the Java byte array containing fours
bytes, byte[] data = {0x34, 0x87, 0xc2, 0x1f} then:</p>
@@ -581,43 +580,43 @@ document.write("Last Published: " + docu
</ul>
</div>
</div>
-<a name="java.sql.Blob"></a>
+<a name="N100FD"></a><a name="java.sql.Blob"></a>
<h2 class="boxed">java.sql.Blob</h2>
<div class="section">
-<a name="getBytes%28int+pos%2C+int+length%29"></a>
+<a name="N10101"></a><a name="getBytes%28int+pos%2C+int+length%29"></a>
<h3 class="boxed">getBytes(int pos, int length)</h3>
<p>Behavior Clarification</p>
<p>If the pos (position) argument is greater than the length of the BLOB then
an exception is thrown. This matches the semantics of the SQL SUBSTR
function.</p>
-<a
name="position%28byte+pattern%2C+int+start%29+and+position%28Blob+pattern%2C+int+start%29"></a>
+<a name="N10109"></a><a
name="position%28byte+pattern%2C+int+start%29+and+position%28Blob+pattern%2C+int+start%29"></a>
<h3 class="boxed">position(byte pattern, int start) and position(Blob pattern,
int start)</h3>
<p>Behavior Clarification</p>
<p>If the pattern argument has length zero, then the value of start argument
will be returned. This matches the semantics of the SQL LOCATE function.</p>
</div>
-<a name="java.sql.Clob"></a>
+<a name="N10111"></a><a name="java.sql.Clob"></a>
<h2 class="boxed">java.sql.Clob</h2>
<div class="section">
-<a name="getSubString%28int+pos%2C+int+length%29"></a>
+<a name="N10115"></a><a name="getSubString%28int+pos%2C+int+length%29"></a>
<h3 class="boxed">getSubString(int pos, int length)</h3>
<p>Behavior Clarification</p>
<p>If the pos (position) argument is greater than the length of the CLOB then
an exception is thrown. This matches the semantics of the SQL SUBSTR
function.</p>
-<a name="position%28String+searchstr%2C+int+start%29+and"></a>
+<a name="N1011D"></a><a
name="position%28String+searchstr%2C+int+start%29+and"></a>
<h3 class="boxed">position(String searchstr, int start) andposition(Clob
searchstr, int start)</h3>
<p>Behavior Clarification</p>
<p>If the searchstr argument has length zero (the empty string), then the
value of start argument will be returned. This matches the semantics of the SQL
LOCATE function.</p>
</div>
-<a name="Date+Handling"></a>
+<a name="N10127"></a><a name="Date+Handling"></a>
<h2 class="boxed">Date Handling</h2>
<div class="section">
-<a name="Derby+SQL+DATE"></a>
+<a name="N1012B"></a><a name="Derby+SQL+DATE"></a>
<h3 class="boxed">Derby SQL DATE</h3>
<p>Derby’s SQL DATE type represents a date in the form yyyy-mm-dd with
no associated time zone information.</p>
-<a name="java.sql.Date"></a>
+<a name="N10131"></a><a name="java.sql.Date"></a>
<h4>java.sql.Date</h4>
<p>A JDBC Date (java.sql.Date) by definition represents a point in time on a
given date in a given time zone.</p>
<p>[JDBC3] intends that the point in time for a java.sql.Date object is 00:00
(midnight), but this is not enforced by the class.</p>
<p>JDBC drivers are required to return java.sql.Date objects that are
normalized to 00:00 according to the required time zone.</p>
<p>Applications are expected to pass in java.sql.Date instances that are
normalized to 00:00 (see section 18.1.1 of [TUTORIAL3]).</p>
-<a name="Conversion+of+a+JDBC+java.sql.Date+to+a+Derby+DATE+value"></a>
+<a name="N1013D"></a><a
name="Conversion+of+a+JDBC+java.sql.Date+to+a+Derby+DATE+value"></a>
<h4>Conversion of a JDBC java.sql.Date to a Derby DATE value</h4>
<ol>
<li>
@@ -648,7 +647,7 @@ document.write("Last Published: " + docu
</ol>
<p>Derby does not require that the application’s java.sql.Date value is
normalized to 00:00 according to the required time zone.</p>
<p>In both cases no time zone information is stored with the SQL DATE
value.</p>
-<a name="Conversion+of+a+Derby+DATE+value+to+a+JDBC+java.sql.Date"></a>
+<a name="N10165"></a><a
name="Conversion+of+a+Derby+DATE+value+to+a+JDBC+java.sql.Date"></a>
<h4>Conversion of a Derby DATE value to a JDBC java.sql.Date</h4>
<ol>
<li>
@@ -674,7 +673,7 @@ document.write("Last Published: " + docu
</ul>
</li>
</ol>
-<a name="Conversion+of+a+string+type+to+a+JDBC+java.sql.Date"></a>
+<a name="N1017E"></a><a
name="Conversion+of+a+string+type+to+a+JDBC+java.sql.Date"></a>
<h4>Conversion of a string type to a JDBC java.sql.Date</h4>
<p>Three different date formats are built into Derby.</p>
<div style="margin-left: 2em">
@@ -692,16 +691,16 @@ document.write("Last Published: " + docu
</div>
<p>If the format of the string matches one of the built in formats then a
conversion to a java.sql.Date matches that of a SQL DATE value with value
yyyy-mm-dd.</p>
<p>If the string does not match any of the built in formats Derby attempts to
use the Java locale specific parser to interpret the string as a date.</p>
-<a name="Derby+SQL+TIME"></a>
+<a name="N10194"></a><a name="Derby+SQL+TIME"></a>
<h3 class="boxed">Derby SQL TIME</h3>
<p>Derby’s SQL TIME type represents a time of day in the form hh:mm:ss
with no associated time zone information.</p>
-<a name="java.sql.Time"></a>
+<a name="N1019A"></a><a name="java.sql.Time"></a>
<h4>java.sql.Time</h4>
<p>A JDBC Time (java.sql.Time) by definition represents a point in time on an
unspecified day in a given time zone.</p>
<p>Java.sql.Time extends java.util.date, so it includes a date. [JDBC3]
intends that the date stored in a java.sql.Time be Jan 1 1970, but this is not
enforced by the class.</p>
<p>JDBC drivers are required to return java.sql.Time objects that are
normalized to Jan. 1 1970 according to the required time zone.</p>
<p>Applications are expected to pass in java.sql.Time instances that are
normalized to Jan. 1 1970.</p>
-<a name="Conversion+of+a+JDBC+java.sql.Time+to+a+Derby+TIME+value"></a>
+<a name="N101A6"></a><a
name="Conversion+of+a+JDBC+java.sql.Time+to+a+Derby+TIME+value"></a>
<h4>Conversion of a JDBC java.sql.Time to a Derby TIME value</h4>
<ol>
<li>
@@ -732,7 +731,7 @@ document.write("Last Published: " + docu
</ol>
<p>Derby does not require that the application’s java.sql.Time value be
normalized to Jan 1 1970 according to the required time zone.</p>
<p>In both cases no time zone information is stored with the SQL TIME
value.</p>
-<a name="Conversion+of+a+Derby+TIME+value+to+a+JDBC+java.sql.Time"></a>
+<a name="N101CE"></a><a
name="Conversion+of+a+Derby+TIME+value+to+a+JDBC+java.sql.Time"></a>
<h4>Conversion of a Derby TIME value to a JDBC java.sql.Time</h4>
<ol>
<li>
@@ -758,7 +757,7 @@ document.write("Last Published: " + docu
</ul>
</li>
</ol>
-<a name="Conversion+of+a+string+type+to+a+JDBC+java.sql.Time"></a>
+<a name="N101E7"></a><a
name="Conversion+of+a+string+type+to+a+JDBC+java.sql.Time"></a>
<h4>Conversion of a string type to a JDBC java.sql.Time</h4>
<p>Three different time formats are built into Derby:</p>
<div style="margin-left: 2em">
@@ -776,13 +775,13 @@ document.write("Last Published: " + docu
</div>
<p>If the format of the string matches one of the built in formats then a
conversion to a java.sql.Time matches that of a SQL TIME value with value
hh:mm:ss.</p>
<p>If the string does not match any of the built in formats Derby attempts to
use the Java locale specific parser to interpret the string as a date.</p>
-<a name="Derby+SQL+TIMESTAMP"></a>
+<a name="N101FD"></a><a name="Derby+SQL+TIMESTAMP"></a>
<h3 class="boxed">Derby SQL TIMESTAMP</h3>
<p>Derby’s SQL TIMESTAMP type represents a time of day in the form
yyyy-mm-dd hh:mm:ss.fffffffff (nanosecond granularity) with no associated time
zone information.</p>
-<a name="java.sql.Timestamp"></a>
+<a name="N10203"></a><a name="java.sql.Timestamp"></a>
<h4>java.sql.Timestamp</h4>
<p>A JDBC Timestamp (java.sql.Timestamp) by definition represents a point in
time, with nanosecond resolution, in a given time zone.</p>
-<a
name="Conversion+of+a+JDBC+java.sql.Timestamp+to+a+Derby+TIMESTAMP+value"></a>
+<a name="N10209"></a><a
name="Conversion+of+a+JDBC+java.sql.Timestamp+to+a+Derby+TIMESTAMP+value"></a>
<h4>Conversion of a JDBC java.sql.Timestamp to a Derby TIMESTAMP value</h4>
<ol>
<li>
@@ -811,7 +810,7 @@ document.write("Last Published: " + docu
</ul>
</li>
</ol>
-<a
name="Conversion+of+a+Derby+TIMESTAMP+value+to+a+JDBC+java.sql.Timestamp"></a>
+<a name="N10235"></a><a
name="Conversion+of+a+Derby+TIMESTAMP+value+to+a+JDBC+java.sql.Timestamp"></a>
<h4>Conversion of a Derby TIMESTAMP value to a JDBC java.sql.Timestamp</h4>
<ol>
<li>
@@ -837,7 +836,7 @@ document.write("Last Published: " + docu
</ul>
</li>
</ol>
-<a name="Conversion+of+a+string+type+to+a+JDBC+java.sql.Timestamp"></a>
+<a name="N1024E"></a><a
name="Conversion+of+a+string+type+to+a+JDBC+java.sql.Timestamp"></a>
<h4>Conversion of a string type to a JDBC java.sql.Timestamp</h4>
<p>Two different timestamp formats are built into Derby:</p>
<div style="margin-left: 2em">
Modified: websites/production/db/content/derby/papers/btree_package.html
==============================================================================
--- websites/production/db/content/derby/papers/btree_package.html (original)
+++ websites/production/db/content/derby/papers/btree_package.html Sat Sep 9
23:49:09 2017
@@ -3,8 +3,9 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
+<meta name="generator" content="">
<meta name="" content="">
<title>org.apache.derby.impl.store.access.btree</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
@@ -317,7 +318,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>org.apache.derby.impl.store.access.btree</h1>
-<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -354,9 +354,8 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
-</div>
<p>Implements BTree access method, which is the basis for SQL indexes.</p>
-<a name="Overview"></a>
+<a name="N1001B"></a><a name="Overview"></a>
<h2 class="boxed">Overview</h2>
<div class="section">
<p>Derby implements secondary SQL indexes as BTrees. The high level features
of the BTree implementation are:</p>
@@ -368,7 +367,7 @@ document.write("Last Published: " + docu
<li>Derby uses logical key deletes. This enables it to perform undos during
rollbacks and restart recovery as single page operations.</li>
</ol>
</div>
-<a name="High+level+structure+of+the+B%2BTree"></a>
+<a name="N10031"></a><a name="High+level+structure+of+the+B%2BTree"></a>
<h2 class="boxed">High level structure of the B+Tree</h2>
<div class="section">
<ul>
@@ -379,12 +378,12 @@ document.write("Last Published: " + docu
<li>IndexRows are generated by the <a
href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/iapi/sql/dictionary/IndexRowGenerator.html">IndexRowGenerator</a>.</li>
</ul>
</div>
-<a name="Latching+implementation"></a>
+<a name="N10058"></a><a name="Latching+implementation"></a>
<h2 class="boxed">Latching implementation</h2>
<div class="section">
<p>Derby uses latches on pages to get exclusive access to the page while
reading or writing the page (Derby only uses exclusive latches, no shared
latches are used). In order to prevent deadlocks latches requested while
holding other latches are always requested top/down and left to right. Btree
splits are always left to right. If for any reason the code needs to break this
protocol then it will first request the latch NOWAIT and if it can't get the
latch it will release all current latches and wait for the latch it is trying
to get, and then after obtaining it go about getting the other latches it needs
for the particular operation. While traversing down the tree Derby may hold 2
latches: one on parent and one on child. It then continues doing "ladder"
latching down the tree releasing the highest node when it has successfully got
a new lower node latch. Latches are short term, only held while
reading/modifying the page, never held while an I/O is happening. Structure
modifications
are all isolated from other operations through the use of latches.</p>
</div>
-<a name="Locking+and+Isolation+Levels"></a>
+<a name="N1005E"></a><a name="Locking+and+Isolation+Levels"></a>
<h2 class="boxed">Locking and Isolation Levels</h2>
<div class="section">
<p>Derby uses data only locking for its logical row level locking. All
isolation level implementation is done using logical locks (Derby does not
support non-locking isolation such as multi-versioning).</p>
@@ -400,7 +399,7 @@ document.write("Last Published: " + docu
<dd>No row locks are acquired. The code still gets table level intent locks to
prevent concurrent DDL during the query.</dd>
</dl>
</div>
-<a name="BTree+Structure+Modifications"></a>
+<a name="N1007F"></a><a name="BTree+Structure+Modifications"></a>
<h2 class="boxed">BTree Structure Modifications</h2>
<div class="section">
<p>In Derby, SMOs (structure modification operations - ie. page splits), only
happen top down. This is not as concurrent as bottom up in <a class="external"
href="http://www.almaden.ibm.com/u/mohan/RJ6846.pdf">ARIES/IM</a>, but is
simpler. As in ARIES/IM <q>Not more than 2 index pages are held latched
simultaneously at anytime. In order to improve concurrency and to avoid
deadlocks involving latches, even those latches are not held while waiting for
a lock wich is not immediately grantable. No data page latch is held or
acquired during an index access. Latch coupling is used while traversing the
tree - ie. the latch on a parent page is held while requesting a latch on a
child page.</q>
@@ -409,24 +408,24 @@ document.write("Last Published: " + docu
<p>The hard case is when P does not have room for descriminator key. In this
case all latches are released, and Derby does a split pass from top to bottom,
and will split the internal nodes that do not have room for the decrimator key.
Note this may result in more splits than necessary for this particular insert,
but the assumption is that the splits will have to happen eventually anyway.
After this split pass is done, the search for the insert starts again from top
down, but it must once again check for space because it has given up all its
latches and some other transaction may have acquired the space in the
meantime.</p>
<p>Optimization is possible to remember C and see if it is right location,
and/or use sideway pointers to search right rather than do research of tree.</p>
</div>
-<a name="Logical+Key+Deletes"></a>
+<a name="N10091"></a><a name="Logical+Key+Deletes"></a>
<h2 class="boxed">Logical Key Deletes</h2>
<div class="section">
<p>In both the BTree and the Heap, deletes are first executed by marking a
"deleted" bit. This is to insure space on the page for abort, since row level
locking will allow other rows on the page to be modified conncurrently with the
transaction executing the delete. The system uses a background daemon to
schedule work after commit to reclaim the space of the deleted rows. A row
marked deleted can be "purged" if one can obtain a lock on it (if it was an
uncommitted delete then the transaction doing the commit would still have an
exclusive lock on the row).</p>
</div>
-<a name="Garbage+Collection+of+deleted+keys"></a>
+<a name="N10097"></a><a name="Garbage+Collection+of+deleted+keys"></a>
<h2 class="boxed">Garbage Collection of deleted keys</h2>
<div class="section">
<p>Since rows are only marked as "deleted", and not physically removed, it is
necessary to perform space reclamation on deleted rows.</p>
-<a name="Online+during+BTREE+split"></a>
+<a name="N1009D"></a><a name="Online+during+BTREE+split"></a>
<h3 class="boxed">Online during BTREE split</h3>
<p>Whenever there is not enough room on a leaf to do an insert the code
attempts to find space on the leaf, by checking if it can reclaim any committed
deletes on that leaf. That work only requires the latch on the leaf and NOWAIT
row write locks. It is expected that most of the space reclaim done in the
BTree goes through this path. Most of this work is done in {@link
org.apache.derby.impl.store.access.btree.BTreeController.reclaim_deleted_rows}.</p>
-<a name="BTREE+post+commit+work"></a>
+<a name="N100A3"></a><a name="BTREE+post+commit+work"></a>
<h3 class="boxed">BTREE post commit work</h3>
<p>Whenever a delete operation deletes the last row from a leaf page then a
BtreePostCommit job is queued to be executed after the transaction which did
the delete commits. This work currently requires a table level lock as page
merges have not been implemented to be allowed concurrent with other
operations. Many DBMSes don't even try to do page merges except when called
from some sort of reorg utility. If all rows on page are purged, then the page
will move to the free list and perform a merge to the tree.</p>
<p>It is expected that the normal space reclamation happens with row locks
during btree split, which is why not much work has been done to optimize btree
post commit path</p>
</div>
-<a name="Logging+and+Recovery"></a>
+<a name="N100AB"></a><a name="Logging+and+Recovery"></a>
<h2 class="boxed">Logging and Recovery</h2>
<div class="section">
<p>Derby uses physical redo and logical undo for BTree inserts and deletes.
Logical undo is simplified as a result of using logical key deletes. If keys
were physically removed during deletes, then the undo of a key delete would
have required an insert operation which can potentially lead to page splits at
various levels within the tree. Since the key is not physically removed, but
only marked as "deleted", undoing a key delete is accomplished easily. However,
since the page where the insert or delete should take place may have moved, it
may be necessary to search for the page.</p>
Modified: websites/production/db/content/derby/papers/derby_arch.html
==============================================================================
--- websites/production/db/content/derby/papers/derby_arch.html (original)
+++ websites/production/db/content/derby/papers/derby_arch.html Sat Sep 9
23:49:09 2017
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
<title>Derby Engine Architecture Overview</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
@@ -316,7 +316,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Derby Engine Architecture Overview</h1>
-<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -348,7 +347,6 @@ document.write("Last Published: " + docu
</ul>
</li>
</ul>
-</div>
</div>
@@ -367,13 +365,13 @@ Please post any corrections or additiona
</p>
-<a name="Module+View"></a>
+<a name="N1001F"></a><a name="Module+View"></a>
<h2 class="boxed">Module View</h2>
<div class="section">
<p>
A running system is comprised of a monitor and a collection of modules.
</p>
-<a name="Monitor"></a>
+<a name="N10028"></a><a name="Monitor"></a>
<h3 class="boxed">Monitor</h3>
<p>
The monitor is code that maps module requests,
@@ -385,7 +383,7 @@ implementation, while in JDK 1.4 the dri
implementation. This allows Derby to present a single JDBC driver to the
application regardless of JDK and internally the correct driver is loaded.
</p>
-<a name="Modules"></a>
+<a name="N10032"></a><a name="Modules"></a>
<h3 class="boxed">Modules</h3>
<p>
A module is a set of discrete functionality, such as a lock manager,
@@ -410,13 +408,13 @@ configurations out of the same code base
</div>
-<a name="Layer%2FBox+View"></a>
+<a name="N10043"></a><a name="Layer%2FBox+View"></a>
<h2 class="boxed">Layer/Box View</h2>
<div class="section">
<p>
There are four main code areas: JDBC, SQL, Store and Services.
</p>
-<a name="JDBC"></a>
+<a name="N1004C"></a><a name="JDBC"></a>
<h3 class="boxed">JDBC</h3>
<p>
JDBC presents the only api to Derby to applications and consists of
@@ -431,7 +429,7 @@ additional methods.
<p>
The JDBC layer sits on top of the SQL layer.
</p>
-<a name="SQL"></a>
+<a name="N10059"></a><a name="SQL"></a>
<h3 class="boxed">SQL</h3>
<p>
The SQL layer is split into two main logical areas, compilation and
@@ -491,7 +489,7 @@ count.
These result set objects interface with the Store layer to fetch rows
from tables, indexes or perform sorts.
</p>
-<a name="Store"></a>
+<a name="N10084"></a><a name="Store"></a>
<h3 class="boxed">Store</h3>
<p>
The Store layer is split into two main areas, access and raw.
@@ -508,7 +506,7 @@ store works with a pluggable file system
to be stored in the Java filesystem, jar files, jar files in the
classpath, or any other mechanism.
</p>
-<a name="Services"></a>
+<a name="N10091"></a><a name="Services"></a>
<h3 class="boxed">Services</h3>
<p>
Services are utility modules such as lock management, cache management
Modified: websites/production/db/content/derby/papers/derby_htw.html
==============================================================================
--- websites/production/db/content/derby/papers/derby_htw.html (original)
+++ websites/production/db/content/derby/papers/derby_htw.html Sat Sep 9
23:49:09 2017
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
<title>How Things Work</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
@@ -315,8 +315,7 @@ document.write("Last Published: " + docu
<input value="-a" class="smallerfont" title="Shrink
text" onclick="ndeSetTextSize('decr'); return false;" type="button">
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
-<h1>How Things Work</h1>
-<div id="front-matter"></div>
+<h1>How Things Work</h1>
<div class="warning">
Modified: websites/production/db/content/derby/papers/derby_web.html
==============================================================================
--- websites/production/db/content/derby/papers/derby_web.html (original)
+++ websites/production/db/content/derby/papers/derby_web.html Sat Sep 9
23:49:09 2017
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
<title>Apache Derby Web Site</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
@@ -175,7 +175,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Apache Derby Web Site</h1>
-<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -257,7 +256,6 @@ document.write("Last Published: " + docu
</ul>
</li>
</ul>
-</div>
</div>
@@ -276,25 +274,25 @@ Derby web site itself.
</p>
-<a name="Web+Site+Change+Notes"></a>
+<a name="N10018"></a><a name="Web+Site+Change+Notes"></a>
<h2 class="boxed">Web Site Change Notes</h2>
<div class="section">
-<a name="2016%3A+Web+site+upgraded+to+Forrest+0.9"></a>
+<a name="N1001E"></a><a name="2016%3A+Web+site+upgraded+to+Forrest+0.9"></a>
<h3 class="boxed">2016: Web site upgraded to Forrest 0.9</h3>
<p>The web site is now being built with the latest
release of Forrest, Forrest 0.9.</p>
-<a name="21-Dec-2007%3A+Web+site+upgraded+to+Forrest+0.8"></a>
+<a name="N10028"></a><a
name="21-Dec-2007%3A+Web+site+upgraded+to+Forrest+0.8"></a>
<h3 class="boxed">21-Dec-2007: Web site upgraded to Forrest 0.8</h3>
<p>The web site was upgraded to build with the latest
release of Forrest, Forrest 0.8.</p>
-<a name="12-Aug-2005%3A+Web+site+upgraded+to+Forrest+0.7"></a>
+<a name="N10032"></a><a
name="12-Aug-2005%3A+Web+site+upgraded+to+Forrest+0.7"></a>
<h3 class="boxed">12-Aug-2005: Web site upgraded to Forrest 0.7</h3>
<p>The web site was recently upgraded to build with the latest
release of Forrest, Forrest 0.7.</p>
<p>If you receive OutOfMemoryErrors while trying to build the
site, try increasing the amount of memory available to forrest
by setting the ANT_OPTS environment variable to -mx512M.</p>
-<a name="31-Jul-2005%3A+Web+site+moved+from+Incubator+to+Apache+DB"></a>
+<a name="N1003F"></a><a
name="31-Jul-2005%3A+Web+site+moved+from+Incubator+to+Apache+DB"></a>
<h3 class="boxed">31-Jul-2005: Web site moved from Incubator to Apache DB</h3>
<p>
Derby graduated from the Incubator to the Apache DB project,
@@ -317,7 +315,7 @@ Specific changes, beginning with SVN rev
</li>
</ul>
-<a name="15-May-2005%3A+Version+10.0+manuals+moved"></a>
+<a name="N10058"></a><a name="15-May-2005%3A+Version+10.0+manuals+moved"></a>
<h3 class="boxed">15-May-2005: Version 10.0 manuals moved</h3>
<p>
The files that comprise the 10.0 manuals are numerous (about 750), static,
@@ -325,7 +323,7 @@ and take a while to build (20-40 minutes
In May they were moved to a separate "mini" forrest site, which is now at
<a
href="http://db.apache.org/derby/docs/10.0/index.html">http://db.apache.org/derby/docs/10.0/index.html</a>.
</p>
-<a name="27-Jan-2005%3A+Web+site+upgraded+to+Forrest+0.6"></a>
+<a name="N10066"></a><a
name="27-Jan-2005%3A+Web+site+upgraded+to+Forrest+0.6"></a>
<h3 class="boxed">27-Jan-2005: Web site upgraded to Forrest 0.6</h3>
<p>
The Derby web site was initialized in August 2004 with Forrest 0.5.1.
@@ -364,7 +362,7 @@ blocks listed below:
</div>
-<a name="Forrest+in+a+Nutshell"></a>
+<a name="N10095"></a><a name="Forrest+in+a+Nutshell"></a>
<h2 class="boxed">Forrest in a Nutshell</h2>
<div class="section">
<p>
@@ -400,7 +398,7 @@ The Derby web site uses Forrest 0.8 and
-<a name="Testing+New+Pages+for+the+Derby+Site"></a>
+<a name="N100C0"></a><a name="Testing+New+Pages+for+the+Derby+Site"></a>
<h2 class="boxed">Testing New Pages for the Derby Site</h2>
<div class="section">
<p>
@@ -410,7 +408,7 @@ who wants to develop content for the Der
It is much easier to integrate new pages by first
testing them outside the Derby web site source tree.
</p>
-<a name="Create+a+Forrest+seed+site"></a>
+<a name="N100C9"></a><a name="Create+a+Forrest+seed+site"></a>
<h3 class="boxed">Create a Forrest seed site</h3>
<p>
The
@@ -442,7 +440,7 @@ Below are some simple steps to get start
<li> Look at the sample pages that are included in the seed site.</li>
</ul>
-<a name="Add+your+new+page+to+the+seed+site"></a>
+<a name="N10101"></a><a name="Add+your+new+page+to+the+seed+site"></a>
<h3 class="boxed">Add your new page to the seed site</h3>
<p>
If you don't need to add a new page, skip this step.
@@ -532,7 +530,7 @@ Otherwise, incorporate the new page(s) i
source file. </li>
</ul>
-<a name="What+editor+can+you+use+for+Forrest+XML%3F"></a>
+<a name="N10164"></a><a name="What+editor+can+you+use+for+Forrest+XML%3F"></a>
<h3 class="boxed">What editor can you use for Forrest XML?</h3>
<p>
The Forrest web site mentions jEdit, oXygen, xmlspy,
@@ -563,7 +561,7 @@ If you find other tools that also work w
by posting to
<a href="../derby_mail.html">[email protected]</a>.
</p>
-<a name="Resolve+Forrest+DTDs+locally"></a>
+<a name="N1018E"></a><a name="Resolve+Forrest+DTDs+locally"></a>
<h3 class="boxed">Resolve Forrest DTDs locally</h3>
<p>
Many source files in the Derby web site repository are in Forrest XML format.
@@ -596,7 +594,7 @@ The mechanics of doing that is described
-<a name="Updating+the+Apache+Derby+web+site"></a>
+<a name="N101AD"></a><a name="Updating+the+Apache+Derby+web+site"></a>
<h2 class="boxed">Updating the Apache Derby web site </h2>
<div class="section">
<p>
@@ -606,14 +604,14 @@ Steps 1-6 are for both contributors and
Step 7 tells contributors how to create a patch.
Steps 8-10 tell committers how to commit and publish changes.
</p>
-<a name="1.+Install+Forrest+on+your+machine"></a>
+<a name="N101B6"></a><a name="1.+Install+Forrest+on+your+machine"></a>
<h3 class="boxed">1. Install Forrest on your machine</h3>
<p>
If you haven't installed Forrest yet,
<a class="external" href="http://forrest.apache.org/mirrors.cgi">install
Forrest 0.8</a>
on your local system.
</p>
-<a name="2.+Check+out+the+Derby+web+site+pages"></a>
+<a name="N101C4"></a><a name="2.+Check+out+the+Derby+web+site+pages"></a>
<h3 class="boxed">2. Check out the Derby web site pages </h3>
<p>
Check the Derby web site files out of the subversion repository:
@@ -621,7 +619,7 @@ Check the Derby web site files out of th
<pre class="code">
svn co https://svn.apache.org/repos/asf/db/derby/site/trunk
</pre>
-<a name="3.+Modify+files+in+the+src+tree"></a>
+<a name="N101D2"></a><a name="3.+Modify+files+in+the+src+tree"></a>
<h3 class="boxed">3. Modify files in the src tree </h3>
<p>
After checking the site out of subversion,
@@ -778,7 +776,7 @@ they control the information and links i
</li>
</ul>
-<a name="4.+Build+the+site"></a>
+<a name="N102E7"></a><a name="4.+Build+the+site"></a>
<h3 class="boxed">4. Build the site </h3>
<p>
After modifying files, rebuild the site with the
@@ -800,7 +798,7 @@ If you run out of memory building the we
try setting the <span class="codefrag">ANT_OPTS</span> environment variable to
<span class="codefrag">-mx512M</span>.
</p>
-<a name="5.+Test+the+changes"></a>
+<a name="N10310"></a><a name="5.+Test+the+changes"></a>
<h3 class="boxed">5. Test the changes </h3>
<p>
There are a couple ways (at least) to review changes.
@@ -837,7 +835,7 @@ then Javascript adds extra breadcrumbs f
won't be added when the site is viewed locally.</a>
</p>
-<a name="odd_diffs"></a>
+<a name="N10345"></a><a name="odd_diffs"></a>
<h3 class="boxed">6. Adjust the site build - odd diffs</h3>
<p>Derby developers build the site on a variety of platforms,
including Windows, Mac, and Linux. The
@@ -863,7 +861,7 @@ should revert the changes made to the <s
<pre class="code">svn revert build\site\skin\*</pre>
<p>If you are using TortoiseSVN, you can use Windows Explorer to revert the
changes.</p>
-<a name="7.+Create+a+patch"></a>
+<a name="N1038B"></a><a name="7.+Create+a+patch"></a>
<h3 class="boxed">7. Create a patch</h3>
<p>
Create a patch at the <span class="codefrag">trunk</span> level and only
include the
@@ -873,7 +871,7 @@ Create a patch at the <span class="codef
<p>
Upload the patch to a Jira issue to make it available to a Derby committer.
</p>
-<a name="8.+Commit+changes+to+the+src+and+build%2Fsite+directories"></a>
+<a name="N103A2"></a><a
name="8.+Commit+changes+to+the+src+and+build%2Fsite+directories"></a>
<h3 class="boxed">8. Commit changes to the src and build/site directories</h3>
<p>
Apply any patch, if one was provided, then build and test the web site
@@ -919,7 +917,7 @@ svn commit --message "here is my commit
cd ../build/site
svn commit --message "here is my commit message"
</pre>
-<a name="9.+Make+web+site+changes+visible"></a>
+<a name="N103EA"></a><a name="9.+Make+web+site+changes+visible"></a>
<h3 class="boxed">9. Make web site changes visible</h3>
<p>
A Derby committer can force the source tree to be updated to the latest change
as follows:
@@ -935,7 +933,7 @@ However, www.apache.org automatically sy
and the <span class="codefrag">build/site</span> tree will get synced right
away,
so there is no need for this.
</p>
-<a name="10.+Considering+a+quick+fix+to+the+build+tree%3F"></a>
+<a name="N10401"></a><a
name="10.+Considering+a+quick+fix+to+the+build+tree%3F"></a>
<h3 class="boxed">10. Considering a quick fix to the build tree?</h3>
<p>
If you modify a file in the <span class="codefrag">build/site</span> tree,
Modified: websites/production/db/content/derby/papers/fortune_tut.html
==============================================================================
--- websites/production/db/content/derby/papers/fortune_tut.html (original)
+++ websites/production/db/content/derby/papers/fortune_tut.html Sat Sep 9
23:49:09 2017
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
<title>Apache Derby Fortune Server Tutorial</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
@@ -316,7 +316,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Apache Derby Fortune Server Tutorial</h1>
-<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -338,11 +337,10 @@ document.write("Last Published: " + docu
<a href="#Revision+History">Revision History</a>
</li>
</ul>
-</div>
</div>
-<a name="Overview"></a>
+<a name="N1000D"></a><a name="Overview"></a>
<h2 class="boxed">Overview</h2>
<div class="section">
<p>
@@ -367,7 +365,7 @@ all within Derby's easy-to-use embedded
</div>
-<a name="Intended+Audience"></a>
+<a name="N10025"></a><a name="Intended+Audience"></a>
<h2 class="boxed">Intended Audience</h2>
<div class="section">
<p>
@@ -379,7 +377,7 @@ so lack of experience in any of these ar
</div>
-<a name="Tutorial+Topics"></a>
+<a name="N1002F"></a><a name="Tutorial+Topics"></a>
<h2 class="boxed">Tutorial Topics</h2>
<div class="section">
<p>
@@ -441,7 +439,7 @@ The tutorial is organized into the secti
-<a name="Download+Software"></a>
+<a name="N10072"></a><a name="Download+Software"></a>
<h2 class="boxed">Download Software</h2>
<div class="section">
<ul>
@@ -471,7 +469,7 @@ The tutorial is organized into the secti
</div>
-<a name="Credits+and+Acknowledgments"></a>
+<a name="N1009B"></a><a name="Credits+and+Acknowledgments"></a>
<h2 class="boxed">Credits and Acknowledgments</h2>
<div class="section">
<p>
@@ -501,7 +499,7 @@ was used for generating the web-based ma
</div>
-<a name="Revision+History"></a>
+<a name="N100BD"></a><a name="Revision+History"></a>
<h2 class="boxed">Revision History</h2>
<div class="section">
<p>
Modified: websites/production/db/content/derby/papers/index.html
==============================================================================
--- websites/production/db/content/derby/papers/index.html (original)
+++ websites/production/db/content/derby/papers/index.html Sat Sep 9 23:49:09
2017
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
<title>Apache Derby Papers</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
@@ -319,7 +319,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Apache Derby Papers</h1>
-<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -335,7 +334,6 @@ document.write("Last Published: " + docu
<a href="#How+to+Contribute+Papers">How to Contribute Papers</a>
</li>
</ul>
-</div>
</div>
@@ -345,7 +343,7 @@ This <em>ad hoc</em> spot in the Derby s
</p>
-<a name="Derby+Engine"></a>
+<a name="N10017"></a><a name="Derby+Engine"></a>
<h2 class="boxed">Derby Engine</h2>
<div class="section">
<p>
@@ -459,7 +457,7 @@ then open the file you saved.)
</div>
-<a name="Derby+Network+Client"></a>
+<a name="N100FF"></a><a name="Derby+Network+Client"></a>
<h2 class="boxed">Derby Network Client</h2>
<div class="section">
<p>
@@ -481,7 +479,7 @@ The table below summarizes white papers
</div>
-<a name="Instruction"></a>
+<a name="N10125"></a><a name="Instruction"></a>
<h2 class="boxed">Instruction</h2>
<div class="section">
<p>
@@ -494,7 +492,7 @@ even more tutorials and other instructio
</div>
-<a name="How+to+Contribute+Papers"></a>
+<a name="N10137"></a><a name="How+to+Contribute+Papers"></a>
<h2 class="boxed">How to Contribute Papers</h2>
<div class="section">
<p>
Modified: websites/production/db/content/derby/papers/logformats.html
==============================================================================
--- websites/production/db/content/derby/papers/logformats.html (original)
+++ websites/production/db/content/derby/papers/logformats.html Sat Sep 9
23:49:09 2017
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
<title>Derby Write Ahead Log Format</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
@@ -316,7 +316,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Derby Write Ahead Log Format</h1>
-<div id="front-matter">
<div class="abstract">This document describes the storage format of Derby
Write Ahead
Log. This is a work-in-progress derived from Javadoc comments and from
explanations Mike Matrigali and others posted to the Derby lists.
Please
@@ -359,10 +358,9 @@ document.write("Last Published: " + docu
<a href="#Pointers+to+relevant+classes">Pointers to relevant classes</a>
</li>
</ul>
-</div>
</div>
-<a name="introduction"></a>
+<a name="N10010"></a><a name="introduction"></a>
<h2 class="boxed"> Introduction </h2>
<div class="section">
<p> Derby uses a Write Ahead Log to record all changes to the database.
@@ -391,7 +389,7 @@ document.write("Last Published: " + docu
paper.</p>
</div>
-<a name="References"></a>
+<a name="N1002C"></a><a name="References"></a>
<h2 class="boxed"> References </h2>
<div class="section">
<p> A good description of Write Ahead Logging, and how a log is typically
@@ -403,7 +401,7 @@ document.write("Last Published: " + docu
.</p>
</div>
-<a name="Derby+implementation+of+the+Write+Ahead+Log"></a>
+<a name="N1003D"></a><a name="Derby+implementation+of+the+Write+Ahead+Log"></a>
<h2 class="boxed">Derby implementation of the Write Ahead Log</h2>
<div class="section">
<p> Derby implements the Write Ahead Log using a non-circular file system
@@ -470,7 +468,7 @@ document.write("Last Published: " + docu
while"</li>
</ol>
-<a name="LogCounter"></a>
+<a name="N1007C"></a><a name="LogCounter"></a>
<h3 class="boxed">LogCounter</h3>
<p>Log records are identified using LogCounter, which is an implementation
of LogInstant, a Derby term for LSN. The LogCounter is made up of
@@ -482,7 +480,7 @@ document.write("Last Published: " + docu
tells if one log instant is lessThan, equals or greater than
another.</p>
</div>
-<a name="Format+of+Write+Ahead+Log"></a>
+<a name="N1008A"></a><a name="Format+of+Write+Ahead+Log"></a>
<h2 class="boxed"> Format of Write Ahead Log </h2>
<div class="section">
<p> An implementation of file based log is in
@@ -490,7 +488,7 @@ document.write("Last Published: " + docu
This LogFactory is responsible for the formats of 2 kinds of file:
the log file and the log control file. And it is responsible for the
format of the log record wrapper. </p>
-<a name="Format+of+Log+Control+File"></a>
+<a name="N10096"></a><a name="Format+of+Log+Control+File"></a>
<h3 class="boxed">Format of Log Control File</h3>
<p>The log control file contains information about which log files are
present and where the last checkpoint log record is located.</p>
@@ -588,7 +586,7 @@ document.write("Last Published: " + docu
</tr>
</table>
-<a name="Format+of+the+log+file"></a>
+<a name="N1014C"></a><a name="Format+of+the+log+file"></a>
<h3 class="boxed">Format of the log file</h3>
<p>The log file contains log records which record all the changes to
the database. The complete transaction log is composed of a series
@@ -656,7 +654,7 @@ document.write("Last Published: " + docu
</tr>
</table>
-<a name="Format+of+the+log+record+wrapper"></a>
+<a name="N101C1"></a><a name="Format+of+the+log+record+wrapper"></a>
<h3 class="boxed">Format of the log record wrapper</h3>
<p>The log record wrapper provides information for the log scan.</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -697,7 +695,7 @@ document.write("Last Published: " + docu
</tr>
</table>
-<a name="The+format+of+a+log+record"></a>
+<a name="N1020F"></a><a name="The+format+of+a+log+record"></a>
<h3 class="boxed">The format of a log record</h3>
<p>The log record described every change to the persistent store</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -853,7 +851,7 @@ document.write("Last Published: " + docu
</table>
</div>
-<a name="Pointers+to+relevant+classes"></a>
+<a name="N1033C"></a><a name="Pointers+to+relevant+classes"></a>
<h2 class="boxed">Pointers to relevant classes</h2>
<div class="section">
<div class="fixme">
Modified: websites/production/db/content/derby/papers/optimizer.html
==============================================================================
--- websites/production/db/content/derby/papers/optimizer.html (original)
+++ websites/production/db/content/derby/papers/optimizer.html Sat Sep 9
23:49:09 2017
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
<title>Derby Optimizer Design</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
@@ -316,7 +316,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Derby Optimizer Design</h1>
-<div id="front-matter">
<div class="abstract">This document describes the Derby Optimizer. This is a
work-in-progress
derived from Javadoc comments and from explanations Jeffrey Lichtman
and
others posted to the Derby lists. Please post questions, comments, and
@@ -333,10 +332,9 @@ document.write("Last Published: " + docu
<a href="#Potential+Improvements+to+the+Optimizer">Potential Improvements to
the Optimizer</a>
</li>
</ul>
-</div>
</div>
-<a name="overview"></a>
+<a name="N10010"></a><a name="overview"></a>
<h2 class="boxed">Overview</h2>
<div class="section">
<div class="note">
@@ -406,7 +404,7 @@ document.write("Last Published: " + docu
the join order musn't be inverted under the current implementation).
</p>
</div>
-<a name="Example+of+a+5-way+Join"></a>
+<a name="N10032"></a><a name="Example+of+a+5-way+Join"></a>
<h2 class="boxed">Example of a 5-way Join</h2>
<div class="section">
<p> The optimizer looks at so many
@@ -524,7 +522,7 @@ t1 t2 t3 JOIN
- t5 - t2. </p>
</div>
-<a name="Potential+Improvements+to+the+Optimizer"></a>
+<a name="N10078"></a><a name="Potential+Improvements+to+the+Optimizer"></a>
<h2 class="boxed">Potential Improvements to the Optimizer</h2>
<div class="section">
<p> It's hard to consider the optimizer by itself. Many optimizer enhancements
Modified: websites/production/db/content/derby/papers/pageformats.html
==============================================================================
--- websites/production/db/content/derby/papers/pageformats.html (original)
+++ websites/production/db/content/derby/papers/pageformats.html Sat Sep 9
23:49:09 2017
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
<title>Derby On Disk Page Format</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
@@ -316,7 +316,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Derby On Disk Page Format</h1>
-<div id="front-matter">
<div class="abstract">This document describes the storage format of Derby disk
pages.
This is a work-in-progress derived from Javadoc comments and
@@ -368,9 +367,8 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
-</div>
-<a name="introduction"></a>
+<a name="N10010"></a><a name="introduction"></a>
<h2 class="boxed"> Introduction </h2>
<div class="section">
<p>Derby stores table and index data in Containers, which currently map
@@ -439,18 +437,18 @@ have allocation bit maps.
</p>
</div>
-<a name="storedpage"></a>
+<a name="N10049"></a><a name="storedpage"></a>
<h2 class="boxed">Data Page Format</h2>
<div class="section">
<p>A data page is broken into five sections.
<img alt="" src="page-format.png"></p>
-<a name="formatid"></a>
+<a name="N10055"></a><a name="formatid"></a>
<h3 class="boxed">Format Id </h3>
<p> The formatId is a 4 bytes array, it contains the format Id of this
page. The possible values are RAW_STORE_STORED_PAGE or
RAW_STORE_ALLOC_PAGE.</p>
-<a name="pageheader"></a>
+<a name="N1005F"></a><a name="pageheader"></a>
<h3 class="boxed"> Page Header </h3>
<p> The page header is a fixed size, 56 bytes. </p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
@@ -610,7 +608,7 @@ have allocation bit maps.
that 0 means field was never assigned. </div>
</div>
-<a name="records"></a>
+<a name="N1017A"></a><a name="records"></a>
<h3 class="boxed"> Records </h3>
<p>The records section contains zero or more records. Each record starts
@@ -898,7 +896,7 @@ have allocation bit maps.
</div>
</div>
-<a name="slottable"></a>
+<a name="N102C3"></a><a name="slottable"></a>
<h3 class="boxed">Slot Offset Table</h3>
<p>The slot offset table is a table of 6 or 12 bytes per record, depending
@@ -943,14 +941,14 @@ have allocation bit maps.
First slot is slot 0. The slot table grows backwards. Slots are
never
left empty. </p>
-<a name="checksum"></a>
+<a name="N1030A"></a><a name="checksum"></a>
<h3 class="boxed">Checksum</h3>
<p>8 bytes of a java.util.zip.CRC32 checksum of the entire's page contents
without the 8 bytes representing the checksum.</p>
</div>
-<a name="allocpage"></a>
+<a name="N10315"></a><a name="allocpage"></a>
<h2 class="boxed">Allocation Page</h2>
<div class="section">
<p> An allocation page of the file container extends a normal Stored page,
@@ -1164,7 +1162,7 @@ have allocation bit maps.
extent row to the alloc page.
</p>
-<a name="Alloc+Page+detailed+implementation+notes"></a>
+<a name="N103EA"></a><a name="Alloc+Page+detailed+implementation+notes"></a>
<h3 class="boxed">
Alloc Page detailed implementation notes</h3>
@@ -1234,7 +1232,7 @@ have allocation bit maps.
<p>For the fields in an allocation extent row.</p>
</div>
-<a name="Allocation+Extent"></a>
+<a name="N10404"></a><a name="Allocation+Extent"></a>
<h2 class="boxed">Allocation Extent</h2>
<div class="section">
<p>
Modified: websites/production/db/content/derby/papers/recovery.html
==============================================================================
--- websites/production/db/content/derby/papers/recovery.html (original)
+++ websites/production/db/content/derby/papers/recovery.html Sat Sep 9
23:49:09 2017
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
<title>Derby Logging and Recovery</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
@@ -316,7 +316,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Derby Logging and Recovery</h1>
-<div id="front-matter">
<div class="abstract">This document describes how Derby implements logging and
recovery.
This is a work-in-progress derived from Javadoc comments and from
explanations
Mike Matrigali and others posted to the Derby lists. Please post
questions,
@@ -367,15 +366,14 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
-</div>
-<a name="introduction"></a>
+<a name="N10010"></a><a name="introduction"></a>
<h2 class="boxed"> Introduction </h2>
<div class="section">
<p>Derby transaction logging and recovery is based upon the ARIES
algorithm.</p>
</div>
-<a name="ARIES+-+An+Overview"></a>
+<a name="N1001A"></a><a name="ARIES+-+An+Overview"></a>
<h2 class="boxed">ARIES - An Overview</h2>
<div class="section">
<p>Following is a brief description of the main principles behind ARIES.</p>
@@ -420,7 +418,7 @@ transaction decides to rollback.
system need to know about high level data structures. </p>
</div>
-<a name="Features+of+ARIES"></a>
+<a name="N10033"></a><a name="Features+of+ARIES"></a>
<h2 class="boxed">Features of ARIES</h2>
<div class="section">
<p>ARIES includes a number of optimisations to reduce the amount of work
@@ -460,7 +458,7 @@ transaction decides to rollback.
UndoLsn pointer as described previously.</p>
</div>
-<a name="References"></a>
+<a name="N10049"></a><a name="References"></a>
<h2 class="boxed">References</h2>
<div class="section">
<ol>
@@ -491,7 +489,7 @@ transaction decides to rollback.
</ol>
</div>
-<a name="Derby+implementation+of+ARIES"></a>
+<a name="N1006B"></a><a name="Derby+implementation+of+ARIES"></a>
<h2 class="boxed">Derby implementation of ARIES</h2>
<div class="section">
<p>I shall only describe how Derby differs from standard ARIES implementation.
@@ -553,7 +551,7 @@ transaction decides to rollback.
done.</p>
</div>
-<a name="Derby+recovery+process"></a>
+<a name="N1008F"></a><a name="Derby+recovery+process"></a>
<h2 class="boxed">Derby recovery process</h2>
<div class="section">
<p>Implemented in <span
class="codefrag">org.apache.derby.impl.store.raw.log.LogToFile.recover()</span>
@@ -576,7 +574,7 @@ transaction decides to rollback.
</dl>
</div>
-<a name="Recovery+Redo+pass"></a>
+<a name="N100B0"></a><a name="Recovery+Redo+pass"></a>
<h2 class="boxed">Recovery Redo pass</h2>
<div class="section">
<p>Implemented in <span
class="codefrag">org.apache.derby.impl.store.raw.log.FileLogger.redo()</span>
@@ -600,7 +598,7 @@ transaction decides to rollback.
</ol>
</div>
-<a name="Recovery+Undo+pass"></a>
+<a name="N100CB"></a><a name="Recovery+Undo+pass"></a>
<h2 class="boxed">Recovery Undo pass</h2>
<div class="section">
<p>Implemented in <span
class="codefrag">org.apache.derby.impl.store.raw.xact.XactFactory.rollbackAllTransactions()</span>
@@ -616,7 +614,7 @@ transaction decides to rollback.
</ol>
</div>
-<a name="Checkpoints"></a>
+<a name="N100E3"></a><a name="Checkpoints"></a>
<h2 class="boxed">Checkpoints</h2>
<div class="section">
<p>Implemented in <span
class="codefrag">org.apache.derby.impl.store.raw.log.LogToFile.checkpoint()</span>
@@ -741,7 +739,7 @@ transaction decides to rollback.
</p>
</div>
-<a name="Derby+Logging+Overview"></a>
+<a name="N1015E"></a><a name="Derby+Logging+Overview"></a>
<h2 class="boxed">Derby Logging Overview</h2>
<div class="section">
<p>A loggable action in Derby is redoable. If the action implements Undoable
interface, then it is also
@@ -777,7 +775,7 @@ transaction decides to rollback.
</ol>
</div>
-<a name="Loggable+Interface+Hierarchy"></a>
+<a name="N10180"></a><a name="Loggable+Interface+Hierarchy"></a>
<h2 class="boxed">Loggable Interface Hierarchy</h2>
<div class="section">
<ul>
@@ -807,7 +805,7 @@ transaction decides to rollback.
</ul>
</div>
-<a name="Container+Log+Operations+Hierarchy"></a>
+<a name="N101B2"></a><a name="Container+Log+Operations+Hierarchy"></a>
<h2 class="boxed">Container Log Operations Hierarchy</h2>
<div class="section">
<ul>
@@ -828,7 +826,7 @@ transaction decides to rollback.
</ul>
</div>
-<a name="Transaction+Management+Log+Operations+Hierarchy"></a>
+<a name="N101F7"></a><a
name="Transaction+Management+Log+Operations+Hierarchy"></a>
<h2 class="boxed">Transaction Management Log Operations Hierarchy</h2>
<div class="section">
<ul>
@@ -842,7 +840,7 @@ transaction decides to rollback.
</ul>
</div>
-<a name="Page+Level+Log+Operations+Hierarchy"></a>
+<a name="N1022B"></a><a name="Page+Level+Log+Operations+Hierarchy"></a>
<h2 class="boxed">Page Level Log Operations Hierarchy</h2>
<div class="section">
<ul>
Modified: websites/production/db/content/derby/papers/versionupgrade.html
==============================================================================
--- websites/production/db/content/derby/papers/versionupgrade.html (original)
+++ websites/production/db/content/derby/papers/versionupgrade.html Sat Sep 9
23:49:09 2017
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
<title>Derby Versioning Scheme</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
@@ -316,7 +316,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Derby Versioning Scheme</h1>
-<div id="front-matter">
<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,
@@ -336,10 +335,9 @@ document.write("Last Published: " + docu
<a href="#Upgrading+System+Catalogs">Upgrading System Catalogs</a>
</li>
</ul>
-</div>
</div>
-<a name="Basic+Numbering+Scheme"></a>
+<a name="N10010"></a><a name="Basic+Numbering+Scheme"></a>
<h2 class="boxed">Basic Numbering Scheme</h2>
<div class="section">
<div class="note">
@@ -395,7 +393,7 @@ document.write("Last Published: " + docu
had undergone 3 additional QA testing cycles. </p>
</div>
-<a name="Sysinfo+and+how+it+reports+versions"></a>
+<a name="N10038"></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
@@ -444,7 +442,7 @@ document.write("Last Published: " + docu
</table>
</div>
-<a name="Version+Upgrade+Mechanism"></a>
+<a name="N1008E"></a><a name="Version+Upgrade+Mechanism"></a>
<h2 class="boxed">Version Upgrade Mechanism</h2>
<div class="section">
<div class="note">
@@ -513,7 +511,7 @@ document.write("Last Published: " + docu
SALESDB with 10.0.x.y or 10.1.x.y would fail. </p>
</div>
-<a name="Upgrading+System+Catalogs"></a>
+<a name="N100D7"></a><a name="Upgrading+System+Catalogs"></a>
<h2 class="boxed">Upgrading System Catalogs</h2>
<div class="section">
<div class="note">
Modified: websites/production/db/content/derby/quick_start.html
==============================================================================
--- websites/production/db/content/derby/quick_start.html (original)
+++ websites/production/db/content/derby/quick_start.html Sat Sep 9 23:49:09
2017
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
<title>Apache Derby: Quick Start</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -157,7 +157,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Apache Derby: Quick Start</h1>
-<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -170,11 +169,10 @@ document.write("Last Published: " + docu
<a href="#Next+Steps+for+Developers">Next Steps for Developers</a>
</li>
</ul>
-</div>
</div>
-<a name="The+Basics"></a>
+<a name="N1000D"></a><a name="The+Basics"></a>
<h2 class="boxed">The Basics</h2>
<div class="section">
<p>
@@ -210,7 +208,7 @@ The resources listed below are intended
</div>
-<a name="Next+Steps+for+Users"></a>
+<a name="N10040"></a><a name="Next+Steps+for+Users"></a>
<h2 class="boxed">Next Steps for Users</h2>
<div class="section">
<p>
@@ -331,7 +329,7 @@ As you learn more about Derby, feel free
</div>
-<a name="Next+Steps+for+Developers"></a>
+<a name="N100CB"></a><a name="Next+Steps+for+Developers"></a>
<h2 class="boxed">Next Steps for Developers</h2>
<div class="section">
<p>
Modified: websites/production/db/content/derby/releases/release-10.0.2.1.html
==============================================================================
--- websites/production/db/content/derby/releases/release-10.0.2.1.html
(original)
+++ websites/production/db/content/derby/releases/release-10.0.2.1.html Sat Sep
9 23:49:09 2017
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
<title>Apache Derby 10.0.2.1 Incubator Release</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
@@ -157,7 +157,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Apache Derby 10.0.2.1 Incubator Release</h1>
-<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -174,9 +173,8 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
-</div>
-<a name="Distributions"></a>
+<a name="N1000D"></a><a name="Distributions"></a>
<h2 class="boxed">Distributions</h2>
<div class="section">
<p>There are three different distributions:</p>
@@ -206,7 +204,7 @@ document.write("Last Published: " + docu
</div>
-<a name="Release+Overview"></a>
+<a name="N1007C"></a><a name="Release+Overview"></a>
<h2 class="boxed">Release Overview</h2>
<div class="section">
<p>Derby is a pure Java relational database engine using standard SQL and
@@ -268,7 +266,7 @@ document.write("Last Published: " + docu
</div>
-<a name="Release+Notes"></a>
+<a name="N100D7"></a><a name="Release+Notes"></a>
<h2 class="boxed">Release Notes</h2>
<div class="section">
<p>Derby version 10.0.2.1</p>
@@ -590,7 +588,7 @@ document.write("Last Published: " + docu
</div>
-<a name="Testing"></a>
+<a name="N10464"></a><a name="Testing"></a>
<h2 class="boxed">Testing</h2>
<div class="section">
<p>Tests were run on the following platforms. Results are listed separately
for each platform.</p>
Modified: websites/production/db/content/derby/releases/release-10.1.1.0.html
==============================================================================
--- websites/production/db/content/derby/releases/release-10.1.1.0.html
(original)
+++ websites/production/db/content/derby/releases/release-10.1.1.0.html Sat Sep
9 23:49:09 2017
@@ -3,8 +3,9 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
+<meta name="generator" content="">
<title>Apache Derby 10.1.1.0 Release</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="../skin/screen.css"
rel="stylesheet">
@@ -157,7 +158,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Apache Derby 10.1.1.0 Release</h1>
-<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -177,8 +177,7 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
-</div>
-<a name="Distributions"></a>
+<a name="N10010"></a><a name="Distributions"></a>
<h2 class="boxed">Distributions</h2>
<div class="section">
<p>Use the links below to download a distribution of Apache Derby from the
archives. It is good practice to <a href="#Verifying+releases">verify the
integrity</a> of the distribution files.</p>
@@ -207,7 +206,7 @@ document.write("Last Published: " + docu
<a class="external"
href="http://archive.apache.org/dist/db/derby/db-derby-10.1.1.0/derby_ui_plugin_1.1.0.zip">derby_ui_plugin_1.1.0.zip</a>
[<a class="external"
href="http://archive.apache.org/dist/db/derby/db-derby-10.1.1.0/derby_ui_plugin_1.1.0.zip.asc">PGP</a>]
[<a class="external"
href="http://archive.apache.org/dist/db/derby/db-derby-10.1.1.0/derby_ui_plugin_1.1.0.zip.md5">MD5</a>]</p>
<p>Please note: both plugins must be installed for full functionality. For
information on installing and using the Derby plugins for Eclipse, please see
the <a href="http://db.apache.org/derby/integrate/plugin_howto.html">Using the
10.1 Core and 1.1 UI Derby plug-ins</a> page.</p>
</div>
-<a name="Release+Overview"></a>
+<a name="N1009C"></a><a name="Release+Overview"></a>
<h2 class="boxed">Release Overview</h2>
<div class="section">
<p>Derby is a pure Java relational database engine using standard SQL and JDBC
as its APIs.</p>
@@ -259,7 +258,7 @@ document.write("Last Published: " + docu
<li>JSR-169, JDBC 2.1, and JDBC 3.0 support</li>
</ul>
</div>
-<a name="Release+Notes"></a>
+<a name="N100F1"></a><a name="Release+Notes"></a>
<h2 class="boxed">Release Notes</h2>
<div class="section">
<p>Derby version 10.1.1.0</p>
@@ -777,7 +776,7 @@ document.write("Last Published: " + docu
</tr>
</table>
</div>
-<a name="Testing"></a>
+<a name="N1059F"></a><a name="Testing"></a>
<h2 class="boxed">Testing</h2>
<div class="section">
<p>Tests were run on the following platforms. Results are listed separately
for each platform.</p>
@@ -853,7 +852,7 @@ document.write("Last Published: " + docu
<p>Tests for a specific platform can be run using the derbyTesting.jar file
that can be found in the lib directory of the -lib or -bin distributions.</p>
<p>Instructions on how to run the tests can be found in the <a
class="external"
href="http://svn.apache.org/repos/asf/db/derby/code/branches/10.1/java/testing/README.htm">testing
README</a>.</p>
</div>
-<a name="Verifying+releases"></a>
+<a name="N1064A"></a><a name="Verifying+releases"></a>
<h2 class="boxed">Verifying releases</h2>
<div class="section">
<p>It is essential that you verify the integrity of the downloaded files using
the PGP and MD5 signatures. MD5 verification ensures the file was not corrupted
during the download process. PGP verification ensures that the file came from a
certain person.</p>
Modified: websites/production/db/content/derby/releases/release-10.1.2.1.html
==============================================================================
--- websites/production/db/content/derby/releases/release-10.1.2.1.html
(original)
+++ websites/production/db/content/derby/releases/release-10.1.2.1.html Sat Sep
9 23:49:09 2017
@@ -3,8 +3,9 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
+<meta name="generator" content="">
<title>Apache Derby 10.1.2.1 Release</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="../skin/screen.css"
rel="stylesheet">
@@ -157,7 +158,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Apache Derby 10.1.2.1 Release</h1>
-<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -185,8 +185,7 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
-</div>
-<a name="Distributions"></a>
+<a name="N10010"></a><a name="Distributions"></a>
<h2 class="boxed">Distributions</h2>
<div class="section">
<p>Use the links below to download a distribution of Apache Derby from the
archives. It is good practice to <a href="#Verifying+releases">verify the
integrity</a> of the distribution files.</p>
@@ -215,7 +214,7 @@ document.write("Last Published: " + docu
<a class="external"
href="http://archive.apache.org/dist/db/derby/db-derby-10.1.2.1/derby_ui_plugin_1.1.0.zip">derby_ui_plugin_1.1.0.zip</a>
[<a class="external"
href="http://archive.apache.org/dist/db/derby/db-derby-10.1.2.1/derby_ui_plugin_1.1.0.zip.asc">PGP</a>]
[<a class="external"
href="http://archive.apache.org/dist/db/derby/db-derby-10.1.2.1/derby_ui_plugin_1.1.0.zip.md5">MD5</a>]</p>
<p>Please note: both plugins must be installed for full functionality. For
information on installing and using the Derby plugins for Eclipse, please see
the <a href="http://db.apache.org/derby/integrate/plugin_howto.html">Using the
10.1 Core and 1.1 UI Derby plug-ins</a> page.</p>
</div>
-<a name="Release+Overview"></a>
+<a name="N1009C"></a><a name="Release+Overview"></a>
<h2 class="boxed">Release Overview</h2>
<div class="section">
<p>Derby is a pure Java relational database engine using standard SQL and JDBC
as its APIs. 10.1.2.1 is a bug fix release providing quality improvements for
Derby 10.1</p>
@@ -264,12 +263,12 @@ document.write("Last Published: " + docu
<li>JSR-169, JDBC 2.1, and JDBC 3.0 support</li>
</ul>
</div>
-<a name="Release+Notes"></a>
+<a name="N100EB"></a><a name="Release+Notes"></a>
<h2 class="boxed">Release Notes</h2>
<div class="section">
<p>Derby version 10.1.2.1 is a bug fix release based on Apache Derby <a
href="http://db.apache.org/derby/releases/release-10.1.1.0.html">10.1.1.0.</a>
In addition to many other bug fixes, this release contains the fix for
DERBY-662 which is a rare but potentially serious data loss issue on case
insensitive file systems such as Windows.</p>
<p>The following reported JIRA issues were fixed in the 10.1.2.1 release:</p>
-<a name="Bugs"></a>
+<a name="N100F7"></a><a name="Bugs"></a>
<h3 class="boxed">Bugs</h3>
<ul>
<li>[<a class="external"
href="http://issues.apache.org/jira/browse/DERBY-626">DERBY-626</a>] - Booting
embedded engine requires read permission to derby.jar be granted for all code
in the stack</li>
@@ -319,7 +318,7 @@ document.write("Last Published: " + docu
<li>[<a class="external"
href="http://issues.apache.org/jira/browse/DERBY-620">DERBY-620</a>] -
BUILDING.txt section 3.2(1): Instructions for finding user home directory are
not reliable</li>
<li>[<a class="external"
href="http://issues.apache.org/jira/browse/DERBY-624">DERBY-624</a>] - Running
derbynetclientmats and derbynetmats requires accessDeclaredMembers permission
to be granted with sane=true</li>
</ul>
-<a name="Improvements"></a>
+<a name="N10210"></a><a name="Improvements"></a>
<h3 class="boxed">Improvements</h3>
<ul>
<li>[<a class="external"
href="http://issues.apache.org/jira/browse/DERBY-419">DERBY-419</a>] - Support
direct execution of derbynet.jar using the -jar option of the VM.</li>
@@ -327,7 +326,7 @@ document.write("Last Published: " + docu
<li>[<a class="external"
href="http://issues.apache.org/jira/browse/DERBY-636">DERBY-636</a>] - Updated
localized messages for Derby 10.1</li>
</ul>
</div>
-<a name="Testing"></a>
+<a name="N10227"></a><a name="Testing"></a>
<h2 class="boxed">Testing</h2>
<div class="section">
<p>Tests were run on the following platforms. Results are listed separately
for each platform.</p>
@@ -388,7 +387,7 @@ document.write("Last Published: " + docu
<p>Tests for a specific platform can be run using the derbyTesting.jar file
that can be found in the lib directory of the -lib or -bin distributions.</p>
<p>Instructions on how to run the tests can be found in the <a
class="external"
href="http://svn.apache.org/repos/asf/db/derby/code/branches/10.1/java/testing/README.htm">testing
README</a>.</p>
</div>
-<a name="Verifying+releases"></a>
+<a name="N102AF"></a><a name="Verifying+releases"></a>
<h2 class="boxed">Verifying releases</h2>
<div class="section">
<p>It is essential that you verify the integrity of the downloaded files using
the PGP and MD5 signatures. MD5 verification ensures the file was not corrupted
during the download process. PGP verification ensures that the file came from a
certain person.</p>
Modified: websites/production/db/content/derby/releases/release-10.1.3.1.html
==============================================================================
--- websites/production/db/content/derby/releases/release-10.1.3.1.html
(original)
+++ websites/production/db/content/derby/releases/release-10.1.3.1.html Sat Sep
9 23:49:09 2017
@@ -3,8 +3,9 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
+<meta name="generator" content="">
<title>Apache Derby 10.1.3.1 Release</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="../skin/screen.css"
rel="stylesheet">
@@ -157,7 +158,6 @@ document.write("Last Published: " + docu
<input value="+a" class="biggerfont" title="Enlarge
text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Apache Derby 10.1.3.1 Release</h1>
-<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -179,13 +179,13 @@ document.write("Last Published: " + docu
<a href="#">DERBY-283</a>
</li>
<li>
-<a href="#-N103C7">DERBY-526</a>
+<a href="#-N103D0">DERBY-526</a>
</li>
<li>
-<a href="#-N103F1">DERBY-1327</a>
+<a href="#-N103FA">DERBY-1327</a>
</li>
<li>
-<a href="#-N1042B">DERBY-541</a>
+<a href="#-N10434">DERBY-541</a>
</li>
</ul>
</li>
@@ -197,8 +197,7 @@ document.write("Last Published: " + docu
</li>
</ul>
</div>
-</div>
-<a name="Distributions"></a>
+<a name="N10010"></a><a name="Distributions"></a>
<h2 class="boxed">Distributions</h2>
<div class="section">
<p>Use the links below to download a distribution of Apache Derby from the
archives. You should <strong>always</strong> <a
href="#Verifying+releases">verify the integrity</a> of distribution files
downloaded from a mirror.</p>
@@ -231,7 +230,7 @@ document.write("Last Published: " + docu
<a class="external"
href="http://archive.apache.org/dist/db/derby/db-derby-10.1.3.1/derby_ui_plugin_1.1.0.zip">derby_ui_plugin_1.1.0.zip</a>
[<a class="external"
href="http://archive.apache.org/dist/db/derby/db-derby-10.1.3.1/derby_ui_plugin_1.1.0.zip.asc">PGP</a>]
[<a class="external"
href="http://archive.apache.org/dist/db/derby/db-derby-10.1.3.1/derby_ui_plugin_1.1.0.zip.md5">MD5</a>]</p>
<p>Please note: both plugins must be installed for full functionality. For
information on installing and using the Derby plugins for Eclipse, please see
the <a href="http://db.apache.org/derby/integrate/plugin_howto.html">Using the
10.1 Core and 1.1 UI Derby plug-ins</a> page.</p>
</div>
-<a name="Release+Overview"></a>
+<a name="N100BC"></a><a name="Release+Overview"></a>
<h2 class="boxed">Release Overview</h2>
<div class="section">
<p>Derby is a pure Java relational database engine using standard SQL and JDBC
as its APIs. 10.1.3.1 is a bug fix release providing quality improvements for
Derby 10.1</p>
@@ -282,13 +281,13 @@ document.write("Last Published: " + docu
<li>JSR-169, JDBC 2.1, and JDBC 3.0 support</li>
</ul>
</div>
-<a name="Release+Notes"></a>
+<a name="N10113"></a><a name="Release+Notes"></a>
<h2 class="boxed">Release Notes</h2>
<div class="section">
<p>Derby version 10.1.3.1 is a bug fix release based on Apache Derby <a
href="http://db.apache.org/derby/releases/release-10.1.2.1.html">10.1.2.1.</a>
</p>
<p>The following reported JIRA issues were fixed in the 10.1.3.1 release:</p>
-<a name="Bugs+Fixed"></a>
+<a name="N1011E"></a><a name="Bugs+Fixed"></a>
<h3 class="boxed">Bugs Fixed</h3>
<ul>
<li>[<a class="external"
href="http://issues.apache.org/jira/browse/DERBY-7">DERBY-7</a>] - Bug in
NULLIF Function</li>
@@ -389,7 +388,7 @@ document.write("Last Published: " + docu
<li>[<a class="external"
href="http://issues.apache.org/jira/browse/DERBY-1392">DERBY-1392</a>] - Corner
case behaviour in RAFContainer#writePage() can cause invalid data to be written
to data files</li>
<li>[<a class="external"
href="http://issues.apache.org/jira/browse/DERBY-1454">DERBY-1454</a>] - DRDA
Protocol Exception when DSS is exactly 32767 in length</li>
</ul>
-<a name="Improvements"></a>
+<a name="N10369"></a><a name="Improvements"></a>
<h3 class="boxed">Improvements</h3>
<ul>
<li>[<a class="external"
href="http://issues.apache.org/jira/browse/DERBY-178">DERBY-178</a>] - Provide
line number information in distribution's class files</li>
@@ -402,7 +401,7 @@ document.write("Last Published: " + docu
<li>[<a class="external"
href="http://issues.apache.org/jira/browse/DERBY-1339">DERBY-1339</a>] -
messages_pt_BR.properties file should not translate Network Server "start" and
"shutdown" commands</li>
<li>[<a class="external"
href="http://issues.apache.org/jira/browse/DERBY-1376">DERBY-1376</a>] - File
java/engine/org/apache/derby/loc/messages_en.properties - Message XSLAT.D</li>
</ul>
-<a class="external" href="http://issues.apache.org/jira/browse/DERBY"></a><a
name="N1039E"></a>
+<a class="external" href="http://issues.apache.org/jira/browse/DERBY"></a><a
name="N103A6"></a>
<h3 class="boxed">DERBY-283</h3>
<p>On IPv6/Ipv4 dual stack windows machines, the network server needs the
following jvm properties to be prefixed while starting the server</p>
<p>PROBLEM:<br>
@@ -416,7 +415,7 @@ document.write("Last Published: " + docu
<br>WORKAROUND:<br>
<br>Start the client and server running on the IPv6 machine with the following
jvm properties.<br>
</p>
-<a name="-N103C7"></a>
+<a name="N103D0"></a><a name="-N103D0"></a>
<h3 class="boxed">DERBY-526</h3>
<p>Network Client URL cannot take the IP Address as host name for IPV6
addresses.</p>
<p>PROBLEM:<br>
@@ -430,7 +429,7 @@ document.write("Last Published: " + docu
<br>WORKAROUND:<br>
<br>Use host name in the URL instead of the IP address or connect with a
datasource instead of URL<br>
</p>
-<a name="-N103F1"></a>
+<a name="N103FA"></a><a name="-N103FA"></a>
<h3 class="boxed">DERBY-1327</h3>
<p>Identity column can be created with wrong and very large start with value
with "J2RE 1.5.0 IBM Windows 32 build pwi32dev-20060412 (SR2)" with JIT on</p>
<p>PROBLEM:<br>
@@ -446,7 +445,7 @@ document.write("Last Published: " + docu
<br>For users of previous releases, the following JIT options can be specified
for the JVM to prevent corruption in identity columns. This does allow recovery
after the problem has occured.<br>
<br>-Xjit:exclude={org/apache/derby/impl/sql/execute/CreateTableConstantAction.executeConstantAction\(Lorg/apache/derby/iapi/sql/Activation\;\)V}<br>
</p>
-<a name="-N1042B"></a>
+<a name="N10434"></a><a name="-N10434"></a>
<h3 class="boxed">DERBY-541</h3>
<p>PROBLEM:<br>
<br> A Derby 10.0 database in a jar cannot be booted against a 10.1(.3)
engine.<br>
@@ -461,7 +460,7 @@ document.write("Last Published: " + docu
<br> Users with 10.0 Derby databases-in-jars can upgrade their 10.0 database
in their jar file to a 10.1 database-in-a-jar by unjarring it, then connecting
to it with a 10.1 version of the Derby engine and the upgrade=true attribute.
The resulting database can then be jarred up again and future connections to
this database using the 10.1 Derby engine will succeed.<br> Users of Derby
versions after 10.2.0.0.376372 should be able to connect to their 10.0 database
with no extra effort.<br>
</p>
</div>
-<a name="Testing"></a>
+<a name="N10463"></a><a name="Testing"></a>
<h2 class="boxed">Testing</h2>
<div class="section">
<p>Tests were run on the following platforms. Results are listed separately
for each platform.</p>
@@ -633,7 +632,7 @@ document.write("Last Published: " + docu
<p>Tests for a specific platform can be run using the derbyTesting.jar file
that can be found in the lib directory of the -lib or -bin distributions.</p>
<p>Instructions on how to run the tests can be found in the <a
class="external"
href="http://svn.apache.org/repos/asf/db/derby/code/branches/10.1/java/testing/README.htm">testing
README</a>.</p>
</div>
-<a name="Verifying+releases"></a>
+<a name="N105F0"></a><a name="Verifying+releases"></a>
<h2 class="boxed">Verifying releases</h2>
<div class="section">
<p>It is essential that you verify the integrity of the downloaded files using
the PGP and MD5 signatures. MD5 verification ensures the file was not corrupted
during the download process. PGP verification ensures that the file came from a
certain person.</p>