An error occurred fetching the project authors.
  1. 02 Mar, 2003 1 commit
    • unknown's avatar
      Made FUNCTIONs work in insert and select queries, as well as nested function invocations. · 8a9422bd
      unknown authored
      Had to add a cahing mechanism which is in parts an ugly kludge, but it will be
      reworked once the real SP caching is implemented.
      
      
      mysql-test/r/sp.result:
        New function tests.
      mysql-test/t/sp.test:
        New function tests.
      sql/sp.cc:
        Big rehack of mysql.proc table usage strategy and adding a function cache
        mechanism, since we need to read used functions from the db before doing anything else
        when executing a query. (This cache is temporary and will probably be replaced by
        the real thing later.)
      sql/sp.h:
        New (temporary) FUNCTION caching functions.
      sql/sp_head.cc:
        Fixed some bugs in the function and procedure execution.
        Disabled some data collections that's not used at the moment.
      sql/sp_head.h:
        Fixed some bugs in the function and procedure execution.
        Disabled some data collections that's not used at the moment.
      sql/sql_class.h:
        Added SP function cache list to thd.
      sql/sql_lex.cc:
        Added SP function name list to lex.
      sql/sql_lex.h:
        Added SP function name list to lex.
      sql/sql_parse.cc:
        Read used FUNCTIONs from db and cache them in thd before doing anything else
        in a query execution. (This is necessary since we can't open mysql.proc during
        query execution.)
      sql/sql_yacc.yy:
        Collect used function names in lex.
      8a9422bd
  2. 26 Feb, 2003 1 commit
    • unknown's avatar
      Made stored FUNCTION invokation work almost always. Still buggy and unstable, and · 76b037dc
      unknown authored
      various known problems, but good enough for a checkpoint commit.
      
      
      mysql-test/r/sp.result:
        New tests for invoking simple FUNCTIONs.
      mysql-test/t/sp.test:
        New tests for invoking simple FUNCTIONs.
      sql/item_func.cc:
        New Item_func_sp for stored FUNCTIONs.
      sql/item_func.h:
        New Item_func_sp for stored FUNCTIONs.
      sql/sp.cc:
        Close mysql.proc table earlier so recursive find_function calls work.
        Added temporary sp_function_exists() function for checking without parsing.
      sql/sp.h:
        Added temporary sp_function_exists() function for checking without parsing.
      sql/sp_head.cc:
        New code for executing a FUNCTION. (And reworked some of the old code in the process.)
      sql/sp_head.h:
        New code for executing a FUNCTION.
      sql/sp_rcontext.h:
        Added result slot for FUNCTIONs.
      sql/sql_lex.cc:
        Added check for stored FUNCTION, analogous to UDFs.
      sql/sql_parse.cc:
        sp_head::execute was renamed into execute_procedure.
      sql/sql_yacc.yy:
        Added parsing of stored FUNCTION invocation and code generation for RETURN statement.
      76b037dc
  3. 21 Feb, 2003 1 commit
    • unknown's avatar
      Most of the groundwork for sprint task 729 (implement FUNCTIONs). · 0521fb54
      unknown authored
      Expanded the mysql.proc table, reworked the find/create/drop functions
      completely, added new functions for FUNCTIONs (lotta functions here :),
      got rid of some unnecessary use of Item_strings while at it. Extended
      the parser correspondingly, and fiddled around a bit to make SP FUNCTIONs
      coexist with UDFs.
      Can now CREATE and DROP FUNCTIONs. Invoking yet to come...
      
      
      Docs/sp-implemented.txt:
        Updated with info about CASCADE/RESTICT and METHOD, and some answers to questions.
      include/mysqld_error.h:
        New error message for misuse of RETURN.
      mysql-test/install_test_db.sh:
        Added enum field to mysql.proc to distinguish between FUNCTION and PROCEDURE.
      mysql-test/r/sp.result:
        New test for creating and dropping FUNCTIONS.
      mysql-test/t/sp.test:
        New test for creating and dropping FUNCTIONS.
      scripts/mysql_install_db.sh:
        Added enum field to mysql.proc to distinguish between FUNCTION and PROCEDURE.
      sql/lex.h:
        De-UDFed some symbol names, as they are now used for SPs as well.
        Added RETURN_SYM.
      sql/share/czech/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/danish/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/dutch/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/english/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/estonian/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/french/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/german/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/greek/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/hungarian/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/italian/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/japanese/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/korean/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/norwegian-ny/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/norwegian/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/polish/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/portuguese/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/romanian/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/russian/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/serbian/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/slovak/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/spanish/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/swedish/errmsg.txt:
        New error message for misuse of RETURN.
      sql/share/ukrainian/errmsg.txt:
        New error message for misuse of RETURN.
      sql/sp.cc:
        Major rehack to accomodate FUNCTIONs, and to make it easier to add
        future in-memory cache of prepared SPs.
      sql/sp.h:
        Major rehack to accomodate FUNCTIONs, and to make it easier to add
        future in-memory cache of prepared SPs.
      sql/sp_head.cc:
        Now creates FUNCTIONs too. (And got rid of some unnecessary Item_string use.)
      sql/sp_head.h:
        Now creates FUNCTIONs too. (And got rid of some unnecessary Item_string use.)
      sql/sql_lex.h:
        New stored FUNCTION commands.
      sql/sql_parse.cc:
        Added FUNCTION support ("drop" merged with the old UDF code), and made some
        additional changes for better error handling (following the sp.cc rehacking).
      sql/sql_yacc.yy:
        Some former UDF specific symbols renamed.
        Added CREATE FUNCTION parsing.
        DROP FUNCTION had to be partly merged with the old UDF code, because of the similar
        syntax.
        RETURN statement added, but still a no-op.
      0521fb54
  4. 19 Dec, 2002 1 commit
    • unknown's avatar
      Fixed some of the data collection during parsing. · a3fe4223
      unknown authored
      sql/sp_head.cc:
        Renamed m_mylex into m_call_lex.
        Fixed some data collection.
      sql/sp_head.h:
        Renamed m_mylex into m_call_lex.
        Put called procedures and used tables in class member vars (for now at least).
      a3fe4223
  5. 17 Dec, 2002 1 commit
    • unknown's avatar
      Added parsing of CASE (both generic and "simple"). · b12330b3
      unknown authored
      sql/sp_head.cc:
        Init. the simple_case flag.
      sql/sp_head.h:
        New flag for (simple)case parsing.
      sql/sp_pcontext.cc:
        Removed push_gen_label method (not needed any more).
      sql/sp_pcontext.h:
        Removed push_gen_label method (not needed any more).
        Fixed bug in pop().
      sql/sql_yacc.yy:
        Added CASE parsing.
      b12330b3
  6. 16 Dec, 2002 1 commit
    • unknown's avatar
      Fixed the broken backpatching implementation. · f6611aa0
      unknown authored
      Implemented IF-THEN-ELSE.
      
      
      sql/sp_head.cc:
        Reimplemented the broken backpatching, so it works for nested constructions and
        IF-THEN-ELSE too.
      sql/sp_head.h:
        Reimplemented the broken backpatching, so it works for nested constructions and
        IF-THEN-ELSE too.
      sql/sp_pcontext.cc:
        Return the value from push-methods, for convenience.
      sql/sp_pcontext.h:
        Return the value from push-methods, for convenience.
      sql/sql_yacc.yy:
        Implemented IF-THEN-ELSE.
        Corrected for the new backpatch method.
      f6611aa0
  7. 12 Dec, 2002 1 commit
    • unknown's avatar
      Moved create/find/drop functions to a separate files (sp.cc,sp.h). · b1b62274
      unknown authored
      Fixed backpatching of forward jumps.
      Implemented LOOP, WHILE, REPEAT (temporarily known as SPREPEAT).
      
      Known bug: Expression evaluation still not quite ok (e.g. "x > 0"),
      which is why IF and CASE is not yet implemented.
      
      
      sql/Makefile.am:
        Added new sp.h/sp.cc file.
      sql/item.h:
        New deferred result_type() method in Item_splocal.
      sql/lex.h:
        Temporary fix until REPEAT conflict is solved. Use SPREPEAT for now.
      sql/sp_head.cc:
        Moved create/find/drop functions to sp.cc.
        Fixed the backpatch stuff.
        (Also removed some dead code and updated comments.)
      sql/sp_head.h:
        Moved create/find/drop declarations to sp.h.
        Fixed the backpatch stuff.
      sql/sp_pcontext.h:
        New method: last_label().
      sql/sql_parse.cc:
        Include sp.h.
      sql/sql_yacc.yy:
        Fixed backpatching of forward jumps.
        Implemented LOOP, WHILE, and REPEAT. (Note: SPREPEAT for now.)
      b1b62274
  8. 11 Dec, 2002 1 commit
    • unknown's avatar
      Fixed bugs in the parameter evaluation and modified the execution engine · 37ce17e2
      unknown authored
      for better jump support. Some flow control support added too (but not
      complete).
      
      
      sql/lex.h:
        Added more keywords for embedded SQL.
      sql/sp_head.cc:
        Fixed bugs in the parameter evaluation.
        Modified execute() for better jump support.
        Added jump instruction and backpatch support.
      sql/sp_head.h:
        Fixed bugs in the parameter evaluation.
        Modified execute() for better jump support.
        Added jump instruction and backpatch support.
      sql/sp_pcontext.cc:
        Added label support.
      sql/sp_pcontext.h:
        Added label support.
      sql/sql_yacc.yy:
        Outlined flow control constructs (parses, but nothing generated yet).
      37ce17e2
  9. 08 Dec, 2002 1 commit
    • unknown's avatar
      Simplistic, experimental framework for Stored Procedures (SPs). · 27de9ece
      unknown authored
      Implements creation and dropping of PROCEDUREs, IN, OUT, and INOUT parameters,
      single-statement procedures, rudimentary multi-statement (begin-end) prodedures
      (when the client can handle it), and local variables.
      Missing most of the embedded SQL language, all attributes, FUNCTIONs, error handling,
      reparses procedures at each call (no caching), etc, etc.
      Certainly buggy too, but procedures can actually be created and called....
      
      
      sql/Makefile.am:
        Added SP files.
      sql/item.cc:
        Added this*_item() methods for Item_splocal. (SP local variable)
      sql/item.h:
        Added this*_item() methods for SPs in Item, and the new Item_splocal
        class (SP local variable).
      sql/lex.h:
        Added new symbols for SPs. (Note: SPSET is temporary and will go away later.)
      sql/sql_class.cc:
        Initialize SP runtime context in THD.
      sql/sql_class.h:
        Add SP runtime context to THD.
      sql/sql_lex.cc:
        Init. buf pointer to beginning of command (needed by SPs).
        Also initialize SP head and parse time context.
      sql/sql_lex.h:
        New SQLCOM_ tags for SPs, and added pointer to beginning of command pointer and
        SP head and parse-time context to LEX.
      sql/sql_parse.cc:
        Added SQLCOM_CREATE_PROCEDURE, _CALL, _ALTER_PROCEDURE and _DROP_PROCEDURE cases.
        (Still rudimentary and lacking proper error handling...)
      sql/sql_yacc.yy:
        Lots and lots of additions for SPs...
        (Still even more missing, and no error messages...)
      27de9ece