Skip to content

Commit

Permalink
Merge pull request #3682 from sbwalker/dev
Browse files Browse the repository at this point in the history
fix #3653 - mySQL installation failing on Rows reserved word
  • Loading branch information
sbwalker authored Jan 25, 2024
2 parents e36f13c + 7c6424e commit 0db413c
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 2 deletions.
8 changes: 8 additions & 0 deletions Oqtane.Database.MySQL/MySQLDatabase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,14 @@ public override IDataReader ExecuteReader(string connectionString, string query)
return dr;
}

public override string RewriteName(string name, bool isQuery)
{
if (name.ToLower() == "rows" && isQuery)
{
name = $"`{name}`"; // escape reserved word in SQL query
}
return name;
}

public override DbContextOptionsBuilder UseDatabase(DbContextOptionsBuilder optionsBuilder, string connectionString)
{
Expand Down
5 changes: 5 additions & 0 deletions Oqtane.Server/Databases/DatabaseBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,11 @@ public virtual string RewriteName(string name)
return name;
}

public virtual string RewriteName(string name, bool isQuery)
{
return name;
}

public virtual string RewriteValue(string value, string type)
{
return value;
Expand Down
2 changes: 2 additions & 0 deletions Oqtane.Server/Databases/Interfaces/IDatabase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ public interface IDatabase

public string RewriteName(string name);

public string RewriteName(string name, bool isQuery);

public string RewriteValue(string value, string type);

public void UpdateIdentityStoreTableNames(ModelBuilder builder);
Expand Down
9 changes: 7 additions & 2 deletions Oqtane.Server/Migrations/EntityBuilders/BaseEntityBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,12 @@ private string RewriteSqlEntityTableName(string name)

private string RewriteName(string name)
{
return ActiveDatabase.RewriteName(name);
return RewriteName(name, false);
}

private string RewriteName(string name, bool isQuery)
{
return ActiveDatabase.RewriteName(name, isQuery);
}

private string RewriteValue(string value, string type)
Expand Down Expand Up @@ -394,7 +399,7 @@ public void UpdateColumn(string columnName, string value, string condition)

public void UpdateColumn(string columnName, string value, string type, string condition)
{
var updateSql = $"UPDATE {RewriteSqlEntityTableName(EntityTableName)} SET {RewriteName(columnName)} = {RewriteValue(value, type)} ";
var updateSql = $"UPDATE {RewriteSqlEntityTableName(EntityTableName)} SET {RewriteName(columnName, true)} = {RewriteValue(value, type)} ";
if (!string.IsNullOrEmpty(condition))
{
updateSql += $"WHERE {condition}";
Expand Down

0 comments on commit 0db413c

Please sign in to comment.