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

co.streamx.fluent.SQL.Oracle.SQL Maven / Gradle / Ivy

package co.streamx.fluent.SQL.Oracle;

import java.sql.Timestamp;
import java.util.Date;
import java.util.EnumSet;
import java.util.ServiceLoader;
import java.util.Set;
import java.util.function.Consumer;

import co.streamx.fluent.JPA.spi.SQLConfigurator;
import co.streamx.fluent.SQL.Clause;
import co.streamx.fluent.SQL.ColumnsClause;
import co.streamx.fluent.SQL.DataType;
import co.streamx.fluent.SQL.MatchThen;
import co.streamx.fluent.SQL.MergeClause;
import co.streamx.fluent.SQL.Record;
import co.streamx.fluent.SQL.SortOrder;
import co.streamx.fluent.SQL.UpdateSet;
import co.streamx.fluent.SQL.WindowFrame;
import co.streamx.fluent.notation.Capability;
import co.streamx.fluent.notation.Function;
import co.streamx.fluent.notation.Literal;
import co.streamx.fluent.notation.Local;
import co.streamx.fluent.notation.Operator;
import co.streamx.fluent.notation.ParameterContext;
import co.streamx.fluent.notation.Tuple;

public interface SQL {

    /**
     * Ubiquitous Oracle's DUAL table
     */
    @Tuple
    interface DUAL {
    }

