Files
secondo/Algebras/ParThread/Tests/parthreadAlgebra.test

157 lines
7.0 KiB
Plaintext
Raw Normal View History

2026-01-23 17:03:45 +08:00
# This file is part of SECONDO.
#
# Copyright (C) 2004, University in Hagen, Department of Computer Science,
# Database Systems for New Applications.
#
# SECONDO is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# SECONDO is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with SECONDO; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#
# --- testqueries for the parthread algebra ---
#
# March 2020, Thomas Fischer
# delete database parthread_lie
# create database parthread_lie;
# restore database parthread_lie from '$(SECONDO_BUILD_DIR)/Algebras/ParThread/Tests/TestData/parthread_lie';
open database parthread_lie;
#setup parThreadLieTest ParThreadAlgebra
#testcase noCtx
#yields (int 340107)
query Osm_Ways feed count;
#testcase TC1par2CtxOnlyPipelineNoDelay
#yields (int 340107)
query Osm_Ways feed par[1] count;
#testcase TC2par2CtxOnlyPipelineDelay1
#yields (int 340107)
query Osm_Ways feed par[1] delayS[1] count;
#testcase HashPar2CtxOnlyPipeline
#yields (int 340107)
#query Osm_Ways feed par[3, WayId] count;
#testcase noCtx
#yields (int 24979)
query Osm_Ways feed filter[.NodeCounter=3] count;
#testcase TC4par3CtxFilterNoDelay
#yields (int 24979)
query Osm_Ways feed par[1] filter[.NodeCounter=3] par[16] count;
#testcase TC5par3CtxFilterDelay1
#yields (int 24979)
query Osm_Ways feed par[1] filter[.NodeCounter=3] delayS[1] par[16] count;
#testcase TC7parAttr3CtxFilterNoDelay
#yields (int 24979)
query Osm_Ways feed par[1, WayId] filter[.NodeCounter=3] par[16] count;
#testcase TC8parAttr3CtxFilterDelay1
#yields (int 24979)
query Osm_Ways feed par[1, WayId] filter[.NodeCounter=3] delayS[1] par[16] count;
#testcase TC10parAttr4CtxFilterProjectNoDelay
#yields (int 24979)
query Osm_Ways feed par[1, WayId] filter[.NodeCounter=3] par[16] project[WayId, NodeCounter] par[16] count;
#testcase TC11parAttr4CtxFilterProjectDelay1
#yields (int 24979)
query Osm_Ways feed par[1, WayId] filter[.NodeCounter=3] delayS[1] par[16] project[WayId, NodeCounter] delayS[1] par[16] count;
#testcase TC13par4CtxGeoDistanceNoDelay
#yields (int 267587)
query Osm_Nodes feed par[1] extend[Geo: makepoint(.Lon, .Lat)] par[16] extend[DistInKm: distanceOrthodrome(.Geo, [const point value(10.00 50.00)])/1000] par[16] count;
#testcase TC14par4CtxGeoDistanceDelay1
#yields (int 267587)
query Osm_Nodes feed par[1] delayS[1] extend[Geo: makepoint(.Lon, .Lat)] par[16] extend[DistInKm: distanceOrthodrome(.Geo, [const point value(10.00 50.00)])/1000] par[16] count;
#testcase TC16par4CtxSingleSymmjoinNoDelay
#yields (int 498)
query Osm_Ways feedNth[50,TRUE] par[1,NodeRef] filter[.NodeCounter=3] {w} Osm_Nodes feed par[1,NodeId] {n} symmjoin[.NodeRef_w = ..NodeId_n] par[16] count;
#testcase TC17par4CtxSingleSymmjoinDelay1
#yields (int 498)
query Osm_Ways feedNth[50,TRUE] par[1,NodeRef] filter[.NodeCounter=3] {w} Osm_Nodes feed par[1,NodeId] {n} symmjoin[.NodeRef_w = ..NodeId_n] delayS[1] par[16] count;
#testcase TC18par6CtxDoubleSymmjoinDelay11
#yields (int 1044)
query Osm_Ways feedNth[50,TRUE] par[1,NodeRef] filter[.NodeCounter=3] {w} Osm_Nodes feed par[1,NodeId] {n} symmjoin[.NodeRef_w = ..NodeId_n] par[16, WayId_w] Osm_WayTags feed par[1, WayIdInTag] {t} symmjoin[.WayId_w = ..WayIdInTag_t] par[16] count;
#testcase TC19parTripleSymmjoinSeqDelay111
#yields (int 765)
query Osm_Ways feedNth[50,TRUE] par[1,NodeRef] filter[.NodeCounter=3] {w} Osm_Nodes feed par[1,NodeId] {n} symmjoin[.NodeRef_w = ..NodeId_n] delayS[1] par[16, WayId_w] Osm_WayTags feed par[1, WayIdInTag] {t} symmjoin[.WayId_w = ..WayIdInTag_t] delayS[1] par[16, WayId_w] Osm_Relations feed par[1, MemberRef] {r} filter[.MemberType_r starts "way"] symmjoin[.WayId_w = ..MemberRef_r] delayS[1] par[16] count;
#testcase TC20par8CtxTripleSymmjoinBushyDelay1
#yields (int 0)
query Osm_Ways feedNth[50,TRUE] par[1, WayId] filter[.NodeCounter=3] {w} Osm_WayTags feed par[1, WayIdInTag] {t} symmjoin[.WayId_w = ..WayIdInTag_t] delayS[1] par[16, NodeRef_w] Osm_Nodes feedNth[50,TRUE] par[1, NodeId] {n} Osm_NodeTags feed par[1, NodeIdInTag] {t} symmjoin[.NodeId_n = ..NodeIdInTag_t] delayS[1] par[16, NodeId_n] symmjoin[.NodeRef_w = ..NodeId_n] delayS[1] par[16] count;
#testcase TC21par4CtxSingleHashjoinNoDelay
#yields (int 24979)
query Osm_Ways feed par[1,NodeRef] filter[.NodeCounter=3] {w} Osm_Nodes feed par[1] {n} hashjoin[NodeRef_w, NodeId_n] par[16] count;
#testcase TC22par4CtxSingleHashjoinDelay1
#yields (int 24979)
query Osm_Ways feed par[1,NodeRef] filter[.NodeCounter=3] {w} Osm_Nodes feed par[1,NodeId] {n} hashjoin[NodeRef_w, NodeId_n] delayS[1] par[16] count;
#testcase TC23par6CtxDoubleHashjoinNoDelay
#yields (int 56395)
query Osm_Ways feed par[1, NodeRef] filter[.NodeCounter=3] {w} Osm_Nodes feed par[1, NodeId] {n} hashjoin[NodeRef_w, NodeId_n] par[16, WayId_w] Osm_WayTags feed par[1, WayIdInTag] {t} hashjoin[WayId_w, WayIdInTag_t] par[16] count;
#testcase TC24par6CtxDoubleHashjoinDelay1
#yields (int 56395)
query Osm_Ways feed par[1, NodeRef] filter[.NodeCounter=3] {w} Osm_Nodes feed par[1, NodeId] {n} hashjoin[NodeRef_w, NodeId_n] delayS[1] par[16, WayId_w] Osm_WayTags feed par[1, WayIdInTag] {t} hashjoin[WayId_w, WayIdInTag_t] delayS[1] par[16] count;
#testcase TC25par8CtxTripleHashjoinNoDelay
#yields (int 49351)
query Osm_Ways feed par[1, NodeRef] filter[.NodeCounter=3] {w} Osm_Nodes feed par[1, NodeId] {n} hashjoin[NodeRef_w, NodeId_n] par[16, WayId_w] Osm_WayTags feed par[1, WayIdInTag] {t} hashjoin[WayId_w, WayIdInTag_t] par[16, WayId_w] Osm_Relations feed par[1, MemberRef] {r} filter[.MemberType_r starts "way"] hashjoin[WayId_w, MemberRef_r] par[16] count;
#testcase TC26par8CtxTripleHashjoinSeqDelay1
#yields (int 49351)
query Osm_Ways feed par[1, NodeRef] filter[.NodeCounter=3] {w} Osm_Nodes feed par[1, NodeId] {n} hashjoin[NodeRef_w, NodeId_n] delayS[1] par[16, WayId_w] Osm_WayTags feed par[1, WayIdInTag] {t} hashjoin[WayId_w, WayIdInTag_t] delayS[1] par[16, WayId_w] Osm_Relations feed par[1, MemberRef] {r} filter[.MemberType_r starts "way"] hashjoin[WayId_w, MemberRef_r] delayS[1] par[16] count;
#testcase TC27par8CtxTripleHashjoinBushyDelay1
#yields (int 2807)
query Osm_Ways feed par[1, WayId] filter[.NodeCounter=3] {w} Osm_WayTags feed par[1, WayIdInTag] {t} hashjoin[WayId_w, WayIdInTag_t] delayS[1] par[16, NodeRef_w] Osm_Nodes feed par[1, NodeId] {n} Osm_NodeTags feed par[1, NodeIdInTag] {t} hashjoin[NodeId_n, NodeIdInTag_t] delayS[1] par[16, NodeId_n] hashjoin[NodeRef_w, NodeId_n] delayS[1] par[16] count;
# the TEARDOWN directive is followed by commands which
# should be executed after the execution of all TESTCASES
#teardown
close database;
# delete database parthread_lie;