fixing REL7_3_STABLE build issues

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема fixing REL7_3_STABLE build issues
Дата
Msg-id 42D7D675.5090700@dunslane.net
обсуждение исходный текст
Ответы Re: fixing REL7_3_STABLE build issues
Список 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 по дате отправления:

Предыдущее
От: Neil Conway
Дата:
Сообщение: Re: PL/PGSQL: Dynamic Record Introspection
Следующее
От: Chris Browne
Дата:
Сообщение: AIX FAQ Updates