A column class that describes the metadata of a column.  
 More...
#include <column.h>
|  | 
|  | Column (const unsigned char *mysql_row, const TABLE &mysql_table TEMPTABLE_UNUSED_NODBUG, const Field &mysql_field) | 
|  | Constructor.  More... 
 | 
|  | 
| bool | read_is_null (const unsigned char *mysql_row) const | 
|  | Check if a particular cell is NULL.  More... 
 | 
|  | 
| void | write_is_null (bool is_null, unsigned char *mysql_row, size_t mysql_row_length) const | 
|  | Write the information that cell is NULL or not.  More... 
 | 
|  | 
| uint32_t | read_user_data_length (const unsigned char *mysql_row) const | 
|  | In MySQL write_row() format - the length of the actual user data of a cell in a given row.  More... 
 | 
|  | 
| void | write_user_data_length (uint32_t data_length, unsigned char *mysql_row, size_t mysql_row_length) const | 
|  | Write the length of user data stored in a cell.  More... 
 | 
|  | 
| const unsigned char * | get_user_data_ptr (const unsigned char *mysql_row) const | 
|  | Return pointer to user data in MySQL row.  More... 
 | 
|  | 
| void | read_user_data (unsigned char *data, uint32_t data_length, const unsigned char *mysql_row, size_t mysql_row_length) const | 
|  | Reads user data stored in a cell.  More... 
 | 
|  | 
| void | write_user_data (bool is_null, const unsigned char *data, uint32_t data_length, unsigned char *mysql_row, size_t mysql_row_length) const | 
|  | Write user data stored in a cell.  More... 
 | 
|  | 
|  | 
| bool | is_nullable () const | 
|  | Check if the cells in this column can be NULL.  More... 
 | 
|  | 
| bool | is_blob () const | 
|  | Check this column stores blobs.  More... 
 | 
|  | 
| bool | is_fixed_size () const | 
|  | Check if different cells that belong to this column can have different size (eg VARCHAR).  More... 
 | 
|  | 
| void | read_std_user_data (unsigned char *data, uint32_t data_length, const unsigned char *mysql_row, size_t mysql_row_length TEMPTABLE_UNUSED_NODBUG) const | 
|  | Reads user data stored in a cell.  More... 
 | 
|  | 
| void | write_std_user_data (const unsigned char *data, uint32_t data_length, unsigned char *mysql_row, size_t mysql_row_length TEMPTABLE_UNUSED_NODBUG) const | 
|  | Write user data stored in a cell.  More... 
 | 
|  | 
| void | read_blob_user_data (unsigned char *data, uint32_t data_length, const unsigned char *mysql_row, size_t mysql_row_length TEMPTABLE_UNUSED_NODBUG) const | 
|  | Reads user data stored in a cell for columns stored as BLOBs.  More... 
 | 
|  | 
| void | write_blob_user_data (const unsigned char *data, uint32_t data_length, unsigned char *mysql_row, size_t mysql_row_length TEMPTABLE_UNUSED_NODBUG) const | 
|  | Write user data stored in a cell for columns stored as BLOBs.  More... 
 | 
|  | 
| const unsigned char * | calculate_user_data_ptr (const unsigned char *mysql_row) const | 
|  | Calculate pointer to user data in a MySQL row.  More... 
 | 
|  | 
| const unsigned char * | read_blob_data_ptr (const unsigned char *mysql_row) const | 
|  | Reads pointer to user data for a column stored as BLOB.  More... 
 | 
|  | 
A column class that describes the metadata of a column. 
◆ Column()
      
        
          | temptable::Column::Column | ( | const unsigned char * | mysql_row, | 
        
          |  |  | const TABLE &mysql_table | TEMPTABLE_UNUSED_NODBUG, | 
        
          |  |  | const Field & | mysql_field | 
        
          |  | ) |  |  | 
      
 
Constructor. 
- Parameters
- 
  
    | [in] | mysql_row | A pointer to the row (user data). |  | [in] | TEMPTABLE_UNUSED_NODBUG | MySQL table that contains the column. |  | [in] | mysql_field | MySQL field (column/cell) that describes the columns. |  
 
 
 
◆ calculate_user_data_ptr()
  
  | 
        
          | const unsigned char * temptable::Column::calculate_user_data_ptr | ( | const unsigned char * | mysql_row | ) | const |  | inlineprivate | 
 
Calculate pointer to user data in a MySQL row. 
Cannot be used for columns stored as BLOBs. 
- Returns
- Pointer to user data stored in a cell. 
- Parameters
- 
  
    | [in] | mysql_row | MySQL row buffer that stores the user data. |  
 
 
 
◆ get_user_data_ptr()
  
  | 
        
          | const unsigned char * temptable::Column::get_user_data_ptr | ( | const unsigned char * | mysql_row | ) | const |  | inline | 
 
