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
f02ad22c
Commit
f02ad22c
authored
Nov 25, 2006
by
zYne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated firebird and mysql drivers
parent
85559a7f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
146 additions
and
11 deletions
+146
-11
Firebird.php
lib/Doctrine/DataDict/Firebird.php
+22
-0
Mysql.php
lib/Doctrine/DataDict/Mysql.php
+65
-0
Firebird.php
lib/Doctrine/Expression/Firebird.php
+3
-3
Mysql.php
lib/Doctrine/Expression/Mysql.php
+56
-8
No files found.
lib/Doctrine/DataDict/Firebird.php
View file @
f02ad22c
...
...
@@ -165,6 +165,28 @@ class Doctrine_DataDict_Firebird extends Doctrine_DataDict {
return
array
(
$type
,
$length
,
$unsigned
,
$fixed
);
}
/**
* Obtain DBMS specific SQL code portion needed to set the CHARACTER SET
* of a field declaration to be used in statements like CREATE TABLE.
*
* @param string $charset name of the charset
* @return string DBMS specific SQL code portion needed to set the CHARACTER SET
* of a field declaration.
*/
public
function
getCharsetFieldDeclaration
(
$charset
)
{
return
'CHARACTER SET '
.
$charset
;
}
/**
* Obtain DBMS specific SQL code portion needed to set the COLLATION
* of a field declaration to be used in statements like CREATE TABLE.
*
* @param string $collation name of the collation
* @return string DBMS specific SQL code portion needed to set the COLLATION
* of a field declaration.
*/
public
function
getCollationFieldDeclaration
(
$collation
)
{
return
'COLLATE '
.
$collation
;
}
/**
* list all tables in the current database
*
...
...
lib/Doctrine/DataDict/Mysql.php
View file @
f02ad22c
...
...
@@ -266,6 +266,71 @@ class Doctrine_DataDict_Mysql extends Doctrine_DataDict {
return
array
(
$type
,
$length
,
$unsigned
,
$fixed
);
}
/**
* Obtain DBMS specific SQL code portion needed to set the CHARACTER SET
* of a field declaration to be used in statements like CREATE TABLE.
*
* @param string $charset name of the charset
* @return string DBMS specific SQL code portion needed to set the CHARACTER SET
* of a field declaration.
*/
public
function
getCharsetFieldDeclaration
(
$charset
)
{
return
'CHARACTER SET '
.
$charset
;
}
/**
* Obtain DBMS specific SQL code portion needed to set the COLLATION
* of a field declaration to be used in statements like CREATE TABLE.
*
* @param string $collation name of the collation
* @return string DBMS specific SQL code portion needed to set the COLLATION
* of a field declaration.
*/
public
function
getCollationFieldDeclaration
(
$collation
)
{
return
'COLLATE '
.
$collation
;
}
/**
* Obtain DBMS specific SQL code portion needed to declare an integer type
* field to be used in statements like CREATE TABLE.
*
* @param string $name name the field to be declared.
* @param string $field associative array with the name of the properties
* of the field being declared as array indexes.
* Currently, the types of supported field
* properties are as follows:
*
* unsigned
* Boolean flag that indicates whether the field
* should be declared as unsigned integer if
* possible.
*
* default
* Integer value to be used as default for this
* field.
*
* notnull
* Boolean flag that indicates whether this field is
* constrained to not be set to null.
* @return string DBMS specific SQL code portion that should be used to
* declare the specified field.
*/
public
function
getIntegerDeclaration
(
$name
,
$field
)
{
$default
=
$autoinc
=
''
;
if
(
!
empty
(
$field
[
'autoincrement'
]))
{
$autoinc
=
' AUTO_INCREMENT PRIMARY KEY'
;
}
elseif
(
array_key_exists
(
'default'
,
$field
))
{
if
(
$field
[
'default'
]
===
''
)
{
$field
[
'default'
]
=
empty
(
$field
[
'notnull'
])
?
null
:
0
;
}
$default
=
' DEFAULT '
.
$this
->
conn
->
getDbh
()
->
quote
(
$field
[
'default'
]);
}
elseif
(
empty
(
$field
[
'notnull'
]))
{
$default
=
' DEFAULT NULL'
;
}
$notnull
=
empty
(
$field
[
'notnull'
])
?
''
:
' NOT NULL'
;
$unsigned
=
empty
(
$field
[
'unsigned'
])
?
''
:
' UNSIGNED'
;
$name
=
$this
->
conn
->
quoteIdentifier
(
$name
,
true
);
return
$name
.
' '
.
$this
->
getTypeDeclaration
(
$field
)
.
$unsigned
.
$default
.
$notnull
.
$autoinc
;
}
/**
* lists all databases
*
...
...
lib/Doctrine/Expression/Firebird.php
View file @
f02ad22c
...
...
@@ -44,10 +44,10 @@ class Doctrine_Expression_Firebird extends Doctrine_Expression {
}
/**
* build string to define escape pattern string
*
*
* @return string define escape pattern
*/
public
function
patternEscapeString
()
{
return
" ESCAPE '"
.
$
db
->
escape_pattern
.
"'"
;
function
patternEscapeString
()
{
return
" ESCAPE '"
.
$
this
->
conn
->
string_quoting
[
'escape_pattern'
]
.
"'"
;
}
}
lib/Doctrine/Expression/Mysql.php
View file @
f02ad22c
...
...
@@ -22,14 +22,14 @@ Doctrine::autoload('Doctrine_Expression');
/**
* Doctrine_Expression_Mysql
*
* @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>
*/
* @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_Expression_Mysql
extends
Doctrine_Expression
{
/**
* returns the regular expression operator
...
...
@@ -38,5 +38,53 @@ class Doctrine_Expression_Mysql extends Doctrine_Expression {
*/
public
function
regexp
()
{
return
'RLIKE'
;
}
/**
* build a pattern matching string
*
* EXPERIMENTAL
*
* WARNING: this function is experimental and may change signature at
* any time until labelled as non-experimental
*
* @access public
*
* @param array $pattern even keys are strings, odd are patterns (% and _)
* @param string $operator optional pattern operator (LIKE, ILIKE and maybe others in the future)
* @param string $field optional field name that is being matched against
* (might be required when emulating ILIKE)
*
* @return string SQL pattern
*/
public
function
matchPattern
(
$pattern
,
$operator
=
null
,
$field
=
null
)
{
$match
=
''
;
if
(
!
is_null
(
$operator
))
{
$field
=
is_null
(
$field
)
?
''
:
$field
.
' '
;
$operator
=
strtoupper
(
$operator
);
switch
(
$operator
)
{
// case insensitive
case
'ILIKE'
:
$match
=
$field
.
'LIKE '
;
break
;
// case sensitive
case
'LIKE'
:
$match
=
$field
.
'LIKE BINARY '
;
break
;
default
:
return
$db
->
raiseError
(
MDB2_ERROR_UNSUPPORTED
,
null
,
null
,
'not a supported operator type:'
.
$operator
,
__FUNCTION__
);
}
}
$match
.=
"'"
;
foreach
(
$pattern
as
$key
=>
$value
)
{
if
(
$key
%
2
)
{
$match
.=
$value
;
}
else
{
$match
.=
$db
->
escapePattern
(
$db
->
escape
(
$value
));
}
}
$match
.=
"'"
;
$match
.=
$this
->
patternEscapeString
();
return
$match
;
}
}
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