In column_info(), the version check logic has an unreachable branch:
if ($ora_server_version->[0] >= 8) {
# set $typecase for TIMESTAMP types
} elsif ($ora_server_version->[0] >= 11) {
# rt91217 CHOOSE hint deprecated
$choose = '\;
}
Any Oracle version >= 11 already satisfies >= 8, so the elsif block that clears the deprecated CHOOSE hint is never executed. The fix for rt91217 is effectively dead code.
Fix: Restructure so that both conditions can take effect independently:
if ($ora_server_version->[0] >= 8) {
$typecase = <<'SQL';
...
SQL
$typecaseend = 'END';
}
if ($ora_server_version->[0] >= 11) {
$choose = '\;
}