001    package org.apache.ojb.broker.accesslayer;
002    
003    /* Copyright 2002-2005 The Apache Software Foundation
004     *
005     * Licensed under the Apache License, Version 2.0 (the "License");
006     * you may not use this file except in compliance with the License.
007     * You may obtain a copy of the License at
008     *
009     *     http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    
018    
019    /**
020     * Constants used to denote the type of SQL syntax of JOINs
021     *
022     * @author <a href="mailto:on@ibis.odessa.ua">Oleg Nitz</a>
023     * @version $Id: JoinSyntaxTypes.java,v 1.1 2007-08-24 22:17:30 ewestfal Exp $
024     */
025    public interface JoinSyntaxTypes
026    {
027        /**
028         * SQL-92 syntax for joins: <br>
029         * SELECT ... FROM A INNER JOIN B ON A.PK=B.FK <br>
030         * SELECT ... FROM A LEFT OUTER JOIN B ON A.PK=B.FK <br>
031         * Nested joins:<br>
032         * SELECT ... FROM A INNER JOIN (B INNER JOIN C ON B.PK=C.FK) ON A.PK=B.FK <br>
033         * SELECT ... FROM A LEFT OUTER JOIN (B LEFT OUTER JOIN C ON B.PK=C.FK) ON A.PK=B.FK <br>
034         */
035        public final byte SQL92_JOIN_SYNTAX = 0;
036    
037        /**
038         * SQL-92 without parenthesis syntax for joins: <br>
039         * SELECT ... FROM A INNER JOIN B ON A.PK=B.FK <br>
040         * SELECT ... FROM A LEFT OUTER JOIN B ON A.PK=B.FK <br>
041         * Nested joins:<br>
042         * SELECT ... FROM A INNER JOIN ON A.PK=B.FK INNER JOIN C ON B.PK=C.FK <br>
043         * SELECT ... FROM A LEFT OUTER JOIN ON A.PK=B.FK LEFT OUTER JOIN C ON B.PK=C.FK<br>
044         */
045        public final byte SQL92_NOPAREN_JOIN_SYNTAX = 1;
046    
047        /**
048         * Oracle syntax for joins: <br>
049         * SELECT ... FROM A, B WHERE A.PK=B.FK <br>
050         * SELECT ... FROM A, B WHERE A.PK=B.FK(+) <br>
051         */
052        public final byte ORACLE_JOIN_SYNTAX = 2;
053    
054        /**
055         * Sybase ASE syntax for joins: <br>
056         * SELECT ... FROM A, B WHERE A.PK=B.FK <br>
057         * SELECT ... FROM A, B WHERE A.PK*=B.FK <br>
058         */
059        public final byte SYBASE_JOIN_SYNTAX = 3;
060    }
061