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

--no commit message

--no commit message
上级 495916ff
......@@ -30,6 +30,8 @@ Build
Translating</a><br />
<a href="#providing_patches">
Providing Patches</a><br />
<a href="#support">
Reporting Problems or Requests</a><br />
<a href="#automated">
Automated Build</a><br />
<a href="#railroad">
......@@ -212,6 +214,45 @@ multiple-licensed under the H2 License, version 1.0, and under the
Eclipse Public License, version 1.0 (http://h2database.com/html/license.html)."
</p>
<h2 id="support">Reporting Problems or Requests</h2>
<p>
Please consider the following checklist if you have a question, want to report a problem,
or if you have a feature request:
</p>
<ul><li>Feature requests are always welcome, even if the feature is already on the
<a href="roadmap.html">roadmap</a>. Your mail will help prioritize feature requests.
If you urgently need a feature, consider <a href="#providing_patches">providing a patch</a>.
</li><li>Before posting problems, check the
<a href="faq.html">FAQ</a> and do a <a href="http://google.com">Google search</a>.
</li><li>When got an unexpected exception, please try the
<a href="sourceError.html">Error Analyzer tool</a>. If this doesn't help,
please report the problem, including the complete error message and stack trace,
and the root cause stack trace(s).
</li><li>When sending source code, please use a public web clipboard such as
<a href="http://pastebin.com">Pastebin</a>,
<a href="http://cl1p.net">Cl1p</a>, or
<a href="http://www.mysticpaste.com/new">Mystic Paste</a>
to avoid formatting problems.
Please keep test cases as simple and short as possible,
but so that the problem can still be reproduced.
Method that simply call other methods should be avoided,
as well as unnecessary exception handling.
Please use the JDBC API and no external tools or libraries.
The test should include all required initialization code, and
should be started with the main method.
</li><li>For large attachments, use a public temporary storage such as
<a href="http://rapidshare.com">Rapidshare</a>.
</li><li>Google Group versus issue tracking:
Use the
<a href="http://groups.google.com/group/h2-database">Google Group</a>
for questions or if you are not sure it's a bug.
If you are sure it's a bug, you can create an
<a href="http://code.google.com/p/h2database/issues/list">issue</a>,
but you don't need to (sending an email to the group is enough).
Please note that only few people monitor the issue tracking system.
</li><li>It may take a few days to get an answers. Please do not double post.
</li></ul>
<h2 id="automated">Automated Build</h2>
<p>
This build process is automated and runs regularly.
......
......@@ -18,14 +18,24 @@ Change Log
<h1>Change Log</h1>
<h2>Next Version (unreleased)</h2>
<ul><li>Page store: a rollback of a relatively large transaction could fail with an ArrayIndexOutOfBoundsException
<ul><li>The ChangeFileEncryption and Backup tools will now fail with an exception
if the database is still in use.
</li><li>CSVREAD: when reading the column names from the CSV file, column names that contain
no special characters are considered case insensitive now.
</li><li>Optimization index conditions of the form 'column=NULL' (which is always false; unlike 'column IS NULL').
</li><li>Script command and tool: the primary key constraint is now listed before inserting the data.
This will result in a smaller database when using the page store.
</li><li>Statements with IN(..) conditions could produce the wrong result when using views or nested select statements.
Example: index on id; index on name; query: select * from (select * from test) where id=1 and name in('a', 'b').
select * from (select * from test) where id=1 and name in('Hello', 'World').
</li><li>Page store: a rollback of a relatively large transaction could fail with an ArrayIndexOutOfBoundsException
or a 'row not found' exception in the PageBtreeIndex in some cases.
</li><li>JaQu: the decompiler has been improved, and a few test cases already work. It is still incomplete however.
</li><li>LIKE: any letter is now allowed after the escape character (which is still '\' by default).
Previously, an exception was thrown (unlike other databases) if it was not the escape character, '_' or '%'.
If the escape character appears at the end of the pattern, the result is it is ignored (like PostgreSQL and MS SQL Server).
</li><li>The reserve heap memory is no longer used.
</li><li>Fixed NullPointerException in Database.checkpoint().
</li><li>Database.checkpoint() could throw a NullPointerException.
</li></ul>
<h2>Version 1.2.125 (2009-12-06)</h2>
......
......@@ -17,6 +17,8 @@ Frequently Asked Questions
<h1>Frequently Asked Questions</h1>
<a href="#support">
I Have a Problem or Feature Request</a><br />
<a href="#known_bugs">
Are there Known Bugs? When is the Next Release?</a><br />
<a href="#open_source">
......@@ -41,6 +43,11 @@ Frequently Asked Questions
Is the GCJ Version Stable? Faster?</a><br />
<a href="#translate">
How to Translate this Project?</a><br />
<h3 id="support">I Have a Problem or Feature Request</h3>
<p>
Please read the <a href="build.html#support">support checklist</a>.
</p>
<h3 id="known_bugs">Are there Known Bugs? When is the Next Release?</h3>
<p>
......
......@@ -899,20 +899,14 @@ The initial lock timeout (that is the timeout used for new connections) can be s
<h2 id="database_file_layout">Database File Layout</h2>
<p>
There are a number of files created for persistent databases. Unlike some other databases,
not every table and/or index is stored in its own file. Instead, usually only the following files are created:
a data file, an index file, a log file, and a database lock file (exists only while the database is in use).
In addition to that, a file is created for each large object (CLOB/BLOB) larger than a certain size,
and temporary files for large result sets.
If the database trace option is enabled, trace files are created.
The following files can be created by the database:
The following files are created for persistent databases:
</p>
<table><tr><th>File Name</th><th>Description</th><th>Number of Files</th></tr>
<tr><td class="notranslate">
test.h2.db
</td><td>
Database file.<br />
Contains the data and index data for all tables.<br />
Database file (H2 version 1.2.x).<br />
Contains the transaction log, indexes, and data for all tables.<br />
Format: <code>&lt;database&gt;.h2.db</code>
</td><td>
1 per database
......@@ -920,7 +914,7 @@ The following files can be created by the database:
<tr><td class="notranslate">
test.data.db
</td><td>
Data file.<br />
Data file (H2 version 1.1.x).<br />
Contains the data for all tables.<br />
Format: <code>&lt;database&gt;.data.db</code>
</td><td>
......@@ -929,8 +923,8 @@ The following files can be created by the database:
<tr><td class="notranslate">
test.index.db
</td><td>
Index file.<br />
Contains the data for all (b tree) indexes.<br />
Index file (H2 version 1.1.x).<br />
Contains the data for all (b-tree) indexes.<br />
Format: <code>&lt;database&gt;.index.db</code>
</td><td>
1 per database
......@@ -938,7 +932,7 @@ The following files can be created by the database:
<tr><td class="notranslate">
test.0.log.db
</td><td>
Transaction log file.<br />
Transaction log file (H2 version 1.1.x).<br />
The transaction log is used for recovery.<br />
Format: <code>&lt;database&gt;.&lt;id&gt;.log.db</code>
</td><td>
......@@ -948,7 +942,7 @@ The following files can be created by the database:
test.lock.db
</td><td>
Database lock file.<br />
Exists only while the database is open.<br />
Automatically (re-)created while the database is in use.<br />
Format: <code>&lt;database&gt;.lock.db</code>
</td><td>
1 per database
......@@ -956,21 +950,21 @@ The following files can be created by the database:
<tr><td class="notranslate">
test.trace.db
</td><td>
Trace file.<br />
Trace file (if the trace option is enabled).<br />
Contains trace information.<br />
Format: <code>&lt;database&gt;.trace.db</code><br />
If the file is too big, it is renamed to <code>&lt;database&gt;.trace.db.old</code>
Renamed to <code>&lt;database&gt;.trace.db.old</code> is too big.
</td><td>
1 per database
0 or 1 per database
</td></tr>
<tr><td class="notranslate">
test.lobs.db/1.t15.lob.db
test.lobs.db/*
</td><td>
Large object.<br />
Contains the data for BLOB or CLOB values.<br />
Directory containing one file for each<br />
BLOB or CLOB value larger than a certain size.<br />
Format: <code>&lt;id&gt;.t&lt;tableId&gt;.lob.db</code>
</td><td>
1 per value
1 per large object
</td></tr>
<tr><td class="notranslate">
test.123.temp.db
......@@ -1734,7 +1728,7 @@ The amount of memory used for caching can be changed using the setting
Also included is an experimental second level soft reference cache. Rows in this cache are only garbage collected
on low memory. By default the second level cache is disabled. To enable it,
use the prefix <code>SOFT_</code>. Example: <code>jdbc:h2:~/test;CACHE_TYPE=SOFT_LRU</code>.
The cache might not actually improve performance. If you plan to use it,
The cache might not actually improve performance. If you plan to use it,
please run your own test cases first.
</p><p>
To get information about page reads and writes, and the current caching algorithm in use,
......
......@@ -94,8 +94,8 @@ via PayPal:
<ul><li><a href="http://www.netsuxxess.de">NetSuxxess GmbH, Germany</a>
</li><li><a href="http://pokercopilot.com">Poker Copilot, Steve McLeod, Germany</a>
</li><li><a href="http://skycash.com">SkyCash, Poland</a>
</li><li><a href="http://lumber-mill.co.jp">Lumber-mill, Inc., Japan</a>
</li><li>Donald Bleyl, USA
</li><li>lumber-mill.co.jp, Japan
</li><li>Frank Berger, Germany
</li><li>Ashwin Jayaprakash, USA
</li><li>Florent Ramiere, France
......
......@@ -466,6 +466,7 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li><li>Move away from system properties where possible.
</li><li>Database file lock: detect hibernate / standby / very slow threads (compare system time).
</li><li>Automatic detection of redundant indexes.
</li><li>If the database URL ends with ";INIT=&lt;url&gt;" then the SQL script from the given file or URL is executed (the user name must have admin rights). Example URL: jdbc:h2:mem:test;INIT=~/init.sql
</li></ul>
<h2>Not Planned</h2>
......
......@@ -7,7 +7,7 @@ Initial Developer: H2 Group
-->
<html><head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Online Error Analyzer</title>
<title>Error Analyzer</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<style type="text/css">
body {
......@@ -188,7 +188,7 @@ function sizeTextArea() {
</head>
<body style="margin:20px" onresize="sizeTextArea();" onload="sizeTextArea();" >
<h1>Online Error Analyzer</h1>
<h1>Error Analyzer</h1>
<b><a href="../html/main.html">Home</a></b><br />
<h2>
<a href="javascript:select('input')" id = "inputTab">Input</a>&nbsp;
......@@ -197,7 +197,7 @@ function sizeTextArea() {
</h2>
<hr/>
<div id = "input">
<p>Fill in the error message and stack trace and click on 'Details' or 'Source Code': </p>
<p>Paste the error message and stack trace below and click on 'Details' or 'Source Code': </p>
<textarea id = "error" cols="100" style="width: 100%; overflow: auto;" rows="20"
onChange="convert()"
onSelect="convert()"
......
......@@ -8,6 +8,22 @@ package org.h2.constant;
/**
* This class defines the error codes used for SQL exceptions.
* Error messages are formatted as follows:
* <pre>
* { error message (possibly translated; may include quoted data) }
* { error message in English if different }
* { SQL statement if applicable }
* { [ error code - build number ] }
* </pre>
* Example:
* <pre>
* Syntax error in SQL statement "SELECT * FORM[*] TEST ";
* SQL statement: select * form test [42000-125]
* </pre>
* The [*] marks the position of the syntax error
* (FORM instead of FROM in this case).
* The error code is 42000, and the build number is 125,
* meaning version 1.2.125.
*/
public class ErrorCode {
......
......@@ -298,19 +298,20 @@ java org.h2.test.TestAll timer
/*
script: create primary key before inserting data
change client version (identity_scope problem)
readonly database: throw exception if lock file exists
add performance analysis tool to H2 Console
template for test case.
drop table test;
create table test(id int) as select x from system_range(1, 10);
insert into test select null from system_range(1, 2000);
create index idx_id on test(id);
analyze;
select * from test t1, test t2 where t1.id = t2.id;
readonly database: throw exception if lock file exists
console: blob: write 'binary' and '(... bytes)'
504b0304000000... (binary, 3015712 bytes)
DROP TABLE IF EXISTS TEST;
CREATE TABLE TEST(ID INT PRIMARY KEY, data blob);
INSERT INTO TEST VALUES(1, SECURE_RAND(100000));
SELECT * FROM TEST ORDER BY ID;
outer join bug
......
......@@ -790,8 +790,8 @@ public class TestResultSet extends TestBase {
for (String s : TimeZone.getAvailableIDs()) {
TimeZone zone = TimeZone.getTimeZone(s);
long rawOffsetDiff = regular.getTimeZone().getRawOffset() - zone.getRawOffset();
// must not be the same timezone, and must not be 1 day apart
// (as for Pacific/Auckland and Etc/GMT+12)
// must not be the same timezone (not 0 h and not 24 h difference
// as for Pacific/Auckland and Etc/GMT+12)
if (rawOffsetDiff != 0 && rawOffsetDiff != 1000 * 60 * 60 * 24) {
if (regular.getTimeZone().getOffset(testTime) != zone.getOffset(testTime)) {
other = Calendar.getInstance(zone);
......
Tips for email contributors
* Feature requests are always welcome, even if the feature is already on the roadmap.
Your mail will help prioritize feature requests.
If you urgently need a feature, consider providing a patch.
* Bugs: include the complete error message and stack trace, including the root cause stack traces.
*
Sending source code: to avoid formatting problems, consider using a public web clipboard such as
http://pastebin.com http://cl1p.net or http://www.mysticpaste.com/new
* For large attachments, use a public...
Rapidshare.com
* Issue tracking versus emails:
You don't need to create issue reports, sending an email to the group is enough.
If you want, you can create an issue.
* Keep your test cases and email as short as possible.
Specially when creating test cases, please keep the code as simple and short as possible,
but so that the problem can still be reproduced.
Method that simply call other methods should be avoided,
as well as unnecessary exception handling.
* It may take a few days to get your answers.
-----------------
Benchmark:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论