1
0
mirror of https://github.com/MariaDB/server.git synced 2025-06-09 03:41:38 +03:00

1521 Commits

Author SHA1 Message Date
konstantin@mysql.com
b9f51f7081 WL #1510 "Implement support for "commercial" binaries on handshake",
client library:
- implemented 'check_license' function
2004-03-17 20:04:50 +03:00
unknown
321422c86e Intermediate commit of client library (cleanups + fixes of 3 items from
flaws list)
TODO: 
 * verify that no sequence of API calls produces SIGSEGV.
 That is, verify that mysql_stmt_init  -> mysql_stmt_fetch is OK,
 or mysql_stmt_prepare -> mysql_stmt_fetch_column is OK and sets
 meaningful error.
 * remove alloc_stmt_fields call
 * revise stmt->state codes and statement states.
 * there are other items in prepared statements 'to fix' document.

Done:
 - cleanups and comments
 - revision of prepared statement error codes.
 - mysql_stmt_prepare is now can always be called (that is, you can reprepare
   a statement)
 - new implementation of mysql_stmt_close and fetch cancellation


include/errmsg.h:
  - CR_NOT_ALL_PARAMS_BOUND - this error code wasn't used until now. 
    Apparently it was added in advance, but then interface of
    mysql_stmt_bind_param changed. Now it's not possible to bind only some
    parameters - either all or none of parameters are bound.
    This error code  is renamed to CR_PARAMS_NOT_BOUND
  - CR_FETCH_CANCELLED - error code set on server side when fetch from 
    MYSQL_RES or MYSQL_STMT (in blocking mode) was cancelled because of
    intercepting call to mysql_stmt_close
  - CR_NO_DATA - this is proposed error code to return from 
    mysql_stmt_fetch_column if no row was fetched (by any type of fetch).
    We always can fall back to CR_COMMANDS_OUT_OF_SYNC though.
    Need reviewer's opinion on this one.
include/mysql.h:
  - added unbuffered_fetch_owner member to MYSQL to point to MYSQL_RES 
    or MYSQL_STMT which is used to fetch result at the moment.
    This is to be able to set CR_FETCH_CANCELLED error without fantoms.
  - added unbuffered_fetch_cancelled boolean variable to MYSQL_STMT and 
    MYSQL_RES structures
  - rename PREP_STMT_STATE -> enum enum_mysql_stmt_state
  - members of MYSQL_STMT ordered by size.
  - removed members of MYSQL_STMT: current_row, result_buffered,
    last_fetched_column, last_fetched_buffer, query
  - renamed members of MYSQL_STMT: param_buffers -> bind_param_done, 
    res_buffers -> bind_result_done
  - now mysql_stmt_fetch calls stmt->read_row_func to read row either from 
    buffer or from network.
include/sql_common.h:
  declaration for flush_use_result
libmysql/client_settings.h:
  stmt_close declaration removed
libmysql/errmsg.c:
  Error messages for changed and added error codes.
libmysql/libmysql.c:
  Many changes:
  - some unused variables removed
  - cleanups
  - better error reporting
  - some function calls commented
  - alloc_stmt_fields is now called right after execute, to not read
    mysql->fields of some other statement
  - new implementation of mysql_stmt_fetch - this is also with cursor
    fetch in mind (to implement cursor fetch I'll just need to write
    special read_row function for it, so this change will be local)
  - implementation of fetch cancellation, including complete rewrite of
    mysql_stmt_close
  - now mysql_stmt_free_result doesn't free results of other statements.
sql-common/client.c:
  - implementation of flush_use_result
  - implementation of fetch cancellation
  - changed behaviour of mysql_close in regard to mysql_stmt_close - now 
    mysql_close just set stmt->mysql to 0
