Implement like range index filtering
Hey! Have some more untested code! This lets the range filter be used with the like operator. Is ~~ the right thing to test the operator against? I don't really see a list of these things anywhere. I still need to test this and write some automated tests for it. I'm not exactly confident that the logic is all there. I've also never really written anything in python. Could I get a code review?
The way it's implemented here isn't super straightforward.. I felt like I had to logic my way through what happens when the range of the scan is located at different points compared to the range of the index. Ideally it would be as easy as described in the first comment here: https://github.com/postgres/postgres/blob/master/src/backend/utils/adt/like_support.c but I didn't want to deal with collation issues. Since we are locked to the C collation I guess I could have made a python method to do something like make_greater_string in that like_support.c file. I don't know.
Oh ya.. I guess I could also pull out that re.compile call into a constant.