bug fixed for mssql

This commit is contained in:
Lunny Xiao 2016-10-10 15:07:12 +08:00
parent c84441e264
commit 291b8fedc3
5 changed files with 68 additions and 3 deletions

View File

@ -1 +1 @@
xorm v0.6.0.0929 xorm v0.6.0.1010

24
a.patch Normal file
View File

@ -0,0 +1,24 @@
diff --git a/statement.go b/statement.go
index 5a08ef7..9a9350e 100644
--- a/statement.go
+++ b/statement.go
@@ -1199,7 +1199,7 @@ func (statement *Statement) genSelectSQL(columnStr, condSQL string) (a string) {
top = fmt.Sprintf(" TOP %d ", statement.LimitN)
}
if statement.Start > 0 {
- var column = "(id)"
+ var column string
if len(statement.RefTable.PKColumns()) == 0 {
for _, index := range statement.RefTable.Indexes {
if len(index.Cols) == 1 {
@@ -1210,7 +1210,10 @@ func (statement *Statement) genSelectSQL(columnStr, condSQL string) (a string) {
if len(column) == 0 {
column = statement.RefTable.ColumnsSeq()[0]
}
+ } else {
+ column = statement.RefTable.PKColumns()[0].Name
}
+
var orderStr string
if len(statement.OrderStr) > 0 {
orderStr = " ORDER BY " + statement.OrderStr

31
patch Normal file
View File

@ -0,0 +1,31 @@
diff --git a/statement.go b/statement.go
index 5a08ef7..5d59a32 100644
--- a/statement.go
+++ b/statement.go
@@ -1199,7 +1199,7 @@ func (statement *Statement) genSelectSQL(columnStr, condSQL string) (a string) {
top = fmt.Sprintf(" TOP %d ", statement.LimitN)
}
if statement.Start > 0 {
- var column = "(id)"
+ var column string
if len(statement.RefTable.PKColumns()) == 0 {
for _, index := range statement.RefTable.Indexes {
if len(index.Cols) == 1 {
@@ -1210,7 +1210,17 @@ func (statement *Statement) genSelectSQL(columnStr, condSQL string) (a string) {
if len(column) == 0 {
column = statement.RefTable.ColumnsSeq()[0]
}
+ } else {
+ column = statement.RefTable.PKColumns()[0].Name
}
+ if statement.needTableName() {
+ if len(statement.TableAlias) > 0 {
+ column = statement.TableAlias + "." + column
+ } else {
+ column = statement.TableName() + "." + column
+ }
+ }
+
var orderStr string
if len(statement.OrderStr) > 0 {
orderStr = " ORDER BY " + statement.OrderStr

View File

@ -1199,7 +1199,7 @@ func (statement *Statement) genSelectSQL(columnStr, condSQL string) (a string) {
top = fmt.Sprintf(" TOP %d ", statement.LimitN) top = fmt.Sprintf(" TOP %d ", statement.LimitN)
} }
if statement.Start > 0 { if statement.Start > 0 {
var column = "(id)" var column string
if len(statement.RefTable.PKColumns()) == 0 { if len(statement.RefTable.PKColumns()) == 0 {
for _, index := range statement.RefTable.Indexes { for _, index := range statement.RefTable.Indexes {
if len(index.Cols) == 1 { if len(index.Cols) == 1 {
@ -1210,7 +1210,17 @@ func (statement *Statement) genSelectSQL(columnStr, condSQL string) (a string) {
if len(column) == 0 { if len(column) == 0 {
column = statement.RefTable.ColumnsSeq()[0] column = statement.RefTable.ColumnsSeq()[0]
} }
} else {
column = statement.RefTable.PKColumns()[0].Name
} }
if statement.needTableName() {
if len(statement.TableAlias) > 0 {
column = statement.TableAlias + "." + column
} else {
column = statement.TableName() + "." + column
}
}
var orderStr string var orderStr string
if len(statement.OrderStr) > 0 { if len(statement.OrderStr) > 0 {
orderStr = " ORDER BY " + statement.OrderStr orderStr = " ORDER BY " + statement.OrderStr

View File

@ -17,7 +17,7 @@ import (
const ( const (
// Version show the xorm's version // Version show the xorm's version
Version string = "0.6.0.0929" Version string = "0.6.0.1010"
) )
func regDrvsNDialects() bool { func regDrvsNDialects() bool {