From 10e2a9dc52be1b78f19b22b4b20d622ae5dd653c Mon Sep 17 00:00:00 2001 From: Rene Krenn Date: Thu, 5 Sep 2024 00:46:47 +0200 Subject: [PATCH] MT#59727 mysql: support LIMIT in sub SELECT (cherry picked from commit cba4695e5744691cf1aff30f2d39eed09e1b21b9) (cherry picked from commit 4f35b67162d4560d1102575374b4f0c533f62e36) Change-Id: Idccceb4c6ded89c4498b0e693932177fd0fa427c --- lib/NGCP/BulkProcessor/SqlConnector.pm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/NGCP/BulkProcessor/SqlConnector.pm b/lib/NGCP/BulkProcessor/SqlConnector.pm index 36f7faa..807d2bf 100644 --- a/lib/NGCP/BulkProcessor/SqlConnector.pm +++ b/lib/NGCP/BulkProcessor/SqlConnector.pm @@ -188,12 +188,17 @@ sub vacuum { } sub paginate_sort_query { + my $self = shift; my $statement = shift; my $offset = shift; my $limit = shift; my $sortingconfigurations = shift; + if ($statement =~ /limit\s+\d+(,\s*\d+)?\s*$/i) { + $statement = "SELECT * FROM ($statement) AS _ps"; + } + my $orderby = $self->_orderby_columns($sortingconfigurations); if (length($orderby) > 0) { $statement .= ' ORDER BY ' . $orderby; @@ -937,7 +942,7 @@ sub rowblock_transactional { sub db_get_rowblock { my $self = shift; - my $max_rows = shift; + my $max_rows = shift; #https://www.perlmonks.org/?node_id=273952 if ($enablemultithreading) {