Skip to content

Commit 07f4c97

Browse files
Merge pull request #18683 from kamil-tekiela/getColumns
Refactor Dbi::getColumn and getColumns
2 parents e9d69aa + ed59318 commit 07f4c97

57 files changed

Lines changed: 582 additions & 780 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

phpstan-baseline.neon

Lines changed: 36 additions & 161 deletions
Large diffs are not rendered by default.

psalm-baseline.xml

Lines changed: 5 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,6 @@
144144
<code><![CDATA[$GLOBALS['table_priv']]]></code>
145145
</MixedAssignment>
146146
</file>
147-
<file src="src/ColumnFull.php">
148-
<PossiblyUnusedProperty>
149-
<code>$collation</code>
150-
<code>$comment</code>
151-
<code>$privileges</code>
152-
</PossiblyUnusedProperty>
153-
</file>
154147
<file src="src/Command/CacheWarmupCommand.php">
155148
<DeprecatedMethod>
156149
<code>Config::getInstance()</code>
@@ -807,10 +800,6 @@
807800
<PossiblyInvalidArgument>
808801
<code>$foreigners</code>
809802
</PossiblyInvalidArgument>
810-
<PossiblyUndefinedArrayOffset>
811-
<code><![CDATA[$column['Comment']]]></code>
812-
<code><![CDATA[$column['Comment']]]></code>
813-
</PossiblyUndefinedArrayOffset>
814803
<PossiblyUnusedReturnValue>
815804
<code>bool</code>
816805
</PossiblyUnusedReturnValue>
@@ -4200,10 +4189,6 @@
42004189
<code><![CDATA[$GLOBALS['showtable']['Index_length']]]></code>
42014190
<code><![CDATA[$GLOBALS['showtable']['Update_time']]]></code>
42024191
<code><![CDATA[$GLOBALS['tbl_collation']]]></code>
4203-
<code><![CDATA[$field['Collation'] ?? '']]></code>
4204-
<code><![CDATA[$field['Extra']]]></code>
4205-
<code><![CDATA[$field['Field']]]></code>
4206-
<code><![CDATA[$field['Type']]]></code>
42074192
<code><![CDATA[($GLOBALS['showtable']['Data_length']
42084193
+ $GLOBALS['showtable']['Index_length'])
42094194
/ $GLOBALS['showtable']['Rows']]]></code>
@@ -4212,25 +4197,11 @@
42124197
<code><![CDATA[$GLOBALS['showtable']['Data_length']]]></code>
42134198
<code><![CDATA[$GLOBALS['showtable']['Index_length']]]></code>
42144199
<code><![CDATA[$GLOBALS['showtable']['Rows']]]></code>
4215-
<code><![CDATA[$field['Collation']]]></code>
4216-
<code><![CDATA[$field['Extra']]]></code>
4217-
<code><![CDATA[$field['Field']]]></code>
4218-
<code><![CDATA[$field['Field']]]></code>
4219-
<code><![CDATA[$field['Field']]]></code>
4220-
<code><![CDATA[$field['Field']]]></code>
4221-
<code><![CDATA[$field['Field']]]></code>
4222-
<code><![CDATA[$field['Field']]]></code>
4223-
<code><![CDATA[$field['Type']]]></code>
42244200
</MixedArrayAccess>
42254201
<MixedArrayAssignment>
42264202
<code><![CDATA[$GLOBALS['showtable']['Data_length']]]></code>
42274203
<code><![CDATA[$GLOBALS['showtable']['Index_length']]]></code>
42284204
</MixedArrayAssignment>
4229-
<MixedArrayOffset>
4230-
<code><![CDATA[$commentsMap[$field['Field']]]]></code>
4231-
<code><![CDATA[$commentsMap[$field['Field']]]]></code>
4232-
<code><![CDATA[$commentsMap[$field['Field']]]]></code>
4233-
</MixedArrayOffset>
42344205
<MixedAssignment>
42354206
<code><![CDATA[$GLOBALS['errorUrl']]]></code>
42364207
<code><![CDATA[$GLOBALS['reread_info']]]></code>
@@ -4245,8 +4216,6 @@
42454216
<code><![CDATA[$GLOBALS['tbl_is_view']]]></code>
42464217
<code><![CDATA[$GLOBALS['tbl_is_view']]]></code>
42474218
<code>$attributes[$rownum]</code>
4248-
<code>$columnsList[]</code>
4249-
<code>$field</code>
42504219
</MixedAssignment>
42514220
<MixedOperand>
42524221
<code><![CDATA[$GLOBALS['showtable']['Data_length']]]></code>
@@ -4751,13 +4720,10 @@
47514720
<code>$centralTable</code>
47524721
<code><![CDATA[$cfgCentralColumns['db']]]></code>
47534722
<code><![CDATA[$cfgCentralColumns['db']]]></code>
4754-
<code>$collation</code>
47554723
<code>$columnDefault[$i]</code>
47564724
<code>$columnExtra[$i]</code>
47574725
<code><![CDATA[$column['col_name']]]></code>
47584726
<code><![CDATA[$column['col_name']]]></code>
4759-
<code><![CDATA[$def['Type']]]></code>
4760-
<code>$default</code>
47614727
<code><![CDATA[$extractedColumnSpec['attribute']]]></code>
47624728
<code><![CDATA[$meta['DefaultValue']]]></code>
47634729
<code><![CDATA[$meta['DefaultValue']]]></code>
@@ -4782,7 +4748,7 @@
47824748
<code>$type</code>
47834749
</MixedArgument>
47844750
<MixedArgumentTypeCoercion>
4785-
<code>[$extra, $attribute]</code>
4751+
<code>$cols</code>
47864752
</MixedArgumentTypeCoercion>
47874753
<MixedArrayAccess>
47884754
<code>$columnDefault[$i]</code>
@@ -4821,7 +4787,6 @@
48214787
<code><![CDATA[$row['col_extra']]]></code>
48224788
</MixedArrayAssignment>
48234789
<MixedAssignment>
4824-
<code>$attribute</code>
48254790
<code>$centralListTable</code>
48264791
<code>$centralListTable</code>
48274792
<code>$centralListTable</code>
@@ -4830,15 +4795,14 @@
48304795
<code>$centralListTable</code>
48314796
<code>$centralTable</code>
48324797
<code>$centralTable</code>
4833-
<code>$collation</code>
4798+
<code>$cols[]</code>
48344799
<code>$column</code>
48354800
<code>$columnDefault</code>
48364801
<code>$columnDefault[$i]</code>
48374802
<code>$columnExtra[$i]</code>
4838-
<code>$default</code>
48394803
<code>$defaultValue</code>
48404804
<code>$defaultValues[$rowNum]</code>
4841-
<code>$extra</code>
4805+
<code>$field</code>
48424806
<code>$length</code>
48434807
<code><![CDATA[$meta['DefaultValue']]]></code>
48444808
<code>$pmadb</code>
@@ -5515,7 +5479,6 @@
55155479
<code>reset($columns)</code>
55165480
</MixedReturnStatement>
55175481
<MixedReturnTypeCoercion>
5518-
<code><![CDATA[$this->attachIndexInfoToColumns($database, $table, $fields)]]></code>
55195482
<code><![CDATA[$this->fetchResult($sql, null, 'Field', $connectionType)]]></code>
55205483
<code><![CDATA[$this->fetchResult($sql, null, null, $connectionType)]]></code>
55215484
<code><![CDATA[array<int, array{
@@ -5536,29 +5499,6 @@
55365499
* Visible?: string,
55375500
* Expression?: string|null
55385501
* }>]]></code>
5539-
<code>array_shift($columns)</code>
5540-
<code><![CDATA[array{
5541-
* Field: string,
5542-
* Type: string,
5543-
* Collation?: string|null,
5544-
* Null:'YES'|'NO',
5545-
* Key: string,
5546-
* Default: string|null,
5547-
* Extra: string,
5548-
* Privileges?: string,
5549-
* Comment?: string
5550-
* }[]]]></code>
5551-
<code><![CDATA[array{
5552-
* Field: string,
5553-
* Type: string,
5554-
* Collation?: string|null,
5555-
* Null:'YES'|'NO',
5556-
* Key: string,
5557-
* Default: string|null,
5558-
* Extra: string,
5559-
* Privileges?: string,
5560-
* Comment?: string
5561-
* }|null]]></code>
55625502
<code>string[]</code>
55635503
</MixedReturnTypeCoercion>
55645504
<NullableReturnStatement>
@@ -7309,11 +7249,6 @@
73097249
<PossiblyInvalidOperand>
73107250
<code><![CDATA[$_POST['where_clause'][0]]]></code>
73117251
</PossiblyInvalidOperand>
7312-
<PossiblyUndefinedArrayOffset>
7313-
<code><![CDATA[$column['Collation']]]></code>
7314-
<code><![CDATA[$column['Comment']]]></code>
7315-
<code><![CDATA[$column['Privileges']]]></code>
7316-
</PossiblyUndefinedArrayOffset>
73177252
<PropertyTypeCoercion>
73187253
<code><![CDATA[$config->settings]]></code>
73197254
</PropertyTypeCoercion>
@@ -7847,13 +7782,13 @@
78477782
<code>$dependents</code>
78487783
<code><![CDATA[$dropCols['nonpk']]]></code>
78497784
<code><![CDATA[$dropCols['pk']]]></code>
7785+
<code><![CDATA[$extractedColumnSpec['type']]]></code>
78507786
<code>$key</code>
78517787
<code>$table</code>
78527788
<code>$table</code>
78537789
<code><![CDATA[$tablesName->$key]]></code>
78547790
<code><![CDATA[$tablesName->$key]]></code>
78557791
<code>$totalRows</code>
7856-
<code>$type</code>
78577792
</MixedArgument>
78587793
<MixedArgumentTypeCoercion>
78597794
<code>$dependents</code>
@@ -7892,15 +7827,10 @@
78927827
<code>$table</code>
78937828
<code>$tablesList</code>
78947829
<code>$totalRows</code>
7895-
<code>$type</code>
78967830
</MixedAssignment>
78977831
<MixedOperand>
78987832
<code>$element</code>
78997833
</MixedOperand>
7900-
<PossiblyNullArgument>
7901-
<code><![CDATA[$def['Type']]]></code>
7902-
<code><![CDATA[$def['Type']]]></code>
7903-
</PossiblyNullArgument>
79047834
<RedundantCast>
79057835
<code>(string) $dependon</code>
79067836
</RedundantCast>
@@ -8533,12 +8463,9 @@
85338463
<code><![CDATA[$GLOBALS['what']]]></code>
85348464
</InvalidArrayOffset>
85358465
<MixedArgument>
8536-
<code>$colAlias</code>
85378466
<code>$colAs</code>
85388467
<code>$colAs</code>
85398468
<code>$colAs</code>
8540-
<code><![CDATA[$column['Default'] ?? '']]></code>
8541-
<code><![CDATA[$column['Type']]]></code>
85428469
<code>$comments[$fieldName]</code>
85438470
<code><![CDATA[$extractedColumnSpec['print_type']]]></code>
85448471
<code><![CDATA[$mimeMap[$fieldName]['mimetype']]]></code>
@@ -8550,7 +8477,6 @@
85508477
</MixedArrayAccess>
85518478
<MixedAssignment>
85528479
<code><![CDATA[$GLOBALS['what']]]></code>
8553-
<code>$colAlias</code>
85548480
<code>$colAs</code>
85558481
<code>$colAs</code>
85568482
<code>$colAs</code>
@@ -8687,7 +8613,6 @@
86878613
<code>$doRelation</code>
86888614
</ParamNameMismatch>
86898615
<PossiblyNullOperand>
8690-
<code><![CDATA[$columns[$i]['Default']]]></code>
86918616
<code>$row[$i]</code>
86928617
<code>$tableAlias</code>
86938618
<code>$tableAlias</code>
@@ -8737,9 +8662,6 @@
87378662
<code>$colAs</code>
87388663
<code>$colAs</code>
87398664
<code>$colAs</code>
8740-
<code>$colAs</code>
8741-
<code><![CDATA[$column['Default']]]></code>
8742-
<code><![CDATA[$column['Type']]]></code>
87438665
<code>$comments[$fieldName]</code>
87448666
<code><![CDATA[$extractedColumnSpec['print_type']]]></code>
87458667
<code><![CDATA[$mimeMap[$fieldName]['mimetype']]]></code>
@@ -8757,7 +8679,6 @@
87578679
<code>$colAs</code>
87588680
<code>$colAs</code>
87598681
<code>$colAs</code>
8760-
<code>$colAs</code>
87618682
<code>$rfield</code>
87628683
<code>$rfield</code>
87638684
<code>$rtable</code>
@@ -8783,7 +8704,6 @@
87838704
<code><![CDATA[$GLOBALS['plugin_param']['single_table']]]></code>
87848705
</PossiblyInvalidArrayOffset>
87858706
<PossiblyNullArgument>
8786-
<code>$colAs</code>
87878707
<code>$row[$j]</code>
87888708
<code>$tableAlias</code>
87898709
<code>$tableAlias</code>
@@ -9036,12 +8956,9 @@
90368956
<code><![CDATA[$GLOBALS['what']]]></code>
90378957
</InvalidArrayOffset>
90388958
<MixedArgument>
9039-
<code>$colAlias</code>
90408959
<code>$colAs</code>
90418960
<code>$colAs</code>
90428961
<code>$colAs</code>
9043-
<code><![CDATA[$column['Default'] ?? '']]></code>
9044-
<code><![CDATA[$column['Type']]]></code>
90458962
<code>$comments[$fieldName]</code>
90468963
<code><![CDATA[$mimeMap[$fieldName]['mimetype']]]></code>
90478964
<code>$type</code>
@@ -9054,7 +8971,6 @@
90548971
</MixedArrayAccess>
90558972
<MixedAssignment>
90568973
<code><![CDATA[$GLOBALS['what']]]></code>
9057-
<code>$colAlias</code>
90588974
<code>$colAs</code>
90598975
<code>$colAs</code>
90608976
<code>$colAs</code>
@@ -9074,9 +8990,6 @@
90748990
<code>$value</code>
90758991
<code><![CDATA[str_replace('_', '/', $mimeMap[$fieldName]['mimetype'])]]></code>
90768992
</PossiblyInvalidArgument>
9077-
<PossiblyNullArgument>
9078-
<code>$colAs</code>
9079-
</PossiblyNullArgument>
90808993
<PossiblyNullOperand>
90818994
<code>$tableAlias</code>
90828995
<code>$tableAlias</code>
@@ -9513,15 +9426,11 @@
95139426
<code><![CDATA[$GLOBALS['csv_new_line']]]></code>
95149427
<code>$colName</code>
95159428
<code>$columnNames</code>
9516-
<code><![CDATA[$field['Field']]]></code>
95179429
</MixedArgument>
95189430
<MixedArgumentTypeCoercion>
95199431
<code>$result</code>
95209432
<code>$result</code>
95219433
</MixedArgumentTypeCoercion>
9522-
<MixedArrayAccess>
9523-
<code><![CDATA[$field['Field']]]></code>
9524-
</MixedArrayAccess>
95259434
<MixedArrayAssignment>
95269435
<code>$columnNames[$key]</code>
95279436
<code>$columnNames[]</code>
@@ -9535,20 +9444,12 @@
95359444
<code><![CDATA[$GLOBALS['timeout_passed']]]></code>
95369445
<code>$colName</code>
95379446
<code>$columnNames</code>
9538-
<code>$field</code>
95399447
<code>$fields[]</code>
95409448
<code>$key</code>
9541-
<code>$sql</code>
95429449
</MixedAssignment>
95439450
<MixedInferredReturnType>
95449451
<code>mixed[]</code>
95459452
</MixedInferredReturnType>
9546-
<MixedOperand>
9547-
<code>$sql</code>
9548-
<code>$sql</code>
9549-
<code>$sql</code>
9550-
<code>$sql</code>
9551-
</MixedOperand>
95529453
<MixedReturnStatement>
95539454
<code>$columnNames</code>
95549455
<code>$columnNames</code>
@@ -12400,11 +12301,9 @@
1240012301
<MixedArgument>
1240112302
<code><![CDATA[$GLOBALS['mime_map'][$columnMeta['Field']] ?? []]]></code>
1240212303
<code><![CDATA[$availableMime[$mimeType . '_file'][$mimekey]]]></code>
12403-
<code>$columnMeta</code>
1240412304
<code><![CDATA[$columnMeta['Default']]]></code>
1240512305
<code><![CDATA[$columnMeta['DefaultValue']]]></code>
1240612306
<code><![CDATA[$columnMeta['Field']]]></code>
12407-
<code><![CDATA[$columnMeta['Field']]]></code>
1240812307
<code><![CDATA[$columnMeta['Type']]]></code>
1240912308
<code><![CDATA[$extractedColumnSpec['attribute'] ?? '']]></code>
1241012309
<code><![CDATA[$formParams['db']]]></code>
@@ -12415,26 +12314,18 @@
1241512314
<MixedArrayAccess>
1241612315
<code><![CDATA[$GLOBALS['mime_map'][$columnMeta['Field']]]]></code>
1241712316
<code><![CDATA[$availableMime[$mimeType . '_file'][$mimekey]]]></code>
12418-
<code><![CDATA[$columnMeta['Extra']]]></code>
12419-
<code><![CDATA[$columnMeta['Field']]]></code>
12420-
<code><![CDATA[$columnMeta['Field']]]></code>
12421-
<code><![CDATA[$columnMeta['column_status']['isEditable']]]></code>
12422-
<code><![CDATA[$columnMeta['column_status']['isEditable']]]></code>
1242312317
</MixedArrayAccess>
1242412318
<MixedArrayAssignment>
1242512319
<code><![CDATA[$GLOBALS['mime_map'][$columnMeta['Field']]]]></code>
1242612320
<code><![CDATA[$availableMime[$mimeType . '_file_quoted'][$mimekey]]]></code>
12427-
<code><![CDATA[$columnMeta['Expression']]]></code>
1242812321
</MixedArrayAssignment>
1242912322
<MixedArrayOffset>
1243012323
<code><![CDATA[$GLOBALS['mime_map'][$columnMeta['Field']]]]></code>
1243112324
<code><![CDATA[$GLOBALS['mime_map'][$columnMeta['Field']]]]></code>
1243212325
<code><![CDATA[$commentsMap[$columnMeta['Field']]]]></code>
12433-
<code><![CDATA[$expressions[$columnMeta['Field']]]]></code>
1243412326
</MixedArrayOffset>
1243512327
<MixedAssignment>
1243612328
<code><![CDATA[$GLOBALS['mime_map']]]></code>
12437-
<code>$columnMeta</code>
1243812329
<code><![CDATA[$columnMeta['Default']]]></code>
1243912330
<code><![CDATA[$columnMeta['Default']]]></code>
1244012331
<code><![CDATA[$columnMeta['Expression']]]></code>
@@ -12461,6 +12352,7 @@
1246112352
<code><![CDATA[$formParams['table']]]></code>
1246212353
</PossiblyInvalidCast>
1246312354
<PossiblyUndefinedArrayOffset>
12355+
<code><![CDATA[$columnMeta['Default']]]></code>
1246412356
<code><![CDATA[$columnMeta['DefaultValue']]]></code>
1246512357
</PossiblyUndefinedArrayOffset>
1246612358
</file>

src/Column.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpMyAdmin;
6+
7+
final class Column
8+
{
9+
public function __construct(
10+
public readonly string $field,
11+
public readonly string $type,
12+
public readonly bool $isNull,
13+
public readonly string $key,
14+
public readonly string|null $default,
15+
public readonly string $extra,
16+
) {
17+
}
18+
}

0 commit comments

Comments
 (0)