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

org.apache.calcite.util.Bug Maven / Gradle / Ivy

There is a newer version: 1.21.0.263
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to you 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.apache.calcite.util;

/**
 * Holder for a list of constants describing which bugs which have not been
 * fixed.
 *
 * 

You can use these constants to control the flow of your code. For example, * suppose that bug CALCITE-123 causes the "INSERT" statement to return an * incorrect row-count, and you want to disable unit tests. You might use the * constant in your code as follows: * *

*
Statement stmt = connection.createStatement();
 * int rowCount = stmt.execute(
 *     "INSERT INTO FemaleEmps SELECT * FROM Emps WHERE gender = 'F'");
 * if (Bug.CALCITE_123_FIXED) {
 *    assertEquals(rowCount, 5);
 * }
*
* *

The usage of the constant is a convenient way to identify the impact of * the bug. When someone fixes the bug, they will remove the constant and all * usages of it. Also, the constant helps track the propagation of the fix: as * the fix is integrated into other branches, the constant will be removed from * those branches.

* */ public abstract class Bug { //~ Static fields/initializers --------------------------------------------- // ----------------------------------------------------------------------- // Developers should create new fields here, in their own section. This // will make merge conflicts much less likely than if everyone is // appending. public static final boolean DT239_FIXED = false; public static final boolean DT785_FIXED = false; // jhyde /** * Whether issue * Fnl-3 is fixed. */ public static final boolean FNL3_FIXED = false; /** * Whether issue * FRG-327: AssertionError while translating IN list that contains null * is fixed. */ public static final boolean FRG327_FIXED = false; /** * Whether issue * FRG-377: Regular character set identifiers defined in SQL:2008 spec like * :ALPHA:, * :UPPER:, :LOWER:, ... etc. are not yet implemented in * SIMILAR TO expressions. is fixed. */ public static final boolean FRG377_FIXED = false; /** * Whether dtbug1684 "CURRENT_DATE not implemented in fennel calc" is fixed. */ public static final boolean DT1684_FIXED = false; /** * Whether issue * FNL-25 is fixed. (also filed as dtbug 153) */ public static final boolean FNL25_FIXED = false; /** * Whether issue FRG-73: * miscellaneous bugs with nested comments is fixed. */ public static final boolean FRG73_FIXED = false; /** * Whether issue FRG-78: * collation clause should be on expression instead of identifier is * fixed. */ public static final boolean FRG78_FIXED = false; /** * Whether issue * FRG-189: FarragoAutoVmOperatorTest.testSelect fails is fixed. */ public static final boolean FRG189_FIXED = false; /** * Whether issue * FRG-254: environment-dependent failure for * SqlOperatorTest.testPrefixPlusOperator is fixed. */ public static final boolean FRG254_FIXED = false; /** * Whether issue * FRG-282: Support precision in TIME and TIMESTAMP data types is fixed. */ public static final boolean FRG282_FIXED = false; /** * Whether issue * FRG-296: SUBSTRING(string FROM regexp FOR regexp) is fixed. */ public static final boolean FRG296_FIXED = false; /** * Whether issue * FRG-375: The expression VALUES ('cd' SIMILAR TO '[a-e^c]d') returns TRUE. * It should return FALSE. is fixed. */ public static final boolean FRG375_FIXED = false; /** Whether * [CALCITE-194] * Array items in MongoDB adapter is fixed. */ public static final boolean CALCITE_194_FIXED = false; /** Whether * [CALCITE-673] * Timeout executing joins against MySQL is fixed. */ public static final boolean CALCITE_673_FIXED = false; /** Whether * [CALCITE-1048] * Make metadata more robust is fixed. */ public static final boolean CALCITE_1048_FIXED = false; /** Whether * [CALCITE-1045] * Decorrelate sub-queries in Project and Join is fixed. */ public static final boolean CALCITE_1045_FIXED = false; /** Whether * [CALCITE-2400] * Allow standards-compliant column ordering for NATURAL JOIN and JOIN USING * when dynamic tables are used is fixed. */ public static final boolean CALCITE_2400_FIXED = false; /** Whether * [CALCITE-2401] * Improve RelMdPredicates performance */ public static final boolean CALCITE_2401_FIXED = false; /** Whether * [CALCITE-2539] * Several test case not passed in CalciteSqlOperatorTest.java is fixed. */ public static final boolean CALCITE_2539_FIXED = false; /** Whether * [CALCITE-2869] * JSON data type support is fixed. */ public static final boolean CALCITE_2869_FIXED = false; /** * Use this to flag temporary code. */ public static final boolean TODO_FIXED = false; /** * Use this method to flag temporary code. * *

Example #1: *

   * if (Bug.remark("baz fixed") == null) {
   *   baz();
   * }
* *

Example #2: *

   * /** @see Bug#remark Remove before checking in */
   * void uselessMethod() {}
   * 
*/ public static T remark(T remark) { return remark; } /** * Use this method to flag code that should be re-visited after upgrading * a component. * *

If the intended change is that a class or member be removed, flag * instead using a {@link Deprecated} annotation followed by a comment such as * "to be removed before 2.0". */ public static boolean upgrade(String remark) { Util.discard(remark); return false; } } // End Bug.java





© 2015 - 2024 Weber Informatics LLC | Privacy Policy