aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authors.budaev <s.budaev@fun-box.ru>2016-10-05 04:27:08 +0400
committers.budaev <s.budaev@fun-box.ru>2016-10-05 04:27:08 +0400
commit026394a314955de99e6a65075cb11c087298794e (patch)
treef70f1390e98d1c0f75059c99d6ae6f0732101af1 /src
parentFixed typo in Stream Management option name (diff)
Added option to disable prepared statements (postgresql only)
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_sql.erl11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/ejabberd_sql.erl b/src/ejabberd_sql.erl
index b19f16414..4f50cfa01 100644
--- a/src/ejabberd_sql.erl
+++ b/src/ejabberd_sql.erl
@@ -522,7 +522,14 @@ sql_query_internal(#sql_query{} = Query) ->
mssql ->
mssql_sql_query(Query);
pgsql ->
+ PreparedStatements = ejabberd_config:get_option(
+ {sql_prepared_statements, ?MYNAME},
+ fun(A) when is_boolean(A) -> A end,
+ true),
Key = {?PREPARE_KEY, Query#sql_query.hash},
+ if not PreparedStatements -> put(Key, ignore);
+ true -> ok
+ end,
case get(Key) of
undefined ->
case pgsql_prepare(Query, State) of
@@ -1061,7 +1068,9 @@ opt_type(sql_type) ->
(odbc) -> odbc
end;
opt_type(sql_username) -> fun iolist_to_binary/1;
+opt_type(sql_prepared_statements) ->
+ fun(A) when is_boolean(A) -> A end;
opt_type(_) ->
[max_fsm_queue, sql_database, sql_keepalive_interval,
sql_password, sql_port, sql_server, sql_type,
- sql_username].
+ sql_username, sql_prepared_statements].