Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Xiaomi
soar
提交
9b737116
S
soar
项目概览
Xiaomi
/
soar
10 个月 前同步成功
通知
373
Star
8512
Fork
1328
代码
文件
提交
分支
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,体验更适合开发者的 AI 搜索 >>
提交
9b737116
编写于
2月 20, 2019
作者:
martianzhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix -report-type tables bug
drop table tb drop database db create database db
上级
b47410a7
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
46 addition
and
1 deletion
+46
-1
ast/testdata/TestSchemaMetaInfo.golden
ast/testdata/TestSchemaMetaInfo.golden
+12
-0
ast/tidb.go
ast/tidb.go
+25
-1
ast/tidb_test.go
ast/tidb_test.go
+9
-0
未找到文件。
ast/testdata/TestSchemaMetaInfo.golden
浏览文件 @
9b737116
...
...
@@ -8,6 +8,18 @@ select * from ta join tb using (id)
[`sakila`.`ta` `sakila`.`tb`]
select * from ta, tb limit 1
[`sakila`.`ta` `sakila`.`tb`]
drop table tb
[`sakila`.tb`]
drop table db.tb
[`db`.`tb`]
drop database db
[`db`.`dual`]
create database db
[`db`.`dual`]
create index idx_col on tbl (col)
[`sakila`.tbl`]
DROP INDEX idx_col on tbl
[`sakila`.tbl`]
SELECT * FROM film WHERE length = 86;
[`sakila`.`film`]
SELECT * FROM film WHERE length IS NULL;
...
...
ast/tidb.go
浏览文件 @
9b737116
...
...
@@ -103,8 +103,32 @@ func SchemaMetaInfo(sql string, defaultDatabase string) []string {
}
}
}
case
*
ast
.
DropTableStmt
:
// DDL: DROP TABLE|VIEW
schemas
:=
common
.
JSONFind
(
jsonString
,
"Tables"
)
for
_
,
tabs
:=
range
schemas
{
for
_
,
table
:=
range
gjson
.
Parse
(
tabs
)
.
Array
()
{
db
:=
gjson
.
Get
(
table
.
String
(),
"Schema.O"
)
tb
:=
gjson
.
Get
(
table
.
String
(),
"Name.O"
)
if
db
.
String
()
==
""
{
if
tb
.
String
()
!=
""
{
tables
=
append
(
tables
,
fmt
.
Sprintf
(
"`%s`.%s`"
,
defaultDatabase
,
tb
.
String
()))
}
}
else
{
if
tb
.
String
()
!=
""
{
tables
=
append
(
tables
,
fmt
.
Sprintf
(
"`%s`.`%s`"
,
db
.
String
(),
tb
.
String
()))
}
}
}
}
case
*
ast
.
DropDatabaseStmt
,
*
ast
.
CreateDatabaseStmt
:
// DDL: DROP|CREATE DATABASE
schemas
:=
common
.
JSONFind
(
jsonString
,
"Name"
)
for
_
,
schema
:=
range
schemas
{
tables
=
append
(
tables
,
fmt
.
Sprintf
(
"`%s`.`dual`"
,
schema
))
}
default
:
// DDL: CREATE TABLE|DATABASE|INDEX|VIEW
// DDL: CREATE TABLE|DATABASE|INDEX|VIEW
, DROP INDEX
schemas
:=
common
.
JSONFind
(
jsonString
,
"Table"
)
for
_
,
table
:=
range
schemas
{
db
:=
gjson
.
Get
(
table
,
"Schema.O"
)
...
...
ast/tidb_test.go
浏览文件 @
9b737116
...
...
@@ -65,7 +65,16 @@ func TestSchemaMetaInfo(t *testing.T) {
"syntax error case"
,
"select * from ta join tb using (id)"
,
"select * from ta, tb limit 1"
,
"drop table tb"
,
"drop table db.tb"
,
"drop database db"
,
"create database db"
,
"create index idx_col on tbl (col)"
,
"DROP INDEX idx_col on tbl"
,
}
// fmt.Println(sqls[len(sqls)-1])
// fmt.Println(SchemaMetaInfo(sqls[len(sqls)-1], "sakila"))
// return
err
:=
common
.
GoldenDiff
(
func
()
{
for
_
,
sql
:=
range
append
(
sqls
,
common
.
TestSQLs
...
)
{
fmt
.
Println
(
sql
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录