Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

XMLDB column types

From MoodleDocs

XMLDB Documentation > XMLDB column types


This page will show, once finished, one compatibility matrix of column types for each of the RDBMS under which Moodle is expected to work.

The matrix

XMLDB Type MySQL PostgreSQL Oracle MSSQL
int
BIGINT (>9 digits)
INT (>6 digits)
MEDIUMINT (>4 digits)
SMALLINT (>2 digits)
TINYINT (<=2 digits)
BIGINT (>9 digits)
INTEGER (>4 digits)
SMALLINT (<=4 digits)
NUMBER
BIGINT (>9 digits)
INTEGER (>4 digits)
SMALLINT (<=4 digits)
number
NUMERIC
NUMERIC
NUMBER
DECIMAL
float
FLOAT (< 6 dec. positions)
DOUBLE (>= 6 dec. positions)
REAL (< 6 dec. positions)
DOUBLE PRECISION (>= 6 dec. positions)
NUMBER
REAL (< 6 dec. positions)
FLOAT (>= 6 dec. positions)
char

size limit

VARCHAR

<5.0.3 0-255 chars, >=5.0.3 0-65535 chars

VARCHAR

about 1GB ot text

VARCHAR2

4000 bytes

NVARCHAR

4000 chars

text
LONGTEXT
MEDIUMTEXT
TEXT
TEXT
CLOB
NTEXT
binary
LONGBLOB
MEDIUMBLOB
BLOB
BYTEA
BLOB
IMAGE
datetime(*)
DATETIME
TIMESTAMP
DATE
DATETIME

(*) Note that, although datetime types are supported by XMLDB, all datetime/timestamp columns under Moodle are declared as integer(10) and filled with Unix timestamps, so this type of column shouldn't be used at all (in fact, the XMLDB Editor doesn't show them as an available option).

Some official links