'Walks along a chain of aliases, promoting the first nullable join and
any joins following that. If \'must_promote\' is True, all the aliases in
the chain are promoted.'

def promote_alias_chain(self, chain, must_promote=False):

    for alias in chain:
        if self.promote_alias(alias, must_promote):
            must_promote = True
