Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
bc5a2a8e
提交
bc5a2a8e
authored
6月 13, 2007
作者:
Thomas Mueller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
--no commit message
--no commit message
上级
f188e9dc
隐藏空白字符变更
内嵌
并排
正在显示
31 个修改的文件
包含
92 行增加
和
1815 行删除
+92
-1815
TestAll.java
h2/src/test/org/h2/test/TestAll.java
+31
-30
DatDb.java
h2/src/test/org/h2/test/cases/DatDb.java
+0
-292
TestBlobDir.java
h2/src/test/org/h2/test/cases/TestBlobDir.java
+0
-234
TestCalendar.java
h2/src/test/org/h2/test/cases/TestCalendar.java
+0
-144
TestCloseDelay.java
h2/src/test/org/h2/test/cases/TestCloseDelay.java
+0
-72
TestCollation.java
h2/src/test/org/h2/test/cases/TestCollation.java
+0
-129
TestCompatibilityMySQL.java
h2/src/test/org/h2/test/cases/TestCompatibilityMySQL.java
+0
-53
TestConnect.java
h2/src/test/org/h2/test/cases/TestConnect.java
+0
-33
TestDate.java
h2/src/test/org/h2/test/cases/TestDate.java
+0
-38
TestFullTextSpeed.java
h2/src/test/org/h2/test/cases/TestFullTextSpeed.java
+0
-81
TestFunction.java
h2/src/test/org/h2/test/cases/TestFunction.java
+0
-22
TestHibernateClob.java
h2/src/test/org/h2/test/cases/TestHibernateClob.java
+0
-152
TestKiller.java
h2/src/test/org/h2/test/cases/TestKiller.java
+0
-92
TestLimitOffset.java
h2/src/test/org/h2/test/cases/TestLimitOffset.java
+0
-50
TestLinearIndex.java
h2/src/test/org/h2/test/cases/TestLinearIndex.java
+0
-55
TestMemoryDb.java
h2/src/test/org/h2/test/cases/TestMemoryDb.java
+0
-22
TestObject.java
h2/src/test/org/h2/test/cases/TestObject.java
+0
-48
TestOther.java
h2/src/test/org/h2/test/cases/TestOther.java
+0
-51
TestRebuildIndex.java
h2/src/test/org/h2/test/cases/TestRebuildIndex.java
+0
-45
TestRemoteMetaData.java
h2/src/test/org/h2/test/cases/TestRemoteMetaData.java
+0
-32
TestUpdatableResultSet.java
h2/src/test/org/h2/test/cases/TestUpdatableResultSet.java
+0
-52
TestWithRecursive.java
h2/src/test/org/h2/test/cases/TestWithRecursive.java
+0
-50
TestPreparedStatement.java
h2/src/test/org/h2/test/jdbc/TestPreparedStatement.java
+13
-1
TestWrite.java
h2/src/test/org/h2/test/poweroff/TestWrite.java
+4
-0
RandomGen.java
h2/src/test/org/h2/test/synth/RandomGen.java
+1
-1
TestHalt.java
h2/src/test/org/h2/test/synth/TestHalt.java
+8
-5
TestHaltApp.java
h2/src/test/org/h2/test/synth/TestHaltApp.java
+1
-5
CheckTextFiles.java
h2/src/tools/org/h2/tools/code/CheckTextFiles.java
+1
-0
GenerateDoc.java
h2/src/tools/org/h2/tools/doc/GenerateDoc.java
+2
-9
dictionary.txt
h2/src/tools/org/h2/tools/doc/dictionary.txt
+12
-0
Indexer.java
h2/src/tools/org/h2/tools/indexer/Indexer.java
+19
-17
没有找到文件。
h2/src/test/org/h2/test/TestAll.java
浏览文件 @
bc5a2a8e
...
@@ -7,6 +7,8 @@ package org.h2.test;
...
@@ -7,6 +7,8 @@ package org.h2.test;
import
java.sql.SQLException
;
import
java.sql.SQLException
;
import
java.util.Properties
;
import
java.util.Properties
;
import
org.h2.engine.Constants
;
import
org.h2.message.Message
;
import
org.h2.server.TcpServer
;
import
org.h2.server.TcpServer
;
import
org.h2.test.jdbc.*
;
import
org.h2.test.jdbc.*
;
import
org.h2.test.jdbc.xa.TestXA
;
import
org.h2.test.jdbc.xa.TestXA
;
...
@@ -20,6 +22,7 @@ import org.h2.test.synth.TestKill;
...
@@ -20,6 +22,7 @@ import org.h2.test.synth.TestKill;
import
org.h2.test.synth.TestMulti
;
import
org.h2.test.synth.TestMulti
;
import
org.h2.test.synth.TestRandomSQL
;
import
org.h2.test.synth.TestRandomSQL
;
import
org.h2.test.synth.TestSynth
;
import
org.h2.test.synth.TestSynth
;
import
org.h2.test.synth.TestTimer
;
import
org.h2.test.unit.TestBitField
;
import
org.h2.test.unit.TestBitField
;
import
org.h2.test.unit.TestCache
;
import
org.h2.test.unit.TestCache
;
import
org.h2.test.unit.TestCompress
;
import
org.h2.test.unit.TestCompress
;
...
@@ -68,6 +71,9 @@ start cmd /k "java org.h2.test.TestAll random >testRandom.txt"
...
@@ -68,6 +71,9 @@ start cmd /k "java org.h2.test.TestAll random >testRandom.txt"
start cmd /k "java org.h2.test.TestAll btree >testBtree.txt"
start cmd /k "java org.h2.test.TestAll btree >testBtree.txt"
start cmd /k "java org.h2.test.TestAll halt >testHalt.txt"
start cmd /k "java org.h2.test.TestAll halt >testHalt.txt"
java org.h2.test.TestAll timer
Test for hot spots:
Test for hot spots:
java -agentlib:yjpagent=sampling,noj2ee,dir=C:\temp\Snapshots org.h2.test.bench.TestPerformance -init -db 1
java -agentlib:yjpagent=sampling,noj2ee,dir=C:\temp\Snapshots org.h2.test.bench.TestPerformance -init -db 1
java -Xmx512m -Xrunhprof:cpu=samples,depth=8 org.h2.tools.RunScript -url jdbc:h2:test;TRACE_LEVEL_FILE=3;LOG=2;MAX_LOG_SIZE=1000;DATABASE_EVENT_LISTENER='org.h2.samples.ShowProgress' -user sa -script test.sql
java -Xmx512m -Xrunhprof:cpu=samples,depth=8 org.h2.tools.RunScript -url jdbc:h2:test;TRACE_LEVEL_FILE=3;LOG=2;MAX_LOG_SIZE=1000;DATABASE_EVENT_LISTENER='org.h2.samples.ShowProgress' -user sa -script test.sql
...
@@ -88,23 +94,32 @@ java -Xmx512m -Xrunhprof:cpu=samples,depth=8 org.h2.tools.RunScript -url jdbc:h2
...
@@ -88,23 +94,32 @@ java -Xmx512m -Xrunhprof:cpu=samples,depth=8 org.h2.tools.RunScript -url jdbc:h2
TestAll
test
=
new
TestAll
();
TestAll
test
=
new
TestAll
();
test
.
printSystem
();
test
.
printSystem
();
Constants
.
MAX_FILE_RETRY
=
1
;
/*
/*
Before you ask support:
Query is slow
- Run ANALYSE (see documentation for details)
News: add H2 Database News
Negative dictionary:
Email Subscription: If you like to get informed by email about new releases,
Please note that
subscribe here. The email addresses of members are only used in this context.
Usually, only one mail every few weeks will be sent.
Email:
improve error message:
timer test
Table TEST not found. Possible reasons: typo; the table is in another database or schema; case mismatch (use double quotes) [42S02-46]
h2\src\docsrc\html\images\SQLInjection.txt
PostgreSQL:
--SET search_path = public, pg_catalog;
--id serial NOT NULL,
document rws / rwd
Mail http://sf.net/projects/samooha
christmas lights tests
java.lang.Exception: query was too quick; result: 0 time:968
at org.h2.test.TestBase.logError(TestBase.java:220)
at org.h2.test.db.TestCases$1.run(TestCases.java:170)
at java.lang.Thread.run(Thread.java:595)
h2\src\docsrc\html\images\SQLInjection.txt
D:\pictures\2007-email
D:\pictures\2007-email
...
@@ -116,23 +131,6 @@ MySQL, PostgreSQL
...
@@ -116,23 +131,6 @@ MySQL, PostgreSQL
http://semmle.com/
http://semmle.com/
try out, find bugs
try out, find bugs
Session sess1 = DBConnection.openSession();
//Wenn Die Transaction erst nach sess2.close() gestartet wird, dann funktioniert es
Transaction t = sess1.beginTransaction();
Session sess2 = DBConnection.openSession();
//Wenn um den query eine Transaction gelegt wird, funktioniert es auch
// Transaction t2 = sess2.beginTransaction();
System.out.println("Number of animals " + sess2.createCriteria(Animal.class).list().size());
// t2.commit();
sess2.close();
Animal a = new Animal();
sess1.save(a);
sess1.flush();
t.commit();
sess1.close();
download/trace*.log
Mail P2P
Mail P2P
DROP TABLE TEST;
DROP TABLE TEST;
...
@@ -174,7 +172,8 @@ I will add this to the todo list.
...
@@ -174,7 +172,8 @@ I will add this to the todo list.
Docs: Fix Quickstart
Docs: Fix Quickstart
Dave Brewster (dbrewster at guidewire dot com): currency: Add a setting to allow BigDecimal extensions
Dave Brewster (dbrewster at guidewire dot com): currency:
Add a setting to allow BigDecimal extensions
Send SQL Injection solution proposal to PostgreSQL, MySQL, Derby, HSQLDB,...
Send SQL Injection solution proposal to PostgreSQL, MySQL, Derby, HSQLDB,...
...
@@ -195,6 +194,8 @@ CREATE [ TEMPORARY | TEMP ] SEQUENCE name [ INCREMENT [ BY ] increment ]
...
@@ -195,6 +194,8 @@ CREATE [ TEMPORARY | TEMP ] SEQUENCE name [ INCREMENT [ BY ] increment ]
[ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
[ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
[ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
[ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
http://db.apache.org/ddlutils/ (write a H2 driver)
http://db.apache.org/ddlutils/ (write a H2 driver)
ant docs doesn't work
*/
*/
/*
/*
...
@@ -365,6 +366,8 @@ SELECT COUNT(*) AS A FROM TEST GROUP BY ID HAVING A>0;
...
@@ -365,6 +366,8 @@ SELECT COUNT(*) AS A FROM TEST GROUP BY ID HAVING A>0;
new
TestMulti
().
runTest
(
test
);
new
TestMulti
().
runTest
(
test
);
}
else
if
(
"halt"
.
equals
(
args
[
0
]))
{
}
else
if
(
"halt"
.
equals
(
args
[
0
]))
{
new
TestHaltApp
().
runTest
(
test
);
new
TestHaltApp
().
runTest
(
test
);
}
else
if
(
"timer"
.
equals
(
args
[
0
]))
{
new
TestTimer
().
runTest
(
test
);
}
}
}
else
{
}
else
{
test
.
runTests
();
test
.
runTests
();
...
@@ -390,8 +393,6 @@ SELECT COUNT(*) AS A FROM TEST GROUP BY ID HAVING A>0;
...
@@ -390,8 +393,6 @@ SELECT COUNT(*) AS A FROM TEST GROUP BY ID HAVING A>0;
// new TestSpeed().runTest(this);
// new TestSpeed().runTest(this);
// new TestSpeed().runTest(this);
// new TestSpeed().runTest(this);
// smallLog = big = networked = memory = ssl = textStorage = diskResult = deleteIndex = traceSystemOut = diskUndo = false;
// smallLog = big = networked = memory = ssl = textStorage = diskResult = deleteIndex = traceSystemOut = diskUndo = false;
// traceLevelFile = throttle = 0;
// traceLevelFile = throttle = 0;
// big = true;
// big = true;
...
...
h2/src/test/org/h2/test/cases/DatDb.java
deleted
100644 → 0
浏览文件 @
f188e9dc
package
org
.
h2
.
test
.
cases
;
/*
* DatDb.java
*
* Created on 21 maggio 2007, 12.30
*
*/
//package com.impl.util;
import
java.sql.Connection
;
import
java.sql.DatabaseMetaData
;
import
java.sql.DriverManager
;
import
java.sql.ResultSet
;
import
java.sql.*
;
import
java.util.HashMap
;
import
java.util.Random
;
/**
*
* @author fbi
*/
public
class
DatDb
{
private
static
DatDb
datdb
;
static
HashMap
cP
=
new
HashMap
();
static
Connection
sharedCon
;
//private String url = "jdbc:h2:file:" + Constants.DAT_DB;
// private String url = "jdbc:h2:file:/temp/datdb;TRACE_LEVEL_FILE=3";
private
String
url
=
"jdbc:h2:file:/temp/datdb;DATABASE_EVENT_LISTENER='org.h2.samples.ShowProgress'"
;
/** Creates a new instance of DatDb */
protected
DatDb
()
{
try
{
long
t1
=
System
.
currentTimeMillis
();
Class
.
forName
(
"org.h2.Driver"
);
System
.
out
.
println
(
" getConnection --> "
);
//This is a 'special' connection used only to execute select statements (no transactions)
sharedCon
=
DriverManager
.
getConnection
(
url
,
"sa"
,
""
);
System
.
out
.
println
(
" getConnection <-- "
+
(
System
.
currentTimeMillis
()-
t1
));
sharedCon
.
setReadOnly
(
true
);
}
catch
(
Exception
e
)
{
//Util.logThrowable(e);
System
.
out
.
println
(
" error: "
+
e
.
getMessage
());
}
}
public
static
synchronized
DatDb
getInstance
()
{
if
(
datdb
==
null
)
{
datdb
=
new
DatDb
();
}
return
datdb
;
}
public
void
init
(
String
tableName
)
{
//String sc = ma.substring(ma.lastIndexOf("/")+1);
try
{
Connection
con
=
DriverManager
.
getConnection
(
url
,
"sa"
,
""
);
cP
.
put
(
tableName
,
con
);
createTable
(
con
,
tableName
);
}
catch
(
Exception
e
)
{
//Util.logThrowable(e);
}
}
public
void
save
(
String
tableName
,
String
key
,
String
xml
)
{
Connection
con
=
null
;
//String tableName = ma.substring(ma.lastIndexOf("/")+1);
try
{
con
=
(
Connection
)
cP
.
get
(
tableName
);
if
(
con
==
null
)
throw
new
RuntimeException
(
"Unable to find the connection"
);
con
.
setAutoCommit
(
false
);
PreparedStatement
stm
=
null
;
stm
=
con
.
prepareStatement
(
"delete from "
+
tableName
+
" where fname = ?"
);
stm
.
setString
(
1
,
key
);
stm
.
executeUpdate
();
stm
.
close
();
stm
=
con
.
prepareStatement
(
"insert into "
+
tableName
+
" (fname, gendate, dat) values(?,?,?)"
);
stm
.
setString
(
1
,
key
);
stm
.
setLong
(
2
,
System
.
currentTimeMillis
());
//--- original code ---->>>> stm.setObject(3, com.fw.util.Util.compressString(xml));
stm
.
setObject
(
3
,
xml
);
stm
.
executeUpdate
();
con
.
commit
();
}
catch
(
Exception
e
)
{
try
{
con
.
rollback
();
}
catch
(
SQLException
ex
)
{
ex
.
printStackTrace
();
}
// Util.logThrowable(e);
}
}
public
long
getGenDate
(
String
tableName
,
String
key
)
{
Connection
con
=
null
;
long
gendate
=
0
;
PreparedStatement
stm
=
null
;
try
{
stm
=
sharedCon
.
prepareStatement
(
"select gendate from "
+
tableName
+
" where fname = ?"
);
stm
.
setString
(
1
,
key
);
ResultSet
rs
=
stm
.
executeQuery
();
while
(
rs
.
next
())
{
gendate
=
rs
.
getLong
(
1
);
}
}
catch
(
Exception
e
)
{
//Util.logThrowable(e);
}
finally
{
try
{
stm
.
close
();
}
catch
(
SQLException
ex
)
{
ex
.
printStackTrace
();
}
}
//System.out.println ("getGenDate table "+tableName+" key "+key+" returns "+gendate);
return
gendate
;
}
public
boolean
containsKey
(
String
tableName
,
String
key
)
{
Connection
con
=
null
;
boolean
b
=
false
;
PreparedStatement
stm
=
null
;
try
{
stm
=
sharedCon
.
prepareStatement
(
"select fname from "
+
tableName
+
" where fname = ?"
);
stm
.
setString
(
1
,
key
);
ResultSet
rs
=
stm
.
executeQuery
();
while
(
rs
.
next
())
{
b
=
true
;
}
}
catch
(
Exception
e
)
{
//Util.logThrowable(e);
}
finally
{
try
{
stm
.
close
();
}
catch
(
SQLException
ex
)
{
ex
.
printStackTrace
();
}
}
//System.out.println ("containsKey table "+tableName+" key "+key+" returns "+b);
return
b
;
}
public
String
getDat
(
String
tableName
,
String
key
)
{
String
ret
=
null
;
byte
buf
[]
=
null
;
PreparedStatement
stm
=
null
;
try
{
stm
=
sharedCon
.
prepareStatement
(
"select dat from "
+
tableName
+
" where fname = ?"
);
stm
.
setString
(
1
,
key
);
ResultSet
rs
=
stm
.
executeQuery
();
while
(
rs
.
next
())
{
buf
=
rs
.
getBytes
(
1
);
}
if
(
buf
==
null
)
{
//System.out.println (" NULL BUF for table "+tableName+" KEY "+ key);
return
ret
;
}
// ------->>>> Original code ------<<<< ret = Util.uncompressString(buf);
ret
=
new
String
(
buf
);
}
catch
(
Exception
ex
)
{
ex
.
printStackTrace
();
}
finally
{
try
{
stm
.
close
();
}
catch
(
SQLException
ex
)
{
ex
.
printStackTrace
();
}
}
return
ret
;
}
private
void
createTable
(
Connection
con
,
String
tableName
)
{
ResultSet
rs
=
null
;
try
{
DatabaseMetaData
dmd
=
con
.
getMetaData
();
rs
=
dmd
.
getTables
(
null
,
null
,
null
,
null
);
String
temp
=
null
;
while
(
rs
.
next
())
{
temp
=
rs
.
getString
(
3
);
if
(
temp
.
equalsIgnoreCase
(
tableName
))
{
return
;
}
}
}
catch
(
Exception
e
)
{
//Util.logThrowable(e);
}
try
{
java
.
sql
.
Statement
stm
=
con
.
createStatement
();
stm
.
execute
(
"CREATE TABLE "
+
tableName
+
" (fname varchar(80) primary key, gendate bigint, dat varchar) "
);
System
.
out
.
println
(
" Table "
+
tableName
+
" created"
);
}
catch
(
Exception
e
)
{
// Util.logThrowable(e);
}
}
public
void
close
(
String
tableName
)
{
Connection
c
=
(
Connection
)
cP
.
remove
(
tableName
);
try
{
c
.
close
();
}
catch
(
SQLException
ex
)
{
ex
.
printStackTrace
();
}
}
//-------------------------------------- TEST START ------------------------
public
static
void
main
(
String
ar
[])
{
System
.
out
.
println
(
" Starting "
);
DatDb
db
=
new
DatDb
();
db
.
go
();
}
private
void
go
()
{
/*
* Please change the values as needed.
* The test I've made uses MAX_REC = 400000
* and MAX_TAB = 50,
* 20.000.000 records!
*/
int
MAX_REC
=
400000
;
int
MAX_TAB
=
10
;
String
tableName
=
null
;
long
start
=
System
.
currentTimeMillis
();
System
.
out
.
println
(
" Start test "
);
long
trec
=
0
;
for
(
int
j
=
0
;
j
<
MAX_TAB
;
j
++)
{
tableName
=
"n"
+
j
;
try
{
Connection
con
=
DriverManager
.
getConnection
(
url
,
"sa"
,
""
);
cP
.
put
(
tableName
,
con
);
createTable
(
con
,
tableName
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
long
t1
=
System
.
currentTimeMillis
();
trec
=
t1
;
for
(
int
k
=
0
;
k
<
MAX_REC
;
k
++
){
this
.
save
(
tableName
,
"this_is_a_possible_key_value"
+
k
,
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"
);
if
(
k
>
0
&&
(
k
%
10000
)
==
0
)
{
System
.
out
.
println
(
" added more 10000 records to "
+
tableName
+
" spent "
+
(
System
.
currentTimeMillis
()-
trec
)+
" K "
+
k
);
trec
=
System
.
currentTimeMillis
();
}
}
close
(
tableName
);
System
.
out
.
println
(
" TABLE "
+
tableName
+
" completed with "
+
MAX_REC
+
" millis "
+
(
System
.
currentTimeMillis
()
-
t1
));
}
// Now, try to get back some raws
int
tkey
=
0
;
int
rkey
=
0
;
Random
rnd
=
new
Random
();
for
(
int
l
=
0
;
l
<
100
;
l
++)
{
start
=
System
.
currentTimeMillis
();
tkey
=
rnd
.
nextInt
(
MAX_TAB
);
rkey
=
rnd
.
nextInt
(
MAX_REC
);
this
.
getDat
(
"n"
+
tkey
,
"questa_essere_la_chivae_numero_"
+
rkey
);
// System.out.println ("estract dat key "+rkey+" from table n"+ tkey+" in millis "+ (System.currentTimeMillis() - start));
}
System
.
out
.
println
(
" exercise end"
);
try
{
sharedCon
.
close
();
}
catch
(
SQLException
ex
)
{
ex
.
printStackTrace
();
}
}
}
h2/src/test/org/h2/test/cases/TestBlobDir.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.io.BufferedInputStream
;
import
java.io.ByteArrayInputStream
;
import
java.io.DataInputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.sql.Connection
;
import
java.sql.Driver
;
import
java.sql.DriverManager
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
org.h2.tools.DeleteDbFiles
;
/*
1) the trace has one function "Enabling the Trace Option at Runtime by
Manually Creating a File". how could I disable this function? I don't
want the user could use one file to trace my database info...
*/
/*
D:\data\h2\bin>java -Xrunhprof:cpu=samples,depth=8 org.h2.test.TestAll
Java: 1.5.0_10-b03, Java HotSpot(TM) Client VM, Sun Microsystems Inc.
Env: Windows XP, x86, 5.1, Service Pack 2, \ ; \r\n CH de Cp1252
time to connect: 984ms
h2.lobFilesInDirectories: true
h2.lobFilesPerDirectory: 256
writing 1000: 5688ms
writing 2000: 4062ms
writing 3000: 5766ms
writing 4000: 3531ms
writing 5000: 3860ms
writing 6000: 8734ms
writing 7000: 3703ms
writing 8000: 3906ms
writing 9000: 11250ms
writing 10000: 3813ms
time to complete writing: 54313ms
Dumping CPU usage by sampling running threads ... done.
h2.lobFilesInDirectories: false
time to complete writing: 49828ms
time to complete reading: 2953ms
time to connect: 984ms
h2.lobFilesInDirectories: true
h2.lobFilesPerDirectory: 256
time to complete writing: 98687ms
time to complete reading: 2625ms
time to connect: 47ms
FIXED:
h2.lobFilesPerDirectory: 256
time to complete writing: 45656ms
h2.lobFilesPerDirectory: 1024
time to complete writing: 158204ms
h2.lobFilesInDirectories: false
time to complete writing: 17187ms
h2.lobFilesInDirectories: true
h2.lobFilesPerDirectory: 16
writing 1000: 5610ms
writing 2000: 1984ms
writing 3000: 3000ms
writing 4000: 6844ms
writing 5000: 7734ms
writing 6000: 11578ms
writing 7000: 6407ms
writing 8000: 6812ms
writing 9000: 15344ms
writing 10000: 7375ms
time to complete writing: 72688ms
time to complete writing: 74578ms
time to complete reading: 2734ms
time to connect: 47ms
*/
public
class
TestBlobDir
{
// Start h2 start parameters:
// -Dh2.lobFilesInDirectories=true -Dh2.lobFilesPerDirectory=16
public
static
void
main
(
String
[]
args
)
throws
Exception
{
System
.
setProperty
(
"h2.lobFilesInDirectories"
,
"true"
);
System
.
setProperty
(
"h2.lobFilesPerDirectory"
,
"256"
);
TestBlobDir
blobtest
=
new
TestBlobDir
();
DeleteDbFiles
.
execute
(
"."
,
"testabc"
,
true
);
Connection
conn
=
blobtest
.
getConnection
();
long
count
;
count
=
10000
;
blobtest
.
printParameters
(
conn
);
blobtest
.
insertBlobs
(
conn
,
1
,
count
,
500
);
// blobtest.testBlobs(conn, 1, count);
try
{
conn
.
close
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
// test time to build up a new connection
// conn = blobtest.getConnection();
// try {
// conn.close();
// } catch (SQLException e) {
// e.printStackTrace();
// }
}
public
Connection
getConnection
()
{
Connection
conn
=
null
;
try
{
Class
.
forName
(
"org.h2.Driver"
);
}
catch
(
ClassNotFoundException
e
)
{
e
.
printStackTrace
();
}
try
{
// String url = "jdbc:h2:tcp://localhost:9092/test123456789012345678901234567890";
// String url = "jdbc:h2:test123456789012345678901234567890";
String
url
=
"jdbc:h2:testabc"
;
Driver
driver
=
DriverManager
.
getDriver
(
url
);
driver
.
toString
();
long
start
=
System
.
currentTimeMillis
();
conn
=
DriverManager
.
getConnection
(
url
,
"sa"
,
""
);
System
.
out
.
println
(
"time to connect: "
+
(
System
.
currentTimeMillis
()
-
start
+
"ms"
));
}
catch
(
SQLException
e
)
{
throw
new
RuntimeException
(
e
);
}
return
conn
;
}
public
void
printParameters
(
Connection
conn
)
{
String
sqlStmt
=
"SELECT * FROM INFORMATION_SCHEMA.SETTINGS WHERE NAME LIKE 'h2.lob%';"
;
try
{
Statement
stmt
=
conn
.
createStatement
();
ResultSet
rs
=
stmt
.
executeQuery
(
sqlStmt
);
while
(
rs
.
next
())
{
System
.
out
.
print
(
rs
.
getString
(
"name"
)
+
": "
);
System
.
out
.
println
(
rs
.
getString
(
"value"
));
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
public
void
insertBlobs
(
Connection
conn
,
long
from
,
long
to
,
int
blobLength
)
{
byte
[]
byteblob
=
new
byte
[
blobLength
];
for
(
int
i
=
0
;
i
<
byteblob
.
length
;
i
++)
{
byteblob
[
i
]
=
'b'
;
}
// System.out.println("Inserting blobs of length " + blobLength + " from " + from + " to " + to);
String
sqlStmt
=
"INSERT INTO blobtable"
+
" (count, blobtest) VALUES (?1, ?2)"
;
long
startComulative
=
-
1
;
PreparedStatement
prepStmt
=
null
;
try
{
conn
.
createStatement
().
execute
(
"DROP TABLE blobtable IF EXISTS"
);
conn
.
createStatement
().
execute
(
"CREATE TABLE blobtable(count INT4, blobtest BLOB, PRIMARY KEY (count))"
);
prepStmt
=
conn
.
prepareStatement
(
sqlStmt
);
startComulative
=
System
.
currentTimeMillis
();
long
start
=
System
.
currentTimeMillis
();
for
(
long
i
=
1
;
i
<=
to
;
i
++)
{
prepStmt
.
setLong
(
1
,
i
);
InputStream
blob
=
new
ByteArrayInputStream
(
byteblob
);
prepStmt
.
setBinaryStream
(
2
,
blob
,
-
1
);
prepStmt
.
execute
();
if
(
i
%
1000
==
0
)
{
System
.
out
.
println
(
"writing "
+
i
+
": "
+
(
System
.
currentTimeMillis
()
-
start
+
"ms"
));
start
=
System
.
currentTimeMillis
();
}
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
System
.
out
.
println
(
"time to complete writing: "
+
(
System
.
currentTimeMillis
()
-
startComulative
)
+
"ms"
);
if
(
prepStmt
!=
null
)
{
try
{
prepStmt
.
close
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
}
public
void
testBlobs
(
Connection
conn
,
long
from
,
long
to
)
{
// System.out.println("Reading blobs" + " from " + from + " to " + to);
ResultSet
rs
=
null
;
byte
[]
data
;
BufferedInputStream
imageInputStream
=
null
;
String
sqlStmt
=
"SELECT * FROM blobtable where count=?1"
;
long
startComulative
=
-
1
;
PreparedStatement
prepStmt
=
null
;
try
{
prepStmt
=
conn
.
prepareStatement
(
sqlStmt
);
// long start = System.currentTimeMillis();
startComulative
=
System
.
currentTimeMillis
();
for
(
long
i
=
1
;
i
<=
to
;
i
++)
{
prepStmt
.
setLong
(
1
,
i
);
rs
=
prepStmt
.
executeQuery
();
if
(
rs
.
next
())
{
int
size
=
(
int
)
rs
.
getBlob
(
"blobtest"
).
length
();
imageInputStream
=
new
BufferedInputStream
(
rs
.
getBinaryStream
(
"blobtest"
));
try
{
DataInputStream
in
=
new
DataInputStream
(
imageInputStream
);
data
=
new
byte
[
size
];
in
.
readFully
(
data
);
in
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
else
{
System
.
out
.
println
(
"error, no data"
);
}
// if (i % 1000 == 0) {
// System.out.println("reading " + i + ": " + (System.currentTimeMillis() - start + "ms"));
// start = System.currentTimeMillis();
// }
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
System
.
out
.
println
(
"time to complete reading: "
+
(
System
.
currentTimeMillis
()
-
startComulative
)
+
"ms"
);
return
;
}
}
h2/src/test/org/h2/test/cases/TestCalendar.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.*
;
import
java.util.*
;
import
java.text.*
;
public
class
TestCalendar
{
static
Connection
conn
;
static
Statement
stat
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
// Firstly, demonstrate Java behaviour with 'illegal' times:
// Change default timezone...same as setting the Windows timezone in Control Panel.
// TimeZone.setDefault(TimeZone.getTimeZone("PST"));
TimeZone
.
setDefault
(
TimeZone
.
getTimeZone
(
"Australia/Melbourne"
));
// String s;
// Timestamp t;
//
// System.out.println("Watch carefully: this is what Java does with 'illegal' local times:");
//
// s = "2006-10-29 01:30:00"; // Valid
// t = Timestamp.valueOf(s);
// System.out.println("Instantiated: " + s + " Local: " + t.toString());
//
// s = "2006-10-29 01:59:59"; // Valid
// t = Timestamp.valueOf(s);
// System.out.println("Instantiated: " + s + " Output: " + t.toString());
//
// s = "2006-10-29 02:00:00"; // Illegal time...does not 'exist'
// t = Timestamp.valueOf(s);
// System.out.println("Instantiated: " + s + " Output: " + t.toString());
//
// s = "2006-10-29 02:30:00"; // Illegal time...does not 'exist'
// t = Timestamp.valueOf(s);
// System.out.println("Instantiated: " + s + " Output: " + t.toString());
//
// s = "2006-10-29 02:59:59"; // Illegal time...does not 'exist'
// t = Timestamp.valueOf(s);
// System.out.println("Instantiated: " + s + " Output: " + t.toString());
//
// s = "2006-10-29 03:00:00"; // Valid again
// t = Timestamp.valueOf(s);
// System.out.println("Instantiated: " + s + " Output: " + t.toString());
//
// System.out.println();
// System.out.println();
// String url = "jdbc:pervasive://maximus:1583/FILD602";
// String driver = "com.pervasive.jdbc.v2.Driver";
// String uid = "Master"; String pwd = "master";
// String createquery = "create table TT (RECID INTEGER, MYDATETIME DATETIME, PRIMARY KEY(RECID))";
// String insertquery = "insert into TT values(1, '2006-10-29 02:00:00')";
// String selectquery = "select MYDATETIME from TT";
// String url = "jdbc:h2:mem:";
// String driver = "org.h2.Driver";
// String user = "sa";
// String password = "sa";
String
url
=
"jdbc:h2:mem:"
;
String
driver
=
"org.h2.Driver"
;
String
user
=
"sa"
;
String
password
=
"sa"
;
testDb
(
driver
,
url
,
user
,
password
);
testDb
(
"org.postgresql.Driver"
,
"jdbc:postgresql:jpox2"
,
"sa"
,
"sa"
);
// String url = "jdbc:sybase:Tds:atlas:2638/toptier";
// String driver = "com.sybase.jdbc3.jdbc.SybDriver";
// String uid = "dba"; String pwd = "sql";
// String createquery = "create table TT (RECID INTEGER, MYDATETIME DATETIME, PRIMARY KEY(RECID))";
// String insertquery = "insert into TT values(1, '2006-10-29 02:00:00')";
// String selectquery = "select MYDATETIME from TT";
}
private
static
void
testDb
(
String
driver
,
String
url
,
String
user
,
String
password
)
throws
Exception
{
Class
.
forName
(
driver
);
conn
=
DriverManager
.
getConnection
(
url
,
user
,
password
);
stat
=
conn
.
createStatement
();
String
createquery
=
"create table TT (RECID INTEGER, MYDATETIME TIMESTAMP, PRIMARY KEY(RECID))"
;
// String insertquery = "insert into TT values(1, '2006-10-28T16:00:00')";
// String insertquery = "insert into TT values(1, '2006-10-28T16:00:00+00:00')";
// String insertquery = "insert into TT values(1, '2006-10-28T16:00:00')";
// String insertquery = "insert into TT values(1, '2006-01-28T16:00:00')";
String
insertquery
=
"insert into TT values(1, '2006-01-20T16:00:00+11:00')"
;
// String insertquery = "insert into TT values(1, '2006-10-28T16:00:00+10:00')";
// String insertquery = "insert into TT values(1, '2006-10-28T16:00:00+09:00')";
String
selectquery
=
"select MYDATETIME from TT"
;
try
{
stat
.
execute
(
"DROP TABLE TT"
);
}
catch
(
SQLException
e
)
{
// ignore
}
stat
.
execute
(
createquery
);
stat
.
execute
(
"delete from TT"
);
stat
.
execute
(
insertquery
);
System
.
out
.
println
(
"Database timestamp retrieval test."
);
ResultSet
results
=
stat
.
executeQuery
(
selectquery
);
if
(
results
!=
null
)
{
Calendar
c
=
Calendar
.
getInstance
();
DateFormat
df
;
c
.
setTimeZone
(
TimeZone
.
getTimeZone
(
"UTC"
));
while
(
results
.
next
())
{
// Firstly exercise the default behaviours
// Because the value in the database is an 'illegal' local time in Melbourne
// we cannot expect Java to output it correctly. Java 1.5 adds an hour to it to make it a 'legal'
// time.
Timestamp
t
=
results
.
getTimestamp
(
1
);
System
.
out
.
println
(
"Interpret db value as default tz: "
+
t
.
toString
());
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
);
// DateFormat.getDateTimeInstance();
System
.
out
.
println
(
"Interpret db value as default: "
+
df
.
format
(
t
)
+
" <<<Should display as UTC, not local"
);
// Second test: instruct the jdbc driver to
// interpret the time as a UTC time, in which case it IS legal.
// It should be output as the correct UTC value (i.e. same as what's in the database)
t
=
results
.
getTimestamp
(
1
,
c
);
// df.setCalendar(c);
System
.
out
.
println
(
"Interpret db value as UTC: "
+
df
.
format
(
t
)
+
" <<<Should display as UTC, not local"
);
df
.
setCalendar
(
c
);
System
.
out
.
println
(
"Interpret db value as UTC: "
+
df
.
format
(
t
)
+
" <<<Should display as UTC, not local"
);
}
}
stat
.
close
();
conn
.
close
();
}
}
h2/src/test/org/h2/test/cases/TestCloseDelay.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.*
;
import
java.util.Random
;
public
class
TestCloseDelay
{
private
Connection
conn
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
new
TestCloseDelay
().
test
();
new
TestCloseDelay
().
test
();
}
public
void
test
()
throws
Exception
{
Class
.
forName
(
"org.h2.Driver"
);
conn
=
DriverManager
.
getConnection
(
"jdbc:h2:test;DB_CLOSE_DELAY=-1"
);
Statement
stat
;
stat
=
conn
.
createStatement
();
conn
.
setAutoCommit
(
false
);
stat
.
execute
(
"DROP TABLE TEST IF EXISTS"
);
stat
.
execute
(
"CREATE TABLE TEST(ID IDENTITY, NAME VARCHAR)"
);
Random
random
=
new
Random
();
for
(
int
j
=
0
;
j
<
100
;
j
++)
{
System
.
out
.
println
(
"j:"
+
j
);
for
(
int
i
=
0
;
i
<
1000
;
i
++)
{
switch
(
random
.
nextInt
(
10
))
{
case
0
:
conn
.
close
();
conn
=
DriverManager
.
getConnection
(
"jdbc:h2:test;DB_CLOSE_DELAY=-1"
);
stat
=
conn
.
createStatement
();
conn
.
setAutoCommit
(
false
);
break
;
case
1
:
case
2
:
case
3
:
case
4
:
case
5
:
case
6
:
stat
.
execute
(
"INSERT INTO TEST(NAME) VALUES('Hello')"
);
break
;
case
7
:
case
8
:
case
9
:
stat
.
execute
(
"UPDATE TEST SET NAME='Hello World' WHERE ROWNUM < 10"
);
break
;
}
if
((
i
%
100
)
==
0
)
{
ResultSet
rs
=
stat
.
executeQuery
(
"SELECT * FROM TEST ORDER BY ID"
);
while
(
rs
.
next
())
{
rs
.
getInt
(
1
);
rs
.
getString
(
2
);
}
}
}
stat
.
execute
(
"SHUTDOWN"
);
conn
.
close
();
conn
=
DriverManager
.
getConnection
(
"jdbc:h2:test;DB_CLOSE_DELAY=-1"
);
stat
=
conn
.
createStatement
();
ResultSet
rs
=
stat
.
executeQuery
(
"SELECT * FROM TEST ORDER BY ID"
);
while
(
rs
.
next
())
{
rs
.
getInt
(
1
);
rs
.
getString
(
2
);
}
}
}
}
h2/src/test/org/h2/test/cases/TestCollation.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.*
;
import
org.h2.tools.DeleteDbFiles
;
public
class
TestCollation
{
private
static
final
int
TOTAL
=
100000
;
private
static
final
int
ROOT
=
1000
;
private
Connection
conn
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
new
TestCollation
().
test
();
new
TestCollation
().
test
();
}
public
void
test
()
throws
Exception
{
DeleteDbFiles
.
execute
(
null
,
"test"
,
true
);
Class
.
forName
(
"org.h2.Driver"
);
Class
.
forName
(
"org.postgresql.Driver"
);
Class
.
forName
(
"com.mysql.jdbc.Driver"
);
Class
.
forName
(
"org.hsqldb.jdbcDriver"
);
//
conn
=
DriverManager
.
getConnection
(
"jdbc:h2:testColl"
,
"sa"
,
"sa"
);
// conn = DriverManager.getConnection("jdbc:hsqldb:testColl", "sa", "");
// conn = DriverManager.getConnection("jdbc:postgresql:jpox2", "sa", "sa");
// conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "sa", "sa");
try
{
conn
.
createStatement
().
execute
(
"DROP TABLE TEST"
);
}
catch
(
Exception
e
)
{
// ignore
}
conn
.
createStatement
().
execute
(
"CREATE TABLE TEST(ID INT)"
);
conn
.
createStatement
().
execute
(
"INSERT INTO TEST VALUES(1)"
);
PreparedStatement
prep
=
conn
.
prepareStatement
(
"Select Case When ? >= ? Then 'Yes' Else 'No' End FROM TEST"
);
prep
.
setObject
(
1
,
new
Integer
(
26
));
prep
.
setObject
(
2
,
new
Integer
(
26
));
ResultSet
rs
=
prep
.
executeQuery
();
while
(
rs
.
next
())
{
System
.
out
.
println
(
"a:"
+
rs
.
getObject
(
1
));
}
// /=====return 'No'
// but *****
prep
=
conn
.
prepareStatement
(
"Select Case When ? >= Cast(? As Int) Then 'Yes' Else 'No' End FROM TEST"
);
prep
.
setObject
(
1
,
new
Integer
(
26
));
prep
.
setObject
(
2
,
new
Integer
(
26
));
rs
=
prep
.
executeQuery
();
while
(
rs
.
next
())
{
System
.
out
.
println
(
"b:"
+
rs
.
getObject
(
1
));
}
// /=====return 'Yes'
// This problem also happen if there are date parameters;
Statement
stat
=
conn
.
createStatement
();
stat
.
executeUpdate
(
"DROP TABLE IF EXISTS test"
);
stat
.
executeUpdate
(
"SET COLLATION OFF"
);
stat
.
executeUpdate
(
"CREATE TABLE test (id INT IDENTITY, code VARCHAR(20) NOT NULL, parentId INT)"
);
stat
.
executeUpdate
(
"CREATE INDEX test_code ON test(code)"
);
PreparedStatement
prep2
=
conn
.
prepareStatement
(
"INSERT INTO test (code,parentId) VALUES (?,NULL)"
);
PreparedStatement
prep3
=
conn
.
prepareStatement
(
"INSERT INTO test (code,parentId) SELECT ?,id FROM test WHERE code=?"
);
long
time
=
System
.
currentTimeMillis
();
for
(
int
i
=
1
;
i
<
TOTAL
;
++
i
)
{
if
(
i
<
ROOT
)
{
prep2
.
setString
(
1
,
Integer
.
toBinaryString
(
i
));
prep2
.
executeUpdate
();
}
else
{
prep3
.
setString
(
1
,
Integer
.
toBinaryString
(
i
));
prep3
.
setString
(
2
,
Integer
.
toBinaryString
(
i
%
100
+
1
));
prep3
.
executeUpdate
();
}
}
System
.
out
.
println
(
"INSERT w/o Collation: "
+
(
System
.
currentTimeMillis
()-
time
));
testWithCollation
();
}
public
void
testWithCollation
()
throws
Exception
{
Statement
stat
=
conn
.
createStatement
();
stat
.
executeUpdate
(
"DROP TABLE IF EXISTS test"
);
stat
.
executeUpdate
(
"SET COLLATION ENGLISH STRENGTH PRIMARY"
);
stat
.
executeUpdate
(
"CREATE TABLE test (id INT IDENTITY, code VARCHAR(20) NOT NULL, parentId INT)"
);
stat
.
executeUpdate
(
"CREATE INDEX test_code ON test(code)"
);
PreparedStatement
prep
=
conn
.
prepareStatement
(
"INSERT INTO test (code,parentId) VALUES (?,NULL)"
);
PreparedStatement
prep2
=
conn
.
prepareStatement
(
"INSERT INTO test (code,parentId) SELECT ?,id FROM test WHERE code=?"
);
long
time
=
System
.
currentTimeMillis
();
for
(
int
i
=
1
;
i
<
TOTAL
;
++
i
)
{
if
(
i
<
ROOT
)
{
prep
.
setString
(
1
,
Integer
.
toBinaryString
(
i
));
prep
.
executeUpdate
();
}
else
{
prep2
.
setString
(
1
,
Integer
.
toBinaryString
(
i
));
prep2
.
setString
(
2
,
Integer
.
toBinaryString
(
i
%
100
+
1
));
prep2
.
executeUpdate
();
}
}
System
.
out
.
println
(
"INSERT with Collation: "
+
(
System
.
currentTimeMillis
()-
time
));
}
}
h2/src/test/org/h2/test/cases/TestCompatibilityMySQL.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.*
;
public
class
TestCompatibilityMySQL
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
testWith
(
"org.postgresql.Driver"
,
"jdbc:postgresql:jpox2"
,
"sa"
,
"sa"
);
testWith
(
"com.mysql.jdbc.Driver"
,
"jdbc:mysql://localhost/test"
,
"sa"
,
"sa"
);
testWith
(
"org.hsqldb.jdbcDriver"
,
"jdbc:hsqldb:test"
,
"sa"
,
""
);
testWith
(
"org.h2.Driver"
,
"jdbc:h2:test"
,
"sa"
,
"sa"
);
}
static
void
testWith
(
String
driver
,
String
url
,
String
user
,
String
password
)
throws
Exception
{
Class
.
forName
(
driver
);
System
.
out
.
println
(
"URL: "
+
url
);
Connection
connection
=
DriverManager
.
getConnection
(
url
,
user
,
password
);
// Class.forName("com.mysql.jdbc.Driver");
// Connection connection = DriverManager.getConnection( "jdbc:mysql://localhost/test", "sa", "sa");
Statement
statement
=
connection
.
createStatement
();
try
{
statement
.
execute
(
"DROP TABLE PEOPLE"
);
}
catch
(
SQLException
e
)
{}
statement
.
execute
(
"CREATE TABLE PEOPLE (ID BIGINT, NAME VARCHAR(32))"
);
statement
.
execute
(
"INSERT INTO PEOPLE (ID, NAME) VALUES (1, 'Adam')"
);
ResultSet
rs
=
statement
.
executeQuery
(
"SELECT PEOPLE.NAME FROM PEOPLE"
);
rs
.
next
();
assertEquals
(
"Adam"
,
rs
.
getString
(
1
));
assertEquals
(
"Adam"
,
rs
.
getString
(
"NAME"
));
rs
=
statement
.
executeQuery
(
"SELECT PEOPLE.NAME FROM PEOPLE"
);
rs
.
next
();
// assertEquals( "Adam", rs.getString("PEOPLE.NAME"));
statement
.
executeQuery
(
"SELECT PEOPLE.NAME FROM PEOPLE"
);
statement
.
executeQuery
(
"SELECT PEOPLE.NAME FROM PEOPLE;"
);
statement
.
executeQuery
(
"SELECT PEOPLE.NAME FROM PEOPLE /* comment */"
);
// try {
// connection.createStatement().executeQuery("SELECT PEOPLE.NAME FROM PEOPLE; /* comment */");
// throw new Error("error");
// } catch(SQLException e) {
// // expected
// }
connection
.
createStatement
().
executeQuery
(
"SELECT PEOPLE.NAME FROM PEOPLE /* comment */ ;"
);
}
private
static
void
assertEquals
(
String
a
,
String
b
)
{
if
(!
a
.
equals
(
b
))
{
throw
new
Error
(
"a="
+
a
+
" b="
+
b
);
}
}
}
h2/src/test/org/h2/test/cases/TestConnect.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
/*
del *.db
java -Xrunhprof:cpu=samples org.h2.test.cases.TestConnect
java org.h2.test.cases.TestConnect
*/
public
class
TestConnect
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
Class
.
forName
(
"org.h2.Driver"
);
String
url
=
"jdbc:h2:test"
;
Connection
conn
=
DriverManager
.
getConnection
(
url
,
"sa"
,
"sa"
);
PreparedStatement
prep
=
conn
.
prepareStatement
(
"SELECT CURRENT_TIMESTAMP()"
);
ResultSet
rs
=
prep
.
executeQuery
();
rs
.
next
();
System
.
out
.
println
(
rs
.
getString
(
1
));
Thread
.
sleep
(
50
);
rs
=
prep
.
executeQuery
();
rs
.
next
();
System
.
out
.
println
(
rs
.
getString
(
1
));
conn
.
close
();
}
}
h2/src/test/org/h2/test/cases/TestDate.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.*
;
public
class
TestDate
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
testWith
(
"org.postgresql.Driver"
,
"jdbc:postgresql:jpox2"
,
"sa"
,
"sa"
);
testWith
(
"com.mysql.jdbc.Driver"
,
"jdbc:mysql://localhost/test"
,
"sa"
,
"sa"
);
testWith
(
"org.h2.Driver"
,
"jdbc:h2:test"
,
"sa"
,
"sa"
);
testWith
(
"org.hsqldb.jdbcDriver"
,
"jdbc:hsqldb:test"
,
"sa"
,
""
);
}
static
void
testWith
(
String
driver
,
String
url
,
String
user
,
String
password
)
throws
Exception
{
Class
.
forName
(
driver
);
System
.
out
.
println
(
"URL: "
+
url
);
Connection
conn
=
DriverManager
.
getConnection
(
url
,
user
,
password
);
Statement
stat
=
conn
.
createStatement
();
try
{
stat
.
execute
(
"DROP TABLE ts_trial"
);
}
catch
(
SQLException
e
)
{
}
stat
.
execute
(
"CREATE TABLE ts_trial(TS TIMESTAMP)"
);
PreparedStatement
prep
=
conn
.
prepareStatement
(
"INSERT INTO ts_trial(TS) VALUES (?)"
);
prep
.
setTimestamp
(
1
,
new
java
.
sql
.
Timestamp
(
System
.
currentTimeMillis
()));
prep
.
execute
();
prep
.
setDate
(
1
,
new
java
.
sql
.
Date
(
System
.
currentTimeMillis
()));
prep
.
execute
();
ResultSet
rs
=
stat
.
executeQuery
(
"SELECT TS FROM ts_trial"
);
rs
.
next
();
System
.
out
.
println
(
"Timestamp: "
+
rs
.
getTimestamp
(
"TS"
));
rs
.
next
();
System
.
out
.
println
(
"Date: "
+
rs
.
getTimestamp
(
"TS"
));
System
.
out
.
println
();
}
}
h2/src/test/org/h2/test/cases/TestFullTextSpeed.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.Statement
;
import
java.util.Random
;
import
org.h2.tools.DeleteDbFiles
;
public
class
TestFullTextSpeed
{
private
static
final
int
RECORD_COUNT
=
100
;
private
Connection
conn
;
// java -Xrunhprof:cpu=samples,depth=6 org.h2.test.cases.TestFullTextSpeed
public
static
void
main
(
String
[]
args
)
throws
Exception
{
// new TestFullTextSpeed().test(true);
new
TestFullTextSpeed
().
test
(
false
);
// new TestFullTextSpeed().test(true);
new
TestFullTextSpeed
().
test
(
false
);
}
public
void
test
(
boolean
lucene
)
throws
Exception
{
String
type
=
lucene
?
"FTL_"
:
"FT_"
;
String
init
=
lucene
?
"org.h2.fulltext.FullTextLucene.init"
:
"org.h2.fulltext.FullText.init"
;
System
.
out
.
println
((
lucene
?
"Lucene"
:
"Native"
)
+
" full text search"
);
DeleteDbFiles
.
execute
(
null
,
"test"
,
true
);
Class
.
forName
(
"org.h2.Driver"
);
conn
=
DriverManager
.
getConnection
(
"jdbc:h2:test;ASSERT=FALSE;LOG=0"
,
"sa"
,
"sa"
);
Statement
stat
=
conn
.
createStatement
();
stat
.
execute
(
"CREATE TABLE TEST(ID IDENTITY, NAME VARCHAR)"
);
PreparedStatement
prep
=
conn
.
prepareStatement
(
"INSERT INTO TEST(NAME) VALUES(?)"
);
Random
random
=
new
Random
(
0
);
for
(
int
i
=
0
;
i
<
RECORD_COUNT
;
i
++)
{
prep
.
setString
(
1
,
getRandomText
(
random
));
prep
.
execute
();
}
long
time
;
time
=
System
.
currentTimeMillis
();
stat
.
execute
(
"CREATE ALIAS IF NOT EXISTS "
+
type
+
"INIT FOR \""
+
init
+
"\""
);
stat
.
execute
(
"CALL "
+
type
+
"INIT()"
);
stat
.
execute
(
"CALL "
+
type
+
"DROP_ALL()"
);
stat
.
execute
(
"CALL "
+
type
+
"CREATE_INDEX('PUBLIC', 'TEST', NULL)"
);
System
.
out
.
println
(
"index: "
+
(
System
.
currentTimeMillis
()
-
time
));
prep
=
conn
.
prepareStatement
(
"SELECT * FROM "
+
type
+
"SEARCH(?, 0, 0)"
);
time
=
System
.
currentTimeMillis
();
int
totalResults
=
0
;
for
(
int
i
=
0
;
i
<
1000
*
RECORD_COUNT
;
i
++)
{
prep
.
setString
(
1
,
getRandomWord
(
random
));
ResultSet
rs
=
prep
.
executeQuery
();
while
(
rs
.
next
())
{
rs
.
getString
(
1
);
totalResults
++;
}
}
System
.
out
.
println
(
"query: "
+
(
System
.
currentTimeMillis
()
-
time
)
+
" results: "
+
totalResults
);
conn
.
close
();
}
private
String
getRandomWord
(
Random
random
)
{
return
""
+
(
char
)(
random
.
nextInt
(
'z'
-
'a'
)
+
'a'
)
+
random
.
nextInt
(
RECORD_COUNT
);
}
private
String
getRandomText
(
Random
random
)
{
int
words
=
random
.
nextInt
(
1000
);
StringBuffer
buff
=
new
StringBuffer
(
words
*
6
);
for
(
int
i
=
0
;
i
<
words
;
i
++)
{
buff
.
append
(
getRandomWord
(
random
));
buff
.
append
(
' '
);
}
return
buff
.
toString
();
}
}
h2/src/test/org/h2/test/cases/TestFunction.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
org.h2.tools.SimpleResultSet
;
public
class
TestFunction
{
public
static
ResultSet
temp
(
Object
[]
values
)
throws
SQLException
{
SimpleResultSet
result
=
new
SimpleResultSet
();
result
.
addColumn
(
"TEMP1"
,
java
.
sql
.
Types
.
INTEGER
,
0
,
0
);
for
(
int
i
=
0
;
values
!=
null
&&
i
<
values
.
length
;
i
++){
result
.
addRow
(
new
Object
[]
{
values
[
i
]});
}
return
result
;
}
}
h2/src/test/org/h2/test/cases/TestHibernateClob.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.io.Reader
;
import
java.io.StringReader
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.PreparedStatement
;
import
org.h2.tools.Server
;
public
class
TestHibernateClob
{
public
static
void
main
(
String
[]
a
)
throws
Exception
{
mainClobSpeed
();
mainClobSpeed
();
mainClobSpeed
();
}
static
void
mainClobSpeed
()
throws
Exception
{
System
.
out
.
println
(
"starting test..."
);
org
.
h2
.
tools
.
DeleteDbFiles
.
execute
(
null
,
"test"
,
true
);
Server
server
=
Server
.
createTcpServer
(
new
String
[
0
]);
server
.
start
();
Connection
conn
=
DriverManager
.
getConnection
(
"jdbc:h2:tcp://localhost/test"
,
"sa"
,
"sa"
);
conn
.
createStatement
().
execute
(
"CREATE TABLE TEST(C CLOB)"
);
PreparedStatement
prep
=
conn
.
prepareStatement
(
"INSERT INTO TEST VALUES(?)"
);
long
time
=
System
.
currentTimeMillis
();
for
(
int
i
=
0
;
i
<
10000
;
i
++)
{
Reader
r
=
new
StringReader
(
"Hello World"
);
prep
.
setCharacterStream
(
1
,
r
,
-
1
);
prep
.
execute
();
}
time
=
System
.
currentTimeMillis
()
-
time
;
System
.
out
.
println
(
"time: "
+
time
);
conn
.
close
();
server
.
stop
();
// Class.forName("org.h2.Driver");
// Connection conn = DriverManager.getConnection("jdbc:h2:mem:", "sa", "sa");
// conn.createStatement().execute("CREATE TABLE IF NOT EXISTS TEST(ID INT)");
// DatabaseMetaData meta = conn.getMetaData();
// ResultSet rs = meta.getTables(null, null, "TEST", null);
// while(rs.next()) {
// String cat = rs.getString("TABLE_CAT");
// String schema = rs.getString("TABLE_SCHEM");
// String table = rs.getString("TABLE_NAME");
// ResultSet rs2 = meta.getColumns(cat, schema, table, null);
// while(rs2.next()) {
// System.out.println(table + "." + rs2.getString("COLUMN_NAME"));
// }
// }
//
// conn.getAutoCommit();
// conn.setAutoCommit(false);
// DatabaseMetaData dbMeta0 =
// conn.getMetaData();
// dbMeta0.getDatabaseProductName();
// dbMeta0.getDatabaseMajorVersion();
// dbMeta0.getDatabaseProductVersion();
// dbMeta0.getDriverName();
// dbMeta0.getDriverVersion();
// dbMeta0.supportsResultSetType(1004);
// dbMeta0.supportsBatchUpdates();
// dbMeta0.dataDefinitionCausesTransactionCommit();
// dbMeta0.dataDefinitionIgnoredInTransactions();
// dbMeta0.supportsGetGeneratedKeys();
// conn.getAutoCommit();
// conn.getAutoCommit();
// conn.commit();
// conn.setAutoCommit(true);
// Statement stat0 =
// conn.createStatement();
// stat0.executeUpdate("drop table CLOB_ENTITY if exists");
// stat0.getWarnings();
// stat0.executeUpdate("create table CLOB_ENTITY (ID bigint not null, DATA clob, CLOB_DATA clob, primary key (ID))");
// stat0.getWarnings();
// stat0.close();
// conn.getWarnings();
// conn.clearWarnings();
// conn.setAutoCommit(false);
// conn.getAutoCommit();
// conn.getAutoCommit();
// PreparedStatement prep0 =
// conn.prepareStatement("select max(ID) from CLOB_ENTITY");
// ResultSet rs0 =
// prep0.executeQuery();
// rs0.next();
// rs0.getLong(1);
// rs0.wasNull();
// rs0.close();
// prep0.close();
// conn.getAutoCommit();
// PreparedStatement prep1 =
// conn.prepareStatement("insert into CLOB_ENTITY (DATA, CLOB_DATA, ID) values (?, ?, ?)");
// prep1.setNull(1, 2005);
// StringBuffer buff = new StringBuffer(20000);
// for(int i=0; i<10000; i++) {
// buff.append((char)('0' + (i%10)));
// }
// Reader x = new StringReader(buff.toString());
// prep1.setCharacterStream(2, x, 10000);
// prep1.setLong(3, 1);
// prep1.addBatch();
// prep1.executeBatch();
// prep1.close();
// conn.getAutoCommit();
// conn.getAutoCommit();
// conn.commit();
// conn.isClosed();
// conn.getWarnings();
// conn.clearWarnings();
// conn.getAutoCommit();
// conn.getAutoCommit();
// PreparedStatement prep2 =
// conn.prepareStatement("select c_.ID as ID0_0_, c_.DATA as S2, c_.CLOB_DATA as CLOB3_0_0_ from CLOB_ENTITY c_ where c_.ID=?");
// prep2.setLong(1, 1);
// ResultSet rs1 =
// prep2.executeQuery();
// rs1.next();
// System.out.println("s2: " + rs1.getCharacterStream("S2"));
// Clob clob0 =
// rs1.getClob("CLOB3_0_0_");
// System.out.println("wasNull: " + rs1.wasNull());
// rs1.next();
// rs1.close();
// prep2.getMaxRows();
// prep2.getQueryTimeout();
// prep2.close();
// conn.getAutoCommit();
// Reader r = clob0.getCharacterStream();
// char[] chars = new char[(int)clob0.length()];
// int read = r.read(chars);
// System.out.println("read: " + read + " " + r);
// for(int i=0; i<10000; i++) {
// int ch = chars[i];
// if(ch != ('0' + (i%10))) {
// throw new Error("expected "+ (char)('0' + (i%10)) + " got: " + ch + " (" + (char)ch + ")");
// }
// }
// int ch = r.read();
// if(ch != -1) {
// System.out.println("expected -1 got: " + ch );
// }
// conn.close();
// System.out.println("done");
}
}
h2/src/test/org/h2/test/cases/TestKiller.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.math.BigDecimal
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
/**
* Destroyer application ;->
*
* @author Maciej Wegorkiewicz
*/
public
class
TestKiller
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
testWith
(
"org.h2.Driver"
,
"jdbc:h2:test"
,
"sa"
,
"sa"
);
testWith
(
"org.postgresql.Driver"
,
"jdbc:postgresql:jpox2"
,
"sa"
,
"sa"
);
testWith
(
"com.mysql.jdbc.Driver"
,
"jdbc:mysql://localhost/test"
,
"sa"
,
"sa"
);
testWith
(
"org.hsqldb.jdbcDriver"
,
"jdbc:hsqldb:test"
,
"sa"
,
""
);
testWith
(
"org.apache.derby.jdbc.EmbeddedDriver"
,
"jdbc:derby:test3;create=true"
,
"sa"
,
"sa"
);
}
public
static
class
TestBigDecimal
extends
BigDecimal
{
public
TestBigDecimal
(
String
s
)
{
super
(
s
);
}
private
static
final
long
serialVersionUID
=
6309132662083006892L
;
public
int
compareTo
(
BigDecimal
obj
)
{
return
-
super
.
compareTo
(
obj
);
}
public
String
toString
()
{
throw
new
NullPointerException
();
}
}
static
void
testWith
(
String
driver
,
String
url
,
String
user
,
String
password
)
throws
Exception
{
Class
.
forName
(
driver
);
System
.
out
.
println
(
"URL: "
+
url
);
Connection
conn
=
DriverManager
.
getConnection
(
url
,
user
,
password
);
try
{
Statement
stmt
=
conn
.
createStatement
();
try
{
conn
.
createStatement
().
execute
(
"DROP TABLE TESTTAB"
);
}
catch
(
SQLException
e
)
{
// ignore
}
stmt
.
execute
(
"CREATE TABLE TESTTAB(VL DECIMAL(16,6) PRIMARY KEY)"
);
stmt
.
close
();
PreparedStatement
prep
=
conn
.
prepareStatement
(
"INSERT INTO TESTTAB VALUES (?)"
);
prep
.
setBigDecimal
(
1
,
new
TestBigDecimal
(
"1"
));
prep
.
execute
();
prep
.
setBigDecimal
(
1
,
new
TestBigDecimal
(
"2"
));
prep
.
execute
();
prep
.
setBigDecimal
(
1
,
new
TestBigDecimal
(
"3"
));
prep
.
execute
();
prep
.
close
();
ResultSet
rs
=
conn
.
createStatement
().
executeQuery
(
"SELECT * FROM TESTTAB ORDER BY VL"
);
while
(
rs
.
next
())
{
System
.
out
.
println
(
"VL:"
+
rs
.
getString
(
"VL"
));
}
try
{
conn
.
createStatement
().
executeQuery
(
"SHUTDOWN"
);
}
catch
(
SQLException
e
)
{
// ignore
}
conn
.
close
();
Class
.
forName
(
driver
);
conn
=
DriverManager
.
getConnection
(
url
,
user
,
password
);
rs
=
conn
.
createStatement
().
executeQuery
(
"SELECT * FROM TESTTAB ORDER BY VL"
);
while
(
rs
.
next
())
{
System
.
out
.
println
(
"VL:"
+
rs
.
getString
(
"VL"
));
}
conn
.
close
();
}
catch
(
Throwable
t
)
{
t
.
printStackTrace
();
}
finally
{
if
(
conn
!=
null
)
{
conn
.
close
();
}
}
}
}
h2/src/test/org/h2/test/cases/TestLimitOffset.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
public
class
TestLimitOffset
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
Class
.
forName
(
"org.h2.Driver"
);
Connection
conn
=
DriverManager
.
getConnection
(
"jdbc:h2:test"
,
"sa"
,
"sa"
);
Statement
stat
=
conn
.
createStatement
();
try
{
stat
.
execute
(
"DROP TABLE file"
);
}
catch
(
SQLException
e
)
{
//
}
stat
.
execute
(
"create table IF NOT EXISTS file (id IDENTITY primary key, path nvarchar(1000) not null, name nvarchar(100), date timestamp not null, size int , is_dir char(1) not null, unique (path))"
);
PreparedStatement
prep
=
conn
.
prepareStatement
(
" insert into file (path, is_dir, date) values(?, 'N', NOW()+? )"
);
for
(
int
i
=
0
;
i
<
60000
;
i
++)
{
prep
.
setInt
(
1
,
i
);
prep
.
setInt
(
2
,
i
);
prep
.
execute
();
}
ResultSet
rs
;
prep
=
conn
.
prepareStatement
(
"select path from file where path like ? and is_dir <> 'Y' order by date desc LIMIT 25 OFFSET 0"
);
prep
.
setString
(
1
,
"%"
);
rs
=
prep
.
executeQuery
();
rs
.
next
();
System
.
out
.
println
(
rs
.
getString
(
1
));
prep
=
conn
.
prepareStatement
(
"select path from file where path like ? and is_dir <> 'Y' order by date desc LIMIT 25 OFFSET 25"
);
prep
.
setString
(
1
,
"%"
);
rs
=
prep
.
executeQuery
();
rs
.
next
();
System
.
out
.
println
(
rs
.
getString
(
1
));
prep
=
conn
.
prepareStatement
(
"select path from file where path like ? and is_dir <> 'Y' order by date desc LIMIT 25 OFFSET 50"
);
prep
.
setString
(
1
,
"%"
);
rs
=
prep
.
executeQuery
();
rs
.
next
();
System
.
out
.
println
(
rs
.
getString
(
1
));
conn
.
close
();
}
}
h2/src/test/org/h2/test/cases/TestLinearIndex.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.PreparedStatement
;
import
java.sql.Statement
;
import
java.util.Random
;
import
org.h2.tools.DeleteDbFiles
;
import
org.h2.util.MemoryUtils
;
public
class
TestLinearIndex
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
Class
.
forName
(
"org.h2.Driver"
);
// stat.execute("create unique index idx_id on test(id)");
int
len
=
1000
;
for
(
int
a
=
0
;
;
a
++)
{
testLoop
(
true
,
len
);
testLoop
(
false
,
len
);
len
+=
1000
;
}
// hash: 23156
// btree: 10250
}
private
static
void
testLoop
(
boolean
hashIndex
,
int
len
)
throws
Exception
{
DeleteDbFiles
.
execute
(
"."
,
"test"
,
true
);
String
url
=
"jdbc:h2:test"
;
Connection
conn
=
DriverManager
.
getConnection
(
url
,
"sa"
,
"sa"
);
Statement
stat
=
conn
.
createStatement
();
stat
.
execute
(
"drop table if exists test"
);
stat
.
execute
(
"create table test(id int, name varchar)"
);
if
(
hashIndex
)
{
stat
.
execute
(
"create unique hash index idx_id on test(id)"
);
}
else
{
stat
.
execute
(
"create unique index idx_id on test(id)"
);
}
stat
.
execute
(
"insert into test select x, 'Hello World' from system_range(1, "
+
len
+
")"
);
PreparedStatement
prep
=
conn
.
prepareStatement
(
"select * from test where id=?"
);
Random
random
=
new
Random
(
1
);
long
time
=
System
.
currentTimeMillis
();
for
(
int
i
=
0
;
i
<
len
*
50
;
i
++)
{
prep
.
setInt
(
1
,
random
.
nextInt
(
len
));
prep
.
executeQuery
();
}
time
=
System
.
currentTimeMillis
()
-
time
;
System
.
out
.
println
(
"len: "
+
len
+
" hash: "
+
hashIndex
+
" time: "
+
time
+
" used: "
+
MemoryUtils
.
getMemoryUsed
());
conn
.
close
();
}
}
h2/src/test/org/h2/test/cases/TestMemoryDb.java
deleted
100644 → 0
浏览文件 @
f188e9dc
package
org
.
h2
.
test
.
cases
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.Statement
;
public
class
TestMemoryDb
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
Class
.
forName
(
"org.h2.Driver"
);
String
url
=
"jdbc:h2:mem:EventDB"
;
String
user
=
"sa"
;
String
password
=
"sa"
;
Connection
conn1
=
DriverManager
.
getConnection
(
url
,
user
,
password
);
Statement
stat1
=
conn1
.
createStatement
();
stat1
.
execute
(
"create table test(id int)"
);
Connection
conn2
=
DriverManager
.
getConnection
(
url
,
user
,
password
);
Statement
stat2
=
conn2
.
createStatement
();
stat2
.
executeQuery
(
"select * from test"
);
conn1
.
close
();
conn2
.
close
();
}
}
h2/src/test/org/h2/test/cases/TestObject.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.*
;
public
class
TestObject
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
testWith
(
"org.hsqldb.jdbcDriver"
,
"jdbc:hsqldb:test"
,
"sa"
,
""
);
// testWith("org.postgresql.Driver", "jdbc:postgresql:jpox2", "sa", "sa");
// testWith("com.mysql.jdbc.Driver", "jdbc:mysql://localhost/test", "sa", "sa");
testWith
(
"org.h2.Driver"
,
"jdbc:h2:test"
,
"sa"
,
"sa"
);
}
static
void
testWith
(
String
driver
,
String
url
,
String
user
,
String
password
)
throws
Exception
{
Class
.
forName
(
driver
);
System
.
out
.
println
(
"URL: "
+
url
);
Connection
conn
=
DriverManager
.
getConnection
(
url
,
user
,
password
);
conn
.
setAutoCommit
(
true
);
Statement
st
=
conn
.
createStatement
();
try
{
st
.
executeUpdate
(
"DROP TABLE test_object_table"
);
}
catch
(
SQLException
e
)
{
// ignore
}
// st.executeUpdate("CREATE TABLE test_object_table(id INTEGER NOT NULL, object0 JAVA_OBJECT NOT NULL, PRIMARY KEY(id))");
st
.
executeUpdate
(
"CREATE TABLE test_object_table(id INTEGER NOT NULL, object0 OBJECT NOT NULL, PRIMARY KEY(id))"
);
// st.executeUpdate("CREATE TABLE test_object_table(id INTEGER NOT NULL, object0 OID NOT NULL, PRIMARY KEY(id))");
PreparedStatement
ps
=
conn
.
prepareStatement
(
"INSERT INTO test_object_table values(?, ?)"
);
ps
.
setInt
(
1
,
1
);
ps
.
setObject
(
2
,
new
Integer
(
3
));
ps
.
executeUpdate
();
ResultSet
rs
=
st
.
executeQuery
(
"select * from test_object_table"
);
while
(
rs
.
next
())
{
int
id
=
rs
.
getInt
(
"id"
);
Object
object0
=
rs
.
getObject
(
"object0"
);
System
.
out
.
println
(
"id = "
+
id
+
", object0 = "
+
object0
.
getClass
().
getName
()
+
" / "
+
object0
);
}
rs
.
close
();
conn
.
close
();
}
}
h2/src/test/org/h2/test/cases/TestOther.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.Types
;
public
class
TestOther
{
public
static
void
main
(
String
[]
args
)
{
Object
[]
list
=
{
// new int[] {1, 2, 3, 4, 5},
// new Integer(122), // Uncomment to see a "Hexadecimal string with odd number of characters"
new
String
[]
{
"hello"
,
"world"
},
// Uncomment to see a "Deserialization failed"
// new Integer(12) // Will save it somehow, but fails to retrieve
};
try
{
Class
.
forName
(
"org.h2.Driver"
);
Connection
conn
=
DriverManager
.
getConnection
(
"jdbc:h2:mem:"
,
"sa"
,
""
);
conn
.
setAutoCommit
(
true
);
conn
.
createStatement
().
executeUpdate
(
"CREATE TABLE TestOtherJDBC (testData OTHER)"
);
System
.
out
.
println
(
"table created"
);
PreparedStatement
stmt
=
conn
.
prepareStatement
(
"INSERT INTO TestOtherJDBC (testData) VALUES (?)"
);
for
(
int
i
=
0
;
i
<
list
.
length
;
i
++)
{
System
.
out
.
println
(
list
[
i
].
getClass
().
getName
()
+
"\t"
+
list
[
i
]);
stmt
.
setObject
(
1
,
list
[
i
],
Types
.
OTHER
);
stmt
.
executeUpdate
();
}
System
.
out
.
println
(
"inserted"
);
ResultSet
rs
=
conn
.
createStatement
().
executeQuery
(
"SELECT testData FROM TestOtherJDBC"
);
while
(
rs
.
next
())
{
Object
obj
=
rs
.
getObject
(
1
);
System
.
out
.
println
(
obj
.
getClass
().
getName
()
+
"\t"
+
obj
);
}
rs
.
close
();
}
catch
(
Throwable
e
)
{
e
.
printStackTrace
();
}
}
}
h2/src/test/org/h2/test/cases/TestRebuildIndex.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.*
;
import
java.util.Random
;
import
org.h2.tools.DeleteDbFiles
;
import
org.h2.util.MemoryUtils
;
public
class
TestRebuildIndex
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
boolean
init
=
false
;
if
(
init
)
{
DeleteDbFiles
.
execute
(
"."
,
"test"
,
false
);
}
Class
.
forName
(
"org.h2.Driver"
);
Connection
conn
=
DriverManager
.
getConnection
(
"jdbc:h2:test;cache_type=lzf"
,
"sa"
,
"sa"
);
Statement
stat
=
conn
.
createStatement
();
if
(
init
)
{
stat
.
executeUpdate
(
"DROP TABLE IF EXISTS TEST"
);
stat
.
executeUpdate
(
"CREATE TABLE TEST(ID INT PRIMARY KEY, DATA INT)"
);
PreparedStatement
prep
=
conn
.
prepareStatement
(
"INSERT INTO TEST VALUES(?, ?)"
);
int
max
=
1000000
;
Random
random
=
new
Random
(
10
);
for
(
int
i
=
0
;
i
<
max
;
i
++)
{
prep
.
setInt
(
1
,
i
);
// prep.setInt(2, max - i);
prep
.
setInt
(
2
,
random
.
nextInt
());
prep
.
execute
();
}
}
else
{
long
time
=
System
.
currentTimeMillis
();
stat
.
execute
(
"CREATE INDEX idx_data ON TEST(DATA)"
);
time
=
System
.
currentTimeMillis
()
-
time
;
System
.
out
.
println
(
"time: "
+
time
);
// lzf: 5688 / 11944 kb
// tq: 4875 ms / 12131 kb
System
.
out
.
println
(
"mem: "
+
MemoryUtils
.
getMemoryUsed
());
}
conn
.
close
();
}
}
h2/src/test/org/h2/test/cases/TestRemoteMetaData.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.*
;
import
org.h2.tools.Server
;
public
class
TestRemoteMetaData
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
Class
.
forName
(
"org.h2.Driver"
);
Server
server
=
org
.
h2
.
tools
.
Server
.
createTcpServer
(
new
String
[
0
]);
server
.
start
();
String
url
=
"jdbc:h2:tcp://localhost/test;TRACE_LEVEL_FILE=3"
;
Connection
conn
=
DriverManager
.
getConnection
(
url
,
"sa"
,
"sa"
);
DatabaseMetaData
meta
=
conn
.
getMetaData
();
ResultSet
rsTables
=
meta
.
getTables
(
null
,
null
,
null
,
null
);
while
(
rsTables
.
next
())
{
if
(
rsTables
.
getString
(
4
).
equals
(
"TABLE"
))
{
String
name
=
rsTables
.
getString
(
"TABLE_NAME"
);
meta
.
getExportedKeys
(
null
,
null
,
name
);
meta
.
getImportedKeys
(
null
,
null
,
name
);
}
}
server
.
stop
();
}
}
h2/src/test/org/h2/test/cases/TestUpdatableResultSet.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.*
;
class
TestUpdatableResultSet
{
Connection
conn
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
new
TestUpdatableResultSet
().
test
();
}
int
insertStudentUsingResultSet
(
String
name
)
throws
Exception
{
Statement
stmt
=
conn
.
createStatement
(
ResultSet
.
FETCH_FORWARD
,
ResultSet
.
CONCUR_UPDATABLE
);
ResultSet
rs
=
stmt
.
executeQuery
(
"SELECT * FROM students FOR UPDATE"
);
// rs.moveToInsertRow();
// rs.updateString("name", name);
// rs.insertRow();
int
id
=
0
;
try
{
rs
.
last
();
id
=
rs
.
getInt
(
"student_id"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
id
;
}
void
test
()
throws
Exception
{
Class
.
forName
(
"org.h2.Driver"
);
conn
=
DriverManager
.
getConnection
(
"jdbc:h2:test"
,
"sa"
,
"sa"
);
// Class.forName("org.postgresql.Driver");
// conn = DriverManager.getConnection("jdbc:postgresql:jpox2", "sa", "sa");
// Class.forName("com.mysql.jdbc.Driver");
// conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "sa", "sa");
try
{
conn
.
createStatement
().
executeUpdate
(
"DROP TABLE students"
);
}
catch
(
SQLException
e
)
{
//
}
// conn.createStatement().executeUpdate("CREATE TABLE students (student_id int PRIMARY KEY, name char(20))");
conn
.
createStatement
().
executeUpdate
(
"CREATE TABLE students (student_id int AUTO_INCREMENT PRIMARY KEY, name char(20))"
);
System
.
out
.
println
(
"student id: "
+
insertStudentUsingResultSet
(
"name-1"
));
// output must be 1,it will print 0,
System
.
out
.
println
(
"student id: "
+
insertStudentUsingResultSet
(
"name-2"
));
// output must be 2, it will print 1
conn
.
close
();
}
}
h2/src/test/org/h2/test/cases/TestWithRecursive.java
deleted
100644 → 0
浏览文件 @
f188e9dc
/*
* 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
.
test
.
cases
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.Statement
;
import
org.h2.tools.DeleteDbFiles
;
public
class
TestWithRecursive
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
Class
.
forName
(
"org.h2.Driver"
);
DeleteDbFiles
.
execute
(
"."
,
"test"
,
true
);
String
url
=
"jdbc:h2:test"
;
Connection
conn
=
DriverManager
.
getConnection
(
url
,
"sa"
,
"sa"
);
Statement
stat
=
conn
.
createStatement
();
stat
.
execute
(
"create table parent(id int primary key, parent int)"
);
stat
.
execute
(
"insert into parent values(1, null), (2, 1), (3, 1)"
);
ResultSet
rs
=
stat
.
executeQuery
(
"with test_view(id, parent) as \n"
+
"select id, parent from parent where id = 1 \n"
+
"union all select parent.id, parent.parent from test_view, parent \n"
+
"where parent.parent = test_view.id \n"
+
"select * from test_view"
);
System
.
out
.
println
(
"query:"
);
while
(
rs
.
next
())
{
System
.
out
.
println
(
rs
.
getString
(
1
));
}
stat
.
execute
(
"drop view if exists test_view"
);
System
.
out
.
println
(
"prepared:"
);
PreparedStatement
prep
=
conn
.
prepareStatement
(
"with test_view(id, parent) as \n"
+
"select id, parent from parent where id = ? \n"
+
"union all select parent.id, parent.parent from test_view, parent \n"
+
"where parent.parent = test_view.id \n"
+
"select * from test_view"
);
prep
.
setInt
(
1
,
1
);
rs
=
prep
.
executeQuery
();
while
(
rs
.
next
())
{
System
.
out
.
println
(
rs
.
getString
(
1
));
}
conn
.
close
();
}
}
h2/src/test/org/h2/test/jdbc/TestPreparedStatement.java
浏览文件 @
bc5a2a8e
...
@@ -15,6 +15,7 @@ import java.sql.ResultSet;
...
@@ -15,6 +15,7 @@ import java.sql.ResultSet;
import
java.sql.ResultSetMetaData
;
import
java.sql.ResultSetMetaData
;
import
java.sql.SQLException
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
java.sql.Statement
;
import
java.sql.Timestamp
;
import
java.sql.Types
;
import
java.sql.Types
;
import
org.h2.test.TestBase
;
import
org.h2.test.TestBase
;
...
@@ -27,6 +28,7 @@ public class TestPreparedStatement extends TestBase {
...
@@ -27,6 +28,7 @@ public class TestPreparedStatement extends TestBase {
deleteDb
(
"preparedStatement"
);
deleteDb
(
"preparedStatement"
);
Connection
conn
=
getConnection
(
"preparedStatement"
);
Connection
conn
=
getConnection
(
"preparedStatement"
);
testDate
(
conn
);
testArray
(
conn
);
testArray
(
conn
);
testUUIDGeneratedKeys
(
conn
);
testUUIDGeneratedKeys
(
conn
);
testSetObject
(
conn
);
testSetObject
(
conn
);
...
@@ -95,6 +97,16 @@ public class TestPreparedStatement extends TestBase {
...
@@ -95,6 +97,16 @@ public class TestPreparedStatement extends TestBase {
stat
.
execute
(
"DROP TABLE TEST"
);
stat
.
execute
(
"DROP TABLE TEST"
);
}
}
private
void
testDate
(
Connection
conn
)
throws
Exception
{
PreparedStatement
prep
=
conn
.
prepareStatement
(
"SELECT ?"
);
Timestamp
ts
=
Timestamp
.
valueOf
(
"2001-02-03 04:05:06"
);
prep
.
setObject
(
1
,
new
java
.
util
.
Date
(
ts
.
getTime
()));
ResultSet
rs
=
prep
.
executeQuery
();
rs
.
next
();
Timestamp
ts2
=
rs
.
getTimestamp
(
1
);
check
(
ts
.
toString
(),
ts2
.
toString
());
}
private
void
testPreparedSubquery
(
Connection
conn
)
throws
Exception
{
private
void
testPreparedSubquery
(
Connection
conn
)
throws
Exception
{
Statement
s
=
conn
.
createStatement
();
Statement
s
=
conn
.
createStatement
();
s
.
executeUpdate
(
"CREATE TABLE TEST(ID IDENTITY, FLAG BIT)"
);
s
.
executeUpdate
(
"CREATE TABLE TEST(ID IDENTITY, FLAG BIT)"
);
...
@@ -457,7 +469,7 @@ public class TestPreparedStatement extends TestBase {
...
@@ -457,7 +469,7 @@ public class TestPreparedStatement extends TestBase {
check
(
rs
.
getObject
(
11
).
toString
(),
"04:05:06"
);
check
(
rs
.
getObject
(
11
).
toString
(),
"04:05:06"
);
check
(
rs
.
getObject
(
11
).
equals
(
java
.
sql
.
Time
.
valueOf
(
"04:05:06"
)));
check
(
rs
.
getObject
(
11
).
equals
(
java
.
sql
.
Time
.
valueOf
(
"04:05:06"
)));
check
(
rs
.
getObject
(
12
).
equals
(
java
.
sql
.
Timestamp
.
valueOf
(
"2001-02-03 04:05:06.123456789"
)));
check
(
rs
.
getObject
(
12
).
equals
(
java
.
sql
.
Timestamp
.
valueOf
(
"2001-02-03 04:05:06.123456789"
)));
check
(
rs
.
getObject
(
13
).
equals
(
java
.
sql
.
Date
.
valueOf
(
"2001-02-03
"
)));
check
(
rs
.
getObject
(
13
).
equals
(
java
.
sql
.
Timestamp
.
valueOf
(
"2001-02-03 00:00:00
"
)));
check
((
byte
[])
rs
.
getObject
(
14
),
new
byte
[]{
10
,
20
,
30
});
check
((
byte
[])
rs
.
getObject
(
14
),
new
byte
[]{
10
,
20
,
30
});
check
(
rs
.
getObject
(
15
).
equals
(
new
Character
(
'a'
)));
check
(
rs
.
getObject
(
15
).
equals
(
new
Character
(
'a'
)));
check
(
rs
.
getObject
(
16
).
equals
(
java
.
sql
.
Date
.
valueOf
(
"2001-01-02"
)));
check
(
rs
.
getObject
(
16
).
equals
(
java
.
sql
.
Date
.
valueOf
(
"2001-01-02"
)));
...
...
h2/src/test/org/h2/test/poweroff/TestWrite.java
浏览文件 @
bc5a2a8e
/*
* 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
.
test
.
poweroff
;
package
org
.
h2
.
test
.
poweroff
;
import
java.io.File
;
import
java.io.File
;
...
...
h2/src/test/org/h2/test/synth/RandomGen.java
浏览文件 @
bc5a2a8e
...
@@ -166,7 +166,7 @@ public class RandomGen {
...
@@ -166,7 +166,7 @@ public class RandomGen {
buff
.
append
(
'-'
);
buff
.
append
(
'-'
);
buff
.
append
(
getInt
(
12
)
+
1
);
buff
.
append
(
getInt
(
12
)
+
1
);
buff
.
append
(
'-'
);
buff
.
append
(
'-'
);
buff
.
append
(
getInt
(
2
9
)
+
1
);
buff
.
append
(
getInt
(
2
8
)
+
1
);
buff
.
append
(
' '
);
buff
.
append
(
' '
);
buff
.
append
(
getInt
(
24
));
buff
.
append
(
getInt
(
24
));
buff
.
append
(
':'
);
buff
.
append
(
':'
);
...
...
h2/src/test/org/h2/test/synth/TestHalt.java
浏览文件 @
bc5a2a8e
...
@@ -34,7 +34,8 @@ public abstract class TestHalt extends TestBase {
...
@@ -34,7 +34,8 @@ public abstract class TestHalt extends TestBase {
private
int
errorId
;
private
int
errorId
;
private
int
sequenceId
;
private
int
sequenceId
;
private
static
final
String
DATABASE_NAME
=
"halt"
;
private
static
final
String
DATABASE_NAME
=
"halt"
;
private
static
final
String
TRACE_FILE_NAME
=
BASE_DIR
+
"/haltTrace.trace.db"
;
static
final
String
DIR
=
"dataHalt"
;
private
static
final
String
TRACE_FILE_NAME
=
"haltTrace.trace.db"
;
abstract
void
testInit
()
throws
Exception
;
abstract
void
testInit
()
throws
Exception
;
abstract
void
testCheckAfterCrash
()
throws
Exception
;
abstract
void
testCheckAfterCrash
()
throws
Exception
;
...
@@ -106,7 +107,9 @@ public abstract class TestHalt extends TestBase {
...
@@ -106,7 +107,9 @@ public abstract class TestHalt extends TestBase {
protected
void
trace
(
String
s
,
Exception
e
)
{
protected
void
trace
(
String
s
,
Exception
e
)
{
FileWriter
writer
=
null
;
FileWriter
writer
=
null
;
try
{
try
{
writer
=
new
FileWriter
(
TRACE_FILE_NAME
,
true
);
File
f
=
new
File
(
BASE_DIR
+
"/"
+
TRACE_FILE_NAME
);
f
.
getParentFile
().
mkdirs
();
writer
=
new
FileWriter
(
f
,
true
);
PrintWriter
w
=
new
PrintWriter
(
writer
);
PrintWriter
w
=
new
PrintWriter
(
writer
);
s
=
dateFormat
.
format
(
new
Date
())
+
": "
+
s
;
s
=
dateFormat
.
format
(
new
Date
())
+
": "
+
s
;
w
.
println
(
s
);
w
.
println
(
s
);
...
@@ -123,7 +126,7 @@ public abstract class TestHalt extends TestBase {
...
@@ -123,7 +126,7 @@ public abstract class TestHalt extends TestBase {
private
void
runTest
()
throws
Exception
{
private
void
runTest
()
throws
Exception
{
traceOperation
(
"delete database -----------------------------"
);
traceOperation
(
"delete database -----------------------------"
);
DeleteDbFiles
.
execute
(
BASE_DIR
,
DATABASE_NAME
,
true
);
DeleteDbFiles
.
execute
(
BASE_DIR
,
DATABASE_NAME
,
true
);
new
File
(
TRACE_FILE_NAME
).
delete
();
new
File
(
BASE_DIR
+
"/"
+
TRACE_FILE_NAME
).
delete
();
connect
();
connect
();
testInit
();
testInit
();
...
@@ -148,7 +151,7 @@ public abstract class TestHalt extends TestBase {
...
@@ -148,7 +151,7 @@ public abstract class TestHalt extends TestBase {
catcher
.
start
();
catcher
.
start
();
String
s
=
catcher
.
readLine
(
5000
);
String
s
=
catcher
.
readLine
(
5000
);
if
(
s
==
null
)
{
if
(
s
==
null
)
{
throw
new
IOException
(
"No reply from process
"
);
throw
new
IOException
(
"No reply from process
, command: "
+
command
);
}
else
if
(
s
.
startsWith
(
"READY"
))
{
}
else
if
(
s
.
startsWith
(
"READY"
))
{
traceOperation
(
"got reply: "
+
s
);
traceOperation
(
"got reply: "
+
s
);
}
}
...
@@ -296,7 +299,7 @@ public abstract class TestHalt extends TestBase {
...
@@ -296,7 +299,7 @@ public abstract class TestHalt extends TestBase {
public
TestBase
init
(
TestAll
conf
)
throws
Exception
{
public
TestBase
init
(
TestAll
conf
)
throws
Exception
{
super
.
init
(
conf
);
super
.
init
(
conf
);
BASE_DIR
=
"dataHalt"
;
BASE_DIR
=
DIR
;
return
this
;
return
this
;
}
}
...
...
h2/src/test/org/h2/test/synth/TestHaltApp.java
浏览文件 @
bc5a2a8e
...
@@ -8,17 +8,13 @@ import java.sql.PreparedStatement;
...
@@ -8,17 +8,13 @@ import java.sql.PreparedStatement;
import
java.sql.ResultSet
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
java.sql.Statement
;
import
java.util.ArrayList
;
import
org.h2.test.TestAll
;
import
org.h2.test.TestBase
;
import
org.h2.test.db.TestScript
;
public
class
TestHaltApp
extends
TestHalt
{
public
class
TestHaltApp
extends
TestHalt
{
private
int
rowCount
;
private
int
rowCount
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
BASE_DIR
=
TestHalt
.
DIR
;
new
TestHaltApp
().
start
(
args
);
new
TestHaltApp
().
start
(
args
);
}
}
...
...
h2/src/tools/org/h2/tools/code/CheckTextFiles.java
浏览文件 @
bc5a2a8e
...
@@ -28,6 +28,7 @@ public class CheckTextFiles {
...
@@ -28,6 +28,7 @@ public class CheckTextFiles {
boolean
hasError
;
boolean
hasError
;
void
run
()
throws
Exception
{
void
run
()
throws
Exception
{
System
.
out
.
println
(
getClass
().
getName
());
String
baseDir
=
"src"
;
String
baseDir
=
"src"
;
check
(
new
File
(
baseDir
));
check
(
new
File
(
baseDir
));
if
(
hasError
)
{
if
(
hasError
)
{
...
...
h2/src/tools/org/h2/tools/doc/GenerateDoc.java
浏览文件 @
bc5a2a8e
...
@@ -17,7 +17,6 @@ import java.util.HashMap;
...
@@ -17,7 +17,6 @@ import java.util.HashMap;
import
org.h2.bnf.Bnf
;
import
org.h2.bnf.Bnf
;
import
org.h2.server.web.PageParser
;
import
org.h2.server.web.PageParser
;
import
org.h2.tools.indexer.Indexer
;
import
org.h2.util.IOUtils
;
import
org.h2.util.IOUtils
;
import
org.h2.util.JdbcUtils
;
import
org.h2.util.JdbcUtils
;
import
org.h2.util.StringUtils
;
import
org.h2.util.StringUtils
;
...
@@ -35,6 +34,7 @@ public class GenerateDoc {
...
@@ -35,6 +34,7 @@ public class GenerateDoc {
Bnf
bnf
;
Bnf
bnf
;
void
run
(
String
[]
args
)
throws
Exception
{
void
run
(
String
[]
args
)
throws
Exception
{
System
.
out
.
println
(
getClass
().
getName
());
for
(
int
i
=
0
;
i
<
args
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
args
.
length
;
i
++)
{
if
(
args
[
i
].
equals
(
"-in"
))
{
if
(
args
[
i
].
equals
(
"-in"
))
{
inDir
=
args
[++
i
];
inDir
=
args
[++
i
];
...
@@ -42,13 +42,10 @@ public class GenerateDoc {
...
@@ -42,13 +42,10 @@ public class GenerateDoc {
outDir
=
args
[++
i
];
outDir
=
args
[++
i
];
}
}
}
}
Class
.
forName
(
"org.h2.Driver"
);
Class
.
forName
(
"org.h2.Driver"
);
conn
=
DriverManager
.
getConnection
(
"jdbc:h2:
.
"
);
conn
=
DriverManager
.
getConnection
(
"jdbc:h2:
mem:
"
);
new
File
(
outDir
).
mkdirs
();
new
File
(
outDir
).
mkdirs
();
bnf
=
Bnf
.
getInstance
(
null
);
bnf
=
Bnf
.
getInstance
(
null
);
map
(
"commands"
,
"SELECT * FROM INFORMATION_SCHEMA.HELP WHERE SECTION LIKE 'Commands%' ORDER BY ID"
);
map
(
"commands"
,
"SELECT * FROM INFORMATION_SCHEMA.HELP WHERE SECTION LIKE 'Commands%' ORDER BY ID"
);
map
(
"commandsDML"
,
"SELECT * FROM INFORMATION_SCHEMA.HELP WHERE SECTION='Commands (DML)' ORDER BY ID"
);
map
(
"commandsDML"
,
"SELECT * FROM INFORMATION_SCHEMA.HELP WHERE SECTION='Commands (DML)' ORDER BY ID"
);
map
(
"commandsDDL"
,
"SELECT * FROM INFORMATION_SCHEMA.HELP WHERE SECTION='Commands (DDL)' ORDER BY ID"
);
map
(
"commandsDDL"
,
"SELECT * FROM INFORMATION_SCHEMA.HELP WHERE SECTION='Commands (DDL)' ORDER BY ID"
);
...
@@ -61,14 +58,10 @@ public class GenerateDoc {
...
@@ -61,14 +58,10 @@ public class GenerateDoc {
map
(
"functionsSystem"
,
"SELECT * FROM INFORMATION_SCHEMA.HELP WHERE SECTION = 'Functions (System)' ORDER BY ID"
);
map
(
"functionsSystem"
,
"SELECT * FROM INFORMATION_SCHEMA.HELP WHERE SECTION = 'Functions (System)' ORDER BY ID"
);
map
(
"functionsAll"
,
"SELECT * FROM INFORMATION_SCHEMA.HELP WHERE SECTION LIKE 'Functions%' ORDER BY SECTION, ID"
);
map
(
"functionsAll"
,
"SELECT * FROM INFORMATION_SCHEMA.HELP WHERE SECTION LIKE 'Functions%' ORDER BY SECTION, ID"
);
map
(
"dataTypes"
,
"SELECT * FROM INFORMATION_SCHEMA.HELP WHERE SECTION LIKE 'Data Types%' ORDER BY SECTION, ID"
);
map
(
"dataTypes"
,
"SELECT * FROM INFORMATION_SCHEMA.HELP WHERE SECTION LIKE 'Data Types%' ORDER BY SECTION, ID"
);
process
(
"grammar"
);
process
(
"grammar"
);
process
(
"functions"
);
process
(
"functions"
);
process
(
"datatypes"
);
process
(
"datatypes"
);
conn
.
close
();
conn
.
close
();
Indexer
.
main
(
new
String
[
0
]);
}
}
void
process
(
String
fileName
)
throws
Exception
{
void
process
(
String
fileName
)
throws
Exception
{
...
...
h2/src/tools/org/h2/tools/doc/dictionary.txt
浏览文件 @
bc5a2a8e
...
@@ -443,6 +443,18 @@ unavailable repeating sponsored indonesian yuliantoro joko indonesia unlike
...
@@ -443,6 +443,18 @@ unavailable repeating sponsored indonesian yuliantoro joko indonesia unlike
truncating ronni ptn avalon nielsen hammant picked sequoia continuent deebee paul
truncating ronni ptn avalon nielsen hammant picked sequoia continuent deebee paul
lister testa testb tar von
lister testa testb tar von
amazing timer allowing programmers pictures scramble portal bots tempted legacy
semicolons luckily involving die prevalent manipulating risks unmapped solutions
preventing prevented retry superfluous varying tend revolutions emit technically
excessive among lazy synchronous technique patented ability cycle difficult rejects
animal achieves touch produced smallest vulnerabilities descriptive verify thinks
potential lose novel handy filtering wonder story cool prevents animals wrote
tier seen young providing extreme images apple rpm thousand compromise
sandbox greatest whatever placeholder creative leak hacker benefits station
million prevention stuck titles fiche blogs showed widespread cut placeholders
graph prohibit confusing clever automated nutshell scriptella etl tamava semmle
googlegroups guidewire thecodist captcha brewster semmle ddlutils analyse dave
maxvalue samooha dbrewster minvalue darwin
### check those again:
### check those again:
populate slowly xacon inser maxbqualsize counter regards attaching official xatest
populate slowly xacon inser maxbqualsize counter regards attaching official xatest
...
...
h2/src/tools/org/h2/tools/indexer/Indexer.java
浏览文件 @
bc5a2a8e
...
@@ -35,6 +35,11 @@ public class Indexer {
...
@@ -35,6 +35,11 @@ public class Indexer {
private
static
final
int
MAX_RELATIONS
=
20
;
private
static
final
int
MAX_RELATIONS
=
20
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
new
Indexer
().
run
(
args
);
}
void
run
(
String
[]
args
)
throws
Exception
{
System
.
out
.
println
(
getClass
().
getName
());
String
dir
=
"docs"
;
String
dir
=
"docs"
;
String
destDir
=
"docs/html"
;
String
destDir
=
"docs/html"
;
for
(
int
i
=
0
;
i
<
args
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
args
.
length
;
i
++)
{
...
@@ -44,12 +49,9 @@ public class Indexer {
...
@@ -44,12 +49,9 @@ public class Indexer {
destDir
=
args
[++
i
];
destDir
=
args
[++
i
];
}
}
}
}
Indexer
app
=
new
Indexer
();
File
file
=
new
File
(
dir
);
File
file
=
new
File
(
dir
);
System
.
out
.
println
(
"indexing "
+
file
.
getCanonicalPath
());
System
.
out
.
println
(
"indexing "
+
file
.
getCanonicalPath
());
// File file = new File("C:\\Programs\\selfhtml81");
setNoIndex
(
new
String
[]
{
// File file = new File("C:\\Programme\\selfhtml81");
app
.
setNoIndex
(
new
String
[]
{
"index.html"
,
"index.html"
,
"html/header.html"
,
"html/header.html"
,
"html/search.html"
,
"html/search.html"
,
...
@@ -63,19 +65,19 @@ public class Indexer {
...
@@ -63,19 +65,19 @@ public class Indexer {
"javadoc/overview-summary.html"
,
"javadoc/overview-summary.html"
,
"javadoc/serialized-form.html"
"javadoc/serialized-form.html"
});
});
app
.
output
=
new
PrintWriter
(
new
FileWriter
(
destDir
+
"/index.js"
));
output
=
new
PrintWriter
(
new
FileWriter
(
destDir
+
"/index.js"
));
app
.
readPages
(
""
,
file
,
0
);
readPages
(
""
,
file
,
0
);
app
.
output
.
println
(
"var pages=new Array();"
);
output
.
println
(
"var pages=new Array();"
);
app
.
output
.
println
(
"var ref=new Array();"
);
output
.
println
(
"var ref=new Array();"
);
app
.
output
.
println
(
"function Page(title, file) { this.title=title; this.file=file; }"
);
output
.
println
(
"function Page(title, file) { this.title=title; this.file=file; }"
);
app
.
output
.
println
(
"function load() {"
);
output
.
println
(
"function load() {"
);
app
.
sortWords
();
sortWords
();
app
.
removeOverflowRelations
();
removeOverflowRelations
();
app
.
sortPages
();
sortPages
();
app
.
listPages
();
listPages
();
app
.
listWords
();
listWords
();
app
.
output
.
println
(
"}"
);
output
.
println
(
"}"
);
app
.
output
.
close
();
output
.
close
();
}
}
private
void
setNoIndex
(
String
[]
strings
)
{
private
void
setNoIndex
(
String
[]
strings
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论