Commit graph

52082 commits

Author SHA1 Message Date
unknown
f904aab43e Merge polly.(none):/home/kaa/src/opt/bug9481/my50-bug9481
into  polly.(none):/home/kaa/src/opt/bug9481/my51-bug9481


sql/sql_class.h:
  Null merge.
sql/sql_insert.cc:
  Null merge.
tests/mysql_client_test.c:
  Null merge.
2007-11-30 18:27:00 +03:00
unknown
05fbb233d8 Bug #26921 Problem in mysql_insert_id() Embedded C API function.
client library only sets mysql->insert_id when query returned
no recordset. So the embedded library should behave the same way


libmysqld/lib_sql.cc:
  Bug #26921 Problem in mysql_insert_id() Embedded C API function.
  
  only set 'affected_rows' and 'insert_id' fields when query
  didn't return a recordset
tests/mysql_client_test.c:
  Bug #26921 Problem in mysql_insert_id() Embedded C API function.
  
  testcase added
2007-11-30 19:16:13 +04:00
unknown
ff7e7fcb67 Bug#32775 problems with SHOW EVENTS and Information_Schema
removed unnecessary privilege checks for I_S schema


mysql-test/r/information_schema.result:
  test result
mysql-test/t/information_schema.test:
  test case
sql/events.cc:
  There is no events in I_S so we don't need to execute check_access here.
sql/sql_parse.cc:
  removed unnecessary check
2007-11-30 18:48:22 +04:00
unknown
dc362dae41 Bug#30491 - MERGE doesn't report error when one table is Innodb
1. A bad error message was given when a MERGE table with an
   InnoDB child table was tried to use.

2. After selecting from a correct MERGE table and then altering
   one of the children to InnoDB, incorrect results were returned.

These bugs have been fixed with the patch for bug 26379 (Combination
of FLUSH TABLE and REPAIR TABLE corrupts a MERGE table).

For verification, I added the test case from the bug report.


mysql-test/r/merge_innodb.result:
  Bug#30491 - MERGE doesn't report error when one table is Innodb
  Added test result.
mysql-test/t/merge_innodb.test:
  Bug#30491 - MERGE doesn't report error when one table is Innodb
  Added test case.
2007-11-30 15:16:31 +01:00
unknown
4b954cc094 A patch for BUG#32148: killing a query may be ineffective.
The problem was that THD::killed was reset after a command was
read from the socket, but before it was actually handled. That lead
to a race: if another KILL statement was issued for this connection
in the middle of reading from the socket and processing a command,
THD::killed state would be cleaned.

The fix is to move this cleanup into net_send_error() function.

A sample test case exists in binlog_killed.test:
  - connection 1: start a new transaction on table t1;
  - connection 2: send query to the server (w/o waiting for the
    result) to update data in table t1 -- this query will be blocked
    since there is unfinished transaction;
  - connection 1: kill query in connection 2 and finish the transaction;
  - connection 2: get result of the previous query -- it should be
    the "query-killed" error.

This test however contains race condition, which can not be fixed
with the current protocol: there is no way to guarantee, that the
server will receive and start processing the query in connection 2
(which is intended to get blocked) before the KILL command (sent in
the connection 1) will arrive. In other words, there is no way to
ensure that the following sequence will not happen:

  - connection 1: start a new transaction on table t1;
  - connection 1: kill query in connection 2 and finish the transaction;
  - connection 2: send query to the server (w/o waiting for the
    result) to update data in table t1 -- this query will be blocked
    since there is unfinished transaction;
  - connection 2: get result of the previous query -- the query will
    succeed.

So, there is no test case for this bug, since it's impossible
to write a reliable test case under the current circumstances.


sql/protocol.cc:
  Move thd->killed cleanup from dispatch_command() to net_send_error().
sql/sql_parse.cc:
  Move thd->killed cleanup from dispatch_command() to net_send_error().
2007-11-30 16:12:20 +03:00
unknown
cef31e05e5 Bug #32374 crash with filesort when selecting from federated table and view.
filesort() uses file->estimate_rows_upper_bound() call to allocate
internal buffers. If this function returns a value smaller than
a number of row that will be returned later in find_all_keys(),
that can cause server crash.
Fixed by implementing ha_federated::estimate_rows_upper_bound() to
return maximum possible number of rows.
Present estimation for FEDERATED always returns 0 if the linked to the VIEW.


mysql-test/r/federated.result:
  Bug #32374 crash with filesort when selecting from federated table and view.
  
  test result
mysql-test/t/federated.test:
  Bug #32374 crash with filesort when selecting from federated table and view.
  
  test case
