提交 97f727af authored 作者: Thomas Mueller's avatar Thomas Mueller

Documentation.

上级 c7198689
...@@ -1696,7 +1696,7 @@ The following options are supported: ...@@ -1696,7 +1696,7 @@ The following options are supported:
""lineSeparator"", ""null"", ""rowSeparator"" (not set by default), ""lineSeparator"", ""null"", ""rowSeparator"" (not set by default),
""preserveWhitespace"" (true or false; disabled by default). ""preserveWhitespace"" (true or false; disabled by default).
For a newline or other special character, use STRINGDECODE as in the example above. For a newline or other special character, use STRINGDECODE as in the example above.
A space needs to be escaped with a backslash (""'\ '""), and A space needs to be escaped with a backslash (""'\ '""), and
a backslash needs to be escaped with another backslash (""'\\'""). a backslash needs to be escaped with another backslash (""'\\'"").
All other characters are not to be escaped, that means All other characters are not to be escaped, that means
newline and tab characters are written as such. newline and tab characters are written as such.
......
...@@ -18,13 +18,17 @@ Change Log ...@@ -18,13 +18,17 @@ Change Log
<h1>Change Log</h1> <h1>Change Log</h1>
<h2>Next Version (unreleased)</h2> <h2>Next Version (unreleased)</h2>
<ul><li>-
</li></ul>
<h2>Version 1.3.159 (2011-08-12)</h2>
<ul><li>Creating a temporary table with the option 'transactional' will now also create the indexes <ul><li>Creating a temporary table with the option 'transactional' will now also create the indexes
in transactional mode, if the indexes are included in the 'create table' statement as follows: in transactional mode, if the indexes are included in the 'create table' statement as follows:
"create local temporary table temp(id int primary key, name varchar, constraint x index(name)) transactional". "create local temporary table temp(id int primary key, name varchar, constraint x index(name)) transactional".
</li><li>The database file size grows now 35%, but at most 256 MB at a time. </li><li>The database file size grows now 35%, but at most 256 MB at a time.
</li><li>Improved error message on network configuration problems. </li><li>Improved error message on network configuration problems.
</li><li>The build now support an offline build using ./build.sh offline. </li><li>The build now support an offline build using ./build.sh offline.
This will list the required dependencies if jar files are missing. This will list the required dependencies if jar files are missing.
</li><li>The BLOB / CLOB data was dropped a little bit before the table was dropped. </li><li>The BLOB / CLOB data was dropped a little bit before the table was dropped.
This could cause "lob not found" errors when the process was killed while a table was dropped. This could cause "lob not found" errors when the process was killed while a table was dropped.
</li><li>"group_concat(distinct ...)" did not work correctly in a view or subquery (the 'distinct' was lost). Example: </li><li>"group_concat(distinct ...)" did not work correctly in a view or subquery (the 'distinct' was lost). Example:
...@@ -33,13 +37,13 @@ Change Log ...@@ -33,13 +37,13 @@ Change Log
"h2.urlMap", which points to a properties file with database URL mappings. "h2.urlMap", which points to a properties file with database URL mappings.
</li><li>When using InputStream.skip, trying to read past the end of a BLOB failed with </li><li>When using InputStream.skip, trying to read past the end of a BLOB failed with
the exception "IO Exception: Missing lob entry: ..." [90028-...]. the exception "IO Exception: Missing lob entry: ..." [90028-...].
</li><li>The in-memory file system "memFS:" now has limitted support for directories. </li><li>The in-memory file system "memFS:" now has limited support for directories.
</li><li>To test recovery, append ;RECOVER_TEST=64 to the database URL. </li><li>To test recovery, append ;RECOVER_TEST=64 to the database URL.
This will simulate an application crash after each 64 writes to the database file. This will simulate an application crash after each 64 writes to the database file.
A log file named databaseName.h2.db.log is created that lists the operations. A log file named databaseName.h2.db.log is created that lists the operations.
The recovery is tested using an in-memory file system, that means it may require a larger heap setting. The recovery is tested using an in-memory file system, that means it may require a larger heap setting.
</li><li>Converting a hex string to a byte array is now faster. </li><li>Converting a hex string to a byte array is now faster.
</li><li>The SQL statement "shutdown defag" could corrupt the database if the process was killed </li><li>The SQL statement "shutdown defrag" could corrupt the database if the process was killed
while the shutdown was in progress. The same problem could occur when the database while the shutdown was in progress. The same problem could occur when the database
setting "defrag_always" was used. setting "defrag_always" was used.
</li></ul> </li></ul>
...@@ -786,59 +790,5 @@ Change Log ...@@ -786,59 +790,5 @@ Change Log
</li><li>For unencrypted databases, the automatic upgrade temporary script file is now unencrypted again. </li><li>For unencrypted databases, the automatic upgrade temporary script file is now unencrypted again.
</li></ul> </li></ul>
<h2>Version 1.2.140 (2010-07-25)</h2>
<ul><li>The default MAX_LOG_SIZE is now 16 MB instead of 2 MB. Some uses cases are 3 times faster now.
</li><li>Improved cache memory usage calculation.
</li><li>Only resources that are actually used are loaded in memory.
This can reduce the memory usage by about 400 KB.
</li><li>Profiling: the jar file can now be installed as an agent using
java -javaagent:h2*.jar - this was be used to more accurately calculate the memory footprint of the cache.
It has no effect when using H2 (using this feature in an application is not needed and not recommended).
</li><li>The cache was not used efficiently when reading
(behaving like a FIFO cache instead of an LRU cache).
</li><li>Storing lobs in the database has been changed. It is now faster.
Unfortunately, the change is not backward compatible; if you have used h2.lobInDatabase before
you will need to re-build the database.
</li><li>SHUTDOWN COMPACT is now faster.
</li><li>H2 Console: requesting the status did not always show the window on top of others.
</li><li>H2 Console: on some system, the browser windows got opened when requesting a new one.
</li><li>The built-in profiling tool now uses a default stack depth of 32 elements and a default interval of 10 ms.
</li><li>Database files now grows in 1 MB blocks (and at least 20% at a time),
instead of always 256 KB. This speeds up loading a new database.
</li><li>H2 Console: new built-in command @sleep to help profile another session.
</li><li>For improved performance, LOG=0 and LOG=1 are again supported.
LOG=0 means the transaction log is disabled completely (fastest; for loading a database).
LOG=1 means the transaction log is enabled, but FileDescriptor.sync is disabled (if no protection against power failure is required).
LOG=2 is the default (transaction log is enabled, FileDescriptor.sync for each checkpoint).
</li><li>After deleting a lot of data (for example by dropping or altering tables, or indexes,
or after a large transaction), opening a large database was very slow. Fixed.
</li><li>When killing the process after creating and dropping many tables (specially temporary tables),
the database could not be opened sometimes.
</li><li>CAST(NULL AS ...) doesn't forget the data type, precision, and scale any longer.
</li><li>Experimental support for recursive queries (see 'Advanced' - 'Recursive Queries' for details).
</li><li>Problems with JDK 1.6.0_18 have been reports in the class StringUtils.quoteRemarkSQL. This method is now changed.
</li><li>The "small jar" distribution did not include the CompressTool,
which was required for some operations. Fixed.
</li><li>The build tool now supports (minimalistic) shell mode, started using ./build.sh -
</li><li>IS NULL comparison with nested queries and linked tables did not work.
Example: select * from (select x from test) where x is null.
</li><li>Support for null-safe equals. This includes the ANSI SQL standard syntax
A IS [NOT] DISTINCT FROM B as well as the shorter A IS [NOT] B.
</li><li>Primary key violations threw a strange exception message when using a single column INT or BIGINT key.
</li><li>EXPLAIN ANALYZE now also lists the number of pages read from the file.
</li><li>Memory mapped files: There was a bug in version 1.2.139 so that memory mapped files
could only be used together with split, for example: split:nioMapped: - the problem is now solved.
It is still a good idea to use split:nioMapped: to work around the 2 GB limitation of memory mapped files.
</li><li>Memory mapped files: the system property h2.nioCleanerHack is now disabled by default
because it was not always working as expected. Now System.gc() is used in a loop until the
buffer is garbage collected. This of course is also not a nice solution, but the only one known to work.
See also http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4724038
</li><li>Bugfixes for the automatic 1.1 db migration.
</li><li>If an old 1.1 database file version is found on connect, it is now possible to let the old h2
classes (v 1.2.128) connect to the database. The automatic upgrade .jar file must be present, and the url
must contain NO_UPGRADE=TRUE
</li><li>The automatic upgrade temporary script file is now encrypted.
</li></ul>
<!-- [close] { --></div></td></tr></table><!-- } --><!-- analytics --></body></html> <!-- [close] { --></div></td></tr></table><!-- } --><!-- analytics --></body></html>
...@@ -40,7 +40,7 @@ JaQu ...@@ -40,7 +40,7 @@ JaQu
<h2 id="what_is_jaqu">What is JaQu</h2> <h2 id="what_is_jaqu">What is JaQu</h2>
<p> <p>
Note: This project is currently in maintenance mode. Note: This project is currently in maintenance mode.
A friendly fork of JaQu is A friendly fork of JaQu is
<a href="http://iciql.com">available under the name iciql</a>. <a href="http://iciql.com">available under the name iciql</a>.
</p> </p>
<p> <p>
......
...@@ -365,7 +365,7 @@ Open source collection of JavaScript modules. ...@@ -365,7 +365,7 @@ Open source collection of JavaScript modules.
<p><a href="http://jaspa.upv.es"> <p><a href="http://jaspa.upv.es">
Jaspa</a><br /> Jaspa</a><br />
JAva SPAtial. Jaspa potentially brings around 200 spatial functions. Java Spatial. Jaspa potentially brings around 200 spatial functions.
</p> </p>
<p><a href="http://code.google.com/p/javasimon"> <p><a href="http://code.google.com/p/javasimon">
......
...@@ -632,9 +632,9 @@ In this case, two sequence values are allocated instead of just one. ...@@ -632,9 +632,9 @@ In this case, two sequence values are allocated instead of just one.
<h2 id="using_jooq">Using H2 with jOOQ</h2> <h2 id="using_jooq">Using H2 with jOOQ</h2>
<p> <p>
jOOQ adds a thin layer on top of JDBC, allowing for type-safe SQL construction, jOOQ adds a thin layer on top of JDBC, allowing for type-safe SQL construction,
including advanced SQL, stored procedures and advanced data types. including advanced SQL, stored procedures and advanced data types.
jOOQ takes your database schema as a base for code generation. jOOQ takes your database schema as a base for code generation.
If this is your example schema: If this is your example schema:
</p> </p>
<pre> <pre>
...@@ -669,11 +669,11 @@ Using the generated source, you can query the database as follows: ...@@ -669,11 +669,11 @@ Using the generated source, you can query the database as follows:
</p> </p>
<pre> <pre>
Factory create = new H2Factory(connection); Factory create = new H2Factory(connection);
Result<UserRecord> result = Result&lt;UserRecord&gt; result =
create.selectFrom(USER) create.selectFrom(USER)
.where(NAME.like("Johnny%")) .where(NAME.like("Johnny%"))
.orderBy(ID) .orderBy(ID)
.fetch(); .fetch();
</pre> </pre>
<p> <p>
See more details on <a href="http://www.jooq.org">jOOQ Homepage</a> See more details on <a href="http://www.jooq.org">jOOQ Homepage</a>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Check dictionary.txt Check dictionary.txt
./build.sh spellcheck javadocImpl docs ./build.sh spellcheck
./build.sh javadocImpl
./build.sh docs
Update Constants.java - change version and build number Update Constants.java - change version and build number
Update changelog.html - add new version, remove oldest Update changelog.html - add new version, remove oldest
Update newsfeed.sql - add new version, remove oldest Update newsfeed.sql - add new version, remove oldest
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
CREATE TABLE VERSION(ID INT PRIMARY KEY, VERSION VARCHAR, CREATED VARCHAR); CREATE TABLE VERSION(ID INT PRIMARY KEY, VERSION VARCHAR, CREATED VARCHAR);
INSERT INTO VERSION VALUES INSERT INTO VERSION VALUES
(109, '1.3.159', '2011-08-12'),
(108, '1.3.158', '2011-07-17'), (108, '1.3.158', '2011-07-17'),
(107, '1.3.157', '2011-06-25'), (107, '1.3.157', '2011-06-25'),
(106, '1.3.156', '2011-06-17'), (106, '1.3.156', '2011-06-17'),
...@@ -25,10 +26,6 @@ INSERT INTO VERSION VALUES ...@@ -25,10 +26,6 @@ INSERT INTO VERSION VALUES
(93, '1.2.143', '2010-09-18'), (93, '1.2.143', '2010-09-18'),
(92, '1.2.142', '2010-08-31'), (92, '1.2.142', '2010-08-31'),
(91, '1.2.141', '2010-08-22'), (91, '1.2.141', '2010-08-22'),
(90, '1.2.140', '2010-07-25'),
(89, '1.2.139', '2010-07-10'),
(88, '1.2.138', '2010-06-27'),
(87, '1.2.137', '2010-06-06'),
; ;
CREATE TABLE CHANNEL(TITLE VARCHAR, LINK VARCHAR, DESC VARCHAR, CREATE TABLE CHANNEL(TITLE VARCHAR, LINK VARCHAR, DESC VARCHAR,
......
...@@ -143,7 +143,8 @@ public class TestTempTables extends TestBase { ...@@ -143,7 +143,8 @@ public class TestTempTables extends TestBase {
stat.execute("insert into test values(1)"); stat.execute("insert into test values(1)");
stat.execute("commit"); stat.execute("commit");
stat.execute("insert into test values(2)"); stat.execute("insert into test values(2)");
stat.execute("create local temporary table temp(id int primary key, name varchar, constraint x index(name)) transactional"); stat.execute("create local temporary table temp(" +
"id int primary key, name varchar, constraint x index(name)) transactional");
stat.execute("insert into temp values(3, 'test')"); stat.execute("insert into temp values(3, 'test')");
stat.execute("rollback"); stat.execute("rollback");
rs = stat.executeQuery("select * from test"); rs = stat.executeQuery("select * from test");
......
...@@ -687,7 +687,8 @@ multiplied ross judson closeable watcher enqueued referent refs watch tracked ...@@ -687,7 +687,8 @@ multiplied ross judson closeable watcher enqueued referent refs watch tracked
preserving disallowed restrictive dst regions kiritimati flow wider nanosecond preserving disallowed restrictive dst regions kiritimati flow wider nanosecond
march april cutover julian transitions enderbury kwajalein viewport onscroll march april cutover julian transitions enderbury kwajalein viewport onscroll
umlaut reconstruct inclusive proxies verifier slept superclasses umlaut reconstruct inclusive proxies verifier slept superclasses
verifying predicate signers verifies handlers kiwi callbacks traditionally verifying predicate signers verifies handlers kiwi callbacks traditionally
unusual apfel caught overcareful tricky nodep junit eventually concrete unusual apfel caught overcareful tricky nodep junit eventually concrete
enhancer banana nit cglib challenging intercepted banane assertthrows enhancer banana nit cglib challenging intercepted banane assertthrows
objenesis prepend detecting overridable eater forgetting tear objenesis prepend detecting overridable eater forgetting tear
fork tester jaspa redirection johnny brings gone jooq iciql offline pdo mappings largely
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论