Skip to content

Commit 140134d

Browse files
committed
Add playground examples
1 parent f2c8bda commit 140134d

File tree

3 files changed

+40
-2
lines changed

3 files changed

+40
-2
lines changed

SQLite.playground/Contents.swift

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,5 +99,33 @@ db.createAggregation("customConcat",
9999
initialValue: "users:",
100100
reduce: reduce,
101101
result: { $0 })
102-
let result = db.prepare("SELECT customConcat(email) FROM users").scalar() as! String
102+
let result = try db.prepare("SELECT customConcat(email) FROM users").scalar() as! String
103103
print(result)
104+
105+
/// schema queries
106+
let schema = db.schema
107+
let objects = try schema.objectDefinitions()
108+
print(objects)
109+
110+
let columns = try schema.columnDefinitions(table: "users")
111+
print(columns)
112+
113+
/// schema alteration
114+
115+
let schemaChanger = SchemaChanger(connection: db)
116+
try schemaChanger.alter(table: "users") { table in
117+
table.add(.init(name: "age", type: .INTEGER))
118+
table.rename(column: "email", to: "electronic_mail")
119+
table.drop(column: "name")
120+
}
121+
122+
let changedColumns = try schema.columnDefinitions(table: "users")
123+
print(changedColumns)
124+
125+
let age = Expression<Int?>("age")
126+
let electronicMail = Expression<String>("electronic_mail")
127+
128+
let newRowid = try db.run(users.insert(
129+
electronicMail <- "[email protected]",
130+
age <- 33
131+
))

Sources/SQLite/Schema/SchemaDefinitions.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ public struct ColumnDefinition: Equatable {
122122
public init(name: String,
123123
primaryKey: PrimaryKey? = nil,
124124
type: Affinity,
125-
nullable: Bool = false,
125+
nullable: Bool = true,
126126
defaultValue: LiteralValue = .NULL,
127127
references: ForeignKey? = nil) {
128128
self.name = name

Tests/SQLiteTests/Schema/SchemaDefinitionsTests.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,16 @@ class ColumnDefinitionTests: XCTestCase {
4949
XCTAssertEqual(definition.toSQL(), expected)
5050
}
5151
#endif
52+
53+
func testNullableByDefault() {
54+
let test = ColumnDefinition(name: "test", type: .REAL)
55+
XCTAssertEqual(test.name, "test")
56+
XCTAssertTrue(test.nullable)
57+
XCTAssertEqual(test.defaultValue, .NULL)
58+
XCTAssertEqual(test.type, .REAL)
59+
XCTAssertNil(test.references)
60+
XCTAssertNil(test.primaryKey)
61+
}
5262
}
5363

5464
class AffinityTests: XCTestCase {

0 commit comments

Comments
 (0)