00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 require_once 'creole/CreoleTypes.php';
00024
00032 class SQLiteTypes extends CreoleTypes {
00033
00040 private static $typeMap = array(
00041 'tinyint' => CreoleTypes::TINYINT,
00042 'smallint' => CreoleTypes::SMALLINT,
00043 'mediumint' => CreoleTypes::SMALLINT,
00044 'int' => CreoleTypes::INTEGER,
00045 'integer' => CreoleTypes::INTEGER,
00046 'bigint' => CreoleTypes::BIGINT,
00047 'int24' => CreoleTypes::BIGINT,
00048 'real' => CreoleTypes::REAL,
00049 'float' => CreoleTypes::FLOAT,
00050 'decimal' => CreoleTypes::DECIMAL,
00051 'numeric' => CreoleTypes::NUMERIC,
00052 'double' => CreoleTypes::DOUBLE,
00053 'char' => CreoleTypes::CHAR,
00054 'varchar' => CreoleTypes::VARCHAR,
00055 'date' => CreoleTypes::DATE,
00056 'time' => CreoleTypes::TIME,
00057 'year' => CreoleTypes::YEAR,
00058 'datetime' => CreoleTypes::TIMESTAMP,
00059 'timestamp' => CreoleTypes::TIMESTAMP,
00060 'tinyblob' => CreoleTypes::BINARY,
00061 'blob' => CreoleTypes::VARBINARY,
00062 'mediumblob' => CreoleTypes::VARBINARY,
00063 'longblob' => CreoleTypes::VARBINARY,
00064 'tinytext' => CreoleTypes::VARCHAR,
00065 'mediumtext' => CreoleTypes::LONGVARCHAR,
00066 'text' => CreoleTypes::LONGVARCHAR,
00067 );
00068
00070 private static $reverseMap = null;
00071
00079 public static function getType($nativeType)
00080 {
00081 $t = strtolower($nativeType);
00082 if (isset(self::$typeMap[$t])) {
00083 return self::$typeMap[$t];
00084 } else {
00085 return CreoleTypes::TEXT;
00086 }
00087 }
00088
00100 public static function getNativeType($creoleType)
00101 {
00102 if (self::$reverseMap === null) {
00103 self::$reverseMap = array_flip(self::$typeMap);
00104 }
00105 return @self::$reverseMap[$creoleType];
00106 }
00107
00108 }