2004-03-16 01:04:04 +03:00
konstantin@mysql.com
420c956d27 Intermediate commit of client library (cleanups + fixes of 3 items from
flaws list)
TODO: 
 * verify that no sequence of API calls produces SIGSEGV.
 That is, verify that mysql_stmt_init  -> mysql_stmt_fetch is OK,
 or mysql_stmt_prepare -> mysql_stmt_fetch_column is OK and sets
 meaningful error.
 * remove alloc_stmt_fields call
 * revise stmt->state codes and statement states.
 * there are other items in prepared statements 'to fix' document.

Done:
 - cleanups and comments
 - revision of prepared statement error codes.
 - mysql_stmt_prepare is now can always be called (that is, you can reprepare
   a statement)
 - new implementation of mysql_stmt_close and fetch cancellation
2004-03-16 01:04:04 +03:00
unknown
c4ddf58428 Rudimentary part of libmysql patch:
set_mysql_error is deployed


libmysql/client_settings.h:
  declaration for set_mysql_error
libmysql/libmysql.c:
  - set_mysql_error moved to client.c
  - st_stmt_errmsg -> set_stmt_error
sql-common/client.c:
  deployment of set_mysql_error
2004-03-12 15:21:48 +03:00
konstantin@oak.local
a1834919a9 Rudimentary part of libmysql patch:
set_mysql_error is deployed
2004-03-12 15:21:48 +03:00
unknown
dd8b25510e Merge with 3.23 to get patch for floor()
BitKeeper/etc/logging_ok:
  auto-union
myisam/mi_check.c:
  Auto merged
mysql-test/r/func_math.result:
  Auto merged
mysql-test/t/func_math.test:
  Auto merged
sql/item_func.cc:
  Auto merged
2004-03-12 01:12:14 +02:00
monty@mysql.com
98fb8ea4c7 Merge with 3.23 to get patch for floor() 2004-03-12 01:12:14 +02:00
unknown
188535bba0 Rename:
read_statistic -> read_statistics
(statistic is adjective)


include/mysql.h:
  read_statistic -> read_statistics
libmysql/client_settings.h:
  read_statistic -> read_statistics
libmysql/libmysql.c:
  read_statistic -> read_statistics
libmysqld/lib_sql.cc:
  read_statistic -> read_statistics
sql-common/client.c:
  read_statistic -> read_statistics
2004-03-10 20:12:24 +03:00
konstantin@oak.local
082a01d1e0 Rename:
read_statistic -> read_statistics
(statistic is adjective)
2004-03-10 20:12:24 +03:00
unknown
e3af1fab8c Fix for C++ style declaration 2004-03-05 19:04:59 +03:00
konstantin@mysql.com
1d624d3546 Fix for C++ style declaration 2004-03-05 19:04:59 +03:00
unknown
7ef1b4dff2 New call mysql_stmt_init() introduced.
Renames:
mysql_bind_param      -> mysql_stmt_bind_param
mysql_bind_result     -> mysql_stmt_bind_result
mysql_execute         -> mysql_stmt_execute
mysql_fetch           -> mysql_stmt_fetch
mysql_fetch_column    -> mysql_stmt_fetch_column
mysql_get_metadata    -> mysql_stmt_result_metadata
mysql_param_count     -> mysql_stmt_param_count
mysql_param_result    -> mysql_stmt_param_metadata
mysql_prepare         -> mysql_stmt_prepare
mysql_send_long_data  -> mysql_stmt_send_long_data

client_test.c cleaned up from memory leaks


include/mysql.h:
  New call mysql_stmt_init() introduced.
  Renames:
  mysql_bind_param      -> mysql_stmt_bind_param
  mysql_bind_result     -> mysql_stmt_bind_result
  mysql_execute         -> mysql_stmt_execute
  mysql_fetch           -> mysql_stmt_fetch
  mysql_fetch_column    -> mysql_stmt_fetch_column
  mysql_get_metadata    -> mysql_stmt_result_metadata
  mysql_param_count     -> mysql_stmt_param_count
  mysql_param_result    -> mysql_stmt_param_metadata
  mysql_prepare         -> mysql_stmt_prepare
  mysql_send_long_data  -> mysql_stmt_send_long_data
  Renames are done according to the rule 'Everything call operating with
  'MYSQL_STMT' structure has 'mysql_stmt_' prefix.
  Additionally mysql_param_result was renamed to mysql_stmt_param_metadata
  and mysql_get_metadata to mysql_stmt_result_metadata.
  All renames are done in hope that new names are easier to remember and 
  understand.
