blob: eb3d61fd249e1b0e41ca257769f490404890bf1c [file] [log] [blame]
// 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 adbc
import "github.com/apache/arrow/go/v12/arrow"
var (
GetInfoSchema = arrow.NewSchema([]arrow.Field{
{Name: "info_name", Type: arrow.PrimitiveTypes.Uint32},
{Name: "info_value", Type: arrow.DenseUnionOf(
[]arrow.Field{
{Name: "string_value", Type: arrow.BinaryTypes.String, Nullable: true},
{Name: "bool_value", Type: arrow.FixedWidthTypes.Boolean, Nullable: true},
{Name: "int64_value", Type: arrow.PrimitiveTypes.Int64, Nullable: true},
{Name: "int32_bitmask", Type: arrow.PrimitiveTypes.Int32, Nullable: true},
{Name: "string_list", Type: arrow.ListOf(arrow.BinaryTypes.String), Nullable: true},
{Name: "int32_to_int32_list_map",
Type: arrow.MapOf(arrow.PrimitiveTypes.Int32,
arrow.ListOf(arrow.PrimitiveTypes.Int32)), Nullable: true},
},
[]arrow.UnionTypeCode{0, 1, 2, 3, 4, 5},
), Nullable: true},
}, nil)
TableTypesSchema = arrow.NewSchema([]arrow.Field{{Name: "table_type", Type: arrow.BinaryTypes.String}}, nil)
UsageSchema = arrow.StructOf(
arrow.Field{Name: "fk_catalog", Type: arrow.BinaryTypes.String, Nullable: true},
arrow.Field{Name: "fk_db_schema", Type: arrow.BinaryTypes.String, Nullable: true},
arrow.Field{Name: "fk_table", Type: arrow.BinaryTypes.String},
arrow.Field{Name: "fk_column_name", Type: arrow.BinaryTypes.String},
)
ConstraintSchema = arrow.StructOf(
arrow.Field{Name: "constraint_name", Type: arrow.BinaryTypes.String, Nullable: true},
arrow.Field{Name: "constraint_type", Type: arrow.BinaryTypes.String},
arrow.Field{Name: "constraint_column_names", Type: arrow.ListOf(arrow.BinaryTypes.String)},
arrow.Field{Name: "constraint_column_usage", Type: arrow.ListOf(UsageSchema), Nullable: true},
)
ColumnSchema = arrow.StructOf(
arrow.Field{Name: "column_name", Type: arrow.BinaryTypes.String},
arrow.Field{Name: "ordinal_position", Type: arrow.PrimitiveTypes.Int32, Nullable: true},
arrow.Field{Name: "remarks", Type: arrow.BinaryTypes.String, Nullable: true},
arrow.Field{Name: "xdbc_data_type", Type: arrow.PrimitiveTypes.Int16, Nullable: true},
arrow.Field{Name: "xdbc_type_name", Type: arrow.BinaryTypes.String, Nullable: true},
arrow.Field{Name: "xdbc_column_size", Type: arrow.PrimitiveTypes.Int32, Nullable: true},
arrow.Field{Name: "xdbc_decimal_digits", Type: arrow.PrimitiveTypes.Int16, Nullable: true},
arrow.Field{Name: "xdbc_num_prec_radix", Type: arrow.PrimitiveTypes.Int16, Nullable: true},
arrow.Field{Name: "xdbc_nullable", Type: arrow.PrimitiveTypes.Int16, Nullable: true},
arrow.Field{Name: "xdbc_column_def", Type: arrow.BinaryTypes.String, Nullable: true},
arrow.Field{Name: "xdbc_sql_data_type", Type: arrow.PrimitiveTypes.Int16, Nullable: true},
arrow.Field{Name: "xdbc_datetime_sub", Type: arrow.PrimitiveTypes.Int16, Nullable: true},
arrow.Field{Name: "xdbc_char_octet_length", Type: arrow.PrimitiveTypes.Int32, Nullable: true},
arrow.Field{Name: "xdbc_is_nullable", Type: arrow.BinaryTypes.String, Nullable: true},
arrow.Field{Name: "xdbc_scope_catalog", Type: arrow.BinaryTypes.String, Nullable: true},
arrow.Field{Name: "xdbc_scope_schema", Type: arrow.BinaryTypes.String, Nullable: true},
arrow.Field{Name: "xdbc_scope_table", Type: arrow.BinaryTypes.String, Nullable: true},
arrow.Field{Name: "xdbc_is_autoincrement", Type: arrow.FixedWidthTypes.Boolean, Nullable: true},
arrow.Field{Name: "xdbc_is_generatedcolumn", Type: arrow.FixedWidthTypes.Boolean, Nullable: true},
)
TableSchema = arrow.StructOf(
arrow.Field{Name: "table_name", Type: arrow.BinaryTypes.String},
arrow.Field{Name: "table_type", Type: arrow.BinaryTypes.String},
arrow.Field{Name: "table_columns", Type: arrow.ListOf(ColumnSchema), Nullable: true},
arrow.Field{Name: "table_constraints", Type: arrow.ListOf(ConstraintSchema), Nullable: true},
)
DBSchemaSchema = arrow.StructOf(
arrow.Field{Name: "db_schema_name", Type: arrow.BinaryTypes.String, Nullable: true},
arrow.Field{Name: "db_schema_tables", Type: arrow.ListOf(TableSchema), Nullable: true},
)
GetObjectsSchema = arrow.NewSchema([]arrow.Field{
{Name: "catalog_name", Type: arrow.BinaryTypes.String, Nullable: true},
{Name: "catalog_db_schemas", Type: arrow.ListOf(DBSchemaSchema), Nullable: true},
}, nil)
GetTableSchemaSchema = arrow.NewSchema([]arrow.Field{
{Name: "catalog_name", Type: arrow.BinaryTypes.String, Nullable: true},
{Name: "db_schema_name", Type: arrow.BinaryTypes.String, Nullable: true},
{Name: "table_name", Type: arrow.BinaryTypes.String},
{Name: "table_type", Type: arrow.BinaryTypes.String},
{Name: "table_schema", Type: arrow.BinaryTypes.Binary},
}, nil)
)