Search in sources :

Example 6 with ReferenceImplementation

use of io.crate.metadata.ReferenceImplementation in project crate by crate.

the class SysNodesExpressionsTest method testName.

@Test
public void testName() throws Exception {
    Reference refInfo = refInfo("sys.nodes.name", DataTypes.STRING, RowGranularity.NODE);
    @SuppressWarnings("unchecked") ReferenceImplementation<BytesRef> name = (ReferenceImplementation<BytesRef>) resolver.getChildImplementation(refInfo.ident().columnIdent().name());
    assertEquals(new BytesRef("node 1"), name.value());
}
Also used : Reference(io.crate.metadata.Reference) BytesRef(org.apache.lucene.util.BytesRef) ReferenceImplementation(io.crate.metadata.ReferenceImplementation) Test(org.junit.Test) CrateUnitTest(io.crate.test.integration.CrateUnitTest)

Example 7 with ReferenceImplementation

use of io.crate.metadata.ReferenceImplementation in project crate by crate.

the class SysObjectArrayReference method value.

@Override
public Object[] value() {
    List<NestedObjectExpression> childImplementations = getChildImplementations();
    Object[] values = new Object[childImplementations.size()];
    int i = 0;
    for (NestedObjectExpression expression : childImplementations) {
        Map<String, Object> map = Maps.transformValues(expression.getChildImplementations(), new Function<ReferenceImplementation, Object>() {

            @Nullable
            @Override
            public Object apply(@Nullable ReferenceImplementation input) {
                Object value = input.value();
                if (value != null && value instanceof BytesRef) {
                    return ((BytesRef) value).utf8ToString();
                } else {
                    return value;
                }
            }
        });
        values[i++] = map;
    }
    return values;
}
Also used : NestedObjectExpression(io.crate.operation.reference.NestedObjectExpression) Nullable(javax.annotation.Nullable) BytesRef(org.apache.lucene.util.BytesRef) ReferenceImplementation(io.crate.metadata.ReferenceImplementation)

Example 8 with ReferenceImplementation

use of io.crate.metadata.ReferenceImplementation in project crate by crate.

the class NodeSysReferenceResolver method getCachedImplementation.

private ReferenceImplementation getCachedImplementation(String name) {
    ReferenceImplementation impl = expressionCache.get(name);
    if (impl == null) {
        impl = nodeSysExpression.getChildImplementation(name);
        expressionCache.put(name, impl);
    }
    return impl;
}
Also used : ReferenceImplementation(io.crate.metadata.ReferenceImplementation)

Aggregations

ReferenceImplementation (io.crate.metadata.ReferenceImplementation)8 CrateUnitTest (io.crate.test.integration.CrateUnitTest)5 BytesRef (org.apache.lucene.util.BytesRef)5 Test (org.junit.Test)5 Reference (io.crate.metadata.Reference)3 RowCollectExpression (io.crate.metadata.RowCollectExpression)1 ExtendedOsStats (io.crate.monitor.ExtendedOsStats)1 NestedObjectExpression (io.crate.operation.reference.NestedObjectExpression)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 Nullable (javax.annotation.Nullable)1