From 03d000736fd7dd92d7b8492cf9b66898e1f22ba8 Mon Sep 17 00:00:00 2001 From: Tim Stack Date: Mon, 8 Apr 2024 22:34:24 -0700 Subject: [PATCH] [sql] add humanize_id function Related to #1061 --- NEWS.md | 2 + src/db_sub_source.cc | 10 +- src/db_sub_source.hh | 1 + src/internals/sql-ref.rst | 116 +++-- src/string-extension-functions.cc | 24 + src/view_curses.cc | 20 +- test/expected/expected.am | 2 + ...a3bb78e9d60e5e1f5ce5b18e40d2f1662707ab.out | 438 +++++++++--------- ...b1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.err | 0 ...b1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.out | 2 + ...d458fdadd00df1239a0eeaac049abb49ed212d.out | 198 ++++---- ...9ffd5b2ef9fbcbe17f2e61ef7750f7038f6fd6.out | 2 +- test/test_sql_str_func.sh | 5 + 13 files changed, 454 insertions(+), 366 deletions(-) create mode 100644 test/expected/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.err create mode 100644 test/expected/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.out diff --git a/NEWS.md b/NEWS.md index 8f443a55..d1fe9d26 100644 --- a/NEWS.md +++ b/NEWS.md @@ -7,6 +7,8 @@ Features: of values over time. * The preview for the `:open` command will now show a listing of archive contents. +* Added `humanize_id` SQL function that colorizes a string using + ANSI escape codes. Bug Fixes: * With the recent xz backdoor shenanigans, it seems like a good diff --git a/src/db_sub_source.cc b/src/db_sub_source.cc index ffd112bf..130fddb2 100644 --- a/src/db_sub_source.cc +++ b/src/db_sub_source.cc @@ -29,6 +29,7 @@ #include "db_sub_source.hh" +#include "base/ansi_scrubber.hh" #include "base/date_time_scanner.hh" #include "base/itertools.hh" #include "base/time_util.hh" @@ -52,6 +53,7 @@ db_label_source::text_value_for_line(textview_curses& tc, */ label_out.clear(); + this->dls_ansi_attrs.clear(); if (row < 0_vl || row >= (int) this->dls_rows.size()) { return; } @@ -59,7 +61,8 @@ db_label_source::text_value_for_line(textview_curses& tc, auto actual_col_size = std::min(this->dls_max_column_width, this->dls_headers[lpc].hm_column_size); auto cell_str = scrub_ws(this->dls_rows[row][lpc]); - + string_attrs_t cell_attrs; + scrub_ansi_string(cell_str, &cell_attrs); truncate_to(cell_str, this->dls_max_column_width); auto cell_length @@ -69,11 +72,15 @@ db_label_source::text_value_for_line(textview_curses& tc, if (this->dls_headers[lpc].hm_column_type != SQLITE3_TEXT) { label_out.append(padding, ' '); } + shift_string_attrs(cell_attrs, 0, label_out.size()); label_out.append(cell_str); if (this->dls_headers[lpc].hm_column_type == SQLITE3_TEXT) { label_out.append(padding, ' '); } label_out.append(1, ' '); + + this->dls_ansi_attrs.insert( + this->dls_ansi_attrs.end(), cell_attrs.begin(), cell_attrs.end()); } } @@ -88,6 +95,7 @@ db_label_source::text_attrs_for_line(textview_curses& tc, if (row < 0_vl || row >= (int) this->dls_rows.size()) { return; } + sa = this->dls_ansi_attrs; auto alt_row_index = row % 4; if (alt_row_index == 2 || alt_row_index == 3) { sa.emplace_back(lr2, VC_ROLE.value(role_t::VCR_ALT_ROW)); diff --git a/src/db_sub_source.hh b/src/db_sub_source.hh index 4060a9d7..47a9e5c0 100644 --- a/src/db_sub_source.hh +++ b/src/db_sub_source.hh @@ -117,6 +117,7 @@ public: nonstd::optional dls_time_column_invalidated_at; std::unique_ptr> dls_allocator{ std::make_unique>(64 * 1024)}; + string_attrs_t dls_ansi_attrs; static const char NULL_STR[]; }; diff --git a/src/internals/sql-ref.rst b/src/internals/sql-ref.rst index 784dde68..083a7f6f 100644 --- a/src/internals/sql-ref.rst +++ b/src/internals/sql-ref.rst @@ -509,7 +509,7 @@ anonymize(*value*) Aback, 10.0.0.1 **See Also** - :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -815,7 +815,7 @@ char(*X*) HI **See Also** - :ref:`anonymize`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -848,7 +848,7 @@ charindex(*needle*, *haystack*, *\[start\]*) 0 **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -1016,7 +1016,7 @@ decode(*value*, *algorithm*) curl **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -1162,7 +1162,7 @@ encode(*value*, *algorithm*) Hello%2C%20World%21 **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -1194,7 +1194,7 @@ endswith(*str*, *suffix*) 0 **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -1251,7 +1251,7 @@ extract(*str*) {"col_0":1.0,"col_1":2.0} **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -1481,7 +1481,7 @@ group_concat(*X*, *\[sep\]*) hw,gw **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -1505,7 +1505,7 @@ group_spooky_hash(*str*) 4e7a190aead058cb123c94290f29c34a **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -1521,7 +1521,7 @@ gunzip(*b*) * **b** --- The blob to decompress **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -1537,7 +1537,7 @@ gzip(*value*) * **value** --- The value to compress **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -1592,7 +1592,7 @@ humanize_duration(*secs*) 1s500 **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`date`, :ref:`datetime`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`julianday`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`strftime`, :ref:`substr`, :ref:`time`, :ref:`timediff`, :ref:`timeslice`, :ref:`timezone`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`date`, :ref:`datetime`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`julianday`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`strftime`, :ref:`substr`, :ref:`time`, :ref:`timediff`, :ref:`timeslice`, :ref:`timezone`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -1618,7 +1618,33 @@ humanize_file_size(*value*) 10.0MB **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + +---- + + +.. _humanize_id: + +humanize_id(*id*) +^^^^^^^^^^^^^^^^^ + + Colorize the given ID using ANSI escape codes. + + **PRQL Name**: humanize.id + + **Parameters** + * **id\*** --- The identifier to color + + **Examples** + To colorize the ID 'cluster1': + + .. code-block:: custsqlite + + ;SELECT humanize_id('cluster1') + cluster1 + + **See Also** + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -1666,7 +1692,7 @@ instr(*haystack*, *needle*) 2 **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -2487,7 +2513,7 @@ leftstr(*str*, *N*) abc **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -2511,7 +2537,7 @@ length(*str*) 3 **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -2724,7 +2750,7 @@ logfmt2json(*str*) {"foo":1,"bar":2,"name":"Rolo Tomassi"} **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -2748,7 +2774,7 @@ lower(*str*) abc **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -2780,7 +2806,7 @@ ltrim(*str*, *\[chars\]*) c **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -2937,7 +2963,7 @@ padc(*str*, *len*) abcdef ghi **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -2969,7 +2995,7 @@ padl(*str*, *len*) abcdef **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3001,7 +3027,7 @@ padr(*str*, *len*) abcdefghi **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3032,7 +3058,7 @@ parse_url(*url*) {"scheme":"https","username":"alice","password":null,"host":"[fe80::14ff:4ee5:1215:2fb2]","port":null,"path":"/","query":null,"parameters":null,"fragment":null} **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3130,7 +3156,7 @@ printf(*format*, *X*) value: 00011 **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3154,7 +3180,7 @@ proper(*str*) Hello, World! **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3353,7 +3379,7 @@ regexp_capture(*string*, *pattern*) 1 2 3 8 9 2 **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3381,7 +3407,7 @@ regexp_capture_into_json(*string*, *pattern*, *\[options\]*) 1 {"col_0⋯l_1":2} **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3422,7 +3448,7 @@ regexp_match(*re*, *str*) {"num":123,"str":"four"} **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_replace`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_replace`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3457,7 +3483,7 @@ regexp_replace(*str*, *re*, *repl*) <123> **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_match`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_match`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3490,7 +3516,7 @@ replace(*str*, *old*, *replacement*) zbc **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3515,7 +3541,7 @@ replicate(*str*, *N*) abcabcabc **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3541,7 +3567,7 @@ reverse(*str*) cba **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3573,7 +3599,7 @@ rightstr(*str*, *N*) abc **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3669,7 +3695,7 @@ rtrim(*str*, *\[chars\]*) a **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3763,7 +3789,7 @@ sparkline(*value*, *\[upper\]*) ▁▂▃▄▅▆▇█ **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3808,7 +3834,7 @@ spooky_hash(*str*) f96b3d9c1a19f4394c97a1b79b1880df **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3922,7 +3948,7 @@ startswith(*str*, *prefix*) 0 **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -3947,7 +3973,7 @@ strfilter(*source*, *include*) bcbc **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -4034,7 +4060,7 @@ substr(*str*, *start*, *\[size\]*) b **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -4205,7 +4231,7 @@ timezone(*tz*, *ts*) 2022-03-02T02:00:00.000000-0800 **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`date`, :ref:`datetime`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`julianday`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`strftime`, :ref:`substr`, :ref:`time`, :ref:`timediff`, :ref:`timeslice`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`date`, :ref:`datetime`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`julianday`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`strftime`, :ref:`substr`, :ref:`time`, :ref:`timediff`, :ref:`timeslice`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -4272,7 +4298,7 @@ trim(*str*, *\[chars\]*) abc **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -4325,7 +4351,7 @@ unicode(*X*) 97 **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unparse_url`, :ref:`upper`, :ref:`xpath` ---- @@ -4363,7 +4389,7 @@ unparse_url(*obj*) https://example.com/ **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`upper`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`upper`, :ref:`xpath` ---- @@ -4387,7 +4413,7 @@ upper(*str*) ABC **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`xpath` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`xpath` ---- @@ -4430,7 +4456,7 @@ xpath(*xpath*, *xmldoc*) Hello ★ /abc/def/text() {} Hello ★ **See Also** - :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper` + :ref:`anonymize`, :ref:`char`, :ref:`charindex`, :ref:`decode`, :ref:`encode`, :ref:`endswith`, :ref:`extract`, :ref:`group_concat`, :ref:`group_spooky_hash_agg`, :ref:`gunzip`, :ref:`gzip`, :ref:`humanize_duration`, :ref:`humanize_file_size`, :ref:`humanize_id`, :ref:`instr`, :ref:`leftstr`, :ref:`length`, :ref:`logfmt2json`, :ref:`lower`, :ref:`ltrim`, :ref:`padc`, :ref:`padl`, :ref:`padr`, :ref:`parse_url`, :ref:`printf`, :ref:`proper`, :ref:`regexp_capture_into_json`, :ref:`regexp_capture`, :ref:`regexp_match`, :ref:`regexp_replace`, :ref:`replace`, :ref:`replicate`, :ref:`reverse`, :ref:`rightstr`, :ref:`rtrim`, :ref:`sparkline`, :ref:`spooky_hash`, :ref:`startswith`, :ref:`strfilter`, :ref:`substr`, :ref:`timezone`, :ref:`trim`, :ref:`unicode`, :ref:`unparse_url`, :ref:`upper` ---- diff --git a/src/string-extension-functions.cc b/src/string-extension-functions.cc index 5d6fe6b5..59c5e835 100644 --- a/src/string-extension-functions.cc +++ b/src/string-extension-functions.cc @@ -35,6 +35,7 @@ #include "spookyhash/SpookyV2.h" #include "sqlite-extension-func.hh" #include "text_anonymizer.hh" +#include "view_curses.hh" #include "vtab_module.hh" #include "vtab_module_json.hh" #include "yajl/api/yajl_gen.h" @@ -879,6 +880,17 @@ extract(const char* str) return json_string(gen); } +static std::string +sql_humanize_id(string_fragment id) +{ + auto& vc = view_colors::singleton(); + auto attrs = vc.attrs_for_ident(id.data(), id.length()); + + return fmt::format(FMT_STRING("\x1b[38;5;{}m{}\x1b[0m"), + attrs.ta_fg_color.value_or(COLOR_CYAN), + id); +} + int string_extension_functions(struct FuncDef** basic_funcs, struct FuncDefAgg** agg_funcs) @@ -963,6 +975,18 @@ string_extension_functions(struct FuncDef** basic_funcs, "SELECT humanize_file_size(10 * 1024 * 1024)", })), + sqlite_func_adapter:: + builder(help_text("humanize_id", + "Colorize the given ID using ANSI escape codes.") + .sql_function() + .with_prql_path({"humanize", "id"}) + .with_parameter({"id", "The identifier to color"}) + .with_tags({"string"}) + .with_example({ + "To colorize the ID 'cluster1'", + "SELECT humanize_id('cluster1')", + })), + sqlite_func_adapter:: builder( diff --git a/src/view_curses.cc b/src/view_curses.cc index 6836e735..4e67ac8b 100644 --- a/src/view_curses.cc +++ b/src/view_curses.cc @@ -1180,21 +1180,17 @@ view_colors::color_for_ident(const char* str, size_t len) const auto index = crc32(1, (const Bytef*) str, len); int retval; - if (COLORS >= 256) { - if (str[0] == '#' && (len == 4 || len == 7)) { - auto fg_res - = styling::color_unit::from_str(string_fragment(str, 0, len)); - if (fg_res.isOk()) { - return this->match_color(fg_res.unwrap()); - } + if (str[0] == '#' && (len == 4 || len == 7)) { + auto fg_res + = styling::color_unit::from_str(string_fragment(str, 0, len)); + if (fg_res.isOk()) { + return this->match_color(fg_res.unwrap()); } - - auto offset = index % HI_COLOR_COUNT; - retval = this->vc_highlight_colors[offset]; - } else { - retval = -1; } + auto offset = index % HI_COLOR_COUNT; + retval = this->vc_highlight_colors[offset]; + return retval; } diff --git a/test/expected/expected.am b/test/expected/expected.am index 78cb0959..5c278b0f 100644 --- a/test/expected/expected.am +++ b/test/expected/expected.am @@ -996,6 +996,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_str_func.sh_04712488fe50554eb36d3ced80f9a033602f3daa.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_0947bfe7ec626eaa0409a45b10fcbb634fb12eb7.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_0947bfe7ec626eaa0409a45b10fcbb634fb12eb7.out \ + $(srcdir)/%reldir%/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.err \ + $(srcdir)/%reldir%/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_11bcc5d32eabbedb6974f160dace9ef1ef0009e9.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_11bcc5d32eabbedb6974f160dace9ef1ef0009e9.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_11d458fdadd00df1239a0eeaac049abb49ed212d.err \ diff --git a/test/expected/test_cmds.sh_b6a3bb78e9d60e5e1f5ce5b18e40d2f1662707ab.out b/test/expected/test_cmds.sh_b6a3bb78e9d60e5e1f5ce5b18e40d2f1662707ab.out index d41c3c9c..87329d38 100644 --- a/test/expected/test_cmds.sh_b6a3bb78e9d60e5e1f5ce5b18e40d2f1662707ab.out +++ b/test/expected/test_cmds.sh_b6a3bb78e9d60e5e1f5ce5b18e40d2f1662707ab.out @@ -1984,9 +1984,9 @@ For support questions, email: See Also char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -2175,9 +2175,9 @@ For support questions, email: See Also anonymize(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -2201,9 +2201,9 @@ For support questions, email: See Also anonymize(), char(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -2316,9 +2316,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -2402,9 +2402,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -2432,9 +2432,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -2473,9 +2473,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -2625,13 +2625,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_spooky_hash(), gunzip(), gzip(), humanize_duration(), - humanize_file_size(), instr(), leftstr(), length(), logfmt2json(), - lower(), ltrim(), padc(), padl(), padr(), parse_url(), printf(), - proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), - regexp_replace(), replace(), replicate(), reverse(), rightstr(), - rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), - substr(), timezone(), trim(), unicode(), unparse_url(), upper(), - xpath() + humanize_file_size(), humanize_id(), instr(), leftstr(), length(), + logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), parse_url(), + printf(), proper(), regexp_capture(), regexp_capture_into_json(), + regexp_match(), regexp_replace(), replace(), replicate(), reverse(), + rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), + strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), + upper(), xpath() Examples #1 To concatenate the values of the column 'ex_procname' from the table 'lnav_example_log': @@ -2656,13 +2656,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), gunzip(), gzip(), humanize_duration(), - humanize_file_size(), instr(), leftstr(), length(), logfmt2json(), - lower(), ltrim(), padc(), padl(), padr(), parse_url(), printf(), - proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), - regexp_replace(), replace(), replicate(), reverse(), rightstr(), - rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), - substr(), timezone(), trim(), unicode(), unparse_url(), upper(), - xpath() + humanize_file_size(), humanize_id(), instr(), leftstr(), length(), + logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), parse_url(), + printf(), proper(), regexp_capture(), regexp_capture_into_json(), + regexp_match(), regexp_replace(), replace(), replicate(), reverse(), + rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), + strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), + upper(), xpath() Example #1 To produce a hash of all of the values of 'column1': ;SELECT group_spooky_hash(column1) FROM (VALUES ('abc'), ('123')) @@ -2677,9 +2677,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -2693,9 +2693,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -2722,14 +2722,14 @@ For support questions, email: See Also anonymize(), char(), charindex(), date(), datetime(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), - gunzip(), gzip(), humanize_file_size(), instr(), julianday(), - leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), - padr(), parse_url(), printf(), proper(), regexp_capture(), - regexp_capture_into_json(), regexp_match(), regexp_replace(), - replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), - spooky_hash(), startswith(), strfilter(), strftime(), substr(), time(), - timediff(), timeslice(), timezone(), timezone(), trim(), unicode(), - unparse_url(), upper(), xpath() + gunzip(), gzip(), humanize_file_size(), humanize_id(), instr(), + julianday(), leftstr(), length(), logfmt2json(), lower(), ltrim(), + padc(), padl(), padr(), parse_url(), printf(), proper(), + regexp_capture(), regexp_capture_into_json(), regexp_match(), + regexp_replace(), replace(), replicate(), reverse(), rightstr(), + rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), + strftime(), substr(), time(), timediff(), timeslice(), timezone(), + timezone(), trim(), unicode(), unparse_url(), upper(), xpath() Examples #1 To format a duration: ;SELECT humanize_duration(15 * 60)  @@ -2748,19 +2748,40 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), instr(), leftstr(), length(), logfmt2json(), - lower(), ltrim(), padc(), padl(), padr(), parse_url(), printf(), - proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), - regexp_replace(), replace(), replicate(), reverse(), rightstr(), - rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), - substr(), timezone(), trim(), unicode(), unparse_url(), upper(), - xpath() + humanize_duration(), humanize_id(), instr(), leftstr(), length(), + logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), parse_url(), + printf(), proper(), regexp_capture(), regexp_capture_into_json(), + regexp_match(), regexp_replace(), replace(), replicate(), reverse(), + rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), + strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), + upper(), xpath() Example #1 To format an amount: ;SELECT humanize_file_size(10 * 1024 * 1024)  +humanize_id(id) +══════════════════════════════════════════════════════════════════════ + Colorize the given ID using ANSI escape codes. +Parameter + id The identifier to color +See Also + anonymize(), char(), charindex(), decode(), encode(), endswith(), + extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), + humanize_duration(), humanize_file_size(), instr(), leftstr(), + length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), + parse_url(), printf(), proper(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), + unicode(), unparse_url(), upper(), xpath() +Example +#1 To colorize the ID 'cluster1': + ;SELECT humanize_id('cluster1')  + + + ifnull(X, Y) ══════════════════════════════════════════════════════════════════════ Returns a copy of its first non-NULL argument, or NULL if both @@ -2786,13 +2807,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), leftstr(), length(), - logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), parse_url(), - printf(), proper(), regexp_capture(), regexp_capture_into_json(), - regexp_match(), regexp_replace(), replace(), replicate(), reverse(), - rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), - strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), - upper(), xpath() + humanize_duration(), humanize_file_size(), humanize_id(), leftstr(), + length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), + parse_url(), printf(), proper(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), + unicode(), unparse_url(), upper(), xpath() Example #1 To test get the position of 'b' in the string 'abc': ;SELECT instr('abc', 'b')  @@ -3364,13 +3385,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), length(), - logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), parse_url(), - printf(), proper(), regexp_capture(), regexp_capture_into_json(), - regexp_match(), regexp_replace(), replace(), replicate(), reverse(), - rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), - strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), - upper(), xpath() + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), + parse_url(), printf(), proper(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), + unicode(), unparse_url(), upper(), xpath() Examples #1 To get the first character of the string 'abc': ;SELECT leftstr('abc', 1)  @@ -3390,13 +3411,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), parse_url(), - printf(), proper(), regexp_capture(), regexp_capture_into_json(), - regexp_match(), regexp_replace(), replace(), replicate(), reverse(), - rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), - strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), - upper(), xpath() + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), + parse_url(), printf(), proper(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), + unicode(), unparse_url(), upper(), xpath() Example #1 To get the length of the string 'abc': ;SELECT length('abc')  @@ -3516,13 +3537,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), lower(), ltrim(), padc(), padl(), padr(), parse_url(), - printf(), proper(), regexp_capture(), regexp_capture_into_json(), - regexp_match(), regexp_replace(), replace(), replicate(), reverse(), - rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), - strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), - upper(), xpath() + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), lower(), ltrim(), padc(), padl(), padr(), + parse_url(), printf(), proper(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), + unicode(), unparse_url(), upper(), xpath() Example #1 To extract key/value pairs from a log message: ;SELECT logfmt2json('foo=1 bar=2 name="Rolo Tomassi"') @@ -3538,13 +3559,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), ltrim(), padc(), padl(), padr(), parse_url(), - printf(), proper(), regexp_capture(), regexp_capture_into_json(), - regexp_match(), regexp_replace(), replace(), replicate(), reverse(), - rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), - strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), - upper(), xpath() + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), ltrim(), padc(), padl(), padr(), + parse_url(), printf(), proper(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), + unicode(), unparse_url(), upper(), xpath() Example #1 To lowercase the string 'AbC': ;SELECT lower('AbC')  @@ -3561,13 +3582,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), padc(), padl(), padr(), parse_url(), - printf(), proper(), regexp_capture(), regexp_capture_into_json(), - regexp_match(), regexp_replace(), replace(), replicate(), reverse(), - rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), - strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), - upper(), xpath() + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), padc(), padl(), padr(), + parse_url(), printf(), proper(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), + unicode(), unparse_url(), upper(), xpath() Examples #1 To trim the leading space characters from the string ' abc': ;SELECT ltrim(' abc')  @@ -3670,13 +3691,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padl(), padr(), parse_url(), - printf(), proper(), regexp_capture(), regexp_capture_into_json(), - regexp_match(), regexp_replace(), replace(), replicate(), reverse(), - rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), - strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), - upper(), xpath() + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padl(), padr(), + parse_url(), printf(), proper(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), + unicode(), unparse_url(), upper(), xpath() Examples #1 To pad the string 'abc' to a length of six characters: ;SELECT padc('abc', 6) || 'def'  @@ -3697,13 +3718,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padr(), parse_url(), - printf(), proper(), regexp_capture(), regexp_capture_into_json(), - regexp_match(), regexp_replace(), replace(), replicate(), reverse(), - rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), - strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), - upper(), xpath() + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padr(), + parse_url(), printf(), proper(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), + unicode(), unparse_url(), upper(), xpath() Examples #1 To pad the string 'abc' to a length of six characters: ;SELECT padl('abc', 6)  @@ -3724,13 +3745,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), parse_url(), - printf(), proper(), regexp_capture(), regexp_capture_into_json(), - regexp_match(), regexp_replace(), replace(), replicate(), reverse(), - rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), - strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), - upper(), xpath() + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + parse_url(), printf(), proper(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), + unicode(), unparse_url(), upper(), xpath() Examples #1 To pad the string 'abc' to a length of six characters: ;SELECT padr('abc', 6) || 'def'  @@ -3763,13 +3784,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - printf(), proper(), regexp_capture(), regexp_capture_into_json(), - regexp_match(), regexp_replace(), replace(), replicate(), reverse(), - rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), - strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), - unparse_url(), upper(), xpath() + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), printf(), proper(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), + unicode(), unparse_url(), unparse_url(), upper(), xpath() Examples #1 To parse the URL 'https://example.com/search?q=hello%20world': ;SELECT parse_url('https://example.com/search?q=hello%20world') @@ -3830,13 +3851,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), proper(), regexp_capture(), regexp_capture_into_json(), - regexp_match(), regexp_replace(), replace(), replicate(), reverse(), - rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), - strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), - upper(), xpath() + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), proper(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), + unicode(), unparse_url(), upper(), xpath() Examples #1 To substitute 'World' into the string 'Hello, %s!': ;SELECT printf('Hello, %s!', 'World')  @@ -3859,13 +3880,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), regexp_capture(), regexp_capture_into_json(), - regexp_match(), regexp_replace(), replace(), replicate(), reverse(), - rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), - strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), - upper(), xpath() + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), + unicode(), unparse_url(), upper(), xpath() Example #1 To capitalize the words in the string 'hello, world!': ;SELECT proper('hello, world!')  @@ -3990,9 +4011,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture_into_json(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), @@ -4024,13 +4045,13 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), regexp_match(), - regexp_replace(), replace(), replicate(), reverse(), rightstr(), - rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), - substr(), timezone(), trim(), unicode(), unparse_url(), upper(), - xpath() + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), + regexp_match(), regexp_replace(), replace(), replicate(), reverse(), + rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), + strfilter(), substr(), timezone(), trim(), unicode(), unparse_url(), + upper(), xpath() Example #1 To extract the key/value pairs 'a'/1 and 'b'/2 from the string 'a=1; b=2': ;SELECT * FROM regexp_capture_into_json('a=1; b=2', '(\w+)=(\d+)') @@ -4047,9 +4068,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_replace(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -4082,9 +4103,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_match(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -4112,9 +4133,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -4138,9 +4159,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), unicode(), @@ -4159,9 +4180,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -4182,9 +4203,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), unicode(), @@ -4250,9 +4271,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -4319,9 +4340,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), unicode(), @@ -4344,9 +4365,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), startswith(), strfilter(), substr(), timezone(), trim(), unicode(), @@ -4426,9 +4447,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), strfilter(), substr(), timezone(), trim(), unicode(), @@ -4453,9 +4474,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), substr(), timezone(), trim(), unicode(), @@ -4513,9 +4534,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), timezone(), trim(), @@ -4638,13 +4659,14 @@ For support questions, email: anonymize(), char(), charindex(), date(), datetime(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), humanize_duration(), humanize_duration(), - humanize_file_size(), instr(), julianday(), leftstr(), length(), - logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), parse_url(), - printf(), proper(), regexp_capture(), regexp_capture_into_json(), - regexp_match(), regexp_replace(), replace(), replicate(), reverse(), - rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), - strfilter(), strftime(), substr(), time(), timediff(), timeslice(), - trim(), unicode(), unparse_url(), upper(), xpath() + humanize_file_size(), humanize_id(), instr(), julianday(), leftstr(), + length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), + parse_url(), printf(), proper(), regexp_capture(), + regexp_capture_into_json(), regexp_match(), regexp_replace(), + replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), + spooky_hash(), startswith(), strfilter(), strftime(), substr(), time(), + timediff(), timeslice(), trim(), unicode(), unparse_url(), upper(), + xpath() Example #1 To convert a time to America/Los_Angeles: ;SELECT timezone('America/Los_Angeles', '2022-03-02T10:00') @@ -4686,9 +4708,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), @@ -4729,9 +4751,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -4758,9 +4780,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -4780,9 +4802,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), @@ -4811,9 +4833,9 @@ For support questions, email: See Also anonymize(), char(), charindex(), decode(), encode(), endswith(), extract(), group_concat(), group_spooky_hash(), gunzip(), gzip(), - humanize_duration(), humanize_file_size(), instr(), leftstr(), - length(), logfmt2json(), lower(), ltrim(), padc(), padl(), padr(), - parse_url(), printf(), proper(), regexp_capture(), + humanize_duration(), humanize_file_size(), humanize_id(), instr(), + leftstr(), length(), logfmt2json(), lower(), ltrim(), padc(), padl(), + padr(), parse_url(), printf(), proper(), regexp_capture(), regexp_capture_into_json(), regexp_match(), regexp_replace(), replace(), replicate(), reverse(), rightstr(), rtrim(), sparkline(), spooky_hash(), startswith(), strfilter(), substr(), timezone(), trim(), diff --git a/test/expected/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.err b/test/expected/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.err new file mode 100644 index 00000000..e69de29b diff --git a/test/expected/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.out b/test/expected/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.out new file mode 100644 index 00000000..d4d6d5c7 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.out @@ -0,0 +1,2 @@ +humanize_id('foo') humanize_id('bar')  +foo bar diff --git a/test/expected/test_sql_str_func.sh_11d458fdadd00df1239a0eeaac049abb49ed212d.out b/test/expected/test_sql_str_func.sh_11d458fdadd00df1239a0eeaac049abb49ed212d.out index eea58f29..015e50b5 100644 --- a/test/expected/test_sql_str_func.sh_11d458fdadd00df1239a0eeaac049abb49ed212d.out +++ b/test/expected/test_sql_str_func.sh_11d458fdadd00df1239a0eeaac049abb49ed212d.out @@ -1,198 +1,198 @@ -anonymize(bro_id_resp_h) +anonymize(bro_id_resp_h)  10.0.0.1 10.0.0.2 +10.0.0.2  +10.0.0.2  10.0.0.2 10.0.0.2 -10.0.0.2 -10.0.0.2 -10.0.0.2 -10.0.0.3 +10.0.0.2  +10.0.0.3  10.0.0.4 10.0.0.1 -10.0.0.4 -10.0.0.4 +10.0.0.4  +10.0.0.4  10.0.0.5 10.0.0.4 -10.0.0.4 -10.0.0.1 +10.0.0.4  +10.0.0.1  10.0.0.6 10.0.0.4 -10.0.0.7 -10.0.0.8 -10.0.0.8 +10.0.0.7  +10.0.0.8  10.0.0.8 10.0.0.8 +10.0.0.8  +10.0.0.8  10.0.0.8 10.0.0.8 -10.0.0.8 -10.0.0.8 -10.0.0.9 +10.0.0.8  +10.0.0.9  10.0.0.10 10.0.0.5 +10.0.0.11  +10.0.0.11  10.0.0.11 10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 +10.0.0.11  +10.0.0.11  10.0.0.5 10.0.0.11 +10.0.0.11  +10.0.0.11  10.0.0.11 10.0.0.11 +10.0.0.11  +10.0.0.11  10.0.0.11 10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.5 +10.0.0.11  +10.0.0.5  10.0.0.10 10.0.0.6 -10.0.0.12 -10.0.0.1 +10.0.0.12  +10.0.0.1  10.0.0.1 10.0.0.6 -10.0.0.11 -10.0.0.11 +10.0.0.11  +10.0.0.11  10.0.0.13 10.0.0.6 -10.0.0.11 -10.0.0.11 +10.0.0.11  +10.0.0.11  10.0.0.11 10.0.0.13 +10.0.0.6  +10.0.0.6  10.0.0.6 10.0.0.6 +10.0.0.6  +10.0.0.6  10.0.0.6 10.0.0.6 -10.0.0.6 -10.0.0.6 -10.0.0.6 -10.0.0.6 -10.0.0.14 -10.0.0.6 +10.0.0.14  +10.0.0.6  10.0.0.14 10.0.0.15 -10.0.0.16 -10.0.0.6 +10.0.0.16  +10.0.0.6  10.0.0.16 10.0.0.17 -10.0.0.5 -10.0.0.1 +10.0.0.5  +10.0.0.1  10.0.0.17 10.0.0.15 -10.0.0.17 -10.0.0.18 +10.0.0.17  +10.0.0.18  10.0.0.18 10.0.0.10 -10.0.0.5 -10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 +10.0.0.5  +10.0.0.11  10.0.0.11 10.0.0.11 +10.0.0.11  +10.0.0.11  10.0.0.11 10.0.0.11 +10.0.0.11  +10.0.0.11  10.0.0.18 10.0.0.11 -10.0.0.11 -10.0.0.11 +10.0.0.11  +10.0.0.11  10.0.0.18 10.0.0.18 +10.0.0.18  +10.0.0.19  10.0.0.18 10.0.0.19 -10.0.0.18 -10.0.0.19 -10.0.0.19 -10.0.0.19 -10.0.0.19 -10.0.0.19 +10.0.0.19  +10.0.0.19  10.0.0.19 10.0.0.19 +10.0.0.19  +10.0.0.19  10.0.0.19 10.0.0.20 -10.0.0.20 -10.0.0.21 +10.0.0.20  +10.0.0.21  10.0.0.18 10.0.0.18 -10.0.0.22 -10.0.0.6 -10.0.0.5 -10.0.0.5 +10.0.0.22  +10.0.0.6  10.0.0.5 10.0.0.5 +10.0.0.5  +10.0.0.5  10.0.0.6 10.0.0.23 -10.0.0.24 -10.0.0.23 -10.0.0.23 -10.0.0.23 -10.0.0.23 -10.0.0.23 -10.0.0.23 -10.0.0.23 +10.0.0.24  +10.0.0.23  10.0.0.23 10.0.0.23 +10.0.0.23  +10.0.0.23  10.0.0.23 10.0.0.23 +10.0.0.23  +10.0.0.23  10.0.0.23 10.0.0.23 +10.0.0.23  +10.0.0.23  10.0.0.23 10.0.0.24 -10.0.0.24 -10.0.0.24 +10.0.0.24  +10.0.0.24  10.0.0.24 10.0.0.25 -10.0.0.26 -10.0.0.27 -10.0.0.23 +10.0.0.26  +10.0.0.27  10.0.0.23 10.0.0.23 -10.0.0.25 +10.0.0.23  +10.0.0.25  10.0.0.26 10.0.0.24 -10.0.0.24 -10.0.0.27 +10.0.0.24  +10.0.0.27  10.0.0.23 10.0.0.25 -10.0.0.26 -10.0.0.24 +10.0.0.26  +10.0.0.24  10.0.0.24 10.0.0.27 -10.0.0.25 -10.0.0.26 +10.0.0.25  +10.0.0.26  10.0.0.24 10.0.0.24 -10.0.0.27 -10.0.0.28 +10.0.0.27  +10.0.0.28  10.0.0.23 10.0.0.25 -10.0.0.24 -10.0.0.24 +10.0.0.24  +10.0.0.24  10.0.0.27 10.0.0.26 -10.0.0.23 -10.0.0.25 +10.0.0.23  +10.0.0.25  10.0.0.26 10.0.0.24 -10.0.0.24 -10.0.0.27 -10.0.0.23 -10.0.0.23 -10.0.0.23 +10.0.0.24  +10.0.0.27  10.0.0.23 10.0.0.23 +10.0.0.23  +10.0.0.23  10.0.0.23 10.0.0.23 +10.0.0.23  +10.0.0.23  10.0.0.23 10.0.0.23 -10.0.0.23 -10.0.0.27 -10.0.0.23 +10.0.0.27  +10.0.0.23  10.0.0.25 10.0.0.24 -10.0.0.24 -10.0.0.27 +10.0.0.24  +10.0.0.27  10.0.0.26 diff --git a/test/expected/test_sql_str_func.sh_949ffd5b2ef9fbcbe17f2e61ef7750f7038f6fd6.out b/test/expected/test_sql_str_func.sh_949ffd5b2ef9fbcbe17f2e61ef7750f7038f6fd6.out index f93d3487..a4419467 100644 --- a/test/expected/test_sql_str_func.sh_949ffd5b2ef9fbcbe17f2e61ef7750f7038f6fd6.out +++ b/test/expected/test_sql_str_func.sh_949ffd5b2ef9fbcbe17f2e61ef7750f7038f6fd6.out @@ -1,2 +1,2 @@ -regexp_match('^(\w+)=([^;]+);', 'abc=def;ghi=jkl;') +regexp_match('^(\w+)=([^;]+);', 'abc=def;ghi=jkl;')  {"col_0":"abc","col_1":"def"} diff --git a/test/test_sql_str_func.sh b/test/test_sql_str_func.sh index f1068727..816e2602 100644 --- a/test/test_sql_str_func.sh +++ b/test/test_sql_str_func.sh @@ -1,5 +1,7 @@ #! /bin/bash +export YES_COLOR=1 + run_cap_test ./drive_sql "select length(gzip(1))" run_cap_test ./drive_sql "select gunzip(gzip(1))" @@ -194,3 +196,6 @@ run_cap_test ${lnav_test} -n \ run_cap_test ${lnav_test} -n \ -c ';SELECT anonymize(bro_id_resp_h) FROM bro_http_log' \ ${test_dir}/logfile_bro_http.log.0 + +run_cap_test ${lnav_test} -nN \ + -c ";SELECT humanize_id('foo'), humanize_id('bar')"