|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.fuberlin.wiwiss.d2rq.algebra.Relation
public abstract class Relation
TODO Describe this type TODO Add uniqueConstraints() TODO Explicitly list tables!!!
Field Summary | |
---|---|
static Relation |
EMPTY
|
static int |
NO_LIMIT
|
static Relation |
TRUE
|
Fields inherited from interface de.fuberlin.wiwiss.d2rq.algebra.RelationalOperators |
---|
DUMMY |
Constructor Summary | |
---|---|
Relation()
|
Method Summary | |
---|---|
abstract AliasMap |
aliases()
The tables that are used to set up this relation, both in their aliased form, and with their original physical names. |
Set<Attribute> |
allKnownAttributes()
|
static int |
combineLimits(int limit1,
int limit2)
|
abstract Expression |
condition()
An expression that must be satisfied for all tuples in the relation. |
static Relation |
createSimpleRelation(ConnectedDB database,
Attribute[] attributes)
|
abstract ConnectedDB |
database()
|
boolean |
isTrivial()
|
abstract boolean |
isUnique()
|
abstract Set<Join> |
joinConditions()
Returns the join conditions that must hold between the tables in the relation. |
abstract int |
limit()
The limit clause for the SQL result set |
abstract int |
limitInverse()
The limit clause for the SQL result set describing the inverse relation |
abstract List<OrderSpec> |
orderSpecs()
The expressions (and ascending/descending flag) used for ordering the relation. |
abstract Set<ProjectionSpec> |
projections()
The attributes or expressions that the relation is projected to. |
abstract Expression |
softCondition()
An expression satisfied by all tuples in the relation. |
Set<RelationName> |
tables()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface de.fuberlin.wiwiss.d2rq.algebra.RelationalOperators |
---|
project, renameColumns, select |
Field Detail |
---|
public static final int NO_LIMIT
public static Relation EMPTY
public static Relation TRUE
Constructor Detail |
---|
public Relation()
Method Detail |
---|
public static Relation createSimpleRelation(ConnectedDB database, Attribute[] attributes)
public abstract ConnectedDB database()
public abstract AliasMap aliases()
public abstract Set<Join> joinConditions()
Join
spublic abstract Expression condition()
Expression.TRUE
indicates no conditionpublic abstract Expression softCondition()
Expression.TRUE
does not change the contents of
the relation. It is thus just an optional condition that can
be used for optimization, but can be dropped or ignored if
convenient. Typically, there is other Java code that ensures the
condition regardless of whether it is present here or not.
We use this in particular for adding IS NOT NULL constraints
on all nullable columns that need to have a non-NULL value to form a
triple or binding.
Expression.TRUE
indicates no soft conditionpublic abstract Set<ProjectionSpec> projections()
ProjectionSpec
spublic abstract boolean isUnique()
public abstract List<OrderSpec> orderSpecs()
public abstract int limit()
public abstract int limitInverse()
public Set<Attribute> allKnownAttributes()
public Set<RelationName> tables()
public boolean isTrivial()
true
if this is the trivial table (one row, no columns)public static int combineLimits(int limit1, int limit2)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |