PgSQLTypes.php

Go to the documentation of this file.
00001 <?php 00002 00003 /* 00004 * $Id: PgSQLTypes.php,v 1.1 2004/04/28 17:37:09 micha 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 00033 class PgSQLTypes extends CreoleTypes 00034 { 00036 var $typeMap = null; 00037 00039 var $reverseMap = null; 00040 00041 /* 00042 * @access public static 00043 */ 00044 function getType($pgsqlType) 00045 { 00046 $self =& PgSQLTypes::getInstance(); 00047 $t = strtolower($pgsqlType); 00048 if (isset($self->typeMap[$t])) { 00049 return $self->typeMap[$t]; 00050 } else { 00051 return CreoleTypes::OTHER(); 00052 } 00053 } 00054 00055 /* 00056 * @access public static 00057 */ 00058 function getNativeType($creoleType) 00059 { 00060 $self =& PgSQLTypes::getInstance(); 00061 00062 if ($self->reverseMap === null) { 00063 $self->reverseMap = array_flip($self->typeMap); 00064 } 00065 return @$self->reverseMap[$creoleType]; 00066 } 00067 00068 /* 00069 * @access private 00070 */ 00071 function & getInstance() 00072 { 00073 static $instance; 00074 00075 if ($instance === null) 00076 { 00077 $instance = new PgSQLTypes(); 00078 $instance->typeMap = array 00079 ( 00080 "int2" => CreoleTypes::SMALLINT(), 00081 "int4" => CreoleTypes::INTEGER(), 00082 "oid" => CreoleTypes::INTEGER(), 00083 "int8" => CreoleTypes::BIGINT(), 00084 "cash" => CreoleTypes::DOUBLE(), 00085 "money" => CreoleTypes::DOUBLE(), 00086 "numeric" => CreoleTypes::NUMERIC(), 00087 "float4" => CreoleTypes::REAL(), 00088 "float8" => CreoleTypes::DOUBLE(), 00089 "bpchar" => CreoleTypes::CHAR(), 00090 "char" => CreoleTypes::CHAR(), 00091 "char2" => CreoleTypes::CHAR(), 00092 "char4" => CreoleTypes::CHAR(), 00093 "char8" => CreoleTypes::CHAR(), 00094 "char16" => CreoleTypes::CHAR(), 00095 "varchar" => CreoleTypes::VARCHAR(), 00096 "text" => CreoleTypes::VARCHAR(), 00097 "name" => CreoleTypes::VARCHAR(), 00098 "filename" => CreoleTypes::VARCHAR(), 00099 "bytea" => CreoleTypes::BINARY(), 00100 "bool" => CreoleTypes::BOOLEAN(), 00101 "date" => CreoleTypes::DATE(), 00102 "time" => CreoleTypes::TIME(), 00103 "abstime" => CreoleTypes::TIMESTAMP(), 00104 "timestamp" => CreoleTypes::TIMESTAMP(), 00105 "timestamptz" => CreoleTypes::TIMESTAMP(), 00106 "_bool" => CreoleTypes::ARR(), 00107 "_char" => CreoleTypes::ARR(), 00108 "_int2" => CreoleTypes::ARR(), 00109 "_int4" => CreoleTypes::ARR(), 00110 "_text" => CreoleTypes::ARR(), 00111 "_oid" => CreoleTypes::ARR(), 00112 "_varchar" => CreoleTypes::ARR(), 00113 "_int8" => CreoleTypes::ARR(), 00114 "_float4" => CreoleTypes::ARR(), 00115 "_float8" => CreoleTypes::ARR(), 00116 "_abstime" => CreoleTypes::ARR(), 00117 "_date" => CreoleTypes::ARR(), 00118 "_time" => CreoleTypes::ARR(), 00119 "_timestamp" => CreoleTypes::ARR(), 00120 "_numeric" => CreoleTypes::ARR(), 00121 "_bytea" => CreoleTypes::ARR(), 00122 ); 00123 } 00124 00125 return $instance; 00126 } 00127 }

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


Copyright © 2004 Hans Lellelid  
Creole[php4] CVS