In my testing MySQL Server, I have binlog enabled (log_bin=ON) . The binary log (Transaction log) is used for backup/recovery of the database and replication. When binlog is enabled and log_bin_trust_function_creators system variable is OFF (default=OFF), MySQL requires Create Function DDL to specify whether DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration. Otherwise the server gives exception.
For more details:http://dev.mysql.com/doc/refman/5.5/en/stored-programs-logging.html


Peter

Date: Thu, 19 Dec 2013 15:26:09 -0800
From: notifications@github.com
To: dbfit@noreply.github.com
CC: phe1129@hotmail.com
Subject: Re: [dbfit] #180 Fixed Create Function SQL Script ConcatenateF for MySQL 5.5 (#182)

In dbfit-java/mysql/src/test/resources/001_add_objects_needed_for_acceptance_test.sql:

>  
>  CREATE PROCEDURE ConcatenateStrings (IN firststring varchar(100), IN secondstring varchar(100), OUT concatenated varchar(200)) set concatenated = concat(firststring , concat( ' ' , secondstring ));
>  
>  create procedure CalcLength(IN name varchar(100), OUT strlength int) set strlength =length(name);
>  
> -CREATE FUNCTION ConcatenateF (firststring  VARCHAR(100), secondstring varchar(100)) RETURNS VARCHAR(200) RETURN CONCAT(firststring,' ',secondstring);
> +CREATE FUNCTION ConcatenateF (firststring  VARCHAR(100), secondstring varchar(100)) RETURNS VARCHAR(200) DETERMINISTIC RETURN CONCAT(firststring,' ',secondstring);

@phe1129 could you perhaps explain why your setup needs this change?


Looking at the create procedure MySQL 5.5 docs, I didn't see anything that implied that defining DETERMINISTIC or NON DETERMINISTIC was necessary...


—
Reply to this email directly or view it on GitHub.