[FEAT MERGE] implement values statement

Co-authored-by: wangt1xiuyi <13547954130@163.com>
This commit is contained in:
jingtaoye35
2023-08-30 10:44:18 +00:00
committed by ob-robot
parent 5a62e3cee9
commit 8015a958d0
59 changed files with 3135 additions and 536 deletions

View File

@ -108,7 +108,8 @@ enum PathType
FAKE_CTE_TABLE_ACCESS,
FUNCTION_TABLE_ACCESS,
TEMP_TABLE_ACCESS,
JSON_TABLE_ACCESS
JSON_TABLE_ACCESS,
VALUES_TABLE_ACCESS
};
enum JtColType {
@ -478,25 +479,6 @@ enum class ObParamOption {
MAX_VALUE
};
struct ObSqlArrayObj
{
ObSqlArrayObj()
: data_(nullptr),
count_(0),
element_()
{
}
typedef common::ObArrayWrap<common::ObObjParam> DataArray;
static ObSqlArrayObj *alloc(common::ObIAllocator &allocator, int64_t count);
TO_STRING_KV("data", DataArray(data_, count_),
K_(count),
K_(element));
common::ObObjParam *data_;
// ObObjParam *data_1_;
int64_t count_;
common::ObDataType element_;
};
enum DominateRelation
{
OBJ_LEFT_DOMINATE = 0,
@ -573,21 +555,6 @@ enum ObIDPAbortType
IDP_NO_ABORT = 4
};
OB_INLINE ObSqlArrayObj *ObSqlArrayObj::alloc(common::ObIAllocator &allocator, int64_t count)
{
ObSqlArrayObj *array_obj = nullptr;
void *array_buf = nullptr;
void *data_buf = nullptr;
int64_t array_size = sizeof(ObSqlArrayObj) + sizeof(common::ObObjParam) * count;
if (OB_NOT_NULL(array_buf = allocator.alloc(array_size))) {
array_obj = new (array_buf) ObSqlArrayObj();
data_buf = static_cast<char*>(array_buf) + sizeof(ObSqlArrayObj);
array_obj->data_ = new (data_buf) common::ObObjParam[count];
array_obj->count_ = count;
}
return array_obj;
}
struct ObSqlDatumArray
{
ObSqlDatumArray()