/*-------------------------------------------------------------------------
 *
 * pg_tidycat.h
 *	  
 * 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.
 *
 * WARNING: DO NOT MODIFY THIS FILE: 
 *  Generated by tidycat.pl version 34
 *  on Wed Jul 22 16:21:56 2015
 *-------------------------------------------------------------------------
 */


#include "catalog/gp_configuration.h"
#include "catalog/gp_global_sequence.h"
#include "catalog/gp_master_mirroring.h"
#include "catalog/gp_persistent.h"
#include "catalog/gp_policy.h"
#include "catalog/gp_san_config.h"
#include "catalog/gp_segment_config.h"
#include "catalog/gp_verification_history.h"
#include "catalog/gp_version.h"
#include "catalog/pg_attribute_encoding.h"
#include "catalog/pg_auth_time_constraint.h"
#include "catalog/pg_compression.h"
#include "catalog/pg_filesystem.h"
#include "catalog/pg_foreign_data_wrapper.h"
#include "catalog/pg_foreign_server.h"
#include "catalog/pg_foreign_table.h"
#include "catalog/pg_partition_encoding.h"
#include "catalog/pg_proc_callback.h"
#include "catalog/pg_remote_credentials.h"
#include "catalog/pg_type_encoding.h"
