function modify_domain($olddef, $domdef)
{
    global $dbhandle, $ib_error;
    $lsql = array();
    if ($domdef['name'] != $olddef['name']) {
        $lsql[] = 'ALTER DOMAIN ' . $olddef['name'] . ' TO ' . $domdef['name'];
    }
    if (datatype_is_modified($olddef, $domdef)) {
        $lsql[] = 'ALTER DOMAIN ' . $domdef['name'] . ' TYPE ' . build_datatype($domdef);
    }
    if (isset($olddef['default']) && $olddef['default'] != '' && $domdef['default'] == '') {
        $lsql[] = 'ALTER DOMAIN ' . $domdef['name'] . ' DROP DEFAULT';
    }
    if (isset($olddef['default']) && $domdef['default'] != '' && $olddef['default'] != $domdef['default']) {
        $lsql[] = 'ALTER DOMAIN ' . $domdef['name'] . ' SET DEFAULT ' . $domdef['default'];
    }
    if (isset($olddef['check']) && !empty($olddef['check']) && (empty($domdef['check']) || $olddef['check'] != $domdef['check'])) {
        $lsql[] = 'ALTER DOMAIN ' . $domdef['name'] . ' DROP CONSTRAINT';
    }
    if (isset($olddef['check']) && $olddef['check'] != $domdef['check']) {
        $lsql[] = 'ALTER DOMAIN ' . $domdef['name'] . ' ADD CHECK ' . $domdef['check'];
    }
    foreach ($lsql as $sql) {
        if (DEBUG) {
            add_debug($sql, __FILE__, __LINE__);
        }
        if (!@fbird_query($dbhandle, $sql)) {
            $ib_error = fbird_errmsg() . "<br>\n>";
            return FALSE;
        }
    }
    return TRUE;
}
Example #2
0
        $s_coldefs = array();
    } else {
        $s_coldefs['mod']['pk_del'] = $s_coldefs['mod']['fk_del'] = $s_coldefs['mod']['uq_del'] = FALSE;
        $col_mod_flag = TRUE;
        $js_stack .= js_request_table_columns();
    }
}
//
// altering the column definitions
//
if (isset($_POST['tb_modcol_doit'])) {
    $mod_flag = FALSE;
    $sql = 'ALTER TABLE ' . $s_modify_name . ' ';
    save_coldef('mod');
    if (!isset($s_coldefs['mod']['domain']) || $s_coldefs['mod']['domain'] != 'Yes') {
        if (datatype_is_modified($s_coldefs['old'], $s_coldefs['mod'])) {
            // build sql for altering datatype definition
            $sql .= 'ALTER ' . $s_modify_col . ' TYPE ' . build_datatype($s_coldefs['mod']) . ', ';
            $mod_flag = TRUE;
        }
        // the delete primary key checkbox is checked
        if ($s_coldefs['mod']['pk_del'] == TRUE) {
            $sql .= 'DROP CONSTRAINT ' . $s_coldefs['old']['primary'] . ', ';
            $mod_flag = TRUE;
        }
        // the delete foreign key checkbox is checked
        if ($s_coldefs['mod']['fk_del'] == TRUE) {
            $sql .= 'DROP CONSTRAINT ' . $s_coldefs['old']['fk_name'] . ', ';
            $mod_flag = TRUE;
        }
        // the delete unique constraint checkbox is checked