From: stronk7 Date: Mon, 2 Oct 2006 17:06:37 +0000 (+0000) Subject: rename_field() under oracle completed X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=c562997ff85587a5ea9d11f6fd46b184162dd7ad;p=moodle.git rename_field() under oracle completed --- diff --git a/lib/xmldb/classes/generators/oci8po/oci8po.class.php b/lib/xmldb/classes/generators/oci8po/oci8po.class.php index e513a32eab..3fe24ebc45 100644 --- a/lib/xmldb/classes/generators/oci8po/oci8po.class.php +++ b/lib/xmldb/classes/generators/oci8po/oci8po.class.php @@ -53,6 +53,8 @@ class XMLDBoci8po extends XMLDBgenerator { var $rename_table_extra_code = true; //Does the generator need to add code after table rename + var $rename_column_extra_code = true; //Does the generator need to add code after field rename + var $enum_inline_code = false; //Does the generator need to add inline code in the column definition var $alter_column_sql = 'ALTER TABLE TABLENAME MODIFY (COLUMNSPECS)'; //The SQL template to alter columns @@ -201,6 +203,26 @@ class XMLDBoci8po extends XMLDBgenerator { return array($comment); } + /** + * Returns the code (array of statements) needed to execute extra statements on field rename + */ + function getRenameFieldExtraSQL ($xmldb_table, $xmldb_field, $newname) { + + $results = array(); + + /// If the field is enum, drop and re-create the check constraint + if ($xmldb_field->getEnum()) { + /// Drop the current enum + $results = array_merge($results, $this->getDropEnumSQL($xmldb_table, $xmldb_field)); + /// Change field name + $xmldb_field->setName($newname); + /// Recreate the enum + $results = array_merge($results, $this->getCreateEnumSQL($xmldb_table, $xmldb_field)); + } + + return $results; + } + /** * Returns the code (array of statements) needed to execute extra statements on table drop */