Synchronization code

This commit is contained in:
sunkaixuan
2023-11-27 17:27:26 +08:00
parent 69ae5d38ee
commit 14ce7f6cb2
2 changed files with 31 additions and 15 deletions

View File

@@ -270,29 +270,27 @@ WHERE tgrelid = '" + tableName + "'::regclass");
}
public override bool AddDefaultValue(string tableName, string columnName, string defaultValue)
{
if (defaultValue == "''")
if (defaultValue?.StartsWith("'") == true && defaultValue?.EndsWith("'") == true && defaultValue?.Contains("(") == false
&& !defaultValue.EqualCase("'current_timestamp'") && !defaultValue.EqualCase("'current_date'"))
{
defaultValue = "";
string sql = string.Format(AddDefaultValueSql, this.SqlBuilder.GetTranslationColumnName(tableName), this.SqlBuilder.GetTranslationColumnName(columnName), defaultValue);
return this.Context.Ado.ExecuteCommand(sql) > 0;
}
if (defaultValue.IsDate() && !AddDefaultValueSql.Contains("'{2}'"))
else if (defaultValue.EqualCase("current_timestamp") || defaultValue.EqualCase("current_date"))
{
defaultValue = "'" + defaultValue + "'";
string sql = string.Format(AddDefaultValueSql, this.SqlBuilder.GetTranslationColumnName(tableName), this.SqlBuilder.GetTranslationColumnName(columnName), defaultValue);
return this.Context.Ado.ExecuteCommand(sql) > 0;
}
if (defaultValue != null && defaultValue.EqualCase("'current_timestamp'"))
else if (defaultValue?.Contains("(") == false
&& !defaultValue.EqualCase("'current_timestamp'") && !defaultValue.EqualCase("'current_date'"))
{
defaultValue = defaultValue.TrimEnd('\'').TrimStart('\'');
string sql = string.Format(AddDefaultValueSql, this.SqlBuilder.GetTranslationColumnName(tableName), this.SqlBuilder.GetTranslationColumnName(columnName), "'" + defaultValue + "'");
return this.Context.Ado.ExecuteCommand(sql) > 0;
}
if (defaultValue != null && defaultValue.EqualCase("'current_date'"))
else
{
defaultValue = defaultValue.TrimEnd('\'').TrimStart('\'');
return base.AddDefaultValue(this.SqlBuilder.GetTranslationTableName(tableName), this.SqlBuilder.GetTranslationTableName(columnName), defaultValue);
}
if (defaultValue == " ")
{
defaultValue = "' '";
}
string sql = string.Format(AddDefaultValueSql,SqlBuilder.GetTranslationColumnName(tableName), SqlBuilder.GetTranslationColumnName(columnName), defaultValue);
this.Context.Ado.ExecuteCommand(sql);
return true;
}
public override List<string> GetIndexList(string tableName)
{
@@ -478,6 +476,15 @@ WHERE tgrelid = '" + tableName + "'::regclass");
string tableString = string.Format(this.CreateTableSql, this.SqlBuilder.GetTranslationTableName(tableName.ToUpper(IsUpper)), string.Join(",\r\n", columnArray));
return tableString;
}
protected override bool IsAnyDefaultValue(string tableName, string columnName, List<DbColumnInfo> columns)
{
var defaultValue = columns.Where(it => it.DbColumnName.Equals(columnName, StringComparison.CurrentCultureIgnoreCase)).First().DefaultValue;
if (defaultValue?.StartsWith("NULL::") == true)
{
return false;
}
return defaultValue.HasValue();
}
public override bool IsAnyConstraint(string constraintName)
{
throw new NotSupportedException("PgSql IsAnyConstraint NotSupportedException");

View File

@@ -430,6 +430,15 @@ WHERE tgrelid = '"+tableName+"'::regclass");
this.Context.Ado.ExecuteCommand(sql);
return true;
}
protected override bool IsAnyDefaultValue(string tableName, string columnName, List<DbColumnInfo> columns)
{
var defaultValue = columns.Where(it => it.DbColumnName.Equals(columnName, StringComparison.CurrentCultureIgnoreCase)).First().DefaultValue;
if (defaultValue?.StartsWith("NULL::") == true)
{
return false;
}
return defaultValue.HasValue();
}
protected override string GetCreateTableSql(string tableName, List<DbColumnInfo> columns)
{
List<string> columnArray = new List<string>();