mariadb/sql
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
..
examples Updates for archive storage engine. 2004-07-20 13:25:55 -07:00
share Fixed BUG#434: Stored procedure which drops itself causes crash. 2004-07-29 17:33:45 +02:00
.cvsignore
add_errmsg
client_settings.h
custom_conf.h
derror.cc Fixed many compiler warnings 2004-04-05 13:56:05 +03:00
des_key_file.cc
discover.cc After merge fixes 2004-05-24 14:42:34 +03:00
field.cc Bug #4555 ALTER TABLE crashes mysqld with enum column collated utf8_unicode_ci 2004-07-23 19:10:06 +05:00
field.h New handler::index_flags() definition to make it easy to check the full used key and a specific key part. 2004-07-08 15:45:25 +03:00
field_conv.cc WL#1264 "Per-thread time zone support infrastructure". 2004-06-18 10:11:31 +04:00
filesort.cc Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
frm_crypt.cc
gen_lex_hash.cc Formatting changes requested by Monty 2004-04-15 09:17:55 +02:00
gstream.cc Fix for valgrind's warning 2004-03-15 16:32:53 +04:00
gstream.h Fix for valgrind's warning 2004-03-15 16:32:53 +04:00
ha_berkeley.cc Merge with 4.1 2004-07-12 08:20:24 +03:00
ha_berkeley.h Merge with 4.1 2004-07-12 08:20:24 +03:00
ha_heap.cc handler interface cleanups: 2004-06-23 12:29:05 +02:00
ha_heap.h Merge with 4.1 2004-07-12 08:20:24 +03:00
ha_innodb.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
ha_innodb.h Merge with 4.1 2004-07-12 08:20:24 +03:00
ha_isam.cc key_cmp -> key_cmp_if_same 2004-05-16 14:48:32 +03:00
ha_isam.h New handler::index_flags() definition to make it easy to check the full used key and a specific key part. 2004-07-08 15:45:25 +03:00
ha_isammrg.cc ::reset(), HA_FAST_KEY_READ, disable_indexes(), enable_indexes(), start_bulk_insert(), end_bulk_insert() 2004-04-06 21:35:26 +02:00
ha_isammrg.h New handler::index_flags() definition to make it easy to check the full used key and a specific key part. 2004-07-08 15:45:25 +03:00
ha_myisam.cc manual merge 2004-07-20 15:34:57 +02:00
ha_myisam.h failing fulltext_order_by.test fixed 2004-07-15 17:30:55 +02:00
ha_myisammrg.cc VIEW 2004-07-16 01:15:55 +03:00
ha_myisammrg.h New handler::index_flags() definition to make it easy to check the full used key and a specific key part. 2004-07-08 15:45:25 +03:00
ha_ndbcluster.cc New handler::index_flags() definition to make it easy to check the full used key and a specific key part. 2004-07-08 15:45:25 +03:00
ha_ndbcluster.h New handler::index_flags() definition to make it easy to check the full used key and a specific key part. 2004-07-08 15:45:25 +03:00
handler.cc manual merge 2004-07-20 15:34:57 +02:00
handler.h failing fulltext_order_by.test fixed 2004-07-15 17:30:55 +02:00
hash_filo.cc
hash_filo.h
hostname.cc fix for --open-files-limit and broken query_cache_merge.test 2004-02-20 23:42:06 +01:00
init.cc Portability fixes 2004-04-07 04:33:58 +03:00
item.cc fixed quoting of identifiers in VIEWs (BUG#4613) 2004-07-20 18:51:02 +03:00
item.h fixed using VIEW fields (BUG#4617) 2004-07-23 09:20:58 +03:00
item_buff.cc
item_cmpfunc.cc After merge fixes 2004-07-15 04:19:07 +03:00
item_cmpfunc.h Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
item_create.cc Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
item_create.h Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
item_func.cc Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
item_func.h Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
item_geofunc.cc Final patch for WL#1600(warn if max_allowed_packet used) 2004-07-21 21:27:45 +05:00
item_geofunc.h Optimized GIS functions 2004-03-04 08:50:37 +02:00
item_row.cc DBUG_ASSERT(fixed == 0) added to fix_fields() 2004-03-17 14:26:26 +02:00
item_row.h
item_strfunc.cc Final patch for WL#1600(warn if max_allowed_packet used) 2004-07-21 21:27:45 +05:00
item_strfunc.h in 4.1 DATABASE() may be NULL 2004-07-16 13:21:58 +02:00
item_subselect.cc manual merge 2004-07-20 15:34:57 +02:00
item_subselect.h manual merge 2004-07-20 15:34:57 +02:00
item_sum.cc misc fixes for compile-time errors 2004-07-21 00:45:08 +02:00
item_sum.h Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
item_timefunc.cc misc fixes for compile-time errors 2004-07-21 00:45:08 +02:00
item_timefunc.h Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
item_uniq.cc
item_uniq.h DBUG_ASSERT(fixed == 1); added to val* 2004-03-18 15:14:36 +02:00
key.cc key_cmp -> key_cmp_if_same 2004-05-16 14:48:32 +03:00
lex.h VIEW 2004-07-16 01:15:55 +03:00
lex_symbol.h Portability fixes 2004-03-05 19:49:50 +02:00
lock.cc VIEW 2004-07-16 01:15:55 +03:00
log.cc after merge fixes (making rpl_charset and rpl_timezone pass). 2004-07-15 23:34:41 +02:00
log_event.cc Replication: various small fixes specific to the new binlog format of 5.0 2004-07-26 19:42:59 +02:00
log_event.h Replication: various small fixes specific to the new binlog format of 5.0 2004-07-26 19:42:59 +02:00
Makefile.am VIEW 2004-07-16 01:15:55 +03:00
matherr.c
mf_iocache.cc merge with 4.0 2004-03-16 22:41:30 +02:00
my_lock.c
mysql_priv.h Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
mysqld.cc VIEW 2004-07-16 01:15:55 +03:00
mysqld_suffix.h New MYSQL_SERVER_SUFFIX usage (for easier compilation) 2004-05-25 02:28:44 +03:00
net_serv.cc Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
nt_servc.cc Merge with 4.0 2004-03-25 23:29:45 +02:00
nt_servc.h
opt_range.cc compatibility fixes 2004-07-27 00:00:01 +02:00
opt_range.h after merge fixes 2004-07-22 00:26:33 +02:00
opt_sum.cc VIEW 2004-07-16 01:15:55 +03:00
parse_file.cc changes to sutisfy VC++ 2004-07-16 22:48:56 +03:00
parse_file.h fix function prototype 2004-07-16 19:42:38 +03:00
password.c check_scramble_323 shuold ensure that the scramble has the correct length 2004-06-01 23:58:33 +02:00
procedure.cc
procedure.h
protocol.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
protocol.h Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
protocol_cursor.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
records.cc Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
repl_failsafe.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
repl_failsafe.h
set_var.cc Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0 2004-07-16 01:27:13 +03:00
set_var.h after merge fixes (making rpl_charset and rpl_timezone pass). 2004-07-15 23:34:41 +02:00
slave.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
slave.h Post-merge fixes. 2004-05-14 16:00:57 +02:00
sp.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sp.h Fixed BUG#3339: Stored procedures in nonexistent schemas are uncallable. 2004-06-15 15:42:28 +02:00
sp_cache.cc WL#1366: Use the schema (db) associated with an SP. 2004-03-22 14:44:41 +01:00
sp_cache.h WL#1366: Use the schema (db) associated with an SP. 2004-03-22 14:44:41 +01:00
sp_head.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sp_head.h Fixed BUG#2564: SHOW CREATE inconsistent W.R.T ANSI_QUOTES. 2004-06-09 14:19:43 +02:00
sp_pcontext.cc Fixed BUG#2776: Stored procedure crash if variable assigned to default. 2004-04-06 15:48:58 +02:00
sp_pcontext.h Fixed BUG#2776: Stored procedure crash if variable assigned to default. 2004-04-06 15:48:58 +02:00
sp_rcontext.cc Fixed BUG#2653: Undeclared variables not detected in stored procedures. 2004-07-21 14:53:09 +02:00
sp_rcontext.h Fixed BUG#2653: Undeclared variables not detected in stored procedures. 2004-07-21 14:53:09 +02:00
spatial.cc Merging 2004-06-02 19:17:35 +05:00
spatial.h Merging 2004-05-27 16:32:49 +05:00
sql_acl.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_acl.h VIEW 2004-07-16 01:15:55 +03:00
sql_analyse.cc Portability fixes 2004-05-12 02:38:57 +03:00
sql_analyse.h
sql_base.cc merge 2004-07-23 09:25:08 +03:00
sql_bitmap.h Made my_snprintf() behavior snprintf() compatible when printing %x arguments (it should 2004-05-27 17:54:40 +04:00
sql_cache.cc VIEW 2004-07-16 01:15:55 +03:00
sql_cache.h merge with 4.0 2004-03-16 22:41:30 +02:00
sql_class.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_class.h Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_client.cc
sql_crypt.cc
sql_crypt.h
sql_db.cc Post-merge fix. 2004-07-23 18:54:01 +02:00
sql_delete.cc VIEW 2004-07-16 01:15:55 +03:00
sql_derived.cc VIEW 2004-07-16 01:15:55 +03:00
sql_do.cc
sql_error.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_handler.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_help.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_insert.cc fixed using VIEW fields (BUG#4617) 2004-07-23 09:20:58 +03:00
sql_lex.cc fixed using VIEW fields (BUG#4617) 2004-07-23 09:20:58 +03:00
sql_lex.h fixed using VIEW fields (BUG#4617) 2004-07-23 09:20:58 +03:00
sql_list.cc
sql_list.h Merge 4.1 -> 5.0. 2004-04-07 19:07:44 +02:00
sql_load.cc manual merge 2004-07-20 15:34:57 +02:00
sql_manager.cc
sql_manager.h
sql_map.cc
sql_map.h
sql_olap.cc VIEW 2004-07-16 01:15:55 +03:00
sql_parse.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_prepare.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_rename.cc VIEW 2004-07-16 01:15:55 +03:00
sql_repl.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_repl.h Merge 4.1 -> 5.0. 2004-04-07 19:07:44 +02:00
sql_select.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_select.h Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_show.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_sort.h
sql_state.c
sql_string.cc Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
sql_string.h Merging 4.1 to 5.0. 2004-05-26 17:04:45 +02:00
sql_table.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_test.cc Manual merge 2004-05-29 20:55:46 +04:00
sql_udf.cc Fix for bug#1439 UDF Corruption 2004-03-19 14:35:00 +04:00
sql_udf.h
sql_union.cc Port of cursors to be pushed into 5.0 tree: 2004-08-03 03:32:21 -07:00
sql_update.cc fixed using VIEW fields (BUG#4617) 2004-07-23 09:20:58 +03:00
sql_view.cc made different fields for view updatebility in principle and updatability during this execution (BUG#4601) 2004-07-22 17:52:04 +03:00
sql_view.h VIEW 2004-07-16 01:15:55 +03:00
sql_yacc.yy Fixed BUG#434: Stored procedure which drops itself causes crash. 2004-07-29 17:33:45 +02:00
stacktrace.c
stacktrace.h
strfunc.cc
structs.h Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
table.cc fixed using VIEW fields (BUG#4617) 2004-07-23 09:20:58 +03:00
table.h made different fields for view updatebility in principle and updatability during this execution (BUG#4601) 2004-07-22 17:52:04 +03:00
thr_malloc.cc
time.cc Fix for Bug#4030 "Client side conversion string -> date type doesn't 2004-06-24 19:08:36 +04:00
tzfile.h WL#1264 "Per-thread time zone support infrastructure". 2004-06-18 10:11:31 +04:00
tztime.cc VIEW 2004-07-16 01:15:55 +03:00
tztime.h Removed mysql_tzinfo_to_sql dependancy on sql/mysql_priv.h for circumventing 2004-06-25 21:04:48 +04:00
udf_example.cc
uniques.cc
unireg.cc merged 2004-06-23 12:36:07 +02:00
unireg.h VIEW 2004-07-16 01:15:55 +03:00
watchdog_mysqld