Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
3d5dd9bd
Commit
3d5dd9bd
authored
Jul 29, 1997
by
Thomas G. Lockhart
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Start adding tests for new geometry functions.
Not all cleaned up yet.
parent
c5035643
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
109 additions
and
48 deletions
+109
-48
src/test/regress/sql/circle.sql
src/test/regress/sql/circle.sql
+2
-2
src/test/regress/sql/geometry.sql
src/test/regress/sql/geometry.sql
+88
-27
src/test/regress/sql/lseg.sql
src/test/regress/sql/lseg.sql
+1
-1
src/test/regress/sql/point.sql
src/test/regress/sql/point.sql
+15
-15
src/test/regress/sql/polygon.sql
src/test/regress/sql/polygon.sql
+3
-3
No files found.
src/test/regress/sql/circle.sql
View file @
3d5dd9bd
...
...
@@ -39,8 +39,8 @@ SELECT '' AS two, f1 FROM CIRCLE_TBL WHERE radius(f1) < 5;
SELECT
''
AS
four
,
f1
FROM
CIRCLE_TBL
WHERE
diameter
(
f1
)
>=
10
;
SELECT
''
as
five
,
c1
.
f1
AS
one
,
c2
.
f1
AS
two
,
(
c1
.
f1
<
===
>
c2
.
f1
)
AS
distance
SELECT
''
as
five
,
c1
.
f1
AS
one
,
c2
.
f1
AS
two
,
(
c1
.
f1
<
-
>
c2
.
f1
)
AS
distance
FROM
CIRCLE_TBL
c1
,
CIRCLE_TBL
c2
WHERE
(
c1
.
f1
<
c2
.
f1
)
AND
((
c1
.
f1
<
===
>
c2
.
f1
)
>
0
)
WHERE
(
c1
.
f1
<
c2
.
f1
)
AND
((
c1
.
f1
<
-
>
c2
.
f1
)
>
0
)
ORDER
BY
distance
,
one
,
two
;
src/test/regress/sql/geometry.sql
View file @
3d5dd9bd
...
...
@@ -2,20 +2,54 @@
-- Points
--
SELECT
point
(
f1
)
FROM
CIRCLE_TBL
;
SELECT
''
AS
xxx
,
center
(
f1
)
AS
center
FROM
BOX_TBL
;
SELECT
''
AS
xxx
,
(
@@
f1
)
AS
center
FROM
BOX_TBL
;
SELECT
''
AS
xxx
,
point
(
f1
)
AS
center
FROM
CIRCLE_TBL
;
SELECT
''
AS
xxx
,
(
@@
f1
)
AS
center
FROM
CIRCLE_TBL
;
SELECT
''
AS
xxx
,
(
@@
f1
)
AS
center
FROM
POLYGON_TBL
WHERE
(
#
f1
)
>
2
;
-- "is horizontal" function
SELECT
''
AS
two
,
p1
.
f1
FROM
POINT_TBL
p1
WHERE
ishorizontal
(
p1
.
f1
,
'(0,0)'
::
point
);
FROM
POINT_TBL
p1
WHERE
ishorizontal
(
p1
.
f1
,
'(0,0)'
::
point
);
-- "is horizontal" operator
SELECT
''
AS
two
,
p1
.
f1
FROM
POINT_TBL
p1
WHERE
p1
.
f1
?-
'(0,0)'
::
point
;
-- "is vertical" function
SELECT
''
AS
one
,
p1
.
f1
FROM
POINT_TBL
p1
WHERE
isvertical
(
p1
.
f1
,
'(5.1,34.5)'
::
point
);
-- "is vertical" operator
SELECT
''
AS
one
,
p1
.
f1
FROM
POINT_TBL
p1
WHERE
isvertical
(
p1
.
f1
,
'(5.1,34.5)'
::
point
)
;
FROM
POINT_TBL
p1
WHERE
p1
.
f1
?|
'(5.1,34.5)'
::
point
;
--
-- Line segments
--
-- intersection
SELECT
''
AS
xxx
,
p
.
f1
,
l
.
s
,
l
.
s
#
p
.
f1
AS
intersection
FROM
LSEG_TBL
l
,
POINT_TBL
p
;
-- closest point
SELECT
''
AS
xxx
,
p
.
f1
,
l
.
s
,
p
.
f1
##
l
.
s
AS
closest
FROM
LSEG_TBL
l
,
POINT_TBL
p
;
--
-- Lines
--
...
...
@@ -24,17 +58,22 @@ SELECT '' AS one, p1.f1
-- Boxes
--
SELECT
center
(
f1
)
FROM
BOX_TBL
;
SELECT
box
(
f1
)
FROM
CIRCLE_TBL
;
SELECT
box
(
f1
)
AS
box
FROM
CIRCLE_TBL
;
-- translation
SELECT
''
AS
count
,
b
.
f1
+
p
.
f1
FROM
BOX_TBL
b
,
POINT_TBL
p
;
SELECT
''
AS
count
,
b
.
f1
+
p
.
f1
AS
translation
FROM
BOX_TBL
b
,
POINT_TBL
p
;
SELECT
''
AS
count
,
b
.
f1
-
p
.
f1
AS
translation
FROM
BOX_TBL
b
,
POINT_TBL
p
;
-- scaling and rotation
SELECT
''
AS
count
,
b
.
f1
*
p
.
f1
FROM
BOX_TBL
b
,
POINT_TBL
p
;
SELECT
''
AS
count
,
b
.
f1
*
p
.
f1
AS
rotation
FROM
BOX_TBL
b
,
POINT_TBL
p
;
SELECT
''
AS
count
,
b
.
f1
/
p
.
f1
AS
rotation
FROM
BOX_TBL
b
,
POINT_TBL
p
WHERE
(
p
.
f1
<->
'(0,0)'
::
point
)
>=
1
;
--
-- Paths
...
...
@@ -42,17 +81,17 @@ SELECT '' AS count, b.f1 * p.f1
SET
geqo
TO
'off'
;
SELECT
points
(
f1
)
AS
npoints
,
f1
AS
path
FROM
PATH_TBL
;
SELECT
''
AS
xxx
,
points
(
f1
)
AS
npoints
,
f1
AS
path
FROM
PATH_TBL
;
SELECT
path
(
f1
)
FROM
POLYGON_TBL
;
SELECT
''
AS
xxx
,
path
(
f1
)
FROM
POLYGON_TBL
;
-- translation
SELECT
''
AS
eight
,
p1
.
f1
+
'(10,10)'
::
point
AS
dist_add
FROM
PATH_TBL
p1
;
FROM
PATH_TBL
p1
;
-- scaling and rotation
SELECT
''
AS
eight
,
p1
.
f1
*
'(2,-1)'
::
point
AS
dist_mul
FROM
PATH_TBL
p1
;
FROM
PATH_TBL
p1
;
RESET
geqo
;
...
...
@@ -60,28 +99,50 @@ RESET geqo;
-- Polygons
--
SELECT
points
(
f1
)
AS
npoints
,
f1
AS
polygon
FROM
POLYGON_TBL
;
-- containment
SELECT
''
AS
xxx
,
p
.
f1
,
poly
.
f1
,
poly
.
f1
~
p
.
f1
AS
contains
FROM
POLYGON_TBL
poly
,
POINT_TBL
p
;
SELECT
polygon
(
f1
)
FROM
BOX_TBL
;
SELECT
''
AS
xxx
,
p
.
f1
,
poly
.
f1
,
p
.
f1
@
poly
.
f1
AS
contained
FROM
POLYGON_TBL
poly
,
POINT_TBL
p
;
SELECT
polygon
(
f1
)
FROM
PATH_TBL
WHERE
isclosed
(
f1
);
SELECT
''
AS
xxx
,
points
(
f1
)
AS
npoints
,
f1
AS
polygon
FROM
POLYGON_TBL
;
SELECT
f1
AS
open_path
,
polygon
(
pclose
(
f1
))
AS
polygon
FROM
PATH_TBL
WHERE
isopen
(
f1
);
SELECT
''
AS
xxx
,
polygon
(
f1
)
FROM
BOX_TBL
;
SELECT
''
AS
xxx
,
polygon
(
f1
)
FROM
PATH_TBL
WHERE
isclosed
(
f1
);
SELECT
''
AS
xxx
,
f1
AS
open_path
,
polygon
(
pclose
(
f1
))
AS
polygon
FROM
PATH_TBL
WHERE
isopen
(
f1
);
-- convert circles to polygons using the default number of points
SELECT
polygon
(
f1
)
FROM
CIRCLE_TBL
;
SELECT
''
AS
xxx
,
polygon
(
f1
)
FROM
CIRCLE_TBL
;
-- convert the circle to an 8-point polygon
SELECT
polygon
(
8
,
f1
)
FROM
CIRCLE_TBL
;
SELECT
''
AS
xxx
,
polygon
(
8
,
f1
)
FROM
CIRCLE_TBL
;
--
-- Circles
--
SELECT
circle
(
f1
,
50
.
0
)
FROM
POINT_TBL
;
SELECT
''
AS
xxx
,
circle
(
f1
,
50
.
0
)
FROM
POINT_TBL
;
SELECT
''
AS
xxx
,
circle
(
f1
)
FROM
BOX_TBL
;
SELECT
''
AS
xxx
,
circle
(
f1
)
FROM
POLYGON_TBL
WHERE
(
#
f1
)
>=
2
;
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
;
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
;
src/test/regress/sql/lseg.sql
View file @
3d5dd9bd
...
...
@@ -21,5 +21,5 @@ select * from LSEG_TBL;
SELECT
*
FROM
LSEG_TBL
WHERE
s
<=
'[(1,2),(3,4)]'
::
lseg
;
SELECT
*
FROM
LSEG_TBL
WHERE
(
s
<
===
>
'[(1,2),(3,4)]'
::
lseg
)
<
10
;
SELECT
*
FROM
LSEG_TBL
WHERE
(
s
<
-
>
'[(1,2),(3,4)]'
::
lseg
)
<
10
;
src/test/regress/sql/point.sql
View file @
3d5dd9bd
...
...
@@ -25,54 +25,54 @@ INSERT INTO POINT_TBL(f1) VALUES ('(10.0,10.0');
SELECT
''
AS
six
,
POINT_TBL
.
*
;
-- left of
SELECT
''
AS
three
,
p
.
*
FROM
POINT_TBL
p
WHERE
p
.
f1
!
<
'(0.0, 0.0)'
;
SELECT
''
AS
three
,
p
.
*
FROM
POINT_TBL
p
WHERE
p
.
f1
<
<
'(0.0, 0.0)'
;
-- right of
SELECT
''
AS
three
,
p
.
*
FROM
POINT_TBL
p
WHERE
'(0.0,0.0)'
!
>
p
.
f1
;
SELECT
''
AS
three
,
p
.
*
FROM
POINT_TBL
p
WHERE
'(0.0,0.0)'
>
>
p
.
f1
;
-- above
SELECT
''
AS
one
,
p
.
*
FROM
POINT_TBL
p
WHERE
'(0.0,0.0)'
!
^
p
.
f1
;
SELECT
''
AS
one
,
p
.
*
FROM
POINT_TBL
p
WHERE
'(0.0,0.0)'
>
^
p
.
f1
;
-- below
SELECT
''
AS
one
,
p
.
*
FROM
POINT_TBL
p
WHERE
p
.
f1
!|
'(0.0, 0.0)'
;
SELECT
''
AS
one
,
p
.
*
FROM
POINT_TBL
p
WHERE
p
.
f1
<^
'(0.0, 0.0)'
;
-- equal
SELECT
''
AS
one
,
p
.
*
FROM
POINT_TBL
p
WHERE
p
.
f1
=|
=
'(5.1, 34.5)'
;
SELECT
''
AS
one
,
p
.
*
FROM
POINT_TBL
p
WHERE
p
.
f1
~
=
'(5.1, 34.5)'
;
-- point in box
SELECT
''
AS
three
,
p
.
*
FROM
POINT_TBL
p
WHERE
p
.
f1
===>
'(0,0,100,100)'
;
WHERE
p
.
f1
@
'(0,0,100,100)'
::
box
;
SELECT
''
AS
three
,
p
.
*
FROM
POINT_TBL
p
WHERE
not
on_pb
(
p
.
f1
,
'(0,0,100,100)'
::
box
)
;
WHERE
not
p
.
f1
@
'(0,0,100,100)'
::
box
;
SELECT
''
AS
two
,
p
.
*
FROM
POINT_TBL
p
WHERE
on_ppath
(
p
.
f1
,
'[(0,0),(-10,0),(-10,10)]'
::
path
)
;
WHERE
p
.
f1
@
'[(0,0),(-10,0),(-10,10)]'
::
path
;
SELECT
''
AS
six
,
p
.
f1
,
p
.
f1
<
===
>
'(0,0)'
::
point
AS
dist
SELECT
''
AS
six
,
p
.
f1
,
p
.
f1
<
-
>
'(0,0)'
::
point
AS
dist
FROM
POINT_TBL
p
ORDER
BY
dist
;
SET
geqo
TO
'off'
;
SELECT
''
AS
thirtysix
,
p1
.
f1
AS
point1
,
p2
.
f1
AS
point2
,
p1
.
f1
<
===
>
p2
.
f1
AS
dist
SELECT
''
AS
thirtysix
,
p1
.
f1
AS
point1
,
p2
.
f1
AS
point2
,
p1
.
f1
<
-
>
p2
.
f1
AS
dist
FROM
POINT_TBL
p1
,
POINT_TBL
p2
ORDER
BY
dist
;
SELECT
''
AS
thirty
,
p1
.
f1
AS
point1
,
p2
.
f1
AS
point2
FROM
POINT_TBL
p1
,
POINT_TBL
p2
WHERE
(
p1
.
f1
<
===
>
p2
.
f1
)
>
3
;
WHERE
(
p1
.
f1
<
-
>
p2
.
f1
)
>
3
;
-- put distance result into output to allow sorting with GEQ optimizer - tgl 97/05/10
SELECT
''
AS
fifteen
,
p1
.
f1
AS
point1
,
p2
.
f1
AS
point2
,
(
p1
.
f1
<
===
>
p2
.
f1
)
AS
distance
SELECT
''
AS
fifteen
,
p1
.
f1
AS
point1
,
p2
.
f1
AS
point2
,
(
p1
.
f1
<
-
>
p2
.
f1
)
AS
distance
FROM
POINT_TBL
p1
,
POINT_TBL
p2
WHERE
(
p1
.
f1
<
===>
p2
.
f1
)
>
3
and
p1
.
f1
!
<
p2
.
f1
WHERE
(
p1
.
f1
<
->
p2
.
f1
)
>
3
and
p1
.
f1
<
<
p2
.
f1
ORDER
BY
distance
;
-- put distance result into output to allow sorting with GEQ optimizer - tgl 97/05/10
SELECT
''
AS
three
,
p1
.
f1
AS
point1
,
p2
.
f1
AS
point2
,
(
p1
.
f1
<
===
>
p2
.
f1
)
AS
distance
SELECT
''
AS
three
,
p1
.
f1
AS
point1
,
p2
.
f1
AS
point2
,
(
p1
.
f1
<
-
>
p2
.
f1
)
AS
distance
FROM
POINT_TBL
p1
,
POINT_TBL
p2
WHERE
(
p1
.
f1
<
===>
p2
.
f1
)
>
3
and
p1
.
f1
!<
p2
.
f1
and
p1
.
f1
!
^
p2
.
f1
WHERE
(
p1
.
f1
<
->
p2
.
f1
)
>
3
and
p1
.
f1
<<
p2
.
f1
and
p1
.
f1
>
^
p2
.
f1
ORDER
BY
distance
;
RESET
geqo
;
...
...
src/test/regress/sql/polygon.sql
View file @
3d5dd9bd
...
...
@@ -67,17 +67,17 @@ SELECT '' AS zero, p.*
-- contained
SELECT
''
AS
one
,
p
.
*
FROM
POLYGON_TBL
p
WHERE
p
.
f1
@
'(3.0,1.0),(3.0,3.0),(1.0,0.0)'
;
WHERE
p
.
f1
@
'(3.0,1.0),(3.0,3.0),(1.0,0.0)'
::
polygon
;
-- same
SELECT
''
AS
one
,
p
.
*
FROM
POLYGON_TBL
p
WHERE
p
.
f1
~=
'(3.0,1.0),(3.0,3.0),(1.0,0.0)'
;
WHERE
p
.
f1
~=
'(3.0,1.0),(3.0,3.0),(1.0,0.0)'
::
polygon
;
-- contains
SELECT
''
AS
one
,
p
.
*
FROM
POLYGON_TBL
p
WHERE
p
.
f1
~
'(3.0,1.0),(3.0,3.0),(1.0,0.0)'
;
WHERE
p
.
f1
~
'(3.0,1.0),(3.0,3.0),(1.0,0.0)'
::
polygon
;
--
-- polygon logic
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment