@@ -947,6 +947,18 @@ static QVariant fcnCoalesce( const QVariantList &values, const QgsExpressionCont
947947 }
948948 return QVariant ();
949949}
950+
951+ static QVariant fcnNullIf ( const QVariantList &values, const QgsExpressionContext *, QgsExpression *, const QgsExpressionNodeFunction * )
952+ {
953+ const QVariant val1 = values.at ( 0 );
954+ const QVariant val2 = values.at ( 1 );
955+
956+ if ( val1 == val2 )
957+ return QVariant ();
958+ else
959+ return val1;
960+ }
961+
950962static QVariant fcnLower ( const QVariantList &values, const QgsExpressionContext *, QgsExpression *parent, const QgsExpressionNodeFunction * )
951963{
952964 QString str = QgsExpressionUtils::getStringValue ( values.at ( 0 ), parent );
@@ -4575,6 +4587,7 @@ const QList<QgsExpressionFunction *> &QgsExpression::Functions()
45754587 << new QgsStaticExpressionFunction ( QStringLiteral ( " to_dm" ), QgsExpressionFunction::ParameterList () << QgsExpressionFunction::Parameter ( QStringLiteral ( " value" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " axis" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " precision" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " formatting" ), true ), fcnToDegreeMinute, QStringLiteral ( " Conversions" ), QString (), false , QSet<QString>(), false , QStringList () << QStringLiteral ( " todm" ) )
45764588 << new QgsStaticExpressionFunction ( QStringLiteral ( " to_dms" ), QgsExpressionFunction::ParameterList () << QgsExpressionFunction::Parameter ( QStringLiteral ( " value" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " axis" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " precision" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " formatting" ), true ), fcnToDegreeMinuteSecond, QStringLiteral ( " Conversions" ), QString (), false , QSet<QString>(), false , QStringList () << QStringLiteral ( " todms" ) )
45774589 << new QgsStaticExpressionFunction ( QStringLiteral ( " coalesce" ), -1 , fcnCoalesce, QStringLiteral ( " Conditionals" ), QString (), false , QSet<QString>(), false , QStringList (), true )
4590+ << new QgsStaticExpressionFunction ( QStringLiteral ( " nullif" ), QgsExpressionFunction::ParameterList () << QgsExpressionFunction::Parameter ( QStringLiteral ( " value1" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " value2" ) ), fcnNullIf, QStringLiteral ( " Conditionals" ) )
45784591 << new QgsStaticExpressionFunction ( QStringLiteral ( " if" ), 3 , fcnIf, QStringLiteral ( " Conditionals" ), QString (), false , QSet<QString>(), true )
45794592
45804593 << new QgsStaticExpressionFunction ( QStringLiteral ( " aggregate" ),
0 commit comments