summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
authorunknown <msvensson@shellback.(none)>2006-10-26 19:11:09 +0200
committerunknown <msvensson@shellback.(none)>2006-10-26 19:11:09 +0200
commited53c394f93444e4f8a11114c0a5f3d426c6220b (patch)
tree8fc087e7abffcb85edf4f2013db15bc96241b503 /sql/sql_yacc.yy
parentb075786e0a70c05dc4ed9ffac2760a689683d532 (diff)
downloadmariadb-git-ed53c394f93444e4f8a11114c0a5f3d426c6220b.tar.gz
Bug#18888 Trying to overwrite sql/lex_hash.h during build
- As a sideeffect of the patch to generate lex_hash.h only once on the machine where the source dist was produced, a problem was found when compiling a mysqld without partition support - it would crash when looking up the lex symbols due to mismatch between lex.h and the generated lex_hash.h - Remove the ifdef for partition in lex.h - Fix minor problem with"EXPLAIN PARTITION" when not compiled with partition(existed also without the above patch) - Add test case that will be run when we don't have partition support compiled into mysqld - Return error ER_FEATURE_DISABLED if user tries to use PARTITION when there is no support for it. sql/lex.h: There should be no ifdefs of features in lex.h sql/sql_class.cc: In line with the comment in sql_yacc.yy that we want the same output from "EXPLAIN PARTITIONS.." regardless of wheter we have compiled in support for partition or not, remove the ifdef so the extra field is added to output if the DESCRIBE_PARTITIONS bit it set. Without this patch we get a crash as the code in select_describe believes the field is there. sql/sql_select.cc: Use "const" for the variable as it's a ssigned once and never changes sql/sql_yacc.yy: Don't allow PARTITION syntax oif there is no suport for partitioning mysql-test/r/not_partition.require: New BitKeeper file ``mysql-test/r/not_partition.require'' mysql-test/r/not_partition.result: New BitKeeper file ``mysql-test/r/not_partition.result'' mysql-test/t/not_partition.test: New BitKeeper file ``mysql-test/t/not_partition.test''
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r--sql/sql_yacc.yy7
1 files changed, 7 insertions, 0 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 26dea00029a..f61cc3982ad 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -3225,6 +3225,7 @@ opt_partitioning:
partitioning:
PARTITION_SYM
{
+#ifdef WITH_PARTITION_STORAGE_ENGINE
LEX *lex= Lex;
lex->part_info= new partition_info();
if (!lex->part_info)
@@ -3236,6 +3237,12 @@ partitioning:
{
lex->alter_info.flags|= ALTER_PARTITION;
}
+#else
+ my_error(ER_FEATURE_DISABLED, MYF(0),
+ "partitioning", "--with-partition");
+ YYABORT;
+#endif
+
}
partition
;