The 'normal' position for a relative clause is immediately after the noun or nominal (called the ‘antecedent’), but it is usually possible to insert an adjunct, especially a short one like "last night", between the antecedent and the clause with no problem at all. This process is called 'postposing' which occurs whensome element (like a relative clause) is put at the end of the sentence instead of in its normal position. In the case of relative clauses, that means the clause is separated from the antecedent by some other element, like the adjunct "last night" in your first example.
The main factor leading to the choice of postposing is usually the relative 'weight' (length and complexity) of the constituents involved. Heavier clauses are generally best placed right at the end of the sentence, which is why your second example, where the relative clause is far heavier than the adjunct, is less acceptable than your first one.
Your third example with an infinitival clause at the end of the sentence is fine, but problems can arise when a relative clause is postposed over a non-finite clause, as in your last example. Relative clauses strongly resist being postposed over infinitivals, and the result is almost always unacceptable, as indeed your example is. Often, though, it is possible to postpose over a participial clause, as in I saw an official poll reported in today's paper that put Trump ahead of Clinton in the presidential race for The White House. Notice that the relative clause is considerably 'heavier' than the participial clause it is postposed over and it’s in its preferred position, at the end of the sentence.
Student or Learner