Compare commits
3
Commits
v0.0.8
..
cd1f61fb87
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd1f61fb87 | ||
|
|
146f07fa02 | ||
|
|
d20184a6f0 |
+9
-9
@@ -86,15 +86,6 @@ func (s *Select[T]) execute(conn *simpleorm.DBConnection, tx *sql.Tx) error {
|
|||||||
dml += " WHERE " + s.whereStmt
|
dml += " WHERE " + s.whereStmt
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(s.ordering) > 0 {
|
|
||||||
orderBy, err := s.target.GetOrderByDML(s.ordering...)
|
|
||||||
if err != nil {
|
|
||||||
log.LogError("Failed to create ORDER BY part: %s", err)
|
|
||||||
} else {
|
|
||||||
dml += orderBy
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var effectiveArgs []any = s.args
|
var effectiveArgs []any = s.args
|
||||||
if s.limit != -1 {
|
if s.limit != -1 {
|
||||||
dml += " LIMIT ?"
|
dml += " LIMIT ?"
|
||||||
@@ -106,6 +97,15 @@ func (s *Select[T]) execute(conn *simpleorm.DBConnection, tx *sql.Tx) error {
|
|||||||
effectiveArgs = append(effectiveArgs, s.offset)
|
effectiveArgs = append(effectiveArgs, s.offset)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(s.ordering) > 0 {
|
||||||
|
orderBy, err := s.target.GetOrderByDML(s.ordering...)
|
||||||
|
if err != nil {
|
||||||
|
log.LogError("Failed to create ORDER BY part: %s", err)
|
||||||
|
} else {
|
||||||
|
dml += orderBy
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
log.LogInfo("Preparing sql: %s", dml)
|
log.LogInfo("Preparing sql: %s", dml)
|
||||||
log.LogDebug("Preparing sql: %s, with args: %s", dml, effectiveArgs)
|
log.LogDebug("Preparing sql: %s, with args: %s", dml, effectiveArgs)
|
||||||
|
|
||||||
|
|||||||
@@ -358,46 +358,6 @@ func TestSelectOrderByAsc(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSelectOrderByAscWithLimitAndOffset(t *testing.T) {
|
|
||||||
// GIVEN
|
|
||||||
orm, conn := testSetup()
|
|
||||||
defer cleanUp("test.db", conn)
|
|
||||||
|
|
||||||
err := orderBySetup(conn, orm)
|
|
||||||
if err != nil {
|
|
||||||
log.LogError("TestSelectOrderByAsc setup failed: %s", err)
|
|
||||||
t.Fail()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// WHEN
|
|
||||||
selectExec, err := exec.CreateSelect[Test](orm)
|
|
||||||
if err != nil {
|
|
||||||
log.LogError("TestSelectOrderByAsc failed: %s", err)
|
|
||||||
t.Fail()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
selectExec.OrderBy(schema.OrderBy{Field: "StringField", Direction: "ASC"}).Limit(3).Offset(0)
|
|
||||||
|
|
||||||
err = selectExec.Execute(conn)
|
|
||||||
if err != nil {
|
|
||||||
log.LogError("TestSelectOrderByAsc failed: %s", err)
|
|
||||||
t.Fail()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// THEN
|
|
||||||
var resultStr string
|
|
||||||
for _, obj := range selectExec.Results() {
|
|
||||||
resultStr += obj.StringField
|
|
||||||
}
|
|
||||||
|
|
||||||
if resultStr != "ABC" {
|
|
||||||
log.LogError("TestSelectOrderByAsc failed, epxected: ABC actual: %s", resultStr)
|
|
||||||
t.Fail()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func orderBySetup(conn *simpleorm.DBConnection, orm *simpleorm.ORM) error {
|
func orderBySetup(conn *simpleorm.DBConnection, orm *simpleorm.ORM) error {
|
||||||
insertExec, err := exec.NewInsert[Test](orm,
|
insertExec, err := exec.NewInsert[Test](orm,
|
||||||
Test{Int64Field: -1, IntField: 1, StringField: "C"},
|
Test{Int64Field: -1, IntField: 1, StringField: "C"},
|
||||||
|
|||||||
Reference in New Issue
Block a user