src/iceberg/type_fwd.h (73 lines of code) (raw):
/*
* 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.
*/
#pragma once
/// \file iceberg/type_fwd.h
/// Forward declarations and enum definitions. When writing your own headers,
/// you can include this instead of the "full" headers to help reduce compile
/// times.
namespace iceberg {
/// \brief A data type.
///
/// This is not a complete data type by itself because some types are nested
/// and/or parameterized.
///
/// Iceberg V3 types are not currently supported.
enum class TypeId {
kStruct,
kList,
kMap,
kBoolean,
kInt,
kLong,
kFloat,
kDouble,
kDecimal,
kDate,
kTime,
kTimestamp,
kTimestampTz,
kString,
kUuid,
kFixed,
kBinary,
};
/// \brief The time unit. In Iceberg V3 nanoseconds are also supported.
enum class TimeUnit {
kMicrosecond,
};
class BinaryType;
class BooleanType;
class DateType;
class DecimalType;
class FixedType;
class FloatType;
class DoubleType;
class IntType;
class LongType;
class ListType;
class MapType;
class NestedType;
class PartitionField;
class PartitionSpec;
class PrimitiveType;
class Schema;
class SchemaField;
class StringType;
class StructType;
class TimeType;
class TimestampBase;
class TimestampType;
class TimestampTzType;
class Type;
class UuidType;
struct Namespace;
struct TableIdentifier;
class Catalog;
class LocationProvider;
class SortField;
class SortOrder;
class Table;
class Transaction;
class Transform;
class TransformFunction;
struct PartitionStatisticsFile;
struct Snapshot;
struct SnapshotRef;
struct StatisticsFile;
struct TableMetadata;
enum class SnapshotRefType;
enum class TransformType;
/// ----------------------------------------------------------------------------
/// TODO: Forward declarations below are not added yet.
/// ----------------------------------------------------------------------------
class HistoryEntry;
class StructLike;
class MetadataUpdate;
class UpdateRequirement;
class AppendFiles;
class TableScan;
} // namespace iceberg