summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Vincent Rischmann2022-04-17 00:52:31 +0200
committerGravatar Vincent Rischmann2022-04-17 01:21:08 +0200
commit7c430e7f02f8ea0f0f91458a5036d42278e459f4 (patch)
tree589959cc6566e496f72193f01628d024104ee3f0
parentwork on supporting aggregate SQL functions (diff)
downloadzig-sqlite-7c430e7f02f8ea0f0f91458a5036d42278e459f4.tar.gz
zig-sqlite-7c430e7f02f8ea0f0f91458a5036d42278e459f4.tar.xz
zig-sqlite-7c430e7f02f8ea0f0f91458a5036d42278e459f4.zip
factor the CreateFunctionFlag to c_int code
-rw-r--r--sqlite.zig29
1 files changed, 15 insertions, 14 deletions
diff --git a/sqlite.zig b/sqlite.zig
index ad92cb9..3220c57 100644
--- a/sqlite.zig
+++ b/sqlite.zig
@@ -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,