File tree Expand file tree Collapse file tree 2 files changed +12
-0
lines changed Expand file tree Collapse file tree 2 files changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -998,6 +998,10 @@ extension Connection {
998
998
select. clauses. select = ( false , [ Expression < Void > ( literal: " * " ) as Expressible ] )
999
999
let queries = [ select] + query. clauses. join. map { $0. query }
1000
1000
if !namespace. isEmpty {
1001
+ let tableNames = queries. map ( { $0. tableName ( ) . expression. template } )
1002
+ if !tableNames. contains ( namespace) {
1003
+ throw QueryError . noSuchTable ( name: namespace)
1004
+ }
1001
1005
for q in queries {
1002
1006
if q. tableName ( ) . expression. template == namespace {
1003
1007
try expandGlob ( true ) ( q)
Original file line number Diff line number Diff line change @@ -93,6 +93,14 @@ class QueryTests : XCTestCase {
93
93
users. join ( posts, on: posts [ userId] == users [ id] ) . join ( categories, on: categories [ id] == posts [ categoryId] )
94
94
)
95
95
}
96
+
97
+ func test_join_compilesJoinClause_withNamespaces( ) {
98
+ let query = users. join ( posts, on: posts [ userId] == users [ id] ) . select ( posts [ * ] , users [ * ] )
99
+ AssertSQL (
100
+ " SELECT \" posts \" .*, \" users \" .* FROM \" users \" INNER JOIN \" posts \" ON ( \" posts \" . \" user_id \" = \" users \" . \" id \" ) " ,
101
+ query
102
+ )
103
+ }
96
104
97
105
func test_filter_compilesWhereClause( ) {
98
106
AssertSQL ( " SELECT * FROM \" users \" WHERE ( \" admin \" = 1) " , users. filter ( admin == true ) )
You can’t perform that action at this time.
0 commit comments