← Back to team overview

maria-developers team mailing list archive

RFC - CREATE PROCEDURE clauses (question about docs from mariadb-discuss)

 

Hi mariadb-devel guys, could anyone help here in a documentation problem?
 (maybe not a problem...)
*Please answer the BOLD questions*
We are talking about CREATE PROCEDURE , about DETERMINISTIC / NO SQL
http://dev.mysql.com/doc/refman/5.6/en/create-procedure.html

*characteristic*:
    COMMENT '*string*'
  | LANGUAGE SQL
  | *[NOT] DETERMINISTIC*
  | { CONTAINS SQL | *NO SQL* | READS SQL DATA | MODIFIES SQL DATA }
  | SQL SECURITY { DEFINER | INVOKER }




*--------*
*from mariadb-discuss:*
*--------*
Hi Federico, sorry i read some points and start writing,
i will read and write after...
i will answer with my experience as an user, not as a mariadb/mysql
developer...


2013/9/2 Federico Razzoli <federico_raz@xxxxxxxx>

> Hi Roberto
> I'll try to be more clear, please read carefully before answering
>
ok

I know what a deterministic expression is - but *what kinds of output must
> be deterministic for a procedure to be defined as DETERMINISTIC?*
>
hummm i don't know, but for procedure, there isn't a deterministic output
right? just for funcitons... maybe it's a parser problem, allow
deterministic keyword for procedures  (must check)

i'm thinking about, *why we use deterministic procs, and non deterministic
procs?* *this change something important in mysql server? replication,
query cache? other performace considerations?*


> There are many types of output for a proc:
> * OUT params
> * SELECTs
> * writes on tables
> * SET @var
>
hum.... from what i remember
procedure ~= function without return, something like a "void FUNCTION( any
parameters )"
function ~= a procedure that return values, in other words it must be
different from void...
that's why i think it's a problem at parser allowing deterministic keyword
at procedure, but must check... i don't know if this keyword change
something in mysql/mariadb code


> For a deterministic proc, do all of these need to be deterministic?
>
well, for me, procs are always non deterministics since it don't change
query cache invalidation and replication (must be done in binary i think)


> * I guess the answer isn't easy.
> *

*yeah, i see, we need a simple answer not a simplified answer*


> --
> For "NO SQL" a complete list of SQL statements would be needed. If we use
> this as a reference:
> http://dev.mysql.com/doc/refman/5.6/en/sql-syntax.html
> , even RETURN seems to be a SQL statement,

yes, maybe the point isn't the SQL statements list, but other functions
that mysql/mariadb server do? i don't know... NO SQL maybe is different
from NOSQL (memcache,mongo,etc...) since nosql is newer than mysql
procedures
the point is *what's NO SQL in CREATE PROCEDURE ?*

but of course it can't be true, because it's impossible to write a func
> without RETURN.
>
yeah, maybe we have a problem at docs... let's see if anyone else know
about this...
maybe we need help from mariadb-devel list, i will include in this email...


>
> Greetings
> Federico
>
bye =)
thanks guys

-- 
Roberto Spadim