Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
ad52cce5
提交
ad52cce5
authored
2月 01, 2008
作者:
Thomas Mueller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
--no commit message
--no commit message
上级
2f8b42f4
显示空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
97 行增加
和
201 行删除
+97
-201
ant-build.properties
h2/ant-build.properties
+1
-1
build.xml
h2/build.xml
+6
-13
source.html
h2/src/docsrc/html/source.html
+10
-6
sourceError.html
h2/src/docsrc/html/sourceError.html
+64
-36
_messages_en.properties
h2/src/docsrc/textbase/_messages_en.properties
+1
-1
Constants.java
h2/src/main/org/h2/engine/Constants.java
+1
-1
TestAll.java
h2/src/test/org/h2/test/TestAll.java
+14
-143
没有找到文件。
h2/ant-build.properties
浏览文件 @
ad52cce5
#
Mon Jan 28 07:19:5
0 CET 2008
#
Fri Feb 01 15:26:3
0 CET 2008
javac
=
javac
benchmark.drivers.dir
=
C
\:
/data/java
path.servlet.jar
=
C
\:
/data/classpath/servlet-api.jar
...
...
h2/build.xml
浏览文件 @
ad52cce5
<project
name=
"h2"
default=
"all"
basedir=
"."
>
<!-- dependencies (optional):
http://repo1.maven.org/maven2/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar
(actually any servlet api)
http://repo1.maven.org/maven2/org/apache/lucene/lucene-core/2.2.0/lucene-core-2.2.0.jar
(or newer)
-->
<property
file=
"ant-build.properties"
/>
<!-- jar files required by the benchmark -->
...
...
@@ -283,19 +289,6 @@
</manifest>
</target>
<target
name=
"mavenBuildCentral"
>
<copy
tofile=
"bin/h2-${version.name.maven}.jar"
file=
"bin/h2.jar"
/>
<copy
tofile=
"bin/pom.xml"
filtering=
"true"
file=
"src/installer/pom.xml"
>
<filterset>
<filter
token=
"version"
value=
"${version.name.maven}"
/>
</filterset>
</copy>
<jar
destfile=
"bin/h2-${version.name.maven}-bundle.jar"
basedir=
"bin"
>
<include
name=
"pom.xml"
/>
<include
name=
"h2-${version.name.maven}.jar"
/>
</jar>
</target>
<target
name=
"mavenDeployCentral"
depends=
"jar"
>
<copy
tofile=
"bin/h2-${version.name.maven}.jar"
file=
"bin/h2.jar"
/>
<copy
tofile=
"bin/pom.xml"
filtering=
"true"
file=
"src/installer/pomUpload.xml"
>
...
...
h2/src/docsrc/html/source.html
浏览文件 @
ad52cce5
...
...
@@ -7,7 +7,7 @@ Initial Developer: H2 Group
//
<!--
var
line
=
0
,
file
=
''
;
var
params
=
location
.
search
.
substring
(
1
).
split
(
'&'
);
var
build
=
'trunk
'
;
var
tag
=
'trunk/h2
'
;
for
(
var
i
=
0
;
i
<
params
.
length
;
i
++
)
{
var
k
=
params
[
i
].
split
(
'='
);
var
key
=
k
[
0
],
value
=
k
[
1
];
...
...
@@ -15,8 +15,12 @@ Initial Developer: H2 Group
line
=
value
;
}
else
if
(
key
==
'file'
)
{
file
=
value
;
}
else
if
(
key
==
'build'
&&
value
>=
63
)
{
build
=
'tags/version-1.0.'
+
value
;
}
else
if
(
key
==
'build'
)
{
if
(
value
==
64
)
{
tag
=
'tags/version-1.0.'
+
value
;
}
else
if
(
value
>=
63
)
{
tag
=
'tags/version-1.0.'
+
value
+
'/h2'
;
}
}
}
// -->
...
...
@@ -24,7 +28,7 @@ Initial Developer: H2 Group
<pre>
<table
width=
"100%"
>
<tr>
<td
style=
"width: 50px"
>
<td
style=
"width: 50px
; vertical-align: top
"
>
<script
type=
"text/javascript"
>
//
<!--
for
(
var
i
=
1
;
i
<=
5000
;
i
++
)
{
...
...
@@ -39,7 +43,7 @@ Initial Developer: H2 Group
// -->
</script>
</td>
<td
width=
"92%"
style=
"vertical-align: top
;
"
>
<td
width=
"92%"
style=
"vertical-align: top"
>
<iframe
id=
"source"
frameborder=
"0"
marginwidth=
"0"
marginheight=
"0"
width=
"100%"
height=
"80000px"
scrolling=
"no"
src=
""
>
</iframe>
</td>
...
...
@@ -49,7 +53,7 @@ Initial Developer: H2 Group
<script
type=
"text/javascript"
>
//
<!--
var
source
=
document
.
getElementById
(
'source'
);
source
.
src
=
'http://h2database.googlecode.com/svn/'
+
build
+
'/h2
/src/main/'
+
file
;
source
.
src
=
'http://h2database.googlecode.com/svn/'
+
tag
+
'
/src/main/'
+
file
;
document
.
location
=
'#here'
;
// -->
</script>
...
...
h2/src/docsrc/html/sourceError.html
浏览文件 @
ad52cce5
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
<!
-- can not use doctype --
>
<!--
Copyright 2004-2008 H2 Group. Licensed under the H2 License, Version 1.0 (http://h2database.com/html/license.html).
Initial Developer: H2 Group
-->
<html
xmlns=
"http://www.w3.org/1999/xhtml"
lang=
"en"
xml:lang=
"en"
>
<
head><meta
http-equiv=
"Content-Type"
content=
"text/html;charset=utf-8"
/><title
>
Error Analytics
<
/title><
link
rel=
"stylesheet"
type=
"text/css"
href=
"stylesheet.css"
/>
<html
><head
>
<
meta
http-equiv=
"Content-Type"
content=
"text/html;charset=utf-8"
/
>
<title>
Online Error Analyzer
</title>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"stylesheet.css"
/>
<style
type=
"text/css"
>
a
{
text-decoration
:
underline
;
...
...
@@ -23,8 +23,10 @@ a.disabled {
font-weight
:
normal
;
color
:
lightGray
;
}
input
{
vertical-align
:
middle
;
}
</style>
</head><body
style=
"margin:20px"
>
<script
type=
"text/javascript"
>
//
<!--
...
...
@@ -33,6 +35,11 @@ function $(id) {
return
document
.
getElementById
(
id
);
}
var
lastError
=
''
;
var
hasData
=
false
;
var
errorCode
=
'0'
;
var
build
=
''
;
function
goDetails
(
code
)
{
code
=
code
.
replace
(
'21S'
,
'210'
);
code
=
code
.
replace
(
'42S'
,
'421'
);
...
...
@@ -42,15 +49,33 @@ function goDetails(code) {
$
(
'more'
).
src
=
'http://h2database.com/javadoc/org/h2/constant/ErrorCode.html#c'
+
code
;
}
function
go
(
url
,
file
)
{
function
go
(
file
,
line
)
{
var
url
;
if
(
$
(
'rawSource'
).
checked
==
true
)
{
url
=
"source.html?file="
;
url
+=
file
;
url
+=
"&line="
;
url
+=
line
;
url
+=
"&build="
;
url
+=
build
;
}
else
{
var
tag
=
'trunk/h2'
;
if
(
build
==
64
)
{
tag
=
'tags/version-1.0.'
+
build
;
}
else
if
(
build
>=
63
)
{
tag
=
'tags/version-1.0.'
+
build
+
'/h2'
;
}
url
=
'http://code.google.com/p/h2database/source/browse/'
;
url
+=
tag
;
url
+=
'/src/main/'
;
url
+=
file
;
url
+=
'#'
;
url
+=
line
;
}
$
(
'file'
).
innerHTML
=
file
;
$
(
'code'
).
src
=
url
;
}
var
lastError
=
''
;
var
hasData
=
false
;
var
errorCode
=
'0'
;
function
convert
()
{
try
{
var
s
=
$
(
'error'
).
value
;
...
...
@@ -79,11 +104,12 @@ function convert() {
}
idx
=
0
;
while
(
true
)
{
var
start
=
s
.
indexOf
(
"org.h2."
,
idx
);
var
start
=
s
.
indexOf
(
"
at
org.h2."
,
idx
);
if
(
start
<
0
)
{
result
+=
s
.
substring
(
idx
);
break
;
}
start
+=
3
;
// skip 'at '
if
(
idx
>
0
)
{
result
+=
s
.
substring
(
idx
,
start
);
}
...
...
@@ -101,22 +127,13 @@ function convert() {
var
file
=
element
.
substring
(
open
+
1
,
colon
);
var
lineNumber
=
element
.
substring
(
colon
+
1
,
element
.
length
-
1
);
var
fullFileName
=
packageName
.
replace
(
/
\.
/g
,
'/'
)
+
"/"
+
file
;
var
url
=
"http://h2database.com/html/source.html?file="
;
url
+=
fullFileName
;
url
+=
"&line="
;
url
+=
lineNumber
;
url
+=
"&build="
;
url
+=
build
;
result
+=
"<a href='javascript:go(
\"
"
;
result
+=
url
;
result
+=
"
\"
,
\"
"
;
result
+=
fullFileName
;
result
+=
"
\"
)'>"
;
result
+=
"
\"
,"
;
result
+=
lineNumber
;
result
+=
")'>"
;
result
+=
element
;
result
+=
"</a>"
;
hasData
=
true
;
idx
=
end
+
1
;
}
...
...
@@ -143,20 +160,32 @@ function select(id) {
if
(
id
==
'details'
)
{
goDetails
(
errorCode
);
}
sizeTextArea
();
}
function
sizeTextArea
()
{
var
height
=
document
.
body
.
clientHeight
;
var
error
=
$
(
'error'
);
error
.
style
.
height
=
(
height
-
error
.
offsetTop
-
25
)
+
'px'
;
var
more
=
$
(
'more'
);
more
.
style
.
height
=
(
height
-
more
.
offsetTop
-
25
)
+
'px'
;
var
code
=
$
(
'code'
);
code
.
style
.
height
=
(
height
-
$
(
'sourceTable'
).
offsetTop
-
code
.
offsetTop
-
30
)
+
'px'
;
}
//-->
</script>
<h1>
Error Analytics
</h1>
</head>
<body
style=
"margin:20px"
onresize=
"sizeTextArea();"
onload=
"sizeTextArea();"
>
<h1>
Online Error Analyzer
</h1>
<h2>
<a
href=
"javascript:select('input')"
id=
"inputTab"
>
Input
</a>
<a
href=
"javascript:select('details')"
id=
"detailsTab"
>
Details
</a>
<a
href=
"javascript:select('source')"
id=
"sourceTab"
>
Source Code
</a>
</h2>
<hr/>
<div
id=
"input"
>
<p>
Fill in the error message and stack trace and click on 'Details' or 'Source Code':
</p>
<textarea
id=
"error"
cols=
"100"
style=
"width: 100%; overflow: auto;"
rows=
"20"
...
...
@@ -169,32 +198,31 @@ function select(id) {
>
</textarea>
</div>
<div
id=
"details"
>
<p><b>
Error Code:
</b><span
id=
"errorCode"
></span></p>
<p><b>
Product Version:
</b><span
id=
"version"
></span></p>
<p><b>
Message:
</b></p>
<p
id=
"message"
></p>
<p><b>
More Information:
</b></p>
<iframe
id=
"more"
frameborder=
"0"
marginwidth=
"0"
marginheight=
"0"
width=
"100%"
height=
"
3
00px"
src=
""
>
<iframe
id=
"more"
frameborder=
"0"
marginwidth=
"0"
marginheight=
"0"
width=
"100%"
height=
"
1
00px"
src=
""
>
</iframe>
</div>
<div
id=
"source"
>
<table
style=
"border:0px"
width=
"100%"
><tr><td
style=
"border:0px"
width=
"30px"
>
<table
id=
"sourceTable"
style=
"border:0px"
width=
"100%"
><tr>
<td
style=
"border:0px"
width=
"30px"
>
<p><b>
Stack Trace:
</b></p>
<p
id=
"links"
></p>
</td><td
style=
"border:0px"
width=
"90%"
>
<p><b>
Source File:
</b><span
id=
"file"
></span></p>
<iframe
id=
"code"
frameborder=
"0"
marginwidth=
"0"
marginheight=
"0"
width=
"100%"
height=
"300px"
src=
""
>
<p><b>
Source File:
</b><span
id=
"file"
></span><br
/>
Raw file
<input
type=
"checkbox"
id=
"rawSource"
/>
(fast; only Firefox)
</p>
<iframe
id=
"code"
frameborder=
"0"
marginwidth=
"0"
marginheight=
"0"
width=
"100%"
height=
"100px"
src=
""
>
</iframe>
</td></tr></table>
</td>
</tr></table>
</div>
<script
type=
"text/javascript"
>
//
<!--
select
(
'input'
);
//-->
</script>
</body></html>
\ No newline at end of file
h2/src/docsrc/textbase/_messages_en.properties
浏览文件 @
ad52cce5
...
...
@@ -25,7 +25,7 @@
90002
=
Method is only allowed for a query. Use execute or executeUpdate instead of executeQuery
90003
=
Hexadecimal string with odd number of characters
\:
{0}
90004
=
Hexadecimal string contains non-hex character
\:
{0}
90005
=
Value too long for column {0}
90005
=
Value too long for column {0}
\:
{1}
90006
=
NULL not allowed for column {0}
90007
=
The object is already closed
90008
=
Invalid value {0} for parameter {1}
...
...
h2/src/main/org/h2/engine/Constants.java
浏览文件 @
ad52cce5
...
...
@@ -29,7 +29,7 @@ package org.h2.engine;
* build.html
* mainWeb.html
* download.html
* - Maybe increase TCP_DRIVER_VERSION
* - Maybe increase TCP_DRIVER_VERSION
(but clients must be backwards compatible!)
* - Check code coverage
* - No " Message.get" (must be "throw Message.get")
* - No TODO in the docs, remove @~ in .utf8.txt files
...
...
h2/src/test/org/h2/test/TestAll.java
浏览文件 @
ad52cce5
...
...
@@ -151,161 +151,32 @@ java org.h2.test.TestAll timer
/*
add sourceError as an official link
corruption should be it's own error code(s)
Online Error Analyzer
add a 'kill process while altering tables' test case
1.5 tool: closeSilently(s1, s2,...)
implement max_query_time and use it for TestCrashAPI
document IKVM
adjust cache memory usage
simple pure java config file (interpreted)
orphan?
javadoc: design patterns
sourceforge h2 database
update wikipedia
try https://hudson.dev.java.net/
quaere:
where(test(a).bigger(b));
where(test(a, BIGGER, b));
where(test(a).bigger(b).and(a).smaller(b));
Roadmap:
Move Maven 2 repository from hsql.sf.net to h2database.sf.net
History:
Test Recovery with MAX_LOG_FILE_SIZE=1; test with various log file sizes
Test H2 on OS X (result are here: h2-2007-12-27_test.zip)
Web site:
link to history page, bug page
Add a link to the google code bug page
test DbStarter
----
A file is sent although the Japanese translation has not been completed yet.
----
link from h2 console to sourceError
add sourceError as an official link
Adjust cache memory usage
At startup, when corrupted, say if LOG=0 was used before
slow:
select ta.attname, ia.attnum, ic.relname
from pg_catalog.pg_attribute ta, pg_catalog.pg_attribute ia, pg_catalog.pg_class ic, pg_catalog.pg_index i, pg_catalog.pg_namespace n
where ic.relname = 'dummy_pkey'
AND n.nspname = ''
AND ic.oid = i.indexrelid
AND n.oid = ic.relnamespace
AND ia.attrelid = i.indexrelid
AND ta.attrelid = i.indrelid
AND ta.attnum = i.indkey[ia.attnum-1]
AND (NOT ta.attisdropped)
AND (NOT ia.attisdropped)
order by ia.attnum;
DROP TABLE IF EXISTS TEST;
CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR);
@LOOP 1000000 INSERT INTO TEST VALUES(?, SPACE(100000));
<stop>
<reconnect>
out of memory?
don't create @~ of not translated
extend tests that simulate power off
HSQLDB compatibility:
Openfire server uses this script to setup a user permissions
on the fresh-installed server. The database is [current] HSQLDB :
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET SCHEMA PUBLIC
Unfortunately, this does not work in H2
Wrong user name or password [08004-55]
rename Performance > Comparison [/Compatibility]
move Comparison to Other Database Engines > Comparison
move Products that Work with H2 > Comparison
move Performance Tuning > Advanced Topics
testHalt
java org.h2.test.TestAll halt
Extend tests that simulate power off
Automate real power off tests
timer test
// test with garbage at the end of the log file (must be consistently detected as such)
// TestRandomSQL is too random; most statements fails
// extend the random join test that compared the result against PostgreSQL
// long running test with the same database
// repeatable test with a very big database (making backups of the database files)
ftp server: problem with multithreading?
h2\src\docsrc\html\images\SQLInjection.txt
Convert SQL-injection-2.txt to html document, include SQLInjection.java sample
send http://thecodist.com/fiche/thecodist/article/sql-injections-how-not-to-get-stuck to JavaWorld, TheServerSide,
Send SQL Injection solution proposal to PostgreSQL, MySQL, Derby, HSQLDB,...
MySQL, PostgreSQL
READ_TEXT(fileName String) returning a CLOB.
I am not sure if this will read the CLOB in memory however.
Improve LOB in directories performance
http://fastutil.dsi.unimi.it/
http://javolution.org/
http://joda-time.sourceforge.net/
http://ibatis.apache.org/
http://www.igniterealtime.org/projects/openfire/index.jsp
translation:
src/org.h2.res/help.csv (using ${.} as in .jsp?)
javadocs (using generated ${.} ?)
glossary
spell check / word list per language
translated .pdf
*/
// run TestHalt
// GroovyServlet
// Cluster: hot deploy (adding a node on runtime)
// test with PostgreSQL Version 8.2
// http://dev.helma.org/Wiki/RhinoLoader
// test with garbage at the end of the log file (must be consistently detected as such)
// test LIKE: compare against other databases
Test with many columns (180), create index
add a 'kill process while altering tables' test case
Test Recovery with MAX_LOG_FILE_SIZE=1; test with various log file sizes
// TestRandomSQL is too random; most statements fails
Roadmap:
// extend the random join test that compared the result against PostgreSQL
// long running test with the same database
History:
// repeatable test with a very big database (making backups of the database files)
/*
Features of H2
- Case insensitive string data type
- GROUP_CONCAT aggregate, User defined aggregates
- Fulltext search
- MVCC
- User defined types
*/
if
(
args
.
length
>
0
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论