fixing REL7_3_STABLE build issues - Mailing list pgsql-patches

From Andrew Dunstan
Subject fixing REL7_3_STABLE build issues
Date
Msg-id 42D7D675.5090700@dunslane.net
Whole thread Raw
Responses Re: fixing REL7_3_STABLE build issues
List pgsql-patches
The attached (new) src/test/regress/expected/geometry_9.out, intended
only for the 7.3 stable branch,  allows a clean regression pass on my
FC4 box. I called it that to avoid conflicts with other geometry_n files
on later branches.

The attached patch for contrib/seg/segparse.y allows a clean 7.3 contrib
build. The latter fix looks like one that should be made on the 7.4
branch also - man 3 errno on my box says:

  errno  is  defined  by  the ISO C standard to be a modifiable lvalue of
  type int, and must not be explicitly declared; errno may  be  a  macro.

I'm not sure why 7.4 doesn't choke at the same place, but doing the
Right Thing (tm) should not hurt. In later branches the declaration is
gone altogether, so the problem has disappeared.

cheers

andrew
--
-- GEOMETRY
--
--
-- Points
--
SELECT '' AS four, center(f1) AS center
   FROM BOX_TBL;
 four | center
------+---------
      | (1,1)
      | (2,2)
      | (2.5,3)
      | (3,3)
(4 rows)

SELECT '' AS four, (@@ f1) AS center
   FROM BOX_TBL;
 four | center
------+---------
      | (1,1)
      | (2,2)
      | (2.5,3)
      | (3,3)
(4 rows)

SELECT '' AS six, point(f1) AS center
   FROM CIRCLE_TBL;
 six |  center
-----+-----------
     | (0,0)
     | (1,2)
     | (1,3)
     | (1,2)
     | (100,200)
     | (100,0)
(6 rows)

SELECT '' AS six, (@@ f1) AS center
   FROM CIRCLE_TBL;
 six |  center
-----+-----------
     | (0,0)
     | (1,2)
     | (1,3)
     | (1,2)
     | (100,200)
     | (100,0)
(6 rows)

