just an idea, but i'm not sure about it...

maybe it's something about what function/procedure do (maybe in future with another language/script? python?)
a function that don't use SQL, probably will not use sql parser... i'm not sure about this, but it's a point to consider, since if you parse the function/procedure using SQL parser, you will lost time/ram with it, and if function don't have SQL (python?) you shouldn't lost this resources...
i'm not sure, but maybe it's something about it


reading source code.... i think it's dead code... at least i don't found something interesting using it:

in sql_yacc.yy:
        | NO_SYM SQL_SYM
          { Lex->sp_chistics.daccess= SP_NO_SQL; }

from command line:
C:\tmp\mysql-gdb\mariadb-10.0.3\sql>grep "SP_NO_SQL" *
grep: CMakeFiles: Invalid request code
grep: examples: Invalid request code
grep: share: Invalid request code
sp.cc:    chistics.daccess= SP_NO_SQL;
sp.cc:  case SP_NO_SQL:
sql_lex.h:  SP_NO_SQL,
sql_yacc.yy:          { Lex->sp_chistics.daccess= SP_NO_SQL; }






2013/9/2 Roberto Spadim <roberto@spadim.com.br>
Hi Federico!


2013/9/2 Federico Razzoli <federico_raz@yahoo.it>:
> Ciao,
>
> I wanted to add some info in the CREATE PROCEDURE page in the KB, but I think that some info about CREATE PROCEDURE clauses miss both in the kb and in the MySQL manual.
>
> * [NOT] DETERMINISTIC. From MySQL docs:
> "A routine is considered “deterministic” if it always produces the same result for the same input parameters, and “not deterministic” otherwise."
> What does this exactly mean for procedures? OUT and INOUT parameters? Resultsets returned by the procedure? Both?

i think it's something like: RANDON() = not deterministic, ROUND(1.5)
= deterministic
maybe it's important for replication (must be done via binary, instead
SQL), and it's important for query cache (not deterministic can't be
cached)


> * NO SQL: As far as I understand, even SET is a SQL statement. I guess that a "no sql" function is something like
> CREATE FUNCTION x(n INT) RETURNS INT
> BEGIN
> RETURN n*2;
> END;
>
> But what is a "no sql" procedure (if such a procedure even exists)?

i don't know, but reading mysql protocol, there's some functions for
show fields, process info, process kill,
http://dev.mysql.com/doc/internals/en/text-protocol.html

> I'm sorry if this info is already written somewhere, but I really wasn't able to find it - and I feel that the KB should specify things like these.
>
> Greetings
> Federico
>
> _______________________________________________
> Mailing list: https://launchpad.net/~maria-discuss
> Post to     : maria-discuss@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~maria-discuss
> More help   : https://help.launchpad.net/ListHelp



--
Roberto Spadim
SPAEmpresarial



--
Roberto Spadim
SPAEmpresarial