sub
__adjust_column_dimension {
my
(
$new
,
$key
,
$value
) =
@_
;
$new
-> {
$key
} >=
$value
or
$new
-> {
$key
} =
$value
;
}
sub
__adjust_column_dimensions_for_char {
my
(
$old
,
$new
) =
@_
;
__adjust_column_dimension (
$new
,
COLUMN_SIZE
=>
$old
-> {COLUMN_SIZE});
}
sub
__adjust_column_dimensions_for_decimal {
my
(
$old
,
$new
) =
@_
;
__adjust_column_dimension (
$new
,
DECIMAL_DIGITS
=>
$old
-> {DECIMAL_DIGITS});
__adjust_column_dimension (
$new
,
COLUMN_SIZE
=>
$old
-> {COLUMN_SIZE} + (
$new
-> {DECIMAL_DIGITS} -
$old
-> {DECIMAL_DIGITS}));
}
sub
__adjust_column_dimensions {
my
(
$old
,
$new
,
$options
) =
@_
;
(
my
$type
=
$old
-> {TYPE_NAME}) eq
$new
-> {TYPE_NAME} or
return
;
if
(
$type
=~
$options
-> {char}) { __adjust_column_dimensions_for_char (
$old
,
$new
) }
elsif
(
$type
eq
$options
-> {decimal}) { __adjust_column_dimensions_for_decimal (
$old
,
$new
) }
}
sub
wish_to_adjust_options_for_table_columns {
my
(
$options
) =
@_
;
$options
-> {key} = [
'name'
];
}
sub
wish_to_schedule_cleanup_for_table_columns {}
1;