From e5931a38cc7463732ee7e505ec693f8372f66b67 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 20 Feb 2024 15:41:21 +0800 Subject: [PATCH] =?UTF-8?q?Support=20=E4=BA=BA=E5=A4=A7=E9=87=91=E4=BB=93?= =?UTF-8?q?=20=20pg=20model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SqlSugar/Entities/ConnMoreSettings.cs | 1 + .../DbMaintenance/KdbndpDbMaintenance.cs | 27 +++++++++++++++++++ .../SqlSugar/Utilities/UtilMethods.cs | 3 ++- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Entities/ConnMoreSettings.cs b/Src/Asp.NetCore2/SqlSugar/Entities/ConnMoreSettings.cs index 89b4ff7b4..33a07ba04 100644 --- a/Src/Asp.NetCore2/SqlSugar/Entities/ConnMoreSettings.cs +++ b/Src/Asp.NetCore2/SqlSugar/Entities/ConnMoreSettings.cs @@ -32,5 +32,6 @@ namespace SqlSugar public bool IsCorrectErrorSqlParameterName { get; set; } public int MaxParameterNameLength { get; set; } public bool DisableQueryWhereColumnRemoveTrim { get; set; } + public DbType? DataBaseModel { get;set; } } } diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs b/Src/Asp.NetCore2/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs index ec9e2221a..b1bc6c86e 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs @@ -12,6 +12,10 @@ namespace SqlSugar { get { + if (IsPgModel()) + { + return "SELECT datname FROM pg_database"; + } return "SELECT datname FROM sys_database"; } } @@ -44,6 +48,12 @@ namespace SqlSugar where sys_constraint.contype='p' ) pkey on pcolumn.table_name = pkey.relname order by ptables.tablename"; + + + if (IsPgModel()) + { + sql = sql.Replace("sys_", "pg_"); + } return sql; } } @@ -51,6 +61,12 @@ namespace SqlSugar { get { + if (IsPgModel()) + { + return @"select cast(relname as varchar) as Name, + cast(obj_description(relfilenode,'pg_class') as varchar) as Description from pg_class c + where relkind = 'r' and c.oid > 16384 and c.relnamespace != 99 and c.relname not like '%pl_profiler_saved%' order by relname"; + } return @"select cast(relname as varchar) as Name, cast(obj_description(relfilenode,'sys_class') as varchar) as Description from sys_class c where relkind = 'r' and c.oid > 16384 and c.relnamespace != 99 and c.relname not like '%pl_profiler_saved%' order by relname"; @@ -60,6 +76,13 @@ namespace SqlSugar { get { + if (IsPgModel()) + { + return @"select cast(relname as varchar) as Name,cast(Description as varchar) from pg_description + join pg_class on pg_description.objoid = pg_class.oid + where objsubid = 0 and relname in (SELECT viewname from pg_views + WHERE schemaname ='public')"; + } return @"select cast(relname as varchar) as Name,cast(Description as varchar) from sys_description join sys_class on sys_description.objoid = sys_class.oid where objsubid = 0 and relname in (SELECT viewname from sys_views @@ -575,6 +598,10 @@ WHERE tgrelid = '" + tableName + "'::regclass"); x.DecimalDigits = 0; } } + private bool IsPgModel() + { + return this.Context.CurrentConnectionConfig?.MoreSettings?.DataBaseModel == DbType.PostgreSQL; + } #endregion } } diff --git a/Src/Asp.NetCore2/SqlSugar/Utilities/UtilMethods.cs b/Src/Asp.NetCore2/SqlSugar/Utilities/UtilMethods.cs index e71273133..5e1c451a8 100644 --- a/Src/Asp.NetCore2/SqlSugar/Utilities/UtilMethods.cs +++ b/Src/Asp.NetCore2/SqlSugar/Utilities/UtilMethods.cs @@ -593,7 +593,8 @@ namespace SqlSugar IsCorrectErrorSqlParameterName = it.MoreSettings.IsCorrectErrorSqlParameterName, SqliteCodeFirstEnableDropColumn=it.MoreSettings.SqliteCodeFirstEnableDropColumn, MaxParameterNameLength=it.MoreSettings.MaxParameterNameLength, - DisableQueryWhereColumnRemoveTrim=it.MoreSettings.DisableQueryWhereColumnRemoveTrim + DisableQueryWhereColumnRemoveTrim=it.MoreSettings.DisableQueryWhereColumnRemoveTrim, + DataBaseModel=it.MoreSettings.DataBaseModel }, SqlMiddle = it.SqlMiddle == null ? null : new SqlMiddle