From 5df798387b6f41a43a434f3db8eefc7a043ab992 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 23 Mar 2021 09:15:46 +0100 Subject: [PATCH] [jOOQ/jOOQ#6252] Infinity values not correctly escaped with PostgreSQL --- .../main/java/org/jooq/impl/DefaultBinding.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index 16424d8f6b..f5eaa80732 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -2333,14 +2333,14 @@ public class DefaultBinding implements Binding { @Override final void sqlInline0(BindingSQLContext ctx, Double value) { - // [#5249] [#6912] [#8063] Special inlining of special floating point values - if (value.isNaN()) + // [#5249] [#6912] [#8063] [#11701] Special inlining of special floating point values + if (value.isNaN() || value.isInfinite()) if (REQUIRE_NAN_CAST.contains(ctx.dialect())) - ctx.render().visit(inline("NaN")).sql("::float8"); + ctx.render().visit(inline(value.toString())).sql("::float8"); else if (ctx.family() == HSQLDB) ctx.render().visit(sqrt(inline(-1))); else - ctx.render().visit(new CastNative<>(inline("NaN"), DOUBLE)); + ctx.render().visit(new CastNative<>(inline(value.toString()), DOUBLE)); else ctx.render().sql(value); } @@ -2505,14 +2505,14 @@ public class DefaultBinding implements Binding { @Override final void sqlInline0(BindingSQLContext ctx, Float value) { - // [#5249] [#6912] [#8063] Special inlining of special floating point values - if (value.isNaN()) + // [#5249] [#6912] [#8063] [#11701] Special inlining of special floating point values + if (value.isNaN() || value.isInfinite()) if (REQUIRE_NAN_CAST.contains(ctx.dialect())) - ctx.render().visit(inline("NaN")).sql("::float4"); + ctx.render().visit(inline(value.toString())).sql("::float4"); else if (ctx.family() == HSQLDB) ctx.render().visit(sqrt(inline(-1))); else - ctx.render().visit(new CastNative<>(inline("NaN"), DOUBLE)); + ctx.render().visit(new CastNative<>(inline(value.toString()), DOUBLE)); else ctx.render().sql(value); }