Package org.teiid.query.optimizer.capabilities

Examples of org.teiid.query.optimizer.capabilities.SourceCapabilities


   
    public static NullOrder getDefaultNullOrder(Object modelID, QueryMetadataInterface metadata, CapabilitiesFinder capFinder) throws QueryMetadataException, TeiidComponentException {
        if (metadata.isVirtualModel(modelID)){
            return NullOrder.UNKNOWN;
        }
        SourceCapabilities caps = getCapabilities(modelID, metadata, capFinder);
        NullOrder order = (NullOrder)caps.getSourceProperty(Capability.QUERY_ORDERBY_DEFAULT_NULL_ORDER);
        if (order == null) {
          return NullOrder.UNKNOWN;
        }
        return order;
    }
View Full Code Here


        if (modelID.equals(modelID1)) {
            return true;
        }

        // Find capabilities
        SourceCapabilities caps = getCapabilities(modelID, metadata, capFinder);
        SourceCapabilities caps1 = getCapabilities(modelID1, metadata, capFinder);
       
        Object connectorID = caps.getSourceProperty(Capability.CONNECTOR_ID);
       
        return connectorID != null && connectorID.equals(caps1.getSourceProperty(Capability.CONNECTOR_ID));
    }
View Full Code Here

      if (metadata.isVirtualModel(modelID)){
            return false;
        }

        // Find capabilities
        SourceCapabilities caps = getCapabilities(modelID, metadata, capFinder);

        return caps.supportsCapability(cap);
    }
View Full Code Here

        this.finder = finder;
        this.multiSourceModels = multiSourceModels;
    }
   
    public SourceCapabilities findCapabilities(String modelName) throws TeiidComponentException {
        SourceCapabilities caps = finder.findCapabilities(modelName);
       
        if(multiSourceModels.contains(modelName)) {
            caps = modifyCapabilities(caps);
        }
       
View Full Code Here

        List models = new ArrayList();
        models.add(MULTI_MODEL);
        MultiSourceCapabilitiesFinder finder = new MultiSourceCapabilitiesFinder(realFinder, models);
       
        // Test the single model to show that it is not affected
        SourceCapabilities singleCaps = finder.findCapabilities(SINGLE_MODEL);
        assertEquals(true, singleCaps.supportsCapability(Capability.QUERY_UNION));
        assertEquals(true, singleCaps.supportsCapability(Capability.QUERY_ORDERBY));
        assertEquals(true, singleCaps.supportsCapability(Capability.QUERY_SELECT_DISTINCT));
        assertEquals(true, singleCaps.supportsCapability(Capability.QUERY_AGGREGATES_AVG));

        // Test the multi model to show that it IS affected
        SourceCapabilities multiCaps = finder.findCapabilities(MULTI_MODEL);
        assertEquals(false, multiCaps.supportsCapability(Capability.QUERY_UNION));
        assertEquals(false, multiCaps.supportsCapability(Capability.QUERY_ORDERBY));
        assertEquals(false, multiCaps.supportsCapability(Capability.QUERY_SELECT_DISTINCT));
        assertEquals(false, multiCaps.supportsCapability(Capability.QUERY_AGGREGATES_AVG));

    }
View Full Code Here

        Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(cm);
       
        CachedFinder finder = new CachedFinder(repo, vdb);
       
        // Test
        SourceCapabilities actual = finder.findCapabilities(modelName);
        assertEquals("Did not get expected capabilities", true, actual.supportsFunction(functionName)); //$NON-NLS-1$
    }
View Full Code Here

                          ProjectIntoNode pinode = new ProjectIntoNode(getID());
                          pinode.setIntoGroup(intoGroup);
                          pinode.setIntoElements(allIntoElements);
                          pinode.setModelName(modelName);
                          processNode = pinode;
                            SourceCapabilities caps = capFinder.findCapabilities(modelName);
                            if (caps.supportsCapability(Capability.INSERT_WITH_ITERATOR)) {
                              pinode.setMode(org.teiid.query.processor.relational.ProjectIntoNode.Mode.ITERATOR);
                            } else if (caps.supportsCapability(Capability.BULK_UPDATE)) {
                              pinode.setMode(org.teiid.query.processor.relational.ProjectIntoNode.Mode.BULK);
                            } else if (caps.supportsCapability(Capability.BATCHED_UPDATES)) {
                              pinode.setMode(org.teiid.query.processor.relational.ProjectIntoNode.Mode.BATCH);
                            } else {
                              pinode.setMode(org.teiid.query.processor.relational.ProjectIntoNode.Mode.SINGLE);
                            }
                        }
View Full Code Here

    }


    public void testFindCapabilities() throws Exception {
        CapabilitiesFinder capFinder = new DefaultCapabilitiesFinder();
        SourceCapabilities caps = capFinder.findCapabilities("blah"); //$NON-NLS-1$
        assertNotNull("Default capabilities should not be null", caps); //$NON-NLS-1$
    }
View Full Code Here

            // If this command can be placed in a batch
            if (isEligibleForBatching(updateCommand, metadata)) {
                // Get the model ID. Subsequent and contiguous commands that update a group in this model are candidates for this batch
                Object batchModelID = metadata.getModelID(getUpdatedGroup(updateCommand).getMetadataID());
                String modelName = metadata.getFullName(batchModelID);
                SourceCapabilities caps = capFinder.findCapabilities(modelName);
                // Only attempt batching if the source supports batching
                if (caps.supportsCapability(Capability.BATCHED_UPDATES)) {
                    // Start a new batch
                    List<Command> batch = new ArrayList<Command>();
                    List<VariableContext> contexts = new ArrayList<VariableContext>();
                    List<Boolean> shouldEvaluate = new ArrayList<Boolean>();
                    // This is the first command in a potential batch, so add it to the batch
View Full Code Here

      RelationalPlan rPlan = (RelationalPlan)this.processPlan;
      if (rPlan.getRootNode() instanceof AccessNode) {
        AccessNode aNode = (AccessNode)rPlan.getRootNode();
        String modelName = aNode.getModelName();
        command = aNode.getCommand();
            SourceCapabilities caps = capabilitiesFinder.findCapabilities(modelName);
            supportPreparedBatchUpdate = caps.supportsCapability(SourceCapabilities.Capability.BULK_UPDATE);
      }
    }
    List<Command> commands = new LinkedList<Command>();
    List<VariableContext> contexts = new LinkedList<VariableContext>();
    List<List<Object>> multiValues = new ArrayList<List<Object>>(this.prepPlan.getReferences().size());
View Full Code Here

TOP

Related Classes of org.teiid.query.optimizer.capabilities.SourceCapabilities

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.