summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorserg@serg.mysql.com <>2003-01-27 20:24:17 +0100
committerserg@serg.mysql.com <>2003-01-27 20:24:17 +0100
commit17142f39d324f3cea5e3df00414b06848c7295bf (patch)
tree94343099d2c5180b7cc4f3048d2ef8d9a4b8672f
parentcb00984a41207e9fec9c7fca814f1bdf51e11abb (diff)
parent7a7066ef9da027b7080ab33537dd6b27f3cb062f (diff)
downloadmariadb-git-17142f39d324f3cea5e3df00414b06848c7295bf.tar.gz
Merge work:/home/bk/mysql-4.1
into serg.mysql.com:/usr/home/serg/Abk/mysql-4.1
-rw-r--r--myisam/mi_open.c6
-rw-r--r--mysql-test/r/analyse.result2
-rw-r--r--sql/sql_select.cc4
3 files changed, 9 insertions, 3 deletions
diff --git a/myisam/mi_open.c b/myisam/mi_open.c
index 250e0483fe5..4eb7376cdb6 100644
--- a/myisam/mi_open.c
+++ b/myisam/mi_open.c
@@ -329,7 +329,11 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags)
{
*pos=ft_keysegs[j];
pos[0].language= pos[-1].language;
- pos[0].charset= pos[-1].charset;
+ if (!(pos[0].charset= pos[-1].charset))
+ {
+ my_errno=HA_ERR_CRASHED;
+ goto err;
+ }
pos++;
}
}
diff --git a/mysql-test/r/analyse.result b/mysql-test/r/analyse.result
index 0cb33526457..48882f42219 100644
--- a/mysql-test/r/analyse.result
+++ b/mysql-test/r/analyse.result
@@ -3,7 +3,7 @@ create table t1 (i int, j int);
insert into t1 values (1,2), (3,4), (5,6), (7,8);
select count(*) from t1 procedure analyse();
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
- -6510615555426900571 -6510615555426900571 -6510615555426900571 -6510615555426900571
+count(*) 4 4 1 1 0 0 4.0000 0.0000 ENUM('4') NOT NULL
select * from t1 procedure analyse();
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
t1.i 1 7 1 1 0 0 4.0000 2.2361 ENUM('1','3','5','7') NOT NULL
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 4de4b2299f2..e554ac1d560 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -732,7 +732,9 @@ JOIN::exec()
result->send_fields(fields_list,1);
if (!having || having->val_int())
{
- if (do_send_rows && result->send_data(fields_list))
+ if (do_send_rows && (procedure ? (procedure->send_row(fields_list) ||
+ procedure->end_of_records())
+ : result->send_data(fields_list)))
error= 1;
else
{