Synchronized code

This commit is contained in:
sunkaixuan 2024-11-04 16:18:18 +08:00
parent feb6a58394
commit 28f29e409f
8 changed files with 40 additions and 17 deletions

View File

@ -13,11 +13,11 @@ namespace SqlSugar
return this; return this;
} }
public override ISugarQueryable<T> PartitionBy(string groupFileds) //public override ISugarQueryable<T> PartitionBy(string groupFileds)
{ //{
this.GroupBy(groupFileds); // this.GroupBy(groupFileds);
return this; // return this;
} //}
} }
public class DmQueryable<T, T2> : QueryableProvider<T, T2> public class DmQueryable<T, T2> : QueryableProvider<T, T2>
{ {

View File

@ -50,8 +50,10 @@ namespace SqlSugar
{ {
var queryable = this.Context.Queryable<T>(); var queryable = this.Context.Queryable<T>();
var tableName = queryable.SqlBuilder.GetTranslationTableName(dt.TableName); var tableName = queryable.SqlBuilder.GetTranslationTableName(dt.TableName);
var sqlBuilder = this.Context.Queryable<object>().SqlBuilder;
var dts = dt.Columns.Cast<DataColumn>().Select(it => sqlBuilder.GetTranslationColumnName(it.ColumnName)).ToList();
dt.TableName = "temp" + SnowFlakeSingle.instance.getID(); dt.TableName = "temp" + SnowFlakeSingle.instance.getID();
var sql = queryable.AS(tableName).Where(it => false).ToSql().Key; var sql = queryable.AS(tableName).Where(it => false).Select(string.Join(",", dts)).ToSql().Key;
await this.Context.Ado.ExecuteCommandAsync($"CREATE TABLE {dt.TableName} as ( {sql} ) "); await this.Context.Ado.ExecuteCommandAsync($"CREATE TABLE {dt.TableName} as ( {sql} ) ");
} }
public override string UpdateSql { get; set; } = @"UPDATE {1} TM INNER JOIN {2} TE ON {3} SET {0} "; public override string UpdateSql { get; set; } = @"UPDATE {1} TM INNER JOIN {2} TE ON {3} SET {0} ";

View File

@ -13,12 +13,17 @@ namespace SqlSugar
public override string SqlTemplate public override string SqlTemplate
{ {
get get
{ {
return "SELECT {0}{" + UtilConstants.ReplaceKey + "} FROM {1}{2}{3}{4}"; return "SELECT {0}{" + UtilConstants.ReplaceKey + "} FROM {1}{2}{3}{4}";
} }
} }
public override string ToSqlString() public override string ToSqlString()
{ {
if (PartitionByValue.HasValue())
{
return base.ToSqlString();
}
//Support MySql Model //Support MySql Model
if (this.Context.CurrentConnectionConfig.MoreSettings?.DatabaseModel == DbType.MySql) if (this.Context.CurrentConnectionConfig.MoreSettings?.DatabaseModel == DbType.MySql)
{ {
@ -144,6 +149,11 @@ namespace SqlSugar
return "SELECT {0} FROM {1}{2}{3}{4} "; return "SELECT {0} FROM {1}{2}{3}{4} ";
} }
} }
public override string GetExternalOrderBy(string externalOrderBy)
{
return Regex.Replace(externalOrderBy, @"""\w+""\.", "");
}
private string OffsetPage() private string OffsetPage()
{ {
var skip = this.Skip ?? 1; var skip = this.Skip ?? 1;

View File

@ -71,6 +71,7 @@ namespace SqlSugar
//new KeyValuePair<string, CSharpDataType>("int1",CSharpDataType.@byte), //new KeyValuePair<string, CSharpDataType>("int1",CSharpDataType.@byte),
new KeyValuePair<string, CSharpDataType>("smallint",CSharpDataType.@short), new KeyValuePair<string, CSharpDataType>("smallint",CSharpDataType.@short),
new KeyValuePair<string, CSharpDataType>("smallint",CSharpDataType.@byte), new KeyValuePair<string, CSharpDataType>("smallint",CSharpDataType.@byte),
new KeyValuePair<string, CSharpDataType>("tinyint",CSharpDataType.@byte),
new KeyValuePair<string, CSharpDataType>("int4",CSharpDataType.@int), new KeyValuePair<string, CSharpDataType>("int4",CSharpDataType.@int),
new KeyValuePair<string, CSharpDataType>("uint4",CSharpDataType.@int), new KeyValuePair<string, CSharpDataType>("uint4",CSharpDataType.@int),
new KeyValuePair<string, CSharpDataType>("integer",CSharpDataType.@int), new KeyValuePair<string, CSharpDataType>("integer",CSharpDataType.@int),
@ -114,7 +115,8 @@ namespace SqlSugar
new KeyValuePair<string, CSharpDataType>("xml",CSharpDataType.@string), new KeyValuePair<string, CSharpDataType>("xml",CSharpDataType.@string),
new KeyValuePair<string, CSharpDataType>("json",CSharpDataType.@string), new KeyValuePair<string, CSharpDataType>("json",CSharpDataType.@string),
new KeyValuePair<string, CSharpDataType>("rowid",CSharpDataType.@string), new KeyValuePair<string, CSharpDataType>("rowid",CSharpDataType.@string),
new KeyValuePair<string, CSharpDataType>("information_schema.sql_identifier",CSharpDataType.@string),
new KeyValuePair<string, CSharpDataType>("information_schema.cardinal_number",CSharpDataType.@string),
new KeyValuePair<string, CSharpDataType>("interval",CSharpDataType.@decimal), new KeyValuePair<string, CSharpDataType>("interval",CSharpDataType.@decimal),
new KeyValuePair<string, CSharpDataType>("lseg",CSharpDataType.@decimal), new KeyValuePair<string, CSharpDataType>("lseg",CSharpDataType.@decimal),
new KeyValuePair<string, CSharpDataType>("macaddr",CSharpDataType.@decimal), new KeyValuePair<string, CSharpDataType>("macaddr",CSharpDataType.@decimal),

View File

@ -497,13 +497,13 @@ WHERE tgrelid = '" + tableName + "'::regclass");
{ {
ConvertCreateColumnInfo(item); ConvertCreateColumnInfo(item);
if (item.DbColumnName.Equals("GUID", StringComparison.CurrentCultureIgnoreCase) && item.Length == 0) //if (item.DbColumnName.Equals("GUID", StringComparison.CurrentCultureIgnoreCase) && item.Length == 0)
{ //{
if (item.DataType?.ToLower() != "uuid") // if (item.DataType?.ToLower() != "uuid")
{ // {
item.Length = 10; // item.Length = 10;
} // }
} //}
} }
} }
string sql = GetCreateTableSql(tableName, columns); string sql = GetCreateTableSql(tableName, columns);

View File

@ -308,6 +308,10 @@ namespace SqlSugar
public override string ToDate(MethodCallExpressionModel model) public override string ToDate(MethodCallExpressionModel model)
{ {
var parameter = model.Args[0]; var parameter = model.Args[0];
if (IsSqlServerModel(model))
{
return string.Format(" CAST({0} AS dateTime)", parameter.MemberName);
}
return string.Format(" CAST({0} AS timestamp)", parameter.MemberName); return string.Format(" CAST({0} AS timestamp)", parameter.MemberName);
} }
public override string DateAddByType(MethodCallExpressionModel model) public override string DateAddByType(MethodCallExpressionModel model)
@ -387,7 +391,7 @@ namespace SqlSugar
public override string MergeString(params string[] strings) public override string MergeString(params string[] strings)
{ {
var key = Guid.NewGuid() + ""; var key = Guid.NewGuid() + "";
return " concat(" + string.Join(",", strings.Select(it => it?.Replace("+", key))).Replace("+", "").Replace(key, "+") + ") "; return " pg_catalog.concat(" + string.Join(",", strings.Select(it => it?.Replace("+", key))).Replace("+", "").Replace(key, "+") + ") ";
} }
public override string IsNull(MethodCallExpressionModel model) public override string IsNull(MethodCallExpressionModel model)
{ {

View File

@ -104,6 +104,11 @@ namespace SqlSugar
#endregion #endregion
#region Get SQL Partial #region Get SQL Partial
public override string GetExternalOrderBy(string externalOrderBy)
{
return Regex.Replace(externalOrderBy, @"""\w+""\.", "");
}
public override string GetSelectValue public override string GetSelectValue
{ {
get get

View File

@ -391,7 +391,7 @@ namespace SqlSugar
{ {
var parameterNameA = mode.Args[0].MemberName; var parameterNameA = mode.Args[0].MemberName;
var parameterNameB = mode.Args[1].MemberName; var parameterNameB = mode.Args[1].MemberName;
return $" SUBSTR({parameterNameA}, -2, {parameterNameB}) "; return $" SUBSTR({parameterNameA}, (LENGTH({parameterNameA})-2), {parameterNameB}) ";
} }
public override string Ceil(MethodCallExpressionModel mode) public override string Ceil(MethodCallExpressionModel mode)