#!/usr/local/bin/perl
# save_field.cgi
# Create or rename a field

require './postgresql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});

$in{'field'} =~ /^\S+$/ || &error(&text('field_efield', $in{'field'}));
if ($in{'new'}) {
	if (defined($in{'size'})) {
		$in{'size'} =~ /^\d+(,\d+)?$/ ||
			&error(&text('field_esize', $in{'size'}));
		$size = "($in{'size'})";
		}
	$arr = $in{'arr'} ? "[]" : "";
	&execute_sql_logged($in{'db'}, "alter table \"$in{'table'}\" add ".
				       "\"$in{'field'}\" $in{'type'}$size$arr");
	}
elsif ($in{'old'} ne $in{'field'}) {
	&execute_sql_logged($in{'db'}, "alter table \"$in{'table'}\" rename ".
				       "\"$in{'old'}\" to \"$in{'field'}\"");
	}
&redirect("edit_table.cgi?db=$in{'db'}&table=$in{'table'}");

