message: implement whitespace detection
diff: #include "duckdb/function/scalar/string_functions.hpp"
  -
  +#include "duckdb/function/scalar/regexp.hpp"
  #include "duckdb/common/types/chunk_collection.hpp"
  #include "duckdb/common/types/data_chunk.hpp"
  #include "duckdb/common/types/vector.hpp"
  namespace duckdb {
  static bool whitespace_ascii(const char &c) {
  - // TODO: implement
  - return c == ' ';
  + return c == ' ' || c == '\r' || c == '\n' || c == '\t' || c == '\f' || c == '\v';
  }
  static bool whitespace_utf8(const char &c) {
  - // TODO: implement
  - return c == ' ';
  + const utf8proc_property_t *char_props = utf8proc_get_property(c);
  + return char_props->bidi_class == UTF8PROC_BIDI_CLASS_B ||
  + char_props->bidi_class == UTF8PROC_BIDI_CLASS_S ||
  + char_props->bidi_class == UTF8PROC_BIDI_CLASS_WS;
  }
  void tokenize_ascii(const char *input_data, size_t input_size, ChunkCollection &result) {
  @@ -112,17 +113,17 @@ unique_ptr<ChunkCollection> tokenize(string_t input) {
  }
  }
  - auto tokenized_string = make_unique<ChunkCollection>();
  + auto output = make_unique<ChunkCollection>();
  vector<LogicalType> types = {LogicalType::VARCHAR};
  - tokenized_string->types = types;
  + output->types = types;
  if (ascii_only) {
  - tokenize_ascii(input_data, input_size, *tokenized_string);
  + tokenize_ascii(input_data, input_size, *output);
  } else {
  - tokenize_unicode(input_data, input_size, *tokenized_string);
  + tokenize_unicode(input_data, input_size, *output);
  }
  - return tokenized_string;
  + return output;
  }
  static void tokenize_function(DataChunk &args, ExpressionState &state, Vector &result) {
  @@ -160,8 +161,7 @@ void TokenizeFun::RegisterFunction(BuiltinFunctions &set) {
  child_list_t<LogicalType> child_types;
  child_types.push_back(std::make_pair("token", LogicalType::VARCHAR));
  auto varchar_list_type = LogicalType(LogicalTypeId::LIST, child_types);
  - set.AddFunction(
  - ScalarFunction("tokenize", {LogicalType::VARCHAR}, varchar_list_type, tokenize_function));
  + set.AddFunction(ScalarFunction("tokenize", {LogicalType::VARCHAR}, varchar_list_type, tokenize_function));
  }
  } // namespace duckdb
  