From 6f26aa7f3e82c5311b64feb82a75028dcb95ae42 Mon Sep 17 00:00:00 2001 From: Timothy Stack Date: Tue, 4 Aug 2015 21:49:13 -0700 Subject: [PATCH] [sql] multiline text was not returned correctly --- src/log_vtab_impl.cc | 13 ++++++------- test/test_sql.sh | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/log_vtab_impl.cc b/src/log_vtab_impl.cc index 0811657e..6a63e39d 100644 --- a/src/log_vtab_impl.cc +++ b/src/log_vtab_impl.cc @@ -357,12 +357,11 @@ static int vt_column(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int col) else { shared_buffer_ref line; - if (lf->read_line(ll, line)) { - sqlite3_result_text(ctx, - line.get_data(), - line.length(), - SQLITE_TRANSIENT); - } + lf->read_full_message(ll, line); + sqlite3_result_text(ctx, + line.get_data(), + line.length(), + SQLITE_TRANSIENT); } } else { @@ -370,7 +369,7 @@ static int vt_column(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int col) logfile::iterator line_iter; line_iter = lf->begin() + cl; - lf->read_line(line_iter, vc->log_msg); + lf->read_full_message(line_iter, vc->log_msg); vt->vi->extract(lf, vc->log_msg, vc->line_values); } diff --git a/test/test_sql.sh b/test/test_sql.sh index 62542bbc..0e658f45 100644 --- a/test/test_sql.sh +++ b/test/test_sql.sh @@ -502,3 +502,20 @@ check_output "access_log not found within syslog file" <,,/includes/js/combined-javascript.js,,-,HTTP/1.1,65508,200 EOF + + +run_test ${lnav_test} -n \ + -c ";select log_text from generic_log" \ + -c ":write-json-to -" \ + ${test_dir}/logfile_multiline.0 + +check_output "multiline data is not right?" <