同步source code

日期: 12-26
    revision: ee5b054c
This commit is contained in:
dengxuyue
2020-12-28 22:19:21 +08:00
parent b7337ff802
commit 1567043064
6076 changed files with 2376818 additions and 741042 deletions

View File

@ -50,18 +50,32 @@ ScalarVector::~ScalarVector()
void ScalarVector::init(MemoryContext cxt, ScalarDesc desc)
{
m_desc = desc;
MemoryContext old_cxt = MemoryContextSwitchTo(cxt);
MemoryContext oldCxt = MemoryContextSwitchTo(cxt);
m_flag = (uint8*)palloc0(sizeof(uint8) * BatchMaxSize);
m_vals = (ScalarValue*)palloc(sizeof(ScalarValue) * BatchMaxSize);
(void)MemoryContextSwitchTo(old_cxt);
MemoryContextSwitchTo(oldCxt);
m_buf = New(cxt) VarBuf(cxt);
BindingFp();
}
void ScalarVector::init(MemoryContext cxt, ScalarVector *vec, const int batchSize)
{
m_desc = vec->m_desc;
m_rows = vec->m_rows;
m_buf = vec->m_buf;
MemoryContext oldCxt = MemoryContextSwitchTo(cxt);
m_flag = (uint8*)palloc0(sizeof(uint8) * batchSize);
m_vals = (ScalarValue*)palloc(sizeof(ScalarValue) * batchSize);
MemoryContextSwitchTo(oldCxt);
BindingFp();
}
void ScalarVector::Serialize(StringInfo buf, int idx)
{
pq_sendint8(buf, m_flag[idx]);
@ -692,7 +706,7 @@ Datum ScalarVector::DatumCstringToScalar(Datum data, Size len)
src_ptr = DatumGetPointer(data);
char* result = NULL;
if ((len + VARHDRSZ_SHORT) <= VARATT_SHORT_MAX) {
if ((len + VARHDRSZ_SHORT) < VARATT_SHORT_MAX) {
var_len = len + VARHDRSZ_SHORT + 1;
result = (char*)palloc(var_len);
SET_VARSIZE_SHORT(result, var_len);
@ -941,7 +955,7 @@ Datum ScalarVector::AddCStringVar(Datum data, int aindex)
Size len = strlen(DatumGetPointer(data)) + 1;
char* result = NULL;
if ((len + VARHDRSZ_SHORT) <= VARATT_SHORT_MAX) {
if ((len + VARHDRSZ_SHORT) < VARATT_SHORT_MAX) {
var_len = len + VARHDRSZ_SHORT + 1;
result = (char*)m_buf->Allocate(var_len);
SET_VARSIZE_SHORT(result, var_len);
@ -1108,7 +1122,7 @@ varBuf* VarBuf::CreateBuf(int data_len)
AutoContextSwitch memGuard(m_context);
buf = (varBuf*)palloc(sizeof(varBuf));
buf->len = 0;
buf->size = data_len < m_bufInitLen ? m_bufInitLen : data_len;
buf->size = (data_len < m_bufInitLen) ? m_bufInitLen : data_len;
buf->next = NULL;
buf->buf = (char*)palloc(buf->size);
m_bufNum++;