sql/ha_federated.cc:
  Bug #32374 crash with filesort when selecting from federated table and view.
  
  ha_federated::estimate_rows_upper_bound() implemented
sql/ha_federated.h:
  Bug #32374 crash with filesort when selecting from federated table and view.
  
  ha_federated::estimate_rows_upper_bound() interface
2007-11-30 17:08:00 +04:00
unknown
90477e23e2 BUG#32723 (grant3.test fails) can not be reproduced.
Enabling the test case.


mysql-test/t/disabled.def:
  Enable grant3.test.
2007-11-30 14:49:34 +03:00
unknown
945f29aa67 Merge mysql.com:/misc/mysql/32707/50-32707
into  mysql.com:/misc/mysql/32707/51-32707


sql/protocol.cc:
  manual merge
2007-11-30 12:48:03 +01:00
unknown
a5efa43c7c Merge mysql.com:/misc/mysql/32707/41-32707
into  mysql.com:/misc/mysql/32707/50-32707


sql/protocol.cc:
  manual merge
2007-11-30 12:44:28 +01:00
unknown
cdc382e7fd Bug#22312 Syntax error in expression with INTERVAL()
Parser rejects valid INTERVAL() expressions when associated with
arithmetic operators. The problem is the way in which the expression
and interval grammar rules were organized caused shift/reduce conflicts.

The solution is to tweak the interval rules to avoid shift/reduce
conflicts by removing the broken interval_expr rule and explicitly
specify it's content where necessary.

Original fix by Davi Arnaut, revised and improved rules by Marc Alff


mysql-test/r/parser.result:
  Add test case result for Bug#22312
mysql-test/t/parser.test:
  Add test case for Bug#22312
sql/sql_yacc.yy:
  Resolve shift/reduce conflicts by reorganizing the interval
  expression rules.
2007-11-30 09:34:25 -02:00
unknown
909142828e BUG#32050 - table logging gone wrong.
Reverted log tables alteration.


scripts/mysql_system_tables_fix.sql:
  Altering log table is wrong, because
  - it is not possible to alter log table when it is in use;
  - log table may use MyISAM engine, which perfectly supports NULLs.
  
  Reverted log tables alteration.
2007-11-30 15:00:15 +04:00
unknown
9395421a14 A test case for BUG#26676: VIEW using old table schema in a session.
The following clarification should be made in The Manual:

Standard SQL is quite clear that, if new columns are added
to a table after a view on that table is created with
"select *", the new columns will not become part of the view.
In all cases, the view definition (view structure) is frozen
at CREATE time, so changes to the underlying tables do not
affect the view structure.


mysql-test/r/view.result:
  Update result file.
mysql-test/t/view.test:
  Add a test case for BUG#26676: VIEW using old table schema in a session.
2007-11-30 12:14:07 +03:00
unknown
89a208850a Bug#31177: Server variables can't be set to their current values
Default values of variables were not subject to upper/lower bounds
and step, while setting variables was. Bounds and step are also
applied to defaults now; defaults are corrected quietly, values
given by the user are corrected, and a correction-warning is thrown
as needed. Lastly, very large values could wrap around, starting
from 0 again. They are bounded at the maximum value for the
respective data-type now if no lower maximum is specified in the
variable's definition.


client/mysql.cc:
  correct maxima in options array
client/mysqltest.c:
  adjust minimum for "sleep" option so default value is no longer
  out of bounds.
include/m_string.h:
  ullstr() - the unsigned brother of llstr()
include/my_getopt.h:
  Flag if we bounded the value (that is, correct anything aside from
  making value a multiple of block-size)
mysql-test/r/delayed.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/index_merge.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/innodb.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/innodb_mysql.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/key_cache.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/packet.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/ps.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/subselect.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/type_bit.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/type_bit_innodb.result:
  We throw a warning now when we adjust out of range parameters.
mysql-test/r/variables.result:
  correct results: bounds and step apply to variables' default values, too
mysql-test/t/variables.test:
  correct results: bounds and step apply to variables' default values, too
mysys/my_getopt.c:
  - apply bounds/step to default values of variables (based on work by serg)
  - print complaints about incorrect values for variables (truncation etc.,
    by requestion of consulting)
  - if no lower maximum is specified in variable definition, bound unsigned
    values at their maximum to prevent wrap-around
  - some calls to error_reporter had a \n, some didn't. remove \n from calls,
    let reporter-function handle it, so the default reporter behaves like that
    in mysqld
sql/mysql_priv.h:
  correct RANGE_ALLOC_BLOCK_SIZE (cleared with monty)
