summaryrefslogtreecommitdiff
path: root/sqlite.zig
diff options
context:
space:
mode:
authorGravatar Vincent Rischmann2021-01-01 18:46:17 +0100
committerGravatar Vincent Rischmann2021-01-06 01:04:18 +0100
commitda04bbe425714dafc3329e4800afaa0866fb032c (patch)
tree417de263bd173a8a3432084043b17721712a9ab5 /sqlite.zig
parentfix typo in readme (diff)
downloadzig-sqlite-da04bbe425714dafc3329e4800afaa0866fb032c.tar.gz
zig-sqlite-da04bbe425714dafc3329e4800afaa0866fb032c.tar.xz
zig-sqlite-da04bbe425714dafc3329e4800afaa0866fb032c.zip
reorder fields to workaround a compiler bug
Diffstat (limited to 'sqlite.zig')
-rw-r--r--sqlite.zig34
1 files changed, 17 insertions, 17 deletions
diff --git a/sqlite.zig b/sqlite.zig
index 20ccc6d..29f40bf 100644
--- a/sqlite.zig
+++ b/sqlite.zig
@@ -889,16 +889,16 @@ pub fn Statement(comptime opts: StatementOptions, comptime query: ParsedQuery) t
889} 889}
890 890
891const TestUser = struct { 891const TestUser = struct {
892 id: usize,
893 name: []const u8, 892 name: []const u8,
893 id: usize,
894 age: usize, 894 age: usize,
895 weight: f32, 895 weight: f32,
896}; 896};
897 897
898const test_users = &[_]TestUser{ 898const test_users = &[_]TestUser{
899 .{ .id = 20, .name = "Vincent", .age = 33, .weight = 85.4 }, 899 .{ .name = "Vincent", .id = 20, .age = 33, .weight = 85.4 },
900 .{ .id = 40, .name = "Julien", .age = 35, .weight = 100.3 }, 900 .{ .name = "Julien", .id = 40, .age = 35, .weight = 100.3 },
901 .{ .id = 60, .name = "José", .age = 40, .weight = 240.2 }, 901 .{ .name = "José", .id = 60, .age = 40, .weight = 240.2 },
902}; 902};
903 903
904fn addTestData(db: *Db) !void { 904fn addTestData(db: *Db) !void {
@@ -925,7 +925,7 @@ fn addTestData(db: *Db) !void {
925 } 925 }
926 926
927 for (test_users) |user| { 927 for (test_users) |user| {
928 try db.exec("INSERT INTO user(id, name, age, weight) VALUES(?{usize}, ?{[]const u8}, ?{usize}, ?{f32})", user); 928 try db.exec("INSERT INTO user(name, id, age, weight) VALUES(?{[]const u8}, ?{usize}, ?{usize}, ?{f32})", user);
929 929
930 const rows_inserted = db.rowsAffected(); 930 const rows_inserted = db.rowsAffected();
931 testing.expectEqual(@as(usize, 1), rows_inserted); 931 testing.expectEqual(@as(usize, 1), rows_inserted);
@@ -1010,7 +1010,7 @@ test "sqlite: read a single user into a struct" {
1010 try db.init(initOptions()); 1010 try db.init(initOptions());
1011 try addTestData(&db); 1011 try addTestData(&db);
1012 1012
1013 var stmt = try db.prepare("SELECT id, name, age, weight FROM user WHERE id = ?{usize}"); 1013 var stmt = try db.prepare("SELECT name, id, age, weight FROM user WHERE id = ?{usize}");
1014 defer stmt.deinit(); 1014 defer stmt.deinit();
1015 1015
1016 var rows = try stmt.all(TestUser, &arena.allocator, .{}, .{ 1016 var rows = try stmt.all(TestUser, &arena.allocator, .{}, .{
@@ -1026,11 +1026,11 @@ test "sqlite: read a single user into a struct" {
1026 { 1026 {
1027 var row = try db.one( 1027 var row = try db.one(
1028 struct { 1028 struct {
1029 id: usize,
1030 name: [128:0]u8, 1029 name: [128:0]u8,
1030 id: usize,
1031 age: usize, 1031 age: usize,
1032 }, 1032 },
1033 "SELECT id, name, age FROM user WHERE id = ?{usize}", 1033 "SELECT name, id, age FROM user WHERE id = ?{usize}",
1034 .{}, 1034 .{},
1035 .{@as(usize, 20)}, 1035 .{@as(usize, 20)},
1036 ); 1036 );
@@ -1046,12 +1046,12 @@ test "sqlite: read a single user into a struct" {
1046 { 1046 {
1047 var row = try db.oneAlloc( 1047 var row = try db.oneAlloc(
1048 struct { 1048 struct {
1049 id: usize,
1050 name: Text, 1049 name: Text,
1050 id: usize,
1051 age: usize, 1051 age: usize,
1052 }, 1052 },
1053 &arena.allocator, 1053 &arena.allocator,
1054 "SELECT id, name, age FROM user WHERE id = ?{usize}", 1054 "SELECT name, id, age FROM user WHERE id = ?{usize}",
1055 .{}, 1055 .{},
1056 .{@as(usize, 20)}, 1056 .{@as(usize, 20)},
1057 ); 1057 );
@@ -1072,7 +1072,7 @@ test "sqlite: read all users into a struct" {
1072 try db.init(initOptions()); 1072 try db.init(initOptions());
1073 try addTestData(&db); 1073 try addTestData(&db);
1074 1074
1075 var stmt = try db.prepare("SELECT id, name, age, weight FROM user"); 1075 var stmt = try db.prepare("SELECT name, id, age, weight FROM user");
1076 defer stmt.deinit(); 1076 defer stmt.deinit();
1077 1077
1078 var rows = try stmt.all(TestUser, &arena.allocator, .{}, .{}); 1078 var rows = try stmt.all(TestUser, &arena.allocator, .{}, .{});
@@ -1094,13 +1094,13 @@ test "sqlite: read in an anonymous struct" {
1094 try db.init(initOptions()); 1094 try db.init(initOptions());
1095 try addTestData(&db); 1095 try addTestData(&db);
1096 1096
1097 var stmt = try db.prepare("SELECT id, name, name, age, id, weight FROM user WHERE id = ?{usize}"); 1097 var stmt = try db.prepare("SELECT name, id, name, age, id, weight FROM user WHERE id = ?{usize}");
1098 defer stmt.deinit(); 1098 defer stmt.deinit();
1099 1099
1100 var row = try stmt.oneAlloc( 1100 var row = try stmt.oneAlloc(
1101 struct { 1101 struct {
1102 id: usize,
1103 name: []const u8, 1102 name: []const u8,
1103 id: usize,
1104 name_2: [200:0xAD]u8, 1104 name_2: [200:0xAD]u8,
1105 age: usize, 1105 age: usize,
1106 is_id: bool, 1106 is_id: bool,
@@ -1129,13 +1129,13 @@ test "sqlite: read in a Text struct" {
1129 try db.init(initOptions()); 1129 try db.init(initOptions());
1130 try addTestData(&db); 1130 try addTestData(&db);
1131 1131
1132 var stmt = try db.prepare("SELECT id, name, age FROM user WHERE id = ?{usize}"); 1132 var stmt = try db.prepare("SELECT name, id, age FROM user WHERE id = ?{usize}");
1133 defer stmt.deinit(); 1133 defer stmt.deinit();
1134 1134
1135 var row = try stmt.oneAlloc( 1135 var row = try stmt.oneAlloc(
1136 struct { 1136 struct {
1137 id: usize,
1138 name: Text, 1137 name: Text,
1138 id: usize,
1139 age: usize, 1139 age: usize,
1140 }, 1140 },
1141 &arena.allocator, 1141 &arena.allocator,
@@ -1342,7 +1342,7 @@ test "sqlite: statement reset" {
1342 1342
1343 // Add data 1343 // Add data
1344 1344
1345 var stmt = try db.prepare("INSERT INTO user(id, name, age, weight) VALUES(?{usize}, ?{[]const u8}, ?{usize}, ?{f32})"); 1345 var stmt = try db.prepare("INSERT INTO user(name, id, age, weight) VALUES(?{[]const u8}, ?{usize}, ?{usize}, ?{f32})");
1346 defer stmt.deinit(); 1346 defer stmt.deinit();
1347 1347
1348 const users = &[_]TestUser{ 1348 const users = &[_]TestUser{
@@ -1373,7 +1373,7 @@ test "sqlite: statement iterator" {
1373 try db.exec("DELETE FROM user", .{}); 1373 try db.exec("DELETE FROM user", .{});
1374 1374
1375 // Add data 1375 // Add data
1376 var stmt = try db.prepare("INSERT INTO user(id, name, age, weight) VALUES(?{usize}, ?{[]const u8}, ?{usize}, ?{f32})"); 1376 var stmt = try db.prepare("INSERT INTO user(name, id, age, weight) VALUES(?{[]const u8}, ?{usize}, ?{usize}, ?{f32})");
1377 defer stmt.deinit(); 1377 defer stmt.deinit();
1378 1378
1379 var expected_rows = std.ArrayList(TestUser).init(allocator); 1379 var expected_rows = std.ArrayList(TestUser).init(allocator);