This commit is contained in:
John Guo
2022-02-14 17:04:14 +08:00
parent 14268aa1c0
commit 887cad3b96
2 changed files with 16 additions and 14 deletions

View File

@ -134,11 +134,12 @@ func (d *DriverMssql) parseSql(sql string) string {
if err != nil {
return ""
}
index := 0
keyword := strings.TrimSpace(res[index][0])
keyword = strings.ToUpper(keyword)
var (
index = 0
keyword = strings.TrimSpace(res[index][0])
)
index++
switch keyword {
switch strings.ToUpper(keyword) {
case "SELECT":
// LIMIT statement checks.
if len(res) < 2 ||
@ -150,9 +151,11 @@ func (d *DriverMssql) parseSql(sql string) string {
break
}
// ORDER BY statement checks.
selectStr := ""
orderStr := ""
haveOrder := gregex.IsMatchString("((?i)SELECT)(.+)((?i)ORDER BY)", sql)
var (
selectStr = ""
orderStr = ""
haveOrder = gregex.IsMatchString("((?i)SELECT)(.+)((?i)ORDER BY)", sql)
)
if haveOrder {
queryExpr, _ := gregex.MatchString("((?i)SELECT)(.+)((?i)ORDER BY)", sql)
if len(queryExpr) != 4 ||
@ -283,7 +286,7 @@ LEFT JOIN sys.extended_properties g ON a.id=g.major_id AND a.colid=g.minor_id
LEFT JOIN sys.extended_properties f ON d.id=f.major_id AND f.minor_id =0
WHERE d.name='%s'
ORDER BY a.id,a.colorder`,
strings.ToUpper(table),
table,
)
structureSql, _ = gregex.ReplaceString(`[\n\r\s]+`, " ", gstr.Trim(structureSql))
result, err = d.DoGetAll(ctx, link, structureSql)
@ -294,8 +297,8 @@ ORDER BY a.id,a.colorder`,
for i, m := range result {
fields[strings.ToLower(m["Field"].String())] = &gdb.TableField{
Index: i,
Name: strings.ToLower(m["Field"].String()),
Type: strings.ToLower(m["Type"].String()),
Name: m["Field"].String(),
Type: m["Type"].String(),
Null: m["Null"].Bool(),
Key: m["Key"].String(),
Default: m["Default"].Val(),

View File

@ -13,13 +13,12 @@
package pgsql
import (
_ "github.com/lib/pq"
"context"
"database/sql"
"database/sql/driver"
"fmt"
"strings"
_ "github.com/lib/pq"
"github.com/gogf/gf/v2/container/gmap"
"github.com/gogf/gf/v2/database/gdb"
@ -180,7 +179,7 @@ FROM pg_attribute a
left join information_schema.columns ic on ic.column_name = a.attname and ic.table_name = c.relname
WHERE c.relname = '%s' and a.attisdropped is false and a.attnum > 0
ORDER BY a.attnum`,
strings.ToLower(table),
table,
)
)
if link, err = d.SlaveLink(useSchema); err != nil {