Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
ad108b2d
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
ad108b2d
编写于
12月 17, 2021
作者:
haoranc
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' of github.com:taosdata/TDengine into dev/chr
上级
552a7b65
0e0a4c09
变更
38
隐藏空白更改
内联
并排
Showing
38 changed file
with
461 addition
and
238 deletion
+461
-238
src/connector/jdbc/src/main/java/com/taosdata/jdbc/rs/RestfulResultSet.java
.../src/main/java/com/taosdata/jdbc/rs/RestfulResultSet.java
+63
-17
src/connector/jdbc/src/main/java/com/taosdata/jdbc/rs/RestfulStatement.java
.../src/main/java/com/taosdata/jdbc/rs/RestfulStatement.java
+1
-0
src/connector/jdbc/src/test/java/com/taosdata/jdbc/ParameterBindTest.java
...bc/src/test/java/com/taosdata/jdbc/ParameterBindTest.java
+2
-2
src/connector/jdbc/src/test/java/com/taosdata/jdbc/SchemalessInsertTest.java
...src/test/java/com/taosdata/jdbc/SchemalessInsertTest.java
+0
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBConnectionTest.java
...c/src/test/java/com/taosdata/jdbc/TSDBConnectionTest.java
+5
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBDriverTest.java
.../jdbc/src/test/java/com/taosdata/jdbc/TSDBDriverTest.java
+0
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBJNIConnectorTest.java
...src/test/java/com/taosdata/jdbc/TSDBJNIConnectorTest.java
+94
-97
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBParameterMetaDataTest.java
...est/java/com/taosdata/jdbc/TSDBParameterMetaDataTest.java
+9
-4
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBPreparedStatementTest.java
...est/java/com/taosdata/jdbc/TSDBPreparedStatementTest.java
+1
-0
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBResultSetTest.java
...bc/src/test/java/com/taosdata/jdbc/TSDBResultSetTest.java
+5
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/InsertDbwithoutUseDbTest.java
...ava/com/taosdata/jdbc/cases/InsertDbwithoutUseDbTest.java
+34
-44
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/InsertSpecialCharacterJniTest.java
...om/taosdata/jdbc/cases/InsertSpecialCharacterJniTest.java
+5
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/InsertSpecialCharacterRestfulTest.java
...aosdata/jdbc/cases/InsertSpecialCharacterRestfulTest.java
+5
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/JDBCTypeAndTypeCompareTest.java
...a/com/taosdata/jdbc/cases/JDBCTypeAndTypeCompareTest.java
+21
-5
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/MicroSecondPrecisionJNITest.java
.../com/taosdata/jdbc/cases/MicroSecondPrecisionJNITest.java
+7
-2
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/MicroSecondPrecisionRestfulTest.java
.../taosdata/jdbc/cases/MicroSecondPrecisionRestfulTest.java
+19
-10
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/MultiConnectionWithDifferentDbTest.java
...osdata/jdbc/cases/MultiConnectionWithDifferentDbTest.java
+13
-0
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/NanoSecondTimestampJNITest.java
...a/com/taosdata/jdbc/cases/NanoSecondTimestampJNITest.java
+17
-6
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/NanoSecondTimestampRestfulTest.java
...m/taosdata/jdbc/cases/NanoSecondTimestampRestfulTest.java
+13
-6
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/NullValueInResultSetJNITest.java
.../com/taosdata/jdbc/cases/NullValueInResultSetJNITest.java
+5
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/NullValueInResultSetRestfulTest.java
.../taosdata/jdbc/cases/NullValueInResultSetRestfulTest.java
+5
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/NullValueInResultSetTest.java
...ava/com/taosdata/jdbc/cases/NullValueInResultSetTest.java
+5
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/TimestampPrecisionInNanoInJniTest.java
...aosdata/jdbc/cases/TimestampPrecisionInNanoInJniTest.java
+6
-2
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/TimestampPrecisonInNanoRestTest.java
.../taosdata/jdbc/cases/TimestampPrecisonInNanoRestTest.java
+6
-2
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/UnsignedNumberJniTest.java
...t/java/com/taosdata/jdbc/cases/UnsignedNumberJniTest.java
+5
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/UnsignedNumberRestfulTest.java
...va/com/taosdata/jdbc/cases/UnsignedNumberRestfulTest.java
+9
-4
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/UseNowInsertTimestampTest.java
...va/com/taosdata/jdbc/cases/UseNowInsertTimestampTest.java
+15
-2
src/connector/jdbc/src/test/java/com/taosdata/jdbc/confprops/BadLocaleSettingTest.java
...ava/com/taosdata/jdbc/confprops/BadLocaleSettingTest.java
+5
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/confprops/BatchFetchTest.java
...test/java/com/taosdata/jdbc/confprops/BatchFetchTest.java
+11
-0
src/connector/jdbc/src/test/java/com/taosdata/jdbc/confprops/CharsetTest.java
...rc/test/java/com/taosdata/jdbc/confprops/CharsetTest.java
+15
-0
src/connector/jdbc/src/test/java/com/taosdata/jdbc/confprops/TimeZoneTest.java
...c/test/java/com/taosdata/jdbc/confprops/TimeZoneTest.java
+3
-5
src/connector/jdbc/src/test/java/com/taosdata/jdbc/confprops/TimestampFormatTest.java
...java/com/taosdata/jdbc/confprops/TimestampFormatTest.java
+24
-10
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/DatabaseSpecifiedTest.java
...test/java/com/taosdata/jdbc/rs/DatabaseSpecifiedTest.java
+5
-2
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/RestfulConnectionTest.java
...test/java/com/taosdata/jdbc/rs/RestfulConnectionTest.java
+5
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/RestfulParameterMetaDataTest.java
...va/com/taosdata/jdbc/rs/RestfulParameterMetaDataTest.java
+9
-4
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/RestfulPreparedStatementTest.java
...va/com/taosdata/jdbc/rs/RestfulPreparedStatementTest.java
+5
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/RestfulResultSetMetaDataTest.java
...va/com/taosdata/jdbc/rs/RestfulResultSetMetaDataTest.java
+6
-1
src/mnode/src/mnodeDb.c
src/mnode/src/mnodeDb.c
+3
-0
未找到文件。
src/connector/jdbc/src/main/java/com/taosdata/jdbc/rs/RestfulResultSet.java
浏览文件 @
ad108b2d
...
...
@@ -14,13 +14,43 @@ import java.math.BigDecimal;
import
java.sql.*
;
import
java.time.Instant
;
import
java.time.ZoneOffset
;
import
java.time.ZonedDateTime
;
import
java.time.chrono.IsoChronology
;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatterBuilder
;
import
java.time.format.DateTimeParseException
;
import
java.time.format.ResolverStyle
;
import
java.time.temporal.ChronoField
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.List
;
public
class
RestfulResultSet
extends
AbstractResultSet
implements
ResultSet
{
public
static
DateTimeFormatter
rfc3339Parser
=
null
;
{
rfc3339Parser
=
new
DateTimeFormatterBuilder
()
.
parseCaseInsensitive
()
.
appendValue
(
ChronoField
.
YEAR
,
4
)
.
appendLiteral
(
'-'
)
.
appendValue
(
ChronoField
.
MONTH_OF_YEAR
,
2
)
.
appendLiteral
(
'-'
)
.
appendValue
(
ChronoField
.
DAY_OF_MONTH
,
2
)
.
appendLiteral
(
'T'
)
.
appendValue
(
ChronoField
.
HOUR_OF_DAY
,
2
)
.
appendLiteral
(
':'
)
.
appendValue
(
ChronoField
.
MINUTE_OF_HOUR
,
2
)
.
appendLiteral
(
':'
)
.
appendValue
(
ChronoField
.
SECOND_OF_MINUTE
,
2
)
.
optionalStart
()
.
appendFraction
(
ChronoField
.
NANO_OF_SECOND
,
2
,
9
,
true
)
.
optionalEnd
()
.
appendOffset
(
"+HH:MM"
,
"Z"
).
toFormatter
()
.
withResolverStyle
(
ResolverStyle
.
STRICT
)
.
withChronology
(
IsoChronology
.
INSTANCE
);
}
private
final
Statement
statement
;
// data
private
final
List
<
List
<
Object
>>
resultSet
=
new
ArrayList
<>();
...
...
@@ -187,25 +217,41 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
}
case
UTC:
{
String
value
=
row
.
getString
(
colIndex
);
long
epochSec
=
Timestamp
.
valueOf
(
value
.
substring
(
0
,
19
).
replace
(
"T"
,
" "
)).
getTime
()
/
1000
;
int
fractionalSec
=
Integer
.
parseInt
(
value
.
substring
(
20
,
value
.
length
()
-
5
));
long
nanoAdjustment
;
if
(
value
.
length
()
>
31
)
{
// ns timestamp: yyyy-MM-ddTHH:mm:ss.SSSSSSSSS+0x00
nanoAdjustment
=
fractionalSec
;
this
.
timestampPrecision
=
TimestampPrecision
.
NS
;
}
else
if
(
value
.
length
()
>
28
)
{
// ms timestamp: yyyy-MM-ddTHH:mm:ss.SSSSSS+0x00
nanoAdjustment
=
fractionalSec
*
1000L
;
this
.
timestampPrecision
=
TimestampPrecision
.
US
;
if
(
value
.
lastIndexOf
(
":"
)
>
19
)
{
ZonedDateTime
parse
=
ZonedDateTime
.
parse
(
value
,
rfc3339Parser
);
long
nanoAdjustment
;
if
(
value
.
length
()
>
32
)
{
// ns timestamp: yyyy-MM-ddTHH:mm:ss.SSSSSSSSS+0x:00
this
.
timestampPrecision
=
TimestampPrecision
.
NS
;
}
else
if
(
value
.
length
()
>
29
)
{
// ms timestamp: yyyy-MM-ddTHH:mm:ss.SSSSSS+0x:00
this
.
timestampPrecision
=
TimestampPrecision
.
US
;
}
else
{
// ms timestamp: yyyy-MM-ddTHH:mm:ss.SSS+0x:00
this
.
timestampPrecision
=
TimestampPrecision
.
MS
;
}
return
Timestamp
.
from
(
parse
.
toInstant
());
}
else
{
// ms timestamp: yyyy-MM-ddTHH:mm:ss.SSS+0x00
nanoAdjustment
=
fractionalSec
*
1000_000L
;
this
.
timestampPrecision
=
TimestampPrecision
.
MS
;
long
epochSec
=
Timestamp
.
valueOf
(
value
.
substring
(
0
,
19
).
replace
(
"T"
,
" "
)).
getTime
()
/
1000
;
int
fractionalSec
=
Integer
.
parseInt
(
value
.
substring
(
20
,
value
.
length
()
-
5
));
long
nanoAdjustment
;
if
(
value
.
length
()
>
32
)
{
// ns timestamp: yyyy-MM-ddTHH:mm:ss.SSSSSSSSS+0x00
nanoAdjustment
=
fractionalSec
;
this
.
timestampPrecision
=
TimestampPrecision
.
NS
;
}
else
if
(
value
.
length
()
>
29
)
{
// ms timestamp: yyyy-MM-ddTHH:mm:ss.SSSSSS+0x00
nanoAdjustment
=
fractionalSec
*
1000L
;
this
.
timestampPrecision
=
TimestampPrecision
.
US
;
}
else
{
// ms timestamp: yyyy-MM-ddTHH:mm:ss.SSS+0x00
nanoAdjustment
=
fractionalSec
*
1000_000L
;
this
.
timestampPrecision
=
TimestampPrecision
.
MS
;
}
ZoneOffset
zoneOffset
=
ZoneOffset
.
of
(
value
.
substring
(
value
.
length
()
-
5
));
Instant
instant
=
Instant
.
ofEpochSecond
(
epochSec
,
nanoAdjustment
).
atOffset
(
zoneOffset
).
toInstant
();
return
Timestamp
.
from
(
instant
);
}
ZoneOffset
zoneOffset
=
ZoneOffset
.
of
(
value
.
substring
(
value
.
length
()
-
5
));
Instant
instant
=
Instant
.
ofEpochSecond
(
epochSec
,
nanoAdjustment
).
atOffset
(
zoneOffset
).
toInstant
();
return
Timestamp
.
from
(
instant
);
}
case
STRING:
default
:
{
...
...
src/connector/jdbc/src/main/java/com/taosdata/jdbc/rs/RestfulStatement.java
浏览文件 @
ad108b2d
...
...
@@ -72,6 +72,7 @@ public class RestfulStatement extends AbstractStatement {
}
this
.
database
=
sql
.
trim
().
replace
(
"use"
,
""
).
trim
();
this
.
conn
.
setCatalog
(
this
.
database
);
this
.
conn
.
setClientInfo
(
TSDBDriver
.
PROPERTY_KEY_DBNAME
,
this
.
database
);
result
=
false
;
}
else
if
(
SqlSyntaxValidator
.
isDatabaseUnspecifiedQuery
(
sql
))
{
executeOneQuery
(
sql
);
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/ParameterBindTest.java
浏览文件 @
ad108b2d
...
...
@@ -128,8 +128,8 @@ public class ParameterBindTest {
@After
public
void
after
()
{
try
{
//
Statement stmt = conn.createStatement();
//
stmt.execute("drop database if exists test_pd");
Statement
stmt
=
conn
.
createStatement
();
stmt
.
execute
(
"drop database if exists test_pd"
);
if
(
conn
!=
null
)
conn
.
close
();
}
catch
(
SQLException
e
)
{
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/SchemalessInsertTest.java
浏览文件 @
ad108b2d
...
...
@@ -187,7 +187,6 @@ public class SchemalessInsertTest {
public
void
after
()
{
try
(
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
execute
(
"drop database if exists "
+
dbname
);
stmt
.
close
();
conn
.
close
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBConnectionTest.java
浏览文件 @
ad108b2d
...
...
@@ -380,8 +380,12 @@ public class TSDBConnectionTest {
@AfterClass
public
static
void
afterClass
()
throws
SQLException
{
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists test"
);
statement
.
close
();
conn
.
close
();
}
}
}
\ No newline at end of file
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBDriverTest.java
浏览文件 @
ad108b2d
package
com.taosdata.jdbc
;
import
org.junit.BeforeClass
;
import
org.junit.Test
;
import
java.sql.*
;
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBJNIConnectorTest.java
浏览文件 @
ad108b2d
...
...
@@ -7,6 +7,7 @@ import org.junit.Test;
import
java.lang.management.ManagementFactory
;
import
java.lang.management.RuntimeMXBean
;
import
java.sql.SQLException
;
import
java.sql.SQLWarning
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Properties
;
...
...
@@ -19,115 +20,111 @@ public class TSDBJNIConnectorTest {
private
static
TSDBResultSetRowData
rowData
;
@Test
public
void
test
()
{
public
void
test
()
throws
SQLException
{
try
{
try
{
//change sleepSeconds when debugging with attach to process to find PID
int
sleepSeconds
=
-
1
;
if
(
sleepSeconds
>
0
)
{
RuntimeMXBean
runtimeBean
=
ManagementFactory
.
getRuntimeMXBean
();
String
jvmName
=
runtimeBean
.
getName
();
long
pid
=
Long
.
valueOf
(
jvmName
.
split
(
"@"
)[
0
]);
System
.
out
.
println
(
"JVM PID = "
+
pid
);
Thread
.
sleep
(
sleepSeconds
*
1000
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
//change sleepSeconds when debugging with attach to process to find PID
int
sleepSeconds
=
-
1
;
if
(
sleepSeconds
>
0
)
{
RuntimeMXBean
runtimeBean
=
ManagementFactory
.
getRuntimeMXBean
();
String
jvmName
=
runtimeBean
.
getName
();
long
pid
=
Long
.
valueOf
(
jvmName
.
split
(
"@"
)[
0
]);
System
.
out
.
println
(
"JVM PID = "
+
pid
);
Thread
.
sleep
(
sleepSeconds
*
1000
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
// init
Properties
properties
=
new
Properties
();
properties
.
setProperty
(
TSDBDriver
.
PROPERTY_KEY_CONFIG_DIR
,
"/etc/taos"
);
TSDBJNIConnector
.
init
(
properties
);
// connect
TSDBJNIConnector
connector
=
new
TSDBJNIConnector
();
connector
.
connect
(
"127.0.0.1"
,
6030
,
null
,
"root"
,
"taosdata"
);
// setup
String
setupSqlStrs
[]
=
{
"create database if not exists d precision \"us\""
,
"create table if not exists d.t(ts timestamp, f int)"
,
"create database if not exists d2"
,
"create table if not exists d2.t2(ts timestamp, f int)"
,
"insert into d.t values(now+100s, 100)"
,
"insert into d2.t2 values(now+200s, 200)"
};
for
(
String
setupSqlStr
:
setupSqlStrs
)
{
long
setupSql
=
connector
.
executeQuery
(
setupSqlStr
);
assertEquals
(
0
,
connector
.
getResultTimePrecision
(
setupSql
));
if
(
connector
.
isUpdateQuery
(
setupSql
))
{
connector
.
freeResultSet
(
setupSql
);
}
// init
Properties
properties
=
new
Properties
();
properties
.
setProperty
(
TSDBDriver
.
PROPERTY_KEY_CONFIG_DIR
,
"/etc/taos"
);
TSDBJNIConnector
.
init
(
properties
);
// connect
TSDBJNIConnector
connector
=
new
TSDBJNIConnector
();
connector
.
connect
(
"127.0.0.1"
,
6030
,
null
,
"root"
,
"taosdata"
);
// setup
String
setupSqlStrs
[]
=
{
"create database if not exists d precision \"us\""
,
"create table if not exists d.t(ts timestamp, f int)"
,
"create database if not exists d2"
,
"create table if not exists d2.t2(ts timestamp, f int)"
,
"insert into d.t values(now+100s, 100)"
,
"insert into d2.t2 values(now+200s, 200)"
};
for
(
String
setupSqlStr
:
setupSqlStrs
)
{
long
setupSql
=
connector
.
executeQuery
(
setupSqlStr
);
assertEquals
(
0
,
connector
.
getResultTimePrecision
(
setupSql
));
if
(
connector
.
isUpdateQuery
(
setupSql
))
{
connector
.
freeResultSet
(
setupSql
);
}
}
{
long
sqlObj1
=
connector
.
executeQuery
(
"select * from d2.t2"
);
assertEquals
(
0
,
connector
.
getResultTimePrecision
(
sqlObj1
));
List
<
ColumnMetaData
>
columnMetaDataList
=
new
ArrayList
<>();
int
code
=
connector
.
getSchemaMetaData
(
sqlObj1
,
columnMetaDataList
);
rowData
=
new
TSDBResultSetRowData
(
columnMetaDataList
.
size
());
assertTrue
(
next
(
connector
,
sqlObj1
));
assertEquals
(
0
,
connector
.
getResultTimePrecision
(
sqlObj1
));
connector
.
freeResultSet
(
sqlObj1
);
}
{
long
sqlObj1
=
connector
.
executeQuery
(
"select * from d2.t2"
);
assertEquals
(
0
,
connector
.
getResultTimePrecision
(
sqlObj1
));
List
<
ColumnMetaData
>
columnMetaDataList
=
new
ArrayList
<>();
int
code
=
connector
.
getSchemaMetaData
(
sqlObj1
,
columnMetaDataList
);
rowData
=
new
TSDBResultSetRowData
(
columnMetaDataList
.
size
());
assertTrue
(
next
(
connector
,
sqlObj1
));
assertEquals
(
0
,
connector
.
getResultTimePrecision
(
sqlObj1
));
connector
.
freeResultSet
(
sqlObj1
);
}
// executeQuery
long
pSql
=
connector
.
executeQuery
(
"select * from d.t"
);
// executeQuery
long
pSql
=
connector
.
executeQuery
(
"select * from d.t"
);
if
(
connector
.
isUpdateQuery
(
pSql
))
{
connector
.
freeResultSet
(
pSql
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_INVALID_WITH_EXECUTEQUERY
);
}
if
(
connector
.
isUpdateQuery
(
pSql
))
{
connector
.
freeResultSet
(
pSql
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_INVALID_WITH_EXECUTEQUERY
);
}
assertEquals
(
1
,
connector
.
getResultTimePrecision
(
pSql
));
assertEquals
(
1
,
connector
.
getResultTimePrecision
(
pSql
));
// get schema
List
<
ColumnMetaData
>
columnMetaDataList
=
new
ArrayList
<>();
int
code
=
connector
.
getSchemaMetaData
(
pSql
,
columnMetaDataList
);
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_CONNECTION_NULL
);
}
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_RESULT_SET_NULL
);
}
if
(
code
==
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_NUM_OF_FIELDS_0
);
}
// get schema
List
<
ColumnMetaData
>
columnMetaDataList
=
new
ArrayList
<>();
int
code
=
connector
.
getSchemaMetaData
(
pSql
,
columnMetaDataList
);
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_CONNECTION_NULL
);
}
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_RESULT_SET_NULL
);
}
if
(
code
==
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_NUM_OF_FIELDS_0
);
}
assertEquals
(
1
,
connector
.
getResultTimePrecision
(
pSql
));
int
columnSize
=
columnMetaDataList
.
size
();
// print metadata
for
(
int
i
=
0
;
i
<
columnSize
;
i
++)
{
// System.out.println(columnMetaDataList.get(i));
}
rowData
=
new
TSDBResultSetRowData
(
columnSize
);
// iterate resultSet
for
(
int
i
=
0
;
next
(
connector
,
pSql
);
i
++)
{
assertEquals
(
1
,
connector
.
getResultTimePrecision
(
pSql
));
int
columnSize
=
columnMetaDataList
.
size
();
// print metadata
for
(
int
i
=
0
;
i
<
columnSize
;
i
++)
{
System
.
out
.
println
(
columnMetaDataList
.
get
(
i
));
}
rowData
=
new
TSDBResultSetRowData
(
columnSize
);
// iterate resultSet
for
(
int
i
=
0
;
next
(
connector
,
pSql
);
i
++)
{
assertEquals
(
1
,
connector
.
getResultTimePrecision
(
pSql
));
System
.
out
.
println
();
}
// close resultSet
code
=
connector
.
freeResultSet
(
pSql
);
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_CONNECTION_NULL
);
}
else
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_RESULT_SET_NULL
);
}
// close statement
connector
.
executeQuery
(
"use d"
);
String
[]
lines
=
new
String
[]{
"st,t1=3i64,t2=4f64,t3=\"t3\" c1=3i64,c3=L\"passit\",c2=false,c4=4f64 1626006833639000000"
,
"st,t1=4i64,t3=\"t4\",t2=5f64,t4=5f64 c1=3i64,c3=L\"passitagin\",c2=true,c4=5f64,c5=5f64 1626006833640000000"
};
connector
.
insertLines
(
lines
,
SchemalessProtocolType
.
LINE
,
SchemalessTimestampType
.
NANO_SECONDS
);
// close connection
connector
.
closeConnection
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
// close resultSet
code
=
connector
.
freeResultSet
(
pSql
);
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_CONNECTION_NULL
);
}
else
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_RESULT_SET_NULL
);
}
// close statement
connector
.
executeQuery
(
"use d"
);
String
[]
lines
=
new
String
[]{
"st,t1=3i64,t2=4f64,t3=\"t3\" c1=3i64,c3=L\"passit\",c2=false,c4=4f64 1626006833639000000"
,
"st,t1=4i64,t3=\"t4\",t2=5f64,t4=5f64 c1=3i64,c3=L\"passitagin\",c2=true,c4=5f64,c5=5f64 1626006833640000000"
};
connector
.
insertLines
(
lines
,
SchemalessProtocolType
.
LINE
,
SchemalessTimestampType
.
NANO_SECONDS
);
// close connection
connector
.
executeQuery
(
"drop database if exists d"
);
connector
.
executeQuery
(
"drop database if exists d2"
);
connector
.
closeConnection
();
}
private
static
boolean
next
(
TSDBJNIConnector
connector
,
long
pSql
)
throws
SQLException
{
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBParameterMetaDataTest.java
浏览文件 @
ad108b2d
...
...
@@ -17,6 +17,7 @@ public class TSDBParameterMetaDataTest {
private
static
PreparedStatement
pstmt_select
;
private
static
ParameterMetaData
parameterMetaData_insert
;
private
static
ParameterMetaData
parameterMetaData_select
;
private
static
final
String
dbname
=
"test_pstmt"
;
@Test
public
void
getParameterCount
()
throws
SQLException
{
...
...
@@ -152,9 +153,9 @@ public class TSDBParameterMetaDataTest {
try
{
conn
=
DriverManager
.
getConnection
(
"jdbc:TAOS://"
+
host
+
":6030/?user=root&password=taosdata"
);
try
(
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
execute
(
"drop database if exists
test_pstmt"
);
stmt
.
execute
(
"create database if not exists
test_pstmt"
);
stmt
.
execute
(
"use
test_pstmt"
);
stmt
.
execute
(
"drop database if exists
"
+
dbname
);
stmt
.
execute
(
"create database if not exists
"
+
dbname
);
stmt
.
execute
(
"use
"
+
dbname
);
stmt
.
execute
(
"create table weather(ts timestamp, f1 int, f2 bigint, f3 float, f4 double, f5 smallint, f6 tinyint, f7 bool, f8 binary(64), f9 nchar(64)) tags(loc nchar(64))"
);
stmt
.
execute
(
"create table t1 using weather tags('beijing')"
);
}
...
...
@@ -190,8 +191,12 @@ public class TSDBParameterMetaDataTest {
pstmt_insert
.
close
();
if
(
pstmt_select
!=
null
)
pstmt_select
.
close
();
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists "
+
dbname
);
statement
.
close
();
conn
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBPreparedStatementTest.java
浏览文件 @
ad108b2d
...
...
@@ -1233,6 +1233,7 @@ public class TSDBPreparedStatementTest {
try
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists "
+
dbname
);
statement
.
execute
(
"drop database if exists dbtest"
);
statement
.
close
();
if
(
conn
!=
null
)
conn
.
close
();
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBResultSetTest.java
浏览文件 @
ad108b2d
...
...
@@ -668,8 +668,12 @@ public class TSDBResultSetTest {
rs
.
close
();
if
(
stmt
!=
null
)
stmt
.
close
();
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists restful_test"
);
statement
.
close
();
conn
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/InsertDbwithoutUseDbTest.java
浏览文件 @
ad108b2d
package
com.taosdata.jdbc.cases
;
import
org.junit.Assert
;
import
org.junit.BeforeClass
;
import
org.junit.FixMethodOrder
;
import
org.junit.Test
;
import
org.junit.*
;
import
org.junit.runners.MethodSorters
;
import
java.sql.*
;
...
...
@@ -16,36 +13,32 @@ public class InsertDbwithoutUseDbTest {
private
static
final
String
host
=
"127.0.0.1"
;
private
static
Properties
properties
;
private
static
final
Random
random
=
new
Random
(
System
.
currentTimeMillis
());
private
static
final
String
dbname
=
"inWithoutDb"
;
@Test
public
void
case001
()
throws
SQLException
{
// prepare schema
String
url
=
"jdbc:TAOS://127.0.0.1:6030/?user=root&password=taosdata"
;
Connection
conn
=
DriverManager
.
getConnection
(
url
,
properties
);
try
(
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
execute
(
"drop database if exists inWithoutDb"
);
stmt
.
execute
(
"create database if not exists inWithoutDb"
);
stmt
.
execute
(
"create table inWithoutDb
.weather(ts timestamp, f1 int)"
);
}
Statement
stmt
=
conn
.
createStatement
();
stmt
.
execute
(
"drop database if exists "
+
dbname
);
stmt
.
execute
(
"create database if not exists "
+
dbname
);
stmt
.
execute
(
"create table "
+
dbname
+
"
.weather(ts timestamp, f1 int)"
);
conn
.
close
();
// execute insert
url
=
"jdbc:TAOS://127.0.0.1:6030/
inWithoutDb
?user=root&password=taosdata"
;
url
=
"jdbc:TAOS://127.0.0.1:6030/
"
+
dbname
+
"
?user=root&password=taosdata"
;
conn
=
DriverManager
.
getConnection
(
url
,
properties
);
try
(
Statement
stmt
=
conn
.
createStatement
())
{
int
affectedRow
=
stmt
.
executeUpdate
(
"insert into weather(ts, f1) values(now,"
+
random
.
nextInt
(
100
)
+
")"
);
Assert
.
assertEquals
(
1
,
affectedRow
);
boolean
flag
=
stmt
.
execute
(
"insert into weather(ts, f1) values(now + 10s,"
+
random
.
nextInt
(
100
)
+
")"
);
Assert
.
assertEquals
(
false
,
flag
);
ResultSet
rs
=
stmt
.
executeQuery
(
"select count(*) from weather"
);
rs
.
next
();
int
count
=
rs
.
getInt
(
"count(*)"
);
Assert
.
assertEquals
(
2
,
count
);
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
stmt
=
conn
.
createStatement
();
int
affectedRow
=
stmt
.
executeUpdate
(
"insert into weather(ts, f1) values(now,"
+
random
.
nextInt
(
100
)
+
")"
);
Assert
.
assertEquals
(
1
,
affectedRow
);
boolean
flag
=
stmt
.
execute
(
"insert into weather(ts, f1) values(now + 10s,"
+
random
.
nextInt
(
100
)
+
")"
);
Assert
.
assertEquals
(
false
,
flag
);
ResultSet
rs
=
stmt
.
executeQuery
(
"select count(*) from weather"
);
rs
.
next
();
int
count
=
rs
.
getInt
(
"count(*)"
);
Assert
.
assertEquals
(
2
,
count
);
conn
.
close
();
}
...
...
@@ -54,28 +47,25 @@ public class InsertDbwithoutUseDbTest {
// prepare the schema
final
String
url
=
"jdbc:TAOS-RS://"
+
host
+
":6041/inWithoutDb?user=root&password=taosdata"
;
Connection
conn
=
DriverManager
.
getConnection
(
url
,
properties
);
try
(
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
execute
(
"drop database if exists inWithoutDb"
);
stmt
.
execute
(
"create database if not exists inWithoutDb"
);
stmt
.
execute
(
"create table inWithoutDb.weather(ts timestamp, f1 int)"
);
}
conn
.
close
();
Statement
stmt
=
conn
.
createStatement
();
stmt
.
execute
(
"drop database if exists "
+
dbname
);
stmt
.
execute
(
"create database if not exists "
+
dbname
);
stmt
.
execute
(
"create table "
+
dbname
+
".weather(ts timestamp, f1 int)"
);
stmt
.
close
();
// execute
conn
=
DriverManager
.
getConnection
(
url
,
properties
);
try
(
Statement
stmt
=
conn
.
createStatement
())
{
int
affectedRow
=
stmt
.
executeUpdate
(
"insert into weather(ts, f1) values(now,"
+
random
.
nextInt
(
100
)
+
")"
);
Assert
.
assertEquals
(
1
,
affectedRow
);
boolean
flag
=
stmt
.
execute
(
"insert into weather(ts, f1) values(now + 10s,"
+
random
.
nextInt
(
100
)
+
")"
);
Assert
.
assertEquals
(
false
,
flag
);
ResultSet
rs
=
stmt
.
executeQuery
(
"select count(*) from weather"
);
rs
.
next
();
int
count
=
rs
.
getInt
(
"count(*)"
);
Assert
.
assertEquals
(
2
,
count
);
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
stmt
=
conn
.
createStatement
();
int
affectedRow
=
stmt
.
executeUpdate
(
"insert into weather(ts, f1) values(now,"
+
random
.
nextInt
(
100
)
+
")"
);
Assert
.
assertEquals
(
1
,
affectedRow
);
boolean
flag
=
stmt
.
execute
(
"insert into weather(ts, f1) values(now + 10s,"
+
random
.
nextInt
(
100
)
+
")"
);
Assert
.
assertEquals
(
false
,
flag
);
ResultSet
rs
=
stmt
.
executeQuery
(
"select count(*) from weather"
);
rs
.
next
();
int
count
=
rs
.
getInt
(
"count(*)"
);
Assert
.
assertEquals
(
2
,
count
);
stmt
.
execute
(
"drop database if exists "
+
dbname
);
stmt
.
close
();
conn
.
close
();
}
@BeforeClass
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/InsertSpecialCharacterJniTest.java
浏览文件 @
ad108b2d
...
...
@@ -427,8 +427,12 @@ public class InsertSpecialCharacterJniTest {
@AfterClass
public
static
void
afterClass
()
throws
SQLException
{
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists "
+
dbName
);
statement
.
close
();
conn
.
close
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/InsertSpecialCharacterRestfulTest.java
浏览文件 @
ad108b2d
...
...
@@ -391,8 +391,12 @@ public class InsertSpecialCharacterRestfulTest {
@AfterClass
public
static
void
afterClass
()
throws
SQLException
{
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists "
+
dbName
);
statement
.
close
();
conn
.
close
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/JDBCTypeAndTypeCompareTest.java
浏览文件 @
ad108b2d
package
com.taosdata.jdbc.cases
;
import
org.junit.AfterClass
;
import
org.junit.Test
;
import
java.sql.*
;
public
class
JDBCTypeAndTypeCompareTest
{
private
static
Connection
conn
;
private
static
final
String
dbname
=
"test"
;
@Test
public
void
test
()
throws
SQLException
{
Connection
conn
=
DriverManager
.
getConnection
(
"jdbc:TAOS://192.168.17.156
:6030/"
,
"root"
,
"taosdata"
);
conn
=
DriverManager
.
getConnection
(
"jdbc:TAOS://127.0.0.1
:6030/"
,
"root"
,
"taosdata"
);
Statement
stmt
=
conn
.
createStatement
();
stmt
.
execute
(
"drop database if exists
test"
);
stmt
.
execute
(
"create database if not exists
test"
);
stmt
.
execute
(
"use
test"
);
stmt
.
execute
(
"drop database if exists
"
+
dbname
);
stmt
.
execute
(
"create database if not exists
"
+
dbname
);
stmt
.
execute
(
"use
"
+
dbname
);
stmt
.
execute
(
"create table weather(ts timestamp, f1 int, f2 bigint, f3 float, f4 double, f5 smallint, f6 tinyint, f7 bool, f8 binary(10), f9 nchar(10) )"
);
stmt
.
execute
(
"insert into weather values(now, 1, 2, 3.0, 4.0, 5, 6, true, 'test','test')"
);
...
...
@@ -29,6 +32,19 @@ public class JDBCTypeAndTypeCompareTest {
}
stmt
.
close
();
conn
.
close
();
}
@AfterClass
public
static
void
afterClass
()
{
try
{
if
(
null
!=
conn
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists "
+
dbname
);
statement
.
close
();
conn
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/MicroSecondPrecisionJNITest.java
浏览文件 @
ad108b2d
...
...
@@ -47,7 +47,7 @@ public class MicroSecondPrecisionJNITest {
Assert
.
assertEquals
(
timestamp2
%
1000_000
l
*
1000
,
nanos
);
ts
=
rs
.
getLong
(
1
);
Assert
.
assertEquals
(
timestamp
1
,
ts
);
Assert
.
assertEquals
(
timestamp
2
,
ts
);
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
...
...
@@ -79,8 +79,13 @@ public class MicroSecondPrecisionJNITest {
@AfterClass
public
static
void
afterClass
()
{
try
{
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database "
+
ms_timestamp_db
);
statement
.
execute
(
"drop database "
+
us_timestamp_db
);
statement
.
close
();
conn
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/MicroSecondPrecisionRestfulTest.java
浏览文件 @
ad108b2d
...
...
@@ -47,7 +47,7 @@ public class MicroSecondPrecisionRestfulTest {
Assert
.
assertEquals
(
timestamp2
%
1000_000
l
*
1000
,
nanos
);
ts
=
rs
.
getLong
(
1
);
Assert
.
assertEquals
(
timestamp
1
,
ts
);
Assert
.
assertEquals
(
timestamp
2
,
ts
);
}
}
...
...
@@ -77,7 +77,7 @@ public class MicroSecondPrecisionRestfulTest {
Assert
.
assertEquals
(
timestamp2
%
1000_000
l
*
1000
,
nanos
);
ts
=
rs
.
getLong
(
1
);
Assert
.
assertEquals
(
timestamp
1
,
ts
);
Assert
.
assertEquals
(
timestamp
2
,
ts
);
}
}
...
...
@@ -107,7 +107,7 @@ public class MicroSecondPrecisionRestfulTest {
Assert
.
assertEquals
(
timestamp2
%
1000_000
l
*
1000
,
nanos
);
ts
=
rs
.
getLong
(
1
);
Assert
.
assertEquals
(
timestamp
1
,
ts
);
Assert
.
assertEquals
(
timestamp
2
,
ts
);
}
}
...
...
@@ -142,12 +142,21 @@ public class MicroSecondPrecisionRestfulTest {
}
@AfterClass
public
static
void
afterClass
()
throws
SQLException
{
if
(
conn1
!=
null
)
conn1
.
close
();
if
(
conn2
!=
null
)
conn2
.
close
();
if
(
conn3
!=
null
)
conn3
.
close
();
public
static
void
afterClass
()
{
try
{
if
(
conn1
!=
null
)
{
Statement
statement
=
conn1
.
createStatement
();
statement
.
execute
(
"drop database if exists "
+
ms_timestamp_db
);
statement
.
execute
(
"drop database if exists "
+
us_timestamp_db
);
statement
.
close
();
conn1
.
close
();
}
if
(
conn2
!=
null
)
conn2
.
close
();
if
(
conn3
!=
null
)
conn3
.
close
();
}
catch
(
SQLException
e
){
e
.
printStackTrace
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/MultiConnectionWithDifferentDbTest.java
浏览文件 @
ad108b2d
package
com.taosdata.jdbc.cases
;
import
org.junit.After
;
import
org.junit.Before
;
import
org.junit.Test
;
...
...
@@ -90,4 +91,16 @@ public class MultiConnectionWithDifferentDbTest {
}
}
@After
public
void
after
()
{
String
url
=
"jdbc:TAOS-RS://"
+
host
+
":6041/?user=root&password=taosdata"
;
try
(
Connection
connection
=
DriverManager
.
getConnection
(
url
);
Statement
statement
=
connection
.
createStatement
())
{
statement
.
execute
(
"drop database if exists "
+
db1
);
statement
.
execute
(
"drop database if exists "
+
db2
);
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/NanoSecondTimestampJNITest.java
浏览文件 @
ad108b2d
package
com.taosdata.jdbc.cases
;
import
org.junit.Assert
;
import
org.junit.Before
;
import
org.junit.BeforeClass
;
import
org.junit.Test
;
import
org.junit.*
;
import
java.sql.*
;
import
java.time.Instant
;
...
...
@@ -83,9 +80,9 @@ public class NanoSecondTimestampJNITest {
// then
long
actual
=
rs
.
getLong
(
1
);
Assert
.
assertEquals
(
m
s
,
actual
);
Assert
.
assertEquals
(
n
s
,
actual
);
actual
=
rs
.
getLong
(
"ts"
);
Assert
.
assertEquals
(
m
s
,
actual
);
Assert
.
assertEquals
(
n
s
,
actual
);
}
@Test
...
...
@@ -160,4 +157,18 @@ public class NanoSecondTimestampJNITest {
}
}
@AfterClass
public
static
void
afterClass
(){
try
{
if
(
null
!=
conn
){
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists "
+
dbname
);
statement
.
close
();
conn
.
close
();
}
}
catch
(
SQLException
e
){
e
.
printStackTrace
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/NanoSecondTimestampRestfulTest.java
浏览文件 @
ad108b2d
package
com.taosdata.jdbc.cases
;
import
org.junit.Assert
;
import
org.junit.Before
;
import
org.junit.BeforeClass
;
import
org.junit.Test
;
import
org.junit.*
;
import
java.sql.*
;
import
java.time.Instant
;
...
...
@@ -83,9 +80,9 @@ public class NanoSecondTimestampRestfulTest {
// then
long
actual
=
rs
.
getLong
(
1
);
Assert
.
assertEquals
(
m
s
,
actual
);
Assert
.
assertEquals
(
n
s
,
actual
);
actual
=
rs
.
getLong
(
"ts"
);
Assert
.
assertEquals
(
m
s
,
actual
);
Assert
.
assertEquals
(
n
s
,
actual
);
}
@Test
...
...
@@ -160,4 +157,14 @@ public class NanoSecondTimestampRestfulTest {
}
}
@AfterClass
public
static
void
afterClass
()
throws
SQLException
{
if
(
conn
!=
null
){
try
(
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
execute
(
"drop database if exists "
+
dbname
);
}
conn
.
close
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/NullValueInResultSetJNITest.java
浏览文件 @
ad108b2d
...
...
@@ -45,7 +45,11 @@ public class NullValueInResultSetJNITest {
@After
public
void
after
()
throws
SQLException
{
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists test_null"
);
statement
.
close
();
conn
.
close
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/NullValueInResultSetRestfulTest.java
浏览文件 @
ad108b2d
...
...
@@ -47,7 +47,11 @@ public class NullValueInResultSetRestfulTest {
@After
public
void
after
()
throws
SQLException
{
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists test_null"
);
statement
.
close
();
conn
.
close
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/NullValueInResultSetTest.java
浏览文件 @
ad108b2d
...
...
@@ -85,7 +85,11 @@ public class NullValueInResultSetTest {
public
static
void
afterClass
()
throws
SQLException
{
if
(
conn_restful
!=
null
)
conn_restful
.
close
();
if
(
conn_jni
!=
null
)
if
(
conn_jni
!=
null
)
{
Statement
statement
=
conn_jni
.
createStatement
();
statement
.
execute
(
"drop database if exists test_null"
);
statement
.
close
();
conn_jni
.
close
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/TimestampPrecisionInNanoInJniTest.java
浏览文件 @
ad108b2d
...
...
@@ -62,8 +62,12 @@ public class TimestampPrecisionInNanoInJniTest {
@AfterClass
public
static
void
afterClass
()
{
try
{
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists "
+
ns_timestamp_db
);
statement
.
close
();
conn
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
...
...
@@ -83,7 +87,7 @@ public class TimestampPrecisionInNanoInJniTest {
int
nanos
=
rs
.
getTimestamp
(
1
).
getNanos
();
Assert
.
assertEquals
(
ts
%
1000_000_000
l
,
nanos
);
long
test_ts
=
rs
.
getLong
(
1
);
Assert
.
assertEquals
(
ts
/
1000_000
l
,
test_ts
);
Assert
.
assertEquals
(
ts
,
test_ts
);
}
@Test
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/TimestampPrecisonInNanoRestTest.java
浏览文件 @
ad108b2d
...
...
@@ -62,8 +62,12 @@ public class TimestampPrecisonInNanoRestTest {
@AfterClass
public
static
void
afterClass
()
{
try
{
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists "
+
ns_timestamp_db
);
statement
.
close
();
conn
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
...
...
@@ -83,7 +87,7 @@ public class TimestampPrecisonInNanoRestTest {
int
nanos
=
rs
.
getTimestamp
(
1
).
getNanos
();
Assert
.
assertEquals
(
ts
%
1000_000_000
l
,
nanos
);
long
test_ts
=
rs
.
getLong
(
1
);
Assert
.
assertEquals
(
ts
/
1000_000
l
,
test_ts
);
Assert
.
assertEquals
(
ts
,
test_ts
);
}
@Test
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/UnsignedNumberJniTest.java
浏览文件 @
ad108b2d
...
...
@@ -156,8 +156,12 @@ public class UnsignedNumberJniTest {
@AfterClass
public
static
void
afterClass
()
throws
SQLException
{
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists unsign_jni"
);
statement
.
close
();
conn
.
close
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/UnsignedNumberRestfulTest.java
浏览文件 @
ad108b2d
...
...
@@ -14,6 +14,7 @@ public class UnsignedNumberRestfulTest {
private
static
final
String
host
=
"127.0.0.1"
;
private
static
Connection
conn
;
private
static
long
ts
;
private
static
final
String
dbname
=
"unsign_restful"
;
@Test
public
void
testCase001
()
throws
SQLException
{
...
...
@@ -148,9 +149,9 @@ public class UnsignedNumberRestfulTest {
final
String
url
=
"jdbc:TAOS-RS://"
+
host
+
":6041/?user=root&password=taosdata"
;
conn
=
DriverManager
.
getConnection
(
url
,
properties
);
Statement
stmt
=
conn
.
createStatement
();
stmt
.
execute
(
"drop database if exists
unsign_restful"
);
stmt
.
execute
(
"create database if not exists
unsign_restful"
);
stmt
.
execute
(
"use
unsign_restful"
);
stmt
.
execute
(
"drop database if exists
"
+
dbname
);
stmt
.
execute
(
"create database if not exists
"
+
dbname
);
stmt
.
execute
(
"use
"
+
dbname
);
stmt
.
execute
(
"create table us_table(ts timestamp, f1 tinyint unsigned, f2 smallint unsigned, f3 int unsigned, f4 bigint unsigned)"
);
stmt
.
executeUpdate
(
"insert into us_table(ts,f1,f2,f3,f4) values("
+
ts
+
", 127, 32767,2147483647, 9223372036854775807)"
);
stmt
.
close
();
...
...
@@ -162,8 +163,12 @@ public class UnsignedNumberRestfulTest {
@AfterClass
public
static
void
afterClass
()
{
try
{
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists "
+
dbname
);
statement
.
close
();
conn
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/cases/UseNowInsertTimestampTest.java
浏览文件 @
ad108b2d
package
com.taosdata.jdbc.cases
;
import
org.junit.AfterClass
;
import
org.junit.Test
;
import
java.sql.*
;
...
...
@@ -8,7 +9,7 @@ import static org.junit.Assert.assertEquals;
import
static
org
.
junit
.
Assert
.
assertTrue
;
public
class
UseNowInsertTimestampTest
{
String
url
=
"jdbc:TAOS://127.0.0.1:6030/?user=root&password=taosdata"
;
private
static
String
url
=
"jdbc:TAOS://127.0.0.1:6030/?user=root&password=taosdata"
;
@Test
public
void
millisec
()
throws
SQLException
{
...
...
@@ -55,13 +56,14 @@ public class UseNowInsertTimestampTest {
@Test
public
void
nanosec
()
throws
SQLException
{
long
now_time
=
System
.
currentTimeMillis
()
*
1000_000L
+
System
.
nanoTime
()
%
1000_000L
;
try
(
Connection
conn
=
DriverManager
.
getConnection
(
url
))
{
Statement
stmt
=
conn
.
createStatement
();
stmt
.
execute
(
"drop database if exists test"
);
stmt
.
execute
(
"create database if not exists test precision 'ns'"
);
stmt
.
execute
(
"use test"
);
stmt
.
execute
(
"create table weather(ts timestamp, f1 int)"
);
stmt
.
execute
(
"insert into weather values(
now
, 1)"
);
stmt
.
execute
(
"insert into weather values(
"
+
now_time
+
"
, 1)"
);
ResultSet
rs
=
stmt
.
executeQuery
(
"select * from weather"
);
rs
.
next
();
...
...
@@ -74,4 +76,15 @@ public class UseNowInsertTimestampTest {
stmt
.
execute
(
"drop database if exists test"
);
}
}
@AfterClass
public
static
void
afterClass
()
{
try
(
Connection
conn
=
DriverManager
.
getConnection
(
url
);
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
execute
(
"drop database if exists test"
);
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/confprops/BadLocaleSettingTest.java
浏览文件 @
ad108b2d
...
...
@@ -45,7 +45,11 @@ public class BadLocaleSettingTest {
@AfterClass
public
static
void
afterClass
()
throws
SQLException
{
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database "
+
dbName
);
statement
.
close
();
conn
.
close
();
}
}
}
\ No newline at end of file
src/connector/jdbc/src/test/java/com/taosdata/jdbc/confprops/BatchFetchTest.java
浏览文件 @
ad108b2d
...
...
@@ -79,4 +79,15 @@ public class BatchFetchTest {
}
return
builder
.
toString
();
}
@AfterClass
public
static
void
afterClass
(){
String
url
=
"jdbc:TAOS://"
+
host
+
":6030/?user=root&password=taosdata"
;
try
(
Connection
conn
=
DriverManager
.
getConnection
(
url
);
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
execute
(
"drop database if exists test"
);
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/confprops/CharsetTest.java
浏览文件 @
ad108b2d
package
com.taosdata.jdbc.confprops
;
import
com.taosdata.jdbc.TSDBDriver
;
import
org.junit.AfterClass
;
import
org.junit.Assert
;
import
org.junit.Test
;
...
...
@@ -37,4 +38,18 @@ public class CharsetTest {
}
}
@AfterClass
public
static
void
afterClass
(){
String
url
=
"jdbc:TAOS://"
+
host
+
":6030/?user=root&password=taosdata"
;
Properties
props
=
new
Properties
();
props
.
setProperty
(
TSDBDriver
.
PROPERTY_KEY_CHARSET
,
"UTF-8"
);
try
(
Connection
conn
=
DriverManager
.
getConnection
(
url
,
props
);
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
execute
(
"drop database if exists test"
);
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
}
src/connector/jdbc/src/test/java/com/taosdata/jdbc/confprops/TimeZoneTest.java
浏览文件 @
ad108b2d
...
...
@@ -29,7 +29,7 @@ public class TimeZoneTest {
}
@Test
public
void
taosTimeZone
()
{
public
void
taosTimeZone
()
throws
SQLException
{
// given
Properties
props
=
new
Properties
();
props
.
setProperty
(
TSDBDriver
.
PROPERTY_KEY_TIME_ZONE
,
"UTC-8"
);
...
...
@@ -39,7 +39,7 @@ public class TimeZoneTest {
Statement
stmt
=
connection
.
createStatement
();
stmt
.
execute
(
"drop database if exists timezone_test"
);
stmt
.
execute
(
"create database if not exists timezone_test keep 36500
0
"
);
stmt
.
execute
(
"create database if not exists timezone_test keep 36500"
);
stmt
.
execute
(
"use timezone_test"
);
stmt
.
execute
(
"create table weather(ts timestamp, temperature float)"
);
...
...
@@ -51,7 +51,7 @@ public class TimeZoneTest {
System
.
out
.
println
(
"ts: "
+
ts
.
getTime
()
+
","
+
ts
);
}
stmt
.
execute
(
"insert into timezone_test.weather(ts, temperature
, humidity) values('1970-01-02 00:00:00', 1.0, 2
.0)"
);
stmt
.
execute
(
"insert into timezone_test.weather(ts, temperature
) values('1970-01-02 00:00:00', 1
.0)"
);
rs
=
stmt
.
executeQuery
(
"select * from timezone_test.weather"
);
while
(
rs
.
next
())
{
...
...
@@ -63,8 +63,6 @@ public class TimeZoneTest {
stmt
.
execute
(
"drop database if exists timezone_test"
);
stmt
.
close
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/confprops/TimestampFormatTest.java
浏览文件 @
ad108b2d
package
com.taosdata.jdbc.confprops
;
import
com.taosdata.jdbc.TSDBDriver
;
import
org.junit.Assert
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.*
;
import
java.sql.*
;
import
java.time.Instant
;
import
java.util.Calendar
;
import
java.util.Properties
;
public
class
TimestampFormatTest
{
private
static
final
String
host
=
"127.0.0.1"
;
private
long
ts
=
Instant
.
now
().
toEpochMilli
();
private
Connection
conn
;
@Test
public
void
string
()
throws
SQLException
{
...
...
@@ -154,13 +154,27 @@ public class TimestampFormatTest {
@Before
public
void
before
()
throws
SQLException
{
String
url
=
"jdbc:TAOS-RS://"
+
host
+
":6041/?user=root&password=taosdata"
;
try
(
Connection
conn
=
DriverManager
.
getConnection
(
url
);
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
execute
(
"drop database if exists test"
);
stmt
.
execute
(
"create database if not exists test"
);
stmt
.
execute
(
"use test"
);
stmt
.
execute
(
"create table weather(ts timestamp, temperature nchar(10))"
);
stmt
.
execute
(
"insert into weather values("
+
ts
+
", '北京')"
);
conn
=
DriverManager
.
getConnection
(
url
);
Statement
stmt
=
conn
.
createStatement
();
stmt
.
execute
(
"drop database if exists test"
);
stmt
.
execute
(
"create database if not exists test"
);
stmt
.
execute
(
"use test"
);
stmt
.
execute
(
"create table weather(ts timestamp, temperature nchar(10))"
);
stmt
.
execute
(
"insert into weather values("
+
ts
+
", '北京')"
);
stmt
.
close
();
}
@After
public
void
after
()
{
try
{
if
(
null
!=
conn
)
{
Statement
stmt
=
conn
.
createStatement
();
stmt
.
execute
(
"drop database if exists test"
);
stmt
.
close
();
conn
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/DatabaseSpecifiedTest.java
浏览文件 @
ad108b2d
...
...
@@ -33,7 +33,6 @@ public class DatabaseSpecifiedTest {
String
loc
=
rs
.
getString
(
"loc"
);
assertEquals
(
"beijing"
,
loc
);
}
connection
.
close
();
}
@Before
...
...
@@ -59,8 +58,12 @@ public class DatabaseSpecifiedTest {
@After
public
void
after
()
{
try
{
if
(
connection
!=
null
)
if
(
connection
!=
null
)
{
Statement
statement
=
connection
.
createStatement
();
statement
.
execute
(
"drop database if exists "
+
dbname
);
statement
.
close
();
connection
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/RestfulConnectionTest.java
浏览文件 @
ad108b2d
...
...
@@ -383,8 +383,12 @@ public class RestfulConnectionTest {
@AfterClass
public
static
void
afterClass
()
throws
SQLException
{
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists test"
);
statement
.
close
();
conn
.
close
();
}
}
}
\ No newline at end of file
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/RestfulParameterMetaDataTest.java
浏览文件 @
ad108b2d
...
...
@@ -18,6 +18,7 @@ public class RestfulParameterMetaDataTest {
private
static
PreparedStatement
pstmt_select
;
private
static
ParameterMetaData
parameterMetaData_insert
;
private
static
ParameterMetaData
parameterMetaData_select
;
private
static
final
String
dbname
=
"test_pstmt"
;
@Test
public
void
getParameterCount
()
throws
SQLException
{
...
...
@@ -148,9 +149,9 @@ public class RestfulParameterMetaDataTest {
Class
.
forName
(
"com.taosdata.jdbc.rs.RestfulDriver"
);
conn
=
DriverManager
.
getConnection
(
"jdbc:TAOS-RS://"
+
host
+
":6041/?user=root&password=taosdata"
);
try
(
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
execute
(
"drop database if exists
test_pstmt"
);
stmt
.
execute
(
"create database if not exists
test_pstmt"
);
stmt
.
execute
(
"use
test_pstmt"
);
stmt
.
execute
(
"drop database if exists
"
+
dbname
);
stmt
.
execute
(
"create database if not exists
"
+
dbname
);
stmt
.
execute
(
"use
"
+
dbname
);
stmt
.
execute
(
"create table weather(ts timestamp, f1 int, f2 bigint, f3 float, f4 double, f5 smallint, f6 tinyint, f7 bool, f8 binary(64), f9 nchar(64)) tags(loc nchar(64))"
);
stmt
.
execute
(
"create table t1 using weather tags('beijing')"
);
}
...
...
@@ -186,8 +187,12 @@ public class RestfulParameterMetaDataTest {
pstmt_insert
.
close
();
if
(
pstmt_select
!=
null
)
pstmt_select
.
close
();
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists "
+
dbname
);
statement
.
close
();
conn
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/RestfulPreparedStatementTest.java
浏览文件 @
ad108b2d
...
...
@@ -400,8 +400,12 @@ public class RestfulPreparedStatementTest {
pstmt_select
.
close
();
if
(
pstmt_without_parameters
!=
null
)
pstmt_without_parameters
.
close
();
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists test_pstmt"
);
statement
.
close
();
conn
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/RestfulResultSetMetaDataTest.java
浏览文件 @
ad108b2d
...
...
@@ -15,6 +15,7 @@ public class RestfulResultSetMetaDataTest {
private
static
Statement
stmt
;
private
static
ResultSet
rs
;
private
static
ResultSetMetaData
meta
;
private
static
final
String
dbname
=
"restful_test"
;
@Test
public
void
getColumnCount
()
throws
SQLException
{
...
...
@@ -206,8 +207,12 @@ public class RestfulResultSetMetaDataTest {
rs
.
close
();
if
(
stmt
!=
null
)
stmt
.
close
();
if
(
conn
!=
null
)
if
(
conn
!=
null
)
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists "
+
dbname
);
statement
.
close
();
conn
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
...
...
src/mnode/src/mnodeDb.c
浏览文件 @
ad108b2d
...
...
@@ -1003,6 +1003,7 @@ static SDbCfg mnodeGetAlterDbOption(SDbObj *pDb, SAlterDbMsg *pAlter) {
newCfg
.
daysToKeep0
=
daysToKeep0
;
}
#ifdef _STORAGE
if
(
daysToKeep1
>
0
&&
(
daysToKeep1
!=
pDb
->
cfg
.
daysToKeep1
||
newCfg
.
daysToKeep1
!=
pDb
->
cfg
.
daysToKeep1
))
{
mDebug
(
"db:%s, daysToKeep1:%d change to %d"
,
pDb
->
name
,
pDb
->
cfg
.
daysToKeep1
,
daysToKeep1
);
newCfg
.
daysToKeep1
=
daysToKeep1
;
...
...
@@ -1012,6 +1013,7 @@ static SDbCfg mnodeGetAlterDbOption(SDbObj *pDb, SAlterDbMsg *pAlter) {
mDebug
(
"db:%s, daysToKeep2:%d change to %d"
,
pDb
->
name
,
pDb
->
cfg
.
daysToKeep2
,
daysToKeep2
);
newCfg
.
daysToKeep2
=
daysToKeep2
;
}
#endif
if
(
minRows
>
0
&&
minRows
!=
pDb
->
cfg
.
minRowsPerFileBlock
)
{
mError
(
"db:%s, can't alter minRows option"
,
pDb
->
name
);
...
...
@@ -1100,6 +1102,7 @@ static SDbCfg mnodeGetAlterDbOption(SDbObj *pDb, SAlterDbMsg *pAlter) {
// community version can only change daysToKeep
// but enterprise version can change all daysToKeep options
#ifndef _STORAGE
newCfg
.
daysToKeep1
=
newCfg
.
daysToKeep0
;
newCfg
.
daysToKeep2
=
newCfg
.
daysToKeep0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录