Skip to content

Commit b6919ef

Browse files
authored
Merge pull request #178 from mark-careplanner/master
Adding create function metadata to create_function()
2 parents 0ca7b7f + 6b846a1 commit b6919ef

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

src/Ifsnop/Mysqldump/Mysqldump.php

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1973,6 +1973,9 @@ public function create_function($row)
19731973
"Please check 'https://bugs.mysql.com/bug.php?id=14564'");
19741974
}
19751975
$functionStmt = $row['Create Function'];
1976+
$characterSetClient = $row['character_set_client'];
1977+
$collationConnection = $row['collation_connection'];
1978+
$sqlMode = $row['sql_mode'];
19761979
if ( $this->dumpSettings['skip-definer'] ) {
19771980
if ($functionStmtReplaced = preg_replace(
19781981
'/^(CREATE)\s+('.self::DEFINER_RE.')?\s+(FUNCTION\s.*)$/s',
@@ -1987,11 +1990,24 @@ public function create_function($row)
19871990
$ret .= "/*!50003 DROP FUNCTION IF EXISTS `".
19881991
$row['Function']."` */;".PHP_EOL.
19891992
"/*!40101 SET @saved_cs_client = @@character_set_client */;".PHP_EOL.
1990-
"/*!40101 SET character_set_client = ".$this->dumpSettings['default-character-set']." */;".PHP_EOL.
1993+
"/*!50003 SET @saved_cs_results = @@character_set_results */ ;".PHP_EOL.
1994+
"/*!50003 SET @saved_col_connection = @@collation_connection */ ;".PHP_EOL.
1995+
"/*!40101 SET character_set_client = ".$characterSetClient." */;".PHP_EOL.
1996+
"/*!40101 SET character_set_results = ".$characterSetClient." */;".PHP_EOL.
1997+
"/*!50003 SET collation_connection = ".$collationConnection." */ ;".PHP_EOL.
1998+
"/*!50003 SET @saved_sql_mode = @@sql_mode */ ;;".PHP_EOL.
1999+
"/*!50003 SET sql_mode = '".$sqlMode."' */ ;;".PHP_EOL.
2000+
"/*!50003 SET @saved_time_zone = @@time_zone */ ;;".PHP_EOL.
2001+
"/*!50003 SET time_zone = 'SYSTEM' */ ;;".PHP_EOL.
19912002
"DELIMITER ;;".PHP_EOL.
19922003
$functionStmt." ;;".PHP_EOL.
19932004
"DELIMITER ;".PHP_EOL.
1994-
"/*!40101 SET character_set_client = @saved_cs_client */;".PHP_EOL.PHP_EOL;
2005+
"/*!50003 SET sql_mode = @saved_sql_mode */ ;".PHP_EOL.
2006+
"/*!50003 SET character_set_client = @saved_cs_client */ ;".PHP_EOL.
2007+
"/*!50003 SET character_set_results = @saved_cs_results */ ;".PHP_EOL.
2008+
"/*!50003 SET collation_connection = @saved_col_connection */ ;".PHP_EOL.
2009+
"/*!50106 SET TIME_ZONE= @saved_time_zone */ ;".PHP_EOL.PHP_EOL;
2010+
19952011

19962012
return $ret;
19972013
}

0 commit comments

Comments
 (0)