1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-01 06:46:55 +03:00

MCOL-5162 This patch allows for an automatic upgrade of syscat tables via dbbuilder.

We have added a new function, SystemCatalog::upgrade(), which will
create a new column in the database and fill it with default values.
It uses a reference column to fill the column, which is passed as a
std::unordered_map<key, value> value to SystemCatalog::upgrade()
function, where key is the target column which needs to be created.
In addition, we pass additional std::unordered_map's to
SystemCatalog::upgrade() containing information such as the datatypes
and colwidths of the target and reference columns, as well as the
default value which will be used to fill the target column.
This commit is contained in:
Gagan Goel
2022-07-22 18:05:34 +00:00
parent 56bbef62e6
commit 1a849c88e8
3 changed files with 113 additions and 34 deletions

View File

@ -23,12 +23,19 @@
#pragma once
#include "writeengine.h"
#include <unordered_map>
#include <utility>
using OidTypeT = std::pair<execplan::CalpontSystemCatalog::ColDataType, int>;
class SystemCatalog
{
public:
void build();
void remove();
int upgrade(const std::unordered_map<int, std::pair<int, bool>>&,
std::unordered_map<int, OidTypeT>,
std::unordered_map<int, std::string>);
private:
WriteEngine::WriteEngineWrapper fWriteEngine;