App-DBBrowser
view release on metacpan or search on metacpan
lib/App/DBBrowser/Options/Menus.pm view on Meta::CPAN
[ 'user_required', "- User required", [ $no, $yes ] ],
[ 'pass_required', "- Password required", [ $no, $yes ] ],
];
my $items_login_data = [
{ name => 'host', prompt => "- Host" },
{ name => 'port', prompt => "- Port" },
{ name => 'user', prompt => "- User" },
];
my $sub_menu_env_variables = [
[ 'use_dbi_host', "- Use DBI_HOST", [ $no, $yes ] ],
[ 'use_dbi_port', "- Use DBI_PORT", [ $no, $yes ] ],
[ 'use_dbi_user', "- Use DBI_USER", [ $no, $yes ] ],
[ 'use_dbi_pass', "- Use DBI_PASS", [ $no, $yes ] ],
];
my $items_read_attributes = [
{ name => 'LongReadLen', text => "- LongReadLen" },
];
my $sub_menu_set_attributes = [
[ 'ChopBlanks', "- ChopBlanks", [ $no, $yes ] ],
[ 'LongTruncOk', "- LongTruncOk", [ $no, $yes ] ],
];
if ( $driver eq 'SQLite' ) {
$sub_menu_required_fields = [];
$items_login_data = [];
$sub_menu_env_variables = [];
push @$items_read_attributes,
{ name => 'sqlite_busy_timeout', text => "- sqlite_busy_timeout" };
#my $sqlite_string_mode_values = [
# '0 DBD_SQLITE_STRING_MODE_PV', # 0
# '1 DBD_SQLITE_STRING_MODE_BYTES', # 1
# undef,
# undef,
# '4 DBD_SQLITE_STRING_MODE_UNICODE_NAIVE', # 4
# '5 DBD_SQLITE_STRING_MODE_UNICODE_FALLBACK', # 5
# '6 DBD_SQLITE_STRING_MODE_UNICODE_STRICT', # 6
#];
push @$sub_menu_set_attributes,
#[ 'sqlite_string_mode', "- sqlite_string_mode", $sqlite_string_mode_values ],
[ 'sqlite_string_mode', "- sqlite_string_mode", [ 0, 1, undef, undef, 4, 5, 6 ] ], # undef not seen by the user
[ 'sqlite_see_if_its_a_number', "- sqlite_see_if_its_a_number", [ $no, $yes ] ];
}
elsif ( $driver eq 'mysql' ) {
push @$sub_menu_set_attributes,
[ 'mysql_enable_utf8', "- mysql_enable_utf8", [ $no, $yes ] ],
[ 'mysql_enable_utf8mb4', "- mysql_enable_utf8mb4", [ $no, $yes ] ],
[ 'mysql_bind_type_guessing', "- mysql_bind_type_guessing", [ $no, $yes ] ];
}
elsif ( $driver eq 'MariaDB' ) {
push @$sub_menu_set_attributes,
[ 'mariadb_bind_type_guessing', "- mariadb_bind_type_guessing", [ $no, $yes ] ];
}
elsif ( $driver eq 'Pg' ) {
push @$sub_menu_set_attributes,
[ 'pg_enable_utf8', "- pg_enable_utf8", [ $no, $yes ] ];
}
elsif ( $driver eq 'Firebird' ) {
push @$items_read_attributes,
{ name => 'ib_dialect', text => "- ib_dialect" },
{ name => 'ib_role', text => "- ib_role" },
{ name => 'ib_charset', text => "- ib_charset" };
push @$sub_menu_set_attributes,
[ 'ib_enable_utf8', "- ib_enable_utf8", [ $no, $yes ] ];
}
elsif ( $driver eq 'DB2' ) {
splice( @$sub_menu_required_fields, 0, 2 );
splice( @$items_login_data, 0, 2 );
splice( @$sub_menu_env_variables, 0, 2 );
}
elsif ( $driver eq 'Informix' ) {
splice( @$sub_menu_required_fields, 0, 2 );
splice( @$items_login_data, 0, 2 );
splice( @$sub_menu_env_variables, 0, 2 );
push @$sub_menu_set_attributes,
[ 'ix_EnableUTF8', "- ix_EnableUTF8", [ $no, $yes ] ];
}
elsif ( $driver eq 'Oracle' ) {
push @$items_read_attributes,
{ name => 'ora_charset', text => "- ora_charset" };
push @$sub_menu_set_attributes,
[ 'AskIfSID', "- AskIfSID", [ $no, $yes ] ];
}
elsif ( $driver eq 'ODBC' ) {
splice( @$sub_menu_required_fields, 0, 2 );
splice( @$items_login_data, 0, 2 );
splice( @$sub_menu_env_variables, 0, 2 );
push @$items_read_attributes,
{ name => 'odbc_batch_size', text => "- odbc_batch_size" };
push @$sub_menu_set_attributes,
[ 'odbc_utf8_on', "- odbc_utf8_on", [ $no, $yes ] ],
[ 'odbc_ignore_named_placeholders', "- odbc_ignore_named_placeholders", [ $no, $yes ] ],
#[ 'odbc_array_operations', "- odbc_array_operations", [ $no, $yes ] ];
}
elsif ( $driver eq 'DuckDB' ) {
$sub_menu_required_fields = [];
$items_login_data = [];
$sub_menu_env_variables = [];
}
if ( $sub_group eq '_required_fields' ) {
my $prompt = 'Required Fields:';
$sf->__settings_menu_wrap( $info, $lo, $section, $sub_menu_required_fields, $prompt );
}
elsif ( $sub_group eq '_login_data' ) {
my $prompt = 'Login Data:';
$sf->__group_readline( $info, $lo, $section, $items_login_data, $prompt );
}
elsif ( $sub_group eq '_env_variables' ) {
my $prompt = 'Environment Variables:';
$sf->__settings_menu_wrap( $info, $lo, $section, $sub_menu_env_variables, $prompt );
}
elsif ( $sub_group eq '_read_attributes' ) {
my $prompt = 'Read Attributes:';
$sf->__group_readline( $info, $lo, $section, $items_read_attributes, $prompt );
}
elsif ( $sub_group eq '_set_attributes' ) {
my $prompt = 'Set Attributes:';
$sf->__settings_menu_wrap( $info, $lo, $section, $sub_menu_set_attributes, $prompt );
}
else {
die "connect: unknown sub_group $sub_group";
}
return;
}
sub group_extensions {
my ( $sf, $info, $lo, $section, $sub_group ) = @_;
if ( $sub_group eq '_e_table' ) {
my $prompt = 'Extend tables menu:';
my $sub_menu = [
[ 'm_derived', "- Add subquery", [ $no, $yes ] ],
[ 'm_cte', "- Add cte", [ $no, $yes ] ],
[ 'join', "- Add join", [ $no, $yes ] ],
[ 'union', "- Add union", [ $no, $yes ] ],
];
$sf->__settings_menu_wrap( $info, $lo, $section, $sub_menu, $prompt );
}
elsif ( $sub_group eq '_e_join' ) {
my $prompt = 'Extend join menu:';
( run in 0.630 second using v1.01-cache-2.11-cpan-39bf76dae61 )