-- sla 80000
# Geometry Test Cases

CREATE TABLE GEOSPATIALPOLYGONGEOM_dt (location geometry)
ALTER TABLE GEOSPATIALPOLYGONGEOM_dt ADD id INT IDENTITY(1,1);

# Positive Test for STGeomFromText with SRID 4326
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 1 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2, 1 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))', 4326));

INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))', 4326));

INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))', 4326));

INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES (geometry::STGeomFromText('POLYGON EMPTY', 4326));


# Negative Test when SRID is not valid
# SRID should be between 0 to 999999
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES ( geometry::STGeomFromText('POLYGON((1 2, 3 7, 1 2, 1 2))') );
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES ( geometry::STGeomFromText('POLYGON((5 3, 4.5 2, 3 1, 5 3))', 1000000000 ) );
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES ( geometry::STGeomFromText('POLYGON((1 2, 3 5, 6 4, 1 2))', -1) );

# Negative Test for STGeomFromText when a coordinate is missing
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES ( geometry::STGeomFromText('POLYGON((1 2, 3 5, 6, 1 2))', 4326) );

#  Negative Test for STGeomFromText when Incorrect cast is provided
INSERT INTO GEOSPATIALPOLYGONGEOM_dt (location) VALUES ( geography::STGeomFromText('POLYGON((1 2, 3 5, 6 4, 1 2))', 4326) );

CREATE TABLE GEOSPATIALPOINTGEOM_polysr (location geometry)
ALTER TABLE GEOSPATIALPOINTGEOM_polysr ADD id INT IDENTITY(1,1);

INSERT INTO GEOSPATIALPOINTGEOM_polysr (location) VALUES (geometry::STGeomFromText('LINESTRING EMPTY', 4326));
INSERT INTO GEOSPATIALPOINTGEOM_polysr (location) VALUES ( geometry::STGeomFromText('Point(47.65100 -22.34900 )', 4326) );
INSERT INTO GEOSPATIALPOINTGEOM_polysr (location) VALUES ( geometry::STGeomFromText('Point(47.65100 -22.34900 32.546000)', 4326) );
INSERT INTO GEOSPATIALPOINTGEOM_polysr (location) VALUES ( geometry::STGeomFromText('Point(47.65100 -22.34900  NULL 32.546000)', 4326) );
INSERT INTO GEOSPATIALPOINTGEOM_polysr (location) VALUES ( geometry::STGeomFromText('Point(47.65100 -22.34900 32.546000  54.56300)', 4326) );
INSERT INTO GEOSPATIALPOINTGEOM_polysr (location) VALUES ( geometry::STGeomFromText('POINT EMPTY', 4326) );

#Test with invalid instances
CREATE TABLE GEOSPATIALPOLYGONGEOM_INVALID_dt (location geometry)
ALTER TABLE GEOSPATIALPOLYGONGEOM_INVALID_dt ADD id INT IDENTITY(1,1);

INSERT INTO GEOSPATIALPOLYGONGEOM_INVALID_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 2, 1 2, 1 2, 1 2, 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_INVALID_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 2, 1 2 3, 1 2 3, 1 2 3, 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_INVALID_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 2, 1 2 4, 1 2 4, 1 2 4, 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_INVALID_dt (location) VALUES (geometry::STGeomFromText('POLYGON((1 2, 1 2 5 6, 1 2 5 6, 1 2 5 6, 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_INVALID_dt (location) VALUES (geometry::STGeomFromText('POLYGON((7 3, 7 3, 7 3, 7 3, 7 3))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_INVALID_dt (location) VALUES (geometry::STGeomFromText('POLYGON((7 3, 7 3 4, 7 3 4, 7 3 4, 7 3))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_INVALID_dt (location) VALUES (geometry::STGeomFromText('POLYGON((7 3, 7 3 4, 7 3 4, 7 3, 7 3))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOM_INVALID_dt (location) VALUES (geometry::STGeomFromText('POLYGON((7 3, 7 3 5 4, 7 3 5 4, 7 3, 7 3))', 4326));

CREATE VIEW DimOfGeometrypolygon AS SELECT location.STAsText() AS geometry, location.STDimension() AS dimension FROM GEOSPATIALPOLYGONGEOM_dt ORDER BY id;

CREATE VIEW AreaOfGeometrypolygon AS SELECT location.STAsText() AS geometry, location.STArea() AS area FROM GEOSPATIALPOLYGONGEOM_dt ORDER BY id;

CREATE VIEW TextFromGeometrypolygon AS SELECT location.STAsText() AS text FROM GEOSPATIALPOLYGONGEOM_dt ORDER BY id;

CREATE VIEW BinaryFromGeometrypolygon AS SELECT location.STAsText() AS geometry, location.STAsBinary() AS binary FROM GEOSPATIALPOLYGONGEOM_dt ORDER BY id;

CREATE VIEW SridFromGeometrypolygon AS SELECT location.STAsText() AS geometry, location.STSrid AS srid FROM GEOSPATIALPOLYGONGEOM_dt ORDER BY id;

CREATE VIEW EmptyGeometrypolygon AS SELECT location.STAsText() AS geometry, location.STIsEmpty() AS isempty FROM GEOSPATIALPOLYGONGEOM_dt ORDER BY id;

CREATE VIEW ValidGeometrypolygon AS SELECT location.STAsText() AS geometry, location.STIsValid() AS isvalid FROM GEOSPATIALPOLYGONGEOM_dt ORDER BY id;

CREATE VIEW ClosedGeometrypolygon AS SELECT location.STAsText() AS geometry, location.STIsClosed() AS isclosed FROM GEOSPATIALPOLYGONGEOM_dt ORDER BY id;

CREATE VIEW DisjointTempGeompolygon AS SELECT p1.location.STAsText() AS geometry1, p2.location.STAsText() AS geometry2, p1.location.STDisjoint(p2.location) AS disjoints FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOM_dt p2 ORDER BY p1.id;

CREATE VIEW DistanceTempGeompolygon AS SELECT p1.location.STAsText() AS geometry1, p2.location.STAsText() AS geometry2,  CAST(STDistance( p1.location, p2.location ) AS numeric(20, 6)) AS distance FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOM_dt p2 ORDER BY p1.id;

CREATE VIEW IntersectsTempGeompolygon AS SELECT p1.location.STAsText() AS geometry1, p2.location.STAsText() AS geometry2, p1.location.STIntersects(p2.location) AS interesecting FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOM_dt p2 ORDER BY p1.id;

CREATE VIEW EqualsTempGeompolygon AS SELECT p1.location.STAsText() AS geometry1, p2.location.STAsText() AS geometry2, p1.location.STEquals(p2.location) AS equals FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOM_dt p2 ORDER BY p1.id;

CREATE VIEW ContainTempGeompolygon AS SELECT p1.location.STAsText() AS geometry1, p2.location.STAsText() AS geometry2, p1.location.STContains(p2.location) AS contain FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOM_dt p2 ORDER BY p1.id;

CREATE VIEW equals_opgeompolygon AS SELECT p1.location AS point FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOM_dt p2 WHERE p1.location = p2.location ORDER BY p1.id;

CREATE VIEW notequal_opgeompolygon AS SELECT p1.location AS point FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOM_dt p2 WHERE p1.location <> p2.location ORDER BY p1.id;


CREATE VIEW DisjointTempGeompolysr AS SELECT p1.location.STAsText() AS geometry1, p2.location.STAsText() AS geometry2, p1.location.STDisjoint(p2.location) AS disjoints FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOINTGEOM_polysr p2 ORDER BY p1.id;

CREATE VIEW DistanceTempGeompolysr AS SELECT p1.location.STAsText() AS geometry1, p2.location.STAsText() AS geometry2,  CAST(STDistance( p1.location, p2.location ) AS numeric(20, 6)) AS distance FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOINTGEOM_polysr p2 ORDER BY p1.id;

CREATE VIEW IntersectsTempGeompolysr AS SELECT p1.location.STAsText() AS geometry1, p2.location.STAsText() AS geometry2, p1.location.STIntersects(p2.location) AS interesecting FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOINTGEOM_polysr p2 ORDER BY p1.id;

CREATE VIEW EqualsTempGeompolysr AS SELECT p1.location.STAsText() AS geometry1, p2.location.STAsText() AS geometry2, p1.location.STEquals(p2.location) AS equals FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOINTGEOM_polysr p2 ORDER BY p1.id;

CREATE VIEW ContainTempGeompolysr AS SELECT p1.location.STAsText() AS geometry1, p2.location.STAsText() AS geometry2, p1.location.STContains(p2.location) AS contain FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOINTGEOM_polysr p2 ORDER BY p1.id;

CREATE VIEW equals_opgeompolysr AS SELECT p1.location AS point FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOINTGEOM_polysr p2 WHERE p1.location = p2.location ORDER BY p1.id;

CREATE VIEW notequal_opgeompolysr AS SELECT p1.location AS point FROM GEOSPATIALPOLYGONGEOM_dt p1 CROSS JOIN GEOSPATIALPOINTGEOM_polysr p2 WHERE p1.location <> p2.location ORDER BY p1.id;

CREATE VIEW PolygonGeomFromText AS SELECT geometry::STPolyFromText('POLYGON((3 5, 2 4, 3 5, 3 5))', 4326) AS geom1, geometry::STPolyFromText('POLYGON((1 3, 5 7, 4 5, 1 3))', 4326) AS geom2;


CREATE TABLE geometryAsVarbinarypolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geometryData VARBINARY(2000) );

INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 1 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2, 1 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))', 4326) AS VARBINARY(2000)));

INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))', 4326) AS VARBINARY(2000)));

INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))', 4326) AS VARBINARY(2000)));

INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))', 4326) AS VARBINARY(2000)));

INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))', 4326) AS VARBINARY(2000)));

INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))', 4326) AS VARBINARY(2000)));
INSERT INTO geometryAsVarbinarypolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON EMPTY', 4326) AS VARBINARY(2000)));

CREATE TABLE geometryAsVarcharpolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geometryData VARCHAR(500) );

INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 1 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2, 1 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))', 4326) AS VARCHAR(500)));

INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))', 4326) AS VARCHAR(500)));

INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))', 4326) AS VARCHAR(500)));

INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))', 4326) AS VARCHAR(500)));

INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))', 4326) AS VARCHAR(500)));

INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))', 4326) AS VARCHAR(500)));
INSERT INTO geometryAsVarcharpolygon (geometryData) VALUES (CAST(geometry::STGeomFromText('POLYGON EMPTY', 4326) AS VARCHAR(500)));

CREATE TABLE CharAsVarbinaryGeompolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geometryData VARBINARY(2000) );

INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1, 1 2, 2 2, 1 1))' AS CHAR(50)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))' AS CHAR(50)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1, 1 2 3, 2 2, 1 1))' AS CHAR(50)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))' AS CHAR(50)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))' AS CHAR(100)), 4326) AS VARBINARY(2000)));

INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))' AS CHAR(50)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))' AS CHAR(50)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))' AS CHAR(150)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))' AS CHAR(200)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))' AS CHAR(200)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))' AS CHAR(200)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))' AS CHAR(300)), 4326) AS VARBINARY(2000)));

INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))' AS CHAR(200)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))' AS CHAR(200)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))' AS CHAR(400)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))' AS CHAR(400)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))' AS CHAR(500)), 4326) AS VARBINARY(2000)));

INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))' AS CHAR(400)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))' AS CHAR(400)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));

INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))' AS CHAR(500)), 4326) AS VARBINARY(2000)));

INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeompolygon (geometryData) VALUES (CAST(geometry::STGeomFromText(CAST('POLYGON EMPTY' AS CHAR(50)), 4326) AS VARBINARY(2000)));


CREATE TABLE VarbinaryAsgeometrypolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geometryData geometry );

INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 1 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2, 1 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))', 4326) AS VARBINARY(2000)) AS geometry));

INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))', 4326) AS VARBINARY(2000)) AS geometry));

INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))', 4326) AS VARBINARY(2000)) AS geometry));

INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))', 4326) AS VARBINARY(2000)) AS geometry));

INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))', 4326) AS VARBINARY(2000)) AS geometry));

INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))', 4326) AS VARBINARY(2000)) AS geometry));
INSERT INTO VarbinaryAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON EMPTY', 4326) AS VARBINARY(2000)) AS geometry));

CREATE TABLE CharAsgeometrypolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geometryData geometry );

INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1, 1 2, 2 2, 1 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1, 1 2 3, 2 2, 1 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))' AS  geometry));

INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))' AS  geometry));

INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))' AS  geometry));

INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))' AS  geometry));

INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))' AS  geometry));

INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))' AS  geometry));
INSERT INTO CharAsgeometrypolygon (geometryData) VALUES (CAST('POLYGON EMPTY' AS  geometry));

CREATE TABLE VarCharAsgeometrypolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geometryData geometry );

INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1, 1 2, 2 2, 1 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1, 1 2 3, 2 2, 1 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))' AS VARCHAR(500)) AS geometry));

INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))' AS VARCHAR(500)) AS geometry));

INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))' AS VARCHAR(500)) AS geometry));

INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))' AS VARCHAR(500)) AS geometry));

INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))' AS VARCHAR(500)) AS geometry));

INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))' AS VARCHAR(500)) AS geometry));
INSERT INTO VarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST('POLYGON EMPTY' AS VARCHAR(500)) AS geometry));

CREATE TABLE GeoVarCharAsgeometrypolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geometryData geometry );

INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 1 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2, 1 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))', 4326) AS VARCHAR(500)) AS geometry));

INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))', 4326) AS VARCHAR(500)) AS geometry));

INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))', 4326) AS VARCHAR(500)) AS geometry));

INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))', 4326) AS VARCHAR(500)) AS geometry));

INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))', 4326) AS VARCHAR(500)) AS geometry));

INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))', 4326) AS VARCHAR(500)) AS geometry));
INSERT INTO GeoVarCharAsgeometrypolygon (geometryData) VALUES (CAST(CAST(geometry::STGeomFromText('POLYGON EMPTY', 4326) AS VARCHAR(500)) AS geometry));

CREATE TABLE geometryToByteapolygon (ID INT PRIMARY KEY, geo_polygon geometry );

INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (1, geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 1 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (2, geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (3, geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (4, geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2, 1 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (5, geometry::STGeomFromText('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (6, geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (7, geometry::STGeomFromText('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (8, geometry::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (9, geometry::STGeomFromText('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (10, geometry::STGeomFromText('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))', 4326));

INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (11, geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (12, geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (13, geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (14, geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (15, geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (16, geometry::STGeomFromText('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (17, geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (18, geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (19, geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (20, geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (21, geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (22, geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))', 4326));

INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (23, geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (24, geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (25, geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (26, geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (27, geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (28, geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (29, geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (30, geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (31, geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (32, geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (33, geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))', 4326));

INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (34, geometry::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (35, geometry::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (36, geometry::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (37, geometry::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (38, geometry::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (39, geometry::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (40, geometry::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (41, geometry::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (42, geometry::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (43, geometry::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (44, geometry::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))', 4326));

INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (45, geometry::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (46, geometry::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (47, geometry::STGeomFromText('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (48, geometry::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (49, geometry::STGeomFromText('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (50, geometry::STGeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (51, geometry::STGeomFromText('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (52, geometry::STGeomFromText('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (53, geometry::STGeomFromText('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))', 4326));

INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (54, geometry::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (55, geometry::STGeomFromText('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (56, geometry::STGeomFromText('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (57, geometry::STGeomFromText('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (58, geometry::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (59, geometry::STGeomFromText('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))', 4326));
INSERT INTO geometryToByteapolygon (ID, geo_polygon) VALUES (60, geometry::STGeomFromText('POLYGON EMPTY', 4326));


# geography Test Cases

CREATE TABLE GEOSPATIALPOLYGONGEOG_dt (location geography)
ALTER TABLE GEOSPATIALPOLYGONGEOG_dt ADD id INT IDENTITY(1,1);

# Positive Test for STGeomFromText with SRID 4326
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 1 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2, 1 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))', 4326));

INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))', 4326));

INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))', 4326));

INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES (geography::STGeomFromText('POLYGON EMPTY', 4326));

# Negative Test when SRID is not valid
# SRID should be between 0 to 999999
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES ( geography::STGeomFromText('POLYGON((1 2, 3 7, 1 2, 1 2))') );
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES ( geography::STGeomFromText('POLYGON((5 3, 4.5 2, 3 1, 5 3))', 1000000000 ) );
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES ( geography::STGeomFromText('POLYGON((1 2, 3 5, 6 4, 1 2))', -1) );

# Negative Test for STGeomFromText when a coordinate is missing
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES ( geography::STGeomFromText('POLYGON((1 2, 3 5, 6, 1 2))', 4326) );

#  Negative Test for STGeomFromText when Incorrect cast is provided
INSERT INTO GEOSPATIALPOLYGONGEOG_dt (location) VALUES ( geometry::STGeomFromText('POLYGON((1 2, 3 5, 6 4, 1 2))', 4326) );

CREATE TABLE geospatialpointxgeog_polysr (location geography)
ALTER TABLE geospatialpointxgeog_polysr ADD id INT IDENTITY(1,1);

INSERT INTO geospatialpointxgeog_polysr (location) VALUES ( geography::STGeomFromText('LINESTRING EMPTY', 4326));
INSERT INTO geospatialpointxgeog_polysr (location) VALUES ( geography::STGeomFromText('Point(47.65100 -22.34900 )', 4326) );
INSERT INTO geospatialpointxgeog_polysr (location) VALUES ( geography::STGeomFromText('Point(47.65100 -22.34900 32.546000)', 4326) );
INSERT INTO geospatialpointxgeog_polysr (location) VALUES ( geography::STGeomFromText('Point(47.65100 -22.34900  NULL 32.546000)', 4326) );
INSERT INTO geospatialpointxgeog_polysr (location) VALUES ( geography::STGeomFromText('Point(47.65100 -22.34900 32.546000  54.56300)', 4326) );
INSERT INTO geospatialpointxgeog_polysr (location) VALUES ( geography::STGeomFromText('POINT EMPTY', 4326) );

#Test with invalid instances
CREATE TABLE GEOSPATIALPOLYGONGEOG_INVALID_dt (location geography)
ALTER TABLE GEOSPATIALPOLYGONGEOG_INVALID_dt ADD id INT IDENTITY(1,1);

INSERT INTO GEOSPATIALPOLYGONGEOG_INVALID_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 2, 1 2, 1 2, 1 2, 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_INVALID_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 2, 1 2 3, 1 2 3, 1 2 3, 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_INVALID_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 2, 1 2 4, 1 2 4, 1 2 4, 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_INVALID_dt (location) VALUES (geography::STGeomFromText('POLYGON((1 2, 1 2 5 6, 1 2 5 6, 1 2 5 6, 1 2))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_INVALID_dt (location) VALUES (geography::STGeomFromText('POLYGON((7 3, 7 3, 7 3, 7 3, 7 3))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_INVALID_dt (location) VALUES (geography::STGeomFromText('POLYGON((7 3, 7 3 4, 7 3 4, 7 3 4, 7 3))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_INVALID_dt (location) VALUES (geography::STGeomFromText('POLYGON((7 3, 7 3 4, 7 3 4, 7 3, 7 3))', 4326));
INSERT INTO GEOSPATIALPOLYGONGEOG_INVALID_dt (location) VALUES (geography::STGeomFromText('POLYGON((7 3, 7 3 5 4, 7 3 5 4, 7 3, 7 3))', 4326));

CREATE VIEW DimOfGeographypolygon AS SELECT location.STAsText() AS geography, location.STDimension() AS dimension FROM GEOSPATIALPOLYGONGEOG_dt ORDER BY id;

CREATE VIEW AreaOfGeographypolygon AS SELECT location.STAsText() AS geography, location.STArea() AS area FROM GEOSPATIALPOLYGONGEOG_dt ORDER BY id;

CREATE VIEW TextFromGeographypolygon AS SELECT location.STAsText() AS text FROM GEOSPATIALPOLYGONGEOG_dt ORDER BY id;

CREATE VIEW BinaryFromGeographypolygon AS SELECT location.STAsText() AS geography, location.STAsBinary() AS binary FROM GEOSPATIALPOLYGONGEOG_dt ORDER BY id;

CREATE VIEW SridFromGeographypolygon AS SELECT location.STAsText() AS geography, location.STSrid AS srid FROM GEOSPATIALPOLYGONGEOG_dt ORDER BY id;

CREATE VIEW EmptyGeographypolygon AS SELECT location.STAsText() AS geography, location.STIsEmpty() AS isempty FROM GEOSPATIALPOLYGONGEOG_dt ORDER BY id;

CREATE VIEW ValidGeographypolygon AS SELECT location.STAsText() AS geography, location.STIsValid() AS isvalid FROM GEOSPATIALPOLYGONGEOG_dt ORDER BY id;

CREATE VIEW ClosedGeographypolygon AS SELECT location.STAsText() AS geography, location.STIsClosed() AS isclosed FROM GEOSPATIALPOLYGONGEOG_dt ORDER BY id;

CREATE VIEW DisjointTempGeogpolygon AS SELECT p1.location.STAsText() AS geography1, p2.location.STAsText() AS geography2, p1.location.STDisjoint(p2.location) AS disjoints FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOG_dt p2 ORDER BY p1.id;

CREATE VIEW DistanceTempGeogpolygon AS SELECT p1.location.STAsText() AS geography1, p2.location.STAsText() AS geography2,  CAST(STDistance( p1.location, p2.location ) AS numeric(20, 6)) AS distance FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOG_dt p2 ORDER BY p1.id;

CREATE VIEW IntersectsTempGeogpolygon AS SELECT p1.location.STAsText() AS geography1, p2.location.STAsText() AS geography2, p1.location.STIntersects(p2.location) AS interesecting FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOG_dt p2 ORDER BY p1.id;

CREATE VIEW EqualsTempGeogpolygon AS SELECT p1.location.STAsText() AS geography1, p2.location.STAsText() AS geography2, p1.location.STEquals(p2.location) AS equals FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOG_dt p2 ORDER BY p1.id;

CREATE VIEW ContainTempGeogpolygon AS SELECT p1.location.STAsText() AS geography1, p2.location.STAsText() AS geography2, p1.location.STContains(p2.location) AS contain FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOG_dt p2 ORDER BY p1.id;

CREATE VIEW equals_opgeogpolygon AS SELECT p1.location AS point FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOG_dt p2 WHERE p1.location = p2.location ORDER BY p1.id;

CREATE VIEW notequal_opgeogpolygon AS SELECT p1.location AS point FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN GEOSPATIALPOLYGONGEOG_dt p2 WHERE p1.location <> p2.location ORDER BY p1.id;


CREATE VIEW DisjointTempGeogpolysr AS SELECT p1.location.STAsText() AS geography1, p2.location.STAsText() AS geography2, p1.location.STDisjoint(p2.location) AS disjoints FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN geospatialpointxgeog_polysr p2 ORDER BY p1.id;

CREATE VIEW DistanceTempGeogpolysr AS SELECT p1.location.STAsText() AS geography1, p2.location.STAsText() AS geography2,  CAST(STDistance( p1.location, p2.location ) AS numeric(20, 6)) AS distance FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN geospatialpointxgeog_polysr p2 ORDER BY p1.id;

CREATE VIEW IntersectsTempGeogpolysr AS SELECT p1.location.STAsText() AS geography1, p2.location.STAsText() AS geography2, p1.location.STIntersects(p2.location) AS interesecting FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN geospatialpointxgeog_polysr p2 ORDER BY p1.id;

CREATE VIEW EqualsTempGeogpolysr AS SELECT p1.location.STAsText() AS geography1, p2.location.STAsText() AS geography2, p1.location.STEquals(p2.location) AS equals FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN geospatialpointxgeog_polysr p2 ORDER BY p1.id;

CREATE VIEW ContainTempGeogpolysr AS SELECT p1.location.STAsText() AS geography1, p2.location.STAsText() AS geography2, p1.location.STContains(p2.location) AS contain FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN geospatialpointxgeog_polysr p2 ORDER BY p1.id;

CREATE VIEW equals_opgeogpolysr AS SELECT p1.location AS point FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN geospatialpointxgeog_polysr p2 WHERE p1.location = p2.location ORDER BY p1.id;

CREATE VIEW notequal_opgeogpolysr AS SELECT p1.location AS point FROM GEOSPATIALPOLYGONGEOG_dt p1 CROSS JOIN geospatialpointxgeog_polysr p2 WHERE p1.location <> p2.location ORDER BY p1.id;

CREATE VIEW PolygonGeogFromText AS SELECT geography::STPolyFromText('POLYGON((3 5, 2 4, 3 5, 3 5))', 4326) AS geom1, geography::STPolyFromText('POLYGON((1 3, 5 7, 4 5, 1 3))', 4326) AS geom2;



CREATE TABLE geographyAsVarbinarypolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geographyData VARBINARY(2000) );

INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 1 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2, 1 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))', 4326) AS VARBINARY(2000)));

INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))', 4326) AS VARBINARY(2000)));

INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))', 4326) AS VARBINARY(2000)));

INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))', 4326) AS VARBINARY(2000)));

INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))', 4326) AS VARBINARY(2000)));

INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))', 4326) AS VARBINARY(2000)));
INSERT INTO geographyAsVarbinarypolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON EMPTY', 4326) AS VARBINARY(2000)));

CREATE TABLE geographyAsVarcharpolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geographyData VARCHAR(500) );

INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 1 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2, 1 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))', 4326) AS VARCHAR(500)));

INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))', 4326) AS VARCHAR(500)));

INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))', 4326) AS VARCHAR(500)));

INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))', 4326) AS VARCHAR(500)));

INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))', 4326) AS VARCHAR(500)));

INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))', 4326) AS VARCHAR(500)));
INSERT INTO geographyAsVarcharpolygon (geographyData) VALUES (CAST(geography::STGeomFromText('POLYGON EMPTY', 4326) AS VARCHAR(500)));

CREATE TABLE CharAsVarbinaryGeogpolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geographyData VARBINARY(2000) );

INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1, 1 2, 2 2, 1 1))' AS CHAR(50)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))' AS CHAR(50)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1, 1 2 3, 2 2, 1 1))' AS CHAR(50)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))' AS CHAR(50)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))' AS CHAR(100)), 4326) AS VARBINARY(2000)));

INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))' AS CHAR(50)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))' AS CHAR(50)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))' AS CHAR(150)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))' AS CHAR(200)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))' AS CHAR(200)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))' AS CHAR(200)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))' AS CHAR(300)), 4326) AS VARBINARY(2000)));

INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))' AS CHAR(200)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))' AS CHAR(200)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))' AS CHAR(400)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))' AS CHAR(400)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))' AS CHAR(500)), 4326) AS VARBINARY(2000)));

INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))' AS CHAR(300)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))' AS CHAR(400)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))' AS CHAR(400)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));

INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))' AS CHAR(500)), 4326) AS VARBINARY(2000)));

INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))' AS CHAR(500)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))' AS CHAR(100)), 4326) AS VARBINARY(2000)));
INSERT INTO CharAsVarbinaryGeogpolygon (geographyData) VALUES (CAST(geography::STGeomFromText(CAST('POLYGON EMPTY' AS CHAR(50)), 4326) AS VARBINARY(2000)));


CREATE TABLE VarbinaryAsgeographypolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geographyData geography );

INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 1 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2, 1 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))', 4326) AS VARBINARY(2000)) AS geography));

INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))', 4326) AS VARBINARY(2000)) AS geography));

INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))', 4326) AS VARBINARY(2000)) AS geography));

INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))', 4326) AS VARBINARY(2000)) AS geography));

INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))', 4326) AS VARBINARY(2000)) AS geography));

INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))', 4326) AS VARBINARY(2000)) AS geography));
INSERT INTO VarbinaryAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON EMPTY', 4326) AS VARBINARY(2000)) AS geography));

CREATE TABLE CharAsgeographypolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geographyData geography );

INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1, 1 2, 2 2, 1 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1, 1 2 3, 2 2, 1 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))' AS  geography));

INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))' AS  geography));

INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))' AS  geography));

INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))' AS  geography));

INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))' AS  geography));

INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))' AS  geography));
INSERT INTO CharAsgeographypolygon (geographyData) VALUES (CAST('POLYGON EMPTY' AS  geography));

CREATE TABLE VarCharAsgeographypolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geographyData geography );

INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1, 1 2, 2 2, 1 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1, 1 2 3, 2 2, 1 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))' AS VARCHAR(500)) AS geography));

INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))' AS VARCHAR(500)) AS geography));

INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))' AS VARCHAR(500)) AS geography));

INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))' AS VARCHAR(500)) AS geography));

INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))' AS VARCHAR(500)) AS geography));

INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))' AS VARCHAR(500)) AS geography));
INSERT INTO VarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST('POLYGON EMPTY' AS VARCHAR(500)) AS geography));

CREATE TABLE GeoVarCharAsgeographypolygon ( ID INT IDENTITY(1,1) PRIMARY KEY, geographyData geography );

INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 1 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2, 1 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))', 4326) AS VARCHAR(500)) AS geography));

INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))', 4326) AS VARCHAR(500)) AS geography));

INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))', 4326) AS VARCHAR(500)) AS geography));

INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))', 4326) AS VARCHAR(500)) AS geography));

INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 5, 4 5, 4 4),(6 6, 7 6, 7 7, 6 7, 6 6),(8 8, 9 8, 9 9, 8 9, 8 8),(1 4, 2 4, 2 5, 1 5, 1 4),(4 1, 5 1, 5 2, 4 2, 4 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1, 2 1 2, 2 2 3, 1 2 4, 1 1),(3 3 1, 4 3, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6, 5 6 4, 5 5 1),(7 7, 8 7 2, 8 8 3, 7 8, 7 7),(2 5 1, 3 5 2, 3 6 3, 2 6, 2 5 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))', 4326) AS VARCHAR(500)) AS geography));

INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))', 4326) AS VARCHAR(500)) AS geography));
INSERT INTO GeoVarCharAsgeographypolygon (geographyData) VALUES (CAST(CAST(geography::STGeomFromText('POLYGON EMPTY', 4326) AS VARCHAR(500)) AS geography));

CREATE TABLE geographyToByteapolygon (ID INT PRIMARY KEY, geo_polygon geography );

INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (1, geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 1 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (2, geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 1 1 2))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (3, geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 NULL, 2 2 NULL, 1 1 NULL))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (4, geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2, 1 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (5, geography::STGeomFromText('POLYGON((1 1 2, 1 2, 2 2 4, 1 1 2))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (6, geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 NULL, 1 1 NULL))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (7, geography::STGeomFromText('POLYGON((1 1 2, 1 2 NULL, 2 2 4, 1 1 2))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (8, geography::STGeomFromText('POLYGON((1 1 NULL, 1 2 3, 2 2 4, 1 1 NULL))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (9, geography::STGeomFromText('POLYGON((0 0, 0 5 NULL, 5 5 3, 0 0))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (10, geography::STGeomFromText('POLYGON((0 0 1, 0 5 NULL, 5 5, 0 0 1))', 4326));

INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (11, geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (12, geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2 3))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (13, geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (14, geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (15, geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (16, geography::STGeomFromText('POLYGON((0 0, 0 2 2, 1 3, 2 2 4, 2 0 NULL, 0 0))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (17, geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (18, geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (19, geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7 2, 0 3, 0 1 9, 0 0))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (20, geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (21, geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (22, geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0))', 4326));

INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (23, geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (24, geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (25, geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (26, geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (27, geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (28, geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2 2, 2 2, 2 1, 1 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (29, geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (30, geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (31, geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (32, geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3 2, 2 3 4, 2 2 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (33, geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL))', 4326));

INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (34, geography::STGeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1),(0.2 0.2, 0.3 0.2, 0.3 0.3, 0.2 0.3, 0.2 0.2),(0.4 0.4, 0.5 0.4, 0.5 0.5, 0.4 0.5, 0.4 0.4))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (35, geography::STGeomFromText('POLYGON((1 1 2, 1 2 3, 2 2 4, 2 1 5, 1 1 2),(0.2 0.2 1, 0.3 0.2 2, 0.3 0.3 3, 0.2 0.3 4, 0.2 0.2 1),(0.4 0.4 1, 0.5 0.4 2, 0.5 0.5 3, 0.4 0.5 4, 0.4 0.4 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (36, geography::STGeomFromText('POLYGON((1 1, 1 2 3, 2 2 NULL, 2 1 5, 1 1),(0.2 0.2 NULL, 0.3 0.2 2, 0.3 0.3, 0.2 0.3 4, 0.2 0.2 NULL),(0.4 0.4 1, 0.5 0.4 NULL, 0.5 0.5 3, 0.4 0.5, 0.4 0.4 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (37, geography::STGeomFromText('POLYGON((0 0, 0 2, 1 3, 2 2, 2 0, 0 0),(0.5 0.5, 0.5 1, 1 1, 1 0.5, 0.5 0.5),(1.5 1.5, 1.5 2, 2 2, 2 1.5, 1.5 1.5))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (38, geography::STGeomFromText('POLYGON((0 0 1, 0 2 2, 1 3 3, 2 2 NULL, 2 0 5, 0 0 1),(0.5 0.5 1, 0.5 1 NULL, 1 1 3, 1 0.5 4, 0.5 0.5 1),(1.5 1.5 1, 1.5 2 2, 2 2 NULL, 2 1.5 4, 1.5 1.5 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (39, geography::STGeomFromText('POLYGON((0 0, 1 1, 2 1, 3 2, 3 3, 2 4, 1 4, 0 3, 0 1, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1),(1.5 1.5, 1.5 2.5, 2.5 2.5, 2.5 1.5, 1.5 1.5))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (40, geography::STGeomFromText('POLYGON((0 0 1, 1 1 2, 2 1 3, 3 2 4, 3 3 5, 2 4 6, 1 4 7, 0 3 8, 0 1 9, 0 0 1),(1 1 1, 1 2 2, 2 2 3, 2 1 4, 1 1 1),(1.5 1.5 1, 1.5 2.5 2, 2.5 2.5 3, 2.5 1.5 4, 1.5 1.5 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (41, geography::STGeomFromText('POLYGON((0 0, 1 1 NULL, 2 1 3, 3 2, 3 3 5, 2 4 NULL, 1 4 7, 0 3, 0 1 9, 0 0),(1 1 NULL, 1 2 2, 2 2, 2 1 4, 1 1 NULL),(1.5 1.5 1, 1.5 2.5 NULL, 2.5 2.5 3, 2.5 1.5, 1.5 1.5 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (42, geography::STGeomFromText('POLYGON((0 0, 2 0, 4 1, 5 2, 6 4, 6 6, 5 8, 4 9, 2 10, 0 10, -1 8, -1 2, 0 0),(2 2, 3 2, 3 3, 2 3, 2 2),(4 4, 5 4, 5 2  2 5, 4 5, 4 4))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (43, geography::STGeomFromText('POLYGON((0 0 1, 2 0 2, 4 1 3, 5 2 NULL, 6 4 5, 6 6 6, 5 8 NULL, 4 9 8, 2 10 9, 0 10 10, -1 8 11, -1 2 12, 0 0 1),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 1, 5 4 2, 5 5 3, 4 5 4, 4 4 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (44, geography::STGeomFromText('POLYGON((0 0, 2 0 2, 4 1, 5 2 4, 6 4 NULL, 6 6, 5 8 7, 4 9 NULL, 2 10, 0 10 10, -1 8, -1 2 NULL, 0 0),(2 2 NULL, 3 2 2, 3 3, 2 3 4, 2 2 NULL),(4 4 1, 5 4 NULL, 5 5 3, 4 5, 4 4 1))', 4326));

INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (45, geography::STGeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1),(3 3, 4 3, 4 4, 3 4, 3 3),(5 5, 6 5, 6 6, 5 6, 5 5),(7 7, 8 7, 8 8, 7 8, 7 7))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (46, geography::STGeomFromText('POLYGON((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1),(1 1 1, 2 1 2, 2 2 3, 1 2 4, 1 1 1),(3 3 1, 4 3 2, 4 4 3, 3 4 4, 3 3 1),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (47, geography::STGeomFromText('POLYGON((0 0, 10 0 NULL, 10 10, 0 10 3, 0 0),(1 1 NULL, 2 1, 2 2 3, 1 2, 1 1 NULL),(3 3, 4 3 2, 4 4 NULL, 3 4, 3 3),(5 5 1, 6 5 NULL, 6 6, 5 6 4, 5 5 1),(7 7 NULL, 8 7 2, 8 8, 7 8 4, 7 7 NULL))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (49, geography::STGeomFromText('POLYGON((0 0, 12 0, 12 12, 0 12, 0 0),(2 2 1, 3 2 2, 3 3 3, 2 3 4, 2 2 1),(4 4 NULL, 5 4 2, 5 5 3, 4 5 NULL, 4 4 NULL),(6 6  2 1, 7 6 NULL, 7 7 3, 6 7 4, 6 6 1),(8 8 NULL, 9 8 2, 9 9 NULL, 8 9 4, 8 8 NULL),(2 6 1, 3 6 2, 3 7 NULL, 2 7 4, 2 6 1),(6 2 NULL, 7 2 2, 7 3 3, 6 3 NULL, 6 2 NULL),(4 8 1, 5 8 NULL, 5 9 3, 4 9 4, 4 8 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (50, geography::STGeomFromText('POLYGON((0 0, 15 0, 15 15, 0 15, 0 0),(2 2, 4 2, 4 4, 2 4, 2 2),(6 6, 8 6, 8 8, 6 8, 6 6),(10 10, 12 10, 12 12, 10 12, 10 10),(3 7, 5 7, 5 9, 3 9, 3 7),(7 3, 9 3, 9 5, 7 5, 7 3),(11 7, 13 7, 13 9, 11 9, 11 7),(7 11, 9 11, 9 13, 7 13, 7 11),(3 11, 5 11, 5 13, 3 13, 3 11),(11 3, 13 3, 13 5, 11 5, 11 3))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (51, geography::STGeomFromText('POLYGON((0 0 1, 15 0 2, 15 15 3, 0 15 4, 0 0 1),(2 2 1, 4 2 2, 4 4 3, 2 4 4, 2 2 1),(6 6 1, 8 6 2, 8 8 3, 6 8 4, 6 6 1),(10 10 1, 12 10 2, 12 12 3, 10 12 4, 10 10 1),(3 7 1, 5 7 2, 5 9 3, 3 9 4, 3 7 1),(7 3 1, 9 3 2, 9 5 3, 7 5 4, 7 3 1),(11 7 1, 13 7 2, 13 9 3, 11 9 4, 11 7 1))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (52, geography::STGeomFromText('POLYGON((0 0, 20 0, 20  5 5 20, 0 20, 0 0),(2 2 NULL, 4 2 2, 4 4 3, 2 4 NULL, 2 2 NULL),(6 6 1, 8 6 NULL, 8 8 3, 6 8 4, 6 6 1),(10 10 NULL, 12 10 2, 12 12 NULL, 10 12 4, 10 10 NULL),(3 7 1, 5 7 NULL, 5 9 3, 3 9 NULL, 3 7 1),(7 3 NULL, 9 3 2, 9 5 NULL, 7 5 4, 7 3 NULL),(11 7 1, 13 7 NULL, 13 9 3, 11 9 NULL, 11 7 1),(7 11 NULL, 9 11 2, 9 13 3, 7 13 NULL, 7 11 NULL))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (53, geography::STGeomFromText('POLYGON((0 0, 25 0, 25 25, 0 25, 0 0),(5 5, 7 5, 7 7, 5 7, 5 5),(10 10, 12 10, 12 12, 10 12, 10 10),(15 15, 17 15, 17 17, 15 17, 15 15),(5 15, 7 15, 7 17, 5 17, 5 15),(15 5, 17 5, 17 7, 15 7, 15 5),(8 8, 10 8, 10 10, 8 10, 8 8),(12 12, 14 12, 14 14, 12 14, 12 12),(8 12, 10 12, 10 14, 8 14, 8 12),(12 8, 14 8, 14 10, 12 10, 12 8))', 4326));

INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (54, geography::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(1 1, 2 1, 3 2, 2 3, 1 2, 1 1),(4 4, 5 4, 6 5, 5 6, 4 5, 4 4),(7 7, 8 7, 9 8, 8 9, 7 8, 7 7),(2 8, 3 8, 4 9, 3 10, 2 9, 2 8),(8 2, 9 2, 10 3, 9 4, 8 3, 8 2))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (55, geography::STGeomFromText('POLYGON((0 0, 5 0, 10 2, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, -5 5, 0 0),(1 1, 2 1 3, 3 2 NULL, 2 3 5, 1 2, 1 1),(4 4 2, 5 4, 6 5 1, 5 6, 4 5 3, 4 4 2),(7 7 NULL, 8 7, 9 8 4, 8 9, 7 8 2, 7 7 NULL))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (56, geography::STGeomFromText('POLYGON((0 0, 10 0, 20 0, 30 10, 20 20, 10 20, 0 10, 0 0),(5 5, 5 5, 5 5, 5 5),(10 10, 11 10, 11 11, 10 11, 10 10),(15 15, 16 15, 16 16, 15 16, 15 15),(7 12, 8 12, 8 13, 7 13, 7 12),(12 7, 13 2 2 7, 13 8, 12 8, 12 7),(8 8, 9 8, 9 9, 8 9, 8 8))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (57, geography::STGeomFromText('POLYGON((0 0, 5 2, 10 5, 15 10, 20 15, 15 20, 10 15, 5 10, 0 0),(1 1 2, 2 1 3, 2 2 4, 1 2 5, 1 1 2),(3 3 NULL, 4 3 2, 4 4 3, 3 4 NULL, 3 3 NULL),(5 5 1, 6 5 2, 6 6 3, 5 6 4, 5 5 1),(7 7 5, 8 7 6, 8 8 7, 7 8 8, 7 7 5),(2 6 9, 3 6 1, 3 7 2, 2 7 3, 2 6 9))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (58, geography::STGeomFromText('POLYGON((0 0, 10 0, 15 5, 20 10, 15 15, 10 20, 5 15, 0 10, 0 0),(2 2, 3 2 NULL, 3 3 4, 2 3 5, 2 2),(4 4 2, 5 4 NULL, 5 5 3, 4 5 4, 4 4 2),(6 6 NULL, 7 6 5, 7 7 6, 6 7 NULL, 6 6 NULL),(8 8 3, 9 8 4, 9 9 5, 8 9 6, 8 8 3),(3 7 4, 4 7 5, 4 8 6, 3 8 7, 3 7 4),(7 3 5, 8 3 6, 8 4 7, 7 4 8, 7 3 5))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (59, geography::STGeomFromText('POLYGON((3 5 4 5, 2 4 7 2, 3 5 4 5, 3 5 4 5))', 4326));
INSERT INTO geographyToByteapolygon (ID, geo_polygon) VALUES (60, geography::STGeomFromText('POLYGON EMPTY', 4326));

#Tests for Geometry type Prepared Statements

CREATE TABLE GEOSPATIAL_POLYGEOMRCV_dt (location geometry)

prepst#!#INSERT INTO GEOSPATIAL_POLYGEOMRCV_dt(location) values(@location) #!#GEOMETRY|-|location|-|POLYGON ((1 4, 1 2, 2 2, 1 4)):4326
prepst#!#exec#!#GEOMETRY|-|location|-|POLYGON EMPTY:4326
prepst#!#exec#!#GEOMETRY|-|location|-|POLYGON ((1 1,4 5, 6 7, 1 1)):4326
prepst#!#exec#!#GEOMETRY|-|location|-|POLYGON ((1 1 2, 1 2 3, 2 2 4, 1 1 2)):4326
prepst#!#exec#!#GEOMETRY|-|location|-|POLYGON ((1 1 2, 1 2  NULL 3, 2 2 4, 1 1 NULL 2)):4326
prepst#!#exec#!#GEOMETRY|-|location|-|POLYGON ((1 1 2 4, 1 2 3 5, 2 2 4 6, 1 1 2 7)):4326
prepst#!#exec#!#GEOMETRY|-|location|-|POLYGON ((1 1, 1 2, 2 2, 1 1),(0 0, 10 0, 10 10, 0 10, 0 0)):4326
#next seven lines are not allowed
#prepst#!#exec#!#GEOMETRY|-|location|-|POLYGON ((1 1, 1 2, 2 2, 1 1)):1000000000
#prepst#!#exec#!#GEOMETRY|-|location|-|POLYGON ((1 1, 1 2, 2 2, 1 1)):-1
#prepst#!#exec#!#GEOMETRY|-|location|-|POLYGON ((1 1, 1 2, 2 2, 1 1)):<NULL>
#prepst#!#exec#!#GEOMETRY|-|location|-|POLYGON ((1 1, 1 2, 2 2, 1 1)):10000000003
#prepst#!#exec#!#GEOMETRY|-|location|-|POLYGON ((1 1, 1 2, 2 2, 1 1)):4326
#prepst#!#exec#!#GEOMETRY|-|location|-|POLYGON:4326
#prepst#!#exec#!#GEOMETRY|-|location|-|<NULL>:4326


#Tests for geography type Prepared Statements

CREATE TABLE GEOSPATIAL_POLYGEOGRCV_dt (location geography)

prepst#!#INSERT INTO GEOSPATIAL_POLYGEOGRCV_dt(location) values(@location) #!#GEOGRAPHY|-|location|-|POLYGON ((1 4, 1 2, 2 2, 1 4)):4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|POLYGON EMPTY:4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|POLYGON ((1 1,4 5, 6 7, 1 1)):4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|POLYGON ((1 1 2, 1 2 3, 2 2 4, 1 1 2)):4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|POLYGON ((1 1 NULL 2, 1 2 3, 2 2 NULL 4, 1 1 2)):4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|POLYGON ((1 1 2 4, 1 2 3 5, 2 2 4 6, 1 1 2 7)):4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|POLYGON ((1 1, 1 2, 2 2, 1 1),(0 0, 10 0, 10 10, 0 10, 0 0)):4326
#next seven lines are not allowed
#prepst#!#exec#!#GEOGRAPHY|-|location|-|POLYGON ((1 1,4 5, 6 7, 1 1)):1000000000
#prepst#!#exec#!#GEOGRAPHY|-|location|-|POLYGON ((1 1, 1 2, 2 2, 1 1)):-1
#prepst#!#exec#!#GEOGRAPHY|-|location|-|POLYGON ((1 1, 1 2, 2 2, 1 1)):<NULL>
#prepst#!#exec#!#GEOGRAPHY|-|location|-|POLYGON ((1 1, 1 2, 2 2, 1 1)):10000000003
#prepst#!#exec#!#GEOGRAPHY|-|location|-|POLYGON ((1 1, 1 2, 2 2, 1 1)):4326
#prepst#!#exec#!#GEOGRAPHY|-|location|-|POLYGON:4326
#prepst#!#exec#!#GEOGRAPHY|-|location|-|<NULL>:4326
