223 lines
5.6 KiB
C++
223 lines
5.6 KiB
C++
|
|
/*
|
||
|
|
----
|
||
|
|
This file is part of SECONDO.
|
||
|
|
|
||
|
|
Copyright (C) 2015,
|
||
|
|
Faculty of Mathematics and 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
|
||
|
|
----
|
||
|
|
|
||
|
|
//[$][\$]
|
||
|
|
|
||
|
|
@author
|
||
|
|
T. Beckmann
|
||
|
|
|
||
|
|
@description
|
||
|
|
see OperatorSpec
|
||
|
|
|
||
|
|
@note
|
||
|
|
Checked - 2020
|
||
|
|
|
||
|
|
@history
|
||
|
|
Version 1.0 - Created - T. Beckmann - 2018
|
||
|
|
Version 1.1 - Added windowintersects2 for the worker paramter - D. Selenyi - 19.08.2020
|
||
|
|
|
||
|
|
@todo
|
||
|
|
none
|
||
|
|
|
||
|
|
*/
|
||
|
|
|
||
|
|
#include "DRelAlgebra.h"
|
||
|
|
#include "NestedList.h"
|
||
|
|
#include "QueryProcessor.h"
|
||
|
|
#include "StandardTypes.h"
|
||
|
|
#include "drelport.h"
|
||
|
|
|
||
|
|
namespace drel {
|
||
|
|
|
||
|
|
extern TypeConstructor DRelTC;
|
||
|
|
extern TypeConstructor DFRelTC;
|
||
|
|
|
||
|
|
extern Operator DRELFUNARG1OP;
|
||
|
|
extern Operator DRELFUNARG2OP;
|
||
|
|
|
||
|
|
extern Operator DRELRELFUNARG1OP;
|
||
|
|
|
||
|
|
extern Operator createboundaryOp;
|
||
|
|
extern Operator getboundaryOp;
|
||
|
|
extern Operator getBoundaryIndexOp;
|
||
|
|
extern Operator rect2cellgridOp;
|
||
|
|
extern Operator file2streamOp;
|
||
|
|
|
||
|
|
extern Operator drelfdistributeOp;
|
||
|
|
extern Operator dreldistributeOp;
|
||
|
|
extern Operator drelimportOp;
|
||
|
|
|
||
|
|
extern Operator drelpartitionOp;
|
||
|
|
extern Operator drelspatialpartitionOp;
|
||
|
|
|
||
|
|
extern Operator compareDistTypeOp;
|
||
|
|
extern Operator drelcollect_boxOp;
|
||
|
|
extern Operator drel2darrayOp;
|
||
|
|
|
||
|
|
extern Operator countOp;
|
||
|
|
extern Operator lcountOp;
|
||
|
|
|
||
|
|
extern Operator dsummarizeOp;
|
||
|
|
|
||
|
|
extern Operator drelfilterOp;
|
||
|
|
extern Operator projectOp;
|
||
|
|
extern Operator drelextendOp;
|
||
|
|
extern Operator drelprojectextendOp;
|
||
|
|
extern Operator headOp;
|
||
|
|
extern Operator renameOp;
|
||
|
|
|
||
|
|
extern Operator lrdupOp;
|
||
|
|
extern Operator lsortOp;
|
||
|
|
extern Operator lsortbyOp;
|
||
|
|
extern Operator drellgroupbyOp;
|
||
|
|
|
||
|
|
extern Operator drelcreatebtreeOp;
|
||
|
|
extern Operator exactmatchOp;
|
||
|
|
extern Operator rangeOp;
|
||
|
|
|
||
|
|
extern Operator drelbulkloadrtreeOp;
|
||
|
|
extern Operator windowintersectsOp;
|
||
|
|
|
||
|
|
extern Operator rdupOp;
|
||
|
|
extern Operator sortOp;
|
||
|
|
extern Operator sortbyOp;
|
||
|
|
extern Operator drelgroupbyOp;
|
||
|
|
|
||
|
|
extern Operator sortmergejoinOp;
|
||
|
|
extern Operator itHashJoinOp;
|
||
|
|
|
||
|
|
extern Operator inloopjoinOp;
|
||
|
|
|
||
|
|
extern Operator setDRelPortOp;
|
||
|
|
extern Operator getDRelPortOp;
|
||
|
|
|
||
|
|
extern Operator windowintersects2Op;
|
||
|
|
|
||
|
|
/*
|
||
|
|
1 Implementation of the Algebra DRel
|
||
|
|
|
||
|
|
*/
|
||
|
|
DRelAlgebra::DRelAlgebra() {
|
||
|
|
AddTypeConstructor( &DRelTC );
|
||
|
|
DRelTC.AssociateKind( Kind::SIMPLE() );
|
||
|
|
AddTypeConstructor( &DFRelTC );
|
||
|
|
DFRelTC.AssociateKind( Kind::SIMPLE( ) );
|
||
|
|
|
||
|
|
AddOperator( &DRELFUNARG1OP );
|
||
|
|
AddOperator( &DRELFUNARG2OP );
|
||
|
|
|
||
|
|
AddOperator( &DRELRELFUNARG1OP );
|
||
|
|
|
||
|
|
AddOperator( &createboundaryOp );
|
||
|
|
createboundaryOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &getboundaryOp );
|
||
|
|
AddOperator( &getBoundaryIndexOp );
|
||
|
|
AddOperator( &rect2cellgridOp );
|
||
|
|
AddOperator( &file2streamOp );
|
||
|
|
|
||
|
|
AddOperator( &drelfdistributeOp );
|
||
|
|
AddOperator( &dreldistributeOp );
|
||
|
|
AddOperator( &drelimportOp );
|
||
|
|
|
||
|
|
AddOperator( &drelpartitionOp );
|
||
|
|
AddOperator( &drelspatialpartitionOp );
|
||
|
|
|
||
|
|
AddOperator( &drelfilterOp );
|
||
|
|
drelfilterOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &projectOp );
|
||
|
|
projectOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &drelextendOp );
|
||
|
|
drelextendOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &drelprojectextendOp );
|
||
|
|
drelprojectextendOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &headOp );
|
||
|
|
headOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &renameOp );
|
||
|
|
renameOp.SetUsesArgsInTypeMapping( );
|
||
|
|
|
||
|
|
AddOperator( &lrdupOp );
|
||
|
|
lrdupOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &lsortOp );
|
||
|
|
lsortOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &lsortbyOp );
|
||
|
|
lsortbyOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &drellgroupbyOp );
|
||
|
|
drellgroupbyOp.SetUsesArgsInTypeMapping( );
|
||
|
|
|
||
|
|
AddOperator( &compareDistTypeOp );
|
||
|
|
AddOperator( &drelcollect_boxOp );
|
||
|
|
AddOperator( &drel2darrayOp );
|
||
|
|
|
||
|
|
AddOperator( &countOp );
|
||
|
|
AddOperator( &lcountOp );
|
||
|
|
|
||
|
|
AddOperator( &dsummarizeOp );
|
||
|
|
|
||
|
|
AddOperator( &drelcreatebtreeOp );
|
||
|
|
drelcreatebtreeOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &exactmatchOp );
|
||
|
|
exactmatchOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &rangeOp );
|
||
|
|
rangeOp.SetUsesArgsInTypeMapping( );
|
||
|
|
|
||
|
|
AddOperator( &drelbulkloadrtreeOp );
|
||
|
|
drelbulkloadrtreeOp.SetUsesArgsInTypeMapping( );
|
||
|
|
|
||
|
|
AddOperator( &windowintersectsOp );
|
||
|
|
windowintersectsOp.SetUsesArgsInTypeMapping( );
|
||
|
|
|
||
|
|
AddOperator( &rdupOp );
|
||
|
|
rdupOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &sortOp );
|
||
|
|
sortOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &sortbyOp );
|
||
|
|
sortbyOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &drelgroupbyOp );
|
||
|
|
drelgroupbyOp.SetUsesArgsInTypeMapping( );
|
||
|
|
|
||
|
|
AddOperator( &sortmergejoinOp );
|
||
|
|
sortmergejoinOp.SetUsesArgsInTypeMapping( );
|
||
|
|
AddOperator( &itHashJoinOp );
|
||
|
|
itHashJoinOp.SetUsesArgsInTypeMapping( );
|
||
|
|
|
||
|
|
AddOperator( &inloopjoinOp );
|
||
|
|
inloopjoinOp.SetUsesArgsInTypeMapping( );
|
||
|
|
|
||
|
|
AddOperator( &setDRelPortOp );
|
||
|
|
AddOperator( &getDRelPortOp );
|
||
|
|
|
||
|
|
AddOperator( &windowintersects2Op );
|
||
|
|
windowintersects2Op.SetUsesArgsInTypeMapping( );
|
||
|
|
}
|
||
|
|
|
||
|
|
extern "C"
|
||
|
|
Algebra*
|
||
|
|
InitializeDRel2Algebra( NestedList* nlRef,
|
||
|
|
QueryProcessor* qpRef ) {
|
||
|
|
|
||
|
|
setDRelPort(1238);
|
||
|
|
return new DRelAlgebra();
|
||
|
|
}
|
||
|
|
|
||
|
|
} // end of namespace drel
|