43
43
#include " Basics/fpconv.h"
44
44
#include " Basics/tri-strings.h"
45
45
#include " V8/v8-vpack.h"
46
- #include " GeneralServer/AuthenticationFeature.h"
47
46
#include " Geo/GeoParams.h"
48
47
#include " Geo/GeoUtils.h"
49
48
#include " Geo/GeoJson.h"
@@ -520,8 +519,8 @@ std::vector<std::pair<std::string, format_func_t>> const sortedDateMap = {
520
519
};
521
520
522
521
// / @brief register warning
523
- void registerWarning (ExpressionContext* expressionContext,
524
- char const * functionName,
522
+ voi
8000
d registerWarning (ExpressionContext* expressionContext,
523
+ char const * functionName,
525
524
Result const & rr) {
526
525
std::string msg = " in function '" ;
527
526
msg.append (functionName);
@@ -821,7 +820,7 @@ void registerInvalidArgumentWarning(ExpressionContext* expressionContext,
821
820
::registerWarning (expressionContext, functionName, TRI_ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH);
822
821
}
823
822
824
- bool parameterToTimePoint (ExpressionContext* expressionContext,
823
+ bool parameterToTimePoint (ExpressionContext* expressionContext,
825
824
transaction::Methods* trx,
826
825
VPackFunctionParameters const & parameters,
827
826
tp_sys_clock_ms& tp,
@@ -1393,7 +1392,7 @@ AqlValue callApplyBackend(ExpressionContext* expressionContext,
1393
1392
func = AqlFunctionFeature::getFunctionByName (ucInvokeFN);
1394
1393
if (func->implementation != nullptr ) {
1395
1394
std::pair<size_t , size_t > numExpectedArguments = func->numArguments ();
1396
-
1395
+
1397
1396
if (invokeParams.size () < numExpectedArguments.first ||
1398
1397
invokeParams.size () > numExpectedArguments.second ) {
1399
1398
THROW_ARANGO_EXCEPTION_PARAMS (
@@ -1621,10 +1620,10 @@ AqlValue Functions::ToString(ExpressionContext*,
1621
1620
transaction::Methods* trx,
1622
1621
VPackFunctionParameters const & parameters) {
1623
1622
AqlValue value = ExtractFunctionParameterValue (parameters, 0 );
1624
-
1623
+
1625
1624
transaction::StringBufferLeaser buffer (trx);
1626
1625
arangodb::basics::VPackStringBufferAdapter adapter (buffer->stringBuffer ());
1627
-
1626
+
1628
1627
::appendAsString (trx, adapter, value);
1629
1628
return AqlValue (buffer->begin (), buffer->length ());
1630
1629
}
@@ -1639,9 +1638,9 @@ AqlValue Functions::ToBase64(ExpressionContext*,
1639
1638
arangodb::basics::VPackStringBufferAdapter adapter (buffer->stringBuffer ());
1640
1639
1641
1640
::appendAsString (trx, adapter, value);
1642
-
1641
+
1643
1642
std::string encoded = basics::StringUtils::encodeBase64 (std::string (buffer->begin (), buffer->length ()));
1644
-
1643
+
1645
1644
return AqlValue (encoded);
1646
1645
}
1647
1646
@@ -1650,14 +1649,14 @@ AqlValue Functions::ToHex(ExpressionContext*,
1650
1649
transaction::Methods* trx,
1651
1650
VPackFunctionParameters const & parameters) {
1652
1651
AqlValue value = ExtractFunctionParameterValue (parameters, 0 );
1653
-
1652
+
1654
1653
transaction::StringBufferLeaser buffer (trx);
1655
1654
arangodb::basics::VPackStringBufferAdapter adapter (buffer->stringBuffer ());
1656
-
1655
+
1657
1656
::appendAsString (trx, adapter, value);
1658
-
1657
+
1659
1658
std::string encoded = basics::StringUtils::encodeHex (std::string (buffer->begin (), buffer->length ()));
1660
-
1659
+
1661
1660
return AqlValue (encoded);
1662
1661
}
1663
1662
@@ -1955,7 +1954,7 @@ AqlValue Functions::Reverse(ExpressionContext* expressionContext,
1955
1954
transaction::Methods* trx,
1956
1955
VPackFunctionParameters const & parameters) {
1957
1956
static char const * AFN = " REVERSE" ;
1958
-
1957
+
1959
1958
AqlValue value = ExtractFunctionParameterValue (parameters, 0 );
1960
1959
1961
1960
if (value.isArray ()) {
@@ -2006,7 +2005,7 @@ AqlValue Functions::First(ExpressionContext* expressionContext,
2006
2005
transaction::Methods* trx,
2007
2006
VPackFunctionParameters const & parameters) {
2008
2007
static char const * AFN = " FIRST" ;
2009
-
2008
+
2010
2009
AqlValue value = ExtractFunctionParameterValue (parameters, 0 );
2011
2010
2012
2011
if (!value.isArray ()) {
@@ -2028,7 +2027,7 @@ AqlValue Functions::Last(ExpressionContext* expressionContext,
2028
2027
transaction::Methods* trx,
2029
2028
VPackFunctionParameters const & parameters) {
2030
2029
static char const * AFN = " LAST" ;
2031
-
2030
+
2032
2031
AqlValue value = ExtractFunctionParameterValue (parameters, 0 );
2033
2032
2034
2033
if (!value.isArray ()) {
@@ -2048,11 +2047,11 @@ AqlValue Functions::Last(ExpressionContext* expressionContext,
2048
2047
}
2049
2048
2050
2049
// / @brief function NTH
2051
- AqlValue Functions::Nth (ExpressionContext* expressionContext,
2050
+ AqlValue Functions::Nth (ExpressionContext* expressionContext,
2052
2051
transaction::Methods* trx,
2053
2052
VPackFunctionParameters const & parameters) {
2054
2053
static char const * AFN = " NTH" ;
2055
-
2054
+
2056
2055
AqlValue value = ExtractFunctionParameterValue (parameters, 0 );
2057
2056
2058
2057
if (!value.isArray ()) {
@@ -2702,7 +2701,7 @@ void rtrimInternal(uint32_t& startOffset, uint32_t& endOffset,
2702
2701
}
2703
2702
2704
2703
// / @brief function TRIM
2705
- AqlValue Functions::Trim (ExpressionContext* expressionContext,
2704
+ AqlValue Functions::Trim (ExpressionContext* expressionContext,
2706
2705
transaction::Methods* trx,
2707
2706
VPackFunctionParameters const & parameters) {
2708
2707
static char const * AFN = " TRIM" ;
@@ -2856,7 +2855,7 @@ AqlValue Functions::Like(ExpressionContext* expressionContext,
2856
2855
transaction::Methods* trx,
2857
2856
VPackFunctionParameters const & parameters) {
2858
2857
static char const * AFN = " LIKE" ;
2859
-
2858
+
2860
2859
bool const caseInsensitive = ::getBooleanParameter (trx, parameters, 2 , false );
2861
2860
transaction::StringBufferLeaser buffer (trx);
2862
2861
arangodb::basics::VPackStringBufferAdapter adapter (buffer->stringBuffer ());
@@ -3077,7 +3076,7 @@ AqlValue Functions::RegexMatches(ExpressionContext* expressionContext,
3077
3076
3078
3077
UErrorCode status = U_ZERO_ERROR;
3079
3078
3080
- matcher->reset (valueToMatch);
3079
+ matcher->reset (valueToMatch);
3081
3080
bool find = matcher->find ();
3082
3081
if (!find) {
3083
3082
return AqlValue (AqlValueHintNull ());
@@ -3232,7 +3231,7 @@ AqlValue Functions::RegexTest(ExpressionContext* expressionContext,
3232
3231
transaction::Methods* trx,
3233
3232
VPackFunctionParameters const & parameters) {
3234
3233
static char const * AFN = " REGEX_TEST" ;
3235
-
3234
+
3236
3235
bool const caseInsensitive = ::getBooleanParameter (trx, parameters, 2 , false );
3237
3236
transaction::StringBufferLeaser buffer (trx);
3238
3237
arangodb::basics::VPackStringBufferAdapter adapter (buffer->stringBuffer ());
@@ -3274,7 +3273,7 @@ AqlValue Functions::RegexReplace(ExpressionContext* expressionContext,
3274
3273
transaction::Methods* trx,
3275
3274
VPackFunctionParameters const & parameters) {
3276
3275
static char const * AFN = " REGEX_REPLACE" ;
3277
-
3276
+
3278
3277
bool const caseInsensitive = ::getBooleanParameter (trx, parameters, 3 , false );
3279
3278
transaction::StringBufferLeaser buffer (trx);
3280
3279
arangodb::basics::VPackStringBufferAdapter adapter (buffer->stringBuffer ());
@@ -3937,7 +3936,7 @@ AqlValue Functions::Unset(ExpressionContext* expressionContext,
3937
3936
transaction::Methods* trx,
3938
3937
VPackFunctionParameters const & parameters) {
3939
3938
static char const * AFN = " UNSET" ;
3940
-
3939
+
3941
3940
AqlValue value = ExtractFunctionParameterValue (parameters, 0 );
3942
3941
3943
3942
if (!value.isObject ()) {
@@ -3960,7 +3959,7 @@ AqlValue Functions::UnsetRecursive(ExpressionContext* expressionContext,
3960
3959
transaction::Methods* trx,
3961
3960
VPackFunctionParameters const & parameters) {
3962
3961
static char const * AFN = " UNSET_RECURSIVE" ;
3963
-
3962
+
3964
3963
AqlValue value = ExtractFunctionParameterValue (parameters, 0 );
3965
3964
3966
3965
if (!value.isObject ()) {
@@ -3982,7 +3981,7 @@ AqlValue Functions::UnsetRecursive(ExpressionContext* expressionContext,
3982
3981
AqlValue Functions::Keep (ExpressionContext* expressionContext, transaction::Methods* trx,
3983
3982
VPackFunctionParameters const & parameters) {
3984
3983
static char const * AFN = " KEEP" ;
3985
-
3984
+
3986
3985
AqlValue value = ExtractFunctionParameterValue (parameters, 0 );
3987
3986
3988
3987
if (!value.isObject ()) {
@@ -4005,7 +4004,7 @@ AqlValue Functions::Translate(ExpressionContext* expressionContext,
4005
4004
transaction::Methods* trx,
4006
4005
VPackFunctionParameters const & parameters) {
4007
4006
static char const * AFN = " TRANSLATE" ;
4008
-
4007
+
4009
4008
AqlValue key = ExtractFunctionParameterValue (parameters, 0 );
4010
4009
AqlValue lookupDocument = ExtractFunctionParameterValue (parameters, 1 );
4011
4010
@@ -4604,7 +4603,7 @@ AqlValue Functions::SortedUnique(ExpressionContext* expressionContext,
4604
4603
transaction::Methods* trx,
4605
4604
VPackFunctionParameters const & parameters) {
4606
4605
static char const * AFN = " SORTED_UNIQUE" ;
4607
-
4606
+
4608
4607
AqlValue value = ExtractFunctionParameterValue (parameters, 0 );
4609
4608
4610
4609
if (!value.isArray ()) {
@@ -4640,7 +4639,7 @@ AqlValue Functions::Sorted(ExpressionContext* expressionContext,
4640
4639
transaction::Methods* trx,
4641
4640
VPackFunctionParameters const & parameters) {
4642
4641
static char const * AFN = " SORTED" ;
4643
-
4642
+
4644
4643
AqlValue value = ExtractFunctionParameterValue (parameters, 0 );
4645
4644
4646
4645
if (!value.isArray ()) {
@@ -4723,7 +4722,7 @@ AqlValue Functions::UnionDistinct(ExpressionContext* expressionContext,
4723
4722
transaction::Methods* trx,
4724
4723
VPackFunctionParameters const & parameters) {
4725
4724
static char const * AFN = " UNION_DISTINCT" ;
4726
-
4725
+
4727
4726
size_t const n = parameters.size ();
4728
4727
4729
4728
auto options = trx->transactionContextPtr ()->getVPackOptions ();
@@ -6232,7 +6231,7 @@ AqlValue Functions::Push(ExpressionContext* expressionContext, transaction::Meth
6232
6231
AqlValue Functions::Pop (ExpressionContext* expressionContext, transaction::Methods* trx,
6233
6232
VPackFunctionParameters const & parameters) {
6234
6233
static char const * AFN = " POP" ;
6235
-
6234
+
6236
6235
AqlValue list = ExtractFunctionParameterValue (parameters, 0 );
6237
6236
6238
6237
if (list.isNull (true )) {
@@ -6263,7 +6262,7 @@ AqlValue Functions::Append(ExpressionContext* expressionContext,
6263
6262
transaction::Methods* trx,
6264
6263
VPackFunctionParameters const & parameters) {
6265
6264
static char const * AFN = " APPEND" ;
6266
-
6265
+
6267
6266
AqlValue list = ExtractFunctionParameterValue (parameters, 0 );
6268
6267
AqlValue toAppend = ExtractFunctionParameterValue (parameters, 1 );
6269
6268
@@ -6340,7 +6339,7 @@ AqlValue Functions::Unshift(ExpressionContext* expressionContext,
6340
6339
transaction::Methods* trx,
6341
6340
VPackFunctionParameters const & parameters) {
6342
6341
static char const * AFN = " UNSHIFT" ;
6343
-
6342
+
6344
6343
AqlValue list = ExtractFunctionParameterValue (parameters, 0 );
6345
6344
6346
6345
if (!list.isNull (true ) && !list.isArray ()) {
@@ -6769,7 +6768,7 @@ AqlValue Functions::Percentile(ExpressionContext* expressionContext,
6769
6768
transaction::Methods* trx,
6770
6769
VPackFunctionParameters const & parameters) {
6771
6770
static char const * AFN = " PERCENTILE" ;
6772
-
6771
+
6773
6772
AqlValue list = ExtractFunctionParameterValue (parameters, 0 );
6774
6773
6775
6774
if (!list.isArray ()) {
@@ -7063,7 +7062,7 @@ AqlValue Functions::PregelResult(ExpressionContext* expressionContext,
7063
7062
::registerWarning (expressionContext, AFN, TRI_ERROR_FAILED);
7064
7063
return AqlValue (AqlValueHintEmptyArray ());
7065
7064
}
7066
-
7065
+
7067
7066
auto buffer = std::make_unique<VPackBuffer<uint8_t >>();
7068
7067
VPackBuilder builder (*buffer);
7069
7068
if (ServerState::instance ()->isCoordinator ()) {
@@ -7073,7 +7072,7 @@ AqlValue Functions::PregelResult(ExpressionContext* expressionContext,
7073
7072
return AqlValue (AqlValueHintEmptyArray ());
7074
7073
}
7075
7074
c->collectAQLResults (builder);
7076
-
7075
+
7077
7076
} else
10000
{
7078
7077
std::shared_ptr<pregel::IWorker> worker = feature->worker (execNr);
7079
7078
if (!worker) {
@@ -7082,12 +7081,12 @@ AqlValue Functions::PregelResult(ExpressionContext* expressionContext,
7082
7081
}
7083
7082
worker->aqlResult (builder);
7084
7083
}
7085
-
7084
+
7086
7085
if (builder.isEmpty ()) {
7087
7086
return AqlValue (AqlValueHintEmptyArray ());
7088
7087
}
7089
7088
TRI_ASSERT (builder.slice ().isArray ());
7090
-
7089
+
7091
7090
// move the buffer into
7092
7091
bool shouldDelete = true ;
7093
7092
AqlValue val (buffer.get (), shouldDelete);
@@ -7101,7 +7100,7 @@ AqlValue Functions::Assert(ExpressionContext* expressionContext,
7101
7100
transaction::Methods* trx,
7102
7101
VPackFunctionParameters const & parameters) {
7103
7102
static char const * AFN = " ASSERT" ;
7104
-
7103
+
7105
7104
auto const expr = ExtractFunctionParameterValue (parameters, 0 );
7106
7105
auto const message = ExtractFunctionParameterValue (parameters, 1 );
7107
7106
@@ -7119,7 +7118,7 @@ AqlValue Functions::Assert(ExpressionContext* expressionContext,
7119
7118
AqlValue Functions::Warn (ExpressionContext* expressionContext, transaction::Methods* trx,
7120
7119
VPackFunctionParameters const & parameters) {
7121
7120
static char const * AFN = " WARN" ;
7122
-
7121
+
7123
7122
auto const expr = ExtractFunctionParameterValue (parameters, 0 );
7124
7123
auto const message = ExtractFunctionParameterValue (parameters, 1 );
7125
7124
@@ -7174,7 +7173,7 @@ AqlValue Functions::DateFormat(ExpressionContext* expressionContext,
7174
7173
return AqlValue (::executeDateFormatRegex (formatString, tp));
7175
7174
}
7176
7175
7177
- AqlValue Functions::NotImplemented (ExpressionContext* expressionContext,
7176
+ AqlValue Functions::NotImplemented (ExpressionContext* expressionContext,
7178
7177
transaction::Methods*,
7179
7178
VPackFunctionParameters const & params){
7180
7179
::registerError (expressionContext, " UNKNOWN" , TRI_ERROR_NOT_IMPLEMENTED);
0 commit comments