All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.gridgain.grid.cache.query.GridCacheQuerySqlFunction Maven / Gradle / Ivy

/* 
 Copyright (C) GridGain Systems. All Rights Reserved.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 */

/*  _________        _____ __________________        _____
 *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
 *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
 *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
 *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
 */

package org.gridgain.grid.cache.query;

import org.gridgain.grid.spi.indexing.h2.*;

import java.lang.annotation.*;

/**
 * Annotates public static methods in classes to be used in SQL queries as custom functions.
 * Annotated class must be registered in H2 indexing SPI using following method
 * {@link GridH2IndexingSpi#setIndexCustomFunctionClasses(Class[])}.
 * 

* Example usage: *

 *     public class MyFunctions {
 *         @GridCacheQuerySqlFunction
 *         public static int sqr(int x) {
 *             return x * x;
 *         }
 *     }
 *
 *     // Register.
 *     indexing.setIndexCustomFunctionClasses(MyFunctions.class);
 *
 *     // And use in queries.
 *     cache.queries().createSqlFieldsQuery("select sqr(2) where sqr(1) = 1");
 * 
*

* For more information about H2 custom functions please refer to * H2 documentation. */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD}) public @interface GridCacheQuerySqlFunction { /** * Specifies alias for the function to be used form SQL queries. * If no alias provided method name will be used. * * @return Alias for function. */ String alias() default ""; /** * Specifies if the function is deterministic (result depends only on input parameters). *

* Deterministic function is a function which always returns the same result * assuming that input parameters are the same. * * @return {@code true} If function is deterministic, {@code false} otherwise. */ boolean deterministic() default false; }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy