From f95aeef8d0ee600142149e6e4cb487aec0ba2920 Mon Sep 17 00:00:00 2001 From: Michael Borisov Date: Fri, 18 Nov 2022 10:36:18 +0100 Subject: [PATCH 1/3] Encoding map objects to string during escaping process --- lib/clickhousex/codec/values.ex | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/clickhousex/codec/values.ex b/lib/clickhousex/codec/values.ex index 37e7d4f..35990eb 100644 --- a/lib/clickhousex/codec/values.ex +++ b/lib/clickhousex/codec/values.ex @@ -104,6 +104,11 @@ defmodule Clickhousex.Codec.Values do ["'", escape(param), "'"] end + defp escape(s) when is_map(s) do + m = Jason.encode!(s) + to_iodata(m, 0, m, []) + end + defp escape(s) do to_iodata(s, 0, s, []) end From e96d2825a7a8277ab1c3c3b9ed7347ebb29355d6 Mon Sep 17 00:00:00 2001 From: Michael Borisov Date: Tue, 22 Nov 2022 09:10:39 +0100 Subject: [PATCH 2/3] Replace escaping with Jason.encode_to_iodata/1 --- lib/clickhousex/codec/values.ex | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/clickhousex/codec/values.ex b/lib/clickhousex/codec/values.ex index 35990eb..aec24d7 100644 --- a/lib/clickhousex/codec/values.ex +++ b/lib/clickhousex/codec/values.ex @@ -105,8 +105,7 @@ defmodule Clickhousex.Codec.Values do end defp escape(s) when is_map(s) do - m = Jason.encode!(s) - to_iodata(m, 0, m, []) + Jason.encode_to_iodata!(s) end defp escape(s) do From d7c69df5bce0d3cc5b3632f0f9805f4073c31211 Mon Sep 17 00:00:00 2001 From: Michael Borisov Date: Thu, 24 Nov 2022 12:51:08 +0100 Subject: [PATCH 3/3] Revert changes to previous approach with Jason.encode!/1 --- lib/clickhousex/codec/values.ex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/clickhousex/codec/values.ex b/lib/clickhousex/codec/values.ex index aec24d7..35990eb 100644 --- a/lib/clickhousex/codec/values.ex +++ b/lib/clickhousex/codec/values.ex @@ -105,7 +105,8 @@ defmodule Clickhousex.Codec.Values do end defp escape(s) when is_map(s) do - Jason.encode_to_iodata!(s) + m = Jason.encode!(s) + to_iodata(m, 0, m, []) end defp escape(s) do