Skip to content

File db_json_path.cpp

FileList > compat > db_json_path.cpp

Go to the source code of this file

  • #include "db_json_path.hpp"
  • #include "db_json.hpp"
  • #include "db_rapidjson.hpp"
  • #include "memory_alloc.h"
  • #include "string_opfunc.h"
  • #include "system_parameter.h"
  • #include <algorithm>
  • #include <cctype>
  • #include <cerrno>
  • #include <cstdlib>
  • #include <limits>
  • #include <string>
  • #include <unordered_set>
  • #include <vector>
  • #include "memory_wrapper.hpp"

Public Types

Type Name
enum JSON_PATH_TYPE

Public Functions

Type Name
int db_json_path_unquote_object_keys (std::string & sql_path)
int db_json_split_path_by_delimiters (const std::string & path, const std::string & delim, bool allow_empty, std::vector< std::string > & split_path)

Public Static Functions

Type Name
JSON_PATH_TYPE db_json_get_path_type (std::string & path_string)
bool db_json_isspace (const unsigned char & ch)
bool db_json_iszero (const unsigned char & ch)
int db_json_path_is_token_valid_array_index (const std::string & str, bool allow_wildcards, unsigned long & index, std::size_t start=0, std::size_t end=0)
bool db_json_path_is_token_valid_quoted_object_key (const std::string & path, std::size_t & token_begin)
bool db_json_path_is_token_valid_unquoted_object_key (const std::string & path, std::size_t & token_begin)
bool db_json_path_is_valid_identifier_char (unsigned char ch)
bool db_json_path_is_valid_identifier_start_char (unsigned char ch)
bool db_json_path_quote_and_validate_unquoted_object_key (std::string & path, std::size_t & token_begin)
void db_json_remove_leading_zeros_index (std::string & index)
void db_json_trim_leading_spaces (std::string & path_string)
std::size_t skip_whitespaces (const std::string & path, std::size_t token_begin)

Public Types Documentation

enum JSON_PATH_TYPE

enum JSON_PATH_TYPE {
    JSON_PATH_SQL_JSON,
    JSON_PATH_POINTER
};

Public Functions Documentation

function db_json_path_unquote_object_keys

int db_json_path_unquote_object_keys (
    std::string & sql_path
) 

function db_json_split_path_by_delimiters

int db_json_split_path_by_delimiters (
    const std::string & path,
    const std::string & delim,
    bool allow_empty,
    std::vector< std::string > & split_path
) 

Public Static Functions Documentation

function db_json_get_path_type

static JSON_PATH_TYPE db_json_get_path_type (
    std::string & path_string
) 

function db_json_isspace

static bool db_json_isspace (
    const  unsigned  char & ch
) 

function db_json_iszero

static bool db_json_iszero (
    const  unsigned  char & ch
) 

function db_json_path_is_token_valid_array_index

static int db_json_path_is_token_valid_array_index (
    const std::string & str,
    bool allow_wildcards,
    unsigned  long & index,
    std::size_t start=0,
    std::size_t end=0
) 

function db_json_path_is_token_valid_quoted_object_key

static bool db_json_path_is_token_valid_quoted_object_key (
    const std::string & path,
    std::size_t & token_begin
) 

function db_json_path_is_token_valid_unquoted_object_key

static bool db_json_path_is_token_valid_unquoted_object_key (
    const std::string & path,
    std::size_t & token_begin
) 

function db_json_path_is_valid_identifier_char

static bool db_json_path_is_valid_identifier_char (
    unsigned  char ch
) 

function db_json_path_is_valid_identifier_start_char

static bool db_json_path_is_valid_identifier_start_char (
    unsigned  char ch
) 

function db_json_path_quote_and_validate_unquoted_object_key

static bool db_json_path_quote_and_validate_unquoted_object_key (
    std::string & path,
    std::size_t & token_begin
) 

function db_json_remove_leading_zeros_index

static void db_json_remove_leading_zeros_index (
    std::string & index
) 

function db_json_trim_leading_spaces

static void db_json_trim_leading_spaces (
    std::string & path_string
) 

function skip_whitespaces

static std::size_t skip_whitespaces (
    const std::string & path,
    std::size_t token_begin
) 


The documentation for this class was generated from the following file cubrid/src/compat/db_json_path.cpp