Split up initAlias()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
This commit is contained in:
Kamil Tekiela 2025-09-14 17:16:54 +01:00 committed by Maurício Meneghini Fauth
parent d74053eb45
commit 976200eed5
No known key found for this signature in database
GPG Key ID: 6A16FD38AFC89CC8
19 changed files with 104 additions and 198 deletions

View File

@ -9759,12 +9759,6 @@ parameters:
count: 3
path: src/Plugins/Export/ExportOds.php
-
message: '#^Binary operation "\." between mixed and '' \('' results in an error\.$#'
identifier: binaryOp.invalid
count: 1
path: src/Plugins/Export/ExportOdt.php
-
message: '#^Binary operation "\." between non\-falsy\-string and mixed results in an error\.$#'
identifier: binaryOp.invalid
@ -9780,12 +9774,6 @@ parameters:
count: 5
path: src/Plugins/Export/ExportOdt.php
-
message: '#^Cannot access offset ''alias'' on mixed\.$#'
identifier: offsetAccess.nonOffsetAccessible
count: 1
path: src/Plugins/Export/ExportOdt.php
-
message: '#^Cannot access offset ''columns'' on mixed\.$#'
identifier: offsetAccess.nonOffsetAccessible
@ -9795,13 +9783,13 @@ parameters:
-
message: '#^Cannot access offset ''tables'' on mixed\.$#'
identifier: offsetAccess.nonOffsetAccessible
count: 5
count: 4
path: src/Plugins/Export/ExportOdt.php
-
message: '#^Cannot access offset mixed on mixed\.$#'
identifier: offsetAccess.nonOffsetAccessible
count: 3
count: 2
path: src/Plugins/Export/ExportOdt.php
-
@ -9813,7 +9801,7 @@ parameters:
-
message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#'
identifier: empty.notAllowed
count: 5
count: 4
path: src/Plugins/Export/ExportOdt.php
-
@ -9840,6 +9828,12 @@ parameters:
count: 2
path: src/Plugins/Export/ExportOdt.php
-
message: '#^Parameter \#3 \$table of method PhpMyAdmin\\Plugins\\ExportPlugin\:\:getTableAlias\(\) expects string, mixed given\.$#'
identifier: argument.type
count: 1
path: src/Plugins/Export/ExportOdt.php
-
message: '''
#^Call to deprecated method getInstance\(\) of class PhpMyAdmin\\Dbal\\DatabaseInterface\:
@ -9933,7 +9927,7 @@ parameters:
-
message: '#^Cannot access offset ''alias'' on mixed\.$#'
identifier: offsetAccess.nonOffsetAccessible
count: 4
count: 2
path: src/Plugins/Export/ExportSql.php
-
@ -9945,7 +9939,7 @@ parameters:
-
message: '#^Cannot access offset ''tables'' on mixed\.$#'
identifier: offsetAccess.nonOffsetAccessible
count: 11
count: 10
path: src/Plugins/Export/ExportSql.php
-
@ -9963,7 +9957,7 @@ parameters:
-
message: '#^Cannot access offset string\|null on mixed\.$#'
identifier: offsetAccess.nonOffsetAccessible
count: 7
count: 6
path: src/Plugins/Export/ExportSql.php
-
@ -10011,7 +10005,7 @@ parameters:
-
message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#'
identifier: empty.notAllowed
count: 24
count: 21
path: src/Plugins/Export/ExportSql.php
-
@ -10092,6 +10086,12 @@ parameters:
count: 3
path: src/Plugins/Export/ExportSql.php
-
message: '#^Parameter \#3 \$table of method PhpMyAdmin\\Plugins\\ExportPlugin\:\:getTableAlias\(\) expects string, string\|null given\.$#'
identifier: argument.type
count: 1
path: src/Plugins/Export/ExportSql.php
-
message: '#^Property PhpMyAdmin\\SqlParser\\Components\\CreateDefinition\:\:\$name \(string\|null\) does not accept mixed\.$#'
identifier: assign.propertyType
@ -10605,12 +10605,6 @@ parameters:
count: 2
path: src/Plugins/ExportPlugin.php
-
message: '#^Binary operation "\." between mixed and '' \('' results in an error\.$#'
identifier: binaryOp.invalid
count: 1
path: src/Plugins/ExportPlugin.php
-
message: '#^Binary operation "\." between non\-falsy\-string and mixed results in an error\.$#'
identifier: binaryOp.invalid
@ -10620,7 +10614,7 @@ parameters:
-
message: '#^Cannot access offset ''alias'' on mixed\.$#'
identifier: offsetAccess.nonOffsetAccessible
count: 5
count: 4
path: src/Plugins/ExportPlugin.php
-
@ -10632,13 +10626,13 @@ parameters:
-
message: '#^Cannot access offset ''tables'' on mixed\.$#'
identifier: offsetAccess.nonOffsetAccessible
count: 4
count: 3
path: src/Plugins/ExportPlugin.php
-
message: '#^Cannot access offset mixed on mixed\.$#'
identifier: offsetAccess.nonOffsetAccessible
count: 3
count: 2
path: src/Plugins/ExportPlugin.php
-
@ -10656,7 +10650,7 @@ parameters:
-
message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#'
identifier: empty.notAllowed
count: 9
count: 8
path: src/Plugins/ExportPlugin.php
-
@ -10671,6 +10665,18 @@ parameters:
count: 3
path: src/Plugins/ExportPlugin.php
-
message: '#^Method PhpMyAdmin\\Plugins\\ExportPlugin\:\:getDbAlias\(\) should return string but returns mixed\.$#'
identifier: return.type
count: 1
path: src/Plugins/ExportPlugin.php
-
message: '#^Method PhpMyAdmin\\Plugins\\ExportPlugin\:\:getTableAlias\(\) should return string but returns mixed\.$#'
identifier: return.type
count: 1
path: src/Plugins/ExportPlugin.php
-
message: '#^Only booleans are allowed in an if condition, array\|false given\.$#'
identifier: if.condNotBoolean
@ -10678,14 +10684,8 @@ parameters:
path: src/Plugins/ExportPlugin.php
-
message: '#^Parameter &\$db by\-ref type of method PhpMyAdmin\\Plugins\\ExportPlugin\:\:initAlias\(\) expects string, mixed given\.$#'
identifier: parameterByRef.type
count: 1
path: src/Plugins/ExportPlugin.php
-
message: '#^Parameter &\$table by\-ref type of method PhpMyAdmin\\Plugins\\ExportPlugin\:\:initAlias\(\) expects string, mixed given\.$#'
identifier: parameterByRef.type
message: '#^Parameter \#3 \$table of method PhpMyAdmin\\Plugins\\ExportPlugin\:\:getTableAlias\(\) expects string, mixed given\.$#'
identifier: argument.type
count: 1
path: src/Plugins/ExportPlugin.php

View File

@ -6201,12 +6201,12 @@
<code><![CDATA[$colAs]]></code>
<code><![CDATA[$comments[$fieldName]]]></code>
<code><![CDATA[$mimeMap[$fieldName]['mimetype']]]></code>
<code><![CDATA[$rtable]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$mimeMap[$fieldName]['mimetype']]]></code>
</MixedArrayAccess>
<MixedArrayOffset>
<code><![CDATA[$aliases[$db]['tables'][$rtable]]]></code>
<code><![CDATA[$aliases[$db]['tables'][$rtable]]]></code>
<code><![CDATA[$aliases[$db]['tables'][$rtable]['columns'][$rfield]]]></code>
</MixedArrayOffset>
@ -6217,11 +6217,9 @@
<code><![CDATA[$rfield]]></code>
<code><![CDATA[$rfield]]></code>
<code><![CDATA[$rtable]]></code>
<code><![CDATA[$rtable]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$rfield]]></code>
<code><![CDATA[$rtable]]></code>
</MixedOperand>
<PossiblyInvalidArgument>
<code><![CDATA[str_replace('_', '/', $mimeMap[$fieldName]['mimetype'])]]></code>
@ -6314,12 +6312,8 @@
<code><![CDATA[$columnAliases]]></code>
<code><![CDATA[$field->name]]></code>
<code><![CDATA[$field->references->table->table]]></code>
<code><![CDATA[$newDatabase]]></code>
<code><![CDATA[$newTable]]></code>
<code><![CDATA[$relFieldAlias]]></code>
<code><![CDATA[$relFieldAlias]]></code>
<code><![CDATA[$statement->name->database]]></code>
<code><![CDATA[$statement->name->table]]></code>
<code><![CDATA[$statement->table->table]]></code>
</MixedAssignment>
<MixedPropertyTypeCoercion>
@ -6333,10 +6327,8 @@
<code><![CDATA[$createQuery]]></code>
<code><![CDATA[$definition]]></code>
<code><![CDATA[$eventName]]></code>
<code><![CDATA[$oldTable]]></code>
</PossiblyNullArgument>
<PossiblyNullArrayOffset>
<code><![CDATA[$aliases[$oldDatabase]['tables']]]></code>
</PossiblyNullArrayOffset>
<PossiblyNullOperand>
<code><![CDATA[$eventDef]]></code>
</PossiblyNullOperand>
@ -6372,7 +6364,6 @@
<code><![CDATA[empty($config->selectedServer['port'])]]></code>
<code><![CDATA[empty($statement->fields)]]></code>
<code><![CDATA[empty($statement->name->database)]]></code>
<code><![CDATA[empty($statement->name->database)]]></code>
<code><![CDATA[empty($statement->table->database)]]></code>
<code><![CDATA[empty($tmpres['Check_time'])]]></code>
<code><![CDATA[empty($tmpres['Create_time'])]]></code>
@ -6723,6 +6714,9 @@
</PropertyNotSetInConstructor>
</file>
<file src="src/Plugins/ExportPlugin.php">
<MixedArgument>
<code><![CDATA[$ftable]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$db['alias']]]></code>
<code><![CDATA[$db['tables']]]></code>
@ -6735,7 +6729,6 @@
<code><![CDATA[$db['tables']]]></code>
</MixedArrayAssignment>
<MixedArrayOffset>
<code><![CDATA[$aliases[$db]['tables'][$ftable]]]></code>
<code><![CDATA[$aliases[$db]['tables'][$ftable]]]></code>
<code><![CDATA[$aliases[$db]['tables'][$ftable]['columns'][$ffield]]]></code>
</MixedArrayOffset>
@ -6743,20 +6736,20 @@
<code><![CDATA[$col]]></code>
<code><![CDATA[$colKey]]></code>
<code><![CDATA[$db]]></code>
<code><![CDATA[$db]]></code>
<code><![CDATA[$ffield]]></code>
<code><![CDATA[$ffield]]></code>
<code><![CDATA[$ftable]]></code>
<code><![CDATA[$ftable]]></code>
<code><![CDATA[$table]]></code>
<code><![CDATA[$table]]></code>
<code><![CDATA[$tableKey]]></code>
</MixedAssignment>
<MixedOperand>
<code><![CDATA[$ffield]]></code>
<code><![CDATA[$ftable]]></code>
</MixedOperand>
<MixedReturnStatement>
<code><![CDATA[! empty($aliases[$db]['alias']) ? $aliases[$db]['alias'] : $db]]></code>
<code><![CDATA[! empty($aliases[$db]['alias']) ? $aliases[$db]['alias'] : $db]]></code>
<code><![CDATA[! empty($aliases[$db]['tables'][$table]['alias']) ? $aliases[$db]['tables'][$table]['alias'] : $table]]></code>
<code><![CDATA[! empty($aliases[$db]['tables'][$table]['alias']) ? $aliases[$db]['tables'][$table]['alias'] : $table]]></code>
<code><![CDATA[$col]]></code>
<code><![CDATA[$db['alias']]]></code>
<code><![CDATA[$table['alias']]]></code>

View File

@ -186,9 +186,8 @@ class ExportCodegen extends ExportPlugin
*/
private function handleNHibernateCSBody(string $db, string $table, array $aliases = []): string
{
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$dbAlias = $this->getDbAlias($aliases, $db);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$result = DatabaseInterface::getInstance()->query(
sprintf(
@ -291,9 +290,8 @@ class ExportCodegen extends ExportPlugin
string $table,
array $aliases = [],
): string {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$dbAlias = $this->getDbAlias($aliases, $db);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$lines = [];
$lines[] = '<?xml version="1.0" encoding="utf-8" ?>';
$lines[] = '<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" '

View File

@ -181,10 +181,6 @@ class ExportCsv extends ExportPlugin
string $sqlQuery,
array $aliases = [],
): bool {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$dbi = DatabaseInterface::getInstance();
/**
* Gets the data from the database

View File

@ -179,10 +179,6 @@ class ExportExcel extends ExportPlugin
string $sqlQuery,
array $aliases = [],
): bool {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$dbi = DatabaseInterface::getInstance();
/**
* Gets the data from the database

View File

@ -182,9 +182,7 @@ class ExportHtmlword extends ExportPlugin
string $sqlQuery,
array $aliases = [],
): bool {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
if (
! $this->export->outputHandler(
@ -474,9 +472,7 @@ class ExportHtmlword extends ExportPlugin
*/
public function exportStructure(string $db, string $table, string $exportMode, array $aliases = []): bool
{
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$dump = '';

View File

@ -182,9 +182,8 @@ class ExportJson extends ExportPlugin
string $sqlQuery,
array $aliases = [],
): bool {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$dbAlias = $this->getDbAlias($aliases, $db);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
if (! $this->first) {
if (! $this->export->outputHandler(',')) {

View File

@ -298,9 +298,8 @@ class ExportLatex extends ExportPlugin
string $sqlQuery,
array $aliases = [],
): bool {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$dbAlias = $this->getDbAlias($aliases, $db);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$dbi = DatabaseInterface::getInstance();
$result = $dbi->tryQuery($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED);
@ -437,9 +436,8 @@ class ExportLatex extends ExportPlugin
*/
public function exportStructure(string $db, string $table, string $exportMode, array $aliases = []): bool
{
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$dbAlias = $this->getDbAlias($aliases, $db);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$relationParameters = $this->relation->getRelationParameters();

View File

@ -152,9 +152,7 @@ class ExportMediawiki extends ExportPlugin
*/
public function exportStructure(string $db, string $table, string $exportMode, array $aliases = []): bool
{
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$output = '';
if ($exportMode === 'create_table') {
@ -236,9 +234,7 @@ class ExportMediawiki extends ExportPlugin
string $sqlQuery,
array $aliases = [],
): bool {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
// Print data comment
$output = $this->exportComment(

View File

@ -201,9 +201,7 @@ class ExportOds extends ExportPlugin
string $sqlQuery,
array $aliases = [],
): bool {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$dbi = DatabaseInterface::getInstance();
// Gets the data from the database
$result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED);

View File

@ -229,9 +229,7 @@ class ExportOdt extends ExportPlugin
string $sqlQuery,
array $aliases = [],
): bool {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$dbi = DatabaseInterface::getInstance();
// Gets the data from the database
$result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED);
@ -341,9 +339,7 @@ class ExportOdt extends ExportPlugin
*/
public function getTableDefStandIn(string $db, string $view, array $aliases = []): string
{
$dbAlias = $db;
$viewAlias = $view;
$this->initAlias($aliases, $dbAlias, $viewAlias);
$viewAlias = $this->getTableAlias($aliases, $db, $view);
$dbi = DatabaseInterface::getInstance();
/**
* Gets fields properties
@ -399,9 +395,7 @@ class ExportOdt extends ExportPlugin
*/
public function getTableDef(string $db, string $table, array $aliases = []): bool
{
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$relationParameters = $this->relation->getRelationParameters();
@ -488,9 +482,7 @@ class ExportOdt extends ExportPlugin
$rfield = $aliases[$db]['tables'][$rtable]['columns'][$rfield];
}
if (! empty($aliases[$db]['tables'][$rtable]['alias'])) {
$rtable = $aliases[$db]['tables'][$rtable]['alias'];
}
$rtable = $this->getTableAlias($aliases, $db, $rtable);
$relation = htmlspecialchars($rtable . ' (' . $rfield . ')');
$this->buffer .= '<table:table-cell office:value-type="string">'
@ -606,9 +598,7 @@ class ExportOdt extends ExportPlugin
*/
public function exportStructure(string $db, string $table, string $exportMode, array $aliases = []): bool
{
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
switch ($exportMode) {
case 'create_table':
$this->buffer .= '<text:h text:outline-level="2" text:style-name="Heading_2"'

View File

@ -173,9 +173,8 @@ class ExportPdf extends ExportPlugin
string $sqlQuery,
array $aliases = [],
): bool {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$dbAlias = $this->getDbAlias($aliases, $db);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$pdf = $this->getPdf();
$pdf->setCurrentDb($db);
$pdf->setCurrentTable($table);
@ -221,10 +220,9 @@ class ExportPdf extends ExportPlugin
*/
public function exportStructure(string $db, string $table, string $exportMode, array $aliases = []): bool
{
$dbAlias = $db;
$tableAlias = $table;
$purpose = '';
$this->initAlias($aliases, $dbAlias, $tableAlias);
$dbAlias = $this->getDbAlias($aliases, $db);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$pdf = $this->getPdf();
// getting purpose to show at top
switch ($exportMode) {

View File

@ -153,9 +153,8 @@ class ExportPhparray extends ExportPlugin
string $sqlQuery,
array $aliases = [],
): bool {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$dbAlias = $this->getDbAlias($aliases, $db);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$dbi = DatabaseInterface::getInstance();
$result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED);

View File

@ -1249,9 +1249,7 @@ class ExportSql extends ExportPlugin
*/
public function getTableDefStandIn(string $db, string $view, array $aliases = []): string
{
$dbAlias = $db;
$viewAlias = $view;
$this->initAlias($aliases, $dbAlias, $viewAlias);
$viewAlias = $this->getTableAlias($aliases, $db, $view);
$createQuery = '';
if ($this->dropTable) {
$createQuery .= 'DROP VIEW IF EXISTS '
@ -1294,9 +1292,7 @@ class ExportSql extends ExportPlugin
string $view,
array $aliases = [],
): string {
$dbAlias = $db;
$viewAlias = $view;
$this->initAlias($aliases, $dbAlias, $viewAlias);
$viewAlias = $this->getTableAlias($aliases, $db, $view);
$createQuery = 'CREATE TABLE';
if ($this->ifNotExists) {
$createQuery .= ' IF NOT EXISTS ';
@ -1374,9 +1370,7 @@ class ExportSql extends ExportPlugin
bool $updateIndexesIncrements = true,
array $aliases = [],
): string {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$schemaCreate = $this->getTableStatus($db, $table);
@ -1738,9 +1732,7 @@ class ExportSql extends ExportPlugin
*/
private function getTableComments(string $db, string $table, array $aliases = []): string
{
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$relationParameters = $this->relation->getRelationParameters();
@ -1881,9 +1873,7 @@ class ExportSql extends ExportPlugin
*/
public function exportStructure(string $db, string $table, string $exportMode, array $aliases = []): bool
{
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$formattedTableName = Util::backquoteCompat($tableAlias, $this->compatibility, $this->useSqlBackquotes);
$dump = $this->possibleCRLF()
. $this->exportComment(str_repeat('-', 56))
@ -2027,9 +2017,7 @@ class ExportSql extends ExportPlugin
return true;
}
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$formattedTableName = Util::backquoteCompat($tableAlias, $this->compatibility, $this->useSqlBackquotes);
@ -2404,9 +2392,6 @@ class ExportSql extends ExportPlugin
): string {
$flag = false;
/**
* The parser of this query.
*/
$parser = new Parser($delimiter === '' ? $sqlQuery : 'DELIMITER ' . $delimiter . "\n" . $sqlQuery);
if (empty($parser->statements[0])) {
@ -2420,39 +2405,19 @@ class ExportSql extends ExportPlugin
*/
$statement = $parser->statements[0];
/**
* Old database name.
*/
$oldDatabase = $db;
// Replacing aliases in `CREATE TABLE` statement.
if ($statement->options->has('TABLE')) {
// Extracting the name of the old database and table from the
// statement to make sure the parameters are correct.
if (! empty($statement->name->database)) {
$oldDatabase = $statement->name->database;
}
/**
* Old table name.
*/
$oldTable = $statement->name->table;
// Finding the aliased database name.
// The database might be empty so we have to add a few checks.
$newDatabase = null;
if (! empty($statement->name->database)) {
$newDatabase = $statement->name->database;
if (! empty($aliases[$oldDatabase]['alias'])) {
$newDatabase = $aliases[$oldDatabase]['alias'];
}
$oldDatabase = $statement->name->database;
$newDatabase = $this->getDbAlias($aliases, $oldDatabase);
}
// Finding the aliases table name.
$newTable = $oldTable;
if (! empty($aliases[$oldDatabase]['tables'][$oldTable]['alias'])) {
$newTable = $aliases[$oldDatabase]['tables'][$oldTable]['alias'];
}
$newTable = $this->getTableAlias($aliases, $oldDatabase, $oldTable);
// Replacing new values.
if ($statement->name->database !== $newDatabase || $statement->name->table !== $newTable) {
@ -2522,13 +2487,11 @@ class ExportSql extends ExportPlugin
$oldDatabase = $statement->table->database;
}
/**
* Old table name.
*/
$oldTable = $statement->table->table;
$newTable = $this->getTableAlias($aliases, $oldDatabase, $oldTable);
if (! empty($aliases[$oldDatabase]['tables'][$oldTable]['alias'])) {
$statement->table->table = $aliases[$oldDatabase]['tables'][$oldTable]['alias'];
if ($newTable !== $oldTable) {
$statement->table->table = $newTable;
$statement->table->expr = ''; // Force rebuild.
$flag = true;
}

View File

@ -167,9 +167,7 @@ class ExportTexytext extends ExportPlugin
string $sqlQuery,
array $aliases = [],
): bool {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
if (
! $this->export->outputHandler(
@ -448,9 +446,7 @@ class ExportTexytext extends ExportPlugin
*/
public function exportStructure(string $db, string $table, string $exportMode, array $aliases = []): bool
{
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$dump = '';
switch ($exportMode) {

View File

@ -420,9 +420,7 @@ class ExportXml extends ExportPlugin
return true;
}
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
if ($this->exportContents) {
$result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED);

View File

@ -128,9 +128,8 @@ class ExportYaml extends ExportPlugin
string $sqlQuery,
array $aliases = [],
): bool {
$dbAlias = $db;
$tableAlias = $table;
$this->initAlias($aliases, $dbAlias, $tableAlias);
$dbAlias = $this->getDbAlias($aliases, $db);
$tableAlias = $this->getTableAlias($aliases, $db, $table);
$dbi = DatabaseInterface::getInstance();
$result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED);

View File

@ -201,24 +201,16 @@ abstract class ExportPlugin implements Plugin
* below methods unless you want to override them.
*/
/**
* Initialize aliases
*
* @param mixed[] $aliases Alias information for db/table/column
* @param string $db the database
* @param string $table the table
*/
public function initAlias(array $aliases, string &$db, string &$table): void
/** @param mixed[] $aliases Alias information for db/table/columns */
public function getDbAlias(array $aliases, string $db): string
{
if (! empty($aliases[$db]['tables'][$table]['alias'])) {
$table = $aliases[$db]['tables'][$table]['alias'];
}
return ! empty($aliases[$db]['alias']) ? $aliases[$db]['alias'] : $db;
}
if (empty($aliases[$db]['alias'])) {
return;
}
$db = $aliases[$db]['alias'];
/** @param mixed[] $aliases Alias information for db/table/columns */
public function getTableAlias(array $aliases, string $db, string $table): string
{
return ! empty($aliases[$db]['tables'][$table]['alias']) ? $aliases[$db]['tables'][$table]['alias'] : $table;
}
/**
@ -310,9 +302,7 @@ abstract class ExportPlugin implements Plugin
$ffield = $aliases[$db]['tables'][$ftable]['columns'][$ffield];
}
if (! empty($aliases[$db]['tables'][$ftable]['alias'])) {
$ftable = $aliases[$db]['tables'][$ftable]['alias'];
}
$ftable = $this->getTableAlias($aliases, $db, $ftable);
return $ftable . ' (' . $ffield . ')';
}

View File

@ -1324,21 +1324,24 @@ class ExportSqlTest extends AbstractTestCase
$db = 'a';
$table = '';
$this->object->initAlias($aliases, $db, $table);
$table = $this->object->getTableAlias($aliases, $db, $table);
$db = $this->object->getDbAlias($aliases, $db);
self::assertSame('aliastest', $db);
self::assertSame('', $table);
$db = 'foo';
$table = 'qwerty';
$this->object->initAlias($aliases, $db, $table);
$table = $this->object->getTableAlias($aliases, $db, $table);
$db = $this->object->getDbAlias($aliases, $db);
self::assertSame('foo', $db);
self::assertSame('qwerty', $table);
$db = 'a';
$table = 'foo';
$this->object->initAlias($aliases, $db, $table);
$table = $this->object->getTableAlias($aliases, $db, $table);
$db = $this->object->getDbAlias($aliases, $db);
self::assertSame('aliastest', $db);
self::assertSame('qwerty', $table);
}