mariadb/include
unknown eaf34dd8e3 Port of cursors to be pushed into 5.0 tree:
- client side part is simple and may be considered stable
- server side part now just joggles with THD state to save execution
  state and has no additional locking wisdom.
  Lot's of it are to be rewritten.


include/mysql.h:
  Cursor patch to push into the main tree, client library part (considered 
  stable):
  - new statement attribute STMT_ATTR_CURSOR_TYPE
  - MYSQL_STMT::flags to store statement cursor type
  - MYSQL_STMT::server_status to store server status (i. e. if the server
  was able to open a cursor for this query).
include/mysql_com.h:
  Cursor patch to push into the main tree, client library part (considered 
  stable):
  - new COMmand, COM_FETCH, to fetch K rows from read-only cursor.
    By design should support scrollable cursors as well.
  - a few new server statuses:
    SERVER_STATUS_CURSOR_EXISTS is sent by server in reply to COM_EXECUTE,
    when cursor was successfully opened for this query
    SERVER_STATUS_LAST_ROW_SENT is sent along with the last row to prevent one
    more round trip just for finding out that all rows were fetched from 
    this cursor (this is server mem savier also).
  - and finally, all possible values of STMT_ATTR_CURSOR_TYPE, 
    while now we support only CURSORT_TYPE_NO_CURSOR and 
    CURSOR_TYPE_READ_ONLY
libmysql/libmysql.c:
  Cursor patch to push into the main tree, client library part (considered 
  stable):
  - simple additions to mysql_stmt_fetch implementation to read data 
    from an opened cursor: we can read up to iteration count rows per
    one request; read rows are buffered in the same way as rows of
    mysql_stmt_store_result.
  - now send stmt->flags to server to let him now if we wish to have 
    a cursor for this statement.
  - support for setting/getting statement cursor type.
libmysqld/examples/Makefile.am:
  Testing cursors was originally implemented in C++. Now when these tests
  go into client_test, it's time to convert it to C++ as well.
libmysqld/lib_sql.cc:
  - cleanup: send_fields flags are now named.
sql/ha_innodb.cc:
  - cleanup: send_fields flags are now named.
sql/mysql_priv.h:
  - cursors support: declaration for server-side handler of COM_FETCH
sql/protocol.cc:
  - cleanup: send_fields flags are now named.
  - we can't anymore assert that field_types[field_pos] is sensible:
    if we have COM_EXCUTE(stmt1), COM_EXECUTE(stmt2), COM_FETCH(stmt1)
    field_types[field_pos] will point to fields of stmt2.
sql/protocol.h:
  - cleanup: send_fields flag_s_ are now named.
sql/protocol_cursor.cc:
  - cleanup: send_fields flags are now named.
sql/repl_failsafe.cc:
  - cleanup: send_fields flags are now named.
sql/slave.cc:
  - cleanup: send_fields flags are now named.
sql/sp.cc:
  - cleanup: send_fields flags are now named.
sql/sp_head.cc:
  - cleanup: send_fields flags are now named.
sql/sql_acl.cc:
  - cleanup: send_fields flags are now named.
sql/sql_class.cc:
  - cleanup: send_fields flags are now named.
sql/sql_class.h:
  - cleanup: send_fields flags are now named.
sql/sql_error.cc:
  - cleanup: send_fields flags are now named.
sql/sql_handler.cc:
  - cleanup: send_fields flags are now named.
sql/sql_help.cc:
  - cleanup: send_fields flags are now named.
sql/sql_parse.cc:
  Server side support for cursors:
  - handle COM_FETCH
  - enforce assumption that whenever we free thd->free_list, 
    we reset it to zero. This way it's much easier to handle free_list
    in prepared statements implementation.
sql/sql_prepare.cc:
  Server side support for cursors:
  - implementation of mysql_stmt_fetch (fetch some rows from open cursor).
  - management of cursors memory is quite tricky now.
  - execute_stmt can't be reused anymore in mysql_stmt_execute and 
    mysql_sql_stmt_execute
sql/sql_repl.cc:
  - cleanup: send_fields flags are now named.
sql/sql_select.cc:
  Server side support for cursors:
  - implementation of Cursor::open, Cursor::fetch (buggy when it comes to
    non-equi joins), cursor cleanups.
  - -4 -3 -0 constants indicating return value of sub_select and end_send are
    to be renamed to something more readable:
    it turned out to be not so simple, so it should come with the other patch.
sql/sql_select.h:
  Server side support for cursors:
  - declaration of Cursor class.
  - JOIN::fetch_limit contains runtime value of rows fetched via cursor.
sql/sql_show.cc:
  - cleanup: send_fields flags are now named.
sql/sql_table.cc:
  - cleanup: send_fields flags are now named.
sql/sql_union.cc:
  - if there was a cursor, don't cleanup unit: we'll need it to fetch
    the rest of the rows.
tests/Makefile.am:
  Now client_test is in C++.
tests/client_test.cc:
  A few elementary tests for cursors.
BitKeeper/etc/ignore:
  Added libmysqld/examples/client_test.cc to the ignore list
