Преглед на файлове

chore: using prepared query in postgresql connector

zhouzb преди 4 години
родител
ревизия
fc89fb0f8a
променени са 2 файла, в които са добавени 5 реда и са изтрити 5 реда
  1. 1 1
      apps/emqx_connector/rebar.config
  2. 4 4
      apps/emqx_connector/src/emqx_connector_pgsql.erl

+ 1 - 1
apps/emqx_connector/rebar.config

@@ -6,7 +6,7 @@
 {deps, [
 {deps, [
   {eldap2, {git, "https://github.com/emqx/eldap2", {tag, "v0.2.2"}}},
   {eldap2, {git, "https://github.com/emqx/eldap2", {tag, "v0.2.2"}}},
   {mysql, {git, "https://github.com/emqx/mysql-otp", {tag, "1.7.1"}}},
   {mysql, {git, "https://github.com/emqx/mysql-otp", {tag, "1.7.1"}}},
-  {epgsql, {git, "https://github.com/emqx/epgsql", {tag, "4.6.0"}}},
+  {epgsql, {git, "https://github.com/emqx/epgsql", {tag, "4.7-emqx.1"}}},
   %% NOTE: mind poolboy version when updating mongodb-erlang version
   %% NOTE: mind poolboy version when updating mongodb-erlang version
   {mongodb, {git,"https://github.com/emqx/mongodb-erlang", {tag, "v3.0.10"}}},
   {mongodb, {git,"https://github.com/emqx/mongodb-erlang", {tag, "v3.0.10"}}},
   %% NOTE: mind poolboy version when updating eredis_cluster version
   %% NOTE: mind poolboy version when updating eredis_cluster version

+ 4 - 4
apps/emqx_connector/src/emqx_connector_pgsql.erl

@@ -32,7 +32,7 @@
 
 
 -export([connect/1]).
 -export([connect/1]).
 
 
--export([query/3]).
+-export([query/4]).
 
 
 -export([do_health_check/1]).
 -export([do_health_check/1]).
 
 
@@ -85,7 +85,7 @@ on_query(InstId, {sql, SQL}, AfterQuery, #{poolname := _PoolName} = State) ->
 on_query(InstId, {sql, SQL, Params}, AfterQuery, #{poolname := PoolName} = State) ->
 on_query(InstId, {sql, SQL, Params}, AfterQuery, #{poolname := PoolName} = State) ->
     ?SLOG(debug, #{msg => "postgresql connector received sql query",
     ?SLOG(debug, #{msg => "postgresql connector received sql query",
         connector => InstId, sql => SQL, state => State}),
         connector => InstId, sql => SQL, state => State}),
-    case Result = ecpool:pick_and_do(PoolName, {?MODULE, query, [SQL, Params]}, no_handover) of
+    case Result = ecpool:pick_and_do(PoolName, {?MODULE, query, [InstId, SQL, Params]}, no_handover) of
         {error, Reason} ->
         {error, Reason} ->
             ?SLOG(error, #{
             ?SLOG(error, #{
                 msg => "postgresql connector do sql query failed",
                 msg => "postgresql connector do sql query failed",
@@ -112,8 +112,8 @@ connect(Opts) ->
     Password = proplists:get_value(password, Opts),
     Password = proplists:get_value(password, Opts),
     epgsql:connect(Host, Username, Password, conn_opts(Opts)).
     epgsql:connect(Host, Username, Password, conn_opts(Opts)).
 
 
-query(Conn, SQL, Params) ->
-    epgsql:equery(Conn, SQL, Params).
+query(Conn, Name, SQL, Params) ->
+    epgsql:prepared_query2(Conn, Name, SQL, Params).
 
 
 conn_opts(Opts) ->
 conn_opts(Opts) ->
     conn_opts(Opts, []).
     conn_opts(Opts, []).