mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-25 00:05:03 -04:00
Allow QgsFeatureRequest::OrderBy expressions to be prepared
This commit is contained in:
parent
8031ac43e0
commit
abd26075a7
@ -302,6 +302,22 @@ QgsFeatureRequest::OrderByClause::OrderByClause( const QString &expression, bool
|
||||
{
|
||||
}
|
||||
|
||||
QgsFeatureRequest::OrderByClause::OrderByClause( const QgsExpression &expression, bool ascending )
|
||||
: mExpression( expression )
|
||||
, mAscending( ascending )
|
||||
{
|
||||
// postgres behavior: default for ASC: NULLS LAST, default for DESC: NULLS FIRST
|
||||
mNullsFirst = !ascending;
|
||||
}
|
||||
|
||||
QgsFeatureRequest::OrderByClause::OrderByClause( const QgsExpression &expression, bool ascending, bool nullsfirst )
|
||||
: mExpression( expression )
|
||||
, mAscending( ascending )
|
||||
, mNullsFirst( nullsfirst )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool QgsFeatureRequest::OrderByClause::ascending() const
|
||||
{
|
||||
return mAscending;
|
||||
@ -335,6 +351,11 @@ QgsExpression QgsFeatureRequest::OrderByClause::expression() const
|
||||
return mExpression;
|
||||
}
|
||||
|
||||
bool QgsFeatureRequest::OrderByClause::prepare( QgsExpressionContext *context )
|
||||
{
|
||||
return mExpression.prepare( context );
|
||||
}
|
||||
|
||||
QgsFeatureRequest::OrderBy::OrderBy( const QList<QgsFeatureRequest::OrderByClause> &other )
|
||||
{
|
||||
Q_FOREACH ( const QgsFeatureRequest::OrderByClause &clause, other )
|
||||
|
@ -138,12 +138,40 @@ class CORE_EXPORT QgsFeatureRequest
|
||||
*/
|
||||
OrderByClause( const QString &expression, bool ascending, bool nullsfirst );
|
||||
|
||||
/**
|
||||
* Creates a new OrderByClause for a QgsFeatureRequest
|
||||
*
|
||||
* \param expression The expression to use for ordering
|
||||
* \param ascending If the order should be ascending (1,2,3) or descending (3,2,1)
|
||||
* If the order is ascending, by default nulls are last
|
||||
* If the order is descending, by default nulls are first
|
||||
*/
|
||||
OrderByClause( const QgsExpression &expression, bool ascending = true );
|
||||
|
||||
/**
|
||||
* Creates a new OrderByClause for a QgsFeatureRequest
|
||||
*
|
||||
* \param expression The expression to use for ordering
|
||||
* \param ascending If the order should be ascending (1,2,3) or descending (3,2,1)
|
||||
* \param nullsfirst If true, NULLS are at the beginning, if false, NULLS are at the end
|
||||
*/
|
||||
OrderByClause( const QgsExpression &expression, bool ascending, bool nullsfirst );
|
||||
|
||||
/**
|
||||
* The expression
|
||||
* \returns the expression
|
||||
*/
|
||||
QgsExpression expression() const;
|
||||
|
||||
/**
|
||||
* Prepare the expression with the given context.
|
||||
*
|
||||
* \see QgsExpression::prepare
|
||||
*
|
||||
* \since QGIS 3.0
|
||||
*/
|
||||
bool prepare( QgsExpressionContext *context );
|
||||
|
||||
/**
|
||||
* Order ascending
|
||||
* \returns If ascending order is requested
|
||||
|
Loading…
x
Reference in New Issue
Block a user