Skip to content

Commit 09a114c

Browse files
committed
stuff
1 parent 21df9e1 commit 09a114c

File tree

2 files changed

+30
-20
lines changed

2 files changed

+30
-20
lines changed

sqlx/select.go

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,25 +46,31 @@ func (self *SelectStatement) ColumnAs(column any, alias string) *SelectStatement
4646
return self
4747
}
4848

49-
func (self *SelectStatement) From(from string) *SelectStatement {
50-
self.from = Raw(from)
51-
return self
52-
}
49+
func (self *SelectStatement) From(from any) *SelectStatement {
50+
switch v := from.(type) {
51+
case string:
52+
self.from = Sql{from}
53+
break
54+
case *SelectStatement:
55+
v.depth = self.depth + 1
56+
self.from = v
57+
break
58+
case *AsClause:
59+
switch v := v.stmt.(type) {
60+
case *SelectStatement:
61+
v.depth = self.depth + 1
62+
break
63+
}
64+
65+
self.from = v
66+
break
67+
}
5368

54-
func (self *SelectStatement) FromSelect(stmt *SelectStatement, alias string) *SelectStatement {
55-
stmt.depth = self.depth + 1
56-
self.from = As(stmt, alias)
5769
return self
5870
}
5971

6072
func (self *SelectStatement) Where(predicate any) *SelectStatement {
61-
switch v := predicate.(type) {
62-
case string:
63-
self.where = Where(Sql{v})
64-
case Sqlizer:
65-
self.where = Where(Sql{v})
66-
}
67-
73+
self.where = Where(Sql{predicate})
6874
return self
6975
}
7076

sqlx/select_test.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,11 @@ func TestSelect(t *testing.T) {
8181
t.Fatal(err)
8282
}
8383

84-
sql := sqlx.Select("a", "b", "c").FromSelect(
85-
sqlx.Select("d", "e", "f").From("test"),
86-
"test",
84+
sql := sqlx.Select("a", "b", "c").From(
85+
sqlx.As(
86+
sqlx.Select("d", "e", "f").From("test"),
87+
"test",
88+
),
8789
).Sql()
8890

8991
if sql != strings.TrimSuffix(string(expected), "\n") {
@@ -229,9 +231,11 @@ func TestSelect(t *testing.T) {
229231
t.Fatal(err)
230232
}
231233

232-
sql := sqlx.Select("a", "b", "c").FromSelect(
233-
sqlx.Select("d", "e", "f").From("test"),
234-
"test",
234+
sql := sqlx.Select("a", "b", "c").From(
235+
sqlx.As(
236+
sqlx.Select("d", "e", "f").From("test"),
237+
"test",
238+
),
235239
).SqlPretty(" ")
236240

237241
if sql != strings.TrimSuffix(string(expected), "\n") {

0 commit comments

Comments
 (0)