(please start a new thread in the future rather than replying to an existing one)
You cannot query on b and use an index on (a,b) as you observed. However, you can have two indexes:
index1(a)
index2(b)
Postgres will be able to combine those when needed in the case where your WHERE clause needs to filter by both columns. So then you no longer need the two-column index.
Cheers,
Greg