In this paper, we propose a spatial query language, called GSQL, to handle complex spatial objects such as points, fines, rectangles, or polygons. To implement the spatial operators such as nearest, furthest, intersect, cover, adjacent to, end at, and distance, we present a two-phase query processing technique consisting of a filter phase and a refinement phase. The filter phase is based on spatial access methods. However, the filter phase does not exactly evaluate the query and yields a set of candidate objects which may fulfil the query condition. Therefore, the candidate objects have to be examined in the refinement phase. This phase applies complex algorithms used in the field of computational geometry to the original spatial objects and detects exactly those objects finally fulfilling the query condition.