 DROP FUNCTION IF EXISTS _has_column  //
 CREATE FUNCTION _has_column(sname VARCHAR(64), tname VARCHAR(64), cname VARCHAR(64))
 RETURNS BOOLEAN
+DETERMINISTIC
+READS SQL DATA
 BEGIN
   DECLARE ret BOOLEAN;
 

DROP FUNCTION IF EXISTS col_charset_is //
CREATE FUNCTION col_charset_is(sname VARCHAR(64), tname VARCHAR(64), cname VARCHAR(64), cset VARCHAR(32), description TEXT)
RETURNS TEXT
BEGIN
  IF description = '' THEN
    SET description = CONCAT('Column ', quote_ident(tname), '.', quote_ident(cname),

DROP FUNCTION IF EXISTS _col_has_index_key //
CREATE FUNCTION _col_has_index_key(sname VARCHAR(64), tname VARCHAR(64), cname VARCHAR(64))
RETURNS BOOLEAN
DETERMINISTIC
READS SQL DATA
BEGIN
  DECLARE ret BOOLEAN;

