157 lines
7.0 KiB
Plaintext
157 lines
7.0 KiB
Plaintext
# 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;
|
|
|