2004-08-03 03:32:21 -07:00
..
.cvsignore Import changeset 2000-07-31 21:29:14 +02:00
config-netware.h Always enable HAVE_COMPRESS on netware 2004-05-28 01:02:20 +03:00
config-os2.h Implemented UTC_TIME, UTC_DATE and UTC_TIMESTAMP functions (WL#345) 2003-08-11 23:43:01 +04:00
config-win.h HAVE_RTREE_KEYS are enabled on windows too 2004-07-06 14:24:44 +02:00
errmsg.h client.c, libmysql.c: 2004-06-30 22:18:41 -05:00
ft_global.h ft_boolean_syntax made changeable 2004-02-16 18:53:00 +01:00
hash.h Merge key cache structures to one 2003-11-20 22:06:25 +02:00
heap.h key_cmp -> key_cmp_if_same 2004-05-16 14:48:32 +03:00
help_end.h Added patches from Novell 2004-05-25 22:00:14 +03:00
help_start.h Added patches from Novell 2004-05-25 22:00:14 +03:00
keycache.h WL#1700 - Properly count key_blocks_used and key_blocks_current. 2004-05-03 15:55:21 +02:00
m_ctype.h Unicode collation algorithm: contraction support. 2004-06-12 20:36:58 +05:00
m_string.h assert.h needed for my_dbug.h now is included in my_dbug.h, where it for 2004-06-10 23:58:39 +04:00
Makefile.am Small build fix. 2004-06-25 10:30:24 +04:00
md5.h Update copyright 2001-12-06 14:10:51 +02:00
merge.h Update copyright 2001-12-06 14:10:51 +02:00
my_aes.h Made keyread (key scanning) a key specific attribute. 2002-06-19 00:22:30 +03:00
my_alarm.h Update copyright 2001-12-06 14:10:51 +02:00
my_alloc.h Small improvement to alloc_root 2002-11-16 20:19:10 +02:00
my_base.h Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
my_bitmap.h Manual merge 2004-06-14 11:18:56 +04:00
my_dbug.h Added missing my_time.c file to mysqlclient project 2004-06-28 00:42:02 +03:00
my_dir.h Fix for Bug #1952 2003-12-12 03:39:29 +03:00
my_getopt.h Merge with 4.0 to get bug fixes 2004-07-09 02:29:28 +03:00
my_global.h manual merge 2004-07-20 15:34:57 +02:00
my_handler.h BTREE-indexes in HEAP tables can now be used to optimize ORDER BY 2004-03-25 15:05:01 +02:00
my_list.h Portability fixes (for windows) 2003-01-21 21:07:59 +02:00
my_net.h 4 small items in this: 2003-10-31 23:20:23 +01:00
my_no_pthread.h CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS 2003-11-18 13:47:27 +02:00
my_nosys.h Update copyright 2001-12-06 14:10:51 +02:00
my_pthread.h Merge with 4.0.18 2004-02-11 00:06:46 +01:00
my_semaphore.h more #ifdef THREAD added 2003-04-30 12:32:43 +02:00
my_sys.h Manual merge 2004-06-14 11:18:56 +04:00
my_time.h Fix for Bug#4030 "Client side conversion string -> date type doesn't 2004-06-24 19:08:36 +04:00
my_tree.h after merge fixes 2004-03-18 00:09:13 +02:00
my_xml.h Portability fixes 2003-02-28 14:32:40 +02:00
myisam.h handler interface cleanups: 2004-06-23 12:29:05 +02:00
myisammrg.h key_cmp -> key_cmp_if_same 2004-05-16 14:48:32 +03:00
myisampack.h wl 1562 (To improve RTree indexes) 2004-06-02 19:11:57 +05:00
mysql.h Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
mysql_com.h Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
mysql_embed.h Merge with 4.0, mainly to get changes to windows project files 2004-05-20 00:54:52 +03:00
mysql_time.h Fix for Bug#4030 "Client side conversion string -> date type doesn't 2004-06-24 19:08:36 +04:00
mysql_version.h.in Merge with 4.0 to get fixes for Windows project files 2004-05-25 02:47:25 +03:00
mysqld_error.h Fixed BUG#434: Stored procedure which drops itself causes crash. 2004-07-29 17:33:45 +02:00
mysys_err.h - Added missing documentation to some mysql.cc options. 2004-01-14 04:58:37 +02:00
nisam.h Update copyright 2001-12-06 14:10:51 +02:00
queues.h fix_max_connections to resize alarm_queue (Bug #1435) 2003-10-06 14:11:16 +02:00
raid.h Lots of code fixes to the replication code (especially the binary logging and index log file handling) 2002-08-08 03:12:02 +03:00
rijndael.h Made keyread (key scanning) a key specific attribute. 2002-06-19 00:22:30 +03:00
sha1.h Made keyread (key scanning) a key specific attribute. 2002-06-19 00:22:30 +03:00
sql_common.h Intermediate commit of client library (cleanups + fixes of 3 items from 2004-03-16 01:04:04 +03:00
sql_state.h Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
sslopt-case.h fixed so that --ssl and --skip-ssl works with the MySQL clients. 2002-09-17 23:46:53 +03:00
sslopt-longopts.h consistency fix - all help texts for command-line options should end with a dot. 2003-06-13 10:59:02 +02:00
sslopt-vars.h Update copyright 2001-12-06 14:10:51 +02:00
t_ctype.h Update copyright 2001-12-06 14:10:51 +02:00
thr_alarm.h Added patches from Novell 2004-05-25 22:00:14 +03:00
thr_lock.h Merge with 4.0 2003-03-16 19:17:54 +02:00
typelib.h Windows build fix 2003-01-18 14:04:34 -08:00
violite.h Merge with 4.0.21 2004-06-18 04:38:58 +03:00