libmysql/client_settings.h:
  skip_list is not needed any more
libmysql/libmysql.c:
  New call mysql_stmt_init() introduced.
  Renames:
  mysql_bind_param      -> mysql_stmt_bind_param
  mysql_bind_result     -> mysql_stmt_bind_result
  mysql_execute         -> mysql_stmt_execute
  mysql_fetch           -> mysql_stmt_fetch
  mysql_fetch_column    -> mysql_stmt_fetch_column
  mysql_get_metadata    -> mysql_stmt_result_metadata
  mysql_param_count     -> mysql_stmt_param_count
  mysql_param_result    -> mysql_stmt_param_metadata
  mysql_prepare         -> mysql_stmt_prepare
  mysql_send_long_data  -> mysql_stmt_send_long_data
sql-common/client.c:
  no skip_list argument any more
tests/client_test.c:
  - many memory leaks and valgrind errors cleaned up.
2004-03-05 16:55:09 +03:00
konstantin@mysql.com
7753c6b93e New call mysql_stmt_init() introduced.
Renames:
mysql_bind_param      -> mysql_stmt_bind_param
mysql_bind_result     -> mysql_stmt_bind_result
mysql_execute         -> mysql_stmt_execute
mysql_fetch           -> mysql_stmt_fetch
mysql_fetch_column    -> mysql_stmt_fetch_column
mysql_get_metadata    -> mysql_stmt_result_metadata
mysql_param_count     -> mysql_stmt_param_count
mysql_param_result    -> mysql_stmt_param_metadata
mysql_prepare         -> mysql_stmt_prepare
mysql_send_long_data  -> mysql_stmt_send_long_data

client_test.c cleaned up from memory leaks
2004-03-05 16:55:09 +03:00
unknown
07b40e621e Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mashka.mysql.fi:/home/my/mysql-4.1


innobase/rem/rem0cmp.c:
  Auto merged
libmysql/libmysql.c:
  Auto merged
sql-common/client.c:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
2004-02-22 11:01:28 +02:00
monty@mashka.mysql.fi
1ae05760ac Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mashka.mysql.fi:/home/my/mysql-4.1
2004-02-22 11:01:28 +02:00
unknown
5db8fc5c27 Added missing argument to strxnmov() (Applies for windows debug mode)
libmysql/libmysql.c:
  Added missing argument to strxnmov()
2004-02-20 17:58:34 +02:00
monty@mashka.mysql.fi
f816e51096 Added missing argument to strxnmov() (Applies for windows debug mode) 2004-02-20 17:58:34 +02:00
unknown
8b2b219fb5 merge with 4.0 to get security fixes and latest bug fixes
BitKeeper/etc/logging_ok:
  auto-union
configure.in:
  Auto merged
BitKeeper/deleted/.del-mini_client.cc~8677895ec8169183:
  Auto merged
VC++Files/mysql.dsw:
  Auto merged
VC++Files/mysys/mysys.dsp:
  Auto merged
innobase/buf/buf0buf.c:
  Auto merged
innobase/include/srv0start.h:
  Auto merged
innobase/lock/lock0lock.c:
  Auto merged
innobase/mem/mem0dbg.c:
  Auto merged
innobase/que/que0que.c:
  Auto merged
innobase/srv/srv0start.c:
  Auto merged
innobase/sync/sync0rw.c:
  Auto merged
innobase/sync/sync0sync.c:
  Auto merged
innobase/trx/trx0trx.c:
  Auto merged
libmysql/manager.c:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/unireg.cc:
  Auto merged
VC++Files/sql/mysqld.dsp:
  Removed wrong define USE_SYMLINK
include/config-win.h:
  Use original code
innobase/srv/srv0srv.c:
  merge
