--
  -- polygon logic
  --
 --- 3         o
 ---       |
 --- 2       + |
 ---    /  |
 --- 1     # o +
 ---       /    |
 --- 0   #-----o-+
 +-- 3          o
 +--            |
 +-- 2        + |
 +--         /  |
 +-- 1      #   +
 +--       /  o |
 +-- 0    #-----o-+
  --
 --- 0 1 2 3 4
 +--      0 1 2 3 4
  --
  CREATE TABLE POLYGON_TBL(f1 polygon);
  INSERT INTO POLYGON_TBL(f1) VALUES ('(2.0,0.0),(2.0,4.0),(0.0,0.0)');
   --
  -- polygon logic
  --
 --- 3         o
 ---       |
 --- 2       + |
 ---    /  |
 --- 1     / o +
 +-- 3          o
 +--           /|
 +-- 2        + |
 +--         /  |
 +-- 1      / o +
  --       /    |
 --- 0   +-----o-+
 +-- 0    +-----o-+
 +--
 +--      0 1 2 3 4
  --
 --- 0 1 2 3 4
  --
  -- left of
  SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' << polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;
   (1 row)
  
  --     +--------------------+
 ---     |    *---*          1
 +--     |    *---*           1
  --     |  + |   |
  --     |  2 *---*
  --     +--------------------+
 ---                         3
 +--                          3
  --     Edges 1-2, 2-3 are not shown on picture
  SELECT '((0,4),(6,4),(1,2),(6,0),(0,0))'::polygon && '((2,1),(2,3),(3,3),(3,1))'::polygon AS "true";
   true 
          --
  -- polygon logic
  --
 --- 3         o
 ---       |
 --- 2       + |
 ---    /  |
 --- 1     # o +
 ---       /    |
 --- 0   #-----o-+
 +-- 3          o
 +--            |
 +-- 2        + |
 +--         /  |
 +-- 1      #   +
 +--       /  o |
 +-- 0    #-----o-+
  --
 --- 0 1 2 3 4
 +--      0 1 2 3 4
  --
  
  CREATE TABLE POLYGON_TBL(f1 polygon);
   --
  -- polygon logic
  --
 --- 3         o
 ---       |
 --- 2       + |
 ---    /  |
 --- 1     / o +
 +-- 3          o
 +--           /|
 +-- 2        + |
 +--         /  |
 +-- 1      / o +
  --       /    |
 --- 0   +-----o-+
 +-- 0    +-----o-+
 +--
 +--      0 1 2 3 4
  --
 --- 0 1 2 3 4
  --
  -- left of
  SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' << polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;
   SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' && polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS true;
  
  --     +--------------------+
 ---     |    *---*          1
 +--     |    *---*           1
  --     |  + |   |
  --     |  2 *---*
  --     +--------------------+
 ---                         3
 +--                          3
  --     Edges 1-2, 2-3 are not shown on picture
  SELECT '((0,4),(6,4),(1,2),(6,0),(0,0))'::polygon && '((2,1),(2,3),(3,3),(3,1))'::polygon AS "true";