代码拉取完成,页面将自动刷新
同步操作将从 SequoiaDB/sequoiasql-mysql 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/* Copyright (c) 2018-2019, SequoiaDB and/or its affiliates. All rights
reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
#ifndef SDB_UTIL__H
#define SDB_UTIL__H
#include <sql_class.h>
#include <my_aes.h>
#include <client.hpp>
#include "sdb_errcode.h"
#define SDB_MIN(x, y) (((x) < (y)) ? (x) : (y))
int sdb_parse_table_name(const char *from, char *db_name, int db_name_max_size,
char *table_name, int table_name_max_size);
int sdb_get_db_name_from_path(const char *path, char *db_name,
int db_name_max_size);
int sdb_rebuild_db_name_of_temp_table(char *db_name, int db_name_max_size);
bool sdb_is_tmp_table(const char *path, const char *table_name);
int sdb_convert_charset(const String &src_str, String &dst_str,
const CHARSET_INFO *dst_charset);
bool sdb_field_is_floating(enum_field_types type);
bool sdb_field_is_date_time(enum_field_types type);
class Sdb_encryption {
static const uint KEY_LEN = 32;
static const enum my_aes_opmode AES_OPMODE = my_aes_128_ecb;
unsigned char m_key[KEY_LEN];
public:
Sdb_encryption();
int encrypt(const String &src, String &dst);
int decrypt(const String &src, String &dst);
};
template <class T>
class Sdb_obj_cache {
public:
Sdb_obj_cache();
~Sdb_obj_cache();
int ensure(uint size);
void release();
inline const T &operator[](int i) const {
DBUG_ASSERT(i >= 0 && i < (int)m_cache_size);
return m_cache[i];
}
inline T &operator[](int i) {
DBUG_ASSERT(i >= 0 && i < (int)m_cache_size);
return m_cache[i];
}
private:
T *m_cache;
uint m_cache_size;
};
template <class T>
Sdb_obj_cache<T>::Sdb_obj_cache() {
m_cache = NULL;
m_cache_size = 0;
}
template <class T>
Sdb_obj_cache<T>::~Sdb_obj_cache() {
release();
}
template <class T>
int Sdb_obj_cache<T>::ensure(uint size) {
DBUG_ASSERT(size > 0);
if (size <= m_cache_size) {
// reset all objects to be used
for (uint i = 0; i < size; i++) {
m_cache[i] = T();
}
return SDB_ERR_OK;
}
release();
m_cache = new (std::nothrow) T[size];
if (NULL == m_cache) {
return HA_ERR_OUT_OF_MEM;
}
m_cache_size = size;
return SDB_ERR_OK;
}
template <class T>
void Sdb_obj_cache<T>::release() {
if (NULL != m_cache) {
delete[] m_cache;
m_cache = NULL;
m_cache_size = 0;
}
}
#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。