PgsqlSqlUtil::PgsqlTable Class Reference

provides the PostgreSQL-specific implementation of the SqlUtil::AbstractTable interface More...

Inherits AbstractTable.

## Public Member Functions

| constructor (AbstractDatasource nds, string nname, *hash opts)
| Creates the object from the arguments.
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
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 | getSchemaName ()
| returns the schema name
string | getSqlName ()
| returns the name of the table to be used in SQL (with a possible qualifiers for schema, etc)
*string | getTablespaceName ()
| returns the data tablespace name for the table or NOTHING if none is known
code | getUpsertClosure (hash< auto > row, int upsert_strategy=UpsertAuto, *hash< auto > opt)
| returns a closure for performing upserts More...
bool | hasArrayBind ()
| returns False because the pgsql driver does not support array binds / bulk DML operations
bool | hasAtomicUpsert ()
| Returns True if the server supports atomic upsert/merge operations.

## Public Attributes

const | PgsqlCopMap = ...
| column operator specializations for PostgreSQL
const | PgsqlIopMap = ...
| a hash of default value operator descriptions for PostgreSQL
const | PgsqlNameMap = ...
| maps from verbose type names to simple type names
const | PgsqlTableDescriptionHashOptions = ...
| extends SqlUtil::AbstractTable::TableDescriptionHashOptions with `"functions"` for table functions required by triggers on the table
const | PgsqlTruncDate = ...
| Map SqlUtil::cop_trunc_date() constants to PostgreSQL internal masks.
const | PgsqlTypeMap = ...
| maps PostgreSQL type names to type configurations
const | PgsqlUopMap = ...
| a hash of default update operator definitions for PostgreSQL
const | QoreTypeMap = ...
| maps qore type names to PostgreSQL type names

## Protected Member Functions

| clearImpl ()
| clears PostgreSQL-specific table information
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
string | getCreateSqlImpl (list l)
| returns a string that can be used to create the table in the database
string | getCreateTableSqlImpl (*hash opt)
| returns a string that can be used to create the table in the database
hash | getInsertOperatorMap ()
| returns the insert 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
hash | getRawUpdateOperatorMap ()
| returns the raw (default) update operator map for this object
AbstractSavepointHelper | getSavepointHelperImpl (*string savepoint)
| get DB-specific savepoint helper More...
| getServerVersion ()
| Sets the internal PostgreSQL server version.
*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 | isDuplicateRowErrorImpl (hash< ExceptionInfo > ex)
| Returns True if the exception was raised because of a duplicate row / key error. More...
transient Mutex | pg_state ()
| Lock for atomicity for setting state info.
bool | supportsTablespacesImpl ()
| returns True if the database support tablespaces
auto | tryExecArgsImpl (string sql, *softlist< auto > args)
| tries to execute a command so that if an error occurs the current transaction status is not lost
auto | tryExecRawImpl (string sql, *softlist< auto > args)
| tries to execute a command so that if an error occurs the current transaction status is not lost
bool | uniqueIndexCreatesConstraintImpl ()
| returns True if the database automatically creates a unique constraint when a unique index is created (ex: mysql)

## Protected Attributes

bool | has_atomic_merge
| Set based on the postgreSQL server version.
string | schema
| schema name for the table
int | server_version
| PostgreSQL server full version code.
int | server_version_major
| PostgreSQL server major version.
int | server_version_minor
| PostgreSQL server minor version.
int | server_version_sub
| PostgreSQL server version.
*string | tablespace
| tablespace name for the table, if known
Functions | triggerFunctions
| contains any trigger functions supporting triggers on the table

## Detailed Description

provides the PostgreSQL-specific implementation of the SqlUtil::AbstractTable interface

## Member Function Documentation

## getSavepointHelperImpl()

AbstractSavepointHelper PgsqlSqlUtil::PgsqlTable::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

## getUpsertClosure()

code PgsqlSqlUtil::PgsqlTable::getUpsertClosure | ( | hash< auto > | row,
|  | int | upsert_strategy = `UpsertAuto`,
|  | *hash< auto > | opt
| ) |  |

returns a closure for performing upserts

if the upsert_strategy argument is UpsertInsertFirst or UpsertUpdateFirst, then this argument is ignored and a closure using an atomic merge/update statement is returned if the server version is >= 9.5, for earlier versions upsert operations are not atomic

## isDuplicateRowErrorImpl()

bool PgsqlSqlUtil::PgsqlTable::isDuplicateRowErrorImpl | ( | hash< ExceptionInfo > | ex | ) |

protected

Returns True if the exception was raised because of a duplicate row / key error.

Since
  PgsqlSqlUtil 1.5.2