| 1 | // vtest build: present_sqlite3? |
| 2 | module main |
| 3 | |
| 4 | import db.sqlite |
| 5 | |
| 6 | struct Client18333 { |
| 7 | id int @[primary; sql: serial] |
| 8 | name ?string |
| 9 | } |
| 10 | |
| 11 | fn test_orm_option_field_issue_18333() { |
| 12 | mut db := sqlite.connect(':memory:') or { panic(err) } |
| 13 | defer { |
| 14 | db.close() or {} |
| 15 | } |
| 16 | |
| 17 | sql db { |
| 18 | create table Client18333 |
| 19 | }! |
| 20 | |
| 21 | client := Client18333{ |
| 22 | name: 'alice' |
| 23 | } |
| 24 | |
| 25 | sql db { |
| 26 | insert client into Client18333 |
| 27 | }! |
| 28 | |
| 29 | rows := sql db { |
| 30 | select from Client18333 where name == 'alice' |
| 31 | }! |
| 32 | |
| 33 | assert rows.len == 1 |
| 34 | assert rows[0].name or { '' } == 'alice' |
| 35 | } |
| 36 | |