<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
        "-//Puppy Crawl//DTD Suppressions 1.1//EN"
        "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<!--
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.
-->
<suppressions>
  <!-- Suppress checks on generated files. -->
  <suppress checks="Header" files="CalciteResource.properties"/>
  <suppress checks=".*" files="org-apache-calcite-jdbc.properties"/>
  <suppress checks=".*" files="Foo.java"/>
  <suppress checks=".*" files=".*/target/maven-archiver/pom.properties"/>
  <suppress checks=".*" files="git.properties"/>
  <suppress checks=".*" files="trace.properties"/>
  <suppress checks=".*" files="release.properties"/>

  <!-- This file triggers https://github.com/checkstyle/checkstyle/issues/92,
       through no fault of its own. -->
  <suppress checks=".*" files="SqlSimpleParser.java"/>

  <!-- Don't complain about field names such as cust_id -->
  <suppress checks=".*Name" files="JdbcExample.java"/>

  <!-- Suppress JavadocPackage in the test packages -->
  <suppress checks="JavadocPackage" files="src[/\\]test[/\\]java[/\\]"/>

  <!-- And likewise in ubenchmark -->
  <suppress checks="JavadocPackage" files="StatementTest.java"/>

  <!-- Method names in Resource can have underscores -->
  <suppress checks="MethodName" files="CalciteResource.java"/>
</suppressions>
