@@ -49,6 +49,21 @@ void write_error(string_view const message)
4949 cerr << termcolor::red << message << termcolor::reset << endl;
5050}
5151
52+ class database_query_logger : public logger_impl
53+ {
54+ public:
55+ void start_query (std::string const & query) override
56+ {
57+ write_verbose (" Query: " s + query);
58+ }
59+
60+ private:
61+ logger_impl* do_clone () const override
62+ {
63+ return new database_query_logger;
64+ }
65+ };
66+
5267void write_progress (uint64_t total, uint64_t completed, chrono::duration<uint64_t , std::nano> time_taken_so_far)
5368{
5469 uint64_t const nanoseconds_per_second = 1'000'000'000L ;
@@ -126,7 +141,6 @@ vector<string> find_matches(session & sql, string_view const schema, string_view
126141 vector<string> matches (maximum_results_per_column + 1 );
127142 stringstream query;
128143 query << " select cast(left(" << enquote (column) << " , " << (max_string + 1 ) << " ) as varchar(" << (max_string + 1 ) << " )) from " << enquote (schema) << " ." << enquote (table) << " where " << enquote (column) << " like '%" + escape_search_text (to_find) + " %' escape '\\ '" , into (matches);
129- write_verbose (" Executing: " + query.str ());
130144 sql << query.str (), into (matches);
131145 for (vector<string>::size_type i = 0 ; i != matches.size (); ++i)
132146 {
@@ -175,6 +189,7 @@ void find_and_display_matches(string_view to_find, int const maximum_results_per
175189 connection_parameters parameters (odbc, string (connection_string));
176190 parameters.set_option (odbc_option_driver_complete, to_string (SQL_DRIVER_NOPROMPT));
177191 session sql (parameters);
192+ sql.set_logger (new database_query_logger);
178193 auto all_columns = get_all_string_columns (sql);
179194 cout << " Searching " << all_columns.size () << " columns for '" << to_find << " '..." << endl;
180195 uint64_t const total_rows = accumulate (begin (all_columns), end (all_columns), 0 , [](int acc, column_details const & b) { return acc + b.number_of_rows ; });
0 commit comments