diff options
Diffstat (limited to '')
| -rw-r--r-- | sqlite.zig | 27 |
1 files changed, 27 insertions, 0 deletions
| @@ -1380,6 +1380,33 @@ test "sqlite: read pointers" { | |||
| 1380 | } | 1380 | } |
| 1381 | } | 1381 | } |
| 1382 | 1382 | ||
| 1383 | test "sqlite: optional" { | ||
| 1384 | var arena = std.heap.ArenaAllocator.init(testing.allocator); | ||
| 1385 | defer arena.deinit(); | ||
| 1386 | |||
| 1387 | var db: Db = undefined; | ||
| 1388 | try db.init(initOptions()); | ||
| 1389 | try addTestData(&db); | ||
| 1390 | |||
| 1391 | try db.exec("INSERT INTO article(author_id, data, is_published) VALUES(?, ?, ?)", .{ 1, null, true }); | ||
| 1392 | |||
| 1393 | var stmt = try db.prepare("SELECT data, is_published FROM article"); | ||
| 1394 | defer stmt.deinit(); | ||
| 1395 | |||
| 1396 | const row = try stmt.one( | ||
| 1397 | struct { | ||
| 1398 | data: ?[128:0]u8, | ||
| 1399 | is_published: ?bool, | ||
| 1400 | }, | ||
| 1401 | .{}, | ||
| 1402 | .{}, | ||
| 1403 | ); | ||
| 1404 | |||
| 1405 | testing.expect(row != null); | ||
| 1406 | testing.expect(row.data == null); | ||
| 1407 | testing.expectEqual(true, row.is_published.?); | ||
| 1408 | } | ||
| 1409 | |||
| 1383 | test "sqlite: statement reset" { | 1410 | test "sqlite: statement reset" { |
| 1384 | var db: Db = undefined; | 1411 | var db: Db = undefined; |
| 1385 | try db.init(initOptions()); | 1412 | try db.init(initOptions()); |