~mdcallag/+junk/5.1-map

« back to all changes in this revision

Viewing changes to sql/partition_info.cc

  • Committer: msvensson at pilot
  • Date: 2007-04-24 09:11:45 UTC
  • mfrom: (2469.1.106)
  • Revision ID: sp1r-msvensson@pilot.blaudden-20070424091145-10463
Merge pilot.blaudden:/home/msvensson/mysql/my51-m-mysql_upgrade
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint

Show diffs side-by-side

added added

removed removed

Lines of Context:
187
187
    my_error(ER_PARTITIONS_MUST_BE_DEFINED_ERROR, MYF(0), error_string);
188
188
    goto end;
189
189
  }
190
 
  if (no_parts == 0)
191
 
    no_parts= file->get_default_no_partitions(info);
 
190
 
 
191
  if ((no_parts == 0) &&
 
192
      ((no_parts= file->get_default_no_partitions(info)) == 0))
 
193
  {
 
194
    my_error(ER_PARTITION_NOT_DEFINED_ERROR, MYF(0), "partitions");
 
195
    goto end;
 
196
  }
 
197
 
192
198
  if (unlikely(no_parts > MAX_PARTITIONS))
193
199
  {
194
200
    my_error(ER_TOO_MANY_PARTITIONS_ERROR, MYF(0));
753
759
  }
754
760
  if (unlikely(set_up_defaults_for_partitioning(file, info, (uint)0)))
755
761
    goto end;
756
 
  tot_partitions= get_tot_partitions();
 
762
  if (!(tot_partitions= get_tot_partitions()))
 
763
  {
 
764
    my_error(ER_PARTITION_NOT_DEFINED_ERROR, MYF(0), "partitions");
 
765
    goto end;
 
766
  }
757
767
  if (unlikely(tot_partitions > MAX_PARTITIONS))
758
768
  {
759
769
    my_error(ER_TOO_MANY_PARTITIONS_ERROR, MYF(0));
776
786
      partition_element *part_elem= part_it++;
777
787
      if (part_elem->engine_type == NULL)
778
788
        part_elem->engine_type= default_engine_type;
 
789
      if (thd->variables.sql_mode & MODE_NO_DIR_IN_CREATE)
 
790
        part_elem->data_file_name= part_elem->index_file_name= 0;
779
791
      if (!is_sub_partitioned())
780
792
      {
781
793
        if (check_table_name(part_elem->partition_name,
849
861
{
850
862
  char buf[100];
851
863
  char *buf_ptr= (char*)&buf;
852
 
  my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->read_set);
853
 
 
854
 
  if (part_expr->null_value)
855
 
    buf_ptr= (char*)"NULL";
 
864
  TABLE_LIST table_list;
 
865
 
 
866
  bzero(&table_list, sizeof(table_list));
 
867
  table_list.db= table->s->db.str;
 
868
  table_list.table_name= table->s->table_name.str;
 
869
 
 
870
  if (check_single_table_access(current_thd,
 
871
                                SELECT_ACL, &table_list, TRUE))
 
872
    my_message(ER_NO_PARTITION_FOR_GIVEN_VALUE,
 
873
               ER(ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT), MYF(0));
856
874
  else
857
 
    longlong2str(err_value, buf,
858
 
                 part_expr->unsigned_flag ? 10 : -10);
859
 
  my_error(ER_NO_PARTITION_FOR_GIVEN_VALUE, MYF(0), buf_ptr);
860
 
  dbug_tmp_restore_column_map(table->read_set, old_map);
 
875
  {
 
876
    my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->read_set);
 
877
    if (part_expr->null_value)
 
878
      buf_ptr= (char*)"NULL";
 
879
    else
 
880
      longlong2str(err_value, buf,
 
881
                   part_expr->unsigned_flag ? 10 : -10);
 
882
    my_error(ER_NO_PARTITION_FOR_GIVEN_VALUE, MYF(0), buf_ptr);
 
883
    dbug_tmp_restore_column_map(table->read_set, old_map);
 
884
  }
861
885
}
862
886
/*
863
887
  Set up buffers and arrays for fields requiring preparation