Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
ad52cce5
提交
ad52cce5
authored
17 年前
作者:
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
...
...
This diff is collapsed.
Click to expand it.
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"
>
...
...
This diff is collapsed.
Click to expand it.
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>
...
...
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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}
...
...
This diff is collapsed.
Click to expand it.
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
...
...
This diff is collapsed.
Click to expand it.
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
)
{
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论