diff --git a/.gitignore b/.gitignore index bf1cbfec..6f06e48c 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ *.db tags .racoco +zef/ +*.sqlite3 diff --git a/lib/Red/Driver/Pg.rakumod b/lib/Red/Driver/Pg.rakumod index 9e4b84bc..4848a3ce 100644 --- a/lib/Red/Driver/Pg.rakumod +++ b/lib/Red/Driver/Pg.rakumod @@ -47,8 +47,8 @@ submethod TWEAK() { ; } -# JSON values are stringified when binding/reading -method stringify-json { True } +# JSON values are passed as native structures to DBIish +method stringify-json { False } method new-connection($dbh = $!dbh) { self.clone: dbh => $dbh } @@ -148,13 +148,13 @@ multi method pg-jsonb-path-item(Str $_) { $_ } multi method translate(Red::AST::JsonItem $_, $context?) { my ($left, @lb) := do given self.translate: .left, $context { .key, .value }; my $path = self.pg-jsonb-path-item: .right.value; - "($left #> '{ $path }')" => @lb + "($left #> '\{$path\}')" => @lb } multi method translate(Red::AST::JsonRemoveItem $_, $context?) { my ($left, @lb) := do given self.translate: .left, $context { .key, .value }; my $path = self.pg-jsonb-path-item: .right.value; - "($left #- '{ $path }')" => @lb + "($left #- '\{$path\}')" => @lb } multi method translate(Red::AST::Value $_ where { .type ~~ Pair and .value.key ~~ Red::AST::JsonItem }, "update") { diff --git a/lib/Red/Type/Json.rakumod b/lib/Red/Type/Json.rakumod index b3f3fd84..11419b62 100644 --- a/lib/Red/Type/Json.rakumod +++ b/lib/Red/Type/Json.rakumod @@ -18,7 +18,7 @@ method deflator { -> $data { # TODO: Find a better way of doing this do if get-RED-DB.?stringify-json { - try { to-json $data } // $data + try { to-json $data, :!pretty } // $data } else { $data } diff --git a/t/14-union.rakutest b/t/14-union.rakutest index 9a8ff9a6..309693f6 100644 --- a/t/14-union.rakutest +++ b/t/14-union.rakutest @@ -39,7 +39,6 @@ isa-ok $intersect2, M::ResultSeq; isa-ok $intersect2.ast, Red::AST::Intersect; is-deeply $intersect2.map(*.a).Seq.sort, eager 10 ^..^ 20; -skip-rest("Pg do not accept minus"), exit with %*ENV; my $minus1 = M.^all (-) M.^all.grep(*.a >= 20); isa-ok $minus1, M::ResultSeq; isa-ok $minus1.ast, Red::AST::Minus;