From: Peter Brawley Date: March 11 2007 10:03pm Subject: Re: Table doesn't exist from stored function List-Archive: http://lists.mysql.com/mysql/205517 Message-Id: <45F47CA2.1080305@earthlink.net> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Imre, You may have found a stored function bug--the server tries to evaluate the SELECT statement within the IF block when IF condition is false. PB ----- Shawn Green wrote: > Hello Imre, > > Imre Palik wrote: >> Hi, >> >> When I try to run this function, I receive ERROR 1146 (42S02): Table >> 'gi2.meta' doesn't exist >> >> CREATE FUNCTION get_version() >> RETURNS INT UNSIGNED >> BEGIN >> DECLARE exist_ TINYINT; >> SELECT COUNT(*) INTO exist_ FROM INFORMATION_SCHEMA.TABLES >> WHERE TABLE_SCHEMA = 'GI2' AND TABLE_NAME = 'Meta' LIMIT 1; >> IF (0 < exist_) THEN BEGIN >> DECLARE ver_ INT UNSIGNED; >> SELECT SUBSTRING(Version, 14, LENGTH(Version) - 15) INTO ver_ >> FROM GI2.Meta LIMIT 1; >> IF (ver_ <= 65) THEN RETURN 5; >> ELSE RETURN 0; >> END IF; >> END; >> END IF; >> RETURN 1; >> END; >> >> I can't see why I am receiving this error, as I am checking if the >> table exists before the select. If this is a limitation in MySQL, >> any ideas how to circumvent it? >> >> Thanks >> >> ImRe >> >> > > Is the table `Meta` or `meta` ? Case sensitivity is very important to > most Operating Systems. Try it with all lower case and see what happens. >