MDL-70959 completion: Fix unit tests for get_data()
[moodle.git] / lib / adodb / datadict / datadict-sqlite.inc.php
blobc67ee3a6a2897b40981fa8fcca5a611ee105c2fd
1 <?php
3 /**
4 @version v5.20.16 12-Jan-2020
5 @copyright (c) 2000-2013 John Lim (jlim#natsoft.com). All rights reserved.
6 @copyright (c) 2014 Damien Regad, Mark Newnham and the ADOdb community
7 Released under both BSD license and Lesser GPL library license.
8 Whenever there is any discrepancy between the two licenses,
9 the BSD license will take precedence.
11 Set tabs to 4 for best viewing.
13 SQLite datadict Andrei Besleaga
17 // security - hide paths
18 if (!defined('ADODB_DIR')) die();
20 class ADODB2_sqlite extends ADODB_DataDict {
21 var $databaseType = 'sqlite';
22 var $seqField = false;
23 var $addCol=' ADD COLUMN';
24 var $dropTable = 'DROP TABLE IF EXISTS %s';
25 var $dropIndex = 'DROP INDEX IF EXISTS %s';
26 var $renameTable = 'ALTER TABLE %s RENAME TO %s';
30 function ActualType($meta)
32 switch(strtoupper($meta)) {
33 case 'C': return 'VARCHAR'; // TEXT , TEXT affinity
34 case 'XL':return 'LONGTEXT'; // TEXT , TEXT affinity
35 case 'X': return 'TEXT'; // TEXT , TEXT affinity
37 case 'C2': return 'VARCHAR'; // TEXT , TEXT affinity
38 case 'X2': return 'LONGTEXT'; // TEXT , TEXT affinity
40 case 'B': return 'LONGBLOB'; // TEXT , NONE affinity , BLOB
42 case 'D': return 'DATE'; // NUMERIC , NUMERIC affinity
43 case 'T': return 'DATETIME'; // NUMERIC , NUMERIC affinity
44 case 'L': return 'TINYINT'; // NUMERIC , INTEGER affinity
46 case 'R':
47 case 'I4':
48 case 'I': return 'INTEGER'; // NUMERIC , INTEGER affinity
49 case 'I1': return 'TINYINT'; // NUMERIC , INTEGER affinity
50 case 'I2': return 'SMALLINT'; // NUMERIC , INTEGER affinity
51 case 'I8': return 'BIGINT'; // NUMERIC , INTEGER affinity
53 case 'F': return 'DOUBLE'; // NUMERIC , REAL affinity
54 case 'N': return 'NUMERIC'; // NUMERIC , NUMERIC affinity
55 default:
56 return $meta;
60 // return string must begin with space
61 function _CreateSuffix($fname,$ftype,$fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned)
63 $suffix = '';
64 if ($funsigned) $suffix .= ' UNSIGNED';
65 if ($fnotnull) $suffix .= ' NOT NULL';
66 if (strlen($fdefault)) $suffix .= " DEFAULT $fdefault";
67 if ($fautoinc) $suffix .= ' AUTOINCREMENT';
68 if ($fconstraint) $suffix .= ' '.$fconstraint;
69 return $suffix;
72 function AlterColumnSQL($tabname, $flds, $tableflds='', $tableoptions='')
74 if ($this->debug) ADOConnection::outp("AlterColumnSQL not supported natively by SQLite");
75 return array();
78 function DropColumnSQL($tabname, $flds, $tableflds='', $tableoptions='')
80 if ($this->debug) ADOConnection::outp("DropColumnSQL not supported natively by SQLite");
81 return array();
84 function RenameColumnSQL($tabname,$oldcolumn,$newcolumn,$flds='')
86 if ($this->debug) ADOConnection::outp("RenameColumnSQL not supported natively by SQLite");
87 return array();