    /**
     * @return {@link DUAL} table
     */
    @Function(omitParentheses = true)
    static DUAL DUAL() {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static  T CROSS_APPLY(T subQuery) {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static  T OUTER_APPLY(T subQuery) {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static void MINUS() {
        throw new UnsupportedOperationException();
    }

    // Math

    @Function
    static  T ATAN2(T n1,
                                      T n2) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T BITAND(T n1,
                                       T n2) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T COSH(T n) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T LN(T numeric) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T MOD(T n2,
                                    T n1) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T NANVL(T n2,
                                      T n1) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T REMAINDER(T n2,
                                          T n1) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T ROUND(T numeric) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T SINH(T n) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T TANH(T n) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T TRUNC(T numeric,
                                      int length) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static  T WIDTH_BUCKET(T expr,
                              T min,
                              T max,
                              int numBuckets) {
        throw new UnsupportedOperationException();
    }

    // String

    @Function
    static String CHR(int charCode) {
        throw new UnsupportedOperationException();
    }

    @Function(argumentsDelimiter = " USING")
    static String CHR(int charCode,
                      String charset) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String INITCAP(String expression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String LPAD(String expression,
                       int length) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String LPAD(String expression,
                       int length,
                       String padWith) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String NLS_INITCAP(String expression) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String NLS_INITCAP(String expression,
                              String nlsParam) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String NLS_LOWER(String expression) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String NLS_LOWER(String expression,
                            String nlsParam) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String NLSSORT(String expression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String NLSSORT(String expression,
                          String nlsParam) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String NLS_UPPER(String expression) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String NLS_UPPER(String expression,
                            String nlsParam) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_REPLACE(String expression,
                                 String pattern) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_REPLACE(String expression,
                                 String pattern,
                                 String replaceExpression) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_REPLACE(String expression,
                                 String pattern,
                                 String replaceExpression,
                                 int position) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_REPLACE(String expression,
                                 String pattern,
                                 String replaceExpression,
                                 int position,
                                 int occurence) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_REPLACE(String expression,
                                 String pattern,
                                 String replaceExpression,
                                 int position,
                                 int occurence,
                                 String matchParam) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_SUBSTR(String expression,
                                 String pattern) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_SUBSTR(String expression,
                                 String pattern,
                                 int position) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_SUBSTR(String expression,
                                 String pattern,
                                 int position,
                                 int occurence) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_SUBSTR(String expression,
                                 String pattern,
                                 int position,
                                 int occurence,
                                 String matchParam) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_SUBSTR(String expression,
                                 String pattern,
                                 int position,
                                 int occurence,
                                 String matchParam,
                                 int subExpr) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String RPAD(String expression,
                       int length) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String RPAD(String expression,
                       int length,
                       String padWith) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SOUNDEX(String expression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SUBSTR(String expression,
                         int from,
                         int count) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SUBSTR(String expression,
                         int from) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SUBSTRB(String expression,
                          int from,
                          int count) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SUBSTRB(String expression,
                          int from) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SUBSTRC(String expression,
                          int from,
                          int count) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SUBSTRC(String expression,
                          int from) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SUBSTR2(String expression,
                          int from,
                          int count) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SUBSTR2(String expression,
                          int from) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SUBSTR4(String expression,
                          int from,
                          int count) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String SUBSTR4(String expression,
                          int from) {
        throw new UnsupportedOperationException();
    }

    /**
     * Creates a TREAT expression, e.g. {@code TREAT( AS employee_t)}
     */
    @Function(argumentsDelimiter = " AS")
    static , TypeName extends DataType> T TREAT(Object expression,
                                                     TypeName dataType) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTR(String string,
                     String substring) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTR(String string,
                     String substring,
                     int position) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTR(String string,
                     String substring,
                     int position,
                     int occurrence) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTRB(String string,
                      String substring) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTRB(String string,
                      String substring,
                      int position) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTRB(String string,
                      String substring,
                      int position,
                      int occurrence) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTRC(String string,
                      String substring) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTRC(String string,
                      String substring,
                      int position) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTRC(String string,
                      String substring,
                      int position,
                      int occurrence) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTR2(String string,
                      String substring) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTR2(String string,
                      String substring,
                      int position) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTR2(String string,
                      String substring,
                      int position,
                      int occurrence) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTR4(String string,
                      String substring) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTR4(String string,
                      String substring,
                      int position) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int INSTR4(String string,
                      String substring,
                      int position,
                      int occurrence) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int LENGTH(CharSequence expression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int LENGTHB(CharSequence expression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int LENGTHC(CharSequence expression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int LENGTH2(CharSequence expression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static int LENGTH4(CharSequence expression) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_INSTR(String expression,
                               String pattern) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_INSTR(String expression,
                               String pattern,
                               int position) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_INSTR(String expression,
                               String pattern,
                               int position,
                               int occurence) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_INSTR(String expression,
                               String pattern,
                               int position,
                               int occurence,
                               int returnOption) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_INSTR(String expression,
                               String pattern,
                               int position,
                               int occurence,
                               int returnOption,
                               String matchParam) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String REGEXP_INSTR(String expression,
                               String pattern,
                               int position,
                               int occurence,
                               int returnOption,
                               String matchParam,
                               int subExpr) {
        throw new UnsupportedOperationException();
    }

    // Date / Time

    @Function(underscoresAsBlanks = false)
    static  T ADD_MONTHS(T date,
                                         int toAdd) {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static String DBTIMEZONE() {
        throw new UnsupportedOperationException();
    }

    /**
     * Since this function returns {@code int}, it's not type-safe for TIMEZONE_REGION or TIMEZONE_ABBR extraction since
     * the return type is {@code String}. Use {@link #EXTRACT_STRING(DatePart, Date) EXTRACT_STRING} in these cases.
     */
    @Function(argumentsDelimiter = " FROM")
    static int EXTRACT(DatePart datePart,
                       Date datetime) {
        throw new UnsupportedOperationException();
    }

    /**
     * {@link #EXTRACT(DatePart, Date) EXTRACT} function returning {@code String}.
     */
    @Function(name = "EXTRACT", argumentsDelimiter = " FROM")
    static String EXTRACT_STRING(DatePart datePart,
                                 Date datetime) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static Timestamp FROM_TZ(Timestamp timestamp,
                             String timeZone) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static  T LAST_DAY(Date date) {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static Timestamp LOCALTIMESTAMP() {
        throw new UnsupportedOperationException();
    }

    @Function
    static Timestamp LOCALTIMESTAMP(int precision) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static float MONTHS_BETWEEN(Date date1,
                                Date date2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static  T NEW_TIME(Date date,
                                       TimeZone timeZone1,
                                       TimeZone timeZone2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static  T NEXT_DAY(Date date,
                                       WeekDay weekDay) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T NUMTODSINTERVAL(int n,
                                              @Literal Interval intervalUnit) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T NUMTOYMINTERVAL(int n,
                                              @Literal Interval intervalUnit) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T ROUND(Date date,
                                    FormatModel fmt) {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static String SESSIONTIMEZONE() {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static  T SYS_EXTRACT_UTC(Date date) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static  T SYS_EXTRACT_UTC(String date) {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static  T SYSDATE() {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static Timestamp SYSTIMESTAMP() {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T TRUNC(Date date,
                                    FormatModel fmt) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TZ_OFFSET(String timeZone) {
        throw new UnsupportedOperationException();
    }

    // General Comparison

    @SafeVarargs
    @Function
    static  T GREATEST(T... expressions) {
        throw new UnsupportedOperationException();
    }

    @SafeVarargs
    @Function
    static  T LEAST(T... expressions) {
        throw new UnsupportedOperationException();
    }

    // Multiset / nested tables
    @Function
    static int CARDINALITY(Object tableReference) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T MULTISET(Object tableReference) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T POWERMULTISET(Object tableReference) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static  T POWERMULTISET_BY_CARDINALITY(Object tableReference,
                                              int cardinality) {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    @Operator(omitParentheses = true)
    static  T MULTISET_EXCEPT(Object nestedTable1,
                                 Object nestedTable2) {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    @Operator(omitParentheses = true)
    static  T MULTISET_INTERSECT(Object nestedTable1,
                                    Object nestedTable2) {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    @Operator(omitParentheses = true)
    static  T MULTISET_UNION(Object nestedTable1,
                                Object nestedTable2) {
        throw new UnsupportedOperationException();
    }

    // Conversion

    @Function
    static String ASCIISTR(String expression) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static int BIN_TO_NUM(Object... expressions) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_CHAR(String expression) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_CHAR(Date date) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_CHAR(Date date,
                          FormatModel fmt) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_CHAR(Date date,
                          FormatModel fmt,
                          String nls) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_CHAR(Number n) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_CHAR(Number n,
                          FormatModel fmt) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_CHAR(Number n,
                          FormatModel fmt,
                          String nls) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static  T TO_DATE(String date) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static  T TO_DATE(String date,
                                      FormatModel fmt) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static  T TO_DATE(String date,
                                      FormatModel fmt,
                                      String nls) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_NCHAR(String expression) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_NCHAR(Date date) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_NCHAR(Date date,
                           FormatModel fmt) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_NCHAR(Date date,
                           FormatModel fmt,
                           String nls) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_NCHAR(Number n) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_NCHAR(Number n,
                           FormatModel fmt) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_NCHAR(Number n,
                           FormatModel fmt,
                           String nls) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_NUMBER(Object expr) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_NUMBER(Object expr,
                            FormatModel fmt) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String TO_NUMBER(Object expr,
                            FormatModel fmt,
                            String nls) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static Timestamp TO_TIMESTAMP(String date) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static Timestamp TO_TIMESTAMP(String date,
                                  FormatModel fmt) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static Timestamp TO_TIMESTAMP(String date,
                                  FormatModel fmt,
                                  String nls) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String COMPOSE(String expression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String DECOMPOSE(String expression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String CONVERT(String expression,
                          String destinationCharSet) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String CONVERT(String expression,
                          String destinationCharSet,
                          String sourceCharSet) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String UNISTR(String expression) {
        throw new UnsupportedOperationException();
    }
    
    // Hierarchical
    
    @Function(underscoresAsBlanks = false)
    static String SYS_CONNECT_BY_PATH(String column,
                                      String separator) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String ORA_HASH(Object expression) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String ORA_HASH(Object expression,
                           long maxBucket) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String ORA_HASH(Object expression,
                           long maxBucket,
                           long seed) {
        throw new UnsupportedOperationException();
    }

    // control flow

    @Function
    static boolean LNNVL(boolean condition) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T NVL(T ifNotNull,
                     T otherwise) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T NVL2(Object checkForNull,
                      T ifNotNull,
                      T ifNull) {
        throw new UnsupportedOperationException();
    }

    // Aggregate

    @Function
    static  T COLLECT(Object expression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static double CORR(Object expression1,
                      Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double CORR_K(Object expression1,
                        Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double CORR_K(Object expression1,
                        Object expression2,
                        Correlation correlation) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double CORR_S(Object expression1,
                        Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double CORR_S(Object expression1,
                        Object expression2,
                        Correlation correlation) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double COVAR_POP(Object expression1,
                           Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double COVAR_SAMP(Object expression1,
                            Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static int DENSE_RANK(Number... expressions) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static int GROUPING_ID(Comparable... expressions) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static int GROUP_ID() {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String JSON_ARRAYAGG(Comparable expr) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static String JSON_OBJECTAGG(Comparable key,
                                 Comparable value) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String LISTAGG(Comparable expression) {
        throw new UnsupportedOperationException();
    }

    @Function
    static String LISTAGG(Comparable expression,
                          String delimiter) {
        throw new UnsupportedOperationException();
    }

    @Function
    static  T MEDIAN(Object expression) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double REGR_SLOPE(Object expression1,
                             Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double REGR_INTERCEPT(Object expression1,
                                 Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static int REGR_COUNT(Object expression1,
                           Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double REGR_R2(Object expression1,
                          Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double REGR_AVGX(Object expression1,
                            Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double REGR_AVGY(Object expression1,
                            Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double REGR_SXX(Object expression1,
                           Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double REGR_SYY(Object expression1,
                           Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false)
    static double REGR_SXY(Object expression1,
                           Object expression2) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false, omitArgumentsDelimiter = true)
    static  T FIRST_VALUE(T expression,
                             Ignore ignore) {
        throw new UnsupportedOperationException();
    }

    @Function(underscoresAsBlanks = false, omitArgumentsDelimiter = true)
    static  T LAST_VALUE(T expression,
                            Ignore ignore) {
        throw new UnsupportedOperationException();
    }

    // General

    @Function(name = "ORDER SIBLINGS BY", omitParentheses = true)
    static WindowFrame ORDER_SIBLINGS(SortOrder... sorts) {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true, parameterContext = ParameterContext.SELECT)
    static void RETURNING(Object... expressions) {
        throw new UnsupportedOperationException();
    }

    // MERGE declarations (same TSQL/Oracle)

    @Function(omitParentheses = true, parameterContext = ParameterContext.FROM)
    static MergeClause MERGE() {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static MatchThen WHEN_MATCHED() {
        throw new UnsupportedOperationException();
    }

    @Function(omitParentheses = true)
    static MatchThen WHEN_NOT_MATCHED() {
        throw new UnsupportedOperationException();
    }

    /**
     * Used in {@link SQL#MERGE()} only
* Name changed to avoid clashing */ @Function(name = "UPDATE", omitParentheses = true) static UpdateSet MERGE_UPDATE() { throw new UnsupportedOperationException(); } /** * Used in {@link SQL#MERGE()} only
* Name changed to avoid clashing with {@link co.streamx.fluent.SQL.SQL#INSERT(co.streamx.fluent.SQL.Keyword...) * INSERT} */ @Function(name = "INSERT", omitParentheses = true, omitArgumentsDelimiter = true) static Clause MERGE_INSERT(ColumnsClause columns, T values) { throw new UnsupportedOperationException(); } /** * Used in {@link SQL#MERGE()} only
* Name changed to avoid clashing with {@link co.streamx.fluent.SQL.SQL#INSERT(co.streamx.fluent.SQL.Keyword...) * INSERT} */ @Function(name = "INSERT", omitParentheses = true, omitArgumentsDelimiter = true) static Clause MERGE_INSERT(Record columns, T values) { throw new UnsupportedOperationException(); } // Sequence @Local static Sequence sequence(String name) { return new Sequence() { private final String seq = name + "."; @Override public String toString() { return seq; } }; } // pseudocolumns @Function(omitParentheses = true) static String ROWID() { throw new UnsupportedOperationException(); } @Function(omitParentheses = true) static int ROWNUM() { throw new UnsupportedOperationException(); } // Error Logging @Function(omitParentheses = true) static ErrorsInto LOG_ERRORS() { throw new UnsupportedOperationException(); } @Function(omitParentheses = true) static Clause REJECT_LIMIT(int limit) { throw new UnsupportedOperationException(); } @Function(omitParentheses = true) static int UNLIMITED() { throw new UnsupportedOperationException(); } // INSERT /** * Special INSERT, which translates to INTO clause. Used in multi-table inserts. */ @Function(name = "INTO", omitParentheses = true, parameterContext = ParameterContext.FROM_WITHOUT_ALIAS) static Clause INSERT_INTO(Object tableReference) { throw new UnsupportedOperationException(); } // Flashback @Function(omitParentheses = true) static Clause AS_OF(long SCN) { throw new UnsupportedOperationException(); } @Function(omitParentheses = true) static Clause AS_OF(Timestamp timestamp) { throw new UnsupportedOperationException(); } @Function(omitParentheses = true, omitArgumentsDelimiter = true) static Timestamp PERIOD_FOR(String valid_time_column, Timestamp timestamp) { throw new UnsupportedOperationException(); } /** * Usage example:
*
* {@code registerVendorCapabilities(FluentJPA::setCapabilities);} */ @Local static void registerVendorCapabilities(Consumer> registrar) { registrar.accept(EnumSet.of(Capability.ALIAS_INSERT, Capability.ALIAS_UPDATE, Capability.ALIAS_DELETE)); ServiceLoader loader = ServiceLoader.load(SQLConfigurator.class); SQLConfigurator SQLConfig = loader.iterator().next(); SQLConfig.registerMethodSubstitution(String::length, SQL::LENGTH); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy