/* * 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. * * Other licenses: * ----------------------------------------------------------------------------- * Commercial licenses for this work are available. These replace the above * ASL 2.0 and offer limited warranties, support, maintenance, and commercial * database integrations. * * For more information, please visit: http://www.jooq.org/licenses * * * * * * * * * * * * * */ package org.jooq; /** * A listing of clauses that emit events {@link VisitListener}. * <p> * <h3>Disclaimer</h3> This SPI is still <strong>experimental</strong>! Some SPI * elements and/or behavioural elements may change in future minor releases. */ public enum Clause { // ------------------------------------------------------------------------- // Clauses used in a any type of statement to model constraint references // ------------------------------------------------------------------------- CONSTRAINT, // ------------------------------------------------------------------------- // Clauses used in a any type of statement to model catalog references // ------------------------------------------------------------------------- CATALOG, CATALOG_REFERENCE, // ------------------------------------------------------------------------- // Clauses used in a any type of statement to model schema references // ------------------------------------------------------------------------- SCHEMA, SCHEMA_REFERENCE, // ------------------------------------------------------------------------- // Clauses used in a any type of statement to model sequence references // ------------------------------------------------------------------------- SEQUENCE, SEQUENCE_REFERENCE, // ------------------------------------------------------------------------- // Clauses used in a any type of statement to model table references // ------------------------------------------------------------------------- /** * A table expression. * <p> * This clause surrounds an actual table expression as it can be encountered * in * <ul> * <li> {@link #SELECT_FROM}</li> * <li> {@link #INSERT_INSERT_INTO}</li> * <li> {@link #UPDATE_UPDATE}</li> * <li> {@link #DELETE_DELETE}</li> * <li> {@link #MERGE_MERGE_INTO}</li> * <li> {@link #TRUNCATE_TRUNCATE}</li> * </ul> */ TABLE, /** * A table alias declaration. * <p> * This clause surrounds a table alias declaration, for instance within the * {@link #SELECT_FROM} clause, or within a {@link #TABLE_JOIN} clause, * wrapping another {@link #TABLE}. * <p> * Referenced table aliases emit {@link #TABLE_REFERENCE} clauses. */ TABLE_ALIAS, /** * A physical or aliased table reference. * <p> * This is a terminal clause used to reference physical or aliased tables. */ TABLE_REFERENCE, TABLE_JOIN, TABLE_JOIN_INNER, TABLE_JOIN_CROSS, TABLE_JOIN_NATURAL, TABLE_JOIN_OUTER_LEFT, TABLE_JOIN_OUTER_RIGHT, TABLE_JOIN_OUTER_FULL, TABLE_JOIN_NATURAL_OUTER_LEFT, TABLE_JOIN_NATURAL_OUTER_RIGHT, TABLE_JOIN_CROSS_APPLY, TABLE_JOIN_OUTER_APPLY, TABLE_JOIN_SEMI_LEFT, TABLE_JOIN_ANTI_LEFT, TABLE_JOIN_STRAIGHT, TABLE_JOIN_ON, TABLE_JOIN_USING, TABLE_JOIN_PARTITION_BY, /** * A <code>VALUES</code> table constructor * <p> * This clause surrounds a * <ul> * <li>a <code>VALUES</code> keyword</li> * <li>a table constructor with several {@link #FIELD_ROW} value expressions * </li> * </ul> */ TABLE_VALUES, // ------------------------------------------------------------------------- // Clauses used in a any type of statement to model column references // ------------------------------------------------------------------------- /** * A field expression. * <p> * This clause surrounds an actual field expression as it can be encountered * in various other clauses, such as for instance {@link #SELECT_SELECT}. */ FIELD, /** * A field alias declaration. * <p> * This clause surrounds a field alias declaration, for instance within the * {@link #SELECT_SELECT} clause, wrapping another {@link #FIELD}. * <p> * Referenced field aliases emit {@link #FIELD_REFERENCE} clauses. */ FIELD_ALIAS, /** * A physical or aliased field reference. * <p> * This is a terminal clause used to reference physical or aliased fields. */ FIELD_REFERENCE, FIELD_VALUE, FIELD_CASE, FIELD_ROW, FIELD_FUNCTION, // ------------------------------------------------------------------------- // Clauses used in a any type of statement to model condition references // ------------------------------------------------------------------------- /** * A condition expression. */ CONDITION, /** * A <code>NULL</code> condition. * <p> * This clause surrounds a {@link #FIELD}. */ CONDITION_IS_NULL, /** * A <code>NOT NULL</code> condition. * <p> * This clause surrounds a {@link #FIELD}. */ CONDITION_IS_NOT_NULL, // TODO: Should operators be distinguished? // - LIKE predicate // - Subselect predicates // - RVE predicates // - Quantified predicates CONDITION_COMPARISON, /** * A <code>BEWEEN</code> condition. * <p> * This clause surrounds three {@link #FIELD} clauses. */ CONDITION_BETWEEN, /** * A <code>BEWEEN SYMMETRIC</code> condition. * <p> * This clause surrounds three {@link #FIELD} clauses. */ CONDITION_BETWEEN_SYMMETRIC, /** * A <code>NOT BEWEEN</code> condition. * <p> * This clause surrounds three {@link #FIELD} clauses. */ CONDITION_NOT_BETWEEN, /** * A <code>NOT BEWEEN SYMMETRIC</code> condition. * <p> * This clause surrounds three {@link #FIELD} clauses. */ CONDITION_NOT_BETWEEN_SYMMETRIC, /** * An <code>OVERLAPS</code> condition. * <p> * This clause surrounds two {@link #FIELD} clauses. */ CONDITION_OVERLAPS, /** * A combined condition using <code>AND</code>. * <p> * This clause surrounds several {@link #CONDITION} clauses. */ CONDITION_AND, /** * A combined condition using <code>OR</code>. * <p> * This clause surrounds several {@link #CONDITION} clauses. */ CONDITION_OR, /** * A <code>NOT</code> condition. * <p> * This clause surrounds a {@link #CONDITION} clause. */ CONDITION_NOT, /** * An <code>IN</code> condition. * <p> * This clause surrounds two or more {@link #FIELD} clauses. */ CONDITION_IN, /** * A <code>NOT IN</code> condition. * <p> * This clause surrounds two or more {@link #FIELD} clauses. */ CONDITION_NOT_IN, /** * An <code>EXISTS</code> condition. * <p> * This clause surrounds a {@link #SELECT} clause. */ CONDITION_EXISTS, /** * A <code>NOT EXISTS</code> condition. * <p> * This clause surrounds a {@link #SELECT} clause. */ CONDITION_NOT_EXISTS, // ------------------------------------------------------------------------- // The WITH clause that is used in all sorts of statements // ------------------------------------------------------------------------- /** * A <code>WITH</code> clause preceding all sorts of DML statements. */ WITH, // ------------------------------------------------------------------------- // Clauses that are used in a SELECT statement // ------------------------------------------------------------------------- /** * A complete <code>SELECT</code> statement or a subselect. * <p> * This clause surrounds a complete <code>SELECT</code> statement, a * subselect, or a set operation, such as * <ul> * <li> {@link #SELECT_UNION}</li> * <li> {@link #SELECT_UNION_ALL}</li> * <li> {@link #SELECT_INTERSECT}</li> * <li> {@link #SELECT_EXCEPT}</li> * </ul> */ SELECT, /** * A <code>UNION</code> set operation. * <p> * This clause surrounds two or more subselects (see {@link #SELECT}) * concatenating them using a <code>UNION</code> set operation. */ SELECT_UNION, /** * A <code>UNION ALL</code> set operation. * <p> * This clause surrounds two or more subselects (see {@link #SELECT}) * concatenating them using a <code>UNION ALL</code> set operation. */ SELECT_UNION_ALL, /** * A <code>INTERSECT</code> set operation. * <p> * This clause surrounds two or more subselects (see {@link #SELECT}) * concatenating them using a <code>INTERSECT</code> set operation. */ SELECT_INTERSECT, /** * A <code>INTERSECT ALL</code> set operation. * <p> * This clause surrounds two or more subselects (see {@link #SELECT}) * concatenating them using a <code>INTERSECT ALL</code> set operation. */ SELECT_INTERSECT_ALL, /** * A <code>EXCEPT</code> set operation. * <p> * This clause surrounds two or more subselects (see {@link #SELECT}) * concatenating them using a <code>EXCEPT</code> set operation. */ SELECT_EXCEPT, /** * A <code>EXCEPT ALL</code> set operation. * <p> * This clause surrounds two or more subselects (see {@link #SELECT}) * concatenating them using a <code>EXCEPT ALL</code> set operation. */ SELECT_EXCEPT_ALL, /** * A <code>SELECT</code> clause within a {@link #SELECT} statement or * subselect. * <p> * This clause surrounds * <ul> * <li>the <code>SELECT</code> keyword</li> * <li>Oracle style hints</li> * <li>the T-SQL style <code>TOP .. START AT</code> clause</li> * <li>the select field list</li> * </ul> */ SELECT_SELECT, /** * A <code>INTO</code> clause within a {@link #SELECT} statement. * <p> * This clause surrounds * <ul> * <li>the <code>INTO</code> keyword</li> * <li>the table reference</li> * </ul> * <p> * See {@link #TABLE} and related clauses for possible table references. * * @see #TABLE */ SELECT_INTO, /** * A <code>FROM</code> clause within a {@link #SELECT} statement or * subselect. * <p> * This clause surrounds * <ul> * <li>the <code>FROM</code> keyword</li> * <li>the table reference list</li> * </ul> * <p> * See {@link #TABLE} and related clauses for possible table references. * * @see #TABLE */ SELECT_FROM, /** * A <code>WHERE</code> clause within a {@link #SELECT} statement or * subselect. * <p> * This clause surrounds * <ul> * <li>the <code>WHERE</code> keyword</li> * <li>a {@link #CONDITION}</li> * </ul> * <p> * See {@link #CONDITION} and related clauses for possible conditions * * @see #CONDITION */ SELECT_WHERE, /** * A <code>START WITH</code> clause within a {@link #SELECT} statement or * subselect. * <p> * This clause surrounds * <ul> * <li>the <code>START WITH</code> keywords</li> * <li>a {@link #CONDITION}</li> * </ul> * <p> * See {@link #CONDITION} and related clauses for possible conditions * * @see #CONDITION */ SELECT_START_WITH, /** * A <code>CONNECT BY</code> clause within a {@link #SELECT} statement or * subselect. * <p> * This clause surrounds * <ul> * <li>the <code>CONNECT BY</code> keywords</li> * <li>a {@link #CONDITION}</li> * </ul> * <p> * See {@link #CONDITION} and related clauses for possible conditions * * @see #CONDITION */ SELECT_CONNECT_BY, SELECT_GROUP_BY, /** * A <code>HAVING</code> clause within a {@link #SELECT} statement or * subselect. * <p> * This clause surrounds * <ul> * <li>the <code>HAVING</code> keyword</li> * <li>a {@link #CONDITION}</li> * </ul> * <p> * See {@link #CONDITION} and related clauses for possible conditions * * @see #CONDITION */ SELECT_HAVING, SELECT_WINDOW, SELECT_ORDER_BY, // ------------------------------------------------------------------------- // Clauses that are used in an INSERT statement // ------------------------------------------------------------------------- /** * A complete <code>INSERT</code> statement. */ INSERT, /** * The <code>INSERT INTO</code> clause within an {@link #INSERT} statement. * <p> * This clause surrounds * <ul> * <li>the <code>INSERT INTO</code> keywords</li> * <li>the table that is being inserted</li> * </ul> */ INSERT_INSERT_INTO, /** * The <code>VALUES</code> clause within an {@link #INSERT} statement. * <p> * This clause surrounds * <ul> * <li>the <code>VALUES</code> keyword</li> * <li>several {@link #FIELD_ROW} clauses</li> * </ul> */ INSERT_VALUES, /** * The <code>SELECT</code> clause within an {@link #INSERT} statement. * <p> * This clause surrounds a {@link #SELECT} clause. */ INSERT_SELECT, /** * The <code>ON DUPLICATE KEY UPDATE</code> clause within an {@link #INSERT} * statement. * <p> * This clause surrounds several * {@link #INSERT_ON_DUPLICATE_KEY_UPDATE_ASSIGNMENT} clauses. * <ul> * <li>the <code>ON DUPLICATE KEY UPDATE</code> keywords</li> * <li>several {@link #INSERT_ON_DUPLICATE_KEY_UPDATE_ASSIGNMENT} clauses</li> * </ul> */ INSERT_ON_DUPLICATE_KEY_UPDATE, /** * The <code>ON DUPLICATE KEY UPDATE</code> clause within an {@link #INSERT} * statement. * <p> * This clause surrounds two {@link #FIELD} clauses. */ INSERT_ON_DUPLICATE_KEY_UPDATE_ASSIGNMENT, /** * The <code>RETURNING</code> clause within an {@link #INSERT} statement. * <p> * This clause surrounds * <ul> * <li>the <code>RETURNING</code> keyword</li> * <li>several {@link #FIELD} clauses</li> * </ul> */ INSERT_RETURNING, // ------------------------------------------------------------------------- // Clauses that are used in an UPDATE statement // ------------------------------------------------------------------------- /** * A complete <code>UPDATE</code> statement. */ UPDATE, /** * An <code>UPDATE</code> clause within an {@link #UPDATE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>UPDATE</code> keyword</li> * <li>the table that is being updated</li> * </ul> */ UPDATE_UPDATE, /** * A <code>SET</code> clause within an {@link #UPDATE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>SET</code> keyword</li> * <li>one or several assignments: {@link #UPDATE_SET_ASSIGNMENT}</li> * </ul> */ UPDATE_SET, /** * An assigment within a {@link #UPDATE_SET} clause within an * {@link #UPDATE} statement. * <p> * This clause surrounds * <ul> * <li>a {@link #FIELD} receiving the assignment</li> * <li>an assigment operator</li> * <li>a {@link #FIELD} being assigned</li> * </ul> */ UPDATE_SET_ASSIGNMENT, /** * A vendor-specific <code>FROM</code> clause within an {@link #UPDATE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>FROM</code> keyword</li> * <li>the table reference list</li> * </ul> * <p> * See {@link #TABLE} and related clauses for possible table references. */ UPDATE_FROM, /** * A <code>WHERE</code> clause within an {@link #UPDATE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>WHERE</code> keyword</li> * <li>a {@link #CONDITION}</li> * </ul> */ UPDATE_WHERE, /** * A <code>RETURNING</code> clause within an {@link #UPDATE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>RETURNING</code> keyword</li> * <li>several {@link #FIELD} clauses</li> * </ul> */ UPDATE_RETURNING, // ------------------------------------------------------------------------- // Clauses that are used in an DELETE statement // ------------------------------------------------------------------------- /** * A complete <code>DELETE</code> statement. */ DELETE, /** * A <code>DELETE</code> clause within an {@link #DELETE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>DELETE FROM</code> keywords</li> * <li>the table that is being deleted</li> * </ul> */ DELETE_DELETE, /** * A <code>WHERE</code> clause within an {@link #DELETE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>WHERE</code> keyword</li> * <li>a {@link #CONDITION}</li> * </ul> */ DELETE_WHERE, /** * A <code>RETURNING</code> clause within an {@link #DELETE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>RETURNING</code> keyword</li> * <li>several {@link #FIELD} clauses</li> * </ul> */ DELETE_RETURNING, // ------------------------------------------------------------------------- // Clauses that are used in an MERGE statement // ------------------------------------------------------------------------- /** * A complete <code>MERGE</code> statement. */ MERGE, /** * A <code>MERGE INTO</code> clause within an {@link #MERGE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>MERGE INTO</code> keywords</li> * <li>the table that is being merged</li> * </ul> */ MERGE_MERGE_INTO, /** * A <code>USING</code> clause within a {@link #MERGE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>USING</code> keyword</li> * <li>a {@link #TABLE}</li> * </ul> */ MERGE_USING, /** * An <code>ON</code> clause within a {@link #MERGE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>ON</code> keyword</li> * <li>a {@link #CONDITION}</li> * </ul> */ MERGE_ON, /** * A <code>WHEN MATCHED THEN UPDATE</code> clause within a {@link #MERGE} * statement. * <p> * This clause surrounds * <ul> * <li>the <code>WHEN MATCHED THEN UPDATE</code> keywords</li> * <li>a {@link #MERGE_SET} clause</li> * <li>a {@link #MERGE_WHERE} clause</li> * <li>a {@link #MERGE_DELETE_WHERE} clause</li> * </ul> */ MERGE_WHEN_MATCHED_THEN_UPDATE, /** * A <code>SET</code> clause within a * {@link #MERGE_WHEN_MATCHED_THEN_UPDATE} clause within an {@link #MERGE} * statement. * <p> * This clause surrounds * <ul> * <li>the <code>SET</code> keyword</li> * <li>several {@link #MERGE_SET_ASSIGNMENT} clauses</li> * </ul> */ MERGE_SET, /** * An assigment within a {@link #MERGE_SET} clause within an {@link #MERGE} * statement. * <p> * This clause surrounds * <ul> * <li>a {@link #FIELD} receiving the assignment</li> * <li>an assigment operator</li> * <li>a {@link #FIELD} being assigned</li> * </ul> */ MERGE_SET_ASSIGNMENT, /** * A <code>WHERE</code> clause within a * {@link #MERGE_WHEN_MATCHED_THEN_UPDATE} clause within a * {@link #MERGE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>WHERE</code> keyword</li> * <li>a {@link #CONDITION}</li> * </ul> */ MERGE_WHERE, /** * A <code>DELETE_WHERE</code> clause within a * {@link #MERGE_WHEN_MATCHED_THEN_UPDATE} clause within a {@link #MERGE} * statement. * <p> * This clause surrounds * <ul> * <li>the <code>DELETE WHERE</code> keyword</li> * <li>a {@link #CONDITION}</li> * </ul> */ MERGE_DELETE_WHERE, /** * A <code>WHEN NOT MATCHED THEN INSERT</code> clause within a * {@link #MERGE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>WHEN NOT MATCHED THEN INSERT</code> keywords</li> * <li>several {@link #FIELD} clauses</li> * </ul> */ MERGE_WHEN_NOT_MATCHED_THEN_INSERT, /** * A <code>VALUES</code> clause within a {@link #MERGE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>VALUES</code> keyword</li> * <li>several {@link #FIELD_ROW} clauses</li> * </ul> */ MERGE_VALUES, // ------------------------------------------------------------------------- // Clauses that are used in an TRUNCATE statement // ------------------------------------------------------------------------- /** * A complete <code>TRUNCATE</code> statement. */ TRUNCATE, /** * A <code>TRUNCATE</code> clause within an {@link #TRUNCATE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>TRUNCATE TABLE</code> keywords</li> * <li>the table that is being truncated</li> * </ul> */ TRUNCATE_TRUNCATE, // ------------------------------------------------------------------------- // Clauses that are used in an ALTER statement // ------------------------------------------------------------------------- /** * A complete <code>CREATE TABLE</code> statement. */ CREATE_TABLE, /** * A view name clause within a {@link #CREATE_TABLE} statement. * <p> * This clause surrounds * <ul> * <li>The table name</li> * <li>The (optional) column names</li> * </ul> */ CREATE_TABLE_NAME, /** * An <code>AS</code> clause within a {@link #CREATE_TABLE} statement. * <p> * This clause surrounds * <ul> * <li>The <code>AS</code> keyword</li> * <li>The select code</li> * </ul> */ CREATE_TABLE_AS, /** * A column list within a {@link #CREATE_TABLE} statement. * <p> * This clause surrounds * <ul> * <li>The column list</li> * </ul> */ CREATE_TABLE_COLUMNS, /** * A constraint list within a {@link #CREATE_TABLE} statement. * <p> * This clause surrounds * <ul> * <li>The constraint list</li> * </ul> */ CREATE_TABLE_CONSTRAINTS, /** * A complete <code>CREATE SCHEMA</code> statement. */ CREATE_SCHEMA, /** * A view name clause within a {@link #CREATE_SCHEMA} statement. * <p> * This clause surrounds * <ul> * <li>The schema name</li> * </ul> */ CREATE_SCHEMA_NAME, /** * A complete <code>CREATE VIEW</code> statement. */ CREATE_VIEW, /** * A view name clause within a {@link #CREATE_VIEW} statement. * <p> * This clause surrounds * <ul> * <li>The view name</li> * <li>The (optional) column names</li> * </ul> */ CREATE_VIEW_NAME, /** * An <code>AS</code> clause within a {@link #CREATE_VIEW} statement. * <p> * This clause surrounds * <ul> * <li>The <code>AS</code> keyword</li> * <li>The view code</li> * </ul> */ CREATE_VIEW_AS, /** * A complete <code>CREATE INDEX</code> statement. */ CREATE_INDEX, /** * A complete <code>CREATE SEQUENCE</code> statement. */ CREATE_SEQUENCE, /** * A <code>SEQUENCE</code> clause within a {@link #CREATE_SEQUENCE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>CREATE SEQUENCE</code> keywords</li> * <li>the sequence that is being created</li> * </ul> */ CREATE_SEQUENCE_SEQUENCE, /** * A complete <code>ALTER SEQUENCE</code> statement. */ ALTER_SEQUENCE, /** * A <code>SEQUENCE</code> clause within an {@link #ALTER_SEQUENCE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>ALTER SEQUENCE</code> keywords</li> * <li>the sequence that is being altered</li> * </ul> */ ALTER_SEQUENCE_SEQUENCE, /** * A <code>RESTART</code> clause within an {@link #ALTER_SEQUENCE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>RESTART</code> keyword</li> * <li>the <code>WITH</code> keyword and the new sequence value, if applicable.</li> * </ul> */ ALTER_SEQUENCE_RESTART, /** * A <code>RENAME</code> clause within an {@link #ALTER_SEQUENCE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>RENAME TO</code> keywords</li> * <li>the new sequence name</li> * </ul> */ ALTER_SEQUENCE_RENAME, /** * A complete <code>ALTER TABLE</code> statement. */ ALTER_TABLE, /** * A <code>TABLE</code> clause within an {@link #ALTER_TABLE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>ALTER TABLE</code> keywords</li> * <li>the table that is being altered</li> * </ul> */ ALTER_TABLE_TABLE, /** * A <code>RENAME TO</code> clause within an {@link #ALTER_TABLE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>RENAME TO</code> keywords</li> * <li>the new table name</li> * </ul> */ ALTER_TABLE_RENAME, /** * A <code>RENAME COLUMN</code> clause within an {@link #ALTER_TABLE} * statement. * <p> * This clause surrounds * <ul> * <li>the <code>RENAME COLUMN</code> keywords</li> * <li>the old column name</li> * <li>the <code>TO</code> keyword</li> * <li>the new column name</li> * </ul> */ ALTER_TABLE_RENAME_COLUMN, /** * A <code>RENAME CONSTRAINT</code> clause within an {@link #ALTER_TABLE} * statement. * <p> * This clause surrounds * <ul> * <li>the <code>RENAME CONSTRAINT</code> keywords</li> * <li>the old column name</li> * <li>the <code>TO</code> keyword</li> * <li>the new column name</li> * </ul> */ ALTER_TABLE_RENAME_CONSTRAINT, /** * A <code>ADD</code> clause within an {@link #ALTER_TABLE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>ADD</code> keywords</li> * <li>the column that is being added</li> * </ul> */ ALTER_TABLE_ADD, /** * A <code>ALTER</code> clause within an {@link #ALTER_TABLE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>ALTER</code> keywords</li> * <li>the column that is being altered</li> * </ul> */ ALTER_TABLE_ALTER, /** * A <code>ALTER DEFAULT</code> clause within an {@link #ALTER_TABLE} * statement. * <p> * This clause surrounds * <ul> * <li>the default expression that is being altered</li> * </ul> */ ALTER_TABLE_ALTER_DEFAULT, /** * A <code>DROP</code> clause within an {@link #ALTER_TABLE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>DROP</code> keywords</li> * <li>the column that is being dropped</li> * </ul> */ ALTER_TABLE_DROP, /** * A complete <code>ALTER SCHEMA</code> statement. */ ALTER_SCHEMA, /** * A <code>SCHEMA</code> clause within an {@link #ALTER_SCHEMA} statement. * <p> * This clause surrounds * <ul> * <li>the <code>ALTER SCHEMA</code> keywords</li> * <li>the schema that is being altered</li> * </ul> */ ALTER_SCHEMA_SCHEMA, /** * A <code>RENAME TO</code> clause within an {@link #ALTER_SCHEMA} statement. * <p> * This clause surrounds * <ul> * <li>the <code>RENAME TO</code> keywords</li> * <li>the new schema name</li> * </ul> */ ALTER_SCHEMA_RENAME, /** * A complete <code>ALTER VIEW</code> statement. */ ALTER_VIEW, /** * A <code>TABLE</code> clause within an {@link #ALTER_VIEW} statement. * <p> * This clause surrounds * <ul> * <li>the <code>ALTER VIEW</code> keywords</li> * <li>the view that is being altered</li> * </ul> */ ALTER_VIEW_VIEW, /** * A <code>RENAME TO</code> clause within an {@link #ALTER_VIEW} statement. * <p> * This clause surrounds * <ul> * <li>the <code>RENAME TO</code> keywords</li> * <li>the new view name</li> * </ul> */ ALTER_VIEW_RENAME, /** * A complete <code>ALTER INDEX</code> statement. */ ALTER_INDEX, /** * An <code>INDEX</code> clause within an {@link #ALTER_INDEX} statement. * <p> * This clause surrounds * <ul> * <li>the <code>ALTER INDEX</code> keywords</li> * <li>the index that is being altered</li> * </ul> */ ALTER_INDEX_INDEX, /** * A <code>RENAME TO</code> clause within an {@link #ALTER_INDEX} statement. * <p> * This clause surrounds * <ul> * <li>the <code>RENAME TO</code> keywords</li> * <li>the new index name</li> * </ul> */ ALTER_INDEX_RENAME, /** * A complete <code>DROP SCHEMA</code> statement. */ DROP_SCHEMA, /** * A <code>SCHEMA</code> clause within an {@link #DROP_SCHEMA} statement. * <p> * This clause surrounds * <ul> * <li>the <code>DROP SCHEMA</code> keywords</li> * <li>the schema that is being dropped</li> * </ul> */ DROP_SCHEMA_SCHEMA, /** * A complete <code>DROP VIEW</code> statement. */ DROP_VIEW, /** * A <code>VIEW</code> clause within an {@link #DROP_VIEW} statement. * <p> * This clause surrounds * <ul> * <li>the <code>DROP VIEW</code> keywords</li> * <li>the view that is being dropped</li> * </ul> */ DROP_VIEW_TABLE, /** * A complete <code>DROP TABLE</code> statement. */ DROP_TABLE, /** * A <code>TABLE</code> clause within an {@link #DROP_TABLE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>DROP TABLE</code> keywords</li> * <li>the table that is being dropped</li> * </ul> */ DROP_TABLE_TABLE, /** * A complete <code>DROP INDEX</code> statement. */ DROP_INDEX, /** * A complete <code>DROP SEQUENCE</code> statement. */ DROP_SEQUENCE, /** * A <code>SEQUENCE</code> clause within a {@link #DROP_SEQUENCE} statement. * <p> * This clause surrounds * <ul> * <li>the <code>DROP SEQUENCE</code> keywords</li> * <li>the sequence that is being dropped</li> * </ul> */ DROP_SEQUENCE_SEQUENCE, // ------------------------------------------------------------------------- // Other clauses // ------------------------------------------------------------------------- /** * A plain SQL template clause. */ TEMPLATE, /** * A custom {@link QueryPart} clause. */ CUSTOM }