提交 42967945 authored 作者: Thomas Mueller's avatar Thomas Mueller

--no commit message

--no commit message
上级 a77601c8
...@@ -46,13 +46,13 @@ Frequently Asked Questions ...@@ -46,13 +46,13 @@ Frequently Asked Questions
Usually, bugs get fixes as they are found. There is a release every few weeks. Usually, bugs get fixes as they are found. There is a release every few weeks.
Here is the list of known and confirmed issues: Here is the list of known and confirmed issues:
</p> </p>
<ul><li>Tomcat and Glassfish 3 sets all static fields (final or non-final) to null when <ul><li>Tomcat and Glassfish 3 set most static fields (final or non-final) to null when
unloading a web application. This can cause a NullPointerException in H2 versions unloading a web application. This can cause a NullPointerException in H2 versions
1.1.107 and older, and may still not work in newer versions. Please report it if you 1.1.107 and older, and may still not work in newer versions. Please report it if you
run into this issue. In Tomcat >= 6.0 this behavior can be disabled by setting the run into this issue. In Tomcat >= 6.0 this behavior can be disabled by setting the
system property org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES system property org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES
to false, however Tomcat may then run out of memory. A known workaround is to to false, however Tomcat may then run out of memory. A known workaround is to
put the h2.jar file in the <code>lib</code> directory. put the h2.jar file in a shared <code>lib</code> directory (common/lib).
</li><li>Some problems have been found with right outer join. Internally, it is converted </li><li>Some problems have been found with right outer join. Internally, it is converted
to left outer join, which does not always produce the same results as other databases to left outer join, which does not always produce the same results as other databases
when used in combination with other joins. when used in combination with other joins.
......
...@@ -117,7 +117,7 @@ via PayPal: ...@@ -117,7 +117,7 @@ via PayPal:
</li><li>Pete Haidinyak, USA </li><li>Pete Haidinyak, USA
</li><li>William Osmond, USA </li><li>William Osmond, USA
</li><li>Joachim Ansorg, Germany </li><li>Joachim Ansorg, Germany
</li><li>Oliver Soerensen, Germany
</li></ul> </li></ul>
<!-- [close] { --></div></td></tr></table><!-- } --><!-- analytics --></body></html> <!-- [close] { --></div></td></tr></table><!-- } --><!-- analytics --></body></html>
......
...@@ -38,12 +38,12 @@ Welcome to H2, the Java SQL database. The main feature of H2 are: ...@@ -38,12 +38,12 @@ Welcome to H2, the Java SQL database. The main feature of H2 are:
<tr><td style="border: 0px; background-color: #eee;"> <tr><td style="border: 0px; background-color: #eee;">
<a href="http://www.h2database.com/h2-setup-${versionDate}.exe"><img style="border: 1px #00f solid;" src="images/download.png" alt="download" /></a> <a href="http://www.h2database.com/h2-setup-${versionDate}.exe"><img style="border: 1px #00f solid;" src="images/download.png" alt="download" /></a>
</td><td style="vertical-align: middle; border: 0px; background-color: #eee;"> </td><td style="vertical-align: middle; border: 0px; background-color: #eee;">
<a href="http://www.h2database.com/h2-setup-${versionDate}.exe">Windows Installer (3.1 MB)</a> <a href="http://www.h2database.com/h2-setup-${versionDate}.exe">Windows Installer (3.3 MB)</a>
</td></tr> </td></tr>
<tr><td style="border: 0px; background-color: #eee;"> <tr><td style="border: 0px; background-color: #eee;">
<a href="http://www.h2database.com/h2-${versionDate}.zip"><img style="border: 1px #00f solid;" src="images/download.png" alt="download" /></a> <a href="http://www.h2database.com/h2-${versionDate}.zip"><img style="border: 1px #00f solid;" src="images/download.png" alt="download" /></a>
</td><td style="vertical-align: middle; border: 0px; background-color: #eee;"> </td><td style="vertical-align: middle; border: 0px; background-color: #eee;">
<a href="http://www.h2database.com/h2-${versionDate}.zip">All Platforms (zip, 4.7 MB)</a> <a href="http://www.h2database.com/h2-${versionDate}.zip">All Platforms (zip, 4.9 MB)</a>
</td></tr> </td></tr>
<tr><td style="border: 0px; background-color: #eee;" colspan="2"> <tr><td style="border: 0px; background-color: #eee;" colspan="2">
<a href="download.html">All Downloads (including Stable)</a> <a href="download.html">All Downloads (including Stable)</a>
......
...@@ -419,7 +419,10 @@ public abstract class Prepared { ...@@ -419,7 +419,10 @@ public abstract class Prepared {
protected SQLException setRow(SQLException ex, int rowId, String values) { protected SQLException setRow(SQLException ex, int rowId, String values) {
if (ex instanceof JdbcSQLException) { if (ex instanceof JdbcSQLException) {
JdbcSQLException e = (JdbcSQLException) ex; JdbcSQLException e = (JdbcSQLException) ex;
StringBuffer buff = new StringBuffer(sqlStatement); StringBuffer buff = new StringBuffer();
if (sqlStatement != null) {
buff.append(sqlStatement);
}
buff.append(" -- "); buff.append(" -- ");
if (rowId > 0) { if (rowId > 0) {
buff.append("row #").append(rowId + 1).append(" "); buff.append("row #").append(rowId + 1).append(" ");
......
...@@ -55,7 +55,8 @@ public class PageBtreeIndex extends BaseIndex { ...@@ -55,7 +55,8 @@ public class PageBtreeIndex extends BaseIndex {
int test; int test;
// } else if (store.isNew()) { // } else if (store.isNew()) {
// // the system table for a new database // // the system table for a new database
// PageBtreeLeaf root = new PageBtreeLeaf(this, headPos, Page.ROOT, store.createDataPage()); // PageBtreeLeaf root = new PageBtreeLeaf(this,
// headPos, Page.ROOT, store.createDataPage());
// store.updateRecord(root, true, root.data); // store.updateRecord(root, true, root.data);
} else { } else {
rowCount = getPage(headPos).getRowCount(); rowCount = getPage(headPos).getRowCount();
......
...@@ -56,7 +56,8 @@ public class PageScanIndex extends BaseIndex implements RowIndex { ...@@ -56,7 +56,8 @@ public class PageScanIndex extends BaseIndex implements RowIndex {
int test; int test;
// } else if (store.isNew()) { // } else if (store.isNew()) {
// // the system table for a new database // // the system table for a new database
// PageDataLeaf root = new PageDataLeaf(this, headPos, Page.ROOT, store.createDataPage()); // PageDataLeaf root = new PageDataLeaf(this, headPos,
// Page.ROOT, store.createDataPage());
// store.updateRecord(root, true, root.data); // store.updateRecord(root, true, root.data);
} else { } else {
PageData root = getPage(headPos); PageData root = getPage(headPos);
......
...@@ -515,12 +515,12 @@ public class JdbcDatabaseMetaData extends TraceObject implements DatabaseMetaDat ...@@ -515,12 +515,12 @@ public class JdbcDatabaseMetaData extends TraceObject implements DatabaseMetaDat
* @return the procedures * @return the procedures
* @throws SQLException if the connection is closed * @throws SQLException if the connection is closed
*/ */
public ResultSet getProcedures(String catalog, String schemaPattern, public ResultSet getProcedures(String catalogPattern, String schemaPattern,
String procedureNamePattern) throws SQLException { String procedureNamePattern) throws SQLException {
try { try {
if (isDebugEnabled()) { if (isDebugEnabled()) {
debugCode("getProcedures(" debugCode("getProcedures("
+quote(catalog)+", " +quote(catalogPattern)+", "
+quote(schemaPattern)+", " +quote(schemaPattern)+", "
+quote(procedureNamePattern)+");"); +quote(procedureNamePattern)+");");
} }
...@@ -539,7 +539,7 @@ public class JdbcDatabaseMetaData extends TraceObject implements DatabaseMetaDat ...@@ -539,7 +539,7 @@ public class JdbcDatabaseMetaData extends TraceObject implements DatabaseMetaDat
+ "AND ALIAS_SCHEMA LIKE ? " + "AND ALIAS_SCHEMA LIKE ? "
+ "AND ALIAS_NAME LIKE ? " + "AND ALIAS_NAME LIKE ? "
+ "ORDER BY PROCEDURE_SCHEM, PROCEDURE_NAME, NUM_INPUT_PARAMS"); + "ORDER BY PROCEDURE_SCHEM, PROCEDURE_NAME, NUM_INPUT_PARAMS");
prep.setString(1, getCatalogPattern(catalog)); prep.setString(1, getCatalogPattern(catalogPattern));
prep.setString(2, getSchemaPattern(schemaPattern)); prep.setString(2, getSchemaPattern(schemaPattern));
prep.setString(3, getPattern(procedureNamePattern)); prep.setString(3, getPattern(procedureNamePattern));
return prep.executeQuery(); return prep.executeQuery();
......
...@@ -235,8 +235,10 @@ trace.setLevel(TraceSystem.DEBUG); ...@@ -235,8 +235,10 @@ trace.setLevel(TraceSystem.DEBUG);
cols.add(new Column("TABLE", Value.INT)); cols.add(new Column("TABLE", Value.INT));
cols.add(new Column("COLUMNS", Value.STRING)); cols.add(new Column("COLUMNS", Value.STRING));
int headPos = getSystemRootPageId(); int headPos = getSystemRootPageId();
// pageTable = database.getMainSchema().createTable("PAGE_INDEX", 0, cols, true, false, headPos); // pageTable = database.getMainSchema().createTable(
// pageIndex = (PageScanIndex) pageTable.getScanIndex(database.getSystemSession()); // "PAGE_INDEX", 0, cols, true, false, headPos);
// pageIndex = (PageScanIndex) pageTable.getScanIndex(
// database.getSystemSession());
} }
private void initLogs() { private void initLogs() {
......
...@@ -93,6 +93,20 @@ public class Shell { ...@@ -93,6 +93,20 @@ public class Shell {
this.err = err; this.err = err;
} }
/**
* Redirects the input and output. By default, System.in, out and err are
* used.
*
* @param reader the input stream reader to use
* @param out the output stream to use
* @param err the output error stream to use
*/
public void setStreams(BufferedReader reader, PrintStream out, PrintStream err) {
this.reader = reader;
this.out = out;
this.err = err;
}
/** /**
* Run the shell tool with the given command line settings. * Run the shell tool with the given command line settings.
* *
...@@ -145,7 +159,9 @@ public class Shell { ...@@ -145,7 +159,9 @@ public class Shell {
showHelp(); showHelp();
} }
String statement = null; String statement = null;
if (reader == null) {
reader = new BufferedReader(new InputStreamReader(in)); reader = new BufferedReader(new InputStreamReader(in));
}
while (true) { while (true) {
try { try {
if (conn == null) { if (conn == null) {
......
...@@ -283,14 +283,20 @@ java org.h2.test.TestAll timer ...@@ -283,14 +283,20 @@ java org.h2.test.TestAll timer
/* /*
select 1 from dual a where 1 in(select 1 from dual b
where 1 in(select 1 from dual c where a.x=1));
http://www.marciowb.net/blog/2008/08/quickly-using-h2-database-with
http://blogs.sun.com/theaquarium/entry/h2_database_with_glassfish
http://blog.flexive.org/2008/12/05/porting-flexive-to-the-h2-database/
test performance with log=2 test performance with log=2
maybe make log=2 the default option maybe make log=2 the default option
TRANSACTION_ID() TRANSACTION_ID()
select 1 from dual a where 1 in(select 1 from dual b
where 1 in(select 1 from dual c where a.x=1));
use 127.0.0.1 if other addresses don't work use 127.0.0.1 if other addresses don't work
select for update in mvcc mode: only lock the selected records? select for update in mvcc mode: only lock the selected records?
...@@ -300,7 +306,6 @@ JCR: for each node type, create a table; one 'dynamic' table with parameter; ...@@ -300,7 +306,6 @@ JCR: for each node type, create a table; one 'dynamic' table with parameter;
<link rel="icon" type="image/png" href="/path/image.png"> <link rel="icon" type="image/png" href="/path/image.png">
create a short 4 pages documentation create a short 4 pages documentation
http://blog.flexive.org/2008/12/05/porting-flexive-to-the-h2-database/
postgresql generate_series? postgresql generate_series?
is in-memory scan index re-using ids? is in-memory scan index re-using ids?
don't store default values (store a special value) don't store default values (store a special value)
......
...@@ -582,3 +582,4 @@ bot jot delicious rife appenders circles spelling cash sky ecm nuxeo poland ...@@ -582,3 +582,4 @@ bot jot delicious rife appenders circles spelling cash sky ecm nuxeo poland
opengeospatial sfs symmetric obsolete failing parenthesis unloading refreshed opengeospatial sfs symmetric obsolete failing parenthesis unloading refreshed
grails reloading slightly accepting deploying conflicting recovered counters grails reloading slightly accepting deploying conflicting recovered counters
versus extracts squirrel misdirected rle looking arc addressed european versus extracts squirrel misdirected rle looking arc addressed european
soerensen
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论