Looks like you're confusing Prepared Statements with Functions/Stored Procedures. You don't compile a function, and you're using 4.1, you need Mysql 5. (specifically 5.0.3 I think, you'd have to look that up, but you would want 5.0.7 anyway. Maybe I have that confused with triggers, cant remember.)
Prepared Statements are C code using the C API. You have SQL Language code, that looks correct, but you're implementing it incorrectly. (with the wrong version) Functions are not compiled, like you are doing with gcc. Prepared Statements: http://dev.mysql.com/doc/mysql/en/c-api-prepared-statements.html Functions: http://dev.mysql.com/doc/mysql/en/stored-procedures.html Hope that helps. Greg On 7/6/05, Gleb Paharenko <[EMAIL PROTECTED]> wrote: > 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] > > -- Greg Fischer 1st Byte Solutions http://www.1stbyte.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]