diff options
author | unknown <monty@narttu.mysql.fi> | 2003-08-22 04:08:16 +0300 |
---|---|---|
committer | unknown <monty@narttu.mysql.fi> | 2003-08-22 04:08:16 +0300 |
commit | e3ceec7136aeac433a074dd923cc790af13b9546 (patch) | |
tree | c3a5ca53ed97e6b417113fdc3d7edff47cd5e6ae /client | |
parent | ec4d0edf85b414bc817b81f9cbae01299f2fa463 (diff) | |
parent | 64393d7e24fe90f5badf3f25f25cc5a24f34b70e (diff) | |
download | mariadb-git-e3ceec7136aeac433a074dd923cc790af13b9546.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into narttu.mysql.fi:/my/mysql-4.0
client/mysqltest.c:
Auto merged
sql/sql_load.cc:
Auto merged
Diffstat (limited to 'client')
-rw-r--r-- | client/mysqltest.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/client/mysqltest.c b/client/mysqltest.c index 62b5df6c90d..14a037a8e58 100644 --- a/client/mysqltest.c +++ b/client/mysqltest.c @@ -42,7 +42,7 @@ **********************************************************************/ -#define MTEST_VERSION "1.27" +#define MTEST_VERSION "1.28" #include <my_global.h> #include <mysql_embed.h> @@ -852,7 +852,28 @@ int var_query_set(VAR* v, const char* p, const char** p_end) } if ((row = mysql_fetch_row(res)) && row[0]) - eval_expr(v, row[0], 0); + { + /* + Concatenate all row results with tab in between to allow us to work + with results from many columns (for example from SHOW VARIABLES) + */ + DYNAMIC_STRING result; + uint i; + ulong *lengths; + char *end; + + init_dynamic_string(&result, "", 16384, 65536); + lengths= mysql_fetch_lengths(res); + for (i=0; i < mysql_num_fields(res); i++) + { + if (row[0]) + dynstr_append_mem(&result, row[i], lengths[i]); + dynstr_append_mem(&result, "\t", 1); + } + end= result.str + result.length-1; + eval_expr(v, result.str, (const char**) &end); + dynstr_free(&result); + } else eval_expr(v, "", 0); @@ -909,8 +930,6 @@ int eval_expr(VAR* v, const char* p, const char** p_end) return 0; } - if (p_end) - *p_end = 0; die("Invalid expr: %s", p); return 1; } @@ -1204,7 +1223,7 @@ static char *get_string(char **to_ptr, char **from_ptr, VAR *var=var_get(start, &end, 0, 1); if (var && to == (char*) end+1) { - DBUG_PRINT("info",("var: %s -> %s", start, var->str_val)); + DBUG_PRINT("info",("var: '%s' -> '%s'", start, var->str_val)); DBUG_RETURN(var->str_val); /* return found variable value */ } } |