innobase/usr/usr0sess.c:
  merge
libmysql/libmysql.c:
  merge
mysql-test/r/func_test.result:
  merge
mysql-test/t/func_test.test:
  merge
sql/log.cc:
  merge
sql/mysqld.cc:
  merge
2004-02-20 17:43:02 +02:00
monty@mashka.mysql.fi
494e43c1f5 merge with 4.0 to get security fixes and latest bug fixes 2004-02-20 17:43:02 +02:00
unknown
3711e24a86 Fix for #1429 (Segfault in mysql_stmt_close)
Problem was that we checked for existing connection in stmt_close
and did not free(stmt) if it's closed (that didn't work well with
embedded)
I just added new flag to the stmt_close and now we check it instead
of connection


libmysql/client_settings.h:
  declaration changed
libmysql/libmysql.c:
  stmt_close and it's calls modified
sql-common/client.c:
  stmt_close call modified
2004-02-20 12:18:06 +04:00
hf@deer.(none)
e01ea15029 Fix for #1429 (Segfault in mysql_stmt_close)
Problem was that we checked for existing connection in stmt_close
and did not free(stmt) if it's closed (that didn't work well with
embedded)
I just added new flag to the stmt_close and now we check it instead
of connection
2004-02-20 12:18:06 +04:00
unknown
9bc5cdba41 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/my/mysql-4.0


libmysql/libmysql.c:
  Auto merged
2004-02-19 22:04:46 +02:00
monty@mysql.com
e1fee022fa Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/my/mysql-4.0
2004-02-19 22:04:46 +02:00
unknown
68242939d8 Fixed usage of strxnmov() in recent changesets
libmysql/libmysql.c:
  szPipeName -> pipe_name
  fixed usage of strxnmov()
mysys/mf_tempfile.c:
  Fixed usage of strnxmov()
  Simple optimization
mysys/my_tempnam.c:
  Fixed usage of strnxmov()
  Simple optimization
sql/log.cc:
  simple optimization
sql/mini_client.cc:
  szPipeName -> pipe_name
  fixed usage of strxnmov()
sql/mysqld.cc:
  szPipeName -> pipe_name
  fixed usage of strxnmov()
  Fixed indentation
2004-02-19 22:04:31 +02:00
monty@mysql.com
14dc56b2a1 Fixed usage of strxnmov() in recent changesets 2004-02-19 22:04:31 +02:00
unknown
41a76c7c61 Merge gweir@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/bk/mysql-4.0


libmysql/libmysql.c:
  Auto merged
2004-02-19 14:56:31 -01:00
greg@mysql.com
25872043b5 Merge gweir@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/bk/mysql-4.0
2004-02-19 14:56:31 -01:00
unknown
ddf17601f3 potential problem fixed afer some reasoning 2004-02-19 09:11:46 +01:00
serg@serg.mylan
7a03cf04af potential problem fixed afer some reasoning 2004-02-19 09:11:46 +01:00
unknown
709356d473 Changed wellformedlen to well_formed_len
Fixed that blobs >16M can be inserted/updated
Fixed bug when doing CREATE TEMPORARY TABLE ... LIKE


include/m_ctype.h:
  Changed wellformedlen to well_formed_len
include/mysql.h:
  Fixed comment
libmysql/libmysql.c:
  Fixed indentation
libmysqld/lib_sql.cc:
  Fixed indentation
mysql-test/r/ctype_utf8.result:
  updated warning numbers
mysql-test/r/innodb.result:
  Moved test to right place
mysql-test/r/myisam-blob.result:
  More test for blobs
mysql-test/r/rpl000002.result:
  Move test to better place
mysql-test/r/rpl_log.result:
  Move test to better place
mysql-test/r/union.result:
  Move test to better place
mysql-test/t/innodb.test:
  Moved test to right place
mysql-test/t/myisam-blob.test:
  More test of blobs
mysql-test/t/rpl000002.test:
  Move test to better place
mysql-test/t/rpl_log.test:
  Move test to better place
