Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
m0_67397764
soar
提交
fcb471f7
S
soar
项目概览
m0_67397764
/
soar
与 Fork 源项目一致
Fork自
Xiaomi / soar
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
soar
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fcb471f7
编写于
12月 24, 2018
作者:
martianzhang
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'go-sql-driver' of github.com:XiaoMi/soar into go-sql-driver
上级
b9e152bf
62f0b8eb
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
69 addition
and
15 deletion
+69
-15
database/sampling.go
database/sampling.go
+12
-15
env/env_test.go
env/env_test.go
+57
-0
未找到文件。
database/sampling.go
浏览文件 @
fcb471f7
...
...
@@ -17,12 +17,10 @@
package
database
import
(
"database/sql"
"fmt"
"time"
"strings"
"database/sql"
"time"
"github.com/XiaoMi/soar/common"
"github.com/ziutek/mymysql/mysql"
...
...
@@ -92,7 +90,6 @@ func (db *Connector) SamplingData(onlineConn *Connector, database string, tables
}
else
{
where
=
common
.
Config
.
SamplingCondition
}
err
=
db
.
startSampling
(
onlineConn
.
Conn
,
database
,
table
,
where
)
}
return
err
...
...
@@ -143,17 +140,17 @@ func (db *Connector) startSampling(onlineConn *sql.DB, database, table string, w
values
=
append
(
values
,
fmt
.
Sprintf
(
`unhex("%s")`
,
fmt
.
Sprintf
(
"%x"
,
val
)))
}
}
}
valuesStr
=
append
(
valuesStr
,
"("
+
strings
.
Join
(
values
,
`,`
)
+
")"
)
valuesCount
++
if
maxValuesCount
<=
valuesCount
{
err
=
db
.
doSampling
(
table
,
columnsStr
,
strings
.
Join
(
valuesStr
,
`,`
))
if
err
!=
nil
{
break
valuesStr
=
append
(
valuesStr
,
"("
+
strings
.
Join
(
values
,
`,`
)
+
")"
)
valuesCount
++
if
maxValuesCount
<=
valuesCount
{
err
=
db
.
doSampling
(
table
,
columnsStr
,
strings
.
Join
(
valuesStr
,
`,`
))
if
err
!=
nil
{
break
}
values
=
make
([]
string
,
0
)
valuesStr
=
make
([]
string
,
0
)
valuesCount
=
0
}
values
=
make
([]
string
,
0
)
valuesStr
=
make
([]
string
,
0
)
valuesCount
=
0
}
}
res
.
Close
()
...
...
env/env_test.go
浏览文件 @
fcb471f7
...
...
@@ -282,3 +282,60 @@ func TestCreateDatabase(t *testing.T) {
}
common
.
Log
.
Debug
(
"Exiting function: %s"
,
common
.
GetFunctionName
())
}
func
TestCreateTable
(
t
*
testing
.
T
)
{
orgSamplingCondition
:=
common
.
Config
.
SamplingCondition
common
.
Config
.
SamplingCondition
=
"LIMIT 1"
vEnv
,
rEnv
:=
BuildEnv
()
defer
vEnv
.
CleanUp
()
// TODO: support VIEW,
tables
:=
[]
string
{
"actor"
,
// "actor_info", // VIEW
"address"
,
"category"
,
"city"
,
"country"
,
"customer"
,
"customer_list"
,
"film"
,
"film_actor"
,
"film_category"
,
"film_list"
,
"film_text"
,
"inventory"
,
"language"
,
"nicer_but_slower_film_list"
,
"payment"
,
"rental"
,
// "sales_by_film_category", // VIEW
// "sales_by_store", // VIEW
"staff"
,
"staff_list"
,
"store"
,
}
for
_
,
table
:=
range
tables
{
err
:=
vEnv
.
createTable
(
rEnv
,
"sakila"
,
table
)
if
err
!=
nil
{
t
.
Error
(
err
)
}
}
common
.
Config
.
SamplingCondition
=
orgSamplingCondition
}
func
TestCreateDatabase
(
t
*
testing
.
T
)
{
vEnv
,
rEnv
:=
BuildEnv
()
defer
vEnv
.
CleanUp
()
err
:=
vEnv
.
createDatabase
(
rEnv
,
"sakila"
)
if
err
!=
nil
{
t
.
Error
(
err
)
}
if
vEnv
.
DBHash
(
"sakila"
)
==
"sakila"
{
t
.
Errorf
(
"database: sakila rehashed failed!"
)
}
if
vEnv
.
DBHash
(
"not_exist_db"
)
!=
"not_exist_db"
{
t
.
Errorf
(
"database: not_exist_db rehashed!"
)
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录