1
0
mirror of https://tt-rss.org/git/tt-rss.git synced 2024-06-29 12:20:51 +02:00
ttrss/vendor/thecodingmachine/safe/generated/ingres-ii.php
Andrew Dolgov 3fd7856543 * switch to composer for qrcode and otp dependencies
* move most OTP-related stuff into userhelper
* remove old phpqrcode and otphp libraries
2021-02-26 19:16:17 +03:00

721 lines
18 KiB
PHP

<?php
namespace Safe;
use Safe\Exceptions\IngresiiException;
/**
* ingres_autocommit is called before opening a
* transaction (before the first call to
* ingres_query or just after a call to
* ingres_rollback or
* ingres_commit) to switch the
* autocommit mode of the server on or off (when the script begins
* the autocommit mode is off).
*
* When autocommit mode is on, every query is automatically
* committed by the server, as if ingres_commit
* was called after every call to ingres_query.
* To see if autocommit is enabled use,
* ingres_autocommit_state.
*
* By default Ingres will rollback any uncommitted transactions at the end of
* a request. Use this function or ingres_commit to
* ensure your data is committed to the database.
*
* @param resource $link The connection link identifier
* @throws IngresiiException
*
*/
function ingres_autocommit($link): void
{
error_clear_last();
$result = \ingres_autocommit($link);
if ($result === false) {
throw IngresiiException::createFromPhpError();
}
}
/**
* ingres_close closes the connection to
* the Ingres server that is associated with the specified link.
*
* ingres_close is usually unnecessary, as it
* will not close persistent connections and all non-persistent connections
* are automatically closed at the end of the script.
*
* @param resource $link The connection link identifier
* @throws IngresiiException
*
*/
function ingres_close($link): void
{
error_clear_last();
$result = \ingres_close($link);
if ($result === false) {
throw IngresiiException::createFromPhpError();
}
}
/**
* ingres_commit commits the currently open
* transaction, making all changes made to the database permanent.
*
* This closes the transaction. A new transaction can be opened by sending a
* query with ingres_query.
*
* You can also have the server commit automatically after every
* query by calling ingres_autocommit before
* opening the transaction.
*
* By default Ingres will roll back any uncommitted transactions at the end of
* a request. Use this function or ingres_autocommit to
* ensure your that data is committed to the database.
*
* @param resource $link The connection link identifier
* @throws IngresiiException
*
*/
function ingres_commit($link): void
{
error_clear_last();
$result = \ingres_commit($link);
if ($result === false) {
throw IngresiiException::createFromPhpError();
}
}
/**
* ingres_connect opens a connection with the
* given Ingres database.
*
* The connection is closed when the script ends or when
* ingres_close is called on this link.
*
* @param string $database The database name. Must follow the syntax:
*
* [vnode::]dbname[/svr_class]
* @param string $username The Ingres user name
* @param string $password The password associated with username
* @param array $options ingres_connect options
*
*
*
*
* Option name
* Option type
* Description
* Example
*
*
*
*
* date_century_boundary
* integer
* The threshold by which a 2-digit year is determined to be in
* the current century or in the next century. Equivalent to II_DATE_CENTURY_BOUNDARY.
* 50
*
*
* group
* string
* Specifies the group ID of the user, equivalent to the "-G"
* flag
* payroll
*
*
* role
* string
* The role ID of the application. If a role password is
* required, the parameter value should be specified as "role/password"
*
*
* effective_user
* string
* The ingres user account being impersonated, equivalent to the "-u" flag
* another_user
*
*
* dbms_password
* string
* The internal database password for the user connecting to Ingres
* s3cr3t
*
*
* table_structure
* string
*
* The default structure for new tables.
* Valid values for table_structure are:
*
* INGRES_STRUCTURE_BTREE
* INGRES_STRUCTURE_HASH
* INGRES_STRUCTURE_HEAP
* INGRES_STRUCTURE_ISAM
* INGRES_STRUCTURE_CBTREE
* INGRES_STRUCTURE_CISAM
* INGRES_STRUCTURE_CHASH
* INGRES_STRUCTURE_CHEAP
*
*
*
* INGRES_STRUCTURE_BTREE
*
*
* index_structure
* string
*
* The default structure for new secondary indexes. Valid values
* for index_structure are:
*
* INGRES_STRUCTURE_CBTREE
* INGRES_STRUCTURE_CISAM
* INGRES_STRUCTURE_CHASH
* INGRES_STRUCTURE_BTREE
* INGRES_STRUCTURE_HASH
* INGRES_STRUCTURE_ISAM
*
*
*
* INGRES_STRUCTURE_HASH
*
*
* login_local
* boolean
* Determines how the connection user ID and password are
* used when a VNODE is included in the target database string.
* If set to TRUE, the user ID and password are used to locally access
* the VNODE, and the VNODE login information is used to establish the DBMS
* connection. If set to FALSE, the process user ID is used to access
* the VNODE, and the connection user ID and password are used in place
* of the VNODE login information to establish the DBMS connection.
* This parameter is ignored if no VNODE is included in the target
* database string. The default is FALSE.
* TRUE
*
*
* timezone
* string
* Controls the timezone of the session. If not set it will
* default to the value defined by II_TIMEZONE_NAME. If
* II_TIMEZONE_NAME is not defined, NA-PACIFIC (GMT-8 with Daylight
* Savings) is used.
*
*
* date_format
* integer
* Sets the allowable input and output format for Ingres dates.
* Defaults to the value defined by II_DATE_FORMAT. If II_DATE_FORMAT is
* not set the default date format is US, e.g. mm/dd/yy. Valid values
* for date_format are:
*
* INGRES_DATE_DMY
* INGRES_DATE_FINISH
* INGRES_DATE_GERMAN
* INGRES_DATE_ISO
* INGRES_DATE_ISO4
* INGRES_DATE_MDY
* INGRES_DATE_MULTINATIONAL
* INGRES_DATE_MULTINATIONAL4
* INGRES_DATE_YMD
* INGRES_DATE_US
*
*
*
* INGRES_DATE_MULTINATIONAL4
*
*
* decimal_separator
* string
* The character identifier for decimal data
* ","
*
*
* money_lort
* integer
* Leading or trailing currency sign. Valid values for money_lort
* are:
*
* INGRES_MONEY_LEADING
* INGRES_MONEY_TRAILING
*
*
*
* INGRES_MONEY_TRAILING
*
*
* money_sign
* string
* The currency symbol to be used with the MONEY datatype
* €
*
*
* money_precision
* integer
* The precision of the MONEY datatype
* 3
*
*
* float4_precision
* integer
* Precision of the FLOAT4 datatype
* 10
*
*
* float8_precision
* integer
* Precision of the FLOAT8 data
* 10
*
*
* blob_segment_length
* integer
* The amount of data in bytes to fetch at a time when retrieving
* BLOB or CLOB data, defaults to 4096 bytes when not explicitly set
* 8192
*
*
*
*
*
* The default structure for new tables.
* Valid values for table_structure are:
*
* INGRES_STRUCTURE_BTREE
* INGRES_STRUCTURE_HASH
* INGRES_STRUCTURE_HEAP
* INGRES_STRUCTURE_ISAM
* INGRES_STRUCTURE_CBTREE
* INGRES_STRUCTURE_CISAM
* INGRES_STRUCTURE_CHASH
* INGRES_STRUCTURE_CHEAP
*
*
* The default structure for new secondary indexes. Valid values
* for index_structure are:
*
* INGRES_STRUCTURE_CBTREE
* INGRES_STRUCTURE_CISAM
* INGRES_STRUCTURE_CHASH
* INGRES_STRUCTURE_BTREE
* INGRES_STRUCTURE_HASH
* INGRES_STRUCTURE_ISAM
*
*
* Sets the allowable input and output format for Ingres dates.
* Defaults to the value defined by II_DATE_FORMAT. If II_DATE_FORMAT is
* not set the default date format is US, e.g. mm/dd/yy. Valid values
* for date_format are:
*
* INGRES_DATE_DMY
* INGRES_DATE_FINISH
* INGRES_DATE_GERMAN
* INGRES_DATE_ISO
* INGRES_DATE_ISO4
* INGRES_DATE_MDY
* INGRES_DATE_MULTINATIONAL
* INGRES_DATE_MULTINATIONAL4
* INGRES_DATE_YMD
* INGRES_DATE_US
*
*
* Leading or trailing currency sign. Valid values for money_lort
* are:
*
* INGRES_MONEY_LEADING
* INGRES_MONEY_TRAILING
*
* @return resource Returns a Ingres link resource on success
* @throws IngresiiException
*
*/
function ingres_connect(string $database = null, string $username = null, string $password = null, array $options = null)
{
error_clear_last();
if ($options !== null) {
$result = \ingres_connect($database, $username, $password, $options);
} elseif ($password !== null) {
$result = \ingres_connect($database, $username, $password);
} elseif ($username !== null) {
$result = \ingres_connect($database, $username);
} elseif ($database !== null) {
$result = \ingres_connect($database);
} else {
$result = \ingres_connect();
}
if ($result === false) {
throw IngresiiException::createFromPhpError();
}
return $result;
}
/**
* Execute a query prepared using ingres_prepare.
*
* @param resource $result The result query identifier
* @param array $params An array of parameter values to be used with the query
* @param string $types A string containing a sequence of types for the parameter values
* passed. See the types parameter in
* ingres_query for the list of type codes.
* @throws IngresiiException
*
*/
function ingres_execute($result, array $params = null, string $types = null): void
{
error_clear_last();
if ($types !== null) {
$result = \ingres_execute($result, $params, $types);
} elseif ($params !== null) {
$result = \ingres_execute($result, $params);
} else {
$result = \ingres_execute($result);
}
if ($result === false) {
throw IngresiiException::createFromPhpError();
}
}
/**
* ingres_field_name returns the name of a field
* in a query result.
*
* @param resource $result The query result identifier
* @param int $index index is the field whose name will be
* retrieved.
*
* The possible values of index depend upon
* the value
* of ingres.array_index_start.
* If ingres.array_index_start
* is 1 (the default)
* then index must be
* between 1 and the value returned
* by ingres_num_fields. If ingres.array_index_start
* is 0 then index must
* be between 0
* and ingres_num_fields -
* 1.
* @return string Returns the name of a field
* in a query result
* @throws IngresiiException
*
*/
function ingres_field_name($result, int $index): string
{
error_clear_last();
$result = \ingres_field_name($result, $index);
if ($result === false) {
throw IngresiiException::createFromPhpError();
}
return $result;
}
/**
* Get the type of a field in a query result.
*
* @param resource $result The query result identifier
* @param int $index index is the field whose type will be
* retrieved.
*
* The possible values of index depend upon
* the value
* of ingres.array_index_start.
* If ingres.array_index_start
* is 1 (the default)
* then index must be
* between 1 and the value returned
* by ingres_num_fields. If ingres.array_index_start
* is 0 then index must
* be between 0
* and ingres_num_fields -
* 1.
* @return string ingres_field_type returns the type of a
* field in a query result. Examples of
* types returned are IIAPI_BYTE_TYPE,
* IIAPI_CHA_TYPE, IIAPI_DTE_TYPE,
* IIAPI_FLT_TYPE, IIAPI_INT_TYPE,
* IIAPI_VCH_TYPE. Some of these types can map to more
* than one SQL type depending on the length of the field (see
* ingres_field_length). For example
* IIAPI_FLT_TYPE can be a float4 or a float8. For detailed
* information, see the Ingres OpenAPI User Guide, Appendix
* "Data Types" in the Ingres documentation.
* @throws IngresiiException
*
*/
function ingres_field_type($result, int $index): string
{
error_clear_last();
$result = \ingres_field_type($result, $index);
if ($result === false) {
throw IngresiiException::createFromPhpError();
}
return $result;
}
/**
*
*
* @param resource $result The query result identifier
* @throws IngresiiException
*
*/
function ingres_free_result($result): void
{
error_clear_last();
$result = \ingres_free_result($result);
if ($result === false) {
throw IngresiiException::createFromPhpError();
}
}
/**
* Open a persistent connection to an Ingres database.
*
* There are only two differences between this function and
* ingres_connect: First, when connecting, the
* function will initially try to find a (persistent) link that is
* already opened with the same parameters. If one is found, an
* identifier for it will be returned instead of opening a new
* connection. Second, the connection to the Ingres server will not
* be closed when the execution of the script ends. Instead, the
* link will remain open for future use
* (ingres_close will not close links
* established by ingres_pconnect). This type
* of link is therefore called "persistent".
*
* @param string $database The database name. Must follow the syntax:
*
* [vnode::]dbname[/svr_class]
* @param string $username The Ingres user name
* @param string $password The password associated with username
* @param array $options See ingres_connect for the list of options that
* can be passed
* @return resource Returns an Ingres link resource on success
* @throws IngresiiException
*
*/
function ingres_pconnect(string $database = null, string $username = null, string $password = null, array $options = null)
{
error_clear_last();
if ($options !== null) {
$result = \ingres_pconnect($database, $username, $password, $options);
} elseif ($password !== null) {
$result = \ingres_pconnect($database, $username, $password);
} elseif ($username !== null) {
$result = \ingres_pconnect($database, $username);
} elseif ($database !== null) {
$result = \ingres_pconnect($database);
} else {
$result = \ingres_pconnect();
}
if ($result === false) {
throw IngresiiException::createFromPhpError();
}
return $result;
}
/**
* This function is used to position the cursor associated with the result
* resource before issuing a fetch. If ingres.array_index_start
* is set to 0 then the first row is 0 else it is 1.
* ingres_result_seek can be used only with queries that
* make use of scrollable
* cursors. It cannot be used with
* ingres_unbuffered_query.
*
* @param resource $result The result identifier for a query
* @param int $position The row to position the cursor on. If ingres.array_index_start
* is set to 0, then the first row is 0, else it is 1
* @throws IngresiiException
*
*/
function ingres_result_seek($result, int $position): void
{
error_clear_last();
$result = \ingres_result_seek($result, $position);
if ($result === false) {
throw IngresiiException::createFromPhpError();
}
}
/**
* ingres_rollback rolls back the currently
* open transaction, actually cancelling all changes made to the
* database during the transaction.
*
* This closes the transaction. A new transaction can be opened by sending a
* query with ingres_query.
*
* @param resource $link The connection link identifier
* @throws IngresiiException
*
*/
function ingres_rollback($link): void
{
error_clear_last();
$result = \ingres_rollback($link);
if ($result === false) {
throw IngresiiException::createFromPhpError();
}
}
/**
* ingres_set_environment is called to set environmental
* options that affect the output of certain values from Ingres, such as the
* timezone, date format, decimal character separator, and float precision.
*
* @param resource $link The connection link identifier
* @param array $options An enumerated array of option name/value pairs. The following table
* lists the option name and the expected type
*
*
*
*
*
* Option name
* Option type
* Description
* Example
*
*
*
*
* date_century_boundary
* integer
* The threshold by which a 2-digit year is determined to be in
* the current century or in the next century. Equivalent to II_DATE_CENTURY_BOUNDARY
* 50
*
*
* timezone
* string
* Controls the timezone of the session. If not set, it will
* default the value defined by II_TIMEZONE_NAME. If
* II_TIMEZONE_NAME is not defined, NA-PACIFIC (GMT-8 with Daylight
* Savings) is used.
* UNITED-KINGDOM
*
*
* date_format
* integer
* Sets the allowable input and output format for Ingres dates.
* Defaults to the value defined by II_DATE_FORMAT. If II_DATE_FORMAT is
* not set, the default date format is US, for example mm/dd/yy. Valid values
* for date_format are:
*
* INGRES_DATE_DMY
* INGRES_DATE_FINISH
* INGRES_DATE_GERMAN
* INGRES_DATE_ISO
* INGRES_DATE_ISO4
* INGRES_DATE_MDY
* INGRES_DATE_MULTINATIONAL
* INGRES_DATE_MULTINATIONAL4
* INGRES_DATE_YMD
* INGRES_DATE_US
*
*
*
* INGRES_DATE_ISO4
*
*
* decimal_separator
* string
* The character identifier for decimal data
* ","
*
*
* money_lort
* integer
* Leading or trailing currency sign. Valid values for money_lort
* are:
*
* INGRES_MONEY_LEADING
* INGRES_MONEY_TRAILING
*
*
*
* INGRES_MONEY_LEADING
*
*
* money_sign
* string
* The currency symbol to be used with the MONEY datatype
* €
*
*
* money_precision
* integer
* The precision of the MONEY datatype
* 2
*
*
* float4_precision
* integer
* Precision of the FLOAT4 datatype
* 10
*
*
* float8_precision
* integer
* Precision of the FLOAT8 data
* 10
*
*
* blob_segment_length
* integer
* The amount of data in bytes to fetch at a time when retrieving
* BLOB or CLOB data. Defaults to 4096 bytes when not set explicitly
* 8192
*
*
*
*
*
* Sets the allowable input and output format for Ingres dates.
* Defaults to the value defined by II_DATE_FORMAT. If II_DATE_FORMAT is
* not set, the default date format is US, for example mm/dd/yy. Valid values
* for date_format are:
*
* INGRES_DATE_DMY
* INGRES_DATE_FINISH
* INGRES_DATE_GERMAN
* INGRES_DATE_ISO
* INGRES_DATE_ISO4
* INGRES_DATE_MDY
* INGRES_DATE_MULTINATIONAL
* INGRES_DATE_MULTINATIONAL4
* INGRES_DATE_YMD
* INGRES_DATE_US
*
*
* Leading or trailing currency sign. Valid values for money_lort
* are:
*
* INGRES_MONEY_LEADING
* INGRES_MONEY_TRAILING
*
* @throws IngresiiException
*
*/
function ingres_set_environment($link, array $options): void
{
error_clear_last();
$result = \ingres_set_environment($link, $options);
if ($result === false) {
throw IngresiiException::createFromPhpError();
}
}