SELECT '' AS two, (@@ f1) AS center
   FROM POLYGON_TBL
   WHERE (# f1) > 2;
 two |               center
-----+-------------------------------------
     | (1.33333333333333,1.33333333333333)
     | (2.33333333333333,1.33333333333333)
(2 rows)

-- "is horizontal" function
SELECT '' AS two, p1.f1
   FROM POINT_TBL p1
   WHERE ishorizontal(p1.f1, point '(0,0)');
 two |   f1
-----+---------
     | (0,0)
     | (-10,0)
(2 rows)

-- "is horizontal" operator
SELECT '' AS two, p1.f1
   FROM POINT_TBL p1
   WHERE p1.f1 ?- point '(0,0)';
 two |   f1
-----+---------
     | (0,0)
     | (-10,0)
(2 rows)

-- "is vertical" function
SELECT '' AS one, p1.f1
   FROM POINT_TBL p1
   WHERE isvertical(p1.f1, point '(5.1,34.5)');
 one |     f1
-----+------------
     | (5.1,34.5)
(1 row)

-- "is vertical" operator
SELECT '' AS one, p1.f1
   FROM POINT_TBL p1
   WHERE p1.f1 ?| point '(5.1,34.5)';
 one |     f1
-----+------------
     | (5.1,34.5)
(1 row)

--
-- Line segments
--
-- intersection
SELECT '' AS count, p.f1, l.s, l.s # p.f1 AS intersection
   FROM LSEG_TBL l, POINT_TBL p;
ERROR:  Unable to identify an operator '#' for types 'lseg' and 'point'
    You will have to retype this query using an explicit cast
-- closest point
SELECT '' AS thirty, p.f1, l.s, p.f1 ## l.s AS closest
   FROM LSEG_TBL l, POINT_TBL p;
 thirty |     f1     |               s               |                closest
--------+------------+-------------------------------+---------------------------------------
        | (0,0)      | [(1,2),(3,4)]                 | (1,2)
        | (-10,0)    | [(1,2),(3,4)]                 | (1,2)
        | (-3,4)     | [(1,2),(3,4)]                 | (1,2)
        | (5.1,34.5) | [(1,2),(3,4)]                 | (3,4)
        | (-5,-12)   | [(1,2),(3,4)]                 | (1,2)
        | (10,10)    | [(1,2),(3,4)]                 | (3,4)
        | (0,0)      | [(0,0),(6,6)]                 | (-0,0)
        | (-10,0)    | [(0,0),(6,6)]                 | (0,0)
        | (-3,4)     | [(0,0),(6,6)]                 | (0.5,0.5)
        | (5.1,34.5) | [(0,0),(6,6)]                 | (6,6)
        | (-5,-12)   | [(0,0),(6,6)]                 | (0,0)
        | (10,10)    | [(0,0),(6,6)]                 | (6,6)
        | (0,0)      | [(10,-10),(-3,-4)]            | (-2.04878048780488,-4.4390243902439)
        | (-10,0)    | [(10,-10),(-3,-4)]            | (-3,-4)
        | (-3,4)     | [(10,-10),(-3,-4)]            | (-3,-4)
        | (5.1,34.5) | [(10,-10),(-3,-4)]            | (-3,-4)
        | (-5,-12)   | [(10,-10),(-3,-4)]            | (-1.60487804878049,-4.64390243902439)
        | (10,10)    | [(10,-10),(-3,-4)]            | (2.39024390243902,-6.48780487804878)
        | (0,0)      | [(-1000000,200),(300000,-40)] | (0.0028402365895872,15.384614860264)
        | (-10,0)    | [(-1000000,200),(300000,-40)] | (-9.99715942258202,15.3864610140472)
        | (-3,4)     | [(-1000000,200),(300000,-40)] | (-2.99789812267519,15.3851688427303)
        | (5.1,34.5) | [(-1000000,200),(300000,-40)] | (5.09647083221496,15.3836744976925)
        | (-5,-12)   | [(-1000000,200),(300000,-40)] | (-4.99494420845634,15.3855375281616)
        | (10,10)    | [(-1000000,200),(300000,-40)] | (10.000993741978,15.3827690473092)
        | (0,0)      | [(11,22),(33,44)]             | (11,22)
        | (-10,0)    | [(11,22),(33,44)]             | (11,22)
        | (-3,4)     | [(11,22),(33,44)]             | (11,22)
        | (5.1,34.5) | [(11,22),(33,44)]             | (14.3,25.3)
        | (-5,-12)   | [(11,22),(33,44)]             | (11,22)
        | (10,10)    | [(11,22),(33,44)]             | (11,22)
(30 rows)

--
-- Lines
--
--
-- Boxes
--
SELECT '' as six, box(f1) AS box FROM CIRCLE_TBL;
 six |                                    box
-----+----------------------------------------------------------------------------
     | (2.12132034355964,2.12132034355964),(-2.12132034355964,-2.12132034355964)
     | (71.7106781186547,72.7106781186547),(-69.7106781186547,-68.7106781186547)
     | (4.53553390593274,6.53553390593274),(-2.53553390593274,-0.535533905932737)
     | (3.12132034355964,4.12132034355964),(-1.12132034355964,-0.121320343559642)
     | (107.071067811865,207.071067811865),(92.9289321881345,192.928932188135)
     | (170.710678118655,70.7106781186547),(29.2893218813453,-70.7106781186547)
(6 rows)

-- translation
SELECT '' AS twentyfour, b.f1 + p.f1 AS translation
   FROM BOX_TBL b, POINT_TBL p;
 twentyfour |       translation
------------+-------------------------
            | (2,2),(0,0)
            | (-8,2),(-10,0)
            | (-1,6),(-3,4)
            | (7.1,36.5),(5.1,34.5)
            | (-3,-10),(-5,-12)
            | (12,12),(10,10)
            | (3,3),(1,1)
            | (-7,3),(-9,1)
            | (0,7),(-2,5)
            | (8.1,37.5),(6.1,35.5)
            | (-2,-9),(-4,-11)
            | (13,13),(11,11)
            | (2.5,3.5),(2.5,2.5)
            | (-7.5,3.5),(-7.5,2.5)
            | (-0.5,7.5),(-0.5,6.5)
            | (7.6,38),(7.6,37)
            | (-2.5,-8.5),(-2.5,-9.5)
            | (12.5,13.5),(12.5,12.5)
            | (3,3),(3,3)
            | (-7,3),(-7,3)
            | (0,7),(0,7)
            | (8.1,37.5),(8.1,37.5)
            | (-2,-9),(-2,-9)
            | (13,13),(13,13)
(24 rows)

SELECT '' AS twentyfour, b.f1 - p.f1 AS translation
   FROM BOX_TBL b, POINT_TBL p;
 twentyfour |        translation
------------+---------------------------
            | (2,2),(0,0)
            | (12,2),(10,0)
            | (5,-2),(3,-4)
            | (-3.1,-32.5),(-5.1,-34.5)
            | (7,14),(5,12)
            | (-8,-8),(-10,-10)
            | (3,3),(1,1)
            | (13,3),(11,1)
            | (6,-1),(4,-3)
            | (-2.1,-31.5),(-4.1,-33.5)
            | (8,15),(6,13)
            | (-7,-7),(-9,-9)
            | (2.5,3.5),(2.5,2.5)
            | (12.5,3.5),(12.5,2.5)
            | (5.5,-0.5),(5.5,-1.5)
            | (-2.6,-31),(-2.6,-32)
            | (7.5,15.5),(7.5,14.5)
            | (-7.5,-6.5),(-7.5,-7.5)
            | (3,3),(3,3)
            | (13,3),(13,3)
            | (6,-1),(6,-1)
            | (-2.1,-31.5),(-2.1,-31.5)
            | (8,15),(8,15)
            | (-7,-7),(-7,-7)
(24 rows)

-- scaling and rotation
SELECT '' AS twentyfour, b.f1 * p.f1 AS rotation
   FROM BOX_TBL b, POINT_TBL p;
 twentyfour |          rotation
------------+-----------------------------
            | (0,0),(0,0)
            | (-0,0),(-20,-20)
            | (-0,2),(-14,0)
            | (0,79.2),(-58.8,0)
            | (14,-0),(0,-34)
            | (0,40),(0,0)
            | (0,0),(0,0)
            | (-10,-10),(-30,-30)
            | (-7,3),(-21,1)
            | (-29.4,118.8),(-88.2,39.6)
            | (21,-17),(7,-51)
            | (0,60),(0,20)
            | (0,0),(0,0)
            | (-25,-25),(-25,-35)
            | (-17.5,2.5),(-21.5,-0.5)
            | (-73.5,104.1),(-108,99)
            | (29.5,-42.5),(17.5,-47.5)
            | (0,60),(-10,50)
            | (0,0),(0,0)
            | (-30,-30),(-30,-30)
            | (-21,3),(-21,3)
            | (-88.2,118.8),(-88.2,118.8)
            | (21,-51),(21,-51)
            | (0,60),(0,60)
(24 rows)

SELECT '' AS twenty, b.f1 / p.f1 AS rotation
   FROM BOX_TBL b, POINT_TBL p
   WHERE (p.f1 <-> point '(0,0)') >= 1;
 twenty |                                     rotation
--------+-----------------------------------------------------------------------------------
        | (0,-0),(-0.2,-0.2)
        | (-0.1,-0.1),(-0.3,-0.3)
        | (-0.25,-0.25),(-0.25,-0.35)
        | (-0.3,-0.3),(-0.3,-0.3)
        | (0.08,-0),(0,-0.56)
        | (0.12,-0.28),(0.04,-0.84)
        | (0.26,-0.7),(0.1,-0.82)
        | (0.12,-0.84),(0.12,-0.84)
        | (0.0651176557643925,0),(0,-0.0483449262493217)
        | (0.0976764836465887,-0.0241724631246608),(0.0325588278821962,-0.0725173893739825)
        | (0.109762715208919,-0.0562379754328844),(0.0813970697054906,-0.0604311578116521)
        | (0.0976764836465887,-0.0725173893739825),(0.0976764836465887,-0.0725173893739825)
        | (-0,0.0828402366863905),(-0.201183431952663,0)
        | (-0.100591715976331,0.124260355029586),(-0.301775147928994,0.0414201183431953)
        | (-0.251479289940828,0.103550295857988),(-0.322485207100592,0.0739644970414201)
        | (-0.301775147928994,0.124260355029586),(-0.301775147928994,0.124260355029586)
        | (0.2,0),(0,0)
        | (0.3,0),(0.1,0)
        | (0.3,0.05),(0.25,0)
        | (0.3,0),(0.3,0)
(20 rows)

--
-- Paths
--
SET geqo TO 'off';
SELECT '' AS eight, npoints(f1) AS npoints, f1 AS path FROM PATH_TBL;
 eight | npoints |           path
-------+---------+---------------------------
       |       2 | [(1,2),(3,4)]
       |       2 | ((1,2),(3,4))
       |       4 | [(0,0),(3,0),(4,5),(1,6)]
       |       2 | ((1,2),(3,4))
       |       2 | ((1,2),(3,4))
       |       2 | [(1,2),(3,4)]
       |       2 | [(11,12),(13,14)]
       |       2 | ((11,12),(13,14))
(8 rows)

SELECT '' AS four, path(f1) FROM POLYGON_TBL;
 four |        path
------+---------------------
      | ((2,0),(2,4),(0,0))
      | ((3,1),(3,3),(1,0))
      | ((0,0))
      | ((0,1),(0,1))
(4 rows)

-- translation
SELECT '' AS eight, p1.f1 + point '(10,10)' AS dist_add
   FROM PATH_TBL p1;
 eight |             dist_add
-------+-----------------------------------
       | [(11,12),(13,14)]
       | ((11,12),(13,14))
       | [(10,10),(13,10),(14,15),(11,16)]
       | ((11,12),(13,14))
       | ((11,12),(13,14))
       | [(11,12),(13,14)]
       | [(21,22),(23,24)]
       | ((21,22),(23,24))
(8 rows)

-- scaling and rotation
SELECT '' AS eight, p1.f1 * point '(2,-1)' AS dist_mul
   FROM PATH_TBL p1;
 eight |           dist_mul
-------+------------------------------
       | [(4,3),(10,5)]
       | ((4,3),(10,5))
       | [(0,0),(6,-3),(13,6),(8,11)]
       | ((4,3),(10,5))
       | ((4,3),(10,5))
       | [(4,3),(10,5)]
       | [(34,13),(40,15)]
       | ((34,13),(40,15))
(8 rows)

RESET geqo;
--
-- Polygons
--
-- containment
SELECT '' AS twentyfour, p.f1, poly.f1, poly.f1 ~ p.f1 AS contains
   FROM POLYGON_TBL poly, POINT_TBL p;
 twentyfour |     f1     |         f1          | contains
------------+------------+---------------------+----------
            | (0,0)      | ((2,0),(2,4),(0,0)) | t
            | (-10,0)    | ((2,0),(2,4),(0,0)) | f
            | (-3,4)     | ((2,0),(2,4),(0,0)) | f
            | (5.1,34.5) | ((2,0),(2,4),(0,0)) | f
            | (-5,-12)   | ((2,0),(2,4),(0,0)) | f
            | (10,10)    | ((2,0),(2,4),(0,0)) | f
            | (0,0)      | ((3,1),(3,3),(1,0)) | f
            | (-10,0)    | ((3,1),(3,3),(1,0)) | f
            | (-3,4)     | ((3,1),(3,3),(1,0)) | f
            | (5.1,34.5) | ((3,1),(3,3),(1,0)) | f
            | (-5,-12)   | ((3,1),(3,3),(1,0)) | f
            | (10,10)    | ((3,1),(3,3),(1,0)) | f
            | (0,0)      | ((0,0))             | t
            | (-10,0)    | ((0,0))             | f
            | (-3,4)     | ((0,0))             | f
            | (5.1,34.5) | ((0,0))             | f
            | (-5,-12)   | ((0,0))             | f
            | (10,10)    | ((0,0))             | f
            | (0,0)      | ((0,1),(0,1))       | f
            | (-10,0)    | ((0,1),(0,1))       | f
            | (-3,4)     | ((0,1),(0,1))       | f
            | (5.1,34.5) | ((0,1),(0,1))       | f
            | (-5,-12)   | ((0,1),(0,1))       | f
            | (10,10)    | ((0,1),(0,1))       | f
(24 rows)

SELECT '' AS twentyfour, p.f1, poly.f1, p.f1 @ poly.f1 AS contained
   FROM POLYGON_TBL poly, POINT_TBL p;
 twentyfour |     f1     |         f1          | contained
------------+------------+---------------------+-----------
            | (0,0)      | ((2,0),(2,4),(0,0)) | t
            | (-10,0)    | ((2,0),(2,4),(0,0)) | f
            | (-3,4)     | ((2,0),(2,4),(0,0)) | f
            | (5.1,34.5) | ((2,0),(2,4),(0,0)) | f
            | (-5,-12)   | ((2,0),(2,4),(0,0)) | f
            | (10,10)    | ((2,0),(2,4),(0,0)) | f
            | (0,0)      | ((3,1),(3,3),(1,0)) | f
            | (-10,0)    | ((3,1),(3,3),(1,0)) | f
            | (-3,4)     | ((3,1),(3,3),(1,0)) | f
            | (5.1,34.5) | ((3,1),(3,3),(1,0)) | f
            | (-5,-12)   | ((3,1),(3,3),(1,0)) | f
            | (10,10)    | ((3,1),(3,3),(1,0)) | f
            | (0,0)      | ((0,0))             | t
            | (-10,0)    | ((0,0))             | f
            | (-3,4)     | ((0,0))             | f
            | (5.1,34.5) | ((0,0))             | f
            | (-5,-12)   | ((0,0))             | f
            | (10,10)    | ((0,0))             | f
            | (0,0)      | ((0,1),(0,1))       | f
            | (-10,0)    | ((0,1),(0,1))       | f
            | (-3,4)     | ((0,1),(0,1))       | f
            | (5.1,34.5) | ((0,1),(0,1))       | f
            | (-5,-12)   | ((0,1),(0,1))       | f
            | (10,10)    | ((0,1),(0,1))       | f
(24 rows)

SELECT '' AS four, npoints(f1) AS npoints, f1 AS polygon
   FROM POLYGON_TBL;
 four | npoints |       polygon
------+---------+---------------------
      |       3 | ((2,0),(2,4),(0,0))
      |       3 | ((3,1),(3,3),(1,0))
      |       1 | ((0,0))
      |       2 | ((0,1),(0,1))
(4 rows)

SELECT '' AS four, polygon(f1)
   FROM BOX_TBL;
 four |                  polygon
------+-------------------------------------------
      | ((0,0),(0,2),(2,2),(2,0))
      | ((1,1),(1,3),(3,3),(3,1))
      | ((2.5,2.5),(2.5,3.5),(2.5,3.5),(2.5,2.5))
      | ((3,3),(3,3),(3,3),(3,3))
(4 rows)

SELECT '' AS four, polygon(f1)
   FROM PATH_TBL WHERE isclosed(f1);
 four |      polygon
------+-------------------
      | ((1,2),(3,4))
      | ((1,2),(3,4))
      | ((1,2),(3,4))
      | ((11,12),(13,14))
(4 rows)

SELECT '' AS four, f1 AS open_path, polygon( pclose(f1)) AS polygon
   FROM PATH_TBL
   WHERE isopen(f1);
 four |         open_path         |          polygon
------+---------------------------+---------------------------
      | [(1,2),(3,4)]             | ((1,2),(3,4))
      | [(0,0),(3,0),(4,5),(1,6)] | ((0,0),(3,0),(4,5),(1,6))
      | [(1,2),(3,4)]             | ((1,2),(3,4))
      | [(11,12),(13,14)]         | ((11,12),(13,14))
(4 rows)

-- convert circles to polygons using the default number of points
SELECT '' AS six, polygon(f1)
   FROM CIRCLE_TBL;
 six |
                                                                        polygon

                         

-----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
     |
((-3,0),(-2.59807621135076,1.50000000000442),(-1.49999999999116,2.59807621135842),(1.53102359078377e-11,3),(1.50000000001768,2.59807621134311),(2.59807621136607,1.4999999999779),(3,-3.06204718156754e-11),(2.59807621133545,-1.50000000003094),(1.49999999996464,-2.59807621137373),(-4.59307077235131e-11,-3),(-1.5000000000442,-2.5980762113278),(-2.59807621138138,-1.49999999995138))
     |
((-99,2),(-85.6025403783588,52.0000000001473),(-48.9999999997054,88.602540378614),(1.00000000051034,102),(51.0000000005893,88.6025403781036),(87.6025403788692,51.9999999992634),(101,1.99999999897932),(87.6025403778485,-48.0000000010313),(50.9999999988214,-84.6025403791243),(0.999999998468976,-98),(-49.0000000014732,-84.6025403775933),(-85.6025403793795,-47.9999999983795))
     |
((-4,3),(-3.33012701891794,5.50000000000737),(-1.49999999998527,7.3301270189307),(1.00000000002552,8),(3.50000000002946,7.33012701890518),(5.33012701894346,5.49999999996317),(6,2.99999999994897),(5.33012701889242,0.499999999948437),(3.49999999994107,-1.33012701895622),(0.999999999923449,-2),(-1.50000000007366,-1.33012701887966),(-3.33012701896897,0.500000000081028))
     |
((-2,2),(-1.59807621135076,3.50000000000442),(-0.499999999991161,4.59807621135842),(1.00000000001531,5),(2.50000000001768,4.59807621134311),(3.59807621136607,3.4999999999779),(4,1.99999999996938),(3.59807621133545,0.499999999969062),(2.49999999996464,-0.59807621137373),(0.999999999954069,-1),(-0.500000000044197,-0.598076211327799),(-1.59807621138138,0.500000000048617))
     |
((90,200),(91.3397459621641,205.000000000015),(95.0000000000295,208.660254037861),(100.000000000051,210),(105.000000000059,208.66025403781),(108.660254037887,204.999999999926),(110,199.999999999898),(108.660254037785,194.999999999897),(104.999999999882,191.339745962088),(99.9999999998469,190),(94.9999999998527,191.339745962241),(91.3397459620621,195.000000000162))
     |
((0,0),(13.3974596216412,50.0000000001473),(50.0000000002946,86.602540378614),(100.00000000051,100),(150.000000000589,86.6025403781036),(186.602540378869,49.9999999992634),(200,-1.02068239385585e-09),(186.602540377848,-50.0000000010313),(149.999999998821,-86.6025403791243),(99.999999998469,-100),(49.9999999985268,-86.6025403775933),(13.3974596206205,-49.9999999983795))
(6 rows)

-- convert the circle to an 8-point polygon
SELECT '' AS six, polygon(8, f1)
   FROM CIRCLE_TBL;
 six |
polygon


-----+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
     |
((-3,0),(-2.12132034355423,2.12132034356506),(1.53102359078377e-11,3),(2.12132034357588,2.1213203435434),(3,-3.06204718156754e-11),(2.12132034353258,-2.12132034358671),(-4.59307077235131e-11,-3),(-2.12132034359753,-2.12132034352175))
     |
((-99,2),(-69.7106781184743,72.7106781188352),(1.00000000051034,102),(71.710678119196,72.7106781181134),(101,1.99999999897932),(71.7106781177526,-68.7106781195569),(0.999999998468976,-98),(-69.7106781199178,-68.7106781173917))
     |
((-4,3),(-2.53553390592372,6.53553390594176),(1.00000000002552,8),(4.5355339059598,6.53553390590567),(6,2.99999999994897),(4.53553390588763,-0.535533905977846),(0.999999999923449,-2),(-2.53553390599589,-0.535533905869586))
     |
((-2,2),(-1.12132034355423,4.12132034356506),(1.00000000001531,5),(3.12132034357588,4.1213203435434),(4,1.99999999996938),(3.12132034353258,-0.121320343586707),(0.999999999954069,-1),(-1.12132034359753,-0.121320343521752))
     |
((90,200),(92.9289321881526,207.071067811884),(100.000000000051,210),(107.07106781192,207.071067811811),(110,199.999999999898),(107.071067811775,192.928932188044),(99.9999999998469,190),(92.9289321880082,192.928932188261))
     |
((0,0),(29.2893218815257,70.7106781188352),(100.00000000051,100),(170.710678119196,70.7106781181134),(200,-1.02068239385585e-09),(170.710678117753,-70.7106781195569),(99.999999998469,-100),(29.2893218800822,-70.7106781173917))
(6 rows)

--
-- Circles
--
SELECT '' AS six, circle(f1, 50.0)
   FROM POINT_TBL;
 six |     circle
-----+-----------------
     | <(0,0),50>
     | <(-10,0),50>
     | <(-3,4),50>
     | <(5.1,34.5),50>
     | <(-5,-12),50>
     | <(10,10),50>
(6 rows)

SELECT '' AS four, circle(f1)
   FROM BOX_TBL;
 four |         circle
------+-------------------------
      | <(1,1),1.4142135623731>
      | <(2,2),1.4142135623731>
      | <(2.5,3),0.5>
      | <(3,3),0>
(4 rows)

SELECT '' AS two, circle(f1)
   FROM POLYGON_TBL
   WHERE (# f1) >= 3;
 two |                         circle
-----+--------------------------------------------------------
     | <(1.33333333333333,1.33333333333333),2.04168905063636>
     | <(2.33333333333333,1.33333333333333),1.47534300379185>
(2 rows)

SELECT '' AS twentyfour, c1.f1 AS circle, p1.f1 AS point, (p1.f1 <-> c1.f1) AS distance
   FROM CIRCLE_TBL c1, POINT_TBL p1
   WHERE (p1.f1 <-> c1.f1) > 0
   ORDER BY distance, circle, point using <<;
 twentyfour |     circle     |   point    |     distance
------------+----------------+------------+-------------------
            | <(100,0),100>  | (5.1,34.5) | 0.976531926977964
            | <(1,2),3>      | (-3,4)     |  1.47213595499958
            | <(0,0),3>      | (-3,4)     |                 2
            | <(100,0),100>  | (-3,4)     |  3.07764064044151
            | <(100,0),100>  | (-5,-12)   |  5.68348972285122
            | <(1,3),5>      | (-10,0)    |  6.40175425099138
            | <(1,3),5>      | (10,10)    |  6.40175425099138
            | <(0,0),3>      | (-10,0)    |                 7
            | <(1,2),3>      | (-10,0)    |  8.18033988749895
            | <(1,2),3>      | (10,10)    |   9.0415945787923
            | <(0,0),3>      | (-5,-12)   |                10
            | <(100,0),100>  | (-10,0)    |                10
            | <(0,0),3>      | (10,10)    |   11.142135623731
            | <(1,3),5>      | (-5,-12)   |  11.1554944214035
            | <(1,2),3>      | (-5,-12)   |  12.2315462117278
            | <(1,3),5>      | (5.1,34.5) |  26.7657047773224
            | <(1,2),3>      | (5.1,34.5) |   29.757594539282
            | <(0,0),3>      | (5.1,34.5) |  31.8749193547455
            | <(100,200),10> | (5.1,34.5) |  180.778038568384
            | <(100,200),10> | (10,10)    |  200.237960416286
            | <(100,200),10> | (-3,4)     |  211.415898254845
            | <(100,200),10> | (0,0)      |  213.606797749979
            | <(100,200),10> | (-10,0)    |  218.254244210267
            | <(100,200),10> | (-5,-12)   |  226.577682802077
(24 rows)

Index: contrib/seg/segparse.y
===================================================================
RCS file: /projects/cvsroot/pgsql/contrib/seg/segparse.y,v
retrieving revision 1.7.2.1
diff -c -r1.7.2.1 segparse.y
*** contrib/seg/segparse.y    22 Nov 2002 16:25:52 -0000    1.7.2.1
--- contrib/seg/segparse.y    15 Jul 2005 15:17:04 -0000
***************
*** 17,23 ****
  #undef yylex                  /* falure to redefine yylex will result in calling the */
  #define yylex seg_yylex       /* wrong scanner when running inside postgres backend  */

!   extern int errno;
    extern int yylex();           /* defined as seg_yylex in segscan.c */
    extern int significant_digits( char *str );    /* defined in seg.c */

--- 17,23 ----
  #undef yylex                  /* falure to redefine yylex will result in calling the */
  #define yylex seg_yylex       /* wrong scanner when running inside postgres backend  */

! #include <errno.h>
    extern int yylex();           /* defined as seg_yylex in segscan.c */
    extern int significant_digits( char *str );    /* defined in seg.c */


pgsql-patches by date:

Previous
From: Neil Conway
Date:
Subject: Re: PL/PGSQL: Dynamic Record Introspection
Next
From: Chris Browne
Date:
Subject: AIX FAQ Updates