From: stronk7 Date: Sat, 21 Oct 2006 18:19:47 +0000 (+0000) Subject: Prevent add_field() to work if we are adding one not null field X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=8914508a4b3af9891011b6891efedcb9159fad62;p=moodle.git Prevent add_field() to work if we are adding one not null field to one non-empty table without specifying its default value. Merged from MOODLE_17_STABLE --- diff --git a/lib/ddllib.php b/lib/ddllib.php index ea316768e9..5166994653 100644 --- a/lib/ddllib.php +++ b/lib/ddllib.php @@ -678,6 +678,12 @@ function add_field($table, $field, $continue=true, $feedback=true) { return true; } +/// If NOT NULL and no default given, check the table is empty + if ($field->getNotNull() && $field->getDefault() === NULL && count_records($table->getName())) { + debugging('Field ' . $field->getName() . ' cannot be added. Not null fields added to non empty tables require default value. Create skipped', DEBUG_DEVELOPER); + return true; + } + if(!$sqlarr = $table->getAddFieldSQL($CFG->dbtype, $CFG->prefix, $field, false)) { return true; //Empty array = nothing to do = no error }