Skip to content

Commit 0adcaa5

Browse files
committed
Refactor duplicated code.
1 parent 7fa9c36 commit 0adcaa5

File tree

1 file changed

+8
-45
lines changed

1 file changed

+8
-45
lines changed

src/MySqlConnector/Core/SchemaProvider.cs

Lines changed: 8 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -159,28 +159,7 @@ private void FillProcedures(DataTable dataTable)
159159
new DataColumn("DEFINER", typeof(string)), // lgtm[cs/local-not-disposed]
160160
});
161161

162-
Action? close = null;
163-
if (m_connection.State != ConnectionState.Open)
164-
{
165-
m_connection.Open();
166-
close = m_connection.Close;
167-
}
168-
169-
using (var command = m_connection.CreateCommand())
170-
{
171-
#pragma warning disable CA2100
172-
command.CommandText = "SELECT " + string.Join(", ", dataTable.Columns.Cast<DataColumn>().Select(x => x.ColumnName)) + " FROM INFORMATION_SCHEMA.ROUTINES;";
173-
#pragma warning restore CA2100
174-
using var reader = command.ExecuteReader();
175-
while (reader.Read())
176-
{
177-
var rowValues = new object[dataTable.Columns.Count];
178-
reader.GetValues(rowValues);
179-
dataTable.Rows.Add(rowValues);
180-
}
181-
}
182-
183-
close?.Invoke();
162+
FillDataTable(dataTable, "ROUTINES");
184163
}
185164

186165
private void FillReservedWords(DataTable dataTable)
@@ -498,28 +477,7 @@ private void FillTables(DataTable dataTable)
498477
new DataColumn("TABLE_COMMENT", typeof(string)), // lgtm[cs/local-not-disposed]
499478
});
500479

501-
Action? close = null;
502-
if (m_connection.State != ConnectionState.Open)
503-
{
504-
m_connection.Open();
505-
close = m_connection.Close;
506-
}
507-
508-
using (var command = m_connection.CreateCommand())
509-
{
510-
#pragma warning disable CA2100
511-
command.CommandText = "SELECT " + string.Join(", ", dataTable.Columns.Cast<DataColumn>().Select(x => x.ColumnName)) + " FROM INFORMATION_SCHEMA.TABLES;";
512-
#pragma warning restore CA2100
513-
using var reader = command.ExecuteReader();
514-
while (reader.Read())
515-
{
516-
var rowValues = new object[dataTable.Columns.Count];
517-
reader.GetValues(rowValues);
518-
dataTable.Rows.Add(rowValues);
519-
}
520-
}
521-
522-
close?.Invoke();
480+
FillDataTable(dataTable, "TABLES");
523481
}
524482

525483
private void FillViews(DataTable dataTable)
@@ -538,6 +496,11 @@ private void FillViews(DataTable dataTable)
538496
new DataColumn("COLLATION_CONNECTION", typeof(string)), // lgtm[cs/local-not-disposed]
539497
});
540498

499+
FillDataTable(dataTable, "VIEWS");
500+
}
501+
502+
private void FillDataTable(DataTable dataTable, string tableName)
503+
{
541504
Action? close = null;
542505
if (m_connection.State != ConnectionState.Open)
543506
{
@@ -548,7 +511,7 @@ private void FillViews(DataTable dataTable)
548511
using (var command = m_connection.CreateCommand())
549512
{
550513
#pragma warning disable CA2100
551-
command.CommandText = "SELECT " + string.Join(", ", dataTable.Columns.Cast<DataColumn>().Select(x => x.ColumnName)) + " FROM INFORMATION_SCHEMA.VIEWS;";
514+
command.CommandText = "SELECT " + string.Join(", ", dataTable.Columns.Cast<DataColumn>().Select(x => x.ColumnName)) + " FROM INFORMATION_SCHEMA." + tableName + ";";
552515
#pragma warning restore CA2100
553516
using var reader = command.ExecuteReader();
554517
while (reader.Read())

0 commit comments

Comments
 (0)