sql/mysqld.cc:
  correct maxima to correct data-type.
  correct minima where higher than default.
  correct range-alloc-block-size.
  correct inno variables so GET_* corresponds to actual variable's type.
sql/set_var.cc:
  When the new value for a variable is out of bounds, we'll send the
  client a warning (but not if the value was simply not a multiple of
  'blocksize').  sys_var_thd_ulong had this, sys_var_long_ptr_global
  didn't; broken out and streamlined to avoid duplication of code.
strings/llstr.c:
  ullstr() - the unsigned brother of llstr()
2007-11-30 06:32:04 +01:00
unknown
f41ba1879d Merge mysql.com:/home/ram/work/mysql-5.1-engines
into  mysql.com:/home/ram/work/b29258/b29258.5.1


mysql-test/r/partition.result:
  Manually merged
mysql-test/t/partition.test:
  Manually merged
2007-11-30 09:18:26 +04:00
unknown
3308d8794e Bug #32219: too many hosts in default grant tables 6.0.3
Fix is to remove any references to the current hostname when running
mysql_install_db --cross-bootstrap.  (The dist-hook make target makes
this call, and the resulting data directory is included in the source
distribution as win/data/*.)

Also, a few other clean-ups to mysql_install_db while there.


Makefile.am:
  Adapt to clean-up in mysql_install_db (--windows becomes --cross-bootstrap)
scripts/mysql_install_db.sh:
  Filter out references to the current hostname when performing
  a cross-bootstrap installation by removing any lines which
  contain the string "@current_hostname".
  
  Deprecate the old --windows option; use --cross-bootstrap
  instead, since it more accurately reflects the purpose.
  
  Other clean-up: the wrong syntax was being used to test the
  exit status of mysqld --bootstrap.  It mostly worked, as long
  as mysqld succeeded.  However, it was not robust.
scripts/mysql_system_tables_data.sql:
  Rename local @hostname variable to @current_hostname, which is a more
  unique label to search on.  mysql_install_db now filters out all
  lines which include "@current_hostname" during a --cross-bootstrap
  installation.
2007-11-30 06:14:43 +01:00
unknown
0d09e36479 Merge mysql.com:/home/kent/bk/mac-os-x-universal/mysql-5.0-build
into  mysql.com:/home/kent/bk/mac-os-x-universal/mysql-5.1-build


include/my_global.h:
  Auto merged
2007-11-30 01:38:29 +01:00
unknown
8ffb540453 Merge mysql.com:/home/kent/bk/mac-os-x-universal/mysql-4.1-build
into  mysql.com:/home/kent/bk/mac-os-x-universal/mysql-5.0-build


include/my_global.h:
  Auto merged
2007-11-30 01:37:07 +01:00
unknown
44ebdc095a my_global.h:
Added 64 bit Mac OS X hard coded settings, for universal binaries


include/my_global.h:
  Added 64 bit Mac OS X hard coded settings, for universal binaries
2007-11-30 01:36:05 +01:00
unknown
61f57730a8 Excluded verbose and bad change to Mac OS X universal binaries handling 2007-11-30 01:22:15 +01:00
unknown
d1e1c682c7 Merge mysql.com:/home/kent/bk/mac-os-x-universal/mysql-5.0-build
into  mysql.com:/home/kent/bk/mac-os-x-universal/mysql-5.1-build


include/my_global.h:
  Auto merged
2007-11-29 23:45:28 +01:00
unknown
12ab96a279 Merge mysql.com:/home/kent/bk/mac-os-x-universal/mysql-4.1-build
into  mysql.com:/home/kent/bk/mac-os-x-universal/mysql-5.0-build


include/my_global.h:
  Auto merged
2007-11-29 23:44:16 +01:00
unknown
8b76c0001b Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/kent/bk/mac-os-x-universal/mysql-5.0-build
2007-11-29 23:42:46 +01:00
unknown
f177f5f9a5 my_global.h:
Added 64 bit Mac OS X hard coded settings, for universal binaries


include/my_global.h:
  Added 64 bit Mac OS X hard coded settings, for universal binaries
2007-11-29 23:42:04 +01:00
unknown
30a0be4ff2 Merge april.(none):/home/svoj/devel/bk/mysql-5.1-engines
into  april.(none):/home/svoj/devel/mysql/BUG32050/mysql-5.1-engines
2007-11-29 23:51:05 +04:00
unknown
547e3da5e6 Merge stella.local:/home2/mydev/mysql-5.0-axmrg
into  stella.local:/home2/mydev/mysql-5.1-axmrg


mysql-test/r/ctype_euckr.result:
  Auto merged
mysql-test/r/ctype_uca.result:
  Auto merged
2007-11-29 20:18:54 +01:00
unknown
760ac0dff4 Merge stella.local:/home2/mydev/mysql-5.1-ateam
into  stella.local:/home2/mydev/mysql-5.1-axmrg
2007-11-29 20:17:43 +01:00
unknown
4ebdf739ce after-merge fix:
- result adjusted.
2007-11-29 22:32:34 +04:00
unknown
590d9274fe Merge chorlton.adsl.perkin.org.uk:/Users/jonathan/work/bk/mysql-5.0
into  chorlton.adsl.perkin.org.uk:/Users/jonathan/work/bk/mysql-5.1
2007-11-29 17:13:43 +00:00
unknown
854d0fa176 Shell portability fix.
scripts/mysql_install_db.sh:
  Use "test !" instead of "! test", as the
  latter does not work on certain shells.
2007-11-29 16:40:46 +00:00
unknown
157100eef0 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG31833/mysql-5.1-engines


mysql-test/r/archive.result:
  Auto merged
mysql-test/t/archive.test:
  Auto merged
2007-11-29 15:45:09 +04:00
unknown
87143063d3 Bug#23713 LOCK TABLES + CREATE TRIGGER + FLUSH TABLES WITH READ LOCK = deadlock
This bug is actually two bugs in one, one of which is CREATE TRIGGER under
LOCK TABLES and the other is CREATE TRIGGER under LOCK TABLES simultaneous
to a FLUSH TABLES WITH READ LOCK (global read lock). Both situations could
lead to a server crash or deadlock.

The first problem arises from the fact that when under LOCK TABLES, if the
table is in the set of locked tables, the table is already open and it doesn't
need to be reopened (not a placeholder). Also in this case, if the table is
not write locked, a exclusive lock can't be acquired because of a possible
deadlock with another thread also holding a (read) lock on the table. The
second issue arises from the fact that one should never wait for a global
read lock if it's holding any locked tables, because the global read lock
is waiting for these tables and this leads to a circular wait deadlock.

The solution for the first case is to check if the table is write locked
and upgraded the write lock to a exclusive lock and fail otherwise for non
write locked tables. Grabbin the exclusive lock in this case also means
to ensure that the table is opened only by the calling thread. The second
issue is partly fixed by not waiting for the global read lock if the thread
is holding any locked tables.

The second issue is only partly addressed in this patch because it turned
out to be much wider and also affects other DDL statements. Reported as
Bug#32395


mysql-test/r/trigger.result:
  Add test case result for Bug#23713
mysql-test/r/trigger_notembedded.result:
  Add test case result for Bug#23713
mysql-test/t/trigger.test:
  Add test case for Bug#23713
mysql-test/t/trigger_notembedded.test:
  Add test case for Bug#23713
sql/mysql_priv.h:
  Locally export wait_while_table_is_used and name_lock_locked_table
  and add flag to mysql_ha_rm_tables to signal that LOCK_open is locked.
sql/sql_base.cc:
  Introduce name_lock_locked_table function and match
  close_old_data_files function declaration and definition.
sql/sql_handler.cc:
  Add flag to mysql_ha_rm_tables to signal that LOCK_open is locked.
sql/sql_rename.cc:
  Fix mysql_ha_rm_tables caller.
sql/sql_table.cc:
  Export wait_while_table_is_used and assert that LOCK_open is locked
  and fix mysql_ha_rm_tables caller.
sql/sql_trigger.cc:
  Upgrade write locked tables to a exclusive lock and fail if
  the table is not write locked. Also, don't wait for the global
  read lock if under LOCK TABLES.
2007-11-29 09:42:26 -02:00
unknown
36486ee86c Merge mysql.com:/home/ram/work/mysql-5.0-engines
into  mysql.com:/home/ram/work/b32726/b32726.5.0


mysql-test/r/ctype_euckr.result:
  Auto merged
mysql-test/r/ctype_uca.result:
  Auto merged
2007-11-29 15:12:09 +04:00
unknown
23e402bf45 Bug #29085 A small double precision number becomes zero.
Denormalized DOUBLE-s can't be properly handled by old MIPS processors.
So we need to enable specific mode for them so IRIX will do use
software round to handle such numbers. 


sql/mysqld.cc:
  Bug #29085 A small double precision number becomes zero.
  
  reset_floating_point_exeption() renamed as set_proper_floating_point_mode()
  #ifdef __sgi code added to enable denormalized DOUBLE-s on IRIX
2007-11-29 14:52:36 +04:00
unknown
d68d16bb3d Merge mysql.com:/home/ram/work/b32726/b32726.5.0
into  mysql.com:/home/ram/work/b32726/b32726.5.1


mysql-test/r/ctype_euckr.result:
  Auto merged
mysql-test/r/ctype_uca.result:
  Auto merged
strings/ctype-cp932.c:
  Auto merged
mysql-test/extra/binlog_tests/ctype_cp932.test:
  Auto merged
mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result:
  Auto merged
2007-11-29 14:35:15 +04:00
unknown
926a9adfda Merge stella.local:/home2/mydev/mysql-5.0-axmrg
into  stella.local:/home2/mydev/mysql-5.1-axmrg


mysql-test/r/delayed.result:
  Auto merged
mysql-test/t/delayed.test:
  Auto merged
sql/sql_insert.cc:
  Auto merged
2007-11-29 11:11:36 +01:00
unknown
060ccef012 Merge mysql.com:/home/ram/work/mysql-5.0-engines
into  mysql.com:/home/ram/work/b32559/b32559.5.0
2007-11-29 14:01:07 +04:00
unknown
1d062682f5 Bug #32624 Error with multi queries in MySQL embedded server 5.1.22.
server status wasn't properly sent to the client after the error
by the embedded server. Wasn't noticed before as one usually stopped
retrieving results after he gets an error.


libmysqld/lib_sql.cc:
  Bug #32624 Error with multi queries in MySQL embedded server 5.1.22.
  
  server status transferred to the client after errors
sql/protocol.cc:
  Bug #32624 Error with multi queries in MySQL embedded server 5.1.22.
  
  set server status before net_send_error_packet() call as this
  function sends it to the client in the embedded server
tests/mysql_client_test.c:
  Bug #32624 Error with multi queries in MySQL embedded server 5.1.22.
  
  testcase added
2007-11-29 10:37:07 +04:00
unknown
b9c4817058 Merge mysql.com:/home/ram/work/b32559/b32559.5.0
into  mysql.com:/home/ram/work/b32559/b32559.5.1


mysql-test/r/func_misc.result:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
mysql-test/t/func_misc.test:
  manual merge.
2007-11-29 10:23:30 +04:00
unknown
18489d1052 Merge mysql.com:/home/ram/work/mysql-5.1-engines
into  mysql.com:/home/ram/work/b32676/b32676.5.1
2007-11-29 08:29:25 +04:00
unknown
b8a60e6ba3 Merge mysql.com:/home/ram/work/mysql-5.0-engines
into  mysql.com:/home/ram/work/b32676/b32676.5.0


mysql-test/r/delayed.result:
  Auto merged
mysql-test/t/delayed.test:
  Auto merged
sql/sql_insert.cc:
  Auto merged
2007-11-29 08:24:52 +04:00
unknown
f4a7464f1e Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/psergey/mysql-5.1-bug32772
2007-11-28 22:43:52 +03:00
unknown
9b6dc66ede Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build


client/mysql.cc:
  Auto merged
configure.in:
  Auto merged
mysql-test/lib/mtr_report.pl:
  Auto merged
mysql-test/r/innodb_mysql.result:
  Auto merged
mysql-test/suite/rpl/include/rpl_mixed_dml.inc:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
sql/handler.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
2007-11-28 19:49:29 +01:00
unknown
a24bfb485c use --builddir option for mysql_install_db 2007-11-28 17:36:28 +01:00
unknown
648d3cedbc fix make distcheck in a different way
scripts/mysql_install_db.sh:
  apply different patch for make distcheck failure
2007-11-28 17:32:28 +01:00
unknown
8f60ebfbcb Merge dfischer@bk-internal.mysql.com:/home/bk/mysql-5.1-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build


scripts/mysql_install_db.sh:
  Auto merged
2007-11-28 17:08:40 +01:00
unknown
6627c212d0 Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-runtime
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-rt-merge


sql/item_func.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql-common/client.c:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-11-28 09:08:31 -07:00
unknown
ade1c14667 include data files for parts test suite in distribution 2007-11-28 17:04:02 +01:00
unknown
7e6cdd8b23 Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-rt-merge


sql/sql_table.cc:
  Auto merged
2007-11-28 08:49:01 -07:00
unknown
b512270e54 Manual merge 2007-11-28 08:41:45 -07:00
unknown
f927182efe Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-base
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-rt-merge


sql/events.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/sql_table.cc:
  manual merge
2007-11-28 07:42:36 -07:00