From 407e4d27bc871caea5f7a5b87191447fd30a9747 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E4=B8=8B?= Date: Mon, 25 Aug 2025 09:27:10 +0200 Subject: [PATCH 1/4] fix: pass openssl lib name --- build.zig | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build.zig b/build.zig index ef9f3ff..53f1717 100644 --- a/build.zig +++ b/build.zig @@ -15,7 +15,11 @@ pub fn build(b: *std.Build) !void { b.installArtifact(lib); - const pg_dep = b.dependency("pg", .{ .target = target, .optimize = optimize }); + const pg_dep = b.dependency("pg", .{ + .target = target, + .optimize = optimize, + .openssl_lib_name = "ssl", + }); const jetcommon_dep = b.dependency("jetcommon", .{ .target = target, .optimize = optimize }); const jetcommon_module = jetcommon_dep.module("jetcommon"); From f25f7e13a6970644d7dfc03619b77b812b21fc92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E4=B8=8B?= Date: Mon, 25 Aug 2025 09:43:53 +0200 Subject: [PATCH 2/4] fix: discard result --- src/jetquery/events.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/jetquery/events.zig b/src/jetquery/events.zig index e542190..191eed1 100644 --- a/src/jetquery/events.zig +++ b/src/jetquery/events.zig @@ -55,8 +55,8 @@ pub fn defaultCallback(event: Event) !void { var writer: std.Io.Writer = .fixed(&duration_buf); try writer.printDurationSigned(duration); } - const formatted_duration = if (event.duration) |_| { - try std.fmt.bufPrint(&buf, " [{s}]", .{duration_buf}); + const formatted_duration = if (event.duration) |_| blk: { + break :blk std.fmt.bufPrint(&buf, " [{s}]", .{duration_buf}) catch ""; } else ""; std.debug.print("{s}{s}{s}{s}{s}", .{ event.message orelse "", From e9a7c472f276feec72b4fc98ff94c1f3c8531cb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E4=B8=8B?= Date: Mon, 25 Aug 2025 16:36:50 +0200 Subject: [PATCH 3/4] fix: adjustments --- src/jetquery/Repo.zig | 2 +- src/jetquery/reflection/util.zig | 4 ++-- src/jetquery/sql/Where.zig | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/jetquery/Repo.zig b/src/jetquery/Repo.zig index 90912ef..53dfca4 100644 --- a/src/jetquery/Repo.zig +++ b/src/jetquery/Repo.zig @@ -1197,7 +1197,7 @@ test "timestamps" { ); const now = std.time.microTimestamp(); - std.time.sleep(std.time.ns_per_ms); + std.Thread.sleep(std.time.ns_per_ms); try repo.Query(.Cat).insert(.{ .name = "Hercules", .paws = 4 }).execute(&repo); diff --git a/src/jetquery/reflection/util.zig b/src/jetquery/reflection/util.zig index 2d45250..7eccade 100644 --- a/src/jetquery/reflection/util.zig +++ b/src/jetquery/reflection/util.zig @@ -74,9 +74,9 @@ pub fn zigEscape( const writer = buf.writer(); const formatter = switch (context) { .id => std.zig.fmtId(input), - .string => std.zig.fmtEscapes(input), + .string => std.zig.fmtString(input), }; - try writer.print("{}", .{formatter}); + try writer.print("{any}", .{formatter}); return try buf.toOwnedSlice(); } diff --git a/src/jetquery/sql/Where.zig b/src/jetquery/sql/Where.zig index e272310..8884e7a 100644 --- a/src/jetquery/sql/Where.zig +++ b/src/jetquery/sql/Where.zig @@ -659,7 +659,7 @@ fn nodeTree( var t: type = OG; for (path[0 .. path.len - 1]) |c| { - t = std.meta.FieldType(t, std.enums.nameCast(std.meta.FieldEnum(t), c)); + t = @FieldType(t, std.enums.nameCast(std.meta.FieldEnum(t), c)); } const value: t = undefined; const condition = @field(value, path[path.len - 1]); From 75dde30885a81d458da43b3227e91afd9665c90c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E4=B8=8B?= Date: Mon, 25 Aug 2025 16:47:07 +0200 Subject: [PATCH 4/4] fix: testing expectations, field casting --- src/jetquery/Migrate.zig | 8 +++++--- src/jetquery/Repo.zig | 28 ++++++++++------------------ src/jetquery/sql/Where.zig | 2 +- 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/src/jetquery/Migrate.zig b/src/jetquery/Migrate.zig index de79838..ef292a2 100644 --- a/src/jetquery/Migrate.zig +++ b/src/jetquery/Migrate.zig @@ -228,7 +228,8 @@ test "migrate" { const new_defaults_query = test_repo.Query(.DefaultsTest) .select(.{ .id, .name, .count }); - try std.testing.expectError(error.PG, test_repo.execute(new_defaults_query)); + const new_defaults_result = test_repo.execute(new_defaults_query); + try std.testing.expect(new_defaults_result == error.PG); // Human-cats query should still work after first rollback var human_cats_result = try test_repo.execute(human_cats_query); @@ -245,7 +246,8 @@ test "migrate" { try migrate.rollback(); // After rolling back cats, human table should still exist but can't join to cats - try std.testing.expectError(error.PG, test_repo.execute(human_cats_query)); + const human_cats_result2 = test_repo.execute(human_cats_query); + try std.testing.expect(human_cats_result2 == error.PG); // Rollback the create_humans migration try migrate.rollback(); @@ -253,7 +255,7 @@ test "migrate" { // After rolling back humans, human table should no longer exist { const humans = test_repo.Query(.Human).all(&test_repo); - try std.testing.expectError(error.PG, humans); + try std.testing.expect(humans == error.PG); } } diff --git a/src/jetquery/Repo.zig b/src/jetquery/Repo.zig index 53dfca4..84e444b 100644 --- a/src/jetquery/Repo.zig +++ b/src/jetquery/Repo.zig @@ -1374,8 +1374,8 @@ test "aggregate count() with HAVING" { test "missing config options" { try resetDatabase(); - const repo = Repo(.postgresql, struct {}).init(std.testing.allocator, .{ .adapter = .{} }); - try std.testing.expectError(error.JetQueryConfigError, repo); + const result = Repo(.postgresql, struct {}).init(std.testing.allocator, .{ .adapter = .{} }); + try std.testing.expect(result == error.JetQueryConfigError); } test "transactions" { @@ -1469,10 +1469,8 @@ test "alterTable" { try repo.createTable("cats", &.{}, .{}); - try std.testing.expectError( - error.PG, - repo.Query(.Cat).select(.{ .name, .paws }).all(&repo), - ); + const result1 = repo.Query(.Cat).select(.{ .name, .paws }).all(&repo); + try std.testing.expect(result1 == error.PG); try repo.alterTable("cats", .{ .columns = .{ @@ -1486,26 +1484,20 @@ test "alterTable" { const cats = try repo.Query(.Cat).select(.{ .name, .paws }).all(&repo); try std.testing.expect(cats.len == 0); // Empty table but valid select columns. - try std.testing.expectError( - error.PG, - repo.Query(.Dog).select(.{ .name, .paws }).all(&repo), - ); + const result2 = repo.Query(.Dog).select(.{ .name, .paws }).all(&repo); + try std.testing.expect(result2 == error.PG); try repo.alterTable("cats", .{ .rename = "dogs" }); - try std.testing.expectError( - error.PG, - repo.Query(.Cat).select(.{ .name, .paws }).all(&repo), - ); + const result3 = repo.Query(.Cat).select(.{ .name, .paws }).all(&repo); + try std.testing.expect(result3 == error.PG); const dogs = try repo.Query(.Dog).select(.{ .name, .paws }).all(&repo); try std.testing.expect(dogs.len == 0); // Empty table but valid select columns. try repo.alterTable("dogs", .{ .columns = .{ .drop = &.{"paws"} } }); - try std.testing.expectError( - error.PG, - repo.Query(.Dog).select(.{ .name, .paws }).all(&repo), - ); + const result4 = repo.Query(.Dog).select(.{ .name, .paws }).all(&repo); + try std.testing.expect(result4 == error.PG); try repo.alterTable( "dogs", diff --git a/src/jetquery/sql/Where.zig b/src/jetquery/sql/Where.zig index 8884e7a..4156bac 100644 --- a/src/jetquery/sql/Where.zig +++ b/src/jetquery/sql/Where.zig @@ -659,7 +659,7 @@ fn nodeTree( var t: type = OG; for (path[0 .. path.len - 1]) |c| { - t = @FieldType(t, std.enums.nameCast(std.meta.FieldEnum(t), c)); + t = @FieldType(t, c); } const value: t = undefined; const condition = @field(value, path[path.len - 1]);