23 return "CAST( $field AS BINARY )";
31 return 'CAST( ' . $field .
' AS SIGNED )';
36 switch ( strtoupper( $joinType ) ) {
39 return 'STRAIGHT_JOIN';
42 return parent::normalizeJoinType( $joinType );
51 return "FORCE INDEX (" . $index .
")";
59 return "IGNORE INDEX (" . $index .
")";
68 $delTable = $this->
tableName( $delTable );
69 $joinTable = $this->
tableName( $joinTable );
70 $sql =
"DELETE $delTable FROM $delTable, $joinTable WHERE $delVar=$joinVar ";
72 if ( $conds !=
'*' ) {
73 $sql .=
' AND ' . $this->
makeList( $conds, self::LIST_AND );
81 return parent::isTransactableQuery( $sql ) &&
83 !preg_match(
'/^SELECT\s+(GET|RELEASE|IS_FREE)_LOCK\(/', $sql->
getSQL() );
95 return "VALUES($column)";
100 $encName = $this->quoter->addQuotes( $this->
makeLockName( $lockName ) );
105 return "SELECT IF(GET_LOCK($encName,$timeout),UNIX_TIMESTAMP(SYSDATE(6)),NULL) AS acquired";
110 $encName = $this->quoter->addQuotes( $this->
makeLockName( $lockName ) );
111 return "SELECT IS_FREE_LOCK($encName) AS unlocked";
116 $encName = $this->quoter->addQuotes( $this->
makeLockName( $lockName ) );
117 return "SELECT RELEASE_LOCK($encName) AS released";
124 return ( strlen( $lockName ) > 64 ) ? sha1( $lockName ) : $lockName;