Class OuterTable

  • All Implemented Interfaces:
    RootTable, TableDataSource

    class OuterTable
    extends VirtualTable
    implements RootTable
    A Table class for forming OUTER type results. This takes as its constructor the base table (with no outer NULL fields) that is what the result is based on. It is then possible to merge in tables that are ancestors
    • Field Detail

      • outer_row_count

        private int outer_row_count
        The row count of the outer rows.
    • Constructor Detail

      • OuterTable

        public OuterTable​(Table input_table)
        Constructs the OuterTable given the base table.
    • Method Detail

      • mergeIn

        public void mergeIn​(Table outside_table)
        Merges the given table in with this table.
      • getSelectableSchemeFor

        SelectableScheme getSelectableSchemeFor​(int column,
                                                int original_column,
                                                Table table)
        Returns a SelectableScheme for the given column in the given VirtualTable row domain. This searches down through the tables ancestors until it comes across a table with a SelectableScheme where the given column is fully resolved. In most cases, this will be the root DataTable.

        For an OuterTable, this must also include any rows with an index of -1 which indicates they are NULL. NULL rows are put at the top of the index list.

        Overrides:
        getSelectableSchemeFor in class JoinedTable
      • typeEquals

        public boolean typeEquals​(RootTable table)
        This function is used to check that two tables are identical. This is used in operations like 'union' that need to determine that the roots are infact of the same type.
        Specified by:
        typeEquals in interface RootTable