WL#5549: Support row_format per partition

Affects: Falcon-7.x   —   Status: Un-Assigned   —   Priority: Medium

While working on BUG#50300 I tried to make the 'ROW_FORMAT=X' option available
also in the 'PARTITION p ...' clause.

Proposed addition in partition definition:
partition_definition:
    PARTITION partition_name
        [VALUES 
            {LESS THAN {(expr) | MAXVALUE} 
            | 
            IN (value_list)}]
        [[STORAGE] ENGINE [=] engine_name]
        [COMMENT [=] 'comment_text' ]
        [DATA DIRECTORY [=] 'data_dir']
        [INDEX DIRECTORY [=] 'index_dir']
        [MAX_ROWS [=] max_number_of_rows]
        [MIN_ROWS [=] min_number_of_rows]
        [TABLESPACE [=] tablespace_name]
        [NODEGROUP [=] node_group_id]
>>>>>   [ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}]
        [(subpartition_definition [, subpartition_definition] ...)]

subpartition_definition:
    SUBPARTITION logical_name
        [[STORAGE] ENGINE [=] engine_name]
        [COMMENT [=] 'comment_text' ]
        [DATA DIRECTORY [=] 'data_dir']
        [INDEX DIRECTORY [=] 'index_dir']
        [MAX_ROWS [=] max_number_of_rows]
        [MIN_ROWS [=] min_number_of_rows]
        [TABLESPACE [=] tablespace_name]
        [NODEGROUP [=] node_group_id]
>>>>>   [ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}]

Also adding ROW_FORMAT column to I_S.PARTITIONS table. And if not all partitions
ROW_FORMATS are the same, report Mixed as the ROW_FORMAT in I_S.TABLES (also
SHOW TABLE STATUS).

Restriction is that all partitions must have the same HA_OPTION_PACK_RECORD.

If possible also change or at least document the SE API with more comments to be
clear that

HA_OPTION_PACK_RECORD:
    If all columns have static length then HA_OPTION_PACK_RECORD
    will not be set unless row_type is ROW_TYPE_DYNAMIC.
    If any column have dynamic length then HA_OPTION_PACK_RECORD
    will be set unless row_type is ROW_TYPE_FIXED.

handler::check_if_incompatible uses the row_type in create_info
handler::create uses the row_type in table_share (InnoDB after BUG#54679) or
table_share->db_options_in_use & HA_OPTION_PACK_RECORD (MyISAM).

Bug#11894100 will be fixed by this WL.