PgSQLTypes.php

Go to the documentation of this file.
00001 <?php 00002 00003 /* 00004 * $Id: PgSQLTypes.php,v 1.8 2004/04/09 19:16:05 hlellelid Exp $ 00005 * 00006 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00007 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00008 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00009 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00010 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00011 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00012 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00013 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00014 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00015 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00016 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00017 * 00018 * This software consists of voluntary contributions made by many individuals 00019 * and is licensed under the LGPL. For more information please see 00020 * <http://creole.phpdb.org>. 00021 */ 00022 00023 require_once 'creole/CreoleTypes.php'; 00024 00032 class PgSQLTypes extends CreoleTypes { 00033 00035 private static $typeMap = array ( 00036 "int2" => CreoleTypes::SMALLINT, 00037 "int4" => CreoleTypes::INTEGER, 00038 "oid" => CreoleTypes::INTEGER, 00039 "int8" => CreoleTypes::BIGINT, 00040 "cash" => CreoleTypes::DOUBLE, 00041 "money" => CreoleTypes::DOUBLE, 00042 "numeric" => CreoleTypes::NUMERIC, 00043 "float4" => CreoleTypes::REAL, 00044 "float8" => CreoleTypes::DOUBLE, 00045 "bpchar" => CreoleTypes::CHAR, 00046 "char" => CreoleTypes::CHAR, 00047 "char2" => CreoleTypes::CHAR, 00048 "char4" => CreoleTypes::CHAR, 00049 "char8" => CreoleTypes::CHAR, 00050 "char16" => CreoleTypes::CHAR, 00051 "varchar" => CreoleTypes::VARCHAR, 00052 "text" => CreoleTypes::VARCHAR, 00053 "name" => CreoleTypes::VARCHAR, 00054 "filename" => CreoleTypes::VARCHAR, 00055 "bytea" => CreoleTypes::BINARY, 00056 "bool" => CreoleTypes::BOOLEAN, 00057 "date" => CreoleTypes::DATE, 00058 "time" => CreoleTypes::TIME, 00059 "abstime" => CreoleTypes::TIMESTAMP, 00060 "timestamp" => CreoleTypes::TIMESTAMP, 00061 "timestamptz" => CreoleTypes::TIMESTAMP, 00062 "_bool" => CreoleTypes::ARR, 00063 "_char" => CreoleTypes::ARR, 00064 "_int2" => CreoleTypes::ARR, 00065 "_int4" => CreoleTypes::ARR, 00066 "_text" => CreoleTypes::ARR, 00067 "_oid" => CreoleTypes::ARR, 00068 "_varchar" => CreoleTypes::ARR, 00069 "_int8" => CreoleTypes::ARR, 00070 "_float4" => CreoleTypes::ARR, 00071 "_float8" => CreoleTypes::ARR, 00072 "_abstime" => CreoleTypes::ARR, 00073 "_date" => CreoleTypes::ARR, 00074 "_time" => CreoleTypes::ARR, 00075 "_timestamp" => CreoleTypes::ARR, 00076 "_numeric" => CreoleTypes::ARR, 00077 "_bytea" => CreoleTypes::ARR, 00078 ); 00079 00081 private static $reverseMap = null; 00082 00083 public static function getType($pgsqlType) 00084 { 00085 $t = strtolower($pgsqlType); 00086 if (isset(self::$typeMap[$t])) { 00087 return self::$typeMap[$t]; 00088 } else { 00089 return CreoleTypes::OTHER; 00090 } 00091 } 00092 00093 public static function getNativeType($creoleType) 00094 { 00095 if (self::$reverseMap === null) { 00096 self::$reverseMap = array_flip(self::$typeMap); 00097 } 00098 return @self::$reverseMap[$creoleType]; 00099 } 00100 00101 }

This file is part of the Creole[php5] library.


Copyright © 2004 Hans Lellelid  
Creole[php5] CVS