26#ifndef TABLES_TABLEPARSEJOIN_H
27#define TABLES_TABLEPARSEJOIN_H
30#include <casacore/casa/aips.h>
31#include <casacore/tables/TaQL/ExprNodeRep.h>
32#include <casacore/tables/TaQL/TaQLJoin.h>
39 class TableParseQuery;
79 const std::vector<const Table*>& tempTables,
80 const std::vector<TableParseQuery*>& stack);
101 const std::vector<Table>& tables)
const;
109 const std::vector<Table>& other);
String: the storage and methods of handling collections of characters.
std::vector< Table > itsJoinTables
Int64 findRow(const TableExprId &id) const
Find the row in the join table for the given main table row.
uInt findMatchingTables(const std::vector< Table > &exprTables, const std::vector< Table > &tables) const
Tell how many tables in the exprTables vector are the same as those in the tables vector.
rownr_t checkNrow(const std::vector< Table > &) const
Check if all join tables in the vector have the same number of rows.
void splitAnd(const TENShPtr &node, std::vector< TENShPtr > &parts)
Split the ON condition recursively into its AND parts.
std::vector< Table > itsFromTables
TableParseQuery * itsParent
void handleCondition(const TableExprNode &expr)
Handle the ON condition of a join.
void handleConditionParts(std::vector< TENShPtr > &parts)
Handle all AND parts of the join condition.
void addUniqueTables(std::vector< Table > &tables, const std::vector< Table > &other)
Add the tables in the other vector to the tables vector.
TableParseJoin(TableParseQuery *)
void addTable(Int tabnr, const String &name, const Table &table, const String &shorthand, const std::vector< const Table * > &tempTables, const std::vector< TableParseQuery * > &stack)
Add a join table nr, name, or object to the container.
std::shared_ptr< TaQLJoinBase > itsJoin
this file contains all the compiler specific defines
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
std::shared_ptr< TableExprNodeRep > TENShPtr
uInt64 rownr_t
Define the type of a row number in a table.