2828#include " Aql/Function.h"
2929#include " Aql/Functions.h"
3030#include " Basics/StringUtils.h"
31+ #include " Basics/ThreadLocalLeaser.h"
3132#include " Basics/conversions.h"
3233#include " Basics/hashes.h"
3334#include " Ssl/SslInterface.h"
@@ -54,7 +55,7 @@ AqlValue functions::Soundex(ExpressionContext* expr, AstNode const&,
5455 auto & trx = expr->trx ();
5556 AqlValue const & value = extractFunctionParameterValue (parameters, 0 );
5657
57- transaction::StringLeaser buffer (&trx );
58+ auto buffer = ThreadLocalStringLeaser::current. lease ( );
5859 velocypack::StringSink adapter (buffer.get ());
5960
6061 appendAsString (trx.vpackOptions (), adapter, value);
@@ -73,7 +74,7 @@ AqlValue functions::Md5(ExpressionContext* exprCtx, AstNode const&,
7374 auto const & vopts = trx->vpackOptions ();
7475 AqlValue const & value =
7576 aql::functions::extractFunctionParameterValue (parameters, 0 );
76- transaction::StringLeaser buffer (trx );
77+ auto buffer = ThreadLocalStringLeaser::current. lease ( );
7778 velocypack::StringSink adapter (buffer.get ());
7879
7980 appendAsString (vopts, adapter, value);
@@ -96,7 +97,7 @@ AqlValue functions::Sha1(ExpressionContext* exprCtx, AstNode const&,
9697 auto const & vopts = trx->vpackOptions ();
9798 AqlValue const & value =
9899 aql::functions::extractFunctionParameterValue (parameters, 0 );
99- transaction::StringLeaser buffer (trx );
100+ auto buffer = ThreadLocalStringLeaser::current. lease ( );
100101 velocypack::StringSink adapter (buffer.get ());
101102
102103 appendAsString (vopts, adapter, value);
@@ -119,7 +120,7 @@ AqlValue functions::Sha256(ExpressionContext* exprCtx, AstNode const&,
119120 auto const & vopts = trx->vpackOptions ();
120121 AqlValue const & value =
121122 aql::functions::extractFunctionParameterValue (parameters, 0 );
122- transaction::StringLeaser buffer (trx );
123+ auto buffer = ThreadLocalStringLeaser::current. lease ( );
123124 velocypack::StringSink adapter (buffer.get ());
124125
125126 appendAsString (vopts, adapter, value);
@@ -142,7 +143,7 @@ AqlValue functions::Sha512(ExpressionContext* exprCtx, AstNode const&,
142143 auto const & vopts = trx->vpackOptions ();
143144 AqlValue const & value =
144145 aql::functions::extractFunctionParameterValue (parameters, 0 );
145- transaction::StringLeaser buffer (trx );
146+ auto buffer = ThreadLocalStringLeaser::current. lease ( );
146147 velocypack::StringSink adapter (buffer.get ());
147148
148149 appendAsString (vopts, adapter, value);
@@ -165,7 +166,7 @@ AqlValue functions::Crc32(ExpressionContext* exprCtx, AstNode const&,
165166 auto const & vopts = trx->vpackOptions ();
166167 AqlValue const & value =
167168 aql::functions::extractFunctionParameterValue (parameters, 0 );
168- transaction::StringLeaser buffer (trx );
169+ auto buffer = ThreadLocalStringLeaser::current. lease ( );
169170 velocypack::StringSink adapter (buffer.get ());
170171
171172 appendAsString (vopts, adapter, value);
@@ -183,7 +184,7 @@ AqlValue functions::Fnv64(ExpressionContext* exprCtx, AstNode const&,
183184 auto const & vopts = trx->vpackOptions ();
184185 AqlValue const & value =
185186 aql::functions::extractFunctionParameterValue (parameters, 0 );
186- transaction::StringLeaser buffer (trx );
187+ auto buffer = ThreadLocalStringLeaser::current. lease ( );
187188 velocypack::StringSink adapter (buffer.get ());
188189
189190 appendAsString (vopts, adapter, value);
0 commit comments