提交 5064d142 authored 作者: Thomas Mueller's avatar Thomas Mueller

--no commit message

--no commit message
上级 ab655816
...@@ -356,7 +356,7 @@ and select the PostgreSQL Unicode driver. Then click 'Finish'. ...@@ -356,7 +356,7 @@ and select the PostgreSQL Unicode driver. Then click 'Finish'.
You will be able to change the connection properties: You will be able to change the connection properties:
</p> </p>
<table> <table>
<tr><th>Property</th><th>Example</th><th>Remarks</th></th> <tr><th>Property</th><th>Example</th><th>Remarks</th></tr>
<tr><td>Data Source</td><td>H2 Test</td><td>The name of the ODBC Data Source</td></tr> <tr><td>Data Source</td><td>H2 Test</td><td>The name of the ODBC Data Source</td></tr>
<tr><td>Database</td><td>test</td> <tr><td>Database</td><td>test</td>
<td> <td>
......
...@@ -30,7 +30,7 @@ H2 Database Engine ...@@ -30,7 +30,7 @@ H2 Database Engine
<h3>Download Mirror</h3> <h3>Download Mirror</h3>
<p> <p>
<a href="http://code.google.com/p/h2database/downloads/list">Platform-Independent Zips</a><br /> <a href="http://code.google.com/p/h2database/downloads/list">Platform-Independent Zip</a><br />
</p> </p>
<h3>Subversion Source Repository</h3> <h3>Subversion Source Repository</h3>
......
...@@ -68,7 +68,7 @@ Hypersonic SQL or HSQLDB. H2 is built from scratch. ...@@ -68,7 +68,7 @@ Hypersonic SQL or HSQLDB. H2 is built from scratch.
log is temporarily disabled. This avoid out of memory problems when creating large tables. log is temporarily disabled. This avoid out of memory problems when creating large tables.
</li><li>The per session undo log can now be disabled. This setting is useful for bulk operations </li><li>The per session undo log can now be disabled. This setting is useful for bulk operations
that don't need to be atomic, like bulk delete or update. that don't need to be atomic, like bulk delete or update.
</li><li>The database file could get corruted when there was an OutOfMemoryException in the middle of inserting a row. </li><li>The database file could get corrupted when there was an OutOfMemoryException in the middle of inserting a row.
</li><li>Optimization for WHERE NOT(...) and WHERE [NOT] booleanFlagColumn. </li><li>Optimization for WHERE NOT(...) and WHERE [NOT] booleanFlagColumn.
This can be disabled using the system property h2.optimizeNot. This can be disabled using the system property h2.optimizeNot.
</li><li>Optimization for conditions like WHERE A=B AND B=X (A=X is added). This often appears in joins. </li><li>Optimization for conditions like WHERE A=B AND B=X (A=X is added). This often appears in joins.
......
...@@ -2613,7 +2613,7 @@ public class Parser { ...@@ -2613,7 +2613,7 @@ public class Parser {
} else if (c >= '0' && c <= '9') { } else if (c >= '0' && c <= '9') {
type = CHAR_VALUE; type = CHAR_VALUE;
} else { } else {
// $ is not supported at this time (compatbility for PostgreSQL: $1 ) // $ is not supported at this time (compatibility for PostgreSQL: $1 )
if(Character.isJavaIdentifierPart(c)) { if(Character.isJavaIdentifierPart(c)) {
type = CHAR_NAME; type = CHAR_NAME;
char u = Character.toUpperCase(c); char u = Character.toUpperCase(c);
......
...@@ -2171,7 +2171,7 @@ REGEXP_REPLACE(inputString, regexString, replacementString): string ...@@ -2171,7 +2171,7 @@ REGEXP_REPLACE(inputString, regexString, replacementString): string
Replaces each substring that matches a regular expression. Replaces each substring that matches a regular expression.
For details, see the Java String.replaceAll() method. For details, see the Java String.replaceAll() method.
"," ","
REGEXP_REPLACE('Hoohoho', 'o+', 'o') REGEXP_REPLACE('Hello World', ' +', ' ')
" "
"Functions (String)","REPEAT"," "Functions (String)","REPEAT","
......
...@@ -580,7 +580,7 @@ public class PgServerThread implements Runnable { ...@@ -580,7 +580,7 @@ public class PgServerThread implements Runnable {
boolean tableFound = rs.next(); boolean tableFound = rs.next();
stat = conn.createStatement(); stat = conn.createStatement();
if(tableFound) { if(tableFound) {
rs = stat.executeQuery("SELECT VERION FROM PG_CATALOG.PG_VERSION"); rs = stat.executeQuery("SELECT VERSION FROM PG_CATALOG.PG_VERSION");
if(rs.next()) { if(rs.next()) {
if(rs.getInt(1) == 1) { if(rs.getInt(1) == 1) {
// already installed // already installed
......
/*
* Copyright 2004-2006 H2 Group. Licensed under the H2 License, Version 1.0 (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.util; package org.h2.util;
public class ObjectUtils { public class ObjectUtils {
......
/*
* Copyright 2004-2006 H2 Group. Licensed under the H2 License, Version 1.0 (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.samples; package org.h2.samples;
import java.sql.Connection; import java.sql.Connection;
...@@ -32,7 +36,7 @@ public class MixedMode { ...@@ -32,7 +36,7 @@ public class MixedMode {
Thread.sleep(1000); Thread.sleep(1000);
} }
} catch(SQLException e) { } catch(SQLException e) {
System.out.println("Errror: " + e.toString()); System.out.println("Error: " + e.toString());
} }
conn.close(); conn.close();
......
...@@ -94,14 +94,16 @@ java -Xmx512m -Xrunhprof:cpu=samples,depth=8 org.h2.tools.RunScript -url jdbc:h2 ...@@ -94,14 +94,16 @@ java -Xmx512m -Xrunhprof:cpu=samples,depth=8 org.h2.tools.RunScript -url jdbc:h2
/* /*
test odbc again a few times (debug catalog creation)
Openfire server uses this script to setup a user permissions Openfire server uses this script to setup a user permissions
on the fresh-installed server. The database is [current] HSQLDB : on the fresh-installed server. The database is [current] HSQLDB :
CREATE SCHEMA PUBLIC AUTHORIZATION DBA CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE USER SA PASSWORD "" CREATE USER SA PASSWORD ""
GRANT DBA TO SA GRANT DBA TO SA
SET SCHEMA PUBLIC SET SCHEMA PUBLIC
Unfortunately, this does not work (first string has a different semantic) Unfortunately, this does not work in H2
on the H2...
Wrong user name or password [08004-55] Wrong user name or password [08004-55]
merge html-ja merge html-ja
...@@ -182,6 +184,20 @@ Document org.h2.samples.MixedMode ...@@ -182,6 +184,20 @@ Document org.h2.samples.MixedMode
http://www.igniterealtime.org/projects/openfire/index.jsp http://www.igniterealtime.org/projects/openfire/index.jsp
translation:
src/org.h2.server.web.res/_text_en.properties
src/org.h2.res/messages.properties
src/org.h2.res/help.csv (using ${.} like .jsp?)
javadocs (using generated ${.} ?)
html (using generated ${.} ?)
how do multi line properties files work? xml? [key]...?
converter between properties and [key] ...?
checksum marker
glossary
spell check / word list per language
html-jp
*/ */
/* /*
......
--- special grammar and test cases --------------------------------------------------------------------------------------------- --- special grammar and test cases ---------------------------------------------------------------------------------------------
CALL REGEXP_REPLACE('Kaboooom', 'o+', 'o'); CALL REGEXP_REPLACE('abckaboooom', 'o+', 'o');
> 'Kabom' > 'abckabom'
> ------- > ----------
> Kabom > abckabom
> rows: 1 > rows: 1
SELECT 'Hello' ~ 'He.*' T1, 'HELLO' ~ 'He.*' F2, CAST('HELLO' AS VARCHAR_IGNORECASE) ~ 'He.*' T3; SELECT 'Hello' ~ 'He.*' T1, 'HELLO' ~ 'He.*' F2, CAST('HELLO' AS VARCHAR_IGNORECASE) ~ 'He.*' T3;
...@@ -136,7 +136,7 @@ explain select * from table(id int = (1, 2), name varchar=('Hello', 'World')); ...@@ -136,7 +136,7 @@ explain select * from table(id int = (1, 2), name varchar=('Hello', 'World'));
CREATE TABLE TEST(ID INT PRIMARY KEY, FLAG BOOLEAN, NAME VARCHAR); CREATE TABLE TEST(ID INT PRIMARY KEY, FLAG BOOLEAN, NAME VARCHAR);
> ok > ok
CREATE INDEX IDXFLAG ON TEST(FLAG, NAME); CREATE INDEX IDX_FLAG ON TEST(FLAG, NAME);
> ok > ok
INSERT INTO TEST VALUES(1, TRUE, 'Hello'), (2, FALSE, 'World'); INSERT INTO TEST VALUES(1, TRUE, 'Hello'), (2, FALSE, 'World');
...@@ -144,26 +144,26 @@ INSERT INTO TEST VALUES(1, TRUE, 'Hello'), (2, FALSE, 'World'); ...@@ -144,26 +144,26 @@ INSERT INTO TEST VALUES(1, TRUE, 'Hello'), (2, FALSE, 'World');
EXPLAIN SELECT * FROM TEST WHERE FLAG; EXPLAIN SELECT * FROM TEST WHERE FLAG;
> PLAN > PLAN
> -------------------------------------------------------------------------------------------------- > ---------------------------------------------------------------------------------------------------
> SELECT TEST.ID, TEST.FLAG, TEST.NAME FROM PUBLIC.TEST /* PUBLIC.IDXFLAG: FLAG = TRUE */ WHERE FLAG > SELECT TEST.ID, TEST.FLAG, TEST.NAME FROM PUBLIC.TEST /* PUBLIC.IDX_FLAG: FLAG = TRUE */ WHERE FLAG
> rows: 1 > rows: 1
EXPLAIN SELECT * FROM TEST WHERE FLAG AND NAME>'I'; EXPLAIN SELECT * FROM TEST WHERE FLAG AND NAME>'I';
> PLAN > PLAN
> ---------------------------------------------------------------------------------------------------------------------------------- > -----------------------------------------------------------------------------------------------------------------------------------
> SELECT TEST.ID, TEST.FLAG, TEST.NAME FROM PUBLIC.TEST /* PUBLIC.IDXFLAG: FLAG = TRUE AND NAME > 'I' */ WHERE FLAG AND (NAME > 'I') > SELECT TEST.ID, TEST.FLAG, TEST.NAME FROM PUBLIC.TEST /* PUBLIC.IDX_FLAG: FLAG = TRUE AND NAME > 'I' */ WHERE FLAG AND (NAME > 'I')
> rows: 1 > rows: 1
DROP TABLE TEST; DROP TABLE TEST;
> ok > ok
CREATE TABLE test_table (firstcol varchar(20), secondcol integer); CREATE TABLE test_table (first_col varchar(20), second_col integer);
> ok > ok
insert into test_table values('a', 10), ('a', 4), ('b', 30), ('b', 3); insert into test_table values('a', 10), ('a', 4), ('b', 30), ('b', 3);
> update count: 4 > update count: 4
CREATE VIEW test_view AS SELECT firstcol AS renamed_col, MIN(secondcol) AS also_renamed FROM test_table GROUP BY firstcol; CREATE VIEW test_view AS SELECT first_col AS renamed_col, MIN(second_col) AS also_renamed FROM test_table GROUP BY first_col;
> ok > ok
SELECT * FROM test_view WHERE renamed_col = 'a'; SELECT * FROM test_view WHERE renamed_col = 'a';
......
...@@ -128,7 +128,11 @@ public class XMLChecker { ...@@ -128,7 +128,11 @@ public class XMLChecker {
if(pop.equals(name)) { if(pop.equals(name)) {
break; break;
} }
throw new Exception("Unclosed element " + pop + " at " + parser.getRemaining()); String remaining = parser.getRemaining();
if(remaining.length() > 100) {
remaining = remaining.substring(0, 100);
}
throw new Exception("Unclosed element " + pop + " at " + remaining);
} }
} else if(event == XMLParser.CHARACTERS) { } else if(event == XMLParser.CHARACTERS) {
// lastElement = parser.getText(); // lastElement = parser.getText();
......
...@@ -495,3 +495,7 @@ nspname objsubid typnamespace rolcreaterole tgrelid spclocation relhasrules dont ...@@ -495,3 +495,7 @@ nspname objsubid typnamespace rolcreaterole tgrelid spclocation relhasrules dont
relkind autovacuum datlastsysoid attisdropped amname datacl deallocate tgdeferrable stats relkind autovacuum datlastsysoid attisdropped amname datacl deallocate tgdeferrable stats
spcacl relname rolvaliduntil attnotnull authid aclitem spcacl relname rolvaliduntil attnotnull authid aclitem
plpgsql interrupting spring oids plperl regex newest plpgsql interrupting spring oids plperl regex newest
xhtml transactionally remotly jnlp launch mirror subversion matcher hoohoho matching bulk
prorettype pronamespace groname inlining nopmd openfire joda fastutil ibatis igniterealtime unimi dsi
irstv trac iict geosysin fukushima yusuke msi odbcad recent viewed calculation installs embedding relation
resizing
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论