MySQL
9.4.0
Source Code Documentation
sqlstring_utils.h
Go to the documentation of this file.
1
/*
2
Copyright (c) 2025, Oracle and/or its affiliates.
3
4
This program is free software; you can redistribute it and/or modify
5
it under the terms of the GNU General Public License, version 2.0,
6
as published by the Free Software Foundation.
7
8
This program is designed to work with certain software (including
9
but not limited to OpenSSL) that is licensed under separate terms,
10
as designated in a particular file or component or in included license
11
documentation. The authors of MySQL hereby grant you an additional
12
permission to link the program and your derivative works with the
13
separately licensed software that they have either included with
14
the program or referenced in the documentation.
15
16
This program is distributed in the hope that it will be useful,
17
but WITHOUT ANY WARRANTY; without even the implied warranty of
18
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
GNU General Public License for more details.
20
21
You should have received a copy of the GNU General Public License
22
along with this program; if not, write to the Free Software
23
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24
*/
25
26
#ifndef _MYSQL_REST_SERVICE_INCLUDE_HELPER_SQLSTRING_UTILS_H_
27
#define _MYSQL_REST_SERVICE_INCLUDE_HELPER_SQLSTRING_UTILS_H_
28
29
#include <string>
30
#include "
mrs/endpoint/handler/helper/utilities.h
"
31
#include "
mysqlrouter/utils_sqlstring.h
"
32
33
namespace
helper
{
34
35
using
DataType
=
mrs::database::entry::ColumnType
;
36
37
inline
mysqlrouter::sqlstring
get_sql_format
(
DataType
type
) {
38
using namespace
helper
;
39
switch
(
type
) {
40
case
DataType::BINARY
:
41
return
mysqlrouter::sqlstring
(
"FROM_BASE64(?)"
);
42
43
case
DataType::GEOMETRY
:
44
return
mysqlrouter::sqlstring
(
"ST_GeomFromGeoJSON(?)"
);
45
46
case
DataType::VECTOR:
47
return
mysqlrouter::sqlstring
(
"STRING_TO_VECTOR(?)"
);
48
49
case
DataType::JSON:
50
return
mysqlrouter::sqlstring
(
"CAST(? as JSON)"
);
51
52
default
: {
53
}
54
}
55
56
return
mysqlrouter::sqlstring
(
"?"
);
57
}
58
59
inline
mysqlrouter::sqlstring
get_sql_formatted
(
const
rapidjson::Value &
value
,
60
DataType
type
) {
61
using namespace
helper::json::sql
;
62
63
auto
tmp =
get_sql_format
(
type
);
64
tmp <<
value
;
65
return
tmp;
66
}
67
68
}
// namespace helper
69
70
#endif
/* _MYSQL_REST_SERVICE_INCLUDE_HELPER_SQLSTRING_UTILS_H_ */
mysqlrouter::sqlstring
Definition:
utils_sqlstring.h:67
Mysqlx::Resultset::GEOMETRY
@ GEOMETRY
Definition:
mysqlx_resultset.proto:613
binlog::monitoring::BINARY
@ BINARY
Definition:
context.h:38
helper::json::sql
Definition:
to_sqlstring.h:78
helper
Definition:
cache.h:33
helper::DataType
mrs::database::entry::ColumnType DataType
Definition:
sqlstring_utils.h:35
helper::get_sql_formatted
mysqlrouter::sqlstring get_sql_formatted(const rapidjson::Value &value, DataType type)
Definition:
sqlstring_utils.h:59
helper::get_sql_format
mysqlrouter::sqlstring get_sql_format(DataType type)
Definition:
sqlstring_utils.h:37
mrs::database::entry::ColumnType
ColumnType
Definition:
column_type.h:48
mrs::database::inner::value
ValueType value(const std::optional< ValueType > &v)
Definition:
gtid.h:83
mrs::database::sqlstring
mysqlrouter::sqlstring sqlstring
Definition:
query_retry_on_ro.cc:36
type
required string type
Definition:
replication_group_member_actions.proto:34
utilities.h
utils_sqlstring.h
router
src
mysql_rest_service
include
helper
sqlstring_utils.h
Generated by
1.9.2