MySQL 9.3.0
Source Code Documentation
merge_patch.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024, 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, but
17 * WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
19 * the GNU General Public License, version 2.0, 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 Foundation, Inc.,
23 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24 */
25
26#ifndef ROUTER_SRC_MYSQL_REST_SERVICE_INCLUDE_MRS_DATABASE_JSON_MAPPER_VIEW_MERGE_PATCH_H_
27#define ROUTER_SRC_MYSQL_REST_SERVICE_INCLUDE_MRS_DATABASE_JSON_MAPPER_VIEW_MERGE_PATCH_H_
28
29#ifdef RAPIDJSON_NO_SIZETYPEDEFINE
30#include "my_rapidjson_size_t.h"
31#endif
32
33#include <rapidjson/document.h>
34#include <memory>
35#include <string>
36
43
44namespace mrs {
45namespace database {
46namespace dv {
47
49 public:
50 RowMergePatch(std::shared_ptr<RowMergePatch> parent,
51 std::shared_ptr<Table> table, const PrimaryKeyColumnValues &pk,
52 const ObjectRowOwnership &row_ownership);
53
55 JSONInputArray input) override;
56
57 void run(MySQLSession *session) override;
58};
59
60} // namespace dv
61} // namespace database
62} // namespace mrs
63
64#endif // ROUTER_SRC_MYSQL_REST_SERVICE_INCLUDE_MRS_DATABASE_JSON_MAPPER_VIEW_MERGE_PATCH_H_
Definition: object_row_ownership.h:45
Definition: json_input.h:157
std::shared_ptr< Operation > parent() const
Definition: change.h:82
const std::shared_ptr< Table > & table() const
Definition: change.h:80
Definition: merge_patch.h:48
RowMergePatch(std::shared_ptr< RowMergePatch > parent, std::shared_ptr< Table > table, const PrimaryKeyColumnValues &pk, const ObjectRowOwnership &row_ownership)
Definition: merge_patch.cc:32
void run(MySQLSession *session) override
Definition: merge_patch.cc:40
void process_to_many(const ForeignKeyReference &fk, JSONInputArray input) override
Definition: merge_patch.cc:37
Definition: mysql_session.h:157
Define rapidjson::SizeType to be std::uint64_t.
entry::ForeignKeyReference ForeignKeyReference
Definition: select.h:54
std::map< std::string, mysqlrouter::sqlstring > PrimaryKeyColumnValues
Definition: select.h:43
Definition: authorize_manager.h:48