Given a table with a column
polygon geography(Polygon,4326)
I want to add another column
bounding_box geography(Polygon,4326)
that accurately represents the bounding box of the polygon column. The functions ST_Extent and ST_Envelope create bounding boxes, but they only accept and return geometries, so using them means that the bounding_box assignment looks something like bounding_box = geography::ST_Envelope(geometry::polygon). I am concerned about the loss of accuracy. If I do a point-in-poly query on bounding_box before doing an ST_Covers query on polygon, is it possible I will not get some hits that I should be getting because the bounding_box loses some of the size it should have in the conversion back and forth between types?
So my questions are:
- Is there any accuracy lost in 
geography::ST_Envelope(geometry::polygon)? - If so, what is a more accurate solution?
 
P.S. The reason for the bounding_box column is so it can be indexed. The values in the polygon column are too big to be indexed. The point-in-poly query would look like this:
find_point && bounding_box AND ST_Covers(polygon, find_point)
where find_point is of type geography(Point,4326).