Package org.voltdb.sysprocs

Source Code of org.voltdb.sysprocs.GetCatalog

package org.voltdb.sysprocs;

import java.util.List;
import java.util.Map;

import org.voltdb.DependencySet;
import org.voltdb.ParameterSet;
import org.voltdb.ProcInfo;
import org.voltdb.VoltSystemProcedure;
import org.voltdb.VoltTable;
import org.voltdb.VoltTable.ColumnInfo;
import org.voltdb.VoltType;
import org.voltdb.types.TimestampType;

import edu.brown.hstore.PartitionExecutor;

/**
* Get a status snapshot of the PartitionExecutors in the cluster
* @author pavlo
*/
@ProcInfo(singlePartition = true)
public class GetCatalog extends VoltSystemProcedure {

    public static final ColumnInfo nodeResultsColumns[] = {
        new ColumnInfo("CATALOG",   VoltType.STRING),
        new ColumnInfo("CREATED",   VoltType.TIMESTAMP),
    };
   
    @Override
    public void initImpl() {
        executor.registerPlanFragment(SysProcFragmentId.PF_getCatalog, this);
    }

    @Override
    public DependencySet executePlanFragment(Long txn_id,
                                             Map<Integer, List<VoltTable>> dependencies,
                                             int fragmentId,
                                             ParameterSet params,
                                             PartitionExecutor.SystemProcedureExecutionContext context) {
        assert(fragmentId == SysProcFragmentId.PF_getCatalog);
       
        // Serialize the catalog and throw it back to the client
        VoltTable vt = new VoltTable(nodeResultsColumns);
        vt.addRow(catalogContext.catalog.serialize(), new TimestampType());
        DependencySet result = new DependencySet(SysProcFragmentId.PF_getCatalog, vt);
        return (result);
    }

    public VoltTable[] run() {
        // Blast that mofo and get the catalog for the client
        final SynthesizedPlanFragment pfs[] = new SynthesizedPlanFragment[1];
        final ParameterSet params = new ParameterSet();
        pfs[0] = new SynthesizedPlanFragment();
        pfs[0].fragmentId = SysProcFragmentId.PF_getCatalog;
        pfs[0].inputDependencyIds = new int[] { };
        pfs[0].outputDependencyIds = new int[] { SysProcFragmentId.PF_getCatalog };
        pfs[0].multipartition = false;
        pfs[0].nonExecSites = false;
        pfs[0].destPartitionId = this.partitionId;
        pfs[0].parameters = params;
        pfs[0].last_task = true;
       
        return executeSysProcPlanFragments(pfs, SysProcFragmentId.PF_getCatalog);
    }
}
TOP

Related Classes of org.voltdb.sysprocs.GetCatalog

TOP
Copyright © 2018 www.massapi.com. 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.