mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
feat(Table Chart): Row limit Increase , Backend Sorting , Backend Search , Excel/CSV Improvements (#33357)
Co-authored-by: Amaan Nawab <nelsondrew07@gmail.com>
This commit is contained in:
@@ -57,6 +57,7 @@ class QueryObjectFactory: # pylint: disable=too-few-public-methods
|
||||
row_limit: int | None = None,
|
||||
time_range: str | None = None,
|
||||
time_shift: str | None = None,
|
||||
server_pagination: bool | None = None,
|
||||
**kwargs: Any,
|
||||
) -> QueryObject:
|
||||
datasource_model_instance = None
|
||||
@@ -64,7 +65,12 @@ class QueryObjectFactory: # pylint: disable=too-few-public-methods
|
||||
datasource_model_instance = self._convert_to_model(datasource)
|
||||
processed_extras = self._process_extras(extras)
|
||||
result_type = kwargs.setdefault("result_type", parent_result_type)
|
||||
row_limit = self._process_row_limit(row_limit, result_type)
|
||||
|
||||
# Process row limit taking server pagination into account
|
||||
row_limit = self._process_row_limit(
|
||||
row_limit, result_type, server_pagination=server_pagination
|
||||
)
|
||||
|
||||
processed_time_range = self._process_time_range(
|
||||
time_range, kwargs.get("filters"), kwargs.get("columns")
|
||||
)
|
||||
@@ -96,14 +102,27 @@ class QueryObjectFactory: # pylint: disable=too-few-public-methods
|
||||
return extras
|
||||
|
||||
def _process_row_limit(
|
||||
self, row_limit: int | None, result_type: ChartDataResultType
|
||||
self,
|
||||
row_limit: int | None,
|
||||
result_type: ChartDataResultType,
|
||||
server_pagination: bool | None = None,
|
||||
) -> int:
|
||||
"""Process row limit taking into account server pagination.
|
||||
|
||||
:param row_limit: The requested row limit
|
||||
:param result_type: The type of result being processed
|
||||
:param server_pagination: Whether server-side pagination is enabled
|
||||
:return: The processed row limit
|
||||
"""
|
||||
default_row_limit = (
|
||||
self._config["SAMPLES_ROW_LIMIT"]
|
||||
if result_type == ChartDataResultType.SAMPLES
|
||||
else self._config["ROW_LIMIT"]
|
||||
)
|
||||
return apply_max_row_limit(row_limit or default_row_limit)
|
||||
return apply_max_row_limit(
|
||||
row_limit or default_row_limit,
|
||||
server_pagination=server_pagination,
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def _process_time_range(
|
||||
|
||||
Reference in New Issue
Block a user