← Back to team overview

maria-discuss team mailing list archive

Re: CREATE PROCEDURE clauses

 

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


   -

   NO SQL indicates that the routine contains no SQL statements.

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@xxxxxxxxxxxxx>

> Hi Federico!
>
>
> 2013/9/2 Federico Razzoli <federico_raz@xxxxxxxx>:
> > 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@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~maria-discuss
> > More help   : https://help.launchpad.net/ListHelp
>
>
>
> --
> Roberto Spadim
> SPAEmpresarial
>



-- 
Roberto Spadim
SPAEmpresarial

References