From 4fd79eb49a8d93445574c617d4c2df9c685d0935 Mon Sep 17 00:00:00 2001 From: Vincent Rischmann Date: Mon, 21 Dec 2020 01:11:04 +0100 Subject: add a weight real column to the test table --- sqlite.zig | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) (limited to 'sqlite.zig') diff --git a/sqlite.zig b/sqlite.zig index c11f1a4..c2ec86d 100644 --- a/sqlite.zig +++ b/sqlite.zig @@ -638,12 +638,13 @@ const TestUser = struct { id: usize, name: []const u8, age: usize, + weight: f32, }; const test_users = &[_]TestUser{ - .{ .id = 20, .name = "Vincent", .age = 33 }, - .{ .id = 40, .name = "Julien", .age = 35 }, - .{ .id = 60, .name = "José", .age = 40 }, + .{ .id = 20, .name = "Vincent", .age = 33, .weight = 85.4 }, + .{ .id = 40, .name = "Julien", .age = 35, .weight = 100.3 }, + .{ .id = 60, .name = "José", .age = 40, .weight = 240.2 }, }; fn addTestData(db: *Db) !void { @@ -651,7 +652,8 @@ fn addTestData(db: *Db) !void { \\CREATE TABLE user( \\ id integer PRIMARY KEY, \\ name text, - \\ age integer + \\ age integer, + \\ weight real \\) , \\CREATE TABLE article( @@ -669,7 +671,7 @@ fn addTestData(db: *Db) !void { } for (test_users) |user| { - try db.exec("INSERT INTO user(id, name, age) VALUES(?{usize}, ?{[]const u8}, ?{usize})", user); + try db.exec("INSERT INTO user(id, name, age, weight) VALUES(?{usize}, ?{[]const u8}, ?{usize}, ?{f32})", user); const rows_inserted = db.rowsAffected(); testing.expectEqual(@as(usize, 1), rows_inserted); @@ -746,7 +748,7 @@ test "sqlite: read a single user into a struct" { try db.init(testing.allocator, .{ .mode = dbMode() }); try addTestData(&db); - var stmt = try db.prepare("SELECT id, name, age FROM user WHERE id = ?{usize}"); + var stmt = try db.prepare("SELECT id, name, age, weight FROM user WHERE id = ?{usize}"); defer stmt.deinit(); var rows = try stmt.all( @@ -769,7 +771,7 @@ test "sqlite: read all users into a struct" { try db.init(testing.allocator, .{ .mode = dbMode() }); try addTestData(&db); - var stmt = try db.prepare("SELECT id, name, age FROM user"); + var stmt = try db.prepare("SELECT id, name, age, weight FROM user"); defer stmt.deinit(); var rows = try stmt.all( @@ -794,7 +796,7 @@ test "sqlite: read in an anonymous struct" { try db.init(testing.allocator, .{ .mode = dbMode() }); try addTestData(&db); - var stmt = try db.prepare("SELECT id, name, name, age, id FROM user WHERE id = ?{usize}"); + var stmt = try db.prepare("SELECT id, name, name, age, id, weight FROM user WHERE id = ?{usize}"); defer stmt.deinit(); var row = try stmt.one( @@ -804,6 +806,7 @@ test "sqlite: read in an anonymous struct" { name_2: [200:0xAD]u8, age: usize, is_id: bool, + weight: f64, }, .{ .allocator = &arena.allocator }, .{ .id = @as(usize, 20) }, @@ -816,6 +819,7 @@ test "sqlite: read in an anonymous struct" { testing.expectEqualStrings(exp.name, mem.spanZ(&row.?.name_2)); testing.expectEqual(exp.age, row.?.age); testing.expect(row.?.is_id); + testing.expectEqual(exp.weight, @floatCast(f32, row.?.weight)); } test "sqlite: read in a Text struct" { @@ -989,13 +993,13 @@ test "sqlite: statement reset" { // Add data - var stmt = try db.prepare("INSERT INTO user(id, name, age) VALUES(?{usize}, ?{[]const u8}, ?{usize})"); + var stmt = try db.prepare("INSERT INTO user(id, name, age, weight) VALUES(?{usize}, ?{[]const u8}, ?{usize}, ?{f32})"); defer stmt.deinit(); const users = &[_]TestUser{ - .{ .id = 200, .name = "Vincent", .age = 33 }, - .{ .id = 400, .name = "Julien", .age = 35 }, - .{ .id = 600, .name = "José", .age = 40 }, + .{ .id = 200, .name = "Vincent", .age = 33, .weight = 10.0 }, + .{ .id = 400, .name = "Julien", .age = 35, .weight = 12.0 }, + .{ .id = 600, .name = "José", .age = 40, .weight = 14.0 }, }; for (users) |user| { @@ -1020,14 +1024,14 @@ test "sqlite: statement iterator" { try db.exec("DELETE FROM user", .{}); // Add data - var stmt = try db.prepare("INSERT INTO user(id, name, age) VALUES(?{usize}, ?{[]const u8}, ?{usize})"); + var stmt = try db.prepare("INSERT INTO user(id, name, age, weight) VALUES(?{usize}, ?{[]const u8}, ?{usize}, ?{f32})"); defer stmt.deinit(); var expected_rows = std.ArrayList(TestUser).init(allocator); var i: usize = 0; while (i < 20) : (i += 1) { const name = try std.fmt.allocPrint(allocator, "Vincent {}", .{i}); - const user = TestUser{ .id = i, .name = name, .age = i + 200 }; + const user = TestUser{ .id = i, .name = name, .age = i + 200, .weight = @intToFloat(f32, i + 200) }; try expected_rows.append(user); -- cgit v1.2.3