提交 3b1c1575 authored 作者: Thomas Mueller's avatar Thomas Mueller

Documentation.

上级 bd832867
...@@ -811,7 +811,7 @@ and simplicity (that is, the lock file does not need to be deleted manually by t ...@@ -811,7 +811,7 @@ and simplicity (that is, the lock file does not need to be deleted manually by t
The two methods are 'file method' and 'socket methods'. The two methods are 'file method' and 'socket methods'.
</p> </p>
<p> <p>
The file locking protocols (except the file locking method 'FS') The file locking protocols (except the file locking method 'FS')
have the following limitation: if a shared file system is used, have the following limitation: if a shared file system is used,
and the machine with the lock owner is sent to sleep (standby or hibernate), and the machine with the lock owner is sent to sleep (standby or hibernate),
another machine may take over. If the machine that originally held the lock another machine may take over. If the machine that originally held the lock
......
...@@ -30,35 +30,35 @@ Change Log ...@@ -30,35 +30,35 @@ Change Log
could throw a strange exception. Issue 241. could throw a strange exception. Issue 241.
</li><li>The Recover tool did not work with compressed lob files (set compress_lob lzf). </li><li>The Recover tool did not work with compressed lob files (set compress_lob lzf).
Also, sometimes the Recover tool was very slow, specially using a 64-bit JVM, because Also, sometimes the Recover tool was very slow, specially using a 64-bit JVM, because
it tried to de-compress lob files even if they were not compressed it tried to de-compress lob files even if they were not compressed
(which could allocate a lot of memory). (which could allocate a lot of memory).
</li><li>H2 Console: webAllowOthers and webSSL were swapped if they didn't exist in the properties file. Issue 244. </li><li>H2 Console: webAllowOthers and webSSL were swapped if they didn't exist in the properties file. Issue 244.
</li><li>When the system property h2.lobInDatabase is set, CREATE TABLE ... AS SELECT </li><li>When the system property h2.lobInDatabase is set, CREATE TABLE ... AS SELECT
with a LOB column did not always work. with a LOB column did not always work.
</li><li>Some system properties are not supported any longer, because they can </li><li>Some system properties are not supported any longer, because they can
already be set in the database URL. The constants are: already be set in the database URL. The constants are:
CACHE_SIZE_DEFAULT, CACHE_TYPE_DEFAULT, DEFAULT_LOCK_MODE, CACHE_SIZE_DEFAULT, CACHE_TYPE_DEFAULT, DEFAULT_LOCK_MODE,
LOCK_MODE_READ_COMMITTED, DEFAULT_MAX_LENGTH_INPLACE_LOB, LOCK_MODE_READ_COMMITTED, DEFAULT_MAX_LENGTH_INPLACE_LOB,
DEFAULT_MAX_LENGTH_INPLACE_LOB2, DEFAULT_MAX_MEMORY_UNDO, DEFAULT_MAX_LENGTH_INPLACE_LOB2, DEFAULT_MAX_MEMORY_UNDO,
DEFAULT_MAX_OPERATION_MEMORY, DEFAULT_PAGE_SIZE, DEFAULT_MAX_OPERATION_MEMORY, DEFAULT_PAGE_SIZE,
DEFAULT_RESULT_SET_CONCURRENCY, MIN_WRITE_DELAY. DEFAULT_RESULT_SET_CONCURRENCY, MIN_WRITE_DELAY.
</li><li>Various system properties have been replaced with database level settings: </li><li>Various system properties have been replaced with database level settings:
ALIAS_COLUMN_NAME, ANALYZE_AUTO, ANALYZE_SAMPLE, DATABASE_TO_UPPER, ALIAS_COLUMN_NAME, ANALYZE_AUTO, ANALYZE_SAMPLE, DATABASE_TO_UPPER,
DEFAULT_ESCAPE, DEFRAG_ALWAYS, DROP_RESTRICT, DEFAULT_ESCAPE, DEFRAG_ALWAYS, DROP_RESTRICT,
ESTIMATED_FUNCTION_TABLE_ROWS, FUNCTIONS_IN_SCHEMA, ESTIMATED_FUNCTION_TABLE_ROWS, FUNCTIONS_IN_SCHEMA,
LARGE_RESULT_BUFFER_SIZE, LARGE_TRANSACTIONS, MAX_COMPACT_COUNT, LARGE_RESULT_BUFFER_SIZE, LARGE_TRANSACTIONS, MAX_COMPACT_COUNT,
MAX_COMPACT_TIME, MAX_MEMORY_ROWS_DISTINCT, MAX_QUERY_TIMEOUT, MAX_COMPACT_TIME, MAX_MEMORY_ROWS_DISTINCT, MAX_QUERY_TIMEOUT,
NESTED_JOINS, OPTIMIZE_DISTINCT, OPTIMIZE_EVALUATABLE_SUBQUERIES, NESTED_JOINS, OPTIMIZE_DISTINCT, OPTIMIZE_EVALUATABLE_SUBQUERIES,
OPTIMIZE_INSERT_FROM_SELECT, OPTIMIZE_IN_LIST, OPTIMIZE_IS_NULL, OPTIMIZE_INSERT_FROM_SELECT, OPTIMIZE_IN_LIST, OPTIMIZE_IS_NULL,
OPTIMIZE_OR, OPTIMIZE_SUBQUERY_CACHE, OPTIMIZE_TWO_EQUALS, OPTIMIZE_OR, OPTIMIZE_SUBQUERY_CACHE, OPTIMIZE_TWO_EQUALS,
OPTIMIZE_UPDATE, PAGE_STORE_INTERNAL_COUNT, PAGE_STORE_TRIM, OPTIMIZE_UPDATE, PAGE_STORE_INTERNAL_COUNT, PAGE_STORE_TRIM,
QUERY_CACHE_SIZE, RECOMPILE_ALWAYS, RECONNECT_CHECK_DELAY, QUERY_CACHE_SIZE, RECOMPILE_ALWAYS, RECONNECT_CHECK_DELAY,
SELECT_FOR_UPDATE_MVCC, SHARE_LINKED_CONNECTIONS. SELECT_FOR_UPDATE_MVCC, SHARE_LINKED_CONNECTIONS.
See the Javadoc documentation of DbSettings for details. See the Javadoc documentation of DbSettings for details.
The system properties are still supported for backward compatibility. The system properties are still supported for backward compatibility.
</li><li>When the system property h2.nestedJoins was enabled, some outer joins returned the wrong result. </li><li>When the system property h2.nestedJoins was enabled, some outer joins returned the wrong result.
</li><li>Opening a database could throw a NullPointerException. </li><li>Opening a database could throw a NullPointerException.
</li><li>After a crash, the database file did not always shrink because </li><li>After a crash, the database file did not always shrink because
old transaction log pages were not removed from the file. old transaction log pages were not removed from the file.
</li><li>Various CallableStatement methods could throw a NullPointerException. </li><li>Various CallableStatement methods could throw a NullPointerException.
</li><li>LOB files were not deleted when running DROP ALL OBJECTS. </li><li>LOB files were not deleted when running DROP ALL OBJECTS.
......
...@@ -206,7 +206,7 @@ and not the alias name. If you need the alias name, use ...@@ -206,7 +206,7 @@ and not the alias name. If you need the alias name, use
<a href="http://java.sun.com/javase/6/docs/api/java/sql/ResultSetMetaData.html#getColumnLabel(int)"><code>ResultSetMetaData.getColumnLabel()</code></a>. <a href="http://java.sun.com/javase/6/docs/api/java/sql/ResultSetMetaData.html#getColumnLabel(int)"><code>ResultSetMetaData.getColumnLabel()</code></a>.
Some other database don't work like this yet (they don't follow the JDBC specification). Some other database don't work like this yet (they don't follow the JDBC specification).
If you need compatibility with those databases, use the <a href="features.html#compatibility">Compatibility Mode</a>, If you need compatibility with those databases, use the <a href="features.html#compatibility">Compatibility Mode</a>,
or set the system property <a href="../javadoc/org/h2/constant/SysProperties.html#h2.aliasColumnName"><code>h2.aliasColumnName</code></a>. or append <a href="../javadoc/org/h2/constant/DbSettings.html#ALIAS_COLUMN_NAME"><code>;ALIAS_COLUMN_NAME=TRUE</code></a> to the database URL.
</p> </p>
<p> <p>
This also applies to DatabaseMetaData calls that return a result set. This also applies to DatabaseMetaData calls that return a result set.
......
...@@ -35,7 +35,6 @@ See also <a href="build.html#providing_patches">Providing Patches</a>. ...@@ -35,7 +35,6 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
Later, change undo log file format (fillAligned no longer required; var int). Later, change undo log file format (fillAligned no longer required; var int).
</li><li>Enable NESTED_JOINS (nested joins and right outer joins). </li><li>Enable NESTED_JOINS (nested joins and right outer joins).
</li><li>Enable OPTIMIZE_OR (convert OR conditions to IN(..) if possible). </li><li>Enable OPTIMIZE_OR (convert OR conditions to IN(..) if possible).
</li><li>Disable DATABASE_TO_UPPER (database short names are converted to uppercase).
</li><li>Enable DROP_RESTRICT (default action for DROP is RESTRICT). </li><li>Enable DROP_RESTRICT (default action for DROP is RESTRICT).
Change documentation. Change documentation.
</li><li>Set MAX_MEMORY_ROWS_DISTINCT to a lower value. </li><li>Set MAX_MEMORY_ROWS_DISTINCT to a lower value.
...@@ -538,7 +537,7 @@ See also <a href="build.html#providing_patches">Providing Patches</a>. ...@@ -538,7 +537,7 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li><li>Document the database file format. </li><li>Document the database file format.
</li><li>Support reading LOBs. </li><li>Support reading LOBs.
</li><li>Require appending DANGEROUS=TRUE when using certain dangerous settings such as </li><li>Require appending DANGEROUS=TRUE when using certain dangerous settings such as
LOG=0, LOG=1, LOCK_MODE=0, disabling FILE_LOCK, LOG=0, LOG=1, LOCK_MODE=0, disabling FILE_LOCK,
</li></ul> </li></ul>
<h2>Not Planned</h2> <h2>Not Planned</h2>
......
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.
...@@ -108,7 +108,6 @@ public class CreateView extends SchemaCommand { ...@@ -108,7 +108,6 @@ public class CreateView extends SchemaCommand {
if (params != null && params.size() > 0) { if (params != null && params.size() > 0) {
throw DbException.get(ErrorCode.FEATURE_NOT_SUPPORTED_1, "parameters in views"); throw DbException.get(ErrorCode.FEATURE_NOT_SUPPORTED_1, "parameters in views");
} }
// querySQL = TraceObject.toString(select.getSQL(), select.getParameters());
querySQL = TraceObject.toString(select.getPlanSQL(), select.getParameters()); querySQL = TraceObject.toString(select.getPlanSQL(), select.getParameters());
} }
Session sysSession = db.getSystemSession(); Session sysSession = db.getSystemSession();
......
...@@ -13,8 +13,8 @@ import org.h2.engine.SettingsBase; ...@@ -13,8 +13,8 @@ import org.h2.engine.SettingsBase;
/** /**
* This class contains various database-level settings. To override the * This class contains various database-level settings. To override the
* documented default value for a database, append the setting in the database * documented default value for a database, append the setting in the database
* URL: "jdbc:h2:test;ALIAS_COLUMN_NAME=TRUE" when opening the first connection to * URL: "jdbc:h2:test;ALIAS_COLUMN_NAME=TRUE" when opening the first connection
* the database. The settings can not be changed once the database is open. * to the database. The settings can not be changed once the database is open.
* <p> * <p>
* Some settings are a last resort and temporary solution to work around a * Some settings are a last resort and temporary solution to work around a
* problem in the application or database engine. Also, there are system * problem in the application or database engine. Also, there are system
...@@ -62,12 +62,12 @@ public class DbSettings extends SettingsBase { ...@@ -62,12 +62,12 @@ public class DbSettings extends SettingsBase {
* function, and in the CATALOG column of all database meta data methods. * function, and in the CATALOG column of all database meta data methods.
* Setting this to "false" is experimental. * Setting this to "false" is experimental.
*/ */
// public final boolean databaseToUpper = get("DATABASE_TO_UPPER", Constants.VERSION_MINOR < 3);
public final boolean databaseToUpper = get("DATABASE_TO_UPPER", true); public final boolean databaseToUpper = get("DATABASE_TO_UPPER", true);
/** /**
* Database setting <code>DB_CLOSE_ON_EXIT</code> (default: true).<br /> * Database setting <code>DB_CLOSE_ON_EXIT</code> (default: true).<br />
* Close the database when the virtual machine exits normally, using a shutdown hook. * Close the database when the virtual machine exits normally, using a
* shutdown hook.
*/ */
public final boolean dbCloseOnExit = get("DB_CLOSE_ON_EXIT", Constants.VERSION_MINOR < 3); public final boolean dbCloseOnExit = get("DB_CLOSE_ON_EXIT", Constants.VERSION_MINOR < 3);
...@@ -228,7 +228,8 @@ public class DbSettings extends SettingsBase { ...@@ -228,7 +228,8 @@ public class DbSettings extends SettingsBase {
public final boolean optimizeUpdate = get("OPTIMIZE_UPDATE", true); public final boolean optimizeUpdate = get("OPTIMIZE_UPDATE", true);
/** /**
* Database setting <code>PAGE_STORE_INTERNAL_COUNT</code> (default: false).<br /> * Database setting <code>PAGE_STORE_INTERNAL_COUNT</code>
* (default: false).<br />
* Update the row counts on a node level. * Update the row counts on a node level.
*/ */
public final boolean pageStoreInternalCount = get("PAGE_STORE_INTERNAL_COUNT", false); public final boolean pageStoreInternalCount = get("PAGE_STORE_INTERNAL_COUNT", false);
...@@ -265,8 +266,10 @@ public class DbSettings extends SettingsBase { ...@@ -265,8 +266,10 @@ public class DbSettings extends SettingsBase {
public final int reconnectCheckDelay = get("RECONNECT_CHECK_DELAY", 200); public final int reconnectCheckDelay = get("RECONNECT_CHECK_DELAY", 200);
/** /**
* Database setting <code>SELECT_FOR_UPDATE_MVCC</code> (default: false).<br /> * Database setting <code>SELECT_FOR_UPDATE_MVCC</code>
* If set, SELECT .. FOR UPDATE queries lock only the selected rows when using MVCC. * (default: false).<br />
* If set, SELECT .. FOR UPDATE queries lock only the selected rows when
* using MVCC.
*/ */
public final boolean selectForUpdateMvcc = get("SELECT_FOR_UPDATE_MVCC", Constants.VERSION_MINOR >= 3); public final boolean selectForUpdateMvcc = get("SELECT_FOR_UPDATE_MVCC", Constants.VERSION_MINOR >= 3);
......
...@@ -138,11 +138,11 @@ public class SysProperties { ...@@ -138,11 +138,11 @@ public class SysProperties {
*/ */
public static final String CLIENT_TRACE_DIRECTORY = getStringSetting("h2.clientTraceDirectory", "trace.db/"); public static final String CLIENT_TRACE_DIRECTORY = getStringSetting("h2.clientTraceDirectory", "trace.db/");
/** /**
* System property <code>h2.collatorCacheSize</code> (default: 32000).<br /> * System property <code>h2.collatorCacheSize</code> (default: 32000).<br />
* The cache size for collation keys (in elements). Used when a collator has * The cache size for collation keys (in elements). Used when a collator has
* been set for the database. * been set for the database.
*/ */
public static final int COLLATOR_CACHE_SIZE = getIntSetting("h2.collatorCacheSize", 32000); public static final int COLLATOR_CACHE_SIZE = getIntSetting("h2.collatorCacheSize", 32000);
/** /**
......
...@@ -245,7 +245,8 @@ public class TestNestedJoins extends TestBase { ...@@ -245,7 +245,8 @@ public class TestNestedJoins extends TestBase {
/* /*
create table test(id int primary key); create table test(id int primary key);
insert into test values(1); insert into test values(1);
select b.id from test a left outer join test b on a.id = b.id and not exists (select * from test c where c.id = b.id); select b.id from test a left outer join test b on a.id = b.id
and not exists (select * from test c where c.id = b.id);
-- expected: null -- expected: null
*/ */
stat.execute("create table test(id int primary key)"); stat.execute("create table test(id int primary key)");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论