Skip to content

Commit 0603fba

Browse files
author
Tkc
authored
Merge pull request #4 from tkc/feat/table_as_name
Add table as name property
2 parents 15ecb8d + 2679306 commit 0603fba

File tree

4 files changed

+11
-14
lines changed

4 files changed

+11
-14
lines changed

src/domain/model/model.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
package model
22

3-
import (
4-
// test_driver
5-
_ "github.com/pingcap/parser/test_driver"
6-
)
7-
83
type Analyzer struct {
94
SQL string
105
TableName string
6+
TableAsName string
117
StmtType StmtType
128
InsertColumns []string
139
NotNullColumns []string

src/usecase/services/analyzer_service.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func (v *Visitor) tableName(in ast.Node) {
7878
}
7979
}
8080
if len(TableSource.AsName.String()) > 0 {
81-
v.Analyzer.TableName = TableSource.AsName.String()
81+
v.Analyzer.TableAsName = TableSource.AsName.String()
8282
}
8383
}
8484
}
@@ -119,7 +119,7 @@ func (v *Visitor) isNullExpr(in ast.Node) {
119119
if columnNameExpr, ok := isNullExpr.Expr.(*ast.ColumnNameExpr); ok {
120120
v.Analyzer.NotNullColumns = append(
121121
v.Analyzer.NotNullColumns,
122-
formatColumnName(columnNameExpr.Name.String(), v.Analyzer.TableName))
122+
formatColumnName(columnNameExpr.Name.String(), v.Analyzer.TableName, v.Analyzer.TableAsName))
123123
}
124124
}
125125
}
@@ -129,7 +129,7 @@ func (v *Visitor) patternInExpr(in ast.Node) {
129129
var operation model.AnalyzerOperation
130130
operation.Type = model.OpTypeIn
131131
if columnNameExpr, ok := patternInExpr.Expr.(*ast.ColumnNameExpr); ok {
132-
operation.Column = formatColumnName(columnNameExpr.Name.String(), v.Analyzer.TableName)
132+
operation.Column = formatColumnName(columnNameExpr.Name.String(), v.Analyzer.TableName, v.Analyzer.TableAsName)
133133
}
134134
if valueExpr, ok := patternInExpr.List[0].(*test_driver.ValueExpr); ok {
135135
operation.Value = valueExpr.Datum.GetInt64()
@@ -147,7 +147,7 @@ func (v *Visitor) binaryOperationExpr(in ast.Node) {
147147
var operation model.AnalyzerOperation
148148
operation.Type = model.OpType(binaryOperationExpr.Op.String())
149149
if columnNameExpr, ok := binaryOperationExpr.L.(*ast.ColumnNameExpr); ok {
150-
operation.Column = formatColumnName(columnNameExpr.Name.String(), v.Analyzer.TableName)
150+
operation.Column = formatColumnName(columnNameExpr.Name.String(), v.Analyzer.TableName, v.Analyzer.TableAsName)
151151
}
152152
if valueExpr, ok := binaryOperationExpr.R.(*test_driver.ValueExpr); ok {
153153
operation.Value = valueExpr.Datum.GetValue()
@@ -174,14 +174,17 @@ func (v *Visitor) Leave(in ast.Node) (ast.Node, bool) {
174174
return in, true
175175
}
176176

177-
func formatColumnName(column string, tableName string) string {
177+
func formatColumnName(column string, tableName string, tableAsName string) string {
178178
slice := strings.Split(column, ".")
179179
if len(slice) == 1 {
180180
return column
181181
}
182182
if slice[0] == tableName {
183183
return slice[1]
184184
}
185+
if slice[0] == tableAsName {
186+
return slice[1]
187+
}
185188
return column
186189
}
187190

src/usecase/services/analyzer_service_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ func TestSelectQueries(t *testing.T) {
110110
{
111111
query: "select * from table_a as test WHERE `deleted_at` IS NULL",
112112
analyzer: model.Analyzer{
113-
TableName: "test",
113+
TableName: "table_a",
114114
Operations: nil,
115115
StmtType: model.StmtTypeSelect,
116116
NotNullColumns: []string{"deleted_at"},

src/usecase/services/report_service.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,13 @@ func NewReportService(
2929
func (s reportService) Show(validator model.Validator) {
3030
res, _ := s.generalLogRepository.GetQueries()
3131
reportPresenter := presenter.NewReportPresenter()
32-
33-
var analyzers []model.Analyzer
32+
var analyzers = make([]model.Analyzer, len(res))
3433
for _, query := range res {
3534
astNode, err := s.analyzerService.Parse(query)
3635
if err != nil {
3736
panic(err)
3837
}
3938
analyzers = append(analyzers, *s.analyzerService.Extract(&astNode, query))
4039
}
41-
4240
reportPresenter.Show(s.validatesService.Validates(analyzers, validator))
4341
}

0 commit comments

Comments
 (0)