Provably Efficient Q-learning with Function Approximation via Distribution Shift Error Checking Oracle