129 void set(
const unsigned nsz);
178 void load_key(
char* data,
index_desc_t* pindex =
nullptr);
180 void load_value(
char* data,
index_desc_t* pindex =
nullptr);
182 void store_key(
char* data,
size_t& length,
index_desc_t* pindex =
nullptr);
184 void store_value(
char* data,
size_t& length,
index_desc_t* pindex =
nullptr);
226 return (_fixed_offset);
230 return (_var_slot_offset);
234 return (_var_offset);
238 return (_null_count);
241 unsigned size()
const;
248 void set_null(
const unsigned idx);
250 void set_value(
const unsigned idx,
const int v);
252 void set_value(
const unsigned idx,
const bool v);
254 void set_value(
const unsigned idx,
const short v);
256 void set_value(
const unsigned idx,
const double v);
258 void set_value(
const unsigned idx,
const long long v);
260 void set_value(
const unsigned idx,
const uint64_t v);
262 void set_value(
const unsigned idx,
const decimal v);
264 void set_value(
const unsigned idx,
const time_t v);
266 void set_value(
const unsigned idx,
const char v);
268 void set_value(
const unsigned idx,
const char*
string);
270 void set_value(
const unsigned idx,
const timestamp_t& time);
277 bool get_value(
const unsigned idx,
int& dest)
const;
279 bool get_value(
const unsigned idx,
bool& dest)
const;
281 bool get_value(
const unsigned idx,
short& dest)
const;
283 bool get_value(
const unsigned idx,
char& dest)
const;
285 bool get_value(
const unsigned idx,
char* destbuf,
const unsigned bufsize)
const;
287 bool get_value(
const unsigned idx,
double& dest)
const;
289 bool get_value(
const unsigned idx, uint64_t& dest)
const;
291 bool get_value(
const unsigned idx,
long long& dest)
const;
293 bool get_value(
const unsigned idx,
decimal& dest)
const;
295 bool get_value(
const unsigned idx, time_t& dest)
const;
297 bool get_value(
const unsigned idx,
timestamp_t& dest)
const;
304 void print_values(ostream& os = cout);
306 void print_tuple_no_tracing();
318 for (
unsigned i = 0; i < _field_cnt; i++) {
340 template<
class M,
class T=table_row_t>
347 : ptr(m->get_tuple()),
353 manager->give_tuple(ptr);
390 assert (idx < _field_cnt);
391 assert (_pvalues[idx].is_setup());
392 _pvalues[idx].set_null();
397 assert (idx < _field_cnt);
398 assert (_pvalues[idx].is_setup());
399 _pvalues[idx].set_int_value(v);
404 assert (idx < _field_cnt);
405 assert (_pvalues[idx].is_setup());
406 _pvalues[idx].set_bit_value(v);
411 assert (idx < _field_cnt);
412 assert (_pvalues[idx].is_setup());
413 _pvalues[idx].set_smallint_value(v);
418 assert (idx < _field_cnt);
419 assert (_pvalues[idx].is_setup());
420 _pvalues[idx].set_float_value(v);
425 assert (idx < _field_cnt);
426 assert (_pvalues[idx].is_setup());
427 _pvalues[idx].set_long_value(v);
432 assert (idx < _field_cnt);
433 assert (_pvalues[idx].is_setup());
434 _pvalues[idx].set_long_value(v);
439 assert (idx < _field_cnt);
440 assert (_pvalues[idx].is_setup());
441 _pvalues[idx].set_decimal_value(v);
446 assert (idx < _field_cnt);
447 assert (_pvalues[idx].is_setup());
448 _pvalues[idx].set_time_value(v);
453 assert (idx < _field_cnt);
454 assert (_pvalues[idx].is_setup());
455 _pvalues[idx].set_char_value(v);
460 assert (idx < _field_cnt);
461 assert (_pvalues[idx].is_setup());
463 sqltype_t sqlt = _pvalues[idx].field_desc()->type();
466 int len = strlen(
string);
469 _pvalues[idx].set_var_string_value(
string, len);
472 _pvalues[idx].set_fixed_string_value(
string, len);
478 assert (idx < _field_cnt);
479 assert (_pvalues[idx].is_setup());
480 _pvalues[idx].set_value(&time, 0);
492 assert(idx < _field_cnt);
493 if (_pvalues[idx].is_null()) {
497 dest = _pvalues[idx].get_int_value();
504 assert(idx < _field_cnt);
505 if (_pvalues[idx].is_null()) {
509 dest = _pvalues[idx].get_bit_value();
516 assert(idx < _field_cnt);
517 if (_pvalues[idx].is_null()) {
521 dest = _pvalues[idx].get_smallint_value();
528 assert(idx < _field_cnt);
529 if (_pvalues[idx].is_null()) {
533 dest = _pvalues[idx].get_char_value();
539 const unsigned bufsize)
const {
541 assert(idx < _field_cnt);
542 if (_pvalues[idx].is_null()) {
547 unsigned sz =
MIN(bufsize - 1, _pvalues[idx]._max_size);
548 _pvalues[idx].get_string_value(destbuf, sz);
554 double& dest)
const {
556 assert(idx < _field_cnt);
557 if (_pvalues[idx].is_null()) {
561 dest = _pvalues[idx].get_float_value();
566 long long& dest)
const {
568 assert(idx < _field_cnt);
569 if (_pvalues[idx].is_null()) {
573 dest = _pvalues[idx].get_long_value();
578 uint64_t& dest)
const {
580 assert(idx < _field_cnt);
581 if (_pvalues[idx].is_null()) {
585 dest = _pvalues[idx].get_long_value();
592 assert(idx < _field_cnt);
593 if (_pvalues[idx].is_null()) {
597 dest = _pvalues[idx].get_decimal_value();
602 time_t& dest)
const {
604 assert(idx < _field_cnt);
605 if (_pvalues[idx].is_null()) {
608 dest = _pvalues[idx].get_time_value();
615 assert(idx < _field_cnt);
616 if (_pvalues[idx].is_null()) {
619 dest = _pvalues[idx].get_tstamp_value();
Definition: table_desc.h:122
unsigned _null_count
Definition: row.h:163
M * manager
Definition: row.h:344
offset_t _var_slot_offset
Definition: row.h:159
offset_t _var_offset
Definition: row.h:161
unsigned get_null_count() const
Definition: row.h:237
~tuple_guard()
Definition: row.h:352
unsigned _field_cnt
Definition: row.h:151
~rep_row_t()
Definition: row.cpp:63
field_value_t * _pvalues
Definition: row.h:154
table_desc_t * _ptable
Definition: row.h:149
bool _is_setup
Definition: row.h:152
void reset()
Definition: row.h:316
#define MIN(x, y)
Definition: w_minmax.h:69
rep_row_t()
Definition: row.cpp:51
bool get_value(const unsigned idx, int &dest) const
Definition: row.h:489
void reset()
Definition: field.h:624
void set_value(const unsigned idx, const int v)
Definition: row.h:395
blob_pool * _pts
Definition: row.h:120
offset_t get_var_slot_offset() const
Definition: row.h:229
T * operator->()
Definition: row.h:356
Definition: index_desc.h:60
void freevalues()
Definition: row.h:323
offset_t get_var_offset() const
Definition: row.h:233
table_row_t(table_desc_t *ptd)
Definition: row.h:193
rep_row_t * _rep
Definition: row.h:171
tuple_guard(M *m)
Definition: row.h:346
void set_ts(blob_pool *apts, const unsigned nsz)
Definition: row.cpp:111
T * ptr
Definition: row.h:342
: Description and current value of a field (column)
sqltype_t
Definition: field.h:99
void set_null(const unsigned idx)
Definition: row.h:388
rep_row_t * _rep_key
Definition: row.h:172
offset_t get_fixed_offset() const
Definition: row.h:225
intptr_t offset_t
Definition: row.h:94
char * _dest
Definition: row.h:118
#define T
Definition: w_okvl_inl.h:45
unsigned _bufsz
Definition: row.h:119
offset_t _fixed_offset
Definition: row.h:157