Skip to content

Commit 511160b

Browse files
author
Nathan Fallet
authored
Merge pull request #811 from stephanheilner/select_multiple_columns
2 parents b7302f6 + 78089e2 commit 511160b

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>"; };
@@ -417,6 +421,7 @@
417421
19A17B93B48B5560E6E51791 /* Fixtures.swift */,
418422
19A175C1F9CB3BBAB8FCEC7B /* RowTests.swift */,
419423
19A1729B75C33F9A0B9A89C1 /* DateAndTimeFunctionTests.swift */,
424+
D4DB368A20C09C9B00D5A58E /* SelectTests.swift */,
420425
);
421426
name = SQLiteTests;
422427
path = Tests/SQLiteTests;
@@ -845,6 +850,7 @@
845850
19A17F60B685636D1F83C2DD /* Fixtures.swift in Sources */,
846851
19A1785195182AF8731A8BDA /* RowTests.swift in Sources */,
847852
19A1769C1F3A7542BECF50FF /* DateAndTimeFunctionTests.swift in Sources */,
853+
D4DB368E20C09CFD00D5A58E /* SelectTests.swift in Sources */,
848854
);
849855
runOnlyForDeploymentPostprocessing = 0;
850856
};
@@ -933,6 +939,7 @@
933939
19A17408007B182F884E3A53 /* Fixtures.swift in Sources */,
934940
19A1720B67ED13E6150C6A3D /* RowTests.swift in Sources */,
935941
19A17C80076860CF7751A056 /* DateAndTimeFunctionTests.swift in Sources */,
942+
D4DB368C20C09CFB00D5A58E /* SelectTests.swift in Sources */,
936943
);
937944
runOnlyForDeploymentPostprocessing = 0;
938945
};
@@ -991,6 +998,7 @@
991998
19A1709C3E7A406E62293B2A /* Fixtures.swift in Sources */,
992999
19A171967CC511C4F6F773C9 /* RowTests.swift in Sources */,
9931000
19A172EB202970561E5C4245 /* DateAndTimeFunctionTests.swift in Sources */,
1001+
D4DB368D20C09CFC00D5A58E /* SelectTests.swift in Sources */,
9941002
);
9951003
runOnlyForDeploymentPostprocessing = 0;
9961004
};

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)