Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
doctrine-dbal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tomáš Trávníček
doctrine-dbal
Commits
f998aff6
Commit
f998aff6
authored
Dec 29, 2006
by
zYne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added Firebird exception class
parent
6239c4b3
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
164 additions
and
129 deletions
+164
-129
Firebird.php
lib/Doctrine/DataDict/Firebird.php
+58
-57
Exception.php
lib/Doctrine/DataDict/Firebird/Exception.php
+34
-0
Mysql.php
lib/Doctrine/DataDict/Mysql.php
+72
-72
No files found.
lib/Doctrine/DataDict/Firebird.php
View file @
f998aff6
...
...
@@ -107,71 +107,72 @@ class Doctrine_DataDict_Firebird extends Doctrine_DataDict
$type
=
array
();
$unsigned
=
$fixed
=
null
;
$db
_t
ype
=
strtolower
(
$field
[
'type'
]);
$db
T
ype
=
strtolower
(
$field
[
'type'
]);
$field
[
'field_sub_type'
]
=
!
empty
(
$field
[
'field_sub_type'
])
?
strtolower
(
$field
[
'field_sub_type'
])
:
null
;
switch
(
$db_type
)
{
case
'smallint'
:
case
'integer'
:
case
'int64'
:
//these may be 'numeric' or 'decimal'
if
(
isset
(
$field
[
'field_sub_type'
]))
{
$field
[
'type'
]
=
$field
[
'field_sub_type'
];
return
$this
->
mapNativeDatatype
(
$field
);
}
case
'bigint'
:
case
'quad'
:
$type
[]
=
'integer'
;
if
(
$length
==
'1'
)
{
$type
[]
=
'boolean'
;
if
(
preg_match
(
'/^(is|has)/'
,
$field
[
'name'
]))
{
$type
=
array_reverse
(
$type
);
switch
(
$dbType
)
{
case
'smallint'
:
case
'integer'
:
case
'int64'
:
//these may be 'numeric' or 'decimal'
if
(
isset
(
$field
[
'field_sub_type'
]))
{
$field
[
'type'
]
=
$field
[
'field_sub_type'
];
return
$this
->
getPortableDeclaration
(
$field
);
}
}
break
;
case
'varchar'
:
$fixed
=
false
;
case
'char'
:
case
'cstring'
:
$type
[]
=
'text'
;
if
(
$length
==
'1'
)
{
$type
[]
=
'boolean'
;
if
(
preg_match
(
'/^(is|has)/'
,
$field
[
'name'
]))
{
$type
=
array_reverse
(
$type
);
case
'bigint'
:
case
'quad'
:
$type
[]
=
'integer'
;
if
(
$length
==
'1'
)
{
$type
[]
=
'boolean'
;
if
(
preg_match
(
'/^(is|has)/'
,
$field
[
'name'
]))
{
$type
=
array_reverse
(
$type
);
}
}
}
if
(
$fixed
!==
false
)
{
$fixed
=
true
;
}
break
;
case
'date'
:
$type
[]
=
'date'
;
$length
=
null
;
break
;
case
'timestamp'
:
$type
[]
=
'timestamp'
;
$length
=
null
;
break
;
case
'time'
:
$type
[]
=
'time'
;
$length
=
null
;
break
;
case
'float'
:
case
'double'
:
case
'double precision'
:
case
'd_float'
:
$type
[]
=
'float'
;
case
'varchar'
:
$fixed
=
false
;
case
'char'
:
case
'cstring'
:
$type
[]
=
'text'
;
if
(
$length
==
'1'
)
{
$type
[]
=
'boolean'
;
if
(
preg_match
(
'/^(is|has)/'
,
$field
[
'name'
]))
{
$type
=
array_reverse
(
$type
);
}
}
if
(
$fixed
!==
false
)
{
$fixed
=
true
;
}
break
;
case
'decimal
'
:
case
'numeric'
:
$type
[]
=
'decimal'
;
case
'date
'
:
$type
[]
=
'date'
;
$length
=
null
;
break
;
case
'blob
'
:
$type
[]
=
(
$field
[
'field_sub_type'
]
==
'text'
)
?
'clob'
:
'blob
'
;
$length
=
null
;
case
'timestamp
'
:
$type
[]
=
'timestamp
'
;
$length
=
null
;
break
;
default
:
throw
new
Doctrine_DataDict_Firebird_Exception
(
'unknown database attribute type: '
.
$db_type
);
case
'time'
:
$type
[]
=
'time'
;
$length
=
null
;
break
;
case
'float'
:
case
'double'
:
case
'double precision'
:
case
'd_float'
:
$type
[]
=
'float'
;
break
;
case
'decimal'
:
case
'numeric'
:
$type
[]
=
'decimal'
;
break
;
case
'blob'
:
$type
[]
=
(
$field
[
'field_sub_type'
]
==
'text'
)
?
'clob'
:
'blob'
;
$length
=
null
;
break
;
default
:
throw
new
Doctrine_DataDict_Firebird_Exception
(
'unknown database attribute type: '
.
$dbType
);
}
return
array
(
$type
,
$length
,
$unsigned
,
$fixed
);
...
...
lib/Doctrine/DataDict/Firebird/Exception.php
0 → 100644
View file @
f998aff6
<?php
/*
* $Id$
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This software consists of voluntary contributions made by many individuals
* and is licensed under the LGPL. For more information, see
* <http://www.phpdoctrine.com>.
*/
Doctrine
::
autoload
(
'Doctrine_DataDict_Exception'
);
/**
* Doctrine_DataDict_Sqlite_Exception
*
* @package Doctrine
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @category Object Relational Mapping
* @link www.phpdoctrine.com
* @since 1.0
* @version $Revision$
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
*/
class
Doctrine_DataDict_Firebird_Exception
extends
Doctrine_DataDict_Exception
{
}
lib/Doctrine/DataDict/Mysql.php
View file @
f998aff6
...
...
@@ -134,82 +134,82 @@ class Doctrine_DataDict_Mysql extends Doctrine_DataDict
public
function
getNativeDeclaration
(
$field
)
{
switch
(
$field
[
'type'
])
{
case
'char'
:
$length
=
(
!
empty
(
$field
[
'length'
]))
?
$field
[
'length'
]
:
false
;
return
$length
?
'CHAR('
.
$length
.
')'
:
'CHAR(255)'
;
case
'varchar'
:
case
'array'
:
case
'object'
:
case
'string'
:
if
(
!
isset
(
$field
[
'length'
]))
{
if
(
array_key_exists
(
'default'
,
$field
))
{
$field
[
'length'
]
=
$this
->
conn
->
varchar_max_length
;
}
else
{
$field
[
'length'
]
=
false
;
case
'char'
:
$length
=
(
!
empty
(
$field
[
'length'
]))
?
$field
[
'length'
]
:
false
;
return
$length
?
'CHAR('
.
$length
.
')'
:
'CHAR(255)'
;
case
'varchar'
:
case
'array'
:
case
'object'
:
case
'string'
:
if
(
!
isset
(
$field
[
'length'
]))
{
if
(
array_key_exists
(
'default'
,
$field
))
{
$field
[
'length'
]
=
$this
->
conn
->
varchar_max_length
;
}
else
{
$field
[
'length'
]
=
false
;
}
}
}
$length
=
(
$field
[
'length'
]
<
$this
->
conn
->
varchar_max_length
)
?
$field
[
'length
'
]
:
false
;
$fixed
=
(
isset
(
$field
[
'fixed'
]))
?
$field
[
'fixed'
]
:
false
;
return
$fixed
?
(
$length
?
'CHAR('
.
$length
.
')'
:
'CHAR(255)'
)
:
(
$length
?
'VARCHAR('
.
$length
.
')'
:
'TEXT'
);
case
'clob'
:
if
(
!
empty
(
$field
[
'length'
]))
{
$length
=
$field
[
'length'
];
if
(
$length
<=
255
)
{
return
'TINYTEXT'
;
}
elseif
(
$length
<=
65532
)
{
return
'TEXT'
;
}
elseif
(
$length
<=
16777215
)
{
return
'MEDIUMTEXT'
;
$length
=
(
$field
[
'length'
]
<
$this
->
conn
->
varchar_max_length
)
?
$field
[
'length'
]
:
false
;
$fixed
=
(
isset
(
$field
[
'fixed'
]))
?
$field
[
'fixed
'
]
:
false
;
return
$fixed
?
(
$length
?
'CHAR('
.
$length
.
')'
:
'CHAR(255)'
)
:
(
$length
?
'VARCHAR('
.
$length
.
')'
:
'TEXT'
);
case
'clob'
:
if
(
!
empty
(
$field
[
'length'
]))
{
$length
=
$field
[
'length'
];
if
(
$length
<=
255
)
{
return
'TINYTEXT'
;
}
elseif
(
$length
<=
65532
)
{
return
'TEXT'
;
}
elseif
(
$length
<=
16777215
)
{
return
'MEDIUMTEXT'
;
}
}
}
return
'LONGTEXT'
;
case
'blob'
:
if
(
!
empty
(
$field
[
'length'
]))
{
$length
=
$field
[
'length'
];
if
(
$length
<=
255
)
{
return
'TINYBLOB'
;
}
elseif
(
$length
<=
65532
)
{
return
'BLOB'
;
}
elseif
(
$length
<=
16777215
)
{
return
'MEDIUMBLOB'
;
return
'LONGTEXT'
;
case
'blob'
:
if
(
!
empty
(
$field
[
'length'
]))
{
$length
=
$field
[
'length'
];
if
(
$length
<=
255
)
{
return
'TINYBLOB'
;
}
elseif
(
$length
<=
65532
)
{
return
'BLOB'
;
}
elseif
(
$length
<=
16777215
)
{
return
'MEDIUMBLOB'
;
}
}
}
return
'LONGBLOB'
;
case
'integer
'
:
case
'enum'
:
if
(
!
empty
(
$field
[
'length'
]))
{
$length
=
$field
[
'length'
];
if
(
$length
<=
1
)
{
return
'TINYINT'
;
}
elseif
(
$length
==
2
)
{
return
'SMALLINT'
;
}
elseif
(
$length
==
3
)
{
return
'MEDIUMINT'
;
}
elseif
(
$length
==
4
)
{
return
'INT'
;
}
elseif
(
$length
>
4
)
{
return
'BIGINT'
;
return
'LONGBLOB'
;
case
'integer'
:
case
'enum
'
:
if
(
!
empty
(
$field
[
'length'
]))
{
$length
=
$field
[
'length'
];
if
(
$length
<=
1
)
{
return
'TINYINT'
;
}
elseif
(
$length
==
2
)
{
return
'SMALLINT'
;
}
elseif
(
$length
==
3
)
{
return
'MEDIUMINT'
;
}
elseif
(
$length
==
4
)
{
return
'INT'
;
}
elseif
(
$length
>
4
)
{
return
'BIGINT'
;
}
}
}
return
'INT'
;
case
'boolean'
:
return
'TINYINT(1)'
;
case
'date'
:
return
'DATE'
;
case
'time'
:
return
'TIME'
;
case
'timestamp'
:
return
'DATETIME'
;
case
'float'
:
return
'DOUBLE'
;
case
'decimal'
:
$length
=
!
empty
(
$field
[
'length'
])
?
$field
[
'length'
]
:
18
;
return
'DECIMAL('
.
$length
.
','
.
0
.
')'
;
//$this->dbh->options['decimal_places'] . ')';
return
'INT'
;
case
'boolean'
:
return
'TINYINT(1)'
;
case
'date'
:
return
'DATE'
;
case
'time'
:
return
'TIME'
;
case
'timestamp'
:
return
'DATETIME'
;
case
'float'
:
return
'DOUBLE'
;
case
'decimal'
:
$length
=
!
empty
(
$field
[
'length'
])
?
$field
[
'length'
]
:
18
;
return
'DECIMAL('
.
$length
.
','
.
0
.
')'
;
//$this->dbh->options['decimal_places'] . ')';
}
return
''
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment