Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.0.x will end 8 May 2023 (12 months).
  • Bug fixes for security issues in 4.0.x will end 13 November 2023 (18 months).
  • PHP version: minimum PHP 7.3.0 Note: the minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is also supported.

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]

Data Dictionary for PostgreSQL.

Copyright: 2000-2013 John Lim
Copyright: 2014 Damien Regad, Mark Newnham and the ADOdb community
License: BSD-3-Clause
License: LGPL-2.1-or-later
File Size: 565 lines (18 kb)
Included or required:0 times
Referenced: 0 times
Includes or requires: 0 files

Defines 1 class

ADODB2_postgres:: (14 methods):
  metaType()
  actualType()
  addColumnSQL()
  dropIndexSQL()
  alterColumnSQL()
  dropColumnSQL()
  _recreate_copy_table()
  dropTableSQL()
  _createSuffix()
  _dropAutoIncrement()
  renameTableSQL()
  _indexSQL()
  _getSize()
  changeTableSQL()


Class: ADODB2_postgres  - X-Ref

metaType($t, $len=-1, $fieldobj=false)   X-Ref
No description

actualType($meta)   X-Ref
No description

addColumnSQL($tabname, $flds)   X-Ref
Adding a new Column

reimplementation of the default function as postgres does NOT allow to set the default in the same statement

return: array with SQL strings
param: string $tabname table-name
param: string $flds column-names and types for the changed columns

dropIndexSQL($idxname, $tabname = NULL)   X-Ref
No description

alterColumnSQL($tabname, $flds, $tableflds='', $tableoptions='')   X-Ref
Change the definition of one column

Postgres can't do that on it's own, you need to supply the complete definition of the new table,
to allow, recreating the table and copying the content over to the new table
return: array with SQL strings
param: string $tabname table-name
param: string $flds column-name and type for the changed column
param: string $tableflds complete definition of the new table, eg. for postgres, default ''
param: array/ $tableoptions options for the new table see CreateTableSQL, default ''

dropColumnSQL($tabname, $flds, $tableflds='', $tableoptions='')   X-Ref
Drop one column

Postgres < 7.3 can't do that on it's own, you need to supply the complete definition of the new table,
to allow, recreating the table and copying the content over to the new table
return: array with SQL strings
param: string $tabname table-name
param: string $flds column-name and type for the changed column
param: string $tableflds complete definition of the new table, eg. for postgres, default ''
param: array/ $tableoptions options for the new table see CreateTableSQL, default ''

_recreate_copy_table($tabname, $dropflds, $tableflds, $tableoptions='')   X-Ref
Save the content into a temp. table, drop and recreate the original table and copy the content back in

We also take care to set the values of the sequenz and recreate the indexes.
All this is done in a transaction, to not loose the content of the table, if something went wrong!
return: array with SQL strings
param: string $tabname table-name
param: string $dropflds column-names to drop
param: string $tableflds complete definition of the new table, eg. for postgres
param: array/string $tableoptions options for the new table see CreateTableSQL, default ''

dropTableSQL($tabname)   X-Ref
No description

_createSuffix($fname, &$ftype, $fnotnull, $fdefault, $fautoinc, $fconstraint, $funsigned)   X-Ref
No description

_dropAutoIncrement($tabname)   X-Ref
No description

renameTableSQL($tabname, $newname)   X-Ref
No description

_indexSQL($idxname, $tabname, $flds, $idxoptions)   X-Ref
No description

_getSize($ftype, $ty, $fsize, $fprec, $options=false)   X-Ref
No description

changeTableSQL($tablename, $flds, $tableoptions = false, $dropOldFlds=false)   X-Ref
No description