提交 920ce7b4 authored 作者: Thomas Mueller's avatar Thomas Mueller

--no commit message

--no commit message
上级 bd27766a
......@@ -65,7 +65,7 @@
<java classname="org.h2.tools.code.CodeSwitch" fork="true" dir="src/tools">
<arg line="+JDK13 -JDK14 -JDK16 ../main/org/h2"/>
</java>
<propertyfile file="build.properties">
<propertyfile file="ant-build.properties">
<entry key="jdk" value="1.3" />
</propertyfile>
</target>
......@@ -74,7 +74,7 @@
<java classname="org.h2.tools.code.CodeSwitch" fork="true" dir="src/tools">
<arg line="-JDK13 +JDK14 -JDK16 ../main/org/h2"/>
</java>
<propertyfile file="build.properties">
<propertyfile file="ant-build.properties">
<entry key="jdk" value="1.4" />
</propertyfile>
</target>
......@@ -83,7 +83,7 @@
<java classname="org.h2.tools.code.CodeSwitch" fork="true" dir="src/tools">
<arg line="-JDK13 +JDK16 +JDK14 ../main/org/h2"/>
</java>
<propertyfile file="build.properties">
<propertyfile file="ant-build.properties">
<entry key="jdk" value="1.6" />
</propertyfile>
</target>
......@@ -285,6 +285,7 @@
<target name="zip">
<zip destfile="../h2.zip">
<fileset dir=".." includes="h2/build.xml"/>
<fileset dir=".." includes="h2/ant-build.properties"/>
<fileset dir=".." includes="h2/bin/**/*"/>
<fileset dir=".." includes="h2/docs/**/*"/>
<fileset dir=".." includes="h2/odbc/**/*"/>
......
......@@ -15,12 +15,11 @@ Frequently Asked Questions
<h3>Are there any known bugs? When is the next release?</h3>
Usually, bugs get fixes as they are found. There is a release every few weeks.
The next release is planned for
2007-01-02.
2007-01-16.
Here is the list of known and confirmed issues as of
2006-12-16:
2007-01-02:
<ul>
<li>Can not compile with JDK 1.3 at the moment.
<li>There are some browser issues with the autocomplete feature. Firefox should work however.
<li>Some problems have been found with right outer join. Internally, it is converted to left outer join, which
does not always produce the correct results when used in combination with other joins.
</ul>
......
......@@ -34,23 +34,23 @@ Hypersonic SQL or HSQLDB. H2 is built from scratch.
<h3>Version 1.0 (Current)</h3>
<h3>Version 1.0 / 2007-TODO</h3><ul>
<h3>Version 1.0 / 2007-01-02</h3><ul>
<li>It was possible to drop the sequence of a temporary tables with DROP ALL OBJECTS, resulting in a null pointer exception afterwards.
<li>Prepard statements with non-constant functions such as CURRENT_TIMESTAMP() did not get re-evaluated if the result of the function changed. Fixed.
<li>The (relative or absolute) directory where the script files are stored or read can now be changed using the system property h2.scriptDirectory
<li>Client trace files now created in the directory 'trace.db' and no longer the application directory.
This can be changed using the system property h2.clientTraceDirectory.
This can be changed using the system property h2.clientTraceDirectory.
<li>In some situations the log file got corrupt if the process was terminated while the database was opening.
<li>Using ;RECOVER=1 in the database URL threw a syntax exception. Fixed.
<li>If a CLOB or BLOB was deleted in a transaction and the database crashed before the transaction was committed or rolled back,
the object was lost if it was large. Fixed.
the object was lost if it was large. Fixed.
<li>Now using ant-build.properties. The jdk is automatically updated when using ant codeswitch_...
<li>Cluster: Now the server can detect if a query is read-only, and in this case the result is only read from the first cluster node.
However, there is currently no load balancing made to avoid problems with transactions / locking.
However, there is currently no load balancing made to avoid problems with transactions / locking.
<li>Many settings are now initialized from system properties and can be changed on the command line without having
recompile the database. See Advances / Settings Read from System Properties.
recompile the database. See Advances / Settings Read from System Properties.
<li>H2 is now available in Maven. The groupId is com.h2database, the artifactId h2 and the version 1.0.20061217.
To create the maven artifacts yourself, use 'ant mavenUploadLocal' and 'ant mavenBuildCentral'.
To create the maven artifacts yourself, use 'ant mavenUploadLocal' and 'ant mavenBuildCentral'.
</ul>
<h3>Version 1.0 / 2006-12-17</h3><ul>
......@@ -1364,6 +1364,7 @@ Hypersonic SQL or HSQLDB. H2 is built from scratch.
<li>Test with Spatial DB in a box / JTS (http://docs.codehaus.org/display/GEOS/SpatialDBBox)
<li>Document how to use H2 with PHP (generic database API)
<li>Optimization: result set caching (like MySQL)
<li>MVCC (Multi Version Cuncurrency Control)
<li>Server side cursors
<li>Row level locking
<li>System table: open sessions and locks of a database
......@@ -1447,7 +1448,6 @@ Hypersonic SQL or HSQLDB. H2 is built from scratch.
<li>Improve trace option: add calendar, streams, objects,... try/catch
<li>Automatic collection of statistics (ANALYZE)
<li>Procedural language
<li>MVCC (Multi Version Cuncurrency Control)
<li>Maybe include JTidy. Check license
<li>Server: client ping from time to time (to avoid timeout - is timeout a problem?)
<li>Column level privileges
......
......@@ -125,6 +125,7 @@ Section "All"
File /r /x CVS /x .cvsignore ..\..\service\*.*
SetOutPath "$INSTDIR"
File /r /x CVS /x .cvsignore ..\..\build.xml
File /r /x CVS /x .cvsignore ..\..\ant-build.properties
WriteRegStr HKCU "Software\H2" "" $INSTDIR
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\H2" "DisplayName" "H2"
......
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>@version@</version>
<packaging>jar</packaging>
<name>H2 Database Engine</name>
<url>http://www.h2database.com</url>
<description>H2 Database Engine</description>
<licenses>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>@version@</version>
<packaging>jar</packaging>
<name>H2 Database Engine</name>
<url>http://www.h2database.com</url>
<description>H2 Database Engine</description>
<licenses>
<license>
<name>The H2 License, Version 1.0</name>
<name>The H2 License, Version 1.0</name>
<url>http://h2database.com/html/license.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<url>http://h2database.googlecode.com/svn/trunk</url>
</scm>
<dependencies>
</license>
</licenses>
<scm>
<url>http://h2database.googlecode.com/svn/trunk</url>
</scm>
<dependencies>
</dependencies>
</project>
\ No newline at end of file
......@@ -11,7 +11,7 @@ package org.h2.engine;
* - System.out > trace messages
*
* Release checklist
* - Update latest version in docs: http://mirrors.ibiblio.org/pub/mirrors/maven2/com/h2database/h2/
* - Update latest version in build.html: http://mirrors.ibiblio.org/pub/mirrors/maven2/com/h2database/h2/
* - ant jarClient, check jar file size
* - try compiling with JDK 1.3, 1.4, 1.5 and 1.6
* set path=C:\Programme\Java\jdk1.6.0\bin;%PATH%
......@@ -56,8 +56,8 @@ package org.h2.engine;
*/
public class Constants {
public static final int BUILD_ID = 34;
private static final String BUILD = "2006-12-17";
public static final int BUILD_ID = 36;
private static final String BUILD = "2007-01-02";
public static final int VERSION_MAJOR = 1;
public static final int VERSION_MINOR = 0;
......
......@@ -129,10 +129,6 @@ public class BtreeLeaf extends BtreePage {
public BtreePage split(Session session, int splitPoint) throws SQLException {
ObjectArray data = new ObjectArray();
int max = pageData.size();
if(Constants.CHECK && index.getDatabase().getLogIndexChanges() && !getDeleted()) {
// page must have been deleted already before calling getSplitPoint()
throw Message.getInternalError();
}
for (int i = splitPoint; i < max; i++) {
data.add(getData(splitPoint));
pageData.remove(splitPoint);
......
......@@ -73,10 +73,7 @@ public abstract class FileBase {
return files;
}
/**
* INTERNAL
*/
public void processFiles(String dir, String db, boolean log) throws SQLException {
protected void processFiles(String dir, String db, boolean log) throws SQLException {
ArrayList files = getDatabaseFiles(dir, db, allFiles());
for(int i=0; i<files.size(); i++) {
String fileName = (String) files.get(i);
......
......@@ -10,6 +10,49 @@ INSERT INTO CHANNEL VALUES('H2 Database Engine' ,
CREATE TABLE ITEM(ID INT PRIMARY KEY, TITLE VARCHAR, ISSUED TIMESTAMP, DESC VARCHAR);
INSERT INTO ITEM VALUES(19,
'New version available: 1.0 / 2007-01-02', '2007-01-02 12:00:00',
'A new version of H2 is available for <a href="http://www.h2database.com">download</a>.
<br/>
<b>Changes and new functionality:</b>
<ul>
<li>H2 is now available in Maven. The groupId is com.h2database, the
artifactId is h2 and the version 1.0.20061217 (the new version will be
available in a few days). To create the maven artifacts yourself, use
''ant mavenUploadLocal'' and ''ant mavenBuildCentral''.
<li>Many settings are now initialized from system properties and can be
changed on the command line without having recompile the database.
See Advances / Settings Read from System Properties.
<li>The (relative or absolute) directory where the script files are stored
or read can now be changed using the system property h2.scriptDirectory
<li>Client trace files now created in the directory ''trace.db'' and no
longer the application directory. This can be changed using the system
property h2.clientTraceDirectory.
<li>Build: Now using ant-build.properties. The JDK is automatically updated
when using ant codeswitch_...
<li>Cluster: Now the server can detect if a query is read-only, and in this
case the result is only read from the first cluster node. However, there
is currently no load balancing made to avoid problems with transactions
/ locking.
</ul>
<b>Bugfixes:</b>
<ul>
<li>If a CLOB or BLOB was deleted in a transaction and the database crashed
before the transaction was committed or rolled back, the object was lost if
it was large. Fixed.
<li>Prepared statements with non-constant functions such as
CURRENT_TIMESTAMP() did not get re-evaluated if the result of the
function changed. Fixed.
<li>In some situations the log file got corrupt if the process was terminated
while the database was opening.
<li>Using ;RECOVER=1 in the database URL threw a syntax exception. Fixed.
<li>It was possible to drop the sequence of a temporary tables with DROP
ALL OBJECTS, resulting in a null pointer exception afterwards.
</ul>
For future plans, see the new ''Roadmap'' page on the web site.
</ul>
');
INSERT INTO ITEM VALUES(18,
'New version available: 1.0 / 2006-12-17', '2006-12-17 12:00:00',
'A new version of H2 is available for <a href="http://www.h2database.com">download</a>.
......@@ -17,36 +60,36 @@ INSERT INTO ITEM VALUES(18,
<b>Changes and new functionality:</b>
<ul>
<li>Large BLOB and CLOB support for the server and the cluster mode.
Larger objects will temporarily be buffered on the client side.
Larger objects will temporarily be buffered on the client side.
<li>Can be compiled with JDK 1.6.
However, only very few of the JDBC 4.0 features are implemented so far.
However, only very few of the JDBC 4.0 features are implemented so far.
<li>Table aliases are now supported in DELETE and UPDATE.
Example: DELETE FROM TEST T0.
Example: DELETE FROM TEST T0.
<li>The RunScript tool can now include other files using a new syntax:
@INCLUDE fileName. This is only required for server and cluster modes.
It was already possible to use embedded RUNSCRIPT statements,
but those are always executed locally.
@INCLUDE fileName. This is only required for server and cluster modes.
It was already possible to use embedded RUNSCRIPT statements,
but those are always executed locally.
<li>When the database URL contains ;RECOVERY=TRUE then
the index file is now deleted if it was not closed before.
the index file is now deleted if it was not closed before.
<li>Deleting old temp files now uses a phantom reference queue.
Generally, temp files should now be deleted earlier.
Generally, temp files should now be deleted earlier.
<li>Opening a large database is now much faster
even when using the default log mode (LOG=1),
if the database was previously closed.
even when using the default log mode (LOG=1),
if the database was previously closed.
<li>Support for indexed parameters in PreparedStatements:
UPDATE TEST SET NAME = ?2 WHERE ID = ?1
UPDATE TEST SET NAME = ?2 WHERE ID = ?1
</ul>
<b>Bugfixes:</b>
<ul>
<li>Unfortunately, the Hibernate dialect has changed due to a change
in the meta data in the last release (INFORMATION_SCHEMA.SEQUENCES).
in the meta data in the last release (INFORMATION_SCHEMA.SEQUENCES).
<li>String.toUpperCase and toLowerCase can not be used to parse commands.
Now using toUpperCase(Locale.ENGLISH) or Character.toUpperCase(..).
Now using toUpperCase(Locale.ENGLISH) or Character.toUpperCase(..).
<li>The scale of a NUMERIC(1) column is now 0. It used to be 32767.
<li>PreparedStatement.setObject(x, y, Types.OTHER) does now
serialize the object in every case (even for Integer).
serialize the object in every case (even for Integer).
<li>EXISTS subqueries with parameters were not re-evaluated
when the prepared statement was reused. This could lead to incorrect results.
when the prepared statement was reused. This could lead to incorrect results.
</ul>
For future plans, see the new ''Roadmap'' page on the web site.
</ul>
......@@ -553,58 +596,6 @@ For details see also the history. The plans for the next release are:
</ul>
');
INSERT INTO ITEM VALUES(1,
'New version available: 0.9 Alpha / 2006-06-02', '2006-06-02 12:00:00',
'A new version of H2 is available for <a href="http://www.h2database.com">download</a>.
<br/>
<b>Changes and new functionality:</b>
<ul>
<li>The GCJ version for Windows is no longer included in the download.
It was not stable in this release.
<li>ORDER BY now uses an index if possible.
Queries with LIMIT with ORDER BY
are faster when the index can be used.
<li>Statements containing LIKE are now re-compiled when executed.
Depending on the data, an index on the column is used or not.
<li>New option to disable automatic closing of a database
when the virtual machine exists.
Database URL: jdbc:h2:test;db_close_on_exit=false
<li>New event: DatabaseEventListener.closingDatabase()
<li>Connection.getCatalog() now returns the database name
<li>The function DATABASE() now return the short name
<li>Automatic starting of a web browser for Mac OS X should work now.
</ul>
<b>Security:</b>
<ul>
<li>TCP Server: Can now specifiy a password (tcpPassword).
<li>New option -ifExists for the TCP and ODBC server
to disallow creating new databases.
</ul>
<b>Bugfixes:</b>
<ul>
<li>Issue #103: Shutdown of a TCP Server from command line
didn''t always work.
<li>Issue #104: A HAVING condition on a column
that was not in the GROUP BY list didn''t work.
<li>Issue #105: RUNSCRIPT (the command) didn''t commit
after each command if autocommit was on.
<li>Issue #106: SET commands where not persisted
<li>Issue# 107: When executing scripts that contained inserts
with many columns, an OutOfMemory error could occur.
<li>Issue #108: There is a concurrency problem when multi threads
access the same database.
<li>Issue #109: ALTER TABLE ADD COLUMN can make
the database unusable.
</ul>
For details see also the history. The plans for the next release are:
<ul>
<li>Bugfixes, write more tests, more bugfixes, more tests
<li>Define which modules are alpha, beta and production quality
<li>Proposal for changed license (still pending...)
<li>For other plans, see the new ''Roadmap'' part on the web site
</ul>
');
SELECT 'newsfeed-rss.xml' FILE,
XMLSTARTDOC() ||
XMLNODE('rss', XMLATTR('version', '2.0'),
......
......@@ -87,17 +87,21 @@ java -Xmx512m -Xrunhprof:cpu=samples,depth=8 org.h2.tools.RunScript -url jdbc:h2
TestAll test = new TestAll();
test.printSystem();
// Expression.isConstant is not really needed?
// auto-upgrade application:
// check if new version is available
// (option: digital signature)
// (option: RSS / atom newsfeed)
// (option: small XML parser)
// if yes download new version
// (option: http, https, ftp, network)
// backup database to SQL script
// (option: list of databases, use recovery mechanism)
// install new version
// test: use fixed amount of disk space
// append errors from all programs atomically to errors.txt (use nio file lock mechanism)
// ftp client
// task to download new version from another FTP server
// task to download new version from another HTTP / HTTPS / FTP server
// multi-task
// https://issues.apache.org/jira/browse/OPENJPA-92
// write a test that calls Runtime.halt at more or less random places (extend TestLob)
// OSGi Bundle (see Forum)
......
......@@ -252,11 +252,11 @@ public abstract class TestBase {
}
protected void deleteDb(String name) throws Exception {
new DeleteDbFiles().processFiles(BASE_DIR, name, false);
DeleteDbFiles.execute(BASE_DIR, name, true);
}
protected void deleteDb(String dir, String name) throws Exception {
new DeleteDbFiles().processFiles(dir, name, false);
DeleteDbFiles.execute(dir, name, true);
}
public abstract void test() throws Exception;
......
......@@ -151,9 +151,11 @@ public class TestCases extends TestBase {
Thread t = new Thread(new Runnable() {
public void run() {
try {
long time = System.currentTimeMillis();
ResultSet rs = stat.executeQuery("SELECT MAX(T.ID) FROM TEST T, TEST, TEST, TEST, TEST, TEST, TEST, TEST, TEST, TEST, TEST");
rs.next();
TestBase.logError("query was too quick; result: " + rs.getInt(1), null);
time = System.currentTimeMillis() - time;
TestBase.logError("query was too quick; result: " + rs.getInt(1) + " time:" + time, null);
} catch(SQLException e) {
// ok
}
......
......@@ -86,7 +86,7 @@ public class TestJoin extends TestBase {
buff = new StringBuffer();
long time = System.currentTimeMillis();
if(time - start > 5000) {
System.out.println("i:"+i);
printTime("i:"+i);
start = time;
}
buff.append("SELECT ");
......@@ -129,9 +129,8 @@ public class TestJoin extends TestBase {
try {
execute(sql, params);
} catch(Exception e) {
// System.out.println("/*FAIL*/ " + sql+" " +e);
if(shortestFailed == null || shortestFailed.length() > sql.length()) {
System.out.println("/*SHORT*/ " + sql);
TestBase.logError("/*SHORT*/ " + sql, null);
shortestFailed = sql;
}
}
......@@ -252,10 +251,7 @@ public class TestJoin extends TestBase {
first = s;
} else {
if(!ignoreDifference && !s.equals(first)) {
// System.out.println("FAIL " + sql);
// System.out.println("first="+first);
// System.out.println("now="+s);
throw new Exception("FAIL");
throw new Exception("FAIL s:" + s + " first:" + first + " sql:"+sql);
}
}
}
......
......@@ -16,7 +16,7 @@ public class CheckTextFiles {
}
String[] suffixCheck = new String[]{"html", "jsp", "js", "css", "bat", "nsi", "java", "txt", "properties", "cpp", "def", "h", "rc", "dev", "sql", "xml", "csv", "Driver"};
String[] suffixIgnore = new String[]{"gif", "png", "odg", "ico", "sxd", "layout", "res", "win", "dll", "jar"};
String[] suffixIgnore = new String[]{"gif", "png", "odg", "ico", "sxd", "layout", "res", "win", "dll", "jar", "task"};
boolean failOnError;
boolean allowTab, allowCR = true, allowTrailingSpaces = true;
int spacesPerTab = 4;
......@@ -24,7 +24,7 @@ public class CheckTextFiles {
boolean useCRLF = true;
// must contain "+" otherwise this here counts as well
String copyrightLicense = "Copyright 2004-2006 H2 Group. "+"Licensed under the H2 License, Version 1.0 (http://h2database.com/html/license.html).";
String[] suffixIgnoreLicense = new String[]{"bat", "nsi", "txt", "properties", "def", "rc", "dev", "xml", "_private.h", "java.sql.Driver"};
String[] suffixIgnoreLicense = new String[]{"bat", "nsi", "txt", "properties", "def", "rc", "dev", "xml", "_private.h", "java.sql.Driver", "task"};
boolean hasError;
void run() throws Exception {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论