@@ -680,7 +680,6 @@ private function getTableNavigation(
680680 * @param mixed[] $sortDirection sort direction
681681 * @param bool $isLimitedDisplay with limited operations
682682 * or not
683- * @param string $unsortedSqlQuery query without the sort part
684683 *
685684 * @return string html content
686685 */
@@ -691,7 +690,6 @@ private function getTableHeadersForColumns(
691690 array $ sortExpressionNoDirection ,
692691 array $ sortDirection ,
693692 bool $ isLimitedDisplay ,
694- string $ unsortedSqlQuery ,
695693 ): string {
696694 // required to generate sort links that will remember whether the
697695 // "Show all" button has been clicked
@@ -728,7 +726,7 @@ private function getTableHeadersForColumns(
728726 $ this ->fieldsMeta [$ i ],
729727 $ sortExpression ,
730728 $ sortExpressionNoDirection ,
731- $ unsortedSqlQuery ,
729+ $ statementInfo ,
732730 $ sessionMaxRows ,
733731 $ comments ,
734732 $ sortDirection ,
@@ -776,7 +774,6 @@ private function getTableHeadersForColumns(
776774 *
777775 * @see getTable()
778776 *
779- * @param string $unsortedSqlQuery the unsorted sql query
780777 * @param mixed[] $sortExpression sort expression
781778 * @param array<int, string> $sortExpressionNoDirection sort expression without direction
782779 * @param mixed[] $sortDirection sort direction
@@ -794,7 +791,6 @@ private function getTableHeadersForColumns(
794791 private function getTableHeaders (
795792 DisplayParts $ displayParts ,
796793 StatementInfo $ statementInfo ,
797- string $ unsortedSqlQuery ,
798794 array $ sortExpression = [],
799795 array $ sortExpressionNoDirection = [],
800796 array $ sortDirection = [],
@@ -838,7 +834,6 @@ private function getTableHeaders(
838834 $ sortExpressionNoDirection ,
839835 $ sortDirection ,
840836 $ isLimitedDisplay ,
841- $ unsortedSqlQuery ,
842837 );
843838
844839 // Display column at rightside - checkboxes or empty column
@@ -1134,7 +1129,7 @@ private function getFullOrPartialTextButtonOrLink(): string
11341129 . $ themeManager ->theme ->getImgPath ($ tmpImageFile )
11351130 . '" alt=" ' . $ tmpTxt . '" title=" ' . $ tmpTxt . '"> ' ;
11361131
1137- return Generator::linkOrButton (Url::getFromRoute ('/sql ' ) , $ urlParamsFullText , $ tmpImage );
1132+ return Generator::linkOrButton (Url::getFromRoute ('/sql ' , $ urlParamsFullText, false ), null , $ tmpImage );
11381133 }
11391134
11401135 /**
@@ -1165,7 +1160,6 @@ private function getCommentForRow(array $commentsMap, FieldMetadata $fieldsMeta)
11651160 * @param FieldMetadata $fieldsMeta set of field properties
11661161 * @param mixed[] $sortExpression sort expression
11671162 * @param array<int, string> $sortExpressionNoDirection sort expression without direction
1168- * @param string $unsortedSqlQuery the unsorted sql query
11691163 * @param int $sessionMaxRows maximum rows resulted by sql
11701164 * @param string $comments comment for row
11711165 * @param mixed[] $sortDirection sort direction
@@ -1187,7 +1181,7 @@ private function getOrderLinkAndSortedHeaderHtml(
11871181 FieldMetadata $ fieldsMeta ,
11881182 array $ sortExpression ,
11891183 array $ sortExpressionNoDirection ,
1190- string $ unsortedSqlQuery ,
1184+ StatementInfo $ statementInfo ,
11911185 int $ sessionMaxRows ,
11921186 string $ comments ,
11931187 array $ sortDirection ,
@@ -1216,19 +1210,16 @@ private function getOrderLinkAndSortedHeaderHtml(
12161210 $ fieldsMeta ,
12171211 );
12181212
1219- if (
1220- preg_match (
1221- '@(.*)([[:space:]](LIMIT (.*)|PROCEDURE (.*)|FOR UPDATE|LOCK IN SHARE MODE))@is ' ,
1222- $ unsortedSqlQuery ,
1223- $ regs3 ,
1224- )
1225- ) {
1226- $ singleSortedSqlQuery = $ regs3 [1 ] . $ singleSortOrder . $ regs3 [2 ];
1227- $ multiSortedSqlQuery = $ regs3 [1 ] . $ multiSortOrder . $ regs3 [2 ];
1228- } else {
1229- $ singleSortedSqlQuery = $ unsortedSqlQuery . $ singleSortOrder ;
1230- $ multiSortedSqlQuery = $ unsortedSqlQuery . $ multiSortOrder ;
1231- }
1213+ $ singleSortedSqlQuery = Query::replaceClause (
1214+ $ statementInfo ->statement ,
1215+ $ statementInfo ->parser ->list ,
1216+ $ singleSortOrder ,
1217+ );
1218+ $ multiSortedSqlQuery = Query::replaceClause (
1219+ $ statementInfo ->statement ,
1220+ $ statementInfo ->parser ->list ,
1221+ $ multiSortOrder ,
1222+ );
12321223
12331224 $ singleUrlParams = [
12341225 'db ' => $ this ->db ,
@@ -1507,16 +1498,15 @@ private function getSortOrderLink(
15071498 array $ orderUrlParams ,
15081499 array $ multiOrderUrlParams ,
15091500 ): string {
1510- $ urlPath = Url::getFromRoute ('/sql ' );
1501+ $ urlPath = Url::getFromRoute ('/sql ' , $ multiOrderUrlParams , false );
15111502 $ innerLinkContent = htmlspecialchars ($ fieldsMeta ->name ) . $ orderImg
15121503 . '<input type="hidden" value=" '
15131504 . $ urlPath
1514- . Url::getCommon ($ multiOrderUrlParams , str_contains ($ urlPath , '? ' ) ? '& ' : '? ' , false )
15151505 . '"> ' ;
15161506
15171507 return Generator::linkOrButton (
1518- Url::getFromRoute ('/sql ' ),
1519- $ orderUrlParams ,
1508+ Url::getFromRoute ('/sql ' , $ orderUrlParams , false ),
1509+ null ,
15201510 $ innerLinkContent ,
15211511 ['class ' => 'sortlink ' ],
15221512 );
@@ -3161,7 +3151,6 @@ public function getTable(
31613151 $ this ->table = $ this ->fieldsMeta [0 ]->table ;
31623152 }
31633153
3164- $ unsortedSqlQuery = '' ;
31653154 $ sortByKeyData = [];
31663155 // can the result be sorted?
31673156 if ($ displayParts ->hasSortLink && $ statementInfo ->statement !== null ) {
@@ -3211,7 +3200,6 @@ public function getTable(
32113200 $ headers = $ this ->getTableHeaders (
32123201 $ displayParts ,
32133202 $ statementInfo ,
3214- $ unsortedSqlQuery ,
32153203 $ sortExpression ,
32163204 $ sortExpressionNoDirection ,
32173205 $ sortDirection ,
@@ -3909,8 +3897,8 @@ private function getRowData(
39093897 }
39103898
39113899 $ value .= Generator::linkOrButton (
3912- Url::getFromRoute ('/sql ' ),
3913- $ urlParams ,
3900+ Url::getFromRoute ('/sql ' , $ urlParams , false ),
3901+ null ,
39143902 $ displayedData ,
39153903 $ tagParams ,
39163904 );
0 commit comments