From fa2a9cc9339e5c2ce59b3684fcddcac17be213f6 Mon Sep 17 00:00:00 2001 From: Jake Dallimore Date: Fri, 8 Dec 2017 11:55:28 +0800 Subject: [PATCH] MDL-23887 database: fix use of deprecated system tables for mssql Catalog views are available which we should use instead. --- lib/ddl/mssql_sql_generator.php | 10 +++++----- lib/dml/mssql_native_moodle_database.php | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/ddl/mssql_sql_generator.php b/lib/ddl/mssql_sql_generator.php index 8caa81a58e4..c03a69ad4f7 100644 --- a/lib/ddl/mssql_sql_generator.php +++ b/lib/ddl/mssql_sql_generator.php @@ -544,9 +544,9 @@ class mssql_sql_generator extends sql_generator { $fieldname = $xmldb_field->getName(); // Look for any default constraint in this field and drop it - if ($default = $this->mdb->get_record_sql("SELECT id, object_name(cdefault) AS defaultconstraint - FROM syscolumns - WHERE id = object_id(?) + if ($default = $this->mdb->get_record_sql("SELECT object_id, object_name(default_object_id) AS defaultconstraint + FROM sys.columns + WHERE object_id = object_id(?) AND name = ?", array($tablename, $fieldname))) { return $default->defaultconstraint; } else { @@ -603,7 +603,7 @@ class mssql_sql_generator extends sql_generator { case 'fk': case 'ck': if ($check = $this->mdb->get_records_sql("SELECT name - FROM sysobjects + FROM sys.objects WHERE lower(name) = ?", array(strtolower($object_name)))) { return true; } @@ -611,7 +611,7 @@ class mssql_sql_generator extends sql_generator { case 'ix': case 'uix': if ($check = $this->mdb->get_records_sql("SELECT name - FROM sysindexes + FROM sys.indexes WHERE lower(name) = ?", array(strtolower($object_name)))) { return true; } diff --git a/lib/dml/mssql_native_moodle_database.php b/lib/dml/mssql_native_moodle_database.php index cf55544eb9f..22994724bba 100644 --- a/lib/dml/mssql_native_moodle_database.php +++ b/lib/dml/mssql_native_moodle_database.php @@ -481,8 +481,8 @@ class mssql_native_moodle_database extends moodle_database { quotename(table_name)), column_name, 'IsIdentity') AS auto_increment, column_default AS default_value FROM tempdb.INFORMATION_SCHEMA.COLUMNS - JOIN tempdb..sysobjects ON name = table_name - WHERE id = object_id('tempdb..{" . $table . "}') + JOIN tempdb.sys.objects ON name = table_name + WHERE object_id = object_id('tempdb..{" . $table . "}') ORDER BY ordinal_position"; }