// Code generated by sqlc-pg-gen. DO NOT EDIT.

package postgresql

import (
	"github.com/sqlc-dev/sqlc/internal/sql/ast"
	"github.com/sqlc-dev/sqlc/internal/sql/catalog"
)

var funcsgenInformationSchema = []*catalog.Function{}

func genInformationSchema() *catalog.Schema {
	s := &catalog.Schema{Name: "information_schema"}
	s.Funcs = funcsgenInformationSchema
	s.Tables = []*catalog.Table{
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "_pg_foreign_data_wrappers",
			},
			Columns: []*catalog.Column{
				{
					Name:   "oid",
					Type:   ast.TypeName{Name: "oid"},
					Length: toPointer(4),
				},
				{
					Name:   "fdwowner",
					Type:   ast.TypeName{Name: "oid"},
					Length: toPointer(4),
				},
				{
					Name:    "fdwoptions",
					Type:    ast.TypeName{Name: "_text"},
					IsArray: true,
				},
				{
					Name:   "foreign_data_wrapper_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_data_wrapper_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "authorization_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "foreign_data_wrapper_language",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "_pg_foreign_servers",
			},
			Columns: []*catalog.Column{
				{
					Name:   "oid",
					Type:   ast.TypeName{Name: "oid"},
					Length: toPointer(4),
				},
				{
					Name:    "srvoptions",
					Type:    ast.TypeName{Name: "_text"},
					IsArray: true,
				},
				{
					Name:   "foreign_server_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_server_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_data_wrapper_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_data_wrapper_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "foreign_server_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "foreign_server_version",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "authorization_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "_pg_foreign_table_columns",
			},
			Columns: []*catalog.Column{
				{
					Name:   "nspname",
					Type:   ast.TypeName{Name: "name"},
					Length: toPointer(64),
				},
				{
					Name:   "relname",
					Type:   ast.TypeName{Name: "name"},
					Length: toPointer(64),
				},
				{
					Name:   "attname",
					Type:   ast.TypeName{Name: "name"},
					Length: toPointer(64),
				},
				{
					Name:    "attfdwoptions",
					Type:    ast.TypeName{Name: "_text"},
					IsArray: true,
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "_pg_foreign_tables",
			},
			Columns: []*catalog.Column{
				{
					Name:   "foreign_table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:    "ftoptions",
					Type:    ast.TypeName{Name: "_text"},
					IsArray: true,
				},
				{
					Name:   "foreign_server_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_server_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "authorization_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "_pg_user_mappings",
			},
			Columns: []*catalog.Column{
				{
					Name:   "oid",
					Type:   ast.TypeName{Name: "oid"},
					Length: toPointer(4),
				},
				{
					Name:    "umoptions",
					Type:    ast.TypeName{Name: "_text"},
					IsArray: true,
				},
				{
					Name:   "umuser",
					Type:   ast.TypeName{Name: "oid"},
					Length: toPointer(4),
				},
				{
					Name:   "authorization_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_server_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_server_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "srvowner",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "administrable_role_authorizations",
			},
			Columns: []*catalog.Column{
				{
					Name:   "grantee",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "role_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "is_grantable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "applicable_roles",
			},
			Columns: []*catalog.Column{
				{
					Name:   "grantee",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "role_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "is_grantable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "attributes",
			},
			Columns: []*catalog.Column{
				{
					Name:   "udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "attribute_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "ordinal_position",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "attribute_default",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_nullable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "data_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "character_maximum_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_octet_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_set_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "numeric_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_precision_radix",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_scale",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "datetime_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "interval_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "interval_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "attribute_udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "attribute_udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "attribute_udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "maximum_cardinality",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "dtd_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "is_derived_reference_attribute",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "character_sets",
			},
			Columns: []*catalog.Column{
				{
					Name:   "character_set_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_repertoire",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "form_of_use",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "default_collate_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "default_collate_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "default_collate_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "check_constraint_routine_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "constraint_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "check_constraints",
			},
			Columns: []*catalog.Column{
				{
					Name:   "constraint_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "check_clause",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "collation_character_set_applicability",
			},
			Columns: []*catalog.Column{
				{
					Name:   "collation_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "collations",
			},
			Columns: []*catalog.Column{
				{
					Name:   "collation_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "pad_attribute",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "column_column_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "column_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "dependent_column",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "column_domain_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "domain_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "domain_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "domain_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "column_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "column_options",
			},
			Columns: []*catalog.Column{
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "column_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "option_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "option_value",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "column_privileges",
			},
			Columns: []*catalog.Column{
				{
					Name:   "grantor",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "grantee",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "column_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "privilege_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_grantable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "column_udt_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "column_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "columns",
			},
			Columns: []*catalog.Column{
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "column_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "ordinal_position",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "column_default",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_nullable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "data_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "character_maximum_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_octet_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_precision_radix",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_scale",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "datetime_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "interval_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "interval_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_set_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "domain_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "domain_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "domain_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "maximum_cardinality",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "dtd_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "is_self_referencing",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "is_identity",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "identity_generation",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "identity_start",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "identity_increment",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "identity_maximum",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "identity_minimum",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "identity_cycle",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "is_generated",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "generation_expression",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_updatable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "constraint_column_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "column_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "constraint_table_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "data_type_privileges",
			},
			Columns: []*catalog.Column{
				{
					Name:   "object_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "object_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "object_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "object_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "dtd_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "domain_constraints",
			},
			Columns: []*catalog.Column{
				{
					Name:   "constraint_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "domain_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "domain_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "domain_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "is_deferrable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "initially_deferred",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "domain_udt_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "domain_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "domain_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "domain_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "domains",
			},
			Columns: []*catalog.Column{
				{
					Name:   "domain_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "domain_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "domain_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "data_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "character_maximum_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_octet_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_set_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "numeric_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_precision_radix",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_scale",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "datetime_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "interval_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "interval_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "domain_default",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "maximum_cardinality",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "dtd_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "element_types",
			},
			Columns: []*catalog.Column{
				{
					Name:   "object_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "object_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "object_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "object_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "collection_type_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "data_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "character_maximum_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_octet_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_set_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "numeric_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_precision_radix",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_scale",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "datetime_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "interval_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "interval_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "domain_default",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "maximum_cardinality",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "dtd_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "enabled_roles",
			},
			Columns: []*catalog.Column{
				{
					Name:   "role_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "foreign_data_wrapper_options",
			},
			Columns: []*catalog.Column{
				{
					Name:   "foreign_data_wrapper_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_data_wrapper_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "option_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "option_value",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "foreign_data_wrappers",
			},
			Columns: []*catalog.Column{
				{
					Name:   "foreign_data_wrapper_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_data_wrapper_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "authorization_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "library_name",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "foreign_data_wrapper_language",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "foreign_server_options",
			},
			Columns: []*catalog.Column{
				{
					Name:   "foreign_server_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_server_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "option_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "option_value",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "foreign_servers",
			},
			Columns: []*catalog.Column{
				{
					Name:   "foreign_server_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_server_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_data_wrapper_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_data_wrapper_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "foreign_server_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "foreign_server_version",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "authorization_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "foreign_table_options",
			},
			Columns: []*catalog.Column{
				{
					Name:   "foreign_table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "option_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "option_value",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "foreign_tables",
			},
			Columns: []*catalog.Column{
				{
					Name:   "foreign_table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_server_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_server_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "information_schema_catalog_name",
			},
			Columns: []*catalog.Column{
				{
					Name:   "catalog_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "key_column_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "constraint_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "column_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "ordinal_position",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "position_in_unique_constraint",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "parameters",
			},
			Columns: []*catalog.Column{
				{
					Name:   "specific_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "ordinal_position",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "parameter_mode",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_result",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "as_locator",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name:   "parameter_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "data_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "character_maximum_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_octet_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_set_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "numeric_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_precision_radix",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_scale",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "datetime_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "interval_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "interval_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "maximum_cardinality",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "dtd_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "parameter_default",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "referential_constraints",
			},
			Columns: []*catalog.Column{
				{
					Name:   "constraint_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "unique_constraint_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "unique_constraint_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "unique_constraint_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "match_option",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "update_rule",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "delete_rule",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "role_column_grants",
			},
			Columns: []*catalog.Column{
				{
					Name:   "grantor",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "grantee",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "column_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "privilege_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_grantable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "role_routine_grants",
			},
			Columns: []*catalog.Column{
				{
					Name:   "grantor",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "grantee",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "privilege_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_grantable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "role_table_grants",
			},
			Columns: []*catalog.Column{
				{
					Name:   "grantor",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "grantee",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "privilege_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_grantable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "with_hierarchy",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "role_udt_grants",
			},
			Columns: []*catalog.Column{
				{
					Name:   "grantor",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "grantee",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "privilege_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_grantable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "role_usage_grants",
			},
			Columns: []*catalog.Column{
				{
					Name:   "grantor",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "grantee",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "object_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "object_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "object_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "object_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "privilege_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_grantable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "routine_column_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "specific_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "column_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "routine_privileges",
			},
			Columns: []*catalog.Column{
				{
					Name:   "grantor",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "grantee",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "privilege_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_grantable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "routine_routine_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "specific_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "routine_sequence_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "specific_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "sequence_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "sequence_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "sequence_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "routine_table_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "specific_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "routines",
			},
			Columns: []*catalog.Column{
				{
					Name:   "specific_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "routine_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "routine_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "module_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "module_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "module_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "data_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "character_maximum_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_octet_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_set_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "numeric_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_precision_radix",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_scale",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "datetime_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "interval_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "interval_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "type_udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "type_udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "type_udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "scope_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "maximum_cardinality",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "dtd_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "routine_body",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "routine_definition",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "external_name",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "external_language",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "parameter_style",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_deterministic",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "sql_data_access",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_null_call",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "sql_path",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "schema_level_routine",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name:   "max_dynamic_result_sets",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "is_user_defined_cast",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "is_implicitly_invocable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "security_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "to_sql_specific_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "to_sql_specific_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "to_sql_specific_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "as_locator",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name:   "created",
					Type:   ast.TypeName{Name: "time_stamp"},
					Length: toPointer(8),
				},
				{
					Name:   "last_altered",
					Type:   ast.TypeName{Name: "time_stamp"},
					Length: toPointer(8),
				},
				{
					Name: "new_savepoint_level",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "is_udt_dependent",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "result_cast_from_data_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "result_cast_as_locator",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name:   "result_cast_char_max_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "result_cast_char_octet_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "result_cast_char_set_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "result_cast_char_set_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "result_cast_char_set_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "result_cast_collation_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "result_cast_collation_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "result_cast_collation_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "result_cast_numeric_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "result_cast_numeric_precision_radix",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "result_cast_numeric_scale",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "result_cast_datetime_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "result_cast_interval_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "result_cast_interval_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "result_cast_type_udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "result_cast_type_udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "result_cast_type_udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "result_cast_scope_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "result_cast_scope_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "result_cast_scope_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "result_cast_maximum_cardinality",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "result_cast_dtd_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "schemata",
			},
			Columns: []*catalog.Column{
				{
					Name:   "catalog_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "schema_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "schema_owner",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "default_character_set_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "default_character_set_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "default_character_set_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "sql_path",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "sequences",
			},
			Columns: []*catalog.Column{
				{
					Name:   "sequence_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "sequence_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "sequence_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "data_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "numeric_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_precision_radix",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_scale",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "start_value",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "minimum_value",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "maximum_value",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "increment",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "cycle_option",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "sql_features",
			},
			Columns: []*catalog.Column{
				{
					Name:      "tableoid",
					Type:      ast.TypeName{Name: "oid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "cmax",
					Type:      ast.TypeName{Name: "cid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "xmax",
					Type:      ast.TypeName{Name: "xid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "cmin",
					Type:      ast.TypeName{Name: "cid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "xmin",
					Type:      ast.TypeName{Name: "xid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "ctid",
					Type:      ast.TypeName{Name: "tid"},
					IsNotNull: true,
					Length:    toPointer(6),
				},
				{
					Name: "feature_id",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "feature_name",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "sub_feature_id",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "sub_feature_name",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_supported",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "is_verified_by",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "comments",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "sql_implementation_info",
			},
			Columns: []*catalog.Column{
				{
					Name:      "tableoid",
					Type:      ast.TypeName{Name: "oid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "cmax",
					Type:      ast.TypeName{Name: "cid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "xmax",
					Type:      ast.TypeName{Name: "xid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "cmin",
					Type:      ast.TypeName{Name: "cid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "xmin",
					Type:      ast.TypeName{Name: "xid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "ctid",
					Type:      ast.TypeName{Name: "tid"},
					IsNotNull: true,
					Length:    toPointer(6),
				},
				{
					Name: "implementation_info_id",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "implementation_info_name",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "integer_value",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "character_value",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "comments",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "sql_parts",
			},
			Columns: []*catalog.Column{
				{
					Name:      "tableoid",
					Type:      ast.TypeName{Name: "oid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "cmax",
					Type:      ast.TypeName{Name: "cid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "xmax",
					Type:      ast.TypeName{Name: "xid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "cmin",
					Type:      ast.TypeName{Name: "cid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "xmin",
					Type:      ast.TypeName{Name: "xid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "ctid",
					Type:      ast.TypeName{Name: "tid"},
					IsNotNull: true,
					Length:    toPointer(6),
				},
				{
					Name: "feature_id",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "feature_name",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_supported",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "is_verified_by",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "comments",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "sql_sizing",
			},
			Columns: []*catalog.Column{
				{
					Name:      "tableoid",
					Type:      ast.TypeName{Name: "oid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "cmax",
					Type:      ast.TypeName{Name: "cid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "xmax",
					Type:      ast.TypeName{Name: "xid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "cmin",
					Type:      ast.TypeName{Name: "cid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "xmin",
					Type:      ast.TypeName{Name: "xid"},
					IsNotNull: true,
					Length:    toPointer(4),
				},
				{
					Name:      "ctid",
					Type:      ast.TypeName{Name: "tid"},
					IsNotNull: true,
					Length:    toPointer(6),
				},
				{
					Name:   "sizing_id",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "sizing_name",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "supported_value",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "comments",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "table_constraints",
			},
			Columns: []*catalog.Column{
				{
					Name:   "constraint_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "constraint_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "constraint_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_deferrable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "initially_deferred",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "enforced",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "nulls_distinct",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "table_privileges",
			},
			Columns: []*catalog.Column{
				{
					Name:   "grantor",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "grantee",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "privilege_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_grantable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "with_hierarchy",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "tables",
			},
			Columns: []*catalog.Column{
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "table_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "self_referencing_column_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "reference_generation",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "user_defined_type_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "user_defined_type_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "user_defined_type_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "is_insertable_into",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "is_typed",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "commit_action",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "transforms",
			},
			Columns: []*catalog.Column{
				{
					Name:   "udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "group_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "transform_type",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "triggered_update_columns",
			},
			Columns: []*catalog.Column{
				{
					Name:   "trigger_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "trigger_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "trigger_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "event_object_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "event_object_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "event_object_table",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "event_object_column",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "triggers",
			},
			Columns: []*catalog.Column{
				{
					Name:   "trigger_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "trigger_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "trigger_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "event_manipulation",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "event_object_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "event_object_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "event_object_table",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "action_order",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "action_condition",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "action_statement",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "action_orientation",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "action_timing",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "action_reference_old_table",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "action_reference_new_table",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "action_reference_old_row",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "action_reference_new_row",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "created",
					Type:   ast.TypeName{Name: "time_stamp"},
					Length: toPointer(8),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "udt_privileges",
			},
			Columns: []*catalog.Column{
				{
					Name:   "grantor",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "grantee",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "udt_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "privilege_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_grantable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "usage_privileges",
			},
			Columns: []*catalog.Column{
				{
					Name:   "grantor",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "grantee",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "object_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "object_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "object_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "object_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "privilege_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_grantable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "user_defined_types",
			},
			Columns: []*catalog.Column{
				{
					Name:   "user_defined_type_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "user_defined_type_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "user_defined_type_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "user_defined_type_category",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_instantiable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "is_final",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "ordering_form",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "ordering_category",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "ordering_routine_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "ordering_routine_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "ordering_routine_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "reference_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "data_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "character_maximum_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_octet_length",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "character_set_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "character_set_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "collation_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "numeric_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_precision_radix",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "numeric_scale",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "datetime_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name: "interval_type",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name:   "interval_precision",
					Type:   ast.TypeName{Name: "cardinal_number"},
					Length: toPointer(4),
				},
				{
					Name:   "source_dtd_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "ref_dtd_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "user_mapping_options",
			},
			Columns: []*catalog.Column{
				{
					Name:   "authorization_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_server_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_server_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "option_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "option_value",
					Type: ast.TypeName{Name: "character_data"},
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "user_mappings",
			},
			Columns: []*catalog.Column{
				{
					Name:   "authorization_identifier",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_server_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "foreign_server_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "view_column_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "view_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "view_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "view_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "column_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "view_routine_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "specific_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "view_table_usage",
			},
			Columns: []*catalog.Column{
				{
					Name:   "view_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "view_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "view_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
			},
		},
		{
			Rel: &ast.TableName{
				Catalog: "pg_catalog",
				Schema:  "information_schema",
				Name:    "views",
			},
			Columns: []*catalog.Column{
				{
					Name:   "table_catalog",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_schema",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name:   "table_name",
					Type:   ast.TypeName{Name: "sql_identifier"},
					Length: toPointer(64),
				},
				{
					Name: "view_definition",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "check_option",
					Type: ast.TypeName{Name: "character_data"},
				},
				{
					Name: "is_updatable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "is_insertable_into",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "is_trigger_updatable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "is_trigger_deletable",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
				{
					Name: "is_trigger_insertable_into",
					Type: ast.TypeName{Name: "yes_or_no"},
				},
			},
		},
	}
	return s
}
