Package org.voltdb.catalog

Examples of org.voltdb.catalog.Database


    /**
     * Return an ordered list of all the foreign ancestor columns for the given column.
     * @param catalog_col
     */
    public List<Column> getAncestors(Column catalog_col) {
        Database catalog_db = (Database) catalog_col.getParent().getParent();
        List<Column> ret = new ArrayList<Column>();
        String key = CatalogKey.createKey(catalog_col);
        for (String ancestor_key : this.column_ancestors.get(key)) {
            // If this table is missing from the catalog, then we want to stop
            // the ancestor list
View Full Code Here


     * Return an unordered set of foreign key descendant tables for the given table
     * @param catalog_tbl
     * @return
     */
    public Collection<Table> getDescendants(Table catalog_tbl) {
        Database catalog_db = (Database) catalog_tbl.getParent();
        Set<Table> ret = new HashSet<Table>();
        String key = CatalogKey.createKey(catalog_tbl);
        boolean contains = this.table_descendants.containsKey(key);
        if (contains == false) {
            LOG.warn("Missing " + key + "???");
            LOG.warn(this.debug());
            // System.out.println(this.table_descendants.keySet());
            LOG.warn(CatalogUtil.debug(catalog_db.getTables()));
        }
        assert (contains) : "No table descendants for " + key + " (" + contains + ")";
        for (String dependent_key : this.table_descendants.get(key)) {
            Table dependent_tbl = CatalogKey.getFromKey(catalog_db, dependent_key, Table.class);
            // If the table is missing, that's ok...
View Full Code Here

     * Return an unordered set of foreign key descendant columns for the given column
     * @param catalog_col
     * @return
     */
    public Collection<Column> getDescendants(Column catalog_col) {
        Database catalog_db = (Database) catalog_col.getParent().getParent();
        Set<Column> ret = new HashSet<Column>();
        String key = CatalogKey.createKey(catalog_col);
        if (this.column_descendants.containsKey(key)) {
            for (String dependent_key : this.column_descendants.get(key)) {
                Column dependent_col = CatalogKey.getFromKey(catalog_db, dependent_key, Column.class);
View Full Code Here

                throw new Exception(ex);
            } finally {
                this.tempDDL.delete();
            }
            assert (catalog != null);
            Database catalog_db = CatalogUtil.getDatabase(catalog);

            Map<Statement, Statement> ret = new HashMap<Statement, Statement>();
            for (Statement catalog_stmt : this.rewritten_queries.keySet()) {
                String procName = this.rewritten_queries.get(catalog_stmt);
                assert (procName != null);

                Procedure new_catalog_proc = catalog_db.getProcedures().get(procName);
                assert (new_catalog_proc != null);
                Statement new_catalog_stmt = CollectionUtil.first(new_catalog_proc.getStatements());
                assert (new_catalog_stmt != null);
                ret.put(catalog_stmt, new_catalog_stmt);
            } // FOR
View Full Code Here

        // Catalog clone_catalog = new Catalog();
        // clone_catalog.execute(catalog_db.getCatalog().serialize());
        // return (CatalogUtil.getDatabase(clone_catalog));

        final Catalog clone_catalog = CatalogCloner.cloneBaseCatalog(catalog_db.getCatalog(), new ArrayList<Class<? extends CatalogType>>());
        Database clone_db = CatalogUtil.getDatabase(clone_catalog);
        assert (!catalog_db.equals(clone_db));

        // Need to also clone the MultiColumn guys too!
        for (Table catalog_tbl : catalog_db.getTables()) {
            Table clone_tbl = clone_db.getTables().get(catalog_tbl.getName());
            for (Column catalog_col : catalog_tbl.getColumns()) {
                if (catalog_col instanceof MultiColumn) {
                    MultiColumn mc = (MultiColumn) catalog_col;
                    Column clone_cols[] = new Column[mc.size()];
                    for (int i = 0; i < clone_cols.length; i++) {
                        clone_cols[i] = clone_tbl.getColumns().get(mc.get(i).getName());
                    } // FOR

                    MultiColumn clone_mc = MultiColumn.get(clone_cols);
                    assert (clone_mc != null);
                }
            }
            assert (catalog_tbl.getColumns().size() == clone_tbl.getColumns().size()) : catalog_tbl.getColumns() + " != " + clone_tbl.getColumns();
        } // FOR

        // And don't forget MultiProcParameter!
        for (Procedure catalog_proc : catalog_db.getProcedures()) {
            Procedure clone_proc = clone_db.getProcedures().get(catalog_proc.getName());
            for (ProcParameter catalog_param : catalog_proc.getParameters()) {
                if (catalog_param instanceof MultiProcParameter) {
                    MultiProcParameter mpp = (MultiProcParameter) catalog_param;
                    ProcParameter clone_params[] = new ProcParameter[mpp.size()];
                    for (int i = 0; i < clone_params.length; i++) {
View Full Code Here

                if (element != null && !skip_types.contains(element.getClass()))
                    CatalogCloner.clone(element, new_catalog);
            }
        }.traverse(catalog);
       
        Database orig_database = CatalogUtil.getDatabase(catalog);
        Database new_database = CatalogUtil.getDatabase(new_catalog);

        if (skip_types.contains(Table.class) == false && skip_types.contains(Column.class) == false) {
            // Clone constraints if they were not skipped
            if (skip_types.contains(Constraint.class) == false) {
                CatalogCloner.cloneConstraints(orig_database, new_database);
View Full Code Here

            Constraint src_cons = (Constraint) src_item;
            Constraint dest_cons = (Constraint) clone;

            Table src_fkey_tbl = src_cons.getForeignkeytable();
            if (src_fkey_tbl != null) {
                Database dest_db = (Database) dest_cons.getParent().getParent();
                Table dest_fkey_tbl = dest_db.getTables().get(src_fkey_tbl.getName());
                if (dest_fkey_tbl != null) {
                    dest_cons.setForeignkeytable(dest_fkey_tbl);
                    for (ColumnRef src_cref : ((Constraint) src_item).getForeignkeycols()) {
                        CatalogCloner.clone(src_cref, dest_catalog);
View Full Code Here

        }
        this.force_table_partition.get(table_key).add(column_key);
    }

    public Collection<Column> getForcedTablePartitionCandidates(Table catalog_tbl) {
        final Database catalog_db = CatalogUtil.getDatabase(catalog_tbl);
        final String table_key = CatalogKey.createKey(catalog_tbl);
        ListOrderedSet<Column> ret = new ListOrderedSet<Column>();
        if (this.force_table_partition.containsKey(table_key)) {
            for (String column_key : this.force_table_partition.get(table_key)) {
                ret.add(CatalogKey.getFromKey(catalog_db, column_key, Column.class));
View Full Code Here

     *
     * @param catalog_item
     * @return
     */
    private static CatalogUtil.Cache getCatalogCache(CatalogType catalog_item) {
        final Database catalog_db = (catalog_item instanceof Database ? (Database) catalog_item : CatalogUtil.getDatabase(catalog_item));
        CatalogUtil.Cache ret = CACHE.get(catalog_db);
        if (ret == null) {
            ret = new CatalogUtil.Cache();
            CACHE.put(catalog_db, ret);
        }
View Full Code Here

        return (ret);
    }

    public static void preload(CatalogType catalog_obj) {
        assert (catalog_obj != null);
        Database catalog_db = CatalogUtil.getDatabase(catalog_obj);

        // Pre-load all the arrays for the CatalogMaps that we will access
        // frequently
        for (Procedure catalog_proc : catalog_db.getProcedures()) {
            catalog_proc.getStatements().values();
            for (Statement catalog_stmt : catalog_proc.getStatements()) {
                catalog_stmt.getFragments().values();
                catalog_stmt.getMs_fragments().values();
            } // STATEMENT
View Full Code Here

TOP

Related Classes of org.voltdb.catalog.Database

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.