MysqlSqlUtil::MysqlTable Class Reference

provides the MySQL-specific implementation of the AbstractTable interface More...

Inherits AbstractTable.

## Public Member Functions

string | getColumnSqlName (string col)
| returns the column name for use in SQL strings; subclasses can return a special string in case the column name is a reserved word More...
list | getColumnSqlNames (softlist cols)
| returns a list of column names for use in SQL strings; subclasses can process the argument list in case a column name is a reserved word
string | getSqlName ()
| returns the name of the table to be used in SQL (with a possible qualifiers for schema, etc)
bool | hasArrayBind ()
| returns False because the mysql driver does not support array binds / bulk DML operations
bool | hasReturningImpl ()
| returns True if the current database driver supports the `"returning"` clause in insert statements, False if not

## Static Public Member Functions

static *string | getSqlValue (auto v)
| returns a string for use in SQL queries representing the DB-specific value of the argument More...

## Public Attributes

const | MysqlColumnDescOptions = ...
| extends SqlUtil::AbstractTable::ColumnDescOptions with MySQL-specific values More...
const | MysqlCopMap = ...
| column operator specializations for MySQL
const | MysqlTableDescriptionHashOptions = ...
| extends SqlUtil::AbstractTable::TableDescriptionHashOptions More...
const | MysqlTruncDate = ...
| Map SqlUtil::cop_trunc_date() constants to PostgreSQL internal masks.
const | MysqlTypeMap = ...
| maps mysql type names to type configurations
const | QoreTypeMap = ...
| maps qore type names to postgresql type names

## Protected Member Functions

bool | asteriskRequiresPrefix ()
| returns True if the database requires a wildcard `"*"` to be prefixed with the table name when it appears with other column arguments in a select statement
bool | constraintsLinkedToIndexesImpl ()
| returns True if the database links constraints to indexes (ie dropping the constraint drops the index, etc)
| copyImpl (AbstractTable old)
| db-specific copy actions
| doSelectLimitOnlyUnlockedImpl (reference< string > sql, reference< list > args, *hash qh)
| processes a string for use in SQL select statements when there is a "limit" argument, but no "orderby" or "offset" arguments
| doSelectOrderByWithOffsetSqlUnlockedImpl (reference< string > sql, reference< list > args, *hash qh, *hash jch, *hash ch, *hash psch, list coll)
| processes a string for use in SQL select statements when there is an "order by" and "offset" argument
hash | getColumnOperatorMapImpl ()
| returns the column operator map for this object
AbstractDataProviderType | getNumericTypeImpl (string native_type, bool nullable, *hash< auto > options)
| returns the type for number / numeric columns for the database so that data conversions can be handled properly
AbstractSavepointHelper | getSavepointHelperImpl (*string savepoint)
| get DB-specific savepoint helper More...
*string | getSqlValueImpl (auto v)
| returns a string for use in SQL queries representing the DB-specific value of the argument; returns NOTHING if the type cannot be converted to an SQL string
bool | supportsTablespacesImpl ()
| returns True if the database support tablespaces
bool | uniqueIndexCreatesConstraintImpl ()
| returns True if the database automatically creates a unique constraint when a unique index is created (ex: mysql)

## Static Protected Member Functions

static *string | getSqlValueIntern (auto v)
| returns a string for use in SQL queries representing the DB-specific value of the argument; returns NOTHING if the type cannot be converted to an SQL string

## Detailed Description

provides the MySQL-specific implementation of the AbstractTable interface

## Member Function Documentation

## getColumnSqlName()

string MysqlSqlUtil::MysqlTable::getColumnSqlName | ( | string | col | ) |

returns the column name for use in SQL strings; subclasses can return a special string in case the column name is a reserved word

MySQL/MariaDB etc require column names to be enclosed in backticks instead of double quotes

## getSavepointHelperImpl()

AbstractSavepointHelper MysqlSqlUtil::MysqlTable::getSavepointHelperImpl | ( | *string | savepoint | ) |

protected

get DB-specific savepoint helper

Parameters

  savepoint | the savepoint string, if not given a unique savepoint string will be generated

Since
  SqlUtil 1.6

## getSqlValue()

static *string MysqlSqlUtil::MysqlTable::getSqlValue | ( | auto | v | ) |

static

returns a string for use in SQL queries representing the DB-specific value of the argument

Example:
  string str = table.getSqlValue(date);

Parameters

  v | the value to convert to an SQL value

Returns
  a string representing the value usable in SQL strings for the given database driver

Exceptions

  VALUE-ERROR | the given value cannot be converted to an SQL string (missing rules for value)

## Member Data Documentation

## MysqlColumnDescOptions

const MysqlSqlUtil::MysqlTable::MysqlColumnDescOptions = ...

extends SqlUtil::AbstractTable::ColumnDescOptions with MySQL-specific values

the new keys are as follows:

- `"unsigned"`: only valid with numeric/integer/floating-point types
- `"auto_increment"`: only valid with integer/floating-point types
- `"pk"`: only valid with `"auto_increment"`

## MysqlTableDescriptionHashOptions

const MysqlSqlUtil::MysqlTable::MysqlTableDescriptionHashOptions = ...

extends SqlUtil::AbstractTable::TableDescriptionHashOptions

the following options are added:

- `"engine"`: for the DB engine behind the table (default: `innodb`)
- `"collation"`: for the table collation (if not set, any `"collation"` option set in the datasource is used for the table collation)
- `"table_encoding"`: the "character set" value for "create table" DDL statements (if not set, the DB encoding value used for the datasource will be used)