From 28f29e409f9c20fa04aafa4562a66bc340417f9a Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 4 Nov 2024 16:18:18 +0800 Subject: [PATCH] Synchronized code --- .../Realization/Dm/Queryable/DmQueryable.cs | 10 +++++----- .../Realization/Dm/SqlBuilder/DmFastBuilder.cs | 4 +++- .../Realization/Dm/SqlBuilder/DmQueryBuilder.cs | 12 +++++++++++- .../Realization/Kdbndp/DbBind/KdbndpBind.cs | 4 +++- .../Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs | 14 +++++++------- .../Kdbndp/SqlBuilder/KdbndpExpressionContext.cs | 6 +++++- .../Kdbndp/SqlBuilder/KdbndpQueryBuilder.cs | 5 +++++ .../Oracle/SqlBuilder/OracleExpressionContext.cs | 2 +- 8 files changed, 40 insertions(+), 17 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Realization/Dm/Queryable/DmQueryable.cs b/Src/Asp.Net/SqlSugar/Realization/Dm/Queryable/DmQueryable.cs index 4f5f9fd0c..3293bc26c 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Dm/Queryable/DmQueryable.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Dm/Queryable/DmQueryable.cs @@ -13,11 +13,11 @@ namespace SqlSugar return this; } - public override ISugarQueryable PartitionBy(string groupFileds) - { - this.GroupBy(groupFileds); - return this; - } + //public override ISugarQueryable PartitionBy(string groupFileds) + //{ + // this.GroupBy(groupFileds); + // return this; + //} } public class DmQueryable : QueryableProvider { diff --git a/Src/Asp.Net/SqlSugar/Realization/Dm/SqlBuilder/DmFastBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/Dm/SqlBuilder/DmFastBuilder.cs index 6a03ed6f7..606337896 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Dm/SqlBuilder/DmFastBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Dm/SqlBuilder/DmFastBuilder.cs @@ -50,8 +50,10 @@ namespace SqlSugar { var queryable = this.Context.Queryable(); var tableName = queryable.SqlBuilder.GetTranslationTableName(dt.TableName); + var sqlBuilder = this.Context.Queryable().SqlBuilder; + var dts = dt.Columns.Cast().Select(it => sqlBuilder.GetTranslationColumnName(it.ColumnName)).ToList(); 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} ) "); } public override string UpdateSql { get; set; } = @"UPDATE {1} TM INNER JOIN {2} TE ON {3} SET {0} "; diff --git a/Src/Asp.Net/SqlSugar/Realization/Dm/SqlBuilder/DmQueryBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/Dm/SqlBuilder/DmQueryBuilder.cs index 856f294b6..51e11390a 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Dm/SqlBuilder/DmQueryBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Dm/SqlBuilder/DmQueryBuilder.cs @@ -13,12 +13,17 @@ namespace SqlSugar public override string SqlTemplate { get - { + { return "SELECT {0}{" + UtilConstants.ReplaceKey + "} FROM {1}{2}{3}{4}"; } } public override string ToSqlString() { + + if (PartitionByValue.HasValue()) + { + return base.ToSqlString(); + } //Support MySql Model if (this.Context.CurrentConnectionConfig.MoreSettings?.DatabaseModel == DbType.MySql) { @@ -144,6 +149,11 @@ namespace SqlSugar return "SELECT {0} FROM {1}{2}{3}{4} "; } } + public override string GetExternalOrderBy(string externalOrderBy) + { + return Regex.Replace(externalOrderBy, @"""\w+""\.", ""); + } + private string OffsetPage() { var skip = this.Skip ?? 1; diff --git a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbBind/KdbndpBind.cs b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbBind/KdbndpBind.cs index 17b5763d6..f0b7e607d 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbBind/KdbndpBind.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbBind/KdbndpBind.cs @@ -71,6 +71,7 @@ namespace SqlSugar //new KeyValuePair("int1",CSharpDataType.@byte), new KeyValuePair("smallint",CSharpDataType.@short), new KeyValuePair("smallint",CSharpDataType.@byte), + new KeyValuePair("tinyint",CSharpDataType.@byte), new KeyValuePair("int4",CSharpDataType.@int), new KeyValuePair("uint4",CSharpDataType.@int), new KeyValuePair("integer",CSharpDataType.@int), @@ -114,7 +115,8 @@ namespace SqlSugar new KeyValuePair("xml",CSharpDataType.@string), new KeyValuePair("json",CSharpDataType.@string), new KeyValuePair("rowid",CSharpDataType.@string), - + new KeyValuePair("information_schema.sql_identifier",CSharpDataType.@string), + new KeyValuePair("information_schema.cardinal_number",CSharpDataType.@string), new KeyValuePair("interval",CSharpDataType.@decimal), new KeyValuePair("lseg",CSharpDataType.@decimal), new KeyValuePair("macaddr",CSharpDataType.@decimal), diff --git a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs index 4041bca54..4a35174b5 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs @@ -497,13 +497,13 @@ WHERE tgrelid = '" + tableName + "'::regclass"); { ConvertCreateColumnInfo(item); - if (item.DbColumnName.Equals("GUID", StringComparison.CurrentCultureIgnoreCase) && item.Length == 0) - { - if (item.DataType?.ToLower() != "uuid") - { - item.Length = 10; - } - } + //if (item.DbColumnName.Equals("GUID", StringComparison.CurrentCultureIgnoreCase) && item.Length == 0) + //{ + // if (item.DataType?.ToLower() != "uuid") + // { + // item.Length = 10; + // } + //} } } string sql = GetCreateTableSql(tableName, columns); diff --git a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpExpressionContext.cs b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpExpressionContext.cs index 22d28a58c..dc851d5ec 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpExpressionContext.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpExpressionContext.cs @@ -308,6 +308,10 @@ namespace SqlSugar public override string ToDate(MethodCallExpressionModel model) { 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); } public override string DateAddByType(MethodCallExpressionModel model) @@ -387,7 +391,7 @@ namespace SqlSugar public override string MergeString(params string[] strings) { 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) { diff --git a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpQueryBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpQueryBuilder.cs index 07069c511..2fe9eafcf 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpQueryBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpQueryBuilder.cs @@ -104,6 +104,11 @@ namespace SqlSugar #endregion #region Get SQL Partial + public override string GetExternalOrderBy(string externalOrderBy) + { + return Regex.Replace(externalOrderBy, @"""\w+""\.", ""); + } + public override string GetSelectValue { get diff --git a/Src/Asp.Net/SqlSugar/Realization/Oracle/SqlBuilder/OracleExpressionContext.cs b/Src/Asp.Net/SqlSugar/Realization/Oracle/SqlBuilder/OracleExpressionContext.cs index 6ff97e560..e50b8c561 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Oracle/SqlBuilder/OracleExpressionContext.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Oracle/SqlBuilder/OracleExpressionContext.cs @@ -391,7 +391,7 @@ namespace SqlSugar { var parameterNameA = mode.Args[0].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)