mysql-test/t/union.test:
  Move test to better place
sql/field.cc:
  Changed wellformedlen to well_formed_len.
  Fixed that blobs >16M can be inserted/updated (new bug)
sql/field.h:
  Code optimization
sql/sql_lex.cc:
  Changed short variable names
sql/sql_show.cc:
  Optimized quote handling
sql/sql_table.cc:
  Fixed bug when doing CREATE TEMPORARY TABLE ... LIKE
sql/sql_union.cc:
  Added comment
strings/ctype-big5.c:
  Changed wellformedlen to well_formed_len
strings/ctype-bin.c:
  Changed wellformedlen to well_formed_len
strings/ctype-euc_kr.c:
  Changed wellformedlen to well_formed_len
strings/ctype-gb2312.c:
  Changed wellformedlen to well_formed_len
strings/ctype-gbk.c:
  Changed wellformedlen to well_formed_len
strings/ctype-latin1.c:
  Changed wellformedlen to well_formed_len
strings/ctype-mb.c:
  Changed wellformedlen to well_formed_len
strings/ctype-simple.c:
  Changed wellformedlen to well_formed_len
strings/ctype-sjis.c:
  Changed wellformedlen to well_formed_len
strings/ctype-tis620.c:
  Changed wellformedlen to well_formed_len
strings/ctype-ucs2.c:
  Changed wellformedlen to well_formed_len
  Indentation changes
strings/ctype-ujis.c:
  Changed wellformedlen to well_formed_len
strings/ctype-utf8.c:
  Changed wellformedlen to well_formed_len
2004-02-17 01:35:17 +02:00
monty@mysql.com
e9315f984d Changed wellformedlen to well_formed_len
Fixed that blobs >16M can be inserted/updated
Fixed bug when doing CREATE TEMPORARY TABLE ... LIKE
2004-02-17 01:35:17 +02:00
unknown
b012018b7a Fix for #2212 (mysql_change_user doesn't work in embedded library)
now it's working


include/mysql.h:
  read_change_user_result 'virtual' method added
libmysql/client_settings.h:
  cli_read_change_user_result interface
libmysql/libmysql.c:
  cli_read_change_user_result implementation
libmysqld/lib_sql.cc:
  emb_read_change_user_result implementation
sql-common/client.c:
  cli_read_change_user_result added to the method's table
sql/sql_parse.cc:
  fixes to make mysql_change_user working in embedded library
2004-02-14 20:26:21 +04:00
hf@deer.(none)
e100530b3e Fix for #2212 (mysql_change_user doesn't work in embedded library)
now it's working
2004-02-14 20:26:21 +04:00
unknown
7e7fec0be3 manual merge, bug #2247
include/mysql.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
tests/client_test.c:
  manual merge
2004-02-13 00:50:03 +03:00
konstantin@mysql.com
b865fb1cf3 manual merge, bug #2247 2004-02-13 00:50:03 +03:00
unknown
f2753fe9ac Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/dlenev/src/mysql-4.1-bg2248


include/mysql.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
2004-02-11 16:09:33 +03:00
dlenev@mysql.com
8e6a2e98ae Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/dlenev/src/mysql-4.1-bg2248
2004-02-11 16:09:33 +03:00
unknown
e5c142a412 Addition to the fix for #2208
Made code shorter and more correct


libmysql/client_settings.h:
  cli_next_result removed
libmysql/libmysql.c:
  cli_next_result removed
2004-02-11 16:35:56 +04:00
hf@deer.(none)
f347208ac9 Addition to the fix for #2208
Made code shorter and more correct
2004-02-11 16:35:56 +04:00
unknown
478d402117 Fix for bug#2021: Wron error message from the client
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-02-11 12:30:20 +04:00
gluh@gluh.mysql.r18.ru
d5fa169fd1 Fix for bug#2021: Wron error message from the client 2004-02-11 12:30:20 +04:00
unknown
94f215cbe1 Fixed bug #2248 "mysql_fetch without prior mysql_execute hangs"
Done clean-up in prep stmt API functions:
1) Removed some checks that were performed only in debug version
were making debug version more tolerable to user errors than 
production (and thus caused problems for example masking some
bugs). 
2) Also removed some other checks to make prep stmt API 
consistent with the rest of C API (this also in line with 
general politics - make checks in only those places where 
errors are very common and hard to spot).


