You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-01 06:46:55 +03:00
Merge pull request #820 from mariadb-corporation/MCOL-3424
MCOL-3424 Fix handler API breakage for write_row()
This commit is contained in:
@ -304,7 +304,7 @@ int ha_calpont::close(void)
|
|||||||
sql_insert.cc, sql_select.cc, sql_table.cc, sql_udf.cc and sql_update.cc
|
sql_insert.cc, sql_select.cc, sql_table.cc, sql_udf.cc and sql_update.cc
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int ha_calpont::write_row(uchar* buf)
|
int ha_calpont::write_row(const uchar* buf)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("ha_calpont::write_row");
|
DBUG_ENTER("ha_calpont::write_row");
|
||||||
int rc = ha_calpont_impl_write_row(buf, table);
|
int rc = ha_calpont_impl_write_row(buf, table);
|
||||||
|
@ -135,7 +135,7 @@ public:
|
|||||||
We implement this in ha_example.cc. It's not an obligatory method;
|
We implement this in ha_example.cc. It's not an obligatory method;
|
||||||
skip it and and MySQL will treat it as not implemented.
|
skip it and and MySQL will treat it as not implemented.
|
||||||
*/
|
*/
|
||||||
int write_row(uchar* buf);
|
int write_row(const uchar* buf);
|
||||||
|
|
||||||
/** @brief
|
/** @brief
|
||||||
We implement this in ha_example.cc. It's not an obligatory method;
|
We implement this in ha_example.cc. It's not an obligatory method;
|
||||||
|
@ -653,7 +653,7 @@ int ha_calpont_impl_write_last_batch(TABLE* table, cal_connection_info& ci, bool
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int ha_calpont_impl_write_row_(uchar* buf, TABLE* table, cal_connection_info& ci, ha_rows& rowsInserted)
|
int ha_calpont_impl_write_row_(const uchar* buf, TABLE* table, cal_connection_info& ci, ha_rows& rowsInserted)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
//timer.start( "buildValueList");
|
//timer.start( "buildValueList");
|
||||||
@ -743,13 +743,13 @@ int ha_calpont_impl_write_row_(uchar* buf, TABLE* table, cal_connection_info& ci
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int ha_calpont_impl_write_batch_row_(uchar* buf, TABLE* table, cal_impl_if::cal_connection_info& ci)
|
int ha_calpont_impl_write_batch_row_(const uchar* buf, TABLE* table, cal_impl_if::cal_connection_info& ci)
|
||||||
{
|
{
|
||||||
ByteStream rowData;
|
ByteStream rowData;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
//std::ostringstream data;
|
//std::ostringstream data;
|
||||||
bool nullVal = false;
|
bool nullVal = false;
|
||||||
uchar* bufHdr = buf; // bit flag indicating a field is null. Only those fields that are nullable are represented.
|
const uchar* bufHdr = buf; // bit flag indicating a field is null. Only those fields that are nullable are represented.
|
||||||
int32_t headerByte = 0; // Current byte in the bufHdr
|
int32_t headerByte = 0; // Current byte in the bufHdr
|
||||||
int32_t headerBit = 0; // current bit in the bufHdr current byte.
|
int32_t headerBit = 0; // current bit in the bufHdr current byte.
|
||||||
uint16_t colpos = 0;
|
uint16_t colpos = 0;
|
||||||
@ -815,7 +815,7 @@ int ha_calpont_impl_write_batch_row_(uchar* buf, TABLE* table, cal_impl_if::cal_
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uchar* tmp1 = buf;
|
const uchar* tmp1 = buf;
|
||||||
uint32_t tmp = (tmp1[2] << 16) + (tmp1[1] << 8) + tmp1[0];
|
uint32_t tmp = (tmp1[2] << 16) + (tmp1[1] << 8) + tmp1[0];
|
||||||
|
|
||||||
int day = tmp & 0x0000001fl;
|
int day = tmp & 0x0000001fl;
|
||||||
@ -1491,11 +1491,12 @@ int ha_calpont_impl_write_batch_row_(uchar* buf, TABLE* table, cal_impl_if::cal_
|
|||||||
|
|
||||||
if (ci.columnTypes[colpos].scale == 0)
|
if (ci.columnTypes[colpos].scale == 0)
|
||||||
{
|
{
|
||||||
uchar* tmpBuf = buf;
|
const uchar* tmpBuf = buf;
|
||||||
//test flag bit for sign
|
//test flag bit for sign
|
||||||
bool posNum = tmpBuf[0] & (0x80);
|
bool posNum = tmpBuf[0] & (0x80);
|
||||||
tmpBuf[0] ^= 0x80; //flip the bit
|
uchar tmpChr = tmpBuf[0];
|
||||||
int32_t tmp1 = tmpBuf[0];
|
tmpChr ^= 0x80; //flip the bit
|
||||||
|
int32_t tmp1 = tmpChr;
|
||||||
|
|
||||||
if (totalBytes > 4)
|
if (totalBytes > 4)
|
||||||
{
|
{
|
||||||
@ -1589,11 +1590,12 @@ int ha_calpont_impl_write_batch_row_(uchar* buf, TABLE* table, cal_impl_if::cal_
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uchar* tmpBuf = buf;
|
const uchar* tmpBuf = buf;
|
||||||
//test flag bit for sign
|
//test flag bit for sign
|
||||||
bool posNum = tmpBuf[0] & (0x80);
|
bool posNum = tmpBuf[0] & (0x80);
|
||||||
tmpBuf[0] ^= 0x80; //flip the bit
|
uchar tmpChr = tmpBuf[0];
|
||||||
int32_t tmp1 = tmpBuf[0];
|
tmpChr ^= 0x80; //flip the bit
|
||||||
|
int32_t tmp1 = tmpChr;
|
||||||
|
|
||||||
//fetch the digits before decimal point
|
//fetch the digits before decimal point
|
||||||
if (bytesBefore == 0)
|
if (bytesBefore == 0)
|
||||||
@ -1805,7 +1807,7 @@ int ha_calpont_impl_write_batch_row_(uchar* buf, TABLE* table, cal_impl_if::cal_
|
|||||||
buf = buf + 2 ;
|
buf = buf + 2 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
uchar* tmpBuf = buf;
|
const uchar* tmpBuf = buf;
|
||||||
|
|
||||||
for (int32_t i = 0; i < dataLength; i++)
|
for (int32_t i = 0; i < dataLength; i++)
|
||||||
{
|
{
|
||||||
@ -1831,7 +1833,7 @@ int ha_calpont_impl_write_batch_row_(uchar* buf, TABLE* table, cal_impl_if::cal_
|
|||||||
if ( dataLength > ci.columnTypes[colpos].colWidth)
|
if ( dataLength > ci.columnTypes[colpos].colWidth)
|
||||||
dataLength = ci.columnTypes[colpos].colWidth;
|
dataLength = ci.columnTypes[colpos].colWidth;
|
||||||
|
|
||||||
uchar* tmpBuf = buf;
|
const uchar* tmpBuf = buf;
|
||||||
|
|
||||||
for (int32_t i = 0; i < dataLength; i++)
|
for (int32_t i = 0; i < dataLength; i++)
|
||||||
{
|
{
|
||||||
|
@ -2937,7 +2937,7 @@ int ha_calpont_impl_delete_table(const char* name)
|
|||||||
int rc = ha_calpont_impl_delete_table_(dbName, name, *ci);
|
int rc = ha_calpont_impl_delete_table_(dbName, name, *ci);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
int ha_calpont_impl_write_row(uchar* buf, TABLE* table)
|
int ha_calpont_impl_write_row(const uchar* buf, TABLE* table)
|
||||||
{
|
{
|
||||||
THD* thd = current_thd;
|
THD* thd = current_thd;
|
||||||
//sleep(100);
|
//sleep(100);
|
||||||
|
@ -31,7 +31,7 @@ extern int ha_calpont_impl_close(void);
|
|||||||
extern int ha_calpont_impl_rnd_init(TABLE* table);
|
extern int ha_calpont_impl_rnd_init(TABLE* table);
|
||||||
extern int ha_calpont_impl_rnd_next(uchar* buf, TABLE* table);
|
extern int ha_calpont_impl_rnd_next(uchar* buf, TABLE* table);
|
||||||
extern int ha_calpont_impl_rnd_end(TABLE* table, bool is_derived_hand = false);
|
extern int ha_calpont_impl_rnd_end(TABLE* table, bool is_derived_hand = false);
|
||||||
extern int ha_calpont_impl_write_row(uchar* buf, TABLE* table);
|
extern int ha_calpont_impl_write_row(const uchar* buf, TABLE* table);
|
||||||
extern void ha_calpont_impl_start_bulk_insert(ha_rows rows, TABLE* table);
|
extern void ha_calpont_impl_start_bulk_insert(ha_rows rows, TABLE* table);
|
||||||
extern int ha_calpont_impl_end_bulk_insert(bool abort, TABLE* table);
|
extern int ha_calpont_impl_end_bulk_insert(bool abort, TABLE* table);
|
||||||
extern int ha_calpont_impl_rename_table(const char* from, const char* to);
|
extern int ha_calpont_impl_rename_table(const char* from, const char* to);
|
||||||
@ -56,8 +56,8 @@ extern int ha_cs_impl_pushdown_init(mcs_handler_info* handler_info , TABLE* tabl
|
|||||||
#include "ha_calpont.h"
|
#include "ha_calpont.h"
|
||||||
#include "ha_mcs_pushdown.h"
|
#include "ha_mcs_pushdown.h"
|
||||||
extern int ha_calpont_impl_rename_table_(const char* from, const char* to, cal_impl_if::cal_connection_info& ci);
|
extern int ha_calpont_impl_rename_table_(const char* from, const char* to, cal_impl_if::cal_connection_info& ci);
|
||||||
extern int ha_calpont_impl_write_row_(uchar* buf, TABLE* table, cal_impl_if::cal_connection_info& ci, ha_rows& rowsInserted);
|
extern int ha_calpont_impl_write_row_(const uchar* buf, TABLE* table, cal_impl_if::cal_connection_info& ci, ha_rows& rowsInserted);
|
||||||
extern int ha_calpont_impl_write_batch_row_(uchar* buf, TABLE* table, cal_impl_if::cal_connection_info& ci);
|
extern int ha_calpont_impl_write_batch_row_(const uchar* buf, TABLE* table, cal_impl_if::cal_connection_info& ci);
|
||||||
extern int ha_calpont_impl_write_last_batch(TABLE* table, cal_impl_if::cal_connection_info& ci, bool abort);
|
extern int ha_calpont_impl_write_last_batch(TABLE* table, cal_impl_if::cal_connection_info& ci, bool abort);
|
||||||
extern int ha_calpont_impl_commit_ (handlerton* hton, THD* thd, bool all, cal_impl_if::cal_connection_info& ci);
|
extern int ha_calpont_impl_commit_ (handlerton* hton, THD* thd, bool all, cal_impl_if::cal_connection_info& ci);
|
||||||
extern int ha_calpont_impl_rollback_ (handlerton* hton, THD* thd, bool all, cal_impl_if::cal_connection_info& ci);
|
extern int ha_calpont_impl_rollback_ (handlerton* hton, THD* thd, bool all, cal_impl_if::cal_connection_info& ci);
|
||||||
|
Reference in New Issue
Block a user