Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
040a585f
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
040a585f
编写于
4月 22, 2018
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#3025 Table truncate model
上级
637ee1c7
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
42 addition
and
71 deletion
+42
-71
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/exec/DBCStatistics.java
...model/src/org/jkiss/dbeaver/model/exec/DBCStatistics.java
+8
-2
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/struct/JDBCTable.java
...c/org/jkiss/dbeaver/model/impl/jdbc/struct/JDBCTable.java
+27
-21
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/struct/DBSDataCleaner.java
...el/src/org/jkiss/dbeaver/model/struct/DBSDataCleaner.java
+0
-48
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/struct/DBSDataManipulator.java
...rc/org/jkiss/dbeaver/model/struct/DBSDataManipulator.java
+7
-0
未找到文件。
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/exec/DBCStatistics.java
浏览文件 @
040a585f
...
...
@@ -25,6 +25,7 @@ import java.util.*;
*/
public
class
DBCStatistics
{
private
final
long
startTime
;
private
long
rowsUpdated
;
private
long
rowsFetched
;
private
long
executeTime
;
...
...
@@ -34,8 +35,8 @@ public class DBCStatistics {
private
Map
<
String
,
Object
>
infoMap
;
private
List
<
String
>
messages
;
public
DBCStatistics
()
{
public
DBCStatistics
()
{
this
.
startTime
=
System
.
currentTimeMillis
();
}
public
long
getRowsUpdated
()
...
...
@@ -78,6 +79,11 @@ public class DBCStatistics {
this
.
executeTime
+=
executeTime
;
}
public
void
addExecuteTime
()
{
this
.
executeTime
+=
(
System
.
currentTimeMillis
()
-
startTime
);
}
public
long
getFetchTime
()
{
return
fetchTime
;
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/struct/JDBCTable.java
浏览文件 @
040a585f
...
...
@@ -47,10 +47,11 @@ import org.jkiss.utils.ArrayUtils;
*/
public
abstract
class
JDBCTable
<
DATASOURCE
extends
DBPDataSource
,
CONTAINER
extends
DBSObjectContainer
>
extends
AbstractTable
<
DATASOURCE
,
CONTAINER
>
implements
DBSDataManipulator
,
DB
SDataCleaner
,
DB
PSaveableObject
implements
DBSDataManipulator
,
DBPSaveableObject
{
private
static
final
Log
log
=
Log
.
getLog
(
JDBCTable
.
class
);
public
static
final
String
DEFAULT_TABLE_ALIAS
=
"x"
;
private
static
final
String
DEFAULT_TABLE_ALIAS
=
"x"
;
public
static
final
int
DEFAULT_READ_FETCH_SIZE
=
10000
;
private
boolean
persisted
;
...
...
@@ -507,28 +508,33 @@ public abstract class JDBCTable<DATASOURCE extends DBPDataSource, CONTAINER exte
////////////////////////////////////////////////////////////////////
// Truncate
@Override
public
boolean
canTruncateData
()
{
return
false
;
}
@Override
public
DBCStatistics
truncateData
(
DBCSession
session
,
DBCExecutionSource
source
)
throws
DBCException
{
DBCStatistics
statistics
=
new
DBCStatistics
();
DBRProgressMonitor
monitor
=
session
.
getProgressMonitor
();
monitor
.
subTask
(
"Truncate data"
);
long
startTime
=
System
.
currentTimeMillis
();
try
(
DBCStatement
dbStat
=
session
.
prepareStatement
(
DBCStatementType
.
QUERY
,
getTruncateTableQuery
(),
false
,
false
,
false
))
{
dbStat
.
setStatementSource
(
source
);
dbStat
.
executeStatement
();
if
(!
isTruncateSupported
())
{
try
(
ExecuteBatch
batch
=
deleteData
(
session
,
new
DBSAttributeBase
[
0
],
source
))
{
batch
.
add
(
new
Object
[
0
]);
return
batch
.
execute
(
session
);
}
}
else
{
DBCStatistics
statistics
=
new
DBCStatistics
();
DBRProgressMonitor
monitor
=
session
.
getProgressMonitor
();
monitor
.
subTask
(
"Truncate data"
);
try
(
DBCStatement
dbStat
=
session
.
prepareStatement
(
DBCStatementType
.
QUERY
,
getTruncateTableQuery
(),
false
,
false
,
false
))
{
dbStat
.
setStatementSource
(
source
);
dbStat
.
executeStatement
();
}
statistics
.
addStatementsCount
();
statistics
.
addExecuteTime
();
return
statistics
;
}
statistics
.
addExecuteTime
(
System
.
currentTimeMillis
()
-
startTime
);
return
statistics
;
}
protected
boolean
isTruncateSupported
()
{
return
false
;
}
protected
String
getTruncateTableQuery
()
{
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/struct/DBSDataCleaner.java
已删除
100644 → 0
浏览文件 @
637ee1c7
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.jkiss.dbeaver.model.struct
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.model.exec.DBCException
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionSource
;
import
org.jkiss.dbeaver.model.exec.DBCSession
;
import
org.jkiss.dbeaver.model.exec.DBCStatistics
;
/**
* Data cleaner.
* Supports data truncate.
*/
public
interface
DBSDataCleaner
extends
DBSDataContainer
{
/**
* Returns true if this data container can be truncated.
*/
boolean
canTruncateData
();
/**
* Truncates data.
* Warning: all data will be deleted and this operation is not undoable.
* Use with attention.
*/
@NotNull
DBCStatistics
truncateData
(
@NotNull
DBCSession
session
,
@NotNull
DBCExecutionSource
source
)
throws
DBCException
;
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/struct/DBSDataManipulator.java
浏览文件 @
040a585f
...
...
@@ -37,6 +37,7 @@ public interface DBSDataManipulator extends DBSDataContainer {
int
DATA_INSERT
=
1
<<
16
;
int
DATA_UPDATE
=
1
<<
17
;
int
DATA_DELETE
=
1
<<
18
;
int
DATA_TRUNCATE
=
1
<<
19
;
interface
ExecuteBatch
extends
AutoCloseable
{
void
add
(
@NotNull
Object
[]
attributeValues
)
throws
DBCException
;
...
...
@@ -74,4 +75,10 @@ public interface DBSDataManipulator extends DBSDataContainer {
@NotNull
DBCExecutionSource
source
)
throws
DBCException
;
@NotNull
DBCStatistics
truncateData
(
@NotNull
DBCSession
session
,
@NotNull
DBCExecutionSource
source
)
throws
DBCException
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录