Skip to content

Commit 78089e2

Browse files
Fixed bug not allowing columns from multiple tables in the .select
1 parent 1a908a7 commit 78089e2

File tree

3 files changed

+53
-1
lines changed

3 files changed

+53
-1
lines changed

SQLite.xcodeproj/project.pbxproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@
108108
49EB68C51F7B3CB400D89D40 /* Coding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49EB68C31F7B3CB400D89D40 /* Coding.swift */; };
109109
49EB68C61F7B3CB400D89D40 /* Coding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49EB68C31F7B3CB400D89D40 /* Coding.swift */; };
110110
49EB68C71F7B3CB400D89D40 /* Coding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49EB68C31F7B3CB400D89D40 /* Coding.swift */; };
111+
D4DB368C20C09CFB00D5A58E /* SelectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4DB368A20C09C9B00D5A58E /* SelectTests.swift */; };
112+
D4DB368D20C09CFC00D5A58E /* SelectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4DB368A20C09C9B00D5A58E /* SelectTests.swift */; };
113+
D4DB368E20C09CFD00D5A58E /* SelectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4DB368A20C09C9B00D5A58E /* SelectTests.swift */; };
111114
EE247AD71C3F04ED00AE3E12 /* SQLite.h in Headers */ = {isa = PBXBuildFile; fileRef = EE247AD61C3F04ED00AE3E12 /* SQLite.h */; settings = {ATTRIBUTES = (Public, ); }; };
112115
EE247ADE1C3F04ED00AE3E12 /* SQLite.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EE247AD31C3F04ED00AE3E12 /* SQLite.framework */; };
113116
EE247B031C3F06E900AE3E12 /* Blob.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE247AEE1C3F06E900AE3E12 /* Blob.swift */; };
@@ -228,6 +231,7 @@
228231
3D67B3E51DB2469200A4F4C6 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/usr/lib/libsqlite3.tbd; sourceTree = DEVELOPER_DIR; };
229232
49EB68C31F7B3CB400D89D40 /* Coding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Coding.swift; sourceTree = "<group>"; };
230233
A121AC451CA35C79005A31D1 /* SQLite.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SQLite.framework; sourceTree = BUILT_PRODUCTS_DIR; };
234+
D4DB368A20C09C9B00D5A58E /* SelectTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectTests.swift; sourceTree = "<group>"; };
231235
EE247AD31C3F04ED00AE3E12 /* SQLite.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SQLite.framework; sourceTree = BUILT_PRODUCTS_DIR; };
232236
EE247AD61C3F04ED00AE3E12 /* SQLite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SQLite.h; sourceTree = "<group>"; };
233237
EE247AD81C3F04ED00AE3E12 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@@ -418,6 +422,7 @@
418422
19A17B93B48B5560E6E51791 /* Fixtures.swift */,
419423
19A175C1F9CB3BBAB8FCEC7B /* RowTests.swift */,
420424
19A1729B75C33F9A0B9A89C1 /* DateAndTimeFunctionTests.swift */,
425+
D4DB368A20C09C9B00D5A58E /* SelectTests.swift */,
421426
);
422427
name = SQLiteTests;
423428
path = Tests/SQLiteTests;
@@ -847,6 +852,7 @@
847852
19A17F60B685636D1F83C2DD /* Fixtures.swift in Sources */,
848853
19A1785195182AF8731A8BDA /* RowTests.swift in Sources */,
849854
19A1769C1F3A7542BECF50FF /* DateAndTimeFunctionTests.swift in Sources */,
855+
D4DB368E20C09CFD00D5A58E /* SelectTests.swift in Sources */,
850856
);
851857
runOnlyForDeploymentPostprocessing = 0;
852858
};
@@ -935,6 +941,7 @@
935941
19A17408007B182F884E3A53 /* Fixtures.swift in Sources */,
936942
19A1720B67ED13E6150C6A3D /* RowTests.swift in Sources */,
937943
19A17C80076860CF7751A056 /* DateAndTimeFunctionTests.swift in Sources */,
944+
D4DB368C20C09CFB00D5A58E /* SelectTests.swift in Sources */,
938945
);
939946
runOnlyForDeploymentPostprocessing = 0;
940947
};
@@ -993,6 +1000,7 @@
9931000
19A1709C3E7A406E62293B2A /* Fixtures.swift in Sources */,
9941001
19A171967CC511C4F6F773C9 /* RowTests.swift in Sources */,
9951002
19A172EB202970561E5C4245 /* DateAndTimeFunctionTests.swift in Sources */,
1003+
D4DB368D20C09CFC00D5A58E /* SelectTests.swift in Sources */,
9961004
);
9971005
runOnlyForDeploymentPostprocessing = 0;
9981006
};

Sources/SQLite/Typed/Query.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -963,7 +963,6 @@ extension Connection {
963963
try expandGlob(true)(q)
964964
continue column
965965
}
966-
throw QueryError.noSuchTable(name: namespace)
967966
}
968967
throw QueryError.noSuchTable(name: namespace)
969968
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import XCTest
2+
@testable import SQLite
3+
4+
class SelectTests: SQLiteTestCase {
5+
6+
override func setUp() {
7+
super.setUp()
8+
CreateUsersTable()
9+
CreateUsersDataTable()
10+
}
11+
12+
func CreateUsersDataTable() {
13+
try! db.execute("""
14+
CREATE TABLE users_name (
15+
id INTEGER,
16+
user_id INTEGER REFERENCES users(id),
17+
name TEXT
18+
)
19+
"""
20+
)
21+
}
22+
23+
func test_select_columns_from_multiple_tables() {
24+
let usersData = Table("users_name")
25+
let users = Table("users")
26+
27+
let name = Expression<String>("name")
28+
let id = Expression<Int64>("id")
29+
let userID = Expression<Int64>("user_id")
30+
let email = Expression<String>("email")
31+
32+
try! InsertUser("Joey")
33+
try! db.run(usersData.insert(
34+
id <- 1,
35+
userID <- 1,
36+
name <- "Joey"
37+
))
38+
39+
try! db.prepare(users.select(name, email).join(usersData, on: userID == users[id])).forEach {
40+
XCTAssertEqual($0[name], "Joey")
41+
XCTAssertEqual($0[email], "[email protected]")
42+
}
43+
}
44+
45+
}

0 commit comments

Comments
 (0)