| 738 | } |
| 739 | |
| 740 | MetadataResult SetPager(ShellState &state, const vector<string> &args) { |
| 741 | if (args.size() == 1) { |
| 742 | // Show current pager status |
| 743 | string mode_str; |
| 744 | switch (state.pager_mode) { |
| 745 | case PagerMode::PAGER_OFF: |
| 746 | mode_str = "off"; |
| 747 | break; |
| 748 | case PagerMode::PAGER_ON: |
| 749 | mode_str = "on"; |
| 750 | break; |
| 751 | case PagerMode::PAGER_AUTOMATIC: |
| 752 | mode_str = "automatic"; |
| 753 | break; |
| 754 | } |
| 755 | state.PrintF("Pager mode: %s\n", mode_str); |
| 756 | if (state.pager_mode == PagerMode::PAGER_AUTOMATIC) { |
| 757 | string page_mode = StringUtil::Format("Trigger pager when rows exceed %d", state.pager_min_rows); |
| 758 | if (state.max_width == 0) { |
| 759 | page_mode += " or result set is wider than terminal"; |
| 760 | } else { |
| 761 | page_mode += StringUtil::Format(" or result set is wider than %d characters", state.max_width); |
| 762 | } |
| 763 | state.Print(page_mode); |
| 764 | } |
| 765 | if (state.pager_mode != PagerMode::PAGER_OFF || !state.pager_command.empty()) { |
| 766 | state.PrintF("Pager command: %s\n", state.pager_command); |
| 767 | } |
| 768 | return MetadataResult::SUCCESS; |
| 769 | } |
| 770 | if (args[1] == "set_row_threshold") { |
| 771 | if (args.size() != 3) { |
| 772 | return MetadataResult::PRINT_USAGE; |
| 773 | } |
| 774 | idx_t limit = (idx_t)state.StringToInt(args[2]); |
| 775 | state.pager_min_rows = limit; |
| 776 | return MetadataResult::SUCCESS; |
| 777 | } |
| 778 | if (args.size() != 2) { |
| 779 | return MetadataResult::PRINT_USAGE; |
| 780 | } |
| 781 | if (args[1] == "on") { |
| 782 | state.pager_mode = PagerMode::PAGER_ON; |
| 783 | if (state.pager_command.empty()) { |
| 784 | state.pager_command = state.GetSystemPager(); |
| 785 | } |
| 786 | } else if (args[1] == "off") { |
| 787 | state.pager_mode = PagerMode::PAGER_OFF; |
| 788 | } else if (args[1] == "automatic") { |
| 789 | state.pager_mode = PagerMode::PAGER_AUTOMATIC; |
| 790 | } else { |
| 791 | state.pager_command = args[1]; |
| 792 | } |
| 793 | return MetadataResult::SUCCESS; |
| 794 | } |
| 795 | |
| 796 | static const MetadataCommand metadata_commands[] = { |
| 797 | {"bail", 2, ToggleBail, "on|off", "Stop after hitting an error. Default OFF", 3, ""}, |
nothing calls this directly
no test coverage detected