~patrick-crews/randgen/bug961630

« back to all changes in this revision

Viewing changes to conf/drizzle/optimizer_subquery_drizzle_mix.yy

  • Committer: eve
  • Date: 2010-08-28 13:09:43 UTC
  • mfrom: (498.1.13 randgen-fixes)
  • Revision ID: philips@eve-20100828130943-4ekym0l7tm9bmnnm
merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
133
133
join_condition_item:
134
134
    current_table_item . int_indexed = previous_table_item . int_field_name on_subquery |
135
135
    current_table_item . int_field_name = previous_table_item . int_indexed on_subquery |
136
 
    current_table_item . `col_char_key` = previous_table_item . char_field_name on_subquery |
137
 
    current_table_item . char_field_name = previous_table_item . `col_char_key` on_subquery ;
 
136
    current_table_item . char_indexed = previous_table_item . char_field_name on_subquery |
 
137
    current_table_item . char_field_name = previous_table_item . char_indexed on_subquery ;
138
138
 
139
139
on_subquery:
140
140
    |||||||||||||||||||| { $subquery_idx += 1 ; $subquery_tables=0 ; ""} and_or general_subquery ;
327
327
subquery_join_condition_item:
328
328
    subquery_current_table_item . int_field_name = subquery_previous_table_item . int_indexed subquery_on_subquery |
329
329
    subquery_current_table_item . int_indexed = subquery_previous_table_item . int_field_name subquery_on_subquery |
330
 
    subquery_current_table_item . `col_char_key` = subquery_previous_table_item . char_field_name subquery_on_subquery |
331
 
    subquery_current_table_item . char_field_name = subquery_previous_table_item . `col_char_key` subquery_on_subquery ;
 
330
    subquery_current_table_item . char_indexed = subquery_previous_table_item . char_field_name subquery_on_subquery |
 
331
    subquery_current_table_item . char_field_name = subquery_previous_table_item . char_indexed subquery_on_subquery ;
332
332
 
333
333
subquery_on_subquery:
334
334
    |||||||||||||||||||| { $child_subquery_idx += 1 ; $child_subquery_tables=0 ; ""} and_or general_child_subquery ;
483
483
child_subquery_join_condition_item:
484
484
    child_subquery_current_table_item . int_field_name = child_subquery_previous_table_item . int_indexed |
485
485
    child_subquery_current_table_item . int_indexed = child_subquery_previous_table_item . int_field_name |
486
 
    child_subquery_current_table_item . `col_char_key` = child_subquery_previous_table_item . char_field_name |
487
 
    child_subquery_current_table_item . char_field_name = child_subquery_previous_table_item . `col_char_key` ;
 
486
    child_subquery_current_table_item . char_indexed = child_subquery_previous_table_item . char_field_name |
 
487
    child_subquery_current_table_item . char_field_name = child_subquery_previous_table_item . char_indexed ;
488
488
 
489
489
single_child_subquery_group_by:
490
490
    | | | | | | | | | GROUP BY { child_subquery.$child_subquery_idx."_field1" } ;
519
519
 
520
520
range_predicate1_item:
521
521
         table1 . int_indexed not BETWEEN _tinyint_unsigned[invariant] AND ( _tinyint_unsigned[invariant] + _tinyint_unsigned ) |
522
 
         table1 . `col_char_key` arithmetic_operator _char[invariant]  |
 
522
         table1 . char_indexed arithmetic_operator _char[invariant]  |
523
523
         table1 . int_indexed not IN (number_list) |
524
 
         table1 . `col_char_key` not IN (char_list) |
 
524
         table1 . char_indexed not IN (char_list) |
525
525
         table1 . `pk` > _tinyint_unsigned[invariant] AND table1 . `pk` < ( _tinyint_unsigned[invariant] + _tinyint_unsigned ) |
526
526
         table1 . `col_int_key` > _tinyint_unsigned[invariant] AND table1 . `col_int_key` < ( _tinyint_unsigned[invariant] + _tinyint_unsigned ) ;
527
527
 
539
539
range_predicate2_item:
540
540
        table1 . `pk` = _tinyint_unsigned |
541
541
        table1 . `col_int_key` = _tinyint_unsigned |
542
 
        table1 . `col_char_key` = _char |
 
542
        table1 . char_indexed = _char |
543
543
        table1 . int_indexed = _tinyint_unsigned |
544
 
        table1 . `col_char_key` = _char |
 
544
        table1 . char_indexed = _char |
545
545
        table1 . int_indexed = existing_table_item . int_indexed |
546
 
        table1 . `col_char_key` = existing_table_item . `col_char_key` ;
 
546
        table1 . char_indexed = existing_table_item . char_indexed ;
547
547
 
548
548
################################################################################
549
549
# The number and char_list rules are for creating WHERE conditions that test   #
781
781
    `col_int_not_null` | `col_int_not_null_key` ;
782
782
 
783
783
char_field_name:
784
 
        `col_char` | `col_char_key` |
785
 
        `col_char_not_null_key` | `col_char_not_null` ;
 
784
        `col_char_10` | `col_char_10_key` | `col_text_not_null` | `col_text_not_null_key` |
 
785
        `col_text_key` | `col_text` | `col_char_10_not_null_key` | `col_char_10_not_null` |
 
786
        `col_char_1024` | `col_char_1024_key` | `col_char_1024_not_null` | `col_char_1024_not_null_key` ;
786
787
 
787
788
char_field_name_disabled:
788
789
# need to explore enum more before enabling this
791
792
int_indexed:
792
793
    `pk` | `col_int_key` | `col_bigint_key` | `col_int_not_null_key` ;
793
794
 
 
795
char_indexed:
 
796
    `col_char_1024_key` | `col_char_1024_not_null_key` |
 
797
    `col_char_10_key` | `col_char_10_not_null_key` ;
 
798
 
794
799
################################################################################
795
800
# We define LIMIT_rows in this fashion as LIMIT values can differ depending on      #
796
801
# how large the LIMIT is - LIMIT 2 = LIMIT 9 != LIMIT 19                       #