diff options
| author | 2021-01-01 18:46:17 +0100 | |
|---|---|---|
| committer | 2021-01-06 01:04:18 +0100 | |
| commit | da04bbe425714dafc3329e4800afaa0866fb032c (patch) | |
| tree | 417de263bd173a8a3432084043b17721712a9ab5 /sqlite.zig | |
| parent | fix typo in readme (diff) | |
| download | zig-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.zig | 34 |
1 files changed, 17 insertions, 17 deletions
| @@ -889,16 +889,16 @@ pub fn Statement(comptime opts: StatementOptions, comptime query: ParsedQuery) t | |||
| 889 | } | 889 | } |
| 890 | 890 | ||
| 891 | const TestUser = struct { | 891 | const 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 | ||
| 898 | const test_users = &[_]TestUser{ | 898 | const 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 | ||
| 904 | fn addTestData(db: *Db) !void { | 904 | fn 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); |