Hello.


>When attempting to load a new function with the mysql cli client the

>client

>complains that the server has gone away and reconnects with connection



Check MySQL error log, server could die while loading the UDF.



Stored procedures appeared only in 5 version. This works fine for me on 5.0.7.



mysql> create function hello (s char(20)) returns char(50) RETURN

CONCAT('Hello, ',s,'!');//

Query OK, 0 rows affected (0.00 sec)





Nic Stevens <[EMAIL PROTECTED]> wrote:

>Hello,

>

>I'm trying to build a UDF for MySQL 4.1.12. I'm running on Linux

>(FedoraFC1). My UDF function seemed to blow up the server so I went to

>the

>source and tried to build udf_example.cc.

>

>Using the precompiled binaries for Linux and using the source

>distribution

>for the same version (4.1.12) I was unable to build udf_example.cc as a

>shared object (I followed the instructions in the source -- they didnt

>work

>so I used what seemed to make the most sense for building my object).

>When

>building the shared object the compiler spits out a warning from

>asm/atomic.h (#warning Using kernel header in userland program. BAD!)

>

>I'm using gcc version 3.3.2 20031022 (Red Hat Linux 3.3.2-1) on a

>Fedore

>Core 1 machine. I built the shared object with gcc -I/usr/include/mysql

>-shared -o udf_example.so udf_example.cc

>

>When attempting to load a new function with the mysql cli client the

>client

>complains that the server has gone away and reconnects with connection

>id of

>1. Nothing is listed in mysql.funcs either.

>

>There needs to be better documentation of the process for building

>UDF's.

>

>The code I need to run can be run nicely by MySQL but I can't declare a

>stored function as documented. The stored function is fairly simple:

>

>DELIMITER //

>

>CREATE FUNCTION distance(z1 VARCHAR(10), z2 VARCHAR(10)) RETURNS REAL

>BEGIN

>DECLARE x REAL;

>DECLARE y REAL;

>DECALRE miles REAL;

>SET x = 69.1*(lat - lat2);

>SET y = 69.1*(lon1 - lon2) * COS(lon1*57.3);

>SET miles = SQRT(x*x+y*y);

>RETURN miles;

>END

>//

>

>The mysql client spits back :

>ERROR 1064 (42000): You have an error in your SQL syntax; check the

>manual

>that corresponds to your MySQL server version for the right syntax to

>use

>near '(z1 VARCHAR(10), z2 VARCHAR(10)) RETURNS REAL

>

>Using the example given in the documentation I get:

>

>mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50)

>-> RETURN CONCAT('Hello, ',s,'!');

>ERROR 1064 (42000): You have an error in your SQL syntax; check the

>manual

>that corresponds to your MySQL server version for the right syntax to

>use

>near '(s CHAR(20)) RETURNS CHAR(50)

>RETURN CONCAT('Hello, ',s,'!')' at line 1

>

>

>DELIMITER ;

>//

>

>Can someone elucidate the mystery of either stored functions or UDF's?





-- 
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.NET http://www.ensita.net/
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /    Gleb Paharenko
 / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.NET
       <___/   www.mysql.com




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to