'Tests to make sure cached metadata is updated when an invalidated prepared statement is reprepared.
@since 2.7.0
@jira_ticket PYTHON-621
Prior to this fix, the request would blow up with a protocol error when the result was decoded expecting a different
number of columns.'

@unittest.skip
def test_invalidated_result_metadata(self):

    s = self.session
    s.result_factory = tuple_factory
    table = ('test1rf.%s' % self._testMethodName.lower())
    s.execute(('DROP    TABLE    IF    EXISTS    %s' % table))
    s.execute(('CREATE    TABLE    %s    (k    int    PRIMARY    KEY,    a    int,    b    int,    c    int)' % table))
    s.execute(('INSERT    INTO    %s    (k,    a,    b,    c)    VALUES    (0,    0,    0,    0)' % table))
    wildcard_prepared = s.prepare(('SELECT    *    FROM    %s' % table))
    original_result_metadata = wildcard_prepared.result_metadata
    self.assertEqual(len(original_result_metadata), 4)
    r = s.execute(wildcard_prepared)
    self.assertEqual(r[0], (0, 0, 0, 0))
    s.execute(('ALTER    TABLE    %s    DROP    c' % table))
    futures = set((s.execute_async(wildcard_prepared.bind(None)) for _ in range(200)))
    for f in futures:
        self.assertEqual(f.result()[0], (0, 0, 0))
    self.assertIsNot(wildcard_prepared.result_metadata, original_result_metadata)
    s.execute(('DROP    TABLE    %s' % table))
