Трябва да замените своя ;
разделител с нещо като $$
за да избегнете този вид грешка.
След дефинирането на вашата функция можете да зададете разделителя обратно на ;
.
Това трябва да работи:
DELIMITER $$
CREATE FUNCTION F_Dist3D (x1 decimal, y1 decimal)
RETURNS decimal
DETERMINISTIC
BEGIN
DECLARE dist decimal;
SET dist = SQRT(x1 - y1);
RETURN dist;
END$$
DELIMITER ;