diff --git a/engine/src/main/java/org/teiid/query/function/FunctionMethods.java b/engine/src/main/java/org/teiid/query/function/FunctionMethods.java index cf0c42a86f..4f083a6d8f 100644 --- a/engine/src/main/java/org/teiid/query/function/FunctionMethods.java +++ b/engine/src/main/java/org/teiid/query/function/FunctionMethods.java @@ -1551,7 +1551,7 @@ public static Object session_id(CommandContext context) { return context.getConnectionId(); } - @TeiidFunction(category=FunctionCategoryConstants.MISCELLANEOUS) + @TeiidFunction(category=FunctionCategoryConstants.MISCELLANEOUS, pushdown=PushDown.CANNOT_PUSHDOWN) public static String node_id() { return System.getProperty("jboss.node.name"); //$NON-NLS-1$ } @@ -1688,7 +1688,7 @@ public static int array_length(Object array) throws FunctionExecutionException, throw new FunctionExecutionException(QueryPlugin.Event.TEIID30416, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30416, array.getClass())); } - @TeiidFunction(category=FunctionCategoryConstants.SYSTEM, determinism = Determinism.COMMAND_DETERMINISTIC) + @TeiidFunction(category=FunctionCategoryConstants.SYSTEM, determinism = Determinism.COMMAND_DETERMINISTIC, pushdown=PushDown.CANNOT_PUSHDOWN) public static int mvstatus(CommandContext context, String schemaName, String viewName) throws FunctionExecutionException, SQLException, QueryMetadataException, TeiidComponentException { Object id = context.getMetadata().getGroupID(schemaName + AbstractMetadataRecord.NAME_DELIM_CHAR + viewName); String statusTable = context.getMetadata().getExtensionProperty(id, MaterializationMetadataRepository.MATVIEW_STATUS_TABLE, false); diff --git a/engine/src/main/java/org/teiid/query/function/SystemFunctionMethods.java b/engine/src/main/java/org/teiid/query/function/SystemFunctionMethods.java index 705c711fc3..b03f2c8feb 100644 --- a/engine/src/main/java/org/teiid/query/function/SystemFunctionMethods.java +++ b/engine/src/main/java/org/teiid/query/function/SystemFunctionMethods.java @@ -23,6 +23,7 @@ import org.teiid.adminapi.impl.SessionMetadata; import org.teiid.api.exception.query.FunctionExecutionException; import org.teiid.metadata.FunctionMethod.Determinism; +import org.teiid.metadata.FunctionMethod.PushDown; import org.teiid.query.QueryPlugin; import org.teiid.query.function.metadata.FunctionCategoryConstants; import org.teiid.query.util.CommandContext; @@ -31,12 +32,12 @@ public class SystemFunctionMethods { private static final int MAX_VARIABLES = 512; - @TeiidFunction(category=FunctionCategoryConstants.SYSTEM, nullOnNull=true, determinism=Determinism.COMMAND_DETERMINISTIC) + @TeiidFunction(category=FunctionCategoryConstants.SYSTEM, nullOnNull=true, determinism=Determinism.COMMAND_DETERMINISTIC, pushdown=PushDown.CANNOT_PUSHDOWN) public static Object teiid_session_get(CommandContext context, String key) { return context.getSessionVariable(key); } - @TeiidFunction(category=FunctionCategoryConstants.SYSTEM, determinism=Determinism.COMMAND_DETERMINISTIC) + @TeiidFunction(category=FunctionCategoryConstants.SYSTEM, determinism=Determinism.COMMAND_DETERMINISTIC, pushdown=PushDown.CANNOT_PUSHDOWN) public static Object teiid_session_set(CommandContext context, String key, Object value) throws FunctionExecutionException { SessionMetadata session = context.getSession(); Map variables = session.getSessionVariables(); diff --git a/engine/src/main/java/org/teiid/query/function/TeiidFunction.java b/engine/src/main/java/org/teiid/query/function/TeiidFunction.java index 63f4597559..12de367036 100644 --- a/engine/src/main/java/org/teiid/query/function/TeiidFunction.java +++ b/engine/src/main/java/org/teiid/query/function/TeiidFunction.java @@ -37,6 +37,6 @@ String category(); boolean nullOnNull() default false; Determinism determinism() default Determinism.DETERMINISTIC; - PushDown pushdown() default PushDown.CANNOT_PUSHDOWN; + PushDown pushdown() default PushDown.CAN_PUSHDOWN; String alias() default ""; } diff --git a/engine/src/main/java/org/teiid/query/function/source/XMLSystemFunctions.java b/engine/src/main/java/org/teiid/query/function/source/XMLSystemFunctions.java index 51ac5d1ceb..955b402203 100644 --- a/engine/src/main/java/org/teiid/query/function/source/XMLSystemFunctions.java +++ b/engine/src/main/java/org/teiid/query/function/source/XMLSystemFunctions.java @@ -1254,7 +1254,7 @@ public static XMLOutputFactory getOutputFactory(boolean repairing) { return f; } - @TeiidFunction(category=FunctionCategoryConstants.XML) + @TeiidFunction(category=FunctionCategoryConstants.XML, nullOnNull=true) public static XMLType xmlText(String val) throws XMLStreamException, FactoryConfigurationError, IOException, TransformerException { //TODO: see if there is a less involved way to escape StringWriter writer = new StringWriter();