Return pointer to user data in MySQL row. 
- Returns
- Pointer to user data. 
 
 
◆ is_blob()
  
  | 
        
          | bool temptable::Column::is_blob | ( |  | ) | const |  | inlineprivate | 
 
Check this column stores blobs. 
- Returns
- true if it is a blob column. 
 
 
◆ is_fixed_size()
  
  | 
        
          | bool temptable::Column::is_fixed_size | ( |  | ) | const |  | inlineprivate | 
 
Check if different cells that belong to this column can have different size (eg VARCHAR). 
- Returns
- true if all cells are the same size 
 
 
◆ is_nullable()
  
  | 
        
          | bool temptable::Column::is_nullable | ( |  | ) | const |  | inlineprivate | 
 
Check if the cells in this column can be NULL. 
- Returns
- true if cells are allowed to be NULL. 
 
 
◆ read_blob_data_ptr()
  
  | 
        
          | const unsigned char * temptable::Column::read_blob_data_ptr | ( | const unsigned char * | mysql_row | ) | const |  | inlineprivate | 
 
Reads pointer to user data for a column stored as BLOB. 
- Returns
- Pointer to user data stored in a BLOB field. 
- Parameters
- 
  
    | [in] | mysql_row | MySQL row buffer that stores BLOB data pointer. |  
 
 
 
◆ read_blob_user_data()
  
  | 
        
          | void temptable::Column::read_blob_user_data | ( | unsigned char * | data, |  
          |  |  | uint32_t | data_length, |  
          |  |  | const unsigned char * | mysql_row, |  
          |  |  | size_t mysql_row_length | TEMPTABLE_UNUSED_NODBUG |  
          |  | ) |  | const |  | inlineprivate | 
 
Reads user data stored in a cell for columns stored as BLOBs. 
Performs a deep copy of the data. 
- Parameters
- 
  
    | [out] | data | Pointer to store user data. |  | [out] | data_length | Length of the data to read. |  | [in] | mysql_row | MySQL row buffer to read data from. |  | [in] | TEMPTABLE_UNUSED_NODBUG | Length of the row buffer. |  
 
 
 
◆ read_is_null()
  
  | 
        
          | bool temptable::Column::read_is_null | ( | const unsigned char * | mysql_row | ) | const |  | inline | 
 
Check if a particular cell is NULL. 
The cell is the intersection of this column with the provided row (in MySQL write_row() format). 
- Returns
- true if the cell is NULL 
- Parameters
- 
  
    | [in] | mysql_row | MySQL row that contains the cell to be checked. |  
 
 
 
◆ read_std_user_data()
  
  | 
        
          | void temptable::Column::read_std_user_data | ( | unsigned char * | data, |  
          |  |  | uint32_t | data_length, |  
          |  |  | const unsigned char * | mysql_row, |  
          |  |  | size_t mysql_row_length | TEMPTABLE_UNUSED_NODBUG |  
          |  | ) |  | const |  | inlineprivate | 
 
Reads user data stored in a cell. 
Cannot be used for columns stored as BLOBs. Performs a deep copy of the data. 
- Parameters
- 
  
    | [out] | data | Pointer to store user data. |  | [out] | data_length | Length of the data to read. |  | [in] | mysql_row | MySQL row buffer to read data from. |  | [in] | TEMPTABLE_UNUSED_NODBUG | Length of the row buffer. |  
 
 
 
◆ read_user_data()
  
  | 
        
          | void temptable::Column::read_user_data | ( | unsigned char * | data, |  
          |  |  | uint32_t | data_length, |  
          |  |  | const unsigned char * | mysql_row, |  
          |  |  | size_t | mysql_row_length |  
          |  | ) |  | const |  | inline | 
 
Reads user data stored in a cell. 
Cannot be used for columns stored as BLOBs. Performs a deep copy of the data. 
- Parameters
- 
  
    | [out] | data | Pointer to store user data. |  | [out] | data_length | Length of the data to read. |  | [in] | mysql_row | MySQL row buffer to read data from. |  | [in] | mysql_row_length | Length of the row buffer. |  
 
 
 
◆ read_user_data_length()
  
  | 
        
          | uint32_t temptable::Column::read_user_data_length | ( | const unsigned char * | mysql_row | ) | const |  | inline | 
 
In MySQL write_row() format - the length of the actual user data of a cell in a given row. 
- Returns
- user data length of the cell that corresponds to this column in the given row 
- Parameters
- 
  
    | [in] | mysql_row | MySQL row buffer to read data from. |  
 
 
 
◆ write_blob_user_data()
  
  | 
        
          | void temptable::Column::write_blob_user_data | ( | const unsigned char * | data, |  
          |  |  | uint32_t data_length | TEMPTABLE_UNUSED, |  
          |  |  | unsigned char * | mysql_row, |  
          |  |  | size_t mysql_row_length | TEMPTABLE_UNUSED_NODBUG |  
          |  | ) |  | const |  | inlineprivate | 
 
Write user data stored in a cell for columns stored as BLOBs. 
NOTE: Currently only pointer is stored, no data is copied and the length is ignored. 
- Parameters
- 
  
    | [in] | data | Pointer to user data. Can be NULL for cells with NULL value. |  | [in] | TEMPTABLE_UNUSED | Length of user data. |  | [out] | mysql_row | MySQL row buffer to write data into. |  | [in] | TEMPTABLE_UNUSED_NODBUG | Length of the row buffer. |  
 
 
 
◆ write_is_null()
  
  | 
        
          | void temptable::Column::write_is_null | ( | bool | is_null, |  
          |  |  | unsigned char * | mysql_row, |  
          |  |  | size_t mysql_row_length | TEMPTABLE_UNUSED_NODBUG |  
          |  | ) |  | const |  | inline | 
 
Write the information that cell is NULL or not. 
- Parameters
- 
  
    | [in] | is_null | True if cell is NULL, false if it has value. |  | [out] | mysql_row | MySQL row buffer to write data into. |  | [in] | TEMPTABLE_UNUSED_NODBUG | Length of the row buffer. |  
 
 
 
◆ write_std_user_data()
  
  | 
        
          | void temptable::Column::write_std_user_data | ( | const unsigned char * | data, |  
          |  |  | uint32_t | data_length, |  
          |  |  | unsigned char * | mysql_row, |  
          |  |  | size_t mysql_row_length | TEMPTABLE_UNUSED_NODBUG |  
          |  | ) |  | const |  | inlineprivate | 
 
Write user data stored in a cell. 
Cannot be used for columns stored as blobs. 
- Parameters
- 
  
    | [in] | data | Pointer to used data. |  | [in] | data_length | Length of user data. |  | [out] | mysql_row | MySQL row buffer to write data into. |  | [in] | TEMPTABLE_UNUSED_NODBUG | Length of the row buffer. |  
 
 
 
◆ write_user_data()
  
  | 
        
          | void temptable::Column::write_user_data | ( | bool | is_null, |  
          |  |  | const unsigned char * | data, |  
          |  |  | uint32_t | data_length, |  
          |  |  | unsigned char * | mysql_row, |  
          |  |  | size_t | mysql_row_length |  
          |  | ) |  | const |  | inline | 
 
Write user data stored in a cell. 
Cannot be used for columns stored as blobs. 
- Parameters
- 
  
    | [in] | is_null | True if cell is NULL, false if it has value. |  | [in] | data | Pointer to used data. |  | [in] | data_length | Length of user data. |  | [out] | mysql_row | MySQL row buffer to write data into. |  | [in] | mysql_row_length | Length of the row buffer. |  
 
 
 
◆ write_user_data_length()
  
  | 
        
          | void temptable::Column::write_user_data_length | ( | uint32_t | data_length, |  
          |  |  | unsigned char * | mysql_row, |  
          |  |  | size_t mysql_row_length | TEMPTABLE_UNUSED_NODBUG |  
          |  | ) |  | const |  | inline | 
 
Write the length of user data stored in a cell. 
- Parameters
- 
  
    | [in] | data_length | User data length. |  | [out] | mysql_row | MySQL row buffer to write data into. |  | [in] | TEMPTABLE_UNUSED_NODBUG | Length of the row buffer. |  
 
 
 
      
        
          | union  { ... }  temptable::Column::@214 | 
      
 
 
◆ m_is_blob
  
  | 
        
          | bool temptable::Column::m_is_blob |  | private | 
 
 
◆ m_length
      
        
          | uint32_t temptable::Column::m_length | 
      
 
Length of the user data of a cell. 
It is for fixed size cells (when m_length_bytes_size == 0). 
 
 
◆ m_length_bytes_size
  
  | 
        
          | uint8_t temptable::Column::m_length_bytes_size |  | private | 
 
The number of bytes that indicate the length of the user data in the cell, for variable sized cells. 
If this is 0, then the cell is fixed size. 
 
 
◆ m_null_bitmask
  
  | 
        
          | uint8_t temptable::Column::m_null_bitmask |  | private | 
 
Bitmask to extract is is-NULL bit from the is-NULL byte. 
 
 
◆ m_null_byte_offset
  
  | 
        
          | uint32_t temptable::Column::m_null_byte_offset |  | private | 
 
The offset of the is-NULL byte from the start of the mysql row. 
If m_null_bitmask is set in this byte and m_nullable is true, then that particular cell is NULL. 
 
 
◆ m_nullable
  
  | 
        
          | bool temptable::Column::m_nullable |  | private | 
 
 
◆ m_offset
      
        
          | uint32_t temptable::Column::m_offset | 
      
 
Offset of the bytes that indicate the user data length of a cell. 
It is used for variable size cells (when m_length_bytes_size > 0). 
 
 
◆ m_user_data_offset
  
  | 
        
          | uint32_t temptable::Column::m_user_data_offset |  | private | 
 
The offset of the user data from the start of the mysql row in bytes. 
 
 
The documentation for this class was generated from the following files: