summaryrefslogtreecommitdiff
path: root/src/ejabberd_odbc.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2016-02-25 20:31:58 +0300
committerAlexey Shchepin <alexey@process-one.net>2016-03-02 00:12:49 +0300
commit1f9fd25ff8820fddab4fc36bc9c75a697031db49 (patch)
tree92a695a695ff165a219fb0f1e74034c078321d48 /src/ejabberd_odbc.erl
parentUpdate p1_pgsql tag (diff)
Update more SQL queries
Diffstat (limited to 'src/ejabberd_odbc.erl')
-rw-r--r--src/ejabberd_odbc.erl10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/ejabberd_odbc.erl b/src/ejabberd_odbc.erl
index b7aff7b1..6f7ce4c8 100644
--- a/src/ejabberd_odbc.erl
+++ b/src/ejabberd_odbc.erl
@@ -41,6 +41,7 @@
sql_bloc/2,
escape/1,
escape_like/1,
+ escape_like_arg/1,
to_bool/1,
sqlite_db/1,
sqlite_file/1,
@@ -125,7 +126,7 @@ start_link(Host, StartInterval) ->
{error, binary()} |
{selected, [binary()],
[[binary()]]} |
- {selected, [any]}.
+ {selected, [any()]}.
-spec sql_query(binary(), sql_query()) -> sql_query_result().
@@ -199,6 +200,13 @@ escape_like($%) -> <<"\\%">>;
escape_like($_) -> <<"\\_">>;
escape_like(C) when is_integer(C), C >= 0, C =< 255 -> odbc_queries:escape(C).
+escape_like_arg(S) when is_binary(S) ->
+ << <<(escape_like_arg(C))/binary>> || <<C>> <= S >>;
+escape_like_arg($%) -> <<"\\%">>;
+escape_like_arg($_) -> <<"\\_">>;
+escape_like_arg($\\) -> <<"\\\\">>;
+escape_like_arg(C) when is_integer(C), C >= 0, C =< 255 -> <<C>>.
+
to_bool(<<"t">>) -> true;
to_bool(<<"true">>) -> true;
to_bool(<<"1">>) -> true;