Skip to content

Commit

Permalink
Merge pull request #17 from RyougiNevermore/master
Browse files Browse the repository at this point in the history
fix for mysql 5.6
  • Loading branch information
RyougiNevermore committed Aug 4, 2020
2 parents 59a803e + 56508e2 commit 23406d2
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 18 deletions.
15 changes: 9 additions & 6 deletions cmd/dalc/internal/entry/query_fill.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
package entry

import "fmt"
import (
"fmt"
"strings"
)

func QueryFill(tables []*Table, queries0 []*Query) (queries []*Query, err error) {
for _, query := range queries0 {

for _, queryTable := range query.TableList {
for _, table := range tables {
if queryTable.Schema == table.Schema && queryTable.Table == table.Name {
if strings.ToLower(queryTable.Schema) == strings.ToLower(table.Schema) && strings.ToLower(queryTable.Table) == strings.ToLower(table.Name) {
queryTable.Ref = table
}
}
Expand All @@ -27,9 +30,9 @@ func QueryFill(tables []*Table, queries0 []*Query) (queries []*Query, err error)
if got {
break
}
if expr.Table.Schema == table.Schema && expr.Table.Table == table.Name {
if strings.ToLower(expr.Table.Schema) == strings.ToLower(table.Schema) && strings.ToLower(expr.Table.Table) == strings.ToLower(table.Name) {
for _, column := range table.Columns {
if column.Name == expr.ColumnName {
if strings.ToLower(column.Name) == strings.ToLower(expr.ColumnName) {
expr.GoType = column.GoType
got = true
break
Expand All @@ -56,9 +59,9 @@ func QueryFill(tables []*Table, queries0 []*Query) (queries []*Query, err error)
if got {
break
}
if expr.Table.Schema == table.Schema && expr.Table.Table == table.Name {
if strings.ToLower(expr.Table.Schema) == strings.ToLower(table.Schema) && strings.ToLower(expr.Table.Table) == strings.ToLower(table.Name) {
for _, column := range table.Columns {
if column.Name == expr.ColumnName {
if strings.ToLower(column.Name) == strings.ToLower(expr.ColumnName) {
expr.GoType = column.GoType
got = true
break
Expand Down
12 changes: 6 additions & 6 deletions cmd/dalc/internal/generates/table.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ func buildTableGetSQL(table *entry.Table) (q string) {
if i > 0 {
buf.WriteString(", ")
}
buf.WriteString(fmt.Sprintf("`%s`", strings.ToUpper(column.Name)))
buf.WriteString(fmt.Sprintf("`%s`", column.Name))
}
buf.WriteString("FROM ")
if table.Schema != "" {
Expand All @@ -116,7 +116,7 @@ func buildTableGetSQL(table *entry.Table) (q string) {
if i > 0 {
buf.WriteString(" AND ")
}
buf.WriteString(fmt.Sprintf("`%s` = ?", strings.ToUpper(pk)))
buf.WriteString(fmt.Sprintf("`%s` = ?", pk))
}

q = buf.String()
Expand All @@ -141,7 +141,7 @@ func buildTableInsertSQL(table *entry.Table) (q string) {
if x > 0 {
buf.WriteString(", ")
}
buf.WriteString(fmt.Sprintf("`%s`", strings.ToUpper(column.Name)))
buf.WriteString(fmt.Sprintf("`%s`", column.Name))
x++
}
buf.WriteString(") VALUES ( ")
Expand Down Expand Up @@ -188,15 +188,15 @@ func buildTableUpdateSQL(table *entry.Table) (q string) {
if x > 0 {
buf.WriteString(", ")
}
buf.WriteString(fmt.Sprintf("`%s` = ?", strings.ToUpper(column.Name)))
buf.WriteString(fmt.Sprintf("`%s` = ?", column.Name))
x++
}
buf.WriteString(" WHERE ")
for i, pk := range table.PKs {
if i > 0 {
buf.WriteString(" AND ")
}
buf.WriteString(fmt.Sprintf("`%s` = ?", strings.ToUpper(pk)))
buf.WriteString(fmt.Sprintf("`%s` = ?", pk))
}

q = buf.String()
Expand All @@ -217,7 +217,7 @@ func buildTableDeleteSQL(table *entry.Table) (q string) {
if i > 0 {
buf.WriteString(" AND ")
}
buf.WriteString(fmt.Sprintf("`%s` = ?", strings.ToUpper(pk)))
buf.WriteString(fmt.Sprintf("`%s` = ?", pk))
}

q = buf.String()
Expand Down
6 changes: 5 additions & 1 deletion cmd/dalc/internal/parser/commons/names.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@ package commons

import "strings"

func NormalizeName(name string) string {
func NormalizeNameAndUpper(name string) string {
return strings.ToUpper(strings.ReplaceAll(name, "`", ""))
}

func NormalizeName(name string) string {
return strings.ReplaceAll(name, "`", "")
}

func SplitFullName(fullName string) (name1 string, name2 string) {
fullName = NormalizeName(fullName)
if strings.Index(fullName, ".") > 0 {
Expand Down
6 changes: 3 additions & 3 deletions cmd/dalc/internal/parser/mysql/parse_schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -371,9 +371,9 @@ func parseMySQLTable(lines *commons.Lines) (table *entry.Table, err error) {

// pk
if strings.Index(lineUpper, "PRIMARY KEY ") >= 0 {
leftBracketIndex := strings.Index(lineUpper, "(")
rightBracketIndex := strings.Index(lineUpper, ")")
pkLine := strings.ReplaceAll(lineUpper[leftBracketIndex+1:rightBracketIndex], "`", "")
leftBracketIndex := strings.Index(line, "(")
rightBracketIndex := strings.Index(line, ")")
pkLine := strings.ReplaceAll(line[leftBracketIndex+1:rightBracketIndex], "`", "")
pks := strings.Split(pkLine, ",")
for _, pk := range pks {
table.PKs = append(table.PKs, strings.TrimSpace(pk))
Expand Down
4 changes: 2 additions & 2 deletions executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func Execute(ctx PreparedContext, query string, args *Args) (affected int64, err
return
}
}()
result, execErr := stmt.ExecContext(ctx, args.values)
result, execErr := stmt.ExecContext(ctx, args.Values()...)
if execErr != nil {
err = execErr
return
Expand Down Expand Up @@ -76,7 +76,7 @@ func ExecuteReturnInsertId(ctx PreparedContext, query string, args *Args) (inser
return
}
}()
result, execErr := stmt.ExecContext(ctx, args.values)
result, execErr := stmt.ExecContext(ctx, args.Values()...)
if execErr != nil {
err = execErr
return
Expand Down

0 comments on commit 23406d2

Please sign in to comment.