include/mysql.h:
  Removed CHECK_EXTRA_ARGUMENTS define since it is no longer used 
  anywhere.
libmysql/libmysql.c:
  Added check that will cause mysql_fetch() to bark then it is 
  used without calling mysql_execute() before.
  Removed checks that were performed only in debug version and
  caused problems since they were making debug version more 
  tolerable to user errors than production. Also removed some
  other checks to make prep stmt API consistent in this regard 
  with the rest of C API (this also in line with general politics -
  make checks in only those places where errors are very common 
  and hard to spot).
tests/client_test.c:
  Updated tests to reflect removal of some checks in prep stmt API.
  Removed lines that caused bug #2473 to pop up, should be added 
  as separate test with the fix for this bug.
  Added test for bug#2248 "mysql_fetch without prior mysql_execute 
  hangs"
2004-02-10 16:58:20 +03:00
dlenev@dlenev.mshome
8ec663ef5b Fixed bug #2248 "mysql_fetch without prior mysql_execute hangs"
Done clean-up in prep stmt API functions:
1) Removed some checks that were performed only in debug version
were making debug version more tolerable to user errors than 
production (and thus caused problems for example masking some
bugs). 
2) Also removed some other checks to make prep stmt API 
consistent with the rest of C API (this also in line with 
general politics - make checks in only those places where 
errors are very common and hard to spot).
2004-02-10 16:58:20 +03:00
unknown
b4fc7c7fbf Fix for #2208 (multi-query returns wrong result in embedded library)
now we execute only one first select during mysql_real_query
others - during 'mysql_next_result'


include/mysql.h:
  'virtual' next_result added
libmysql/client_settings.h:
  cli_next_result declaration added
libmysql/libmysql.c:
  mysql_next_result now works in embedded library as well
libmysqld/lib_sql.cc:
  emb_next_result implemented
sql/sql_class.h:
  fields to store the rest of the query added
sql/sql_parse.cc:
  Saving the rest of the query added for embedded case
2004-02-10 17:09:59 +04:00
hf@deer.(none)
348bd98e48 Fix for #2208 (multi-query returns wrong result in embedded library)
now we execute only one first select during mysql_real_query
others - during 'mysql_next_result'
2004-02-10 17:09:59 +04:00
unknown
3aef1d2c4b Fix for bug #2247: "mysql_stmt_affected_rows returns affected rows from
last command"


include/mysql.h:
  Fix for bug #2247: 
  added affected_rows variable to MYSQL_STMT
libmysql/libmysql.c:
  Fix for bug #2247: 
  save mysql->affected_rows in stmt->affected_rows
  after mysql_execute() and mysql_stmt_store_result().
tests/client_test.c:
  Fix for bug #2247: test added
2004-02-06 16:03:09 +03:00
konstantin@oak.local
69d00bdb88 Fix for bug #2247: "mysql_stmt_affected_rows returns affected rows from
last command"
2004-02-06 16:03:09 +03:00
unknown
a5b9966c0d Revise Windows build script, correct comment re NetWare in libmysql.c
Build-tools/Do-win-build:
  Copy logfile for pickup by Do-compile-win
libmysql/libmysql.c:
  Comment was previously inaccurate
2004-01-21 16:06:26 -01:00
greg@mysql.com
e845a6685c Revise Windows build script, correct comment re NetWare in libmysql.c 2004-01-21 16:06:26 -01:00
unknown
2b1aa3fc2a Merge paul@bk-internal.mysql.com:/home/bk/mysql-4.1
into teton.kitebird.com:/home/paul/mysql-4.1


libmysql/libmysql.c:
  Auto merged
2003-12-23 09:47:02 -06:00