From 9d5c12ad00c3a08617bb2bd5e51fbcd205bb08cb Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 20 Mar 2023 00:22:01 +0800 Subject: [PATCH] Add a method to get an index --- .../SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs | 4 ++++ Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs | 1 + .../Realization/Dm/DbMaintenance/DmDbMaintenance.cs | 5 +++++ .../Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs | 10 ++++++++++ .../MySql/DbMaintenance/MySqlDbMaintenance.cs | 5 +++++ .../Oracle/DbMaintenance/OracleDbMaintenance.cs | 5 +++++ .../DbMaintenance/PostgreSQLDbMaintenance.cs | 5 +++++ .../SqlServer/DbMaintenance/SqlServerDbMaintenance.cs | 4 ++++ .../Sqlite/DbMaintenance/SqliteDbMaintenance.cs | 5 +++++ 9 files changed, 44 insertions(+) diff --git a/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs b/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs index ed4336f87..41e0ebca4 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs @@ -84,6 +84,10 @@ namespace SqlSugar return result.Select(it => it.DbColumnName).ToList(); }); } + public virtual List GetIndexList() + { + return new List(); + } #endregion #region Check diff --git a/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs index ab884e381..3a8f37c31 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs @@ -17,6 +17,7 @@ namespace SqlSugar List GetIsIdentities(string tableName); List GetPrimaries(string tableName); List GetProcList(string dbName); + List GetIndexList(); #endregion #region Check diff --git a/Src/Asp.Net/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs index 1f545a017..722645dbb 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs @@ -266,6 +266,11 @@ namespace SqlSugar #endregion #region Methods + public override List GetIndexList() + { + var sql = $"SELECT index_name FROM user_indexes"; + return this.Context.Ado.SqlQuery(sql); + } public override bool AddColumn(string tableName, DbColumnInfo columnInfo) { if (columnInfo.DataType == "varchar" && columnInfo.Length == 0) diff --git a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs index c14ad6d09..95f56f129 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs @@ -240,6 +240,16 @@ namespace SqlSugar #endregion #region Methods + public override List GetIndexList() + { + var sql = $"SELECT indexname FROM pg_indexes WHERE UPPER(schemaname) = UPPER('" + GetSchema() + "') "; + return this.Context.Ado.SqlQuery(sql); + } + public override List GetProcList(string dbName) + { + var sql = $"SELECT proname FROM pg_proc p JOIN pg_namespace n ON p.pronamespace = n.oid WHERE n.nspname = '{dbName}'"; + return this.Context.Ado.SqlQuery(sql); + } private string GetSchema() { var schema = "public"; diff --git a/Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs index 6c2b9f25e..a892e411b 100644 --- a/Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs @@ -282,6 +282,11 @@ namespace SqlSugar #endregion #region Methods + public override List GetIndexList() + { + var sql = $"SELECT index_name FROM information_schema.statistics WHERE table_schema = '" + this.Context.Ado.Connection.Database + "'"; + return this.Context.Ado.SqlQuery(sql); + } public override List GetProcList(string dbName) { var sql = $"SELECT ROUTINE_NAME FROM information_schema.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_SCHEMA = '{dbName}'"; diff --git a/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs index 4dfcb8d6a..5736c1fa8 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs @@ -272,6 +272,11 @@ namespace SqlSugar #endregion #region Methods + public override List GetIndexList() + { + var sql = $"SELECT index_name FROM user_indexes"; + return this.Context.Ado.SqlQuery(sql); + } public override List GetProcList(string dbName) { var sql = $"SELECT OBJECT_NAME FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'PROCEDURE' AND OWNER = '{dbName.ToUpper()}'"; diff --git a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs index de9920539..52954cadf 100644 --- a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs @@ -249,6 +249,11 @@ namespace SqlSugar #endregion #region Methods + public override List GetIndexList() + { + var sql = $"SELECT indexname FROM pg_indexes WHERE schemaname = '"+GetSchema()+"'"; + return this.Context.Ado.SqlQuery(sql); + } public override List GetProcList(string dbName) { var sql = $"SELECT proname FROM pg_proc p JOIN pg_namespace n ON p.pronamespace = n.oid WHERE n.nspname = '{dbName}'"; diff --git a/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs index a8679df8a..6439d1094 100644 --- a/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs @@ -321,6 +321,10 @@ namespace SqlSugar #endregion #region Methods + public override List GetIndexList() + { + return this.Context.Ado.SqlQuery("SELECT name FROM sys.indexes WHERE objectproperty(object_id, 'IsUserTable') = 1"); + } public override List GetProcList(string dbName) { var sql = $"SELECT name FROM {dbName}.sys.procedures"; diff --git a/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs index d7591e846..635de62ce 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs @@ -258,6 +258,11 @@ namespace SqlSugar #endregion #region Methods + public override List GetIndexList() + { + var sql = $"SELECT name FROM sqlite_master WHERE type='index'"; + return this.Context.Ado.SqlQuery(sql); + } public override void AddDefaultValue(EntityInfo entityInfo) { //sqlite no support AddDefaultValue