Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.

Differences Between: [Versions 310 and 401] [Versions 311 and 401] [Versions 39 and 401] [Versions 400 and 401] [Versions 401 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: 584 lines (19 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

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

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 its 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.

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, e.g. for postgres, default ''
param: array  $tableoptions options for the new table {@see CreateTableSQL()}, default ''
return: array with SQL strings

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
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 []
return: array with SQL strings

_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!
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 ''
return: array with SQL strings

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