Visitar URL original
Merge pull request #18691 from kamil-tekiela/getValuesForColumn · phpmyadmin/phpmyadmin@5dabae2 · GitHub
Skip to content

Commit 5dabae2

Browse files
Merge pull request #18691 from kamil-tekiela/getValuesForColumn
Use getColumn in getValuesForColumn
2 parents 7f6002c + 08973fb commit 5dabae2

5 files changed

Lines changed: 12 additions & 24 deletions

File tree

‎phpstan-baseline.neon‎

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5076,7 +5076,7 @@ parameters:
50765076
path: src/Controllers/Sql/SetValuesController.php
50775077

50785078
-
5079-
message: "#^Parameter \\#3 \\$column of method PhpMyAdmin\\\\Sql\\:\\:getValuesForColumn\\(\\) expects string, mixed given\\.$#"
5079+
message: "#^Parameter \\#3 \\$columnName of method PhpMyAdmin\\\\Sql\\:\\:getValuesForColumn\\(\\) expects string, mixed given\\.$#"
50805080
count: 1
50815081
path: src/Controllers/Sql/SetValuesController.php
50825082

@@ -17940,11 +17940,6 @@ parameters:
1794017940
count: 1
1794117941
path: src/Sql.php
1794217942

17943-
-
17944-
message: "#^Cannot access offset 'Type' on mixed\\.$#"
17945-
count: 1
17946-
path: src/Sql.php
17947-
1794817943
-
1794917944
message: "#^Cannot access offset 'max_rows' on mixed\\.$#"
1795017945
count: 4
@@ -18045,11 +18040,6 @@ parameters:
1804518040
count: 1
1804618041
path: src/Sql.php
1804718042

18048-
-
18049-
message: "#^Parameter \\#1 \\$definition of static method PhpMyAdmin\\\\Util\\:\\:parseEnumSetValues\\(\\) expects string, mixed given\\.$#"
18050-
count: 1
18051-
path: src/Sql.php
18052-
1805318043
-
1805418044
message: "#^Parameter \\#1 \\$rows of static method PhpMyAdmin\\\\Message\\:\\:getMessageForAffectedRows\\(\\) expects int, int\\|string given\\.$#"
1805518045
count: 2

‎psalm-baseline.xml‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11803,7 +11803,6 @@
1180311803
<code>Config::getInstance()</code>
1180411804
<code>Config::getInstance()</code>
1180511805
<code>Config::getInstance()</code>
11806-
<code>escapeString</code>
1180711806
</DeprecatedMethod>
1180811807
<InvalidArrayOffset>
1180911808
<code><![CDATA[$GLOBALS['reload']]]></code>
@@ -11812,7 +11811,6 @@
1181211811
<code><![CDATA[$GLOBALS['show_as_php']]]></code>
1181311812
</InvalidArrayOffset>
1181411813
<MixedArgument>
11815-
<code><![CDATA[$fieldInfoResult[0]['Type']]]></code>
1181611814
<code><![CDATA[$foreignData['foreign_field']]]></code>
1181711815
<code>$numberOfLine / $maxRows</code>
1181811816
<code>$sortCol</code>
@@ -11830,7 +11828,6 @@
1183011828
<code><![CDATA[$_SESSION['tmpval']['pos']]]></code>
1183111829
<code><![CDATA[$_SESSION['tmpval']['pos']]]></code>
1183211830
<code><![CDATA[$_SESSION['tmpval']['pos']]]></code>
11833-
<code><![CDATA[$fieldInfoResult[0]['Type']]]></code>
1183411831
<code><![CDATA[$statementInfo->statement->where[0]]]></code>
1183511832
</MixedArrayAccess>
1183611833
<MixedArrayAssignment>

‎src/Sql.php‎

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
use PhpMyAdmin\Html\Generator;
1515
use PhpMyAdmin\Html\MySQLDocumentation;
1616
use PhpMyAdmin\Identifiers\DatabaseName;
17-
use PhpMyAdmin\Query\Generator as QueryGenerator;
1817
use PhpMyAdmin\Query\Utilities;
1918
use PhpMyAdmin\SqlParser\Components\Expression;
2019
use PhpMyAdmin\SqlParser\Statements\AlterStatement;
@@ -313,23 +312,21 @@ public function getFullValuesForSetColumn(
313312
/**
314313
* Get all the values for a enum column or set column in a table
315314
*
316-
* @param string $db current database
317-
* @param string $table current table
318-
* @param string $column current column
315+
* @param string $db current database
316+
* @param string $table current table
317+
* @param string $columnName current column
319318
*
320319
* @return mixed[]|null array containing the value list for the column, null on failure
321320
*/
322-
public function getValuesForColumn(string $db, string $table, string $column): array|null
321+
public function getValuesForColumn(string $db, string $table, string $columnName): array|null
323322
{
324-
$fieldInfoQuery = QueryGenerator::getColumnsSql($db, $table, $this->dbi->escapeString($column));
323+
$column = $this->dbi->getColumn($db, $table, $columnName);
325324

326-
$fieldInfoResult = $this->dbi->fetchResult($fieldInfoQuery);
327-
328-
if (! isset($fieldInfoResult[0])) {
325+
if ($column === null) {
329326
return null;
330327
}
331328

332-
return Util::parseEnumSetValues($fieldInfoResult[0]['Type']);
329+
return Util::parseEnumSetValues($column->type);
333330
}
334331

335332
/**

‎test/classes/Controllers/Sql/EnumValuesControllerTest.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ protected function setUp(): void
3939
public function testGetEnumValuesError(): void
4040
{
4141
$this->dummyDbi->addResult('SHOW COLUMNS FROM `cvv`.`enums` LIKE \'set\'', false);
42+
$this->dummyDbi->addResult('SHOW INDEXES FROM `cvv`.`enums`', false);
4243

4344
$GLOBALS['db'] = 'cvv';
4445
$GLOBALS['table'] = 'enums';
@@ -81,6 +82,7 @@ public function testGetEnumValuesSuccess(): void
8182
],
8283
['Field', 'Type', 'Null', 'Key', 'Default', 'Extra'],
8384
);
85+
$this->dummyDbi->addResult('SHOW INDEXES FROM `cvv`.`enums`', []);
8486

8587
$GLOBALS['db'] = 'cvv';
8688
$GLOBALS['table'] = 'enums';

‎test/classes/Controllers/Sql/SetValuesControllerTest.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ protected function setUp(): void
3939
public function testError(): void
4040
{
4141
$this->dummyDbi->addResult('SHOW COLUMNS FROM `cvv`.`enums` LIKE \'set\'', false);
42+
$this->dummyDbi->addResult('SHOW INDEXES FROM `cvv`.`enums`', false);
4243

4344
$request = $this->createStub(ServerRequest::class);
4445
$request->method('getParsedBodyParam')->willReturnMap([
@@ -82,6 +83,7 @@ public function testSuccess(): void
8283
],
8384
['Field', 'Type', 'Null', 'Key', 'Default', 'Extra'],
8485
);
86+
$this->dummyDbi->addResult('SHOW INDEXES FROM `cvv`.`enums`', []);
8587

8688
$request = $this->createStub(ServerRequest::class);
8789
$request->method('getParsedBodyParam')->willReturnMap([

0 commit comments

Comments
 (0)