Differences Between: [Versions 310 and 400] [Versions 311 and 400] [Versions 39 and 400] [Versions 400 and 401] [Versions 400 and 402] [Versions 400 and 403]
Native pgsql class representing moodle database interface.
Copyright: | 2008 Petr Skoda (http://skodak.org) |
License: | http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
File Size: | 1675 lines (63 kb) |
Included or required: | 1 time |
Referenced: | 1 time |
Includes or requires: | 4 files lib/dml/pgsql_native_moodle_recordset.php lib/dml/pgsql_native_moodle_temptables.php lib/dml/moodle_read_slave_trait.php lib/dml/moodle_database.php |
pgsql_native_moodle_database:: (59 methods):
driver_installed()
get_dbfamily()
get_dbtype()
get_dblibrary()
get_name()
get_configuration_help()
raw_connect()
dispose()
get_db_handle()
set_db_handle()
select_db_handle()
can_use_readonly()
query_start()
query_end()
get_server_info()
allowed_param_types()
get_last_error()
get_tables()
get_in_or_equal()
get_indexes()
fetch_columns()
normalise_value()
setup_is_unicodedb()
change_database_structure()
execute()
get_recordset_sql()
get_fetch_buffer_size()
fetch_from_cursor()
close_cursor()
pg_field_type()
get_records_sql()
get_fieldset_sql()
insert_record_raw()
insert_record()
insert_records()
insert_chunk()
import_record()
update_record_raw()
update_record()
set_field_select()
delete_records_select()
sql_like()
sql_bitxor()
sql_cast_char2int()
sql_cast_char2real()
sql_concat()
sql_concat_join()
sql_group_concat()
sql_regex_supported()
sql_regex()
replace_all_text_supported()
session_lock_supported()
get_session_lock()
release_session_lock()
begin_transaction()
commit_transaction()
rollback_transaction()
trim_quotes()
is_fulltext_search_supported()
Class: pgsql_native_moodle_database - X-Ref
Native pgsql class representing moodle database interface.driver_installed() X-Ref |
Detects if all needed PHP stuff installed. Note: can be used before connect() return: mixed true if ok, string if something |
get_dbfamily() X-Ref |
Returns database family type - describes SQL dialect Note: can be used before connect() return: string db family name (mysql, postgres, mssql, oracle, etc.) |
get_dbtype() X-Ref |
Returns more specific database driver type Note: can be used before connect() return: string db type mysqli, pgsql, oci, mssql, sqlsrv |
get_dblibrary() X-Ref |
Returns general database library name Note: can be used before connect() return: string db type pdo, native |
get_name() X-Ref |
Returns localised database type name Note: can be used before connect() return: string |
get_configuration_help() X-Ref |
Returns localised database configuration help. Note: can be used before connect() return: string |
raw_connect(string $dbhost, string $dbuser, string $dbpass, string $dbname, $prefix, array $dboptions=null) X-Ref |
Connect to db return: bool true param: string $dbhost The database host. param: string $dbuser The database username. param: string $dbpass The database username's password. param: string $dbname The name of the database being connected to. param: mixed $prefix string means moodle db prefix, false used for external databases where prefix not used param: array $dboptions driver specific options |
dispose() X-Ref |
Close database connection and release all resources and memory (especially circular memory references). Do NOT use connect() again, create a new instance if needed. |
get_db_handle() X-Ref |
Gets db handle currently used with queries return: resource |
set_db_handle($dbh) X-Ref |
Sets db handle to be used with subsequent queries return: void param: resource $dbh |
select_db_handle(int $type, string $sql) X-Ref |
Select appropriate db handle - readwrite or readonly return: void param: int $type type of query param: string $sql |
can_use_readonly(int $type, string $sql) X-Ref |
Check if The query qualifies for readonly connection execution Logging queries are exempt, those are write operations that circumvent standard query_start/query_end paths. return: bool param: int $type type of query param: string $sql |
query_start($sql, ?array $params, $type, $extrainfo=null) X-Ref |
Called before each db query. return: void param: string $sql param: array|null $params An array of parameters. param: int $type type of query param: mixed $extrainfo driver specific extra information |
query_end($result) X-Ref |
Called immediately after each db query. return: void param: mixed db specific result |
get_server_info() X-Ref |
Returns database server info array return: array Array containing 'description' and 'version' info |
allowed_param_types() X-Ref |
Returns supported query parameter types return: int bitmask of accepted SQL_PARAMS_* |
get_last_error() X-Ref |
Returns last error reported by database engine. return: string error message |
get_tables($usecache=true) X-Ref |
Return tables in database WITHOUT current prefix. return: array of table names in lowercase and without prefix param: bool $usecache if true, returns list of cached tables. |
get_in_or_equal($items, $type=SQL_PARAMS_QM, $prefix='param', $equal=true, $onemptyitems=false) X-Ref |
Constructs 'IN()' or '=' sql fragment Method overriding {@see moodle_database::get_in_or_equal} to be able to use more than 65535 elements in $items array. return: array A list containing the constructed sql fragment and an array of parameters. param: mixed $items A single value or array of values for the expression. param: int $type Parameter bounding type : SQL_PARAMS_QM or SQL_PARAMS_NAMED. param: string $prefix Named parameter placeholder prefix (a unique counter value is appended to each parameter name). param: bool $equal True means we want to equate to the constructed expression, false means we don't want to equate to it. param: mixed $onemptyitems This defines the behavior when the array of items provided is empty. Defaults to false, |
get_indexes($table) X-Ref |
Return table indexes - everything lowercased. return: array of arrays param: string $table The table we want to get indexes from. |
fetch_columns(string $table) X-Ref |
Returns detailed information about columns in table. return: database_column_info[] array of database_column_info objects indexed with column names param: string $table name |
normalise_value($column, $value) X-Ref |
Normalise values based in RDBMS dependencies (booleans, LOBs...) return: mixed the normalised value param: database_column_info $column column metadata corresponding with the value we are going to normalise param: mixed $value value we are going to normalise |
setup_is_unicodedb() X-Ref |
Is db in unicode mode? return: bool |
change_database_structure($sql, $tablenames = null) X-Ref |
Do NOT use in code, to be used by database_manager only! return: bool true param: string|array $sql query param: array|null $tablenames an array of xmldb table names affected by this request. |
execute($sql, array $params=null) X-Ref |
Execute general sql query. Should be used only when no other method suitable. Do NOT use this to make changes in db structure, use database_manager methods instead! return: bool true param: string $sql query param: array $params query parameters |
get_recordset_sql($sql, array $params=null, $limitfrom=0, $limitnum=0) X-Ref |
Get a number of records as a moodle_recordset using a SQL statement. Since this method is a little less readable, use of it should be restricted to code where it's possible there might be large datasets being returned. For known small datasets use get_records_sql - it leads to simpler code. The return type is like: return: moodle_recordset instance param: string $sql the SQL select query to execute. param: array $params array of sql parameters param: int $limitfrom return a subset of records, starting at this point (optional, required if $limitnum is set). param: int $limitnum return a subset comprising this many records (optional, required if $limitfrom is set). |
get_fetch_buffer_size() X-Ref |
Gets size of fetch buffer used for recordset queries. If this returns 0 then cursors will not be used, meaning recordset queries will occupy enough memory as needed for the Postgres library to hold the entire query results in memory. return: int Fetch buffer size or 0 indicating not to use cursors |
fetch_from_cursor($cursorname) X-Ref |
Retrieves data from cursor. For use by recordset only; do not call directly. Return value contains the next batch of Postgres data, and a boolean indicating if this is definitely the last batch (if false, there may be more) return: array Array with 2 elements (next data batch and boolean indicating last batch) param: string $cursorname Name of cursor to read from |
close_cursor($cursorname) X-Ref |
Closes a cursor. For use by recordset only; do not call directly. return: bool True if we actually closed one, false if the transaction was cancelled param: string $cursorname Name of cursor to close |
pg_field_type($result, int $fieldnumber) X-Ref |
A faster version of pg_field_type The pg_field_type function in the php postgres driver internally makes an sql call to get the list of field types which it statically caches only for a single request. This wraps it in a cache keyed by oid to avoid these DB calls on every request. return: string Field type param: resource $result param: int $fieldnumber |
get_records_sql($sql, array $params = null, $limitfrom = 0, $limitnum = 0) X-Ref |
Get a number of records as an array of objects using a SQL statement. Return value is like: return: array of objects, or empty array if no records were found param: string $sql the SQL select query to execute. The first column of this SELECT statement param: array $params array of sql parameters param: int $limitfrom return a subset of records, starting at this point (optional, required if $limitnum is set). param: int $limitnum return a subset comprising this many records (optional, required if $limitfrom is set). |
get_fieldset_sql($sql, array $params=null) X-Ref |
Selects records and return values (first field) as an array using a SQL statement. return: array of values param: string $sql The SQL query param: array $params array of sql parameters |
insert_record_raw($table, $params, $returnid=true, $bulk=false, $customsequence=false) X-Ref |
Insert new record into database, as fast as possible, no safety checks, lobs not supported. return: bool|int true or new id param: string $table name param: mixed $params data record as object or array param: bool $returnit return it of inserted record param: bool $bulk true means repeated inserts expected param: bool $customsequence true if 'id' included in $params, disables $returnid |
insert_record($table, $dataobject, $returnid=true, $bulk=false) X-Ref |
Insert a record into a table and return the "id" field if required. Some conversions and safety checks are carried out. Lobs are supported. If the return ID isn't required, then this just reports success as true/false. $data is an object containing needed data return: bool|int true or new id param: string $table The database table to be inserted into param: object|array $dataobject A data object with values for one or more fields in the record param: bool $returnid Should the id of the newly created record entry be returned? If this option is not requested then true/false is returned. |
insert_records($table, $dataobjects) X-Ref |
Insert multiple records into database as fast as possible. Order of inserts is maintained, but the operation is not atomic, use transactions if necessary. This method is intended for inserting of large number of small objects, do not use for huge objects with text or binary fields. return: void does not return new record ids param: string $table The database table to be inserted into param: array|Traversable $dataobjects list of objects to be inserted, must be compatible with foreach |
insert_chunk($table, array $chunk, array $columns) X-Ref |
Insert records in chunks, strict param types... Note: can be used only from insert_records(). param: string $table param: array $chunk param: database_column_info[] $columns |
import_record($table, $dataobject) X-Ref |
Import a record into a table, id field is required. Safety checks are NOT carried out. Lobs are supported. return: bool true param: string $table name of database table to be inserted into param: object $dataobject A data object with values for one or more fields in the record |
update_record_raw($table, $params, $bulk=false) X-Ref |
Update record in database, as fast as possible, no safety checks, lobs not supported. return: bool true param: string $table name param: mixed $params data record as object or array param: bool true means repeated updates expected |
update_record($table, $dataobject, $bulk=false) X-Ref |
Update a record in a table $dataobject is an object containing needed data Relies on $dataobject having a variable "id" to specify the record to update return: bool true param: string $table The database table to be checked against. param: object $dataobject An object with contents equal to fieldname=>fieldvalue. Must have an entry for 'id' to map to the table specified. param: bool true means repeated updates expected |
set_field_select($table, $newfield, $newvalue, $select, array $params=null) X-Ref |
Set a single field in every table record which match a particular WHERE clause. return: bool true param: string $table The database table to be checked against. param: string $newfield the field to set. param: string $newvalue the value to set the field to. param: string $select A fragment of SQL to be used in a where clause in the SQL call. param: array $params array of sql parameters |
delete_records_select($table, $select, array $params=null) X-Ref |
Delete one or more records from a table which match a particular WHERE clause, lobs not supported. return: bool true param: string $table The database table to be checked against. param: string $select A fragment of SQL to be used in a where clause in the SQL call (used to define the selection criteria). param: array $params array of sql parameters |
sql_like($fieldname, $param, $casesensitive = true, $accentsensitive = true, $notlike = false, $escapechar = '\\') X-Ref |
Returns 'LIKE' part of a query. return: string SQL code fragment param: string $fieldname usually name of the table column param: string $param usually bound query parameter (?, :named) param: bool $casesensitive use case sensitive search param: bool $accensensitive use accent sensitive search (not all databases support accent insensitive) param: bool $notlike true means "NOT LIKE" param: string $escapechar escape char for '%' and '_' |
sql_bitxor($int1, $int2) X-Ref |
No description |
sql_cast_char2int($fieldname, $text=false) X-Ref |
No description |
sql_cast_char2real($fieldname, $text=false) X-Ref |
No description |
sql_concat() X-Ref |
No description |
sql_concat_join($separator="' '", $elements=array() X-Ref |
No description |
sql_group_concat(string $field, string $separator = ', ', string $sort = '') X-Ref |
Return SQL for performing group concatenation on given field/expression return: string param: string $field param: string $separator param: string $sort |
sql_regex_supported() X-Ref |
No description |
sql_regex($positivematch = true, $casesensitive = false) X-Ref |
No description |
replace_all_text_supported() X-Ref |
Does this driver support tool_replace? return: bool |
session_lock_supported() X-Ref |
No description |
get_session_lock($rowid, $timeout) X-Ref |
Obtain session lock return: bool success param: int $rowid id of the row with session record param: int $timeout max allowed time to wait for the lock in seconds |
release_session_lock($rowid) X-Ref |
No description |
begin_transaction() X-Ref |
Driver specific start of real database transaction, this can not be used directly in code. return: void |
commit_transaction() X-Ref |
Driver specific commit of real database transaction, this can not be used directly in code. return: void |
rollback_transaction() X-Ref |
Driver specific abort of real database transaction, this can not be used directly in code. return: void |
trim_quotes($str) X-Ref |
Helper function trimming (whitespace + quotes) any string needed because PG uses to enclose with double quotes some fields in indexes definition and others return: string trimmed string param: string $str string to apply whitespace + quotes trim |
is_fulltext_search_supported() X-Ref |
Postgresql supports full-text search indexes. return: bool |