diff options
| author | 2022-04-17 00:52:31 +0200 | |
|---|---|---|
| committer | 2022-04-17 01:21:08 +0200 | |
| commit | 7c430e7f02f8ea0f0f91458a5036d42278e459f4 (patch) | |
| tree | 589959cc6566e496f72193f01628d024104ee3f0 /sqlite.zig | |
| parent | work on supporting aggregate SQL functions (diff) | |
| download | zig-sqlite-7c430e7f02f8ea0f0f91458a5036d42278e459f4.tar.gz zig-sqlite-7c430e7f02f8ea0f0f91458a5036d42278e459f4.tar.xz zig-sqlite-7c430e7f02f8ea0f0f91458a5036d42278e459f4.zip | |
factor the CreateFunctionFlag to c_int code
Diffstat (limited to '')
| -rw-r--r-- | sqlite.zig | 29 |
1 files changed, 15 insertions, 14 deletions
| @@ -696,6 +696,17 @@ pub const Db = struct { | |||
| 696 | deterministic: bool = true, | 696 | deterministic: bool = true, |
| 697 | /// Equivalent to SQLITE_DIRECTONLY | 697 | /// Equivalent to SQLITE_DIRECTONLY |
| 698 | direct_only: bool = true, | 698 | direct_only: bool = true, |
| 699 | |||
| 700 | fn toCFlags(self: *const CreateFunctionFlag) c_int { | ||
| 701 | var flags: c_int = c.SQLITE_UTF8; | ||
| 702 | if (self.deterministic) { | ||
| 703 | flags |= c.SQLITE_DETERMINISTIC; | ||
| 704 | } | ||
| 705 | if (self.direct_only) { | ||
| 706 | flags |= c.SQLITE_DIRECTONLY; | ||
| 707 | } | ||
| 708 | return flags; | ||
| 709 | } | ||
| 699 | }; | 710 | }; |
| 700 | 711 | ||
| 701 | /// Creates an aggregate SQLite function with the given name. | 712 | /// Creates an aggregate SQLite function with the given name. |
| @@ -752,13 +763,7 @@ pub const Db = struct { | |||
| 752 | 763 | ||
| 753 | // | 764 | // |
| 754 | 765 | ||
| 755 | var flags: c_int = c.SQLITE_UTF8; | 766 | const flags = create_flags.toCFlags(); |
| 756 | if (create_flags.deterministic) { | ||
| 757 | flags |= c.SQLITE_DETERMINISTIC; | ||
| 758 | } | ||
| 759 | if (create_flags.direct_only) { | ||
| 760 | flags |= c.SQLITE_DIRECTONLY; | ||
| 761 | } | ||
| 762 | 767 | ||
| 763 | const result = c.sqlite3_create_function_v2( | 768 | const result = c.sqlite3_create_function_v2( |
| 764 | self.db, | 769 | self.db, |
| @@ -832,13 +837,9 @@ pub const Db = struct { | |||
| 832 | 837 | ||
| 833 | const ArgTuple = std.meta.ArgsTuple(Type); | 838 | const ArgTuple = std.meta.ArgsTuple(Type); |
| 834 | 839 | ||
| 835 | var flags: c_int = c.SQLITE_UTF8; | 840 | // |
| 836 | if (create_flags.deterministic) { | 841 | |
| 837 | flags |= c.SQLITE_DETERMINISTIC; | 842 | const flags = create_flags.toCFlags(); |
| 838 | } | ||
| 839 | if (create_flags.direct_only) { | ||
| 840 | flags |= c.SQLITE_DIRECTONLY; | ||
| 841 | } | ||
| 842 | 843 | ||
| 843 | const result = c.sqlite3_create_function_v2( | 844 | const result = c.sqlite3_create_function_v2( |
| 844 | self.db, | 845 | self.db, |