# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: pg_query.proto

require 'google/protobuf'

Google::Protobuf::DescriptorPool.generated_pool.build do
  add_file("pg_query.proto", :syntax => :proto3) do
    add_message "pg_query.ParseResult" do
      optional :version, :int32, 1
      repeated :stmts, :message, 2, "pg_query.RawStmt"
    end
    add_message "pg_query.ScanResult" do
      optional :version, :int32, 1
      repeated :tokens, :message, 2, "pg_query.ScanToken"
    end
    add_message "pg_query.Node" do
      oneof :node do
        optional :alias, :message, 1, "pg_query.Alias", json_name: "Alias"
        optional :range_var, :message, 2, "pg_query.RangeVar", json_name: "RangeVar"
        optional :table_func, :message, 3, "pg_query.TableFunc", json_name: "TableFunc"
        optional :expr, :message, 4, "pg_query.Expr", json_name: "Expr"
        optional :var, :message, 5, "pg_query.Var", json_name: "Var"
        optional :param, :message, 6, "pg_query.Param", json_name: "Param"
        optional :aggref, :message, 7, "pg_query.Aggref", json_name: "Aggref"
        optional :grouping_func, :message, 8, "pg_query.GroupingFunc", json_name: "GroupingFunc"
        optional :window_func, :message, 9, "pg_query.WindowFunc", json_name: "WindowFunc"
        optional :subscripting_ref, :message, 10, "pg_query.SubscriptingRef", json_name: "SubscriptingRef"
        optional :func_expr, :message, 11, "pg_query.FuncExpr", json_name: "FuncExpr"
        optional :named_arg_expr, :message, 12, "pg_query.NamedArgExpr", json_name: "NamedArgExpr"
        optional :op_expr, :message, 13, "pg_query.OpExpr", json_name: "OpExpr"
        optional :distinct_expr, :message, 14, "pg_query.DistinctExpr", json_name: "DistinctExpr"
        optional :null_if_expr, :message, 15, "pg_query.NullIfExpr", json_name: "NullIfExpr"
        optional :scalar_array_op_expr, :message, 16, "pg_query.ScalarArrayOpExpr", json_name: "ScalarArrayOpExpr"
        optional :bool_expr, :message, 17, "pg_query.BoolExpr", json_name: "BoolExpr"
        optional :sub_link, :message, 18, "pg_query.SubLink", json_name: "SubLink"
        optional :sub_plan, :message, 19, "pg_query.SubPlan", json_name: "SubPlan"
        optional :alternative_sub_plan, :message, 20, "pg_query.AlternativeSubPlan", json_name: "AlternativeSubPlan"
        optional :field_select, :message, 21, "pg_query.FieldSelect", json_name: "FieldSelect"
        optional :field_store, :message, 22, "pg_query.FieldStore", json_name: "FieldStore"
        optional :relabel_type, :message, 23, "pg_query.RelabelType", json_name: "RelabelType"
        optional :coerce_via_io, :message, 24, "pg_query.CoerceViaIO", json_name: "CoerceViaIO"
        optional :array_coerce_expr, :message, 25, "pg_query.ArrayCoerceExpr", json_name: "ArrayCoerceExpr"
        optional :convert_rowtype_expr, :message, 26, "pg_query.ConvertRowtypeExpr", json_name: "ConvertRowtypeExpr"
        optional :collate_expr, :message, 27, "pg_query.CollateExpr", json_name: "CollateExpr"
        optional :case_expr, :message, 28, "pg_query.CaseExpr", json_name: "CaseExpr"
        optional :case_when, :message, 29, "pg_query.CaseWhen", json_name: "CaseWhen"
        optional :case_test_expr, :message, 30, "pg_query.CaseTestExpr", json_name: "CaseTestExpr"
        optional :array_expr, :message, 31, "pg_query.ArrayExpr", json_name: "ArrayExpr"
        optional :row_expr, :message, 32, "pg_query.RowExpr", json_name: "RowExpr"
        optional :row_compare_expr, :message, 33, "pg_query.RowCompareExpr", json_name: "RowCompareExpr"
        optional :coalesce_expr, :message, 34, "pg_query.CoalesceExpr", json_name: "CoalesceExpr"
        optional :min_max_expr, :message, 35, "pg_query.MinMaxExpr", json_name: "MinMaxExpr"
        optional :sqlvalue_function, :message, 36, "pg_query.SQLValueFunction", json_name: "SQLValueFunction"
        optional :xml_expr, :message, 37, "pg_query.XmlExpr", json_name: "XmlExpr"
        optional :null_test, :message, 38, "pg_query.NullTest", json_name: "NullTest"
        optional :boolean_test, :message, 39, "pg_query.BooleanTest", json_name: "BooleanTest"
        optional :coerce_to_domain, :message, 40, "pg_query.CoerceToDomain", json_name: "CoerceToDomain"
        optional :coerce_to_domain_value, :message, 41, "pg_query.CoerceToDomainValue", json_name: "CoerceToDomainValue"
        optional :set_to_default, :message, 42, "pg_query.SetToDefault", json_name: "SetToDefault"
        optional :current_of_expr, :message, 43, "pg_query.CurrentOfExpr", json_name: "CurrentOfExpr"
        optional :next_value_expr, :message, 44, "pg_query.NextValueExpr", json_name: "NextValueExpr"
        optional :inference_elem, :message, 45, "pg_query.InferenceElem", json_name: "InferenceElem"
        optional :target_entry, :message, 46, "pg_query.TargetEntry", json_name: "TargetEntry"
        optional :range_tbl_ref, :message, 47, "pg_query.RangeTblRef", json_name: "RangeTblRef"
        optional :join_expr, :message, 48, "pg_query.JoinExpr", json_name: "JoinExpr"
        optional :from_expr, :message, 49, "pg_query.FromExpr", json_name: "FromExpr"
        optional :on_conflict_expr, :message, 50, "pg_query.OnConflictExpr", json_name: "OnConflictExpr"
        optional :into_clause, :message, 51, "pg_query.IntoClause", json_name: "IntoClause"
        optional :raw_stmt, :message, 52, "pg_query.RawStmt", json_name: "RawStmt"
        optional :query, :message, 53, "pg_query.Query", json_name: "Query"
        optional :insert_stmt, :message, 54, "pg_query.InsertStmt", json_name: "InsertStmt"
        optional :delete_stmt, :message, 55, "pg_query.DeleteStmt", json_name: "DeleteStmt"
        optional :update_stmt, :message, 56, "pg_query.UpdateStmt", json_name: "UpdateStmt"
        optional :select_stmt, :message, 57, "pg_query.SelectStmt", json_name: "SelectStmt"
        optional :alter_table_stmt, :message, 58, "pg_query.AlterTableStmt", json_name: "AlterTableStmt"
        optional :alter_table_cmd, :message, 59, "pg_query.AlterTableCmd", json_name: "AlterTableCmd"
        optional :alter_domain_stmt, :message, 60, "pg_query.AlterDomainStmt", json_name: "AlterDomainStmt"
        optional :set_operation_stmt, :message, 61, "pg_query.SetOperationStmt", json_name: "SetOperationStmt"
        optional :grant_stmt, :message, 62, "pg_query.GrantStmt", json_name: "GrantStmt"
        optional :grant_role_stmt, :message, 63, "pg_query.GrantRoleStmt", json_name: "GrantRoleStmt"
        optional :alter_default_privileges_stmt, :message, 64, "pg_query.AlterDefaultPrivilegesStmt", json_name: "AlterDefaultPrivilegesStmt"
        optional :close_portal_stmt, :message, 65, "pg_query.ClosePortalStmt", json_name: "ClosePortalStmt"
        optional :cluster_stmt, :message, 66, "pg_query.ClusterStmt", json_name: "ClusterStmt"
        optional :copy_stmt, :message, 67, "pg_query.CopyStmt", json_name: "CopyStmt"
        optional :create_stmt, :message, 68, "pg_query.CreateStmt", json_name: "CreateStmt"
        optional :define_stmt, :message, 69, "pg_query.DefineStmt", json_name: "DefineStmt"
        optional :drop_stmt, :message, 70, "pg_query.DropStmt", json_name: "DropStmt"
        optional :truncate_stmt, :message, 71, "pg_query.TruncateStmt", json_name: "TruncateStmt"
        optional :comment_stmt, :message, 72, "pg_query.CommentStmt", json_name: "CommentStmt"
        optional :fetch_stmt, :message, 73, "pg_query.FetchStmt", json_name: "FetchStmt"
        optional :index_stmt, :message, 74, "pg_query.IndexStmt", json_name: "IndexStmt"
        optional :create_function_stmt, :message, 75, "pg_query.CreateFunctionStmt", json_name: "CreateFunctionStmt"
        optional :alter_function_stmt, :message, 76, "pg_query.AlterFunctionStmt", json_name: "AlterFunctionStmt"
        optional :do_stmt, :message, 77, "pg_query.DoStmt", json_name: "DoStmt"
        optional :rename_stmt, :message, 78, "pg_query.RenameStmt", json_name: "RenameStmt"
        optional :rule_stmt, :message, 79, "pg_query.RuleStmt", json_name: "RuleStmt"
        optional :notify_stmt, :message, 80, "pg_query.NotifyStmt", json_name: "NotifyStmt"
        optional :listen_stmt, :message, 81, "pg_query.ListenStmt", json_name: "ListenStmt"
        optional :unlisten_stmt, :message, 82, "pg_query.UnlistenStmt", json_name: "UnlistenStmt"
        optional :transaction_stmt, :message, 83, "pg_query.TransactionStmt", json_name: "TransactionStmt"
        optional :view_stmt, :message, 84, "pg_query.ViewStmt", json_name: "ViewStmt"
        optional :load_stmt, :message, 85, "pg_query.LoadStmt", json_name: "LoadStmt"
        optional :create_domain_stmt, :message, 86, "pg_query.CreateDomainStmt", json_name: "CreateDomainStmt"
        optional :createdb_stmt, :message, 87, "pg_query.CreatedbStmt", json_name: "CreatedbStmt"
        optional :dropdb_stmt, :message, 88, "pg_query.DropdbStmt", json_name: "DropdbStmt"
        optional :vacuum_stmt, :message, 89, "pg_query.VacuumStmt", json_name: "VacuumStmt"
        optional :explain_stmt, :message, 90, "pg_query.ExplainStmt", json_name: "ExplainStmt"
        optional :create_table_as_stmt, :message, 91, "pg_query.CreateTableAsStmt", json_name: "CreateTableAsStmt"
        optional :create_seq_stmt, :message, 92, "pg_query.CreateSeqStmt", json_name: "CreateSeqStmt"
        optional :alter_seq_stmt, :message, 93, "pg_query.AlterSeqStmt", json_name: "AlterSeqStmt"
        optional :variable_set_stmt, :message, 94, "pg_query.VariableSetStmt", json_name: "VariableSetStmt"
        optional :variable_show_stmt, :message, 95, "pg_query.VariableShowStmt", json_name: "VariableShowStmt"
        optional :discard_stmt, :message, 96, "pg_query.DiscardStmt", json_name: "DiscardStmt"
        optional :create_trig_stmt, :message, 97, "pg_query.CreateTrigStmt", json_name: "CreateTrigStmt"
        optional :create_plang_stmt, :message, 98, "pg_query.CreatePLangStmt", json_name: "CreatePLangStmt"
        optional :create_role_stmt, :message, 99, "pg_query.CreateRoleStmt", json_name: "CreateRoleStmt"
        optional :alter_role_stmt, :message, 100, "pg_query.AlterRoleStmt", json_name: "AlterRoleStmt"
        optional :drop_role_stmt, :message, 101, "pg_query.DropRoleStmt", json_name: "DropRoleStmt"
        optional :lock_stmt, :message, 102, "pg_query.LockStmt", json_name: "LockStmt"
        optional :constraints_set_stmt, :message, 103, "pg_query.ConstraintsSetStmt", json_name: "ConstraintsSetStmt"
        optional :reindex_stmt, :message, 104, "pg_query.ReindexStmt", json_name: "ReindexStmt"
        optional :check_point_stmt, :message, 105, "pg_query.CheckPointStmt", json_name: "CheckPointStmt"
        optional :create_schema_stmt, :message, 106, "pg_query.CreateSchemaStmt", json_name: "CreateSchemaStmt"
        optional :alter_database_stmt, :message, 107, "pg_query.AlterDatabaseStmt", json_name: "AlterDatabaseStmt"
        optional :alter_database_set_stmt, :message, 108, "pg_query.AlterDatabaseSetStmt", json_name: "AlterDatabaseSetStmt"
        optional :alter_role_set_stmt, :message, 109, "pg_query.AlterRoleSetStmt", json_name: "AlterRoleSetStmt"
        optional :create_conversion_stmt, :message, 110, "pg_query.CreateConversionStmt", json_name: "CreateConversionStmt"
        optional :create_cast_stmt, :message, 111, "pg_query.CreateCastStmt", json_name: "CreateCastStmt"
        optional :create_op_class_stmt, :message, 112, "pg_query.CreateOpClassStmt", json_name: "CreateOpClassStmt"
        optional :create_op_family_stmt, :message, 113, "pg_query.CreateOpFamilyStmt", json_name: "CreateOpFamilyStmt"
        optional :alter_op_family_stmt, :message, 114, "pg_query.AlterOpFamilyStmt", json_name: "AlterOpFamilyStmt"
        optional :prepare_stmt, :message, 115, "pg_query.PrepareStmt", json_name: "PrepareStmt"
        optional :execute_stmt, :message, 116, "pg_query.ExecuteStmt", json_name: "ExecuteStmt"
        optional :deallocate_stmt, :message, 117, "pg_query.DeallocateStmt", json_name: "DeallocateStmt"
        optional :declare_cursor_stmt, :message, 118, "pg_query.DeclareCursorStmt", json_name: "DeclareCursorStmt"
        optional :create_table_space_stmt, :message, 119, "pg_query.CreateTableSpaceStmt", json_name: "CreateTableSpaceStmt"
        optional :drop_table_space_stmt, :message, 120, "pg_query.DropTableSpaceStmt", json_name: "DropTableSpaceStmt"
        optional :alter_object_depends_stmt, :message, 121, "pg_query.AlterObjectDependsStmt", json_name: "AlterObjectDependsStmt"
        optional :alter_object_schema_stmt, :message, 122, "pg_query.AlterObjectSchemaStmt", json_name: "AlterObjectSchemaStmt"
        optional :alter_owner_stmt, :message, 123, "pg_query.AlterOwnerStmt", json_name: "AlterOwnerStmt"
        optional :alter_operator_stmt, :message, 124, "pg_query.AlterOperatorStmt", json_name: "AlterOperatorStmt"
        optional :alter_type_stmt, :message, 125, "pg_query.AlterTypeStmt", json_name: "AlterTypeStmt"
        optional :drop_owned_stmt, :message, 126, "pg_query.DropOwnedStmt", json_name: "DropOwnedStmt"
        optional :reassign_owned_stmt, :message, 127, "pg_query.ReassignOwnedStmt", json_name: "ReassignOwnedStmt"
        optional :composite_type_stmt, :message, 128, "pg_query.CompositeTypeStmt", json_name: "CompositeTypeStmt"
        optional :create_enum_stmt, :message, 129, "pg_query.CreateEnumStmt", json_name: "CreateEnumStmt"
        optional :create_range_stmt, :message, 130, "pg_query.CreateRangeStmt", json_name: "CreateRangeStmt"
        optional :alter_enum_stmt, :message, 131, "pg_query.AlterEnumStmt", json_name: "AlterEnumStmt"
        optional :alter_tsdictionary_stmt, :message, 132, "pg_query.AlterTSDictionaryStmt", json_name: "AlterTSDictionaryStmt"
        optional :alter_tsconfiguration_stmt, :message, 133, "pg_query.AlterTSConfigurationStmt", json_name: "AlterTSConfigurationStmt"
        optional :create_fdw_stmt, :message, 134, "pg_query.CreateFdwStmt", json_name: "CreateFdwStmt"
        optional :alter_fdw_stmt, :message, 135, "pg_query.AlterFdwStmt", json_name: "AlterFdwStmt"
        optional :create_foreign_server_stmt, :message, 136, "pg_query.CreateForeignServerStmt", json_name: "CreateForeignServerStmt"
        optional :alter_foreign_server_stmt, :message, 137, "pg_query.AlterForeignServerStmt", json_name: "AlterForeignServerStmt"
        optional :create_user_mapping_stmt, :message, 138, "pg_query.CreateUserMappingStmt", json_name: "CreateUserMappingStmt"
        optional :alter_user_mapping_stmt, :message, 139, "pg_query.AlterUserMappingStmt", json_name: "AlterUserMappingStmt"
        optional :drop_user_mapping_stmt, :message, 140, "pg_query.DropUserMappingStmt", json_name: "DropUserMappingStmt"
        optional :alter_table_space_options_stmt, :message, 141, "pg_query.AlterTableSpaceOptionsStmt", json_name: "AlterTableSpaceOptionsStmt"
        optional :alter_table_move_all_stmt, :message, 142, "pg_query.AlterTableMoveAllStmt", json_name: "AlterTableMoveAllStmt"
        optional :sec_label_stmt, :message, 143, "pg_query.SecLabelStmt", json_name: "SecLabelStmt"
        optional :create_foreign_table_stmt, :message, 144, "pg_query.CreateForeignTableStmt", json_name: "CreateForeignTableStmt"
        optional :import_foreign_schema_stmt, :message, 145, "pg_query.ImportForeignSchemaStmt", json_name: "ImportForeignSchemaStmt"
        optional :create_extension_stmt, :message, 146, "pg_query.CreateExtensionStmt", json_name: "CreateExtensionStmt"
        optional :alter_extension_stmt, :message, 147, "pg_query.AlterExtensionStmt", json_name: "AlterExtensionStmt"
        optional :alter_extension_contents_stmt, :message, 148, "pg_query.AlterExtensionContentsStmt", json_name: "AlterExtensionContentsStmt"
        optional :create_event_trig_stmt, :message, 149, "pg_query.CreateEventTrigStmt", json_name: "CreateEventTrigStmt"
        optional :alter_event_trig_stmt, :message, 150, "pg_query.AlterEventTrigStmt", json_name: "AlterEventTrigStmt"
        optional :refresh_mat_view_stmt, :message, 151, "pg_query.RefreshMatViewStmt", json_name: "RefreshMatViewStmt"
        optional :replica_identity_stmt, :message, 152, "pg_query.ReplicaIdentityStmt", json_name: "ReplicaIdentityStmt"
        optional :alter_system_stmt, :message, 153, "pg_query.AlterSystemStmt", json_name: "AlterSystemStmt"
        optional :create_policy_stmt, :message, 154, "pg_query.CreatePolicyStmt", json_name: "CreatePolicyStmt"
        optional :alter_policy_stmt, :message, 155, "pg_query.AlterPolicyStmt", json_name: "AlterPolicyStmt"
        optional :create_transform_stmt, :message, 156, "pg_query.CreateTransformStmt", json_name: "CreateTransformStmt"
        optional :create_am_stmt, :message, 157, "pg_query.CreateAmStmt", json_name: "CreateAmStmt"
        optional :create_publication_stmt, :message, 158, "pg_query.CreatePublicationStmt", json_name: "CreatePublicationStmt"
        optional :alter_publication_stmt, :message, 159, "pg_query.AlterPublicationStmt", json_name: "AlterPublicationStmt"
        optional :create_subscription_stmt, :message, 160, "pg_query.CreateSubscriptionStmt", json_name: "CreateSubscriptionStmt"
        optional :alter_subscription_stmt, :message, 161, "pg_query.AlterSubscriptionStmt", json_name: "AlterSubscriptionStmt"
        optional :drop_subscription_stmt, :message, 162, "pg_query.DropSubscriptionStmt", json_name: "DropSubscriptionStmt"
        optional :create_stats_stmt, :message, 163, "pg_query.CreateStatsStmt", json_name: "CreateStatsStmt"
        optional :alter_collation_stmt, :message, 164, "pg_query.AlterCollationStmt", json_name: "AlterCollationStmt"
        optional :call_stmt, :message, 165, "pg_query.CallStmt", json_name: "CallStmt"
        optional :alter_stats_stmt, :message, 166, "pg_query.AlterStatsStmt", json_name: "AlterStatsStmt"
        optional :a_expr, :message, 167, "pg_query.A_Expr", json_name: "A_Expr"
        optional :column_ref, :message, 168, "pg_query.ColumnRef", json_name: "ColumnRef"
        optional :param_ref, :message, 169, "pg_query.ParamRef", json_name: "ParamRef"
        optional :a_const, :message, 170, "pg_query.A_Const", json_name: "A_Const"
        optional :func_call, :message, 171, "pg_query.FuncCall", json_name: "FuncCall"
        optional :a_star, :message, 172, "pg_query.A_Star", json_name: "A_Star"
        optional :a_indices, :message, 173, "pg_query.A_Indices", json_name: "A_Indices"
        optional :a_indirection, :message, 174, "pg_query.A_Indirection", json_name: "A_Indirection"
        optional :a_array_expr, :message, 175, "pg_query.A_ArrayExpr", json_name: "A_ArrayExpr"
        optional :res_target, :message, 176, "pg_query.ResTarget", json_name: "ResTarget"
        optional :multi_assign_ref, :message, 177, "pg_query.MultiAssignRef", json_name: "MultiAssignRef"
        optional :type_cast, :message, 178, "pg_query.TypeCast", json_name: "TypeCast"
        optional :collate_clause, :message, 179, "pg_query.CollateClause", json_name: "CollateClause"
        optional :sort_by, :message, 180, "pg_query.SortBy", json_name: "SortBy"
        optional :window_def, :message, 181, "pg_query.WindowDef", json_name: "WindowDef"
        optional :range_subselect, :message, 182, "pg_query.RangeSubselect", json_name: "RangeSubselect"
        optional :range_function, :message, 183, "pg_query.RangeFunction", json_name: "RangeFunction"
        optional :range_table_sample, :message, 184, "pg_query.RangeTableSample", json_name: "RangeTableSample"
        optional :range_table_func, :message, 185, "pg_query.RangeTableFunc", json_name: "RangeTableFunc"
        optional :range_table_func_col, :message, 186, "pg_query.RangeTableFuncCol", json_name: "RangeTableFuncCol"
        optional :type_name, :message, 187, "pg_query.TypeName", json_name: "TypeName"
        optional :column_def, :message, 188, "pg_query.ColumnDef", json_name: "ColumnDef"
        optional :index_elem, :message, 189, "pg_query.IndexElem", json_name: "IndexElem"
        optional :constraint, :message, 190, "pg_query.Constraint", json_name: "Constraint"
        optional :def_elem, :message, 191, "pg_query.DefElem", json_name: "DefElem"
        optional :range_tbl_entry, :message, 192, "pg_query.RangeTblEntry", json_name: "RangeTblEntry"
        optional :range_tbl_function, :message, 193, "pg_query.RangeTblFunction", json_name: "RangeTblFunction"
        optional :table_sample_clause, :message, 194, "pg_query.TableSampleClause", json_name: "TableSampleClause"
        optional :with_check_option, :message, 195, "pg_query.WithCheckOption", json_name: "WithCheckOption"
        optional :sort_group_clause, :message, 196, "pg_query.SortGroupClause", json_name: "SortGroupClause"
        optional :grouping_set, :message, 197, "pg_query.GroupingSet", json_name: "GroupingSet"
        optional :window_clause, :message, 198, "pg_query.WindowClause", json_name: "WindowClause"
        optional :object_with_args, :message, 199, "pg_query.ObjectWithArgs", json_name: "ObjectWithArgs"
        optional :access_priv, :message, 200, "pg_query.AccessPriv", json_name: "AccessPriv"
        optional :create_op_class_item, :message, 201, "pg_query.CreateOpClassItem", json_name: "CreateOpClassItem"
        optional :table_like_clause, :message, 202, "pg_query.TableLikeClause", json_name: "TableLikeClause"
        optional :function_parameter, :message, 203, "pg_query.FunctionParameter", json_name: "FunctionParameter"
        optional :locking_clause, :message, 204, "pg_query.LockingClause", json_name: "LockingClause"
        optional :row_mark_clause, :message, 205, "pg_query.RowMarkClause", json_name: "RowMarkClause"
        optional :xml_serialize, :message, 206, "pg_query.XmlSerialize", json_name: "XmlSerialize"
        optional :with_clause, :message, 207, "pg_query.WithClause", json_name: "WithClause"
        optional :infer_clause, :message, 208, "pg_query.InferClause", json_name: "InferClause"
        optional :on_conflict_clause, :message, 209, "pg_query.OnConflictClause", json_name: "OnConflictClause"
        optional :common_table_expr, :message, 210, "pg_query.CommonTableExpr", json_name: "CommonTableExpr"
        optional :role_spec, :message, 211, "pg_query.RoleSpec", json_name: "RoleSpec"
        optional :trigger_transition, :message, 212, "pg_query.TriggerTransition", json_name: "TriggerTransition"
        optional :partition_elem, :message, 213, "pg_query.PartitionElem", json_name: "PartitionElem"
        optional :partition_spec, :message, 214, "pg_query.PartitionSpec", json_name: "PartitionSpec"
        optional :partition_bound_spec, :message, 215, "pg_query.PartitionBoundSpec", json_name: "PartitionBoundSpec"
        optional :partition_range_datum, :message, 216, "pg_query.PartitionRangeDatum", json_name: "PartitionRangeDatum"
        optional :partition_cmd, :message, 217, "pg_query.PartitionCmd", json_name: "PartitionCmd"
        optional :vacuum_relation, :message, 218, "pg_query.VacuumRelation", json_name: "VacuumRelation"
        optional :inline_code_block, :message, 219, "pg_query.InlineCodeBlock", json_name: "InlineCodeBlock"
        optional :call_context, :message, 220, "pg_query.CallContext", json_name: "CallContext"
        optional :integer, :message, 221, "pg_query.Integer", json_name: "Integer"
        optional :float, :message, 222, "pg_query.Float", json_name: "Float"
        optional :string, :message, 223, "pg_query.String", json_name: "String"
        optional :bit_string, :message, 224, "pg_query.BitString", json_name: "BitString"
        optional :null, :message, 225, "pg_query.Null", json_name: "Null"
        optional :list, :message, 226, "pg_query.List", json_name: "List"
        optional :int_list, :message, 227, "pg_query.IntList", json_name: "IntList"
        optional :oid_list, :message, 228, "pg_query.OidList", json_name: "OidList"
      end
    end
    add_message "pg_query.Integer" do
      optional :ival, :int32, 1
    end
    add_message "pg_query.Float" do
      optional :str, :string, 1
    end
    add_message "pg_query.String" do
      optional :str, :string, 1
    end
    add_message "pg_query.BitString" do
      optional :str, :string, 1
    end
    add_message "pg_query.Null" do
    end
    add_message "pg_query.List" do
      repeated :items, :message, 1, "pg_query.Node"
    end
    add_message "pg_query.OidList" do
      repeated :items, :message, 1, "pg_query.Node"
    end
    add_message "pg_query.IntList" do
      repeated :items, :message, 1, "pg_query.Node"
    end
    add_message "pg_query.Alias" do
      optional :aliasname, :string, 1, json_name: "aliasname"
      repeated :colnames, :message, 2, "pg_query.Node", json_name: "colnames"
    end
    add_message "pg_query.RangeVar" do
      optional :catalogname, :string, 1, json_name: "catalogname"
      optional :schemaname, :string, 2, json_name: "schemaname"
      optional :relname, :string, 3, json_name: "relname"
      optional :inh, :bool, 4, json_name: "inh"
      optional :relpersistence, :string, 5, json_name: "relpersistence"
      optional :alias, :message, 6, "pg_query.Alias", json_name: "alias"
      optional :location, :int32, 7, json_name: "location"
    end
    add_message "pg_query.TableFunc" do
      repeated :ns_uris, :message, 1, "pg_query.Node", json_name: "ns_uris"
      repeated :ns_names, :message, 2, "pg_query.Node", json_name: "ns_names"
      optional :docexpr, :message, 3, "pg_query.Node", json_name: "docexpr"
      optional :rowexpr, :message, 4, "pg_query.Node", json_name: "rowexpr"
      repeated :colnames, :message, 5, "pg_query.Node", json_name: "colnames"
      repeated :coltypes, :message, 6, "pg_query.Node", json_name: "coltypes"
      repeated :coltypmods, :message, 7, "pg_query.Node", json_name: "coltypmods"
      repeated :colcollations, :message, 8, "pg_query.Node", json_name: "colcollations"
      repeated :colexprs, :message, 9, "pg_query.Node", json_name: "colexprs"
      repeated :coldefexprs, :message, 10, "pg_query.Node", json_name: "coldefexprs"
      repeated :notnulls, :uint64, 11, json_name: "notnulls"
      optional :ordinalitycol, :int32, 12, json_name: "ordinalitycol"
      optional :location, :int32, 13, json_name: "location"
    end
    add_message "pg_query.Expr" do
    end
    add_message "pg_query.Var" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :varno, :uint32, 2, json_name: "varno"
      optional :varattno, :int32, 3, json_name: "varattno"
      optional :vartype, :uint32, 4, json_name: "vartype"
      optional :vartypmod, :int32, 5, json_name: "vartypmod"
      optional :varcollid, :uint32, 6, json_name: "varcollid"
      optional :varlevelsup, :uint32, 7, json_name: "varlevelsup"
      optional :varnosyn, :uint32, 8, json_name: "varnosyn"
      optional :varattnosyn, :int32, 9, json_name: "varattnosyn"
      optional :location, :int32, 10, json_name: "location"
    end
    add_message "pg_query.Param" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :paramkind, :enum, 2, "pg_query.ParamKind", json_name: "paramkind"
      optional :paramid, :int32, 3, json_name: "paramid"
      optional :paramtype, :uint32, 4, json_name: "paramtype"
      optional :paramtypmod, :int32, 5, json_name: "paramtypmod"
      optional :paramcollid, :uint32, 6, json_name: "paramcollid"
      optional :location, :int32, 7, json_name: "location"
    end
    add_message "pg_query.Aggref" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :aggfnoid, :uint32, 2, json_name: "aggfnoid"
      optional :aggtype, :uint32, 3, json_name: "aggtype"
      optional :aggcollid, :uint32, 4, json_name: "aggcollid"
      optional :inputcollid, :uint32, 5, json_name: "inputcollid"
      optional :aggtranstype, :uint32, 6, json_name: "aggtranstype"
      repeated :aggargtypes, :message, 7, "pg_query.Node", json_name: "aggargtypes"
      repeated :aggdirectargs, :message, 8, "pg_query.Node", json_name: "aggdirectargs"
      repeated :args, :message, 9, "pg_query.Node", json_name: "args"
      repeated :aggorder, :message, 10, "pg_query.Node", json_name: "aggorder"
      repeated :aggdistinct, :message, 11, "pg_query.Node", json_name: "aggdistinct"
      optional :aggfilter, :message, 12, "pg_query.Node", json_name: "aggfilter"
      optional :aggstar, :bool, 13, json_name: "aggstar"
      optional :aggvariadic, :bool, 14, json_name: "aggvariadic"
      optional :aggkind, :string, 15, json_name: "aggkind"
      optional :agglevelsup, :uint32, 16, json_name: "agglevelsup"
      optional :aggsplit, :enum, 17, "pg_query.AggSplit", json_name: "aggsplit"
      optional :location, :int32, 18, json_name: "location"
    end
    add_message "pg_query.GroupingFunc" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      repeated :args, :message, 2, "pg_query.Node", json_name: "args"
      repeated :refs, :message, 3, "pg_query.Node", json_name: "refs"
      repeated :cols, :message, 4, "pg_query.Node", json_name: "cols"
      optional :agglevelsup, :uint32, 5, json_name: "agglevelsup"
      optional :location, :int32, 6, json_name: "location"
    end
    add_message "pg_query.WindowFunc" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :winfnoid, :uint32, 2, json_name: "winfnoid"
      optional :wintype, :uint32, 3, json_name: "wintype"
      optional :wincollid, :uint32, 4, json_name: "wincollid"
      optional :inputcollid, :uint32, 5, json_name: "inputcollid"
      repeated :args, :message, 6, "pg_query.Node", json_name: "args"
      optional :aggfilter, :message, 7, "pg_query.Node", json_name: "aggfilter"
      optional :winref, :uint32, 8, json_name: "winref"
      optional :winstar, :bool, 9, json_name: "winstar"
      optional :winagg, :bool, 10, json_name: "winagg"
      optional :location, :int32, 11, json_name: "location"
    end
    add_message "pg_query.SubscriptingRef" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :refcontainertype, :uint32, 2, json_name: "refcontainertype"
      optional :refelemtype, :uint32, 3, json_name: "refelemtype"
      optional :reftypmod, :int32, 4, json_name: "reftypmod"
      optional :refcollid, :uint32, 5, json_name: "refcollid"
      repeated :refupperindexpr, :message, 6, "pg_query.Node", json_name: "refupperindexpr"
      repeated :reflowerindexpr, :message, 7, "pg_query.Node", json_name: "reflowerindexpr"
      optional :refexpr, :message, 8, "pg_query.Node", json_name: "refexpr"
      optional :refassgnexpr, :message, 9, "pg_query.Node", json_name: "refassgnexpr"
    end
    add_message "pg_query.FuncExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :funcid, :uint32, 2, json_name: "funcid"
      optional :funcresulttype, :uint32, 3, json_name: "funcresulttype"
      optional :funcretset, :bool, 4, json_name: "funcretset"
      optional :funcvariadic, :bool, 5, json_name: "funcvariadic"
      optional :funcformat, :enum, 6, "pg_query.CoercionForm", json_name: "funcformat"
      optional :funccollid, :uint32, 7, json_name: "funccollid"
      optional :inputcollid, :uint32, 8, json_name: "inputcollid"
      repeated :args, :message, 9, "pg_query.Node", json_name: "args"
      optional :location, :int32, 10, json_name: "location"
    end
    add_message "pg_query.NamedArgExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :arg, :message, 2, "pg_query.Node", json_name: "arg"
      optional :name, :string, 3, json_name: "name"
      optional :argnumber, :int32, 4, json_name: "argnumber"
      optional :location, :int32, 5, json_name: "location"
    end
    add_message "pg_query.OpExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :opno, :uint32, 2, json_name: "opno"
      optional :opfuncid, :uint32, 3, json_name: "opfuncid"
      optional :opresulttype, :uint32, 4, json_name: "opresulttype"
      optional :opretset, :bool, 5, json_name: "opretset"
      optional :opcollid, :uint32, 6, json_name: "opcollid"
      optional :inputcollid, :uint32, 7, json_name: "inputcollid"
      repeated :args, :message, 8, "pg_query.Node", json_name: "args"
      optional :location, :int32, 9, json_name: "location"
    end
    add_message "pg_query.DistinctExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :opno, :uint32, 2, json_name: "opno"
      optional :opfuncid, :uint32, 3, json_name: "opfuncid"
      optional :opresulttype, :uint32, 4, json_name: "opresulttype"
      optional :opretset, :bool, 5, json_name: "opretset"
      optional :opcollid, :uint32, 6, json_name: "opcollid"
      optional :inputcollid, :uint32, 7, json_name: "inputcollid"
      repeated :args, :message, 8, "pg_query.Node", json_name: "args"
      optional :location, :int32, 9, json_name: "location"
    end
    add_message "pg_query.NullIfExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :opno, :uint32, 2, json_name: "opno"
      optional :opfuncid, :uint32, 3, json_name: "opfuncid"
      optional :opresulttype, :uint32, 4, json_name: "opresulttype"
      optional :opretset, :bool, 5, json_name: "opretset"
      optional :opcollid, :uint32, 6, json_name: "opcollid"
      optional :inputcollid, :uint32, 7, json_name: "inputcollid"
      repeated :args, :message, 8, "pg_query.Node", json_name: "args"
      optional :location, :int32, 9, json_name: "location"
    end
    add_message "pg_query.ScalarArrayOpExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :opno, :uint32, 2, json_name: "opno"
      optional :opfuncid, :uint32, 3, json_name: "opfuncid"
      optional :use_or, :bool, 4, json_name: "useOr"
      optional :inputcollid, :uint32, 5, json_name: "inputcollid"
      repeated :args, :message, 6, "pg_query.Node", json_name: "args"
      optional :location, :int32, 7, json_name: "location"
    end
    add_message "pg_query.BoolExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :boolop, :enum, 2, "pg_query.BoolExprType", json_name: "boolop"
      repeated :args, :message, 3, "pg_query.Node", json_name: "args"
      optional :location, :int32, 4, json_name: "location"
    end
    add_message "pg_query.SubLink" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :sub_link_type, :enum, 2, "pg_query.SubLinkType", json_name: "subLinkType"
      optional :sub_link_id, :int32, 3, json_name: "subLinkId"
      optional :testexpr, :message, 4, "pg_query.Node", json_name: "testexpr"
      repeated :oper_name, :message, 5, "pg_query.Node", json_name: "operName"
      optional :subselect, :message, 6, "pg_query.Node", json_name: "subselect"
      optional :location, :int32, 7, json_name: "location"
    end
    add_message "pg_query.SubPlan" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :sub_link_type, :enum, 2, "pg_query.SubLinkType", json_name: "subLinkType"
      optional :testexpr, :message, 3, "pg_query.Node", json_name: "testexpr"
      repeated :param_ids, :message, 4, "pg_query.Node", json_name: "paramIds"
      optional :plan_id, :int32, 5, json_name: "plan_id"
      optional :plan_name, :string, 6, json_name: "plan_name"
      optional :first_col_type, :uint32, 7, json_name: "firstColType"
      optional :first_col_typmod, :int32, 8, json_name: "firstColTypmod"
      optional :first_col_collation, :uint32, 9, json_name: "firstColCollation"
      optional :use_hash_table, :bool, 10, json_name: "useHashTable"
      optional :unknown_eq_false, :bool, 11, json_name: "unknownEqFalse"
      optional :parallel_safe, :bool, 12, json_name: "parallel_safe"
      repeated :set_param, :message, 13, "pg_query.Node", json_name: "setParam"
      repeated :par_param, :message, 14, "pg_query.Node", json_name: "parParam"
      repeated :args, :message, 15, "pg_query.Node", json_name: "args"
      optional :startup_cost, :double, 16, json_name: "startup_cost"
      optional :per_call_cost, :double, 17, json_name: "per_call_cost"
    end
    add_message "pg_query.AlternativeSubPlan" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      repeated :subplans, :message, 2, "pg_query.Node", json_name: "subplans"
    end
    add_message "pg_query.FieldSelect" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :arg, :message, 2, "pg_query.Node", json_name: "arg"
      optional :fieldnum, :int32, 3, json_name: "fieldnum"
      optional :resulttype, :uint32, 4, json_name: "resulttype"
      optional :resulttypmod, :int32, 5, json_name: "resulttypmod"
      optional :resultcollid, :uint32, 6, json_name: "resultcollid"
    end
    add_message "pg_query.FieldStore" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :arg, :message, 2, "pg_query.Node", json_name: "arg"
      repeated :newvals, :message, 3, "pg_query.Node", json_name: "newvals"
      repeated :fieldnums, :message, 4, "pg_query.Node", json_name: "fieldnums"
      optional :resulttype, :uint32, 5, json_name: "resulttype"
    end
    add_message "pg_query.RelabelType" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :arg, :message, 2, "pg_query.Node", json_name: "arg"
      optional :resulttype, :uint32, 3, json_name: "resulttype"
      optional :resulttypmod, :int32, 4, json_name: "resulttypmod"
      optional :resultcollid, :uint32, 5, json_name: "resultcollid"
      optional :relabelformat, :enum, 6, "pg_query.CoercionForm", json_name: "relabelformat"
      optional :location, :int32, 7, json_name: "location"
    end
    add_message "pg_query.CoerceViaIO" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :arg, :message, 2, "pg_query.Node", json_name: "arg"
      optional :resulttype, :uint32, 3, json_name: "resulttype"
      optional :resultcollid, :uint32, 4, json_name: "resultcollid"
      optional :coerceformat, :enum, 5, "pg_query.CoercionForm", json_name: "coerceformat"
      optional :location, :int32, 6, json_name: "location"
    end
    add_message "pg_query.ArrayCoerceExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :arg, :message, 2, "pg_query.Node", json_name: "arg"
      optional :elemexpr, :message, 3, "pg_query.Node", json_name: "elemexpr"
      optional :resulttype, :uint32, 4, json_name: "resulttype"
      optional :resulttypmod, :int32, 5, json_name: "resulttypmod"
      optional :resultcollid, :uint32, 6, json_name: "resultcollid"
      optional :coerceformat, :enum, 7, "pg_query.CoercionForm", json_name: "coerceformat"
      optional :location, :int32, 8, json_name: "location"
    end
    add_message "pg_query.ConvertRowtypeExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :arg, :message, 2, "pg_query.Node", json_name: "arg"
      optional :resulttype, :uint32, 3, json_name: "resulttype"
      optional :convertformat, :enum, 4, "pg_query.CoercionForm", json_name: "convertformat"
      optional :location, :int32, 5, json_name: "location"
    end
    add_message "pg_query.CollateExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :arg, :message, 2, "pg_query.Node", json_name: "arg"
      optional :coll_oid, :uint32, 3, json_name: "collOid"
      optional :location, :int32, 4, json_name: "location"
    end
    add_message "pg_query.CaseExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :casetype, :uint32, 2, json_name: "casetype"
      optional :casecollid, :uint32, 3, json_name: "casecollid"
      optional :arg, :message, 4, "pg_query.Node", json_name: "arg"
      repeated :args, :message, 5, "pg_query.Node", json_name: "args"
      optional :defresult, :message, 6, "pg_query.Node", json_name: "defresult"
      optional :location, :int32, 7, json_name: "location"
    end
    add_message "pg_query.CaseWhen" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :expr, :message, 2, "pg_query.Node", json_name: "expr"
      optional :result, :message, 3, "pg_query.Node", json_name: "result"
      optional :location, :int32, 4, json_name: "location"
    end
    add_message "pg_query.CaseTestExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :type_id, :uint32, 2, json_name: "typeId"
      optional :type_mod, :int32, 3, json_name: "typeMod"
      optional :collation, :uint32, 4, json_name: "collation"
    end
    add_message "pg_query.ArrayExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :array_typeid, :uint32, 2, json_name: "array_typeid"
      optional :array_collid, :uint32, 3, json_name: "array_collid"
      optional :element_typeid, :uint32, 4, json_name: "element_typeid"
      repeated :elements, :message, 5, "pg_query.Node", json_name: "elements"
      optional :multidims, :bool, 6, json_name: "multidims"
      optional :location, :int32, 7, json_name: "location"
    end
    add_message "pg_query.RowExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      repeated :args, :message, 2, "pg_query.Node", json_name: "args"
      optional :row_typeid, :uint32, 3, json_name: "row_typeid"
      optional :row_format, :enum, 4, "pg_query.CoercionForm", json_name: "row_format"
      repeated :colnames, :message, 5, "pg_query.Node", json_name: "colnames"
      optional :location, :int32, 6, json_name: "location"
    end
    add_message "pg_query.RowCompareExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :rctype, :enum, 2, "pg_query.RowCompareType", json_name: "rctype"
      repeated :opnos, :message, 3, "pg_query.Node", json_name: "opnos"
      repeated :opfamilies, :message, 4, "pg_query.Node", json_name: "opfamilies"
      repeated :inputcollids, :message, 5, "pg_query.Node", json_name: "inputcollids"
      repeated :largs, :message, 6, "pg_query.Node", json_name: "largs"
      repeated :rargs, :message, 7, "pg_query.Node", json_name: "rargs"
    end
    add_message "pg_query.CoalesceExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :coalescetype, :uint32, 2, json_name: "coalescetype"
      optional :coalescecollid, :uint32, 3, json_name: "coalescecollid"
      repeated :args, :message, 4, "pg_query.Node", json_name: "args"
      optional :location, :int32, 5, json_name: "location"
    end
    add_message "pg_query.MinMaxExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :minmaxtype, :uint32, 2, json_name: "minmaxtype"
      optional :minmaxcollid, :uint32, 3, json_name: "minmaxcollid"
      optional :inputcollid, :uint32, 4, json_name: "inputcollid"
      optional :op, :enum, 5, "pg_query.MinMaxOp", json_name: "op"
      repeated :args, :message, 6, "pg_query.Node", json_name: "args"
      optional :location, :int32, 7, json_name: "location"
    end
    add_message "pg_query.SQLValueFunction" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :op, :enum, 2, "pg_query.SQLValueFunctionOp", json_name: "op"
      optional :type, :uint32, 3, json_name: "type"
      optional :typmod, :int32, 4, json_name: "typmod"
      optional :location, :int32, 5, json_name: "location"
    end
    add_message "pg_query.XmlExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :op, :enum, 2, "pg_query.XmlExprOp", json_name: "op"
      optional :name, :string, 3, json_name: "name"
      repeated :named_args, :message, 4, "pg_query.Node", json_name: "named_args"
      repeated :arg_names, :message, 5, "pg_query.Node", json_name: "arg_names"
      repeated :args, :message, 6, "pg_query.Node", json_name: "args"
      optional :xmloption, :enum, 7, "pg_query.XmlOptionType", json_name: "xmloption"
      optional :type, :uint32, 8, json_name: "type"
      optional :typmod, :int32, 9, json_name: "typmod"
      optional :location, :int32, 10, json_name: "location"
    end
    add_message "pg_query.NullTest" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :arg, :message, 2, "pg_query.Node", json_name: "arg"
      optional :nulltesttype, :enum, 3, "pg_query.NullTestType", json_name: "nulltesttype"
      optional :argisrow, :bool, 4, json_name: "argisrow"
      optional :location, :int32, 5, json_name: "location"
    end
    add_message "pg_query.BooleanTest" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :arg, :message, 2, "pg_query.Node", json_name: "arg"
      optional :booltesttype, :enum, 3, "pg_query.BoolTestType", json_name: "booltesttype"
      optional :location, :int32, 4, json_name: "location"
    end
    add_message "pg_query.CoerceToDomain" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :arg, :message, 2, "pg_query.Node", json_name: "arg"
      optional :resulttype, :uint32, 3, json_name: "resulttype"
      optional :resulttypmod, :int32, 4, json_name: "resulttypmod"
      optional :resultcollid, :uint32, 5, json_name: "resultcollid"
      optional :coercionformat, :enum, 6, "pg_query.CoercionForm", json_name: "coercionformat"
      optional :location, :int32, 7, json_name: "location"
    end
    add_message "pg_query.CoerceToDomainValue" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :type_id, :uint32, 2, json_name: "typeId"
      optional :type_mod, :int32, 3, json_name: "typeMod"
      optional :collation, :uint32, 4, json_name: "collation"
      optional :location, :int32, 5, json_name: "location"
    end
    add_message "pg_query.SetToDefault" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :type_id, :uint32, 2, json_name: "typeId"
      optional :type_mod, :int32, 3, json_name: "typeMod"
      optional :collation, :uint32, 4, json_name: "collation"
      optional :location, :int32, 5, json_name: "location"
    end
    add_message "pg_query.CurrentOfExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :cvarno, :uint32, 2, json_name: "cvarno"
      optional :cursor_name, :string, 3, json_name: "cursor_name"
      optional :cursor_param, :int32, 4, json_name: "cursor_param"
    end
    add_message "pg_query.NextValueExpr" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :seqid, :uint32, 2, json_name: "seqid"
      optional :type_id, :uint32, 3, json_name: "typeId"
    end
    add_message "pg_query.InferenceElem" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :expr, :message, 2, "pg_query.Node", json_name: "expr"
      optional :infercollid, :uint32, 3, json_name: "infercollid"
      optional :inferopclass, :uint32, 4, json_name: "inferopclass"
    end
    add_message "pg_query.TargetEntry" do
      optional :xpr, :message, 1, "pg_query.Node", json_name: "xpr"
      optional :expr, :message, 2, "pg_query.Node", json_name: "expr"
      optional :resno, :int32, 3, json_name: "resno"
      optional :resname, :string, 4, json_name: "resname"
      optional :ressortgroupref, :uint32, 5, json_name: "ressortgroupref"
      optional :resorigtbl, :uint32, 6, json_name: "resorigtbl"
      optional :resorigcol, :int32, 7, json_name: "resorigcol"
      optional :resjunk, :bool, 8, json_name: "resjunk"
    end
    add_message "pg_query.RangeTblRef" do
      optional :rtindex, :int32, 1, json_name: "rtindex"
    end
    add_message "pg_query.JoinExpr" do
      optional :jointype, :enum, 1, "pg_query.JoinType", json_name: "jointype"
      optional :is_natural, :bool, 2, json_name: "isNatural"
      optional :larg, :message, 3, "pg_query.Node", json_name: "larg"
      optional :rarg, :message, 4, "pg_query.Node", json_name: "rarg"
      repeated :using_clause, :message, 5, "pg_query.Node", json_name: "usingClause"
      optional :quals, :message, 6, "pg_query.Node", json_name: "quals"
      optional :alias, :message, 7, "pg_query.Alias", json_name: "alias"
      optional :rtindex, :int32, 8, json_name: "rtindex"
    end
    add_message "pg_query.FromExpr" do
      repeated :fromlist, :message, 1, "pg_query.Node", json_name: "fromlist"
      optional :quals, :message, 2, "pg_query.Node", json_name: "quals"
    end
    add_message "pg_query.OnConflictExpr" do
      optional :action, :enum, 1, "pg_query.OnConflictAction", json_name: "action"
      repeated :arbiter_elems, :message, 2, "pg_query.Node", json_name: "arbiterElems"
      optional :arbiter_where, :message, 3, "pg_query.Node", json_name: "arbiterWhere"
      optional :constraint, :uint32, 4, json_name: "constraint"
      repeated :on_conflict_set, :message, 5, "pg_query.Node", json_name: "onConflictSet"
      optional :on_conflict_where, :message, 6, "pg_query.Node", json_name: "onConflictWhere"
      optional :excl_rel_index, :int32, 7, json_name: "exclRelIndex"
      repeated :excl_rel_tlist, :message, 8, "pg_query.Node", json_name: "exclRelTlist"
    end
    add_message "pg_query.IntoClause" do
      optional :rel, :message, 1, "pg_query.RangeVar", json_name: "rel"
      repeated :col_names, :message, 2, "pg_query.Node", json_name: "colNames"
      optional :access_method, :string, 3, json_name: "accessMethod"
      repeated :options, :message, 4, "pg_query.Node", json_name: "options"
      optional :on_commit, :enum, 5, "pg_query.OnCommitAction", json_name: "onCommit"
      optional :table_space_name, :string, 6, json_name: "tableSpaceName"
      optional :view_query, :message, 7, "pg_query.Node", json_name: "viewQuery"
      optional :skip_data, :bool, 8, json_name: "skipData"
    end
    add_message "pg_query.RawStmt" do
      optional :stmt, :message, 1, "pg_query.Node", json_name: "stmt"
      optional :stmt_location, :int32, 2, json_name: "stmt_location"
      optional :stmt_len, :int32, 3, json_name: "stmt_len"
    end
    add_message "pg_query.Query" do
      optional :command_type, :enum, 1, "pg_query.CmdType", json_name: "commandType"
      optional :query_source, :enum, 2, "pg_query.QuerySource", json_name: "querySource"
      optional :can_set_tag, :bool, 3, json_name: "canSetTag"
      optional :utility_stmt, :message, 4, "pg_query.Node", json_name: "utilityStmt"
      optional :result_relation, :int32, 5, json_name: "resultRelation"
      optional :has_aggs, :bool, 6, json_name: "hasAggs"
      optional :has_window_funcs, :bool, 7, json_name: "hasWindowFuncs"
      optional :has_target_srfs, :bool, 8, json_name: "hasTargetSRFs"
      optional :has_sub_links, :bool, 9, json_name: "hasSubLinks"
      optional :has_distinct_on, :bool, 10, json_name: "hasDistinctOn"
      optional :has_recursive, :bool, 11, json_name: "hasRecursive"
      optional :has_modifying_cte, :bool, 12, json_name: "hasModifyingCTE"
      optional :has_for_update, :bool, 13, json_name: "hasForUpdate"
      optional :has_row_security, :bool, 14, json_name: "hasRowSecurity"
      repeated :cte_list, :message, 15, "pg_query.Node", json_name: "cteList"
      repeated :rtable, :message, 16, "pg_query.Node", json_name: "rtable"
      optional :jointree, :message, 17, "pg_query.FromExpr", json_name: "jointree"
      repeated :target_list, :message, 18, "pg_query.Node", json_name: "targetList"
      optional :override, :enum, 19, "pg_query.OverridingKind", json_name: "override"
      optional :on_conflict, :message, 20, "pg_query.OnConflictExpr", json_name: "onConflict"
      repeated :returning_list, :message, 21, "pg_query.Node", json_name: "returningList"
      repeated :group_clause, :message, 22, "pg_query.Node", json_name: "groupClause"
      repeated :grouping_sets, :message, 23, "pg_query.Node", json_name: "groupingSets"
      optional :having_qual, :message, 24, "pg_query.Node", json_name: "havingQual"
      repeated :window_clause, :message, 25, "pg_query.Node", json_name: "windowClause"
      repeated :distinct_clause, :message, 26, "pg_query.Node", json_name: "distinctClause"
      repeated :sort_clause, :message, 27, "pg_query.Node", json_name: "sortClause"
      optional :limit_offset, :message, 28, "pg_query.Node", json_name: "limitOffset"
      optional :limit_count, :message, 29, "pg_query.Node", json_name: "limitCount"
      optional :limit_option, :enum, 30, "pg_query.LimitOption", json_name: "limitOption"
      repeated :row_marks, :message, 31, "pg_query.Node", json_name: "rowMarks"
      optional :set_operations, :message, 32, "pg_query.Node", json_name: "setOperations"
      repeated :constraint_deps, :message, 33, "pg_query.Node", json_name: "constraintDeps"
      repeated :with_check_options, :message, 34, "pg_query.Node", json_name: "withCheckOptions"
      optional :stmt_location, :int32, 35, json_name: "stmt_location"
      optional :stmt_len, :int32, 36, json_name: "stmt_len"
    end
    add_message "pg_query.InsertStmt" do
      optional :relation, :message, 1, "pg_query.RangeVar", json_name: "relation"
      repeated :cols, :message, 2, "pg_query.Node", json_name: "cols"
      optional :select_stmt, :message, 3, "pg_query.Node", json_name: "selectStmt"
      optional :on_conflict_clause, :message, 4, "pg_query.OnConflictClause", json_name: "onConflictClause"
      repeated :returning_list, :message, 5, "pg_query.Node", json_name: "returningList"
      optional :with_clause, :message, 6, "pg_query.WithClause", json_name: "withClause"
      optional :override, :enum, 7, "pg_query.OverridingKind", json_name: "override"
    end
    add_message "pg_query.DeleteStmt" do
      optional :relation, :message, 1, "pg_query.RangeVar", json_name: "relation"
      repeated :using_clause, :message, 2, "pg_query.Node", json_name: "usingClause"
      optional :where_clause, :message, 3, "pg_query.Node", json_name: "whereClause"
      repeated :returning_list, :message, 4, "pg_query.Node", json_name: "returningList"
      optional :with_clause, :message, 5, "pg_query.WithClause", json_name: "withClause"
    end
    add_message "pg_query.UpdateStmt" do
      optional :relation, :message, 1, "pg_query.RangeVar", json_name: "relation"
      repeated :target_list, :message, 2, "pg_query.Node", json_name: "targetList"
      optional :where_clause, :message, 3, "pg_query.Node", json_name: "whereClause"
      repeated :from_clause, :message, 4, "pg_query.Node", json_name: "fromClause"
      repeated :returning_list, :message, 5, "pg_query.Node", json_name: "returningList"
      optional :with_clause, :message, 6, "pg_query.WithClause", json_name: "withClause"
    end
    add_message "pg_query.SelectStmt" do
      repeated :distinct_clause, :message, 1, "pg_query.Node", json_name: "distinctClause"
      optional :into_clause, :message, 2, "pg_query.IntoClause", json_name: "intoClause"
      repeated :target_list, :message, 3, "pg_query.Node", json_name: "targetList"
      repeated :from_clause, :message, 4, "pg_query.Node", json_name: "fromClause"
      optional :where_clause, :message, 5, "pg_query.Node", json_name: "whereClause"
      repeated :group_clause, :message, 6, "pg_query.Node", json_name: "groupClause"
      optional :having_clause, :message, 7, "pg_query.Node", json_name: "havingClause"
      repeated :window_clause, :message, 8, "pg_query.Node", json_name: "windowClause"
      repeated :values_lists, :message, 9, "pg_query.Node", json_name: "valuesLists"
      repeated :sort_clause, :message, 10, "pg_query.Node", json_name: "sortClause"
      optional :limit_offset, :message, 11, "pg_query.Node", json_name: "limitOffset"
      optional :limit_count, :message, 12, "pg_query.Node", json_name: "limitCount"
      optional :limit_option, :enum, 13, "pg_query.LimitOption", json_name: "limitOption"
      repeated :locking_clause, :message, 14, "pg_query.Node", json_name: "lockingClause"
      optional :with_clause, :message, 15, "pg_query.WithClause", json_name: "withClause"
      optional :op, :enum, 16, "pg_query.SetOperation", json_name: "op"
      optional :all, :bool, 17, json_name: "all"
      optional :larg, :message, 18, "pg_query.SelectStmt", json_name: "larg"
      optional :rarg, :message, 19, "pg_query.SelectStmt", json_name: "rarg"
    end
    add_message "pg_query.AlterTableStmt" do
      optional :relation, :message, 1, "pg_query.RangeVar", json_name: "relation"
      repeated :cmds, :message, 2, "pg_query.Node", json_name: "cmds"
      optional :relkind, :enum, 3, "pg_query.ObjectType", json_name: "relkind"
      optional :missing_ok, :bool, 4, json_name: "missing_ok"
    end
    add_message "pg_query.AlterTableCmd" do
      optional :subtype, :enum, 1, "pg_query.AlterTableType", json_name: "subtype"
      optional :name, :string, 2, json_name: "name"
      optional :num, :int32, 3, json_name: "num"
      optional :newowner, :message, 4, "pg_query.RoleSpec", json_name: "newowner"
      optional :def, :message, 5, "pg_query.Node", json_name: "def"
      optional :behavior, :enum, 6, "pg_query.DropBehavior", json_name: "behavior"
      optional :missing_ok, :bool, 7, json_name: "missing_ok"
      optional :recurse, :bool, 8, json_name: "recurse"
    end
    add_message "pg_query.AlterDomainStmt" do
      optional :subtype, :string, 1, json_name: "subtype"
      repeated :type_name, :message, 2, "pg_query.Node", json_name: "typeName"
      optional :name, :string, 3, json_name: "name"
      optional :def, :message, 4, "pg_query.Node", json_name: "def"
      optional :behavior, :enum, 5, "pg_query.DropBehavior", json_name: "behavior"
      optional :missing_ok, :bool, 6, json_name: "missing_ok"
    end
    add_message "pg_query.SetOperationStmt" do
      optional :op, :enum, 1, "pg_query.SetOperation", json_name: "op"
      optional :all, :bool, 2, json_name: "all"
      optional :larg, :message, 3, "pg_query.Node", json_name: "larg"
      optional :rarg, :message, 4, "pg_query.Node", json_name: "rarg"
      repeated :col_types, :message, 5, "pg_query.Node", json_name: "colTypes"
      repeated :col_typmods, :message, 6, "pg_query.Node", json_name: "colTypmods"
      repeated :col_collations, :message, 7, "pg_query.Node", json_name: "colCollations"
      repeated :group_clauses, :message, 8, "pg_query.Node", json_name: "groupClauses"
    end
    add_message "pg_query.GrantStmt" do
      optional :is_grant, :bool, 1, json_name: "is_grant"
      optional :targtype, :enum, 2, "pg_query.GrantTargetType", json_name: "targtype"
      optional :objtype, :enum, 3, "pg_query.ObjectType", json_name: "objtype"
      repeated :objects, :message, 4, "pg_query.Node", json_name: "objects"
      repeated :privileges, :message, 5, "pg_query.Node", json_name: "privileges"
      repeated :grantees, :message, 6, "pg_query.Node", json_name: "grantees"
      optional :grant_option, :bool, 7, json_name: "grant_option"
      optional :behavior, :enum, 8, "pg_query.DropBehavior", json_name: "behavior"
    end
    add_message "pg_query.GrantRoleStmt" do
      repeated :granted_roles, :message, 1, "pg_query.Node", json_name: "granted_roles"
      repeated :grantee_roles, :message, 2, "pg_query.Node", json_name: "grantee_roles"
      optional :is_grant, :bool, 3, json_name: "is_grant"
      optional :admin_opt, :bool, 4, json_name: "admin_opt"
      optional :grantor, :message, 5, "pg_query.RoleSpec", json_name: "grantor"
      optional :behavior, :enum, 6, "pg_query.DropBehavior", json_name: "behavior"
    end
    add_message "pg_query.AlterDefaultPrivilegesStmt" do
      repeated :options, :message, 1, "pg_query.Node", json_name: "options"
      optional :action, :message, 2, "pg_query.GrantStmt", json_name: "action"
    end
    add_message "pg_query.ClosePortalStmt" do
      optional :portalname, :string, 1, json_name: "portalname"
    end
    add_message "pg_query.ClusterStmt" do
      optional :relation, :message, 1, "pg_query.RangeVar", json_name: "relation"
      optional :indexname, :string, 2, json_name: "indexname"
      optional :options, :int32, 3, json_name: "options"
    end
    add_message "pg_query.CopyStmt" do
      optional :relation, :message, 1, "pg_query.RangeVar", json_name: "relation"
      optional :query, :message, 2, "pg_query.Node", json_name: "query"
      repeated :attlist, :message, 3, "pg_query.Node", json_name: "attlist"
      optional :is_from, :bool, 4, json_name: "is_from"
      optional :is_program, :bool, 5, json_name: "is_program"
      optional :filename, :string, 6, json_name: "filename"
      repeated :options, :message, 7, "pg_query.Node", json_name: "options"
      optional :where_clause, :message, 8, "pg_query.Node", json_name: "whereClause"
    end
    add_message "pg_query.CreateStmt" do
      optional :relation, :message, 1, "pg_query.RangeVar", json_name: "relation"
      repeated :table_elts, :message, 2, "pg_query.Node", json_name: "tableElts"
      repeated :inh_relations, :message, 3, "pg_query.Node", json_name: "inhRelations"
      optional :partbound, :message, 4, "pg_query.PartitionBoundSpec", json_name: "partbound"
      optional :partspec, :message, 5, "pg_query.PartitionSpec", json_name: "partspec"
      optional :of_typename, :message, 6, "pg_query.TypeName", json_name: "ofTypename"
      repeated :constraints, :message, 7, "pg_query.Node", json_name: "constraints"
      repeated :options, :message, 8, "pg_query.Node", json_name: "options"
      optional :oncommit, :enum, 9, "pg_query.OnCommitAction", json_name: "oncommit"
      optional :tablespacename, :string, 10, json_name: "tablespacename"
      optional :access_method, :string, 11, json_name: "accessMethod"
      optional :if_not_exists, :bool, 12, json_name: "if_not_exists"
    end
    add_message "pg_query.DefineStmt" do
      optional :kind, :enum, 1, "pg_query.ObjectType", json_name: "kind"
      optional :oldstyle, :bool, 2, json_name: "oldstyle"
      repeated :defnames, :message, 3, "pg_query.Node", json_name: "defnames"
      repeated :args, :message, 4, "pg_query.Node", json_name: "args"
      repeated :definition, :message, 5, "pg_query.Node", json_name: "definition"
      optional :if_not_exists, :bool, 6, json_name: "if_not_exists"
      optional :replace, :bool, 7, json_name: "replace"
    end
    add_message "pg_query.DropStmt" do
      repeated :objects, :message, 1, "pg_query.Node", json_name: "objects"
      optional :remove_type, :enum, 2, "pg_query.ObjectType", json_name: "removeType"
      optional :behavior, :enum, 3, "pg_query.DropBehavior", json_name: "behavior"
      optional :missing_ok, :bool, 4, json_name: "missing_ok"
      optional :concurrent, :bool, 5, json_name: "concurrent"
    end
    add_message "pg_query.TruncateStmt" do
      repeated :relations, :message, 1, "pg_query.Node", json_name: "relations"
      optional :restart_seqs, :bool, 2, json_name: "restart_seqs"
      optional :behavior, :enum, 3, "pg_query.DropBehavior", json_name: "behavior"
    end
    add_message "pg_query.CommentStmt" do
      optional :objtype, :enum, 1, "pg_query.ObjectType", json_name: "objtype"
      optional :object, :message, 2, "pg_query.Node", json_name: "object"
      optional :comment, :string, 3, json_name: "comment"
    end
    add_message "pg_query.FetchStmt" do
      optional :direction, :enum, 1, "pg_query.FetchDirection", json_name: "direction"
      optional :how_many, :int64, 2, json_name: "howMany"
      optional :portalname, :string, 3, json_name: "portalname"
      optional :ismove, :bool, 4, json_name: "ismove"
    end
    add_message "pg_query.IndexStmt" do
      optional :idxname, :string, 1, json_name: "idxname"
      optional :relation, :message, 2, "pg_query.RangeVar", json_name: "relation"
      optional :access_method, :string, 3, json_name: "accessMethod"
      optional :table_space, :string, 4, json_name: "tableSpace"
      repeated :index_params, :message, 5, "pg_query.Node", json_name: "indexParams"
      repeated :index_including_params, :message, 6, "pg_query.Node", json_name: "indexIncludingParams"
      repeated :options, :message, 7, "pg_query.Node", json_name: "options"
      optional :where_clause, :message, 8, "pg_query.Node", json_name: "whereClause"
      repeated :exclude_op_names, :message, 9, "pg_query.Node", json_name: "excludeOpNames"
      optional :idxcomment, :string, 10, json_name: "idxcomment"
      optional :index_oid, :uint32, 11, json_name: "indexOid"
      optional :old_node, :uint32, 12, json_name: "oldNode"
      optional :old_create_subid, :uint32, 13, json_name: "oldCreateSubid"
      optional :old_first_relfilenode_subid, :uint32, 14, json_name: "oldFirstRelfilenodeSubid"
      optional :unique, :bool, 15, json_name: "unique"
      optional :primary, :bool, 16, json_name: "primary"
      optional :isconstraint, :bool, 17, json_name: "isconstraint"
      optional :deferrable, :bool, 18, json_name: "deferrable"
      optional :initdeferred, :bool, 19, json_name: "initdeferred"
      optional :transformed, :bool, 20, json_name: "transformed"
      optional :concurrent, :bool, 21, json_name: "concurrent"
      optional :if_not_exists, :bool, 22, json_name: "if_not_exists"
      optional :reset_default_tblspc, :bool, 23, json_name: "reset_default_tblspc"
    end
    add_message "pg_query.CreateFunctionStmt" do
      optional :is_procedure, :bool, 1, json_name: "is_procedure"
      optional :replace, :bool, 2, json_name: "replace"
      repeated :funcname, :message, 3, "pg_query.Node", json_name: "funcname"
      repeated :parameters, :message, 4, "pg_query.Node", json_name: "parameters"
      optional :return_type, :message, 5, "pg_query.TypeName", json_name: "returnType"
      repeated :options, :message, 6, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.AlterFunctionStmt" do
      optional :objtype, :enum, 1, "pg_query.ObjectType", json_name: "objtype"
      optional :func, :message, 2, "pg_query.ObjectWithArgs", json_name: "func"
      repeated :actions, :message, 3, "pg_query.Node", json_name: "actions"
    end
    add_message "pg_query.DoStmt" do
      repeated :args, :message, 1, "pg_query.Node", json_name: "args"
    end
    add_message "pg_query.RenameStmt" do
      optional :rename_type, :enum, 1, "pg_query.ObjectType", json_name: "renameType"
      optional :relation_type, :enum, 2, "pg_query.ObjectType", json_name: "relationType"
      optional :relation, :message, 3, "pg_query.RangeVar", json_name: "relation"
      optional :object, :message, 4, "pg_query.Node", json_name: "object"
      optional :subname, :string, 5, json_name: "subname"
      optional :newname, :string, 6, json_name: "newname"
      optional :behavior, :enum, 7, "pg_query.DropBehavior", json_name: "behavior"
      optional :missing_ok, :bool, 8, json_name: "missing_ok"
    end
    add_message "pg_query.RuleStmt" do
      optional :relation, :message, 1, "pg_query.RangeVar", json_name: "relation"
      optional :rulename, :string, 2, json_name: "rulename"
      optional :where_clause, :message, 3, "pg_query.Node", json_name: "whereClause"
      optional :event, :enum, 4, "pg_query.CmdType", json_name: "event"
      optional :instead, :bool, 5, json_name: "instead"
      repeated :actions, :message, 6, "pg_query.Node", json_name: "actions"
      optional :replace, :bool, 7, json_name: "replace"
    end
    add_message "pg_query.NotifyStmt" do
      optional :conditionname, :string, 1, json_name: "conditionname"
      optional :payload, :string, 2, json_name: "payload"
    end
    add_message "pg_query.ListenStmt" do
      optional :conditionname, :string, 1, json_name: "conditionname"
    end
    add_message "pg_query.UnlistenStmt" do
      optional :conditionname, :string, 1, json_name: "conditionname"
    end
    add_message "pg_query.TransactionStmt" do
      optional :kind, :enum, 1, "pg_query.TransactionStmtKind", json_name: "kind"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
      optional :savepoint_name, :string, 3, json_name: "savepoint_name"
      optional :gid, :string, 4, json_name: "gid"
      optional :chain, :bool, 5, json_name: "chain"
    end
    add_message "pg_query.ViewStmt" do
      optional :view, :message, 1, "pg_query.RangeVar", json_name: "view"
      repeated :aliases, :message, 2, "pg_query.Node", json_name: "aliases"
      optional :query, :message, 3, "pg_query.Node", json_name: "query"
      optional :replace, :bool, 4, json_name: "replace"
      repeated :options, :message, 5, "pg_query.Node", json_name: "options"
      optional :with_check_option, :enum, 6, "pg_query.ViewCheckOption", json_name: "withCheckOption"
    end
    add_message "pg_query.LoadStmt" do
      optional :filename, :string, 1, json_name: "filename"
    end
    add_message "pg_query.CreateDomainStmt" do
      repeated :domainname, :message, 1, "pg_query.Node", json_name: "domainname"
      optional :type_name, :message, 2, "pg_query.TypeName", json_name: "typeName"
      optional :coll_clause, :message, 3, "pg_query.CollateClause", json_name: "collClause"
      repeated :constraints, :message, 4, "pg_query.Node", json_name: "constraints"
    end
    add_message "pg_query.CreatedbStmt" do
      optional :dbname, :string, 1, json_name: "dbname"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.DropdbStmt" do
      optional :dbname, :string, 1, json_name: "dbname"
      optional :missing_ok, :bool, 2, json_name: "missing_ok"
      repeated :options, :message, 3, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.VacuumStmt" do
      repeated :options, :message, 1, "pg_query.Node", json_name: "options"
      repeated :rels, :message, 2, "pg_query.Node", json_name: "rels"
      optional :is_vacuumcmd, :bool, 3, json_name: "is_vacuumcmd"
    end
    add_message "pg_query.ExplainStmt" do
      optional :query, :message, 1, "pg_query.Node", json_name: "query"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.CreateTableAsStmt" do
      optional :query, :message, 1, "pg_query.Node", json_name: "query"
      optional :into, :message, 2, "pg_query.IntoClause", json_name: "into"
      optional :relkind, :enum, 3, "pg_query.ObjectType", json_name: "relkind"
      optional :is_select_into, :bool, 4, json_name: "is_select_into"
      optional :if_not_exists, :bool, 5, json_name: "if_not_exists"
    end
    add_message "pg_query.CreateSeqStmt" do
      optional :sequence, :message, 1, "pg_query.RangeVar", json_name: "sequence"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
      optional :owner_id, :uint32, 3, json_name: "ownerId"
      optional :for_identity, :bool, 4, json_name: "for_identity"
      optional :if_not_exists, :bool, 5, json_name: "if_not_exists"
    end
    add_message "pg_query.AlterSeqStmt" do
      optional :sequence, :message, 1, "pg_query.RangeVar", json_name: "sequence"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
      optional :for_identity, :bool, 3, json_name: "for_identity"
      optional :missing_ok, :bool, 4, json_name: "missing_ok"
    end
    add_message "pg_query.VariableSetStmt" do
      optional :kind, :enum, 1, "pg_query.VariableSetKind", json_name: "kind"
      optional :name, :string, 2, json_name: "name"
      repeated :args, :message, 3, "pg_query.Node", json_name: "args"
      optional :is_local, :bool, 4, json_name: "is_local"
    end
    add_message "pg_query.VariableShowStmt" do
      optional :name, :string, 1, json_name: "name"
    end
    add_message "pg_query.DiscardStmt" do
      optional :target, :enum, 1, "pg_query.DiscardMode", json_name: "target"
    end
    add_message "pg_query.CreateTrigStmt" do
      optional :trigname, :string, 1, json_name: "trigname"
      optional :relation, :message, 2, "pg_query.RangeVar", json_name: "relation"
      repeated :funcname, :message, 3, "pg_query.Node", json_name: "funcname"
      repeated :args, :message, 4, "pg_query.Node", json_name: "args"
      optional :row, :bool, 5, json_name: "row"
      optional :timing, :int32, 6, json_name: "timing"
      optional :events, :int32, 7, json_name: "events"
      repeated :columns, :message, 8, "pg_query.Node", json_name: "columns"
      optional :when_clause, :message, 9, "pg_query.Node", json_name: "whenClause"
      optional :isconstraint, :bool, 10, json_name: "isconstraint"
      repeated :transition_rels, :message, 11, "pg_query.Node", json_name: "transitionRels"
      optional :deferrable, :bool, 12, json_name: "deferrable"
      optional :initdeferred, :bool, 13, json_name: "initdeferred"
      optional :constrrel, :message, 14, "pg_query.RangeVar", json_name: "constrrel"
    end
    add_message "pg_query.CreatePLangStmt" do
      optional :replace, :bool, 1, json_name: "replace"
      optional :plname, :string, 2, json_name: "plname"
      repeated :plhandler, :message, 3, "pg_query.Node", json_name: "plhandler"
      repeated :plinline, :message, 4, "pg_query.Node", json_name: "plinline"
      repeated :plvalidator, :message, 5, "pg_query.Node", json_name: "plvalidator"
      optional :pltrusted, :bool, 6, json_name: "pltrusted"
    end
    add_message "pg_query.CreateRoleStmt" do
      optional :stmt_type, :enum, 1, "pg_query.RoleStmtType", json_name: "stmt_type"
      optional :role, :string, 2, json_name: "role"
      repeated :options, :message, 3, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.AlterRoleStmt" do
      optional :role, :message, 1, "pg_query.RoleSpec", json_name: "role"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
      optional :action, :int32, 3, json_name: "action"
    end
    add_message "pg_query.DropRoleStmt" do
      repeated :roles, :message, 1, "pg_query.Node", json_name: "roles"
      optional :missing_ok, :bool, 2, json_name: "missing_ok"
    end
    add_message "pg_query.LockStmt" do
      repeated :relations, :message, 1, "pg_query.Node", json_name: "relations"
      optional :mode, :int32, 2, json_name: "mode"
      optional :nowait, :bool, 3, json_name: "nowait"
    end
    add_message "pg_query.ConstraintsSetStmt" do
      repeated :constraints, :message, 1, "pg_query.Node", json_name: "constraints"
      optional :deferred, :bool, 2, json_name: "deferred"
    end
    add_message "pg_query.ReindexStmt" do
      optional :kind, :enum, 1, "pg_query.ReindexObjectType", json_name: "kind"
      optional :relation, :message, 2, "pg_query.RangeVar", json_name: "relation"
      optional :name, :string, 3, json_name: "name"
      optional :options, :int32, 4, json_name: "options"
      optional :concurrent, :bool, 5, json_name: "concurrent"
    end
    add_message "pg_query.CheckPointStmt" do
    end
    add_message "pg_query.CreateSchemaStmt" do
      optional :schemaname, :string, 1, json_name: "schemaname"
      optional :authrole, :message, 2, "pg_query.RoleSpec", json_name: "authrole"
      repeated :schema_elts, :message, 3, "pg_query.Node", json_name: "schemaElts"
      optional :if_not_exists, :bool, 4, json_name: "if_not_exists"
    end
    add_message "pg_query.AlterDatabaseStmt" do
      optional :dbname, :string, 1, json_name: "dbname"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.AlterDatabaseSetStmt" do
      optional :dbname, :string, 1, json_name: "dbname"
      optional :setstmt, :message, 2, "pg_query.VariableSetStmt", json_name: "setstmt"
    end
    add_message "pg_query.AlterRoleSetStmt" do
      optional :role, :message, 1, "pg_query.RoleSpec", json_name: "role"
      optional :database, :string, 2, json_name: "database"
      optional :setstmt, :message, 3, "pg_query.VariableSetStmt", json_name: "setstmt"
    end
    add_message "pg_query.CreateConversionStmt" do
      repeated :conversion_name, :message, 1, "pg_query.Node", json_name: "conversion_name"
      optional :for_encoding_name, :string, 2, json_name: "for_encoding_name"
      optional :to_encoding_name, :string, 3, json_name: "to_encoding_name"
      repeated :func_name, :message, 4, "pg_query.Node", json_name: "func_name"
      optional :def, :bool, 5, json_name: "def"
    end
    add_message "pg_query.CreateCastStmt" do
      optional :sourcetype, :message, 1, "pg_query.TypeName", json_name: "sourcetype"
      optional :targettype, :message, 2, "pg_query.TypeName", json_name: "targettype"
      optional :func, :message, 3, "pg_query.ObjectWithArgs", json_name: "func"
      optional :context, :enum, 4, "pg_query.CoercionContext", json_name: "context"
      optional :inout, :bool, 5, json_name: "inout"
    end
    add_message "pg_query.CreateOpClassStmt" do
      repeated :opclassname, :message, 1, "pg_query.Node", json_name: "opclassname"
      repeated :opfamilyname, :message, 2, "pg_query.Node", json_name: "opfamilyname"
      optional :amname, :string, 3, json_name: "amname"
      optional :datatype, :message, 4, "pg_query.TypeName", json_name: "datatype"
      repeated :items, :message, 5, "pg_query.Node", json_name: "items"
      optional :is_default, :bool, 6, json_name: "isDefault"
    end
    add_message "pg_query.CreateOpFamilyStmt" do
      repeated :opfamilyname, :message, 1, "pg_query.Node", json_name: "opfamilyname"
      optional :amname, :string, 2, json_name: "amname"
    end
    add_message "pg_query.AlterOpFamilyStmt" do
      repeated :opfamilyname, :message, 1, "pg_query.Node", json_name: "opfamilyname"
      optional :amname, :string, 2, json_name: "amname"
      optional :is_drop, :bool, 3, json_name: "isDrop"
      repeated :items, :message, 4, "pg_query.Node", json_name: "items"
    end
    add_message "pg_query.PrepareStmt" do
      optional :name, :string, 1, json_name: "name"
      repeated :argtypes, :message, 2, "pg_query.Node", json_name: "argtypes"
      optional :query, :message, 3, "pg_query.Node", json_name: "query"
    end
    add_message "pg_query.ExecuteStmt" do
      optional :name, :string, 1, json_name: "name"
      repeated :params, :message, 2, "pg_query.Node", json_name: "params"
    end
    add_message "pg_query.DeallocateStmt" do
      optional :name, :string, 1, json_name: "name"
    end
    add_message "pg_query.DeclareCursorStmt" do
      optional :portalname, :string, 1, json_name: "portalname"
      optional :options, :int32, 2, json_name: "options"
      optional :query, :message, 3, "pg_query.Node", json_name: "query"
    end
    add_message "pg_query.CreateTableSpaceStmt" do
      optional :tablespacename, :string, 1, json_name: "tablespacename"
      optional :owner, :message, 2, "pg_query.RoleSpec", json_name: "owner"
      optional :location, :string, 3, json_name: "location"
      repeated :options, :message, 4, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.DropTableSpaceStmt" do
      optional :tablespacename, :string, 1, json_name: "tablespacename"
      optional :missing_ok, :bool, 2, json_name: "missing_ok"
    end
    add_message "pg_query.AlterObjectDependsStmt" do
      optional :object_type, :enum, 1, "pg_query.ObjectType", json_name: "objectType"
      optional :relation, :message, 2, "pg_query.RangeVar", json_name: "relation"
      optional :object, :message, 3, "pg_query.Node", json_name: "object"
      optional :extname, :message, 4, "pg_query.Node", json_name: "extname"
      optional :remove, :bool, 5, json_name: "remove"
    end
    add_message "pg_query.AlterObjectSchemaStmt" do
      optional :object_type, :enum, 1, "pg_query.ObjectType", json_name: "objectType"
      optional :relation, :message, 2, "pg_query.RangeVar", json_name: "relation"
      optional :object, :message, 3, "pg_query.Node", json_name: "object"
      optional :newschema, :string, 4, json_name: "newschema"
      optional :missing_ok, :bool, 5, json_name: "missing_ok"
    end
    add_message "pg_query.AlterOwnerStmt" do
      optional :object_type, :enum, 1, "pg_query.ObjectType", json_name: "objectType"
      optional :relation, :message, 2, "pg_query.RangeVar", json_name: "relation"
      optional :object, :message, 3, "pg_query.Node", json_name: "object"
      optional :newowner, :message, 4, "pg_query.RoleSpec", json_name: "newowner"
    end
    add_message "pg_query.AlterOperatorStmt" do
      optional :opername, :message, 1, "pg_query.ObjectWithArgs", json_name: "opername"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.AlterTypeStmt" do
      repeated :type_name, :message, 1, "pg_query.Node", json_name: "typeName"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.DropOwnedStmt" do
      repeated :roles, :message, 1, "pg_query.Node", json_name: "roles"
      optional :behavior, :enum, 2, "pg_query.DropBehavior", json_name: "behavior"
    end
    add_message "pg_query.ReassignOwnedStmt" do
      repeated :roles, :message, 1, "pg_query.Node", json_name: "roles"
      optional :newrole, :message, 2, "pg_query.RoleSpec", json_name: "newrole"
    end
    add_message "pg_query.CompositeTypeStmt" do
      optional :typevar, :message, 1, "pg_query.RangeVar", json_name: "typevar"
      repeated :coldeflist, :message, 2, "pg_query.Node", json_name: "coldeflist"
    end
    add_message "pg_query.CreateEnumStmt" do
      repeated :type_name, :message, 1, "pg_query.Node", json_name: "typeName"
      repeated :vals, :message, 2, "pg_query.Node", json_name: "vals"
    end
    add_message "pg_query.CreateRangeStmt" do
      repeated :type_name, :message, 1, "pg_query.Node", json_name: "typeName"
      repeated :params, :message, 2, "pg_query.Node", json_name: "params"
    end
    add_message "pg_query.AlterEnumStmt" do
      repeated :type_name, :message, 1, "pg_query.Node", json_name: "typeName"
      optional :old_val, :string, 2, json_name: "oldVal"
      optional :new_val, :string, 3, json_name: "newVal"
      optional :new_val_neighbor, :string, 4, json_name: "newValNeighbor"
      optional :new_val_is_after, :bool, 5, json_name: "newValIsAfter"
      optional :skip_if_new_val_exists, :bool, 6, json_name: "skipIfNewValExists"
    end
    add_message "pg_query.AlterTSDictionaryStmt" do
      repeated :dictname, :message, 1, "pg_query.Node", json_name: "dictname"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.AlterTSConfigurationStmt" do
      optional :kind, :enum, 1, "pg_query.AlterTSConfigType", json_name: "kind"
      repeated :cfgname, :message, 2, "pg_query.Node", json_name: "cfgname"
      repeated :tokentype, :message, 3, "pg_query.Node", json_name: "tokentype"
      repeated :dicts, :message, 4, "pg_query.Node", json_name: "dicts"
      optional :override, :bool, 5, json_name: "override"
      optional :replace, :bool, 6, json_name: "replace"
      optional :missing_ok, :bool, 7, json_name: "missing_ok"
    end
    add_message "pg_query.CreateFdwStmt" do
      optional :fdwname, :string, 1, json_name: "fdwname"
      repeated :func_options, :message, 2, "pg_query.Node", json_name: "func_options"
      repeated :options, :message, 3, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.AlterFdwStmt" do
      optional :fdwname, :string, 1, json_name: "fdwname"
      repeated :func_options, :message, 2, "pg_query.Node", json_name: "func_options"
      repeated :options, :message, 3, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.CreateForeignServerStmt" do
      optional :servername, :string, 1, json_name: "servername"
      optional :servertype, :string, 2, json_name: "servertype"
      optional :version, :string, 3, json_name: "version"
      optional :fdwname, :string, 4, json_name: "fdwname"
      optional :if_not_exists, :bool, 5, json_name: "if_not_exists"
      repeated :options, :message, 6, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.AlterForeignServerStmt" do
      optional :servername, :string, 1, json_name: "servername"
      optional :version, :string, 2, json_name: "version"
      repeated :options, :message, 3, "pg_query.Node", json_name: "options"
      optional :has_version, :bool, 4, json_name: "has_version"
    end
    add_message "pg_query.CreateUserMappingStmt" do
      optional :user, :message, 1, "pg_query.RoleSpec", json_name: "user"
      optional :servername, :string, 2, json_name: "servername"
      optional :if_not_exists, :bool, 3, json_name: "if_not_exists"
      repeated :options, :message, 4, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.AlterUserMappingStmt" do
      optional :user, :message, 1, "pg_query.RoleSpec", json_name: "user"
      optional :servername, :string, 2, json_name: "servername"
      repeated :options, :message, 3, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.DropUserMappingStmt" do
      optional :user, :message, 1, "pg_query.RoleSpec", json_name: "user"
      optional :servername, :string, 2, json_name: "servername"
      optional :missing_ok, :bool, 3, json_name: "missing_ok"
    end
    add_message "pg_query.AlterTableSpaceOptionsStmt" do
      optional :tablespacename, :string, 1, json_name: "tablespacename"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
      optional :is_reset, :bool, 3, json_name: "isReset"
    end
    add_message "pg_query.AlterTableMoveAllStmt" do
      optional :orig_tablespacename, :string, 1, json_name: "orig_tablespacename"
      optional :objtype, :enum, 2, "pg_query.ObjectType", json_name: "objtype"
      repeated :roles, :message, 3, "pg_query.Node", json_name: "roles"
      optional :new_tablespacename, :string, 4, json_name: "new_tablespacename"
      optional :nowait, :bool, 5, json_name: "nowait"
    end
    add_message "pg_query.SecLabelStmt" do
      optional :objtype, :enum, 1, "pg_query.ObjectType", json_name: "objtype"
      optional :object, :message, 2, "pg_query.Node", json_name: "object"
      optional :provider, :string, 3, json_name: "provider"
      optional :label, :string, 4, json_name: "label"
    end
    add_message "pg_query.CreateForeignTableStmt" do
      optional :base_stmt, :message, 1, "pg_query.CreateStmt", json_name: "base"
      optional :servername, :string, 2, json_name: "servername"
      repeated :options, :message, 3, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.ImportForeignSchemaStmt" do
      optional :server_name, :string, 1, json_name: "server_name"
      optional :remote_schema, :string, 2, json_name: "remote_schema"
      optional :local_schema, :string, 3, json_name: "local_schema"
      optional :list_type, :enum, 4, "pg_query.ImportForeignSchemaType", json_name: "list_type"
      repeated :table_list, :message, 5, "pg_query.Node", json_name: "table_list"
      repeated :options, :message, 6, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.CreateExtensionStmt" do
      optional :extname, :string, 1, json_name: "extname"
      optional :if_not_exists, :bool, 2, json_name: "if_not_exists"
      repeated :options, :message, 3, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.AlterExtensionStmt" do
      optional :extname, :string, 1, json_name: "extname"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.AlterExtensionContentsStmt" do
      optional :extname, :string, 1, json_name: "extname"
      optional :action, :int32, 2, json_name: "action"
      optional :objtype, :enum, 3, "pg_query.ObjectType", json_name: "objtype"
      optional :object, :message, 4, "pg_query.Node", json_name: "object"
    end
    add_message "pg_query.CreateEventTrigStmt" do
      optional :trigname, :string, 1, json_name: "trigname"
      optional :eventname, :string, 2, json_name: "eventname"
      repeated :whenclause, :message, 3, "pg_query.Node", json_name: "whenclause"
      repeated :funcname, :message, 4, "pg_query.Node", json_name: "funcname"
    end
    add_message "pg_query.AlterEventTrigStmt" do
      optional :trigname, :string, 1, json_name: "trigname"
      optional :tgenabled, :string, 2, json_name: "tgenabled"
    end
    add_message "pg_query.RefreshMatViewStmt" do
      optional :concurrent, :bool, 1, json_name: "concurrent"
      optional :skip_data, :bool, 2, json_name: "skipData"
      optional :relation, :message, 3, "pg_query.RangeVar", json_name: "relation"
    end
    add_message "pg_query.ReplicaIdentityStmt" do
      optional :identity_type, :string, 1, json_name: "identity_type"
      optional :name, :string, 2, json_name: "name"
    end
    add_message "pg_query.AlterSystemStmt" do
      optional :setstmt, :message, 1, "pg_query.VariableSetStmt", json_name: "setstmt"
    end
    add_message "pg_query.CreatePolicyStmt" do
      optional :policy_name, :string, 1, json_name: "policy_name"
      optional :table, :message, 2, "pg_query.RangeVar", json_name: "table"
      optional :cmd_name, :string, 3, json_name: "cmd_name"
      optional :permissive, :bool, 4, json_name: "permissive"
      repeated :roles, :message, 5, "pg_query.Node", json_name: "roles"
      optional :qual, :message, 6, "pg_query.Node", json_name: "qual"
      optional :with_check, :message, 7, "pg_query.Node", json_name: "with_check"
    end
    add_message "pg_query.AlterPolicyStmt" do
      optional :policy_name, :string, 1, json_name: "policy_name"
      optional :table, :message, 2, "pg_query.RangeVar", json_name: "table"
      repeated :roles, :message, 3, "pg_query.Node", json_name: "roles"
      optional :qual, :message, 4, "pg_query.Node", json_name: "qual"
      optional :with_check, :message, 5, "pg_query.Node", json_name: "with_check"
    end
    add_message "pg_query.CreateTransformStmt" do
      optional :replace, :bool, 1, json_name: "replace"
      optional :type_name, :message, 2, "pg_query.TypeName", json_name: "type_name"
      optional :lang, :string, 3, json_name: "lang"
      optional :fromsql, :message, 4, "pg_query.ObjectWithArgs", json_name: "fromsql"
      optional :tosql, :message, 5, "pg_query.ObjectWithArgs", json_name: "tosql"
    end
    add_message "pg_query.CreateAmStmt" do
      optional :amname, :string, 1, json_name: "amname"
      repeated :handler_name, :message, 2, "pg_query.Node", json_name: "handler_name"
      optional :amtype, :string, 3, json_name: "amtype"
    end
    add_message "pg_query.CreatePublicationStmt" do
      optional :pubname, :string, 1, json_name: "pubname"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
      repeated :tables, :message, 3, "pg_query.Node", json_name: "tables"
      optional :for_all_tables, :bool, 4, json_name: "for_all_tables"
    end
    add_message "pg_query.AlterPublicationStmt" do
      optional :pubname, :string, 1, json_name: "pubname"
      repeated :options, :message, 2, "pg_query.Node", json_name: "options"
      repeated :tables, :message, 3, "pg_query.Node", json_name: "tables"
      optional :for_all_tables, :bool, 4, json_name: "for_all_tables"
      optional :table_action, :enum, 5, "pg_query.DefElemAction", json_name: "tableAction"
    end
    add_message "pg_query.CreateSubscriptionStmt" do
      optional :subname, :string, 1, json_name: "subname"
      optional :conninfo, :string, 2, json_name: "conninfo"
      repeated :publication, :message, 3, "pg_query.Node", json_name: "publication"
      repeated :options, :message, 4, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.AlterSubscriptionStmt" do
      optional :kind, :enum, 1, "pg_query.AlterSubscriptionType", json_name: "kind"
      optional :subname, :string, 2, json_name: "subname"
      optional :conninfo, :string, 3, json_name: "conninfo"
      repeated :publication, :message, 4, "pg_query.Node", json_name: "publication"
      repeated :options, :message, 5, "pg_query.Node", json_name: "options"
    end
    add_message "pg_query.DropSubscriptionStmt" do
      optional :subname, :string, 1, json_name: "subname"
      optional :missing_ok, :bool, 2, json_name: "missing_ok"
      optional :behavior, :enum, 3, "pg_query.DropBehavior", json_name: "behavior"
    end
    add_message "pg_query.CreateStatsStmt" do
      repeated :defnames, :message, 1, "pg_query.Node", json_name: "defnames"
      repeated :stat_types, :message, 2, "pg_query.Node", json_name: "stat_types"
      repeated :exprs, :message, 3, "pg_query.Node", json_name: "exprs"
      repeated :relations, :message, 4, "pg_query.Node", json_name: "relations"
      optional :stxcomment, :string, 5, json_name: "stxcomment"
      optional :if_not_exists, :bool, 6, json_name: "if_not_exists"
    end
    add_message "pg_query.AlterCollationStmt" do
      repeated :collname, :message, 1, "pg_query.Node", json_name: "collname"
    end
    add_message "pg_query.CallStmt" do
      optional :funccall, :message, 1, "pg_query.FuncCall", json_name: "funccall"
      optional :funcexpr, :message, 2, "pg_query.FuncExpr", json_name: "funcexpr"
    end
    add_message "pg_query.AlterStatsStmt" do
      repeated :defnames, :message, 1, "pg_query.Node", json_name: "defnames"
      optional :stxstattarget, :int32, 2, json_name: "stxstattarget"
      optional :missing_ok, :bool, 3, json_name: "missing_ok"
    end
    add_message "pg_query.A_Expr" do
      optional :kind, :enum, 1, "pg_query.A_Expr_Kind", json_name: "kind"
      repeated :name, :message, 2, "pg_query.Node", json_name: "name"
      optional :lexpr, :message, 3, "pg_query.Node", json_name: "lexpr"
      optional :rexpr, :message, 4, "pg_query.Node", json_name: "rexpr"
      optional :location, :int32, 5, json_name: "location"
    end
    add_message "pg_query.ColumnRef" do
      repeated :fields, :message, 1, "pg_query.Node", json_name: "fields"
      optional :location, :int32, 2, json_name: "location"
    end
    add_message "pg_query.ParamRef" do
      optional :number, :int32, 1, json_name: "number"
      optional :location, :int32, 2, json_name: "location"
    end
    add_message "pg_query.A_Const" do
      optional :val, :message, 1, "pg_query.Node", json_name: "val"
      optional :location, :int32, 2, json_name: "location"
    end
    add_message "pg_query.FuncCall" do
      repeated :funcname, :message, 1, "pg_query.Node", json_name: "funcname"
      repeated :args, :message, 2, "pg_query.Node", json_name: "args"
      repeated :agg_order, :message, 3, "pg_query.Node", json_name: "agg_order"
      optional :agg_filter, :message, 4, "pg_query.Node", json_name: "agg_filter"
      optional :agg_within_group, :bool, 5, json_name: "agg_within_group"
      optional :agg_star, :bool, 6, json_name: "agg_star"
      optional :agg_distinct, :bool, 7, json_name: "agg_distinct"
      optional :func_variadic, :bool, 8, json_name: "func_variadic"
      optional :over, :message, 9, "pg_query.WindowDef", json_name: "over"
      optional :location, :int32, 10, json_name: "location"
    end
    add_message "pg_query.A_Star" do
    end
    add_message "pg_query.A_Indices" do
      optional :is_slice, :bool, 1, json_name: "is_slice"
      optional :lidx, :message, 2, "pg_query.Node", json_name: "lidx"
      optional :uidx, :message, 3, "pg_query.Node", json_name: "uidx"
    end
    add_message "pg_query.A_Indirection" do
      optional :arg, :message, 1, "pg_query.Node", json_name: "arg"
      repeated :indirection, :message, 2, "pg_query.Node", json_name: "indirection"
    end
    add_message "pg_query.A_ArrayExpr" do
      repeated :elements, :message, 1, "pg_query.Node", json_name: "elements"
      optional :location, :int32, 2, json_name: "location"
    end
    add_message "pg_query.ResTarget" do
      optional :name, :string, 1, json_name: "name"
      repeated :indirection, :message, 2, "pg_query.Node", json_name: "indirection"
      optional :val, :message, 3, "pg_query.Node", json_name: "val"
      optional :location, :int32, 4, json_name: "location"
    end
    add_message "pg_query.MultiAssignRef" do
      optional :source, :message, 1, "pg_query.Node", json_name: "source"
      optional :colno, :int32, 2, json_name: "colno"
      optional :ncolumns, :int32, 3, json_name: "ncolumns"
    end
    add_message "pg_query.TypeCast" do
      optional :arg, :message, 1, "pg_query.Node", json_name: "arg"
      optional :type_name, :message, 2, "pg_query.TypeName", json_name: "typeName"
      optional :location, :int32, 3, json_name: "location"
    end
    add_message "pg_query.CollateClause" do
      optional :arg, :message, 1, "pg_query.Node", json_name: "arg"
      repeated :collname, :message, 2, "pg_query.Node", json_name: "collname"
      optional :location, :int32, 3, json_name: "location"
    end
    add_message "pg_query.SortBy" do
      optional :node, :message, 1, "pg_query.Node", json_name: "node"
      optional :sortby_dir, :enum, 2, "pg_query.SortByDir", json_name: "sortby_dir"
      optional :sortby_nulls, :enum, 3, "pg_query.SortByNulls", json_name: "sortby_nulls"
      repeated :use_op, :message, 4, "pg_query.Node", json_name: "useOp"
      optional :location, :int32, 5, json_name: "location"
    end
    add_message "pg_query.WindowDef" do
      optional :name, :string, 1, json_name: "name"
      optional :refname, :string, 2, json_name: "refname"
      repeated :partition_clause, :message, 3, "pg_query.Node", json_name: "partitionClause"
      repeated :order_clause, :message, 4, "pg_query.Node", json_name: "orderClause"
      optional :frame_options, :int32, 5, json_name: "frameOptions"
      optional :start_offset, :message, 6, "pg_query.Node", json_name: "startOffset"
      optional :end_offset, :message, 7, "pg_query.Node", json_name: "endOffset"
      optional :location, :int32, 8, json_name: "location"
    end
    add_message "pg_query.RangeSubselect" do
      optional :lateral, :bool, 1, json_name: "lateral"
      optional :subquery, :message, 2, "pg_query.Node", json_name: "subquery"
      optional :alias, :message, 3, "pg_query.Alias", json_name: "alias"
    end
    add_message "pg_query.RangeFunction" do
      optional :lateral, :bool, 1, json_name: "lateral"
      optional :ordinality, :bool, 2, json_name: "ordinality"
      optional :is_rowsfrom, :bool, 3, json_name: "is_rowsfrom"
      repeated :functions, :message, 4, "pg_query.Node", json_name: "functions"
      optional :alias, :message, 5, "pg_query.Alias", json_name: "alias"
      repeated :coldeflist, :message, 6, "pg_query.Node", json_name: "coldeflist"
    end
    add_message "pg_query.RangeTableSample" do
      optional :relation, :message, 1, "pg_query.Node", json_name: "relation"
      repeated :method, :message, 2, "pg_query.Node", json_name: "method"
      repeated :args, :message, 3, "pg_query.Node", json_name: "args"
      optional :repeatable, :message, 4, "pg_query.Node", json_name: "repeatable"
      optional :location, :int32, 5, json_name: "location"
    end
    add_message "pg_query.RangeTableFunc" do
      optional :lateral, :bool, 1, json_name: "lateral"
      optional :docexpr, :message, 2, "pg_query.Node", json_name: "docexpr"
      optional :rowexpr, :message, 3, "pg_query.Node", json_name: "rowexpr"
      repeated :namespaces, :message, 4, "pg_query.Node", json_name: "namespaces"
      repeated :columns, :message, 5, "pg_query.Node", json_name: "columns"
      optional :alias, :message, 6, "pg_query.Alias", json_name: "alias"
      optional :location, :int32, 7, json_name: "location"
    end
    add_message "pg_query.RangeTableFuncCol" do
      optional :colname, :string, 1, json_name: "colname"
      optional :type_name, :message, 2, "pg_query.TypeName", json_name: "typeName"
      optional :for_ordinality, :bool, 3, json_name: "for_ordinality"
      optional :is_not_null, :bool, 4, json_name: "is_not_null"
      optional :colexpr, :message, 5, "pg_query.Node", json_name: "colexpr"
      optional :coldefexpr, :message, 6, "pg_query.Node", json_name: "coldefexpr"
      optional :location, :int32, 7, json_name: "location"
    end
    add_message "pg_query.TypeName" do
      repeated :names, :message, 1, "pg_query.Node", json_name: "names"
      optional :type_oid, :uint32, 2, json_name: "typeOid"
      optional :setof, :bool, 3, json_name: "setof"
      optional :pct_type, :bool, 4, json_name: "pct_type"
      repeated :typmods, :message, 5, "pg_query.Node", json_name: "typmods"
      optional :typemod, :int32, 6, json_name: "typemod"
      repeated :array_bounds, :message, 7, "pg_query.Node", json_name: "arrayBounds"
      optional :location, :int32, 8, json_name: "location"
    end
    add_message "pg_query.ColumnDef" do
      optional :colname, :string, 1, json_name: "colname"
      optional :type_name, :message, 2, "pg_query.TypeName", json_name: "typeName"
      optional :inhcount, :int32, 3, json_name: "inhcount"
      optional :is_local, :bool, 4, json_name: "is_local"
      optional :is_not_null, :bool, 5, json_name: "is_not_null"
      optional :is_from_type, :bool, 6, json_name: "is_from_type"
      optional :storage, :string, 7, json_name: "storage"
      optional :raw_default, :message, 8, "pg_query.Node", json_name: "raw_default"
      optional :cooked_default, :message, 9, "pg_query.Node", json_name: "cooked_default"
      optional :identity, :string, 10, json_name: "identity"
      optional :identity_sequence, :message, 11, "pg_query.RangeVar", json_name: "identitySequence"
      optional :generated, :string, 12, json_name: "generated"
      optional :coll_clause, :message, 13, "pg_query.CollateClause", json_name: "collClause"
      optional :coll_oid, :uint32, 14, json_name: "collOid"
      repeated :constraints, :message, 15, "pg_query.Node", json_name: "constraints"
      repeated :fdwoptions, :message, 16, "pg_query.Node", json_name: "fdwoptions"
      optional :location, :int32, 17, json_name: "location"
    end
    add_message "pg_query.IndexElem" do
      optional :name, :string, 1, json_name: "name"
      optional :expr, :message, 2, "pg_query.Node", json_name: "expr"
      optional :indexcolname, :string, 3, json_name: "indexcolname"
      repeated :collation, :message, 4, "pg_query.Node", json_name: "collation"
      repeated :opclass, :message, 5, "pg_query.Node", json_name: "opclass"
      repeated :opclassopts, :message, 6, "pg_query.Node", json_name: "opclassopts"
      optional :ordering, :enum, 7, "pg_query.SortByDir", json_name: "ordering"
      optional :nulls_ordering, :enum, 8, "pg_query.SortByNulls", json_name: "nulls_ordering"
    end
    add_message "pg_query.Constraint" do
      optional :contype, :enum, 1, "pg_query.ConstrType", json_name: "contype"
      optional :conname, :string, 2, json_name: "conname"
      optional :deferrable, :bool, 3, json_name: "deferrable"
      optional :initdeferred, :bool, 4, json_name: "initdeferred"
      optional :location, :int32, 5, json_name: "location"
      optional :is_no_inherit, :bool, 6, json_name: "is_no_inherit"
      optional :raw_expr, :message, 7, "pg_query.Node", json_name: "raw_expr"
      optional :cooked_expr, :string, 8, json_name: "cooked_expr"
      optional :generated_when, :string, 9, json_name: "generated_when"
      repeated :keys, :message, 10, "pg_query.Node", json_name: "keys"
      repeated :including, :message, 11, "pg_query.Node", json_name: "including"
      repeated :exclusions, :message, 12, "pg_query.Node", json_name: "exclusions"
      repeated :options, :message, 13, "pg_query.Node", json_name: "options"
      optional :indexname, :string, 14, json_name: "indexname"
      optional :indexspace, :string, 15, json_name: "indexspace"
      optional :reset_default_tblspc, :bool, 16, json_name: "reset_default_tblspc"
      optional :access_method, :string, 17, json_name: "access_method"
      optional :where_clause, :message, 18, "pg_query.Node", json_name: "where_clause"
      optional :pktable, :message, 19, "pg_query.RangeVar", json_name: "pktable"
      repeated :fk_attrs, :message, 20, "pg_query.Node", json_name: "fk_attrs"
      repeated :pk_attrs, :message, 21, "pg_query.Node", json_name: "pk_attrs"
      optional :fk_matchtype, :string, 22, json_name: "fk_matchtype"
      optional :fk_upd_action, :string, 23, json_name: "fk_upd_action"
      optional :fk_del_action, :string, 24, json_name: "fk_del_action"
      repeated :old_conpfeqop, :message, 25, "pg_query.Node", json_name: "old_conpfeqop"
      optional :old_pktable_oid, :uint32, 26, json_name: "old_pktable_oid"
      optional :skip_validation, :bool, 27, json_name: "skip_validation"
      optional :initially_valid, :bool, 28, json_name: "initially_valid"
    end
    add_message "pg_query.DefElem" do
      optional :defnamespace, :string, 1, json_name: "defnamespace"
      optional :defname, :string, 2, json_name: "defname"
      optional :arg, :message, 3, "pg_query.Node", json_name: "arg"
      optional :defaction, :enum, 4, "pg_query.DefElemAction", json_name: "defaction"
      optional :location, :int32, 5, json_name: "location"
    end
    add_message "pg_query.RangeTblEntry" do
      optional :rtekind, :enum, 1, "pg_query.RTEKind", json_name: "rtekind"
      optional :relid, :uint32, 2, json_name: "relid"
      optional :relkind, :string, 3, json_name: "relkind"
      optional :rellockmode, :int32, 4, json_name: "rellockmode"
      optional :tablesample, :message, 5, "pg_query.TableSampleClause", json_name: "tablesample"
      optional :subquery, :message, 6, "pg_query.Query", json_name: "subquery"
      optional :security_barrier, :bool, 7, json_name: "security_barrier"
      optional :jointype, :enum, 8, "pg_query.JoinType", json_name: "jointype"
      optional :joinmergedcols, :int32, 9, json_name: "joinmergedcols"
      repeated :joinaliasvars, :message, 10, "pg_query.Node", json_name: "joinaliasvars"
      repeated :joinleftcols, :message, 11, "pg_query.Node", json_name: "joinleftcols"
      repeated :joinrightcols, :message, 12, "pg_query.Node", json_name: "joinrightcols"
      repeated :functions, :message, 13, "pg_query.Node", json_name: "functions"
      optional :funcordinality, :bool, 14, json_name: "funcordinality"
      optional :tablefunc, :message, 15, "pg_query.TableFunc", json_name: "tablefunc"
      repeated :values_lists, :message, 16, "pg_query.Node", json_name: "values_lists"
      optional :ctename, :string, 17, json_name: "ctename"
      optional :ctelevelsup, :uint32, 18, json_name: "ctelevelsup"
      optional :self_reference, :bool, 19, json_name: "self_reference"
      repeated :coltypes, :message, 20, "pg_query.Node", json_name: "coltypes"
      repeated :coltypmods, :message, 21, "pg_query.Node", json_name: "coltypmods"
      repeated :colcollations, :message, 22, "pg_query.Node", json_name: "colcollations"
      optional :enrname, :string, 23, json_name: "enrname"
      optional :enrtuples, :double, 24, json_name: "enrtuples"
      optional :alias, :message, 25, "pg_query.Alias", json_name: "alias"
      optional :eref, :message, 26, "pg_query.Alias", json_name: "eref"
      optional :lateral, :bool, 27, json_name: "lateral"
      optional :inh, :bool, 28, json_name: "inh"
      optional :in_from_cl, :bool, 29, json_name: "inFromCl"
      optional :required_perms, :uint32, 30, json_name: "requiredPerms"
      optional :check_as_user, :uint32, 31, json_name: "checkAsUser"
      repeated :selected_cols, :uint64, 32, json_name: "selectedCols"
      repeated :inserted_cols, :uint64, 33, json_name: "insertedCols"
      repeated :updated_cols, :uint64, 34, json_name: "updatedCols"
      repeated :extra_updated_cols, :uint64, 35, json_name: "extraUpdatedCols"
      repeated :security_quals, :message, 36, "pg_query.Node", json_name: "securityQuals"
    end
    add_message "pg_query.RangeTblFunction" do
      optional :funcexpr, :message, 1, "pg_query.Node", json_name: "funcexpr"
      optional :funccolcount, :int32, 2, json_name: "funccolcount"
      repeated :funccolnames, :message, 3, "pg_query.Node", json_name: "funccolnames"
      repeated :funccoltypes, :message, 4, "pg_query.Node", json_name: "funccoltypes"
      repeated :funccoltypmods, :message, 5, "pg_query.Node", json_name: "funccoltypmods"
      repeated :funccolcollations, :message, 6, "pg_query.Node", json_name: "funccolcollations"
      repeated :funcparams, :uint64, 7, json_name: "funcparams"
    end
    add_message "pg_query.TableSampleClause" do
      optional :tsmhandler, :uint32, 1, json_name: "tsmhandler"
      repeated :args, :message, 2, "pg_query.Node", json_name: "args"
      optional :repeatable, :message, 3, "pg_query.Node", json_name: "repeatable"
    end
    add_message "pg_query.WithCheckOption" do
      optional :kind, :enum, 1, "pg_query.WCOKind", json_name: "kind"
      optional :relname, :string, 2, json_name: "relname"
      optional :polname, :string, 3, json_name: "polname"
      optional :qual, :message, 4, "pg_query.Node", json_name: "qual"
      optional :cascaded, :bool, 5, json_name: "cascaded"
    end
    add_message "pg_query.SortGroupClause" do
      optional :tle_sort_group_ref, :uint32, 1, json_name: "tleSortGroupRef"
      optional :eqop, :uint32, 2, json_name: "eqop"
      optional :sortop, :uint32, 3, json_name: "sortop"
      optional :nulls_first, :bool, 4, json_name: "nulls_first"
      optional :hashable, :bool, 5, json_name: "hashable"
    end
    add_message "pg_query.GroupingSet" do
      optional :kind, :enum, 1, "pg_query.GroupingSetKind", json_name: "kind"
      repeated :content, :message, 2, "pg_query.Node", json_name: "content"
      optional :location, :int32, 3, json_name: "location"
    end
    add_message "pg_query.WindowClause" do
      optional :name, :string, 1, json_name: "name"
      optional :refname, :string, 2, json_name: "refname"
      repeated :partition_clause, :message, 3, "pg_query.Node", json_name: "partitionClause"
      repeated :order_clause, :message, 4, "pg_query.Node", json_name: "orderClause"
      optional :frame_options, :int32, 5, json_name: "frameOptions"
      optional :start_offset, :message, 6, "pg_query.Node", json_name: "startOffset"
      optional :end_offset, :message, 7, "pg_query.Node", json_name: "endOffset"
      optional :start_in_range_func, :uint32, 8, json_name: "startInRangeFunc"
      optional :end_in_range_func, :uint32, 9, json_name: "endInRangeFunc"
      optional :in_range_coll, :uint32, 10, json_name: "inRangeColl"
      optional :in_range_asc, :bool, 11, json_name: "inRangeAsc"
      optional :in_range_nulls_first, :bool, 12, json_name: "inRangeNullsFirst"
      optional :winref, :uint32, 13, json_name: "winref"
      optional :copied_order, :bool, 14, json_name: "copiedOrder"
    end
    add_message "pg_query.ObjectWithArgs" do
      repeated :objname, :message, 1, "pg_query.Node", json_name: "objname"
      repeated :objargs, :message, 2, "pg_query.Node", json_name: "objargs"
      optional :args_unspecified, :bool, 3, json_name: "args_unspecified"
    end
    add_message "pg_query.AccessPriv" do
      optional :priv_name, :string, 1, json_name: "priv_name"
      repeated :cols, :message, 2, "pg_query.Node", json_name: "cols"
    end
    add_message "pg_query.CreateOpClassItem" do
      optional :itemtype, :int32, 1, json_name: "itemtype"
      optional :name, :message, 2, "pg_query.ObjectWithArgs", json_name: "name"
      optional :number, :int32, 3, json_name: "number"
      repeated :order_family, :message, 4, "pg_query.Node", json_name: "order_family"
      repeated :class_args, :message, 5, "pg_query.Node", json_name: "class_args"
      optional :storedtype, :message, 6, "pg_query.TypeName", json_name: "storedtype"
    end
    add_message "pg_query.TableLikeClause" do
      optional :relation, :message, 1, "pg_query.RangeVar", json_name: "relation"
      optional :options, :uint32, 2, json_name: "options"
      optional :relation_oid, :uint32, 3, json_name: "relationOid"
    end
    add_message "pg_query.FunctionParameter" do
      optional :name, :string, 1, json_name: "name"
      optional :arg_type, :message, 2, "pg_query.TypeName", json_name: "argType"
      optional :mode, :enum, 3, "pg_query.FunctionParameterMode", json_name: "mode"
      optional :defexpr, :message, 4, "pg_query.Node", json_name: "defexpr"
    end
    add_message "pg_query.LockingClause" do
      repeated :locked_rels, :message, 1, "pg_query.Node", json_name: "lockedRels"
      optional :strength, :enum, 2, "pg_query.LockClauseStrength", json_name: "strength"
      optional :wait_policy, :enum, 3, "pg_query.LockWaitPolicy", json_name: "waitPolicy"
    end
    add_message "pg_query.RowMarkClause" do
      optional :rti, :uint32, 1, json_name: "rti"
      optional :strength, :enum, 2, "pg_query.LockClauseStrength", json_name: "strength"
      optional :wait_policy, :enum, 3, "pg_query.LockWaitPolicy", json_name: "waitPolicy"
      optional :pushed_down, :bool, 4, json_name: "pushedDown"
    end
    add_message "pg_query.XmlSerialize" do
      optional :xmloption, :enum, 1, "pg_query.XmlOptionType", json_name: "xmloption"
      optional :expr, :message, 2, "pg_query.Node", json_name: "expr"
      optional :type_name, :message, 3, "pg_query.TypeName", json_name: "typeName"
      optional :location, :int32, 4, json_name: "location"
    end
    add_message "pg_query.WithClause" do
      repeated :ctes, :message, 1, "pg_query.Node", json_name: "ctes"
      optional :recursive, :bool, 2, json_name: "recursive"
      optional :location, :int32, 3, json_name: "location"
    end
    add_message "pg_query.InferClause" do
      repeated :index_elems, :message, 1, "pg_query.Node", json_name: "indexElems"
      optional :where_clause, :message, 2, "pg_query.Node", json_name: "whereClause"
      optional :conname, :string, 3, json_name: "conname"
      optional :location, :int32, 4, json_name: "location"
    end
    add_message "pg_query.OnConflictClause" do
      optional :action, :enum, 1, "pg_query.OnConflictAction", json_name: "action"
      optional :infer, :message, 2, "pg_query.InferClause", json_name: "infer"
      repeated :target_list, :message, 3, "pg_query.Node", json_name: "targetList"
      optional :where_clause, :message, 4, "pg_query.Node", json_name: "whereClause"
      optional :location, :int32, 5, json_name: "location"
    end
    add_message "pg_query.CommonTableExpr" do
      optional :ctename, :string, 1, json_name: "ctename"
      repeated :aliascolnames, :message, 2, "pg_query.Node", json_name: "aliascolnames"
      optional :ctematerialized, :enum, 3, "pg_query.CTEMaterialize", json_name: "ctematerialized"
      optional :ctequery, :message, 4, "pg_query.Node", json_name: "ctequery"
      optional :location, :int32, 5, json_name: "location"
      optional :cterecursive, :bool, 6, json_name: "cterecursive"
      optional :cterefcount, :int32, 7, json_name: "cterefcount"
      repeated :ctecolnames, :message, 8, "pg_query.Node", json_name: "ctecolnames"
      repeated :ctecoltypes, :message, 9, "pg_query.Node", json_name: "ctecoltypes"
      repeated :ctecoltypmods, :message, 10, "pg_query.Node", json_name: "ctecoltypmods"
      repeated :ctecolcollations, :message, 11, "pg_query.Node", json_name: "ctecolcollations"
    end
    add_message "pg_query.RoleSpec" do
      optional :roletype, :enum, 1, "pg_query.RoleSpecType", json_name: "roletype"
      optional :rolename, :string, 2, json_name: "rolename"
      optional :location, :int32, 3, json_name: "location"
    end
    add_message "pg_query.TriggerTransition" do
      optional :name, :string, 1, json_name: "name"
      optional :is_new, :bool, 2, json_name: "isNew"
      optional :is_table, :bool, 3, json_name: "isTable"
    end
    add_message "pg_query.PartitionElem" do
      optional :name, :string, 1, json_name: "name"
      optional :expr, :message, 2, "pg_query.Node", json_name: "expr"
      repeated :collation, :message, 3, "pg_query.Node", json_name: "collation"
      repeated :opclass, :message, 4, "pg_query.Node", json_name: "opclass"
      optional :location, :int32, 5, json_name: "location"
    end
    add_message "pg_query.PartitionSpec" do
      optional :strategy, :string, 1, json_name: "strategy"
      repeated :part_params, :message, 2, "pg_query.Node", json_name: "partParams"
      optional :location, :int32, 3, json_name: "location"
    end
    add_message "pg_query.PartitionBoundSpec" do
      optional :strategy, :string, 1, json_name: "strategy"
      optional :is_default, :bool, 2, json_name: "is_default"
      optional :modulus, :int32, 3, json_name: "modulus"
      optional :remainder, :int32, 4, json_name: "remainder"
      repeated :listdatums, :message, 5, "pg_query.Node", json_name: "listdatums"
      repeated :lowerdatums, :message, 6, "pg_query.Node", json_name: "lowerdatums"
      repeated :upperdatums, :message, 7, "pg_query.Node", json_name: "upperdatums"
      optional :location, :int32, 8, json_name: "location"
    end
    add_message "pg_query.PartitionRangeDatum" do
      optional :kind, :enum, 1, "pg_query.PartitionRangeDatumKind", json_name: "kind"
      optional :value, :message, 2, "pg_query.Node", json_name: "value"
      optional :location, :int32, 3, json_name: "location"
    end
    add_message "pg_query.PartitionCmd" do
      optional :name, :message, 1, "pg_query.RangeVar", json_name: "name"
      optional :bound, :message, 2, "pg_query.PartitionBoundSpec", json_name: "bound"
    end
    add_message "pg_query.VacuumRelation" do
      optional :relation, :message, 1, "pg_query.RangeVar", json_name: "relation"
      optional :oid, :uint32, 2, json_name: "oid"
      repeated :va_cols, :message, 3, "pg_query.Node", json_name: "va_cols"
    end
    add_message "pg_query.InlineCodeBlock" do
      optional :source_text, :string, 1, json_name: "source_text"
      optional :lang_oid, :uint32, 2, json_name: "langOid"
      optional :lang_is_trusted, :bool, 3, json_name: "langIsTrusted"
      optional :atomic, :bool, 4, json_name: "atomic"
    end
    add_message "pg_query.CallContext" do
      optional :atomic, :bool, 1, json_name: "atomic"
    end
    add_message "pg_query.ScanToken" do
      optional :start, :int32, 1
      optional :end, :int32, 2
      optional :token, :enum, 4, "pg_query.Token"
      optional :keyword_kind, :enum, 5, "pg_query.KeywordKind"
    end
    add_enum "pg_query.OverridingKind" do
      value :OVERRIDING_KIND_UNDEFINED, 0
      value :OVERRIDING_NOT_SET, 1
      value :OVERRIDING_USER_VALUE, 2
      value :OVERRIDING_SYSTEM_VALUE, 3
    end
    add_enum "pg_query.QuerySource" do
      value :QUERY_SOURCE_UNDEFINED, 0
      value :QSRC_ORIGINAL, 1
      value :QSRC_PARSER, 2
      value :QSRC_INSTEAD_RULE, 3
      value :QSRC_QUAL_INSTEAD_RULE, 4
      value :QSRC_NON_INSTEAD_RULE, 5
    end
    add_enum "pg_query.SortByDir" do
      value :SORT_BY_DIR_UNDEFINED, 0
      value :SORTBY_DEFAULT, 1
      value :SORTBY_ASC, 2
      value :SORTBY_DESC, 3
      value :SORTBY_USING, 4
    end
    add_enum "pg_query.SortByNulls" do
      value :SORT_BY_NULLS_UNDEFINED, 0
      value :SORTBY_NULLS_DEFAULT, 1
      value :SORTBY_NULLS_FIRST, 2
      value :SORTBY_NULLS_LAST, 3
    end
    add_enum "pg_query.A_Expr_Kind" do
      value :A_EXPR_KIND_UNDEFINED, 0
      value :AEXPR_OP, 1
      value :AEXPR_OP_ANY, 2
      value :AEXPR_OP_ALL, 3
      value :AEXPR_DISTINCT, 4
      value :AEXPR_NOT_DISTINCT, 5
      value :AEXPR_NULLIF, 6
      value :AEXPR_OF, 7
      value :AEXPR_IN, 8
      value :AEXPR_LIKE, 9
      value :AEXPR_ILIKE, 10
      value :AEXPR_SIMILAR, 11
      value :AEXPR_BETWEEN, 12
      value :AEXPR_NOT_BETWEEN, 13
      value :AEXPR_BETWEEN_SYM, 14
      value :AEXPR_NOT_BETWEEN_SYM, 15
      value :AEXPR_PAREN, 16
    end
    add_enum "pg_query.RoleSpecType" do
      value :ROLE_SPEC_TYPE_UNDEFINED, 0
      value :ROLESPEC_CSTRING, 1
      value :ROLESPEC_CURRENT_USER, 2
      value :ROLESPEC_SESSION_USER, 3
      value :ROLESPEC_PUBLIC, 4
    end
    add_enum "pg_query.TableLikeOption" do
      value :TABLE_LIKE_OPTION_UNDEFINED, 0
      value :CREATE_TABLE_LIKE_COMMENTS, 1
      value :CREATE_TABLE_LIKE_CONSTRAINTS, 2
      value :CREATE_TABLE_LIKE_DEFAULTS, 3
      value :CREATE_TABLE_LIKE_GENERATED, 4
      value :CREATE_TABLE_LIKE_IDENTITY, 5
      value :CREATE_TABLE_LIKE_INDEXES, 6
      value :CREATE_TABLE_LIKE_STATISTICS, 7
      value :CREATE_TABLE_LIKE_STORAGE, 8
      value :CREATE_TABLE_LIKE_ALL, 9
    end
    add_enum "pg_query.DefElemAction" do
      value :DEF_ELEM_ACTION_UNDEFINED, 0
      value :DEFELEM_UNSPEC, 1
      value :DEFELEM_SET, 2
      value :DEFELEM_ADD, 3
      value :DEFELEM_DROP, 4
    end
    add_enum "pg_query.PartitionRangeDatumKind" do
      value :PARTITION_RANGE_DATUM_KIND_UNDEFINED, 0
      value :PARTITION_RANGE_DATUM_MINVALUE, 1
      value :PARTITION_RANGE_DATUM_VALUE, 2
      value :PARTITION_RANGE_DATUM_MAXVALUE, 3
    end
    add_enum "pg_query.RTEKind" do
      value :RTEKIND_UNDEFINED, 0
      value :RTE_RELATION, 1
      value :RTE_SUBQUERY, 2
      value :RTE_JOIN, 3
      value :RTE_FUNCTION, 4
      value :RTE_TABLEFUNC, 5
      value :RTE_VALUES, 6
      value :RTE_CTE, 7
      value :RTE_NAMEDTUPLESTORE, 8
      value :RTE_RESULT, 9
    end
    add_enum "pg_query.WCOKind" do
      value :WCOKIND_UNDEFINED, 0
      value :WCO_VIEW_CHECK, 1
      value :WCO_RLS_INSERT_CHECK, 2
      value :WCO_RLS_UPDATE_CHECK, 3
      value :WCO_RLS_CONFLICT_CHECK, 4
    end
    add_enum "pg_query.GroupingSetKind" do
      value :GROUPING_SET_KIND_UNDEFINED, 0
      value :GROUPING_SET_EMPTY, 1
      value :GROUPING_SET_SIMPLE, 2
      value :GROUPING_SET_ROLLUP, 3
      value :GROUPING_SET_CUBE, 4
      value :GROUPING_SET_SETS, 5
    end
    add_enum "pg_query.CTEMaterialize" do
      value :CTEMATERIALIZE_UNDEFINED, 0
      value :CTEMaterializeDefault, 1
      value :CTEMaterializeAlways, 2
      value :CTEMaterializeNever, 3
    end
    add_enum "pg_query.SetOperation" do
      value :SET_OPERATION_UNDEFINED, 0
      value :SETOP_NONE, 1
      value :SETOP_UNION, 2
      value :SETOP_INTERSECT, 3
      value :SETOP_EXCEPT, 4
    end
    add_enum "pg_query.ObjectType" do
      value :OBJECT_TYPE_UNDEFINED, 0
      value :OBJECT_ACCESS_METHOD, 1
      value :OBJECT_AGGREGATE, 2
      value :OBJECT_AMOP, 3
      value :OBJECT_AMPROC, 4
      value :OBJECT_ATTRIBUTE, 5
      value :OBJECT_CAST, 6
      value :OBJECT_COLUMN, 7
      value :OBJECT_COLLATION, 8
      value :OBJECT_CONVERSION, 9
      value :OBJECT_DATABASE, 10
      value :OBJECT_DEFAULT, 11
      value :OBJECT_DEFACL, 12
      value :OBJECT_DOMAIN, 13
      value :OBJECT_DOMCONSTRAINT, 14
      value :OBJECT_EVENT_TRIGGER, 15
      value :OBJECT_EXTENSION, 16
      value :OBJECT_FDW, 17
      value :OBJECT_FOREIGN_SERVER, 18
      value :OBJECT_FOREIGN_TABLE, 19
      value :OBJECT_FUNCTION, 20
      value :OBJECT_INDEX, 21
      value :OBJECT_LANGUAGE, 22
      value :OBJECT_LARGEOBJECT, 23
      value :OBJECT_MATVIEW, 24
      value :OBJECT_OPCLASS, 25
      value :OBJECT_OPERATOR, 26
      value :OBJECT_OPFAMILY, 27
      value :OBJECT_POLICY, 28
      value :OBJECT_PROCEDURE, 29
      value :OBJECT_PUBLICATION, 30
      value :OBJECT_PUBLICATION_REL, 31
      value :OBJECT_ROLE, 32
      value :OBJECT_ROUTINE, 33
      value :OBJECT_RULE, 34
      value :OBJECT_SCHEMA, 35
      value :OBJECT_SEQUENCE, 36
      value :OBJECT_SUBSCRIPTION, 37
      value :OBJECT_STATISTIC_EXT, 38
      value :OBJECT_TABCONSTRAINT, 39
      value :OBJECT_TABLE, 40
      value :OBJECT_TABLESPACE, 41
      value :OBJECT_TRANSFORM, 42
      value :OBJECT_TRIGGER, 43
      value :OBJECT_TSCONFIGURATION, 44
      value :OBJECT_TSDICTIONARY, 45
      value :OBJECT_TSPARSER, 46
      value :OBJECT_TSTEMPLATE, 47
      value :OBJECT_TYPE, 48
      value :OBJECT_USER_MAPPING, 49
      value :OBJECT_VIEW, 50
    end
    add_enum "pg_query.DropBehavior" do
      value :DROP_BEHAVIOR_UNDEFINED, 0
      value :DROP_RESTRICT, 1
      value :DROP_CASCADE, 2
    end
    add_enum "pg_query.AlterTableType" do
      value :ALTER_TABLE_TYPE_UNDEFINED, 0
      value :AT_AddColumn, 1
      value :AT_AddColumnRecurse, 2
      value :AT_AddColumnToView, 3
      value :AT_ColumnDefault, 4
      value :AT_CookedColumnDefault, 5
      value :AT_DropNotNull, 6
      value :AT_SetNotNull, 7
      value :AT_DropExpression, 8
      value :AT_CheckNotNull, 9
      value :AT_SetStatistics, 10
      value :AT_SetOptions, 11
      value :AT_ResetOptions, 12
      value :AT_SetStorage, 13
      value :AT_DropColumn, 14
      value :AT_DropColumnRecurse, 15
      value :AT_AddIndex, 16
      value :AT_ReAddIndex, 17
      value :AT_AddConstraint, 18
      value :AT_AddConstraintRecurse, 19
      value :AT_ReAddConstraint, 20
      value :AT_ReAddDomainConstraint, 21
      value :AT_AlterConstraint, 22
      value :AT_ValidateConstraint, 23
      value :AT_ValidateConstraintRecurse, 24
      value :AT_AddIndexConstraint, 25
      value :AT_DropConstraint, 26
      value :AT_DropConstraintRecurse, 27
      value :AT_ReAddComment, 28
      value :AT_AlterColumnType, 29
      value :AT_AlterColumnGenericOptions, 30
      value :AT_ChangeOwner, 31
      value :AT_ClusterOn, 32
      value :AT_DropCluster, 33
      value :AT_SetLogged, 34
      value :AT_SetUnLogged, 35
      value :AT_DropOids, 36
      value :AT_SetTableSpace, 37
      value :AT_SetRelOptions, 38
      value :AT_ResetRelOptions, 39
      value :AT_ReplaceRelOptions, 40
      value :AT_EnableTrig, 41
      value :AT_EnableAlwaysTrig, 42
      value :AT_EnableReplicaTrig, 43
      value :AT_DisableTrig, 44
      value :AT_EnableTrigAll, 45
      value :AT_DisableTrigAll, 46
      value :AT_EnableTrigUser, 47
      value :AT_DisableTrigUser, 48
      value :AT_EnableRule, 49
      value :AT_EnableAlwaysRule, 50
      value :AT_EnableReplicaRule, 51
      value :AT_DisableRule, 52
      value :AT_AddInherit, 53
      value :AT_DropInherit, 54
      value :AT_AddOf, 55
      value :AT_DropOf, 56
      value :AT_ReplicaIdentity, 57
      value :AT_EnableRowSecurity, 58
      value :AT_DisableRowSecurity, 59
      value :AT_ForceRowSecurity, 60
      value :AT_NoForceRowSecurity, 61
      value :AT_GenericOptions, 62
      value :AT_AttachPartition, 63
      value :AT_DetachPartition, 64
      value :AT_AddIdentity, 65
      value :AT_SetIdentity, 66
      value :AT_DropIdentity, 67
    end
    add_enum "pg_query.GrantTargetType" do
      value :GRANT_TARGET_TYPE_UNDEFINED, 0
      value :ACL_TARGET_OBJECT, 1
      value :ACL_TARGET_ALL_IN_SCHEMA, 2
      value :ACL_TARGET_DEFAULTS, 3
    end
    add_enum "pg_query.VariableSetKind" do
      value :VARIABLE_SET_KIND_UNDEFINED, 0
      value :VAR_SET_VALUE, 1
      value :VAR_SET_DEFAULT, 2
      value :VAR_SET_CURRENT, 3
      value :VAR_SET_MULTI, 4
      value :VAR_RESET, 5
      value :VAR_RESET_ALL, 6
    end
    add_enum "pg_query.ConstrType" do
      value :CONSTR_TYPE_UNDEFINED, 0
      value :CONSTR_NULL, 1
      value :CONSTR_NOTNULL, 2
      value :CONSTR_DEFAULT, 3
      value :CONSTR_IDENTITY, 4
      value :CONSTR_GENERATED, 5
      value :CONSTR_CHECK, 6
      value :CONSTR_PRIMARY, 7
      value :CONSTR_UNIQUE, 8
      value :CONSTR_EXCLUSION, 9
      value :CONSTR_FOREIGN, 10
      value :CONSTR_ATTR_DEFERRABLE, 11
      value :CONSTR_ATTR_NOT_DEFERRABLE, 12
      value :CONSTR_ATTR_DEFERRED, 13
      value :CONSTR_ATTR_IMMEDIATE, 14
    end
    add_enum "pg_query.ImportForeignSchemaType" do
      value :IMPORT_FOREIGN_SCHEMA_TYPE_UNDEFINED, 0
      value :FDW_IMPORT_SCHEMA_ALL, 1
      value :FDW_IMPORT_SCHEMA_LIMIT_TO, 2
      value :FDW_IMPORT_SCHEMA_EXCEPT, 3
    end
    add_enum "pg_query.RoleStmtType" do
      value :ROLE_STMT_TYPE_UNDEFINED, 0
      value :ROLESTMT_ROLE, 1
      value :ROLESTMT_USER, 2
      value :ROLESTMT_GROUP, 3
    end
    add_enum "pg_query.FetchDirection" do
      value :FETCH_DIRECTION_UNDEFINED, 0
      value :FETCH_FORWARD, 1
      value :FETCH_BACKWARD, 2
      value :FETCH_ABSOLUTE, 3
      value :FETCH_RELATIVE, 4
    end
    add_enum "pg_query.FunctionParameterMode" do
      value :FUNCTION_PARAMETER_MODE_UNDEFINED, 0
      value :FUNC_PARAM_IN, 1
      value :FUNC_PARAM_OUT, 2
      value :FUNC_PARAM_INOUT, 3
      value :FUNC_PARAM_VARIADIC, 4
      value :FUNC_PARAM_TABLE, 5
    end
    add_enum "pg_query.TransactionStmtKind" do
      value :TRANSACTION_STMT_KIND_UNDEFINED, 0
      value :TRANS_STMT_BEGIN, 1
      value :TRANS_STMT_START, 2
      value :TRANS_STMT_COMMIT, 3
      value :TRANS_STMT_ROLLBACK, 4
      value :TRANS_STMT_SAVEPOINT, 5
      value :TRANS_STMT_RELEASE, 6
      value :TRANS_STMT_ROLLBACK_TO, 7
      value :TRANS_STMT_PREPARE, 8
      value :TRANS_STMT_COMMIT_PREPARED, 9
      value :TRANS_STMT_ROLLBACK_PREPARED, 10
    end
    add_enum "pg_query.ViewCheckOption" do
      value :VIEW_CHECK_OPTION_UNDEFINED, 0
      value :NO_CHECK_OPTION, 1
      value :LOCAL_CHECK_OPTION, 2
      value :CASCADED_CHECK_OPTION, 3
    end
    add_enum "pg_query.ClusterOption" do
      value :CLUSTER_OPTION_UNDEFINED, 0
      value :CLUOPT_RECHECK, 1
      value :CLUOPT_VERBOSE, 2
    end
    add_enum "pg_query.DiscardMode" do
      value :DISCARD_MODE_UNDEFINED, 0
      value :DISCARD_ALL, 1
      value :DISCARD_PLANS, 2
      value :DISCARD_SEQUENCES, 3
      value :DISCARD_TEMP, 4
    end
    add_enum "pg_query.ReindexObjectType" do
      value :REINDEX_OBJECT_TYPE_UNDEFINED, 0
      value :REINDEX_OBJECT_INDEX, 1
      value :REINDEX_OBJECT_TABLE, 2
      value :REINDEX_OBJECT_SCHEMA, 3
      value :REINDEX_OBJECT_SYSTEM, 4
      value :REINDEX_OBJECT_DATABASE, 5
    end
    add_enum "pg_query.AlterTSConfigType" do
      value :ALTER_TSCONFIG_TYPE_UNDEFINED, 0
      value :ALTER_TSCONFIG_ADD_MAPPING, 1
      value :ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN, 2
      value :ALTER_TSCONFIG_REPLACE_DICT, 3
      value :ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN, 4
      value :ALTER_TSCONFIG_DROP_MAPPING, 5
    end
    add_enum "pg_query.AlterSubscriptionType" do
      value :ALTER_SUBSCRIPTION_TYPE_UNDEFINED, 0
      value :ALTER_SUBSCRIPTION_OPTIONS, 1
      value :ALTER_SUBSCRIPTION_CONNECTION, 2
      value :ALTER_SUBSCRIPTION_PUBLICATION, 3
      value :ALTER_SUBSCRIPTION_REFRESH, 4
      value :ALTER_SUBSCRIPTION_ENABLED, 5
    end
    add_enum "pg_query.OnCommitAction" do
      value :ON_COMMIT_ACTION_UNDEFINED, 0
      value :ONCOMMIT_NOOP, 1
      value :ONCOMMIT_PRESERVE_ROWS, 2
      value :ONCOMMIT_DELETE_ROWS, 3
      value :ONCOMMIT_DROP, 4
    end
    add_enum "pg_query.ParamKind" do
      value :PARAM_KIND_UNDEFINED, 0
      value :PARAM_EXTERN, 1
      value :PARAM_EXEC, 2
      value :PARAM_SUBLINK, 3
      value :PARAM_MULTIEXPR, 4
    end
    add_enum "pg_query.CoercionContext" do
      value :COERCION_CONTEXT_UNDEFINED, 0
      value :COERCION_IMPLICIT, 1
      value :COERCION_ASSIGNMENT, 2
      value :COERCION_EXPLICIT, 3
    end
    add_enum "pg_query.CoercionForm" do
      value :COERCION_FORM_UNDEFINED, 0
      value :COERCE_EXPLICIT_CALL, 1
      value :COERCE_EXPLICIT_CAST, 2
      value :COERCE_IMPLICIT_CAST, 3
    end
    add_enum "pg_query.BoolExprType" do
      value :BOOL_EXPR_TYPE_UNDEFINED, 0
      value :AND_EXPR, 1
      value :OR_EXPR, 2
      value :NOT_EXPR, 3
    end
    add_enum "pg_query.SubLinkType" do
      value :SUB_LINK_TYPE_UNDEFINED, 0
      value :EXISTS_SUBLINK, 1
      value :ALL_SUBLINK, 2
      value :ANY_SUBLINK, 3
      value :ROWCOMPARE_SUBLINK, 4
      value :EXPR_SUBLINK, 5
      value :MULTIEXPR_SUBLINK, 6
      value :ARRAY_SUBLINK, 7
      value :CTE_SUBLINK, 8
    end
    add_enum "pg_query.RowCompareType" do
      value :ROW_COMPARE_TYPE_UNDEFINED, 0
      value :ROWCOMPARE_LT, 1
      value :ROWCOMPARE_LE, 2
      value :ROWCOMPARE_EQ, 3
      value :ROWCOMPARE_GE, 4
      value :ROWCOMPARE_GT, 5
      value :ROWCOMPARE_NE, 6
    end
    add_enum "pg_query.MinMaxOp" do
      value :MIN_MAX_OP_UNDEFINED, 0
      value :IS_GREATEST, 1
      value :IS_LEAST, 2
    end
    add_enum "pg_query.SQLValueFunctionOp" do
      value :SQLVALUE_FUNCTION_OP_UNDEFINED, 0
      value :SVFOP_CURRENT_DATE, 1
      value :SVFOP_CURRENT_TIME, 2
      value :SVFOP_CURRENT_TIME_N, 3
      value :SVFOP_CURRENT_TIMESTAMP, 4
      value :SVFOP_CURRENT_TIMESTAMP_N, 5
      value :SVFOP_LOCALTIME, 6
      value :SVFOP_LOCALTIME_N, 7
      value :SVFOP_LOCALTIMESTAMP, 8
      value :SVFOP_LOCALTIMESTAMP_N, 9
      value :SVFOP_CURRENT_ROLE, 10
      value :SVFOP_CURRENT_USER, 11
      value :SVFOP_USER, 12
      value :SVFOP_SESSION_USER, 13
      value :SVFOP_CURRENT_CATALOG, 14
      value :SVFOP_CURRENT_SCHEMA, 15
    end
    add_enum "pg_query.XmlExprOp" do
      value :XML_EXPR_OP_UNDEFINED, 0
      value :IS_XMLCONCAT, 1
      value :IS_XMLELEMENT, 2
      value :IS_XMLFOREST, 3
      value :IS_XMLPARSE, 4
      value :IS_XMLPI, 5
      value :IS_XMLROOT, 6
      value :IS_XMLSERIALIZE, 7
      value :IS_DOCUMENT, 8
    end
    add_enum "pg_query.XmlOptionType" do
      value :XML_OPTION_TYPE_UNDEFINED, 0
      value :XMLOPTION_DOCUMENT, 1
      value :XMLOPTION_CONTENT, 2
    end
    add_enum "pg_query.NullTestType" do
      value :NULL_TEST_TYPE_UNDEFINED, 0
      value :IS_NULL, 1
      value :IS_NOT_NULL, 2
    end
    add_enum "pg_query.BoolTestType" do
      value :BOOL_TEST_TYPE_UNDEFINED, 0
      value :IS_TRUE, 1
      value :IS_NOT_TRUE, 2
      value :IS_FALSE, 3
      value :IS_NOT_FALSE, 4
      value :IS_UNKNOWN, 5
      value :IS_NOT_UNKNOWN, 6
    end
    add_enum "pg_query.CmdType" do
      value :CMD_TYPE_UNDEFINED, 0
      value :CMD_UNKNOWN, 1
      value :CMD_SELECT, 2
      value :CMD_UPDATE, 3
      value :CMD_INSERT, 4
      value :CMD_DELETE, 5
      value :CMD_UTILITY, 6
      value :CMD_NOTHING, 7
    end
    add_enum "pg_query.JoinType" do
      value :JOIN_TYPE_UNDEFINED, 0
      value :JOIN_INNER, 1
      value :JOIN_LEFT, 2
      value :JOIN_FULL, 3
      value :JOIN_RIGHT, 4
      value :JOIN_SEMI, 5
      value :JOIN_ANTI, 6
      value :JOIN_UNIQUE_OUTER, 7
      value :JOIN_UNIQUE_INNER, 8
    end
    add_enum "pg_query.AggStrategy" do
      value :AGG_STRATEGY_UNDEFINED, 0
      value :AGG_PLAIN, 1
      value :AGG_SORTED, 2
      value :AGG_HASHED, 3
      value :AGG_MIXED, 4
    end
    add_enum "pg_query.AggSplit" do
      value :AGG_SPLIT_UNDEFINED, 0
      value :AGGSPLIT_SIMPLE, 1
      value :AGGSPLIT_INITIAL_SERIAL, 2
      value :AGGSPLIT_FINAL_DESERIAL, 3
    end
    add_enum "pg_query.SetOpCmd" do
      value :SET_OP_CMD_UNDEFINED, 0
      value :SETOPCMD_INTERSECT, 1
      value :SETOPCMD_INTERSECT_ALL, 2
      value :SETOPCMD_EXCEPT, 3
      value :SETOPCMD_EXCEPT_ALL, 4
    end
    add_enum "pg_query.SetOpStrategy" do
      value :SET_OP_STRATEGY_UNDEFINED, 0
      value :SETOP_SORTED, 1
      value :SETOP_HASHED, 2
    end
    add_enum "pg_query.OnConflictAction" do
      value :ON_CONFLICT_ACTION_UNDEFINED, 0
      value :ONCONFLICT_NONE, 1
      value :ONCONFLICT_NOTHING, 2
      value :ONCONFLICT_UPDATE, 3
    end
    add_enum "pg_query.LimitOption" do
      value :LIMIT_OPTION_UNDEFINED, 0
      value :LIMIT_OPTION_DEFAULT, 1
      value :LIMIT_OPTION_COUNT, 2
      value :LIMIT_OPTION_WITH_TIES, 3
    end
    add_enum "pg_query.LockClauseStrength" do
      value :LOCK_CLAUSE_STRENGTH_UNDEFINED, 0
      value :LCS_NONE, 1
      value :LCS_FORKEYSHARE, 2
      value :LCS_FORSHARE, 3
      value :LCS_FORNOKEYUPDATE, 4
      value :LCS_FORUPDATE, 5
    end
    add_enum "pg_query.LockWaitPolicy" do
      value :LOCK_WAIT_POLICY_UNDEFINED, 0
      value :LockWaitBlock, 1
      value :LockWaitSkip, 2
      value :LockWaitError, 3
    end
    add_enum "pg_query.LockTupleMode" do
      value :LOCK_TUPLE_MODE_UNDEFINED, 0
      value :LockTupleKeyShare, 1
      value :LockTupleShare, 2
      value :LockTupleNoKeyExclusive, 3
      value :LockTupleExclusive, 4
    end
    add_enum "pg_query.KeywordKind" do
      value :NO_KEYWORD, 0
      value :UNRESERVED_KEYWORD, 1
      value :COL_NAME_KEYWORD, 2
      value :TYPE_FUNC_NAME_KEYWORD, 3
      value :RESERVED_KEYWORD, 4
    end
    add_enum "pg_query.Token" do
      value :NUL, 0
      value :ASCII_37, 37
      value :ASCII_40, 40
      value :ASCII_41, 41
      value :ASCII_42, 42
      value :ASCII_43, 43
      value :ASCII_44, 44
      value :ASCII_45, 45
      value :ASCII_46, 46
      value :ASCII_47, 47
      value :ASCII_58, 58
      value :ASCII_59, 59
      value :ASCII_60, 60
      value :ASCII_61, 61
      value :ASCII_62, 62
      value :ASCII_63, 63
      value :ASCII_91, 91
      value :ASCII_92, 92
      value :ASCII_93, 93
      value :ASCII_94, 94
      value :IDENT, 258
      value :UIDENT, 259
      value :FCONST, 260
      value :SCONST, 261
      value :USCONST, 262
      value :BCONST, 263
      value :XCONST, 264
      value :Op, 265
      value :ICONST, 266
      value :PARAM, 267
      value :TYPECAST, 268
      value :DOT_DOT, 269
      value :COLON_EQUALS, 270
      value :EQUALS_GREATER, 271
      value :LESS_EQUALS, 272
      value :GREATER_EQUALS, 273
      value :NOT_EQUALS, 274
      value :SQL_COMMENT, 275
      value :C_COMMENT, 276
      value :ABORT_P, 277
      value :ABSOLUTE_P, 278
      value :ACCESS, 279
      value :ACTION, 280
      value :ADD_P, 281
      value :ADMIN, 282
      value :AFTER, 283
      value :AGGREGATE, 284
      value :ALL, 285
      value :ALSO, 286
      value :ALTER, 287
      value :ALWAYS, 288
      value :ANALYSE, 289
      value :ANALYZE, 290
      value :AND, 291
      value :ANY, 292
      value :ARRAY, 293
      value :AS, 294
      value :ASC, 295
      value :ASSERTION, 296
      value :ASSIGNMENT, 297
      value :ASYMMETRIC, 298
      value :AT, 299
      value :ATTACH, 300
      value :ATTRIBUTE, 301
      value :AUTHORIZATION, 302
      value :BACKWARD, 303
      value :BEFORE, 304
      value :BEGIN_P, 305
      value :BETWEEN, 306
      value :BIGINT, 307
      value :BINARY, 308
      value :BIT, 309
      value :BOOLEAN_P, 310
      value :BOTH, 311
      value :BY, 312
      value :CACHE, 313
      value :CALL, 314
      value :CALLED, 315
      value :CASCADE, 316
      value :CASCADED, 317
      value :CASE, 318
      value :CAST, 319
      value :CATALOG_P, 320
      value :CHAIN, 321
      value :CHAR_P, 322
      value :CHARACTER, 323
      value :CHARACTERISTICS, 324
      value :CHECK, 325
      value :CHECKPOINT, 326
      value :CLASS, 327
      value :CLOSE, 328
      value :CLUSTER, 329
      value :COALESCE, 330
      value :COLLATE, 331
      value :COLLATION, 332
      value :COLUMN, 333
      value :COLUMNS, 334
      value :COMMENT, 335
      value :COMMENTS, 336
      value :COMMIT, 337
      value :COMMITTED, 338
      value :CONCURRENTLY, 339
      value :CONFIGURATION, 340
      value :CONFLICT, 341
      value :CONNECTION, 342
      value :CONSTRAINT, 343
      value :CONSTRAINTS, 344
      value :CONTENT_P, 345
      value :CONTINUE_P, 346
      value :CONVERSION_P, 347
      value :COPY, 348
      value :COST, 349
      value :CREATE, 350
      value :CROSS, 351
      value :CSV, 352
      value :CUBE, 353
      value :CURRENT_P, 354
      value :CURRENT_CATALOG, 355
      value :CURRENT_DATE, 356
      value :CURRENT_ROLE, 357
      value :CURRENT_SCHEMA, 358
      value :CURRENT_TIME, 359
      value :CURRENT_TIMESTAMP, 360
      value :CURRENT_USER, 361
      value :CURSOR, 362
      value :CYCLE, 363
      value :DATA_P, 364
      value :DATABASE, 365
      value :DAY_P, 366
      value :DEALLOCATE, 367
      value :DEC, 368
      value :DECIMAL_P, 369
      value :DECLARE, 370
      value :DEFAULT, 371
      value :DEFAULTS, 372
      value :DEFERRABLE, 373
      value :DEFERRED, 374
      value :DEFINER, 375
      value :DELETE_P, 376
      value :DELIMITER, 377
      value :DELIMITERS, 378
      value :DEPENDS, 379
      value :DESC, 380
      value :DETACH, 381
      value :DICTIONARY, 382
      value :DISABLE_P, 383
      value :DISCARD, 384
      value :DISTINCT, 385
      value :DO, 386
      value :DOCUMENT_P, 387
      value :DOMAIN_P, 388
      value :DOUBLE_P, 389
      value :DROP, 390
      value :EACH, 391
      value :ELSE, 392
      value :ENABLE_P, 393
      value :ENCODING, 394
      value :ENCRYPTED, 395
      value :END_P, 396
      value :ENUM_P, 397
      value :ESCAPE, 398
      value :EVENT, 399
      value :EXCEPT, 400
      value :EXCLUDE, 401
      value :EXCLUDING, 402
      value :EXCLUSIVE, 403
      value :EXECUTE, 404
      value :EXISTS, 405
      value :EXPLAIN, 406
      value :EXPRESSION, 407
      value :EXTENSION, 408
      value :EXTERNAL, 409
      value :EXTRACT, 410
      value :FALSE_P, 411
      value :FAMILY, 412
      value :FETCH, 413
      value :FILTER, 414
      value :FIRST_P, 415
      value :FLOAT_P, 416
      value :FOLLOWING, 417
      value :FOR, 418
      value :FORCE, 419
      value :FOREIGN, 420
      value :FORWARD, 421
      value :FREEZE, 422
      value :FROM, 423
      value :FULL, 424
      value :FUNCTION, 425
      value :FUNCTIONS, 426
      value :GENERATED, 427
      value :GLOBAL, 428
      value :GRANT, 429
      value :GRANTED, 430
      value :GREATEST, 431
      value :GROUP_P, 432
      value :GROUPING, 433
      value :GROUPS, 434
      value :HANDLER, 435
      value :HAVING, 436
      value :HEADER_P, 437
      value :HOLD, 438
      value :HOUR_P, 439
      value :IDENTITY_P, 440
      value :IF_P, 441
      value :ILIKE, 442
      value :IMMEDIATE, 443
      value :IMMUTABLE, 444
      value :IMPLICIT_P, 445
      value :IMPORT_P, 446
      value :IN_P, 447
      value :INCLUDE, 448
      value :INCLUDING, 449
      value :INCREMENT, 450
      value :INDEX, 451
      value :INDEXES, 452
      value :INHERIT, 453
      value :INHERITS, 454
      value :INITIALLY, 455
      value :INLINE_P, 456
      value :INNER_P, 457
      value :INOUT, 458
      value :INPUT_P, 459
      value :INSENSITIVE, 460
      value :INSERT, 461
      value :INSTEAD, 462
      value :INT_P, 463
      value :INTEGER, 464
      value :INTERSECT, 465
      value :INTERVAL, 466
      value :INTO, 467
      value :INVOKER, 468
      value :IS, 469
      value :ISNULL, 470
      value :ISOLATION, 471
      value :JOIN, 472
      value :KEY, 473
      value :LABEL, 474
      value :LANGUAGE, 475
      value :LARGE_P, 476
      value :LAST_P, 477
      value :LATERAL_P, 478
      value :LEADING, 479
      value :LEAKPROOF, 480
      value :LEAST, 481
      value :LEFT, 482
      value :LEVEL, 483
      value :LIKE, 484
      value :LIMIT, 485
      value :LISTEN, 486
      value :LOAD, 487
      value :LOCAL, 488
      value :LOCALTIME, 489
      value :LOCALTIMESTAMP, 490
      value :LOCATION, 491
      value :LOCK_P, 492
      value :LOCKED, 493
      value :LOGGED, 494
      value :MAPPING, 495
      value :MATCH, 496
      value :MATERIALIZED, 497
      value :MAXVALUE, 498
      value :METHOD, 499
      value :MINUTE_P, 500
      value :MINVALUE, 501
      value :MODE, 502
      value :MONTH_P, 503
      value :MOVE, 504
      value :NAME_P, 505
      value :NAMES, 506
      value :NATIONAL, 507
      value :NATURAL, 508
      value :NCHAR, 509
      value :NEW, 510
      value :NEXT, 511
      value :NFC, 512
      value :NFD, 513
      value :NFKC, 514
      value :NFKD, 515
      value :NO, 516
      value :NONE, 517
      value :NORMALIZE, 518
      value :NORMALIZED, 519
      value :NOT, 520
      value :NOTHING, 521
      value :NOTIFY, 522
      value :NOTNULL, 523
      value :NOWAIT, 524
      value :NULL_P, 525
      value :NULLIF, 526
      value :NULLS_P, 527
      value :NUMERIC, 528
      value :OBJECT_P, 529
      value :OF, 530
      value :OFF, 531
      value :OFFSET, 532
      value :OIDS, 533
      value :OLD, 534
      value :ON, 535
      value :ONLY, 536
      value :OPERATOR, 537
      value :OPTION, 538
      value :OPTIONS, 539
      value :OR, 540
      value :ORDER, 541
      value :ORDINALITY, 542
      value :OTHERS, 543
      value :OUT_P, 544
      value :OUTER_P, 545
      value :OVER, 546
      value :OVERLAPS, 547
      value :OVERLAY, 548
      value :OVERRIDING, 549
      value :OWNED, 550
      value :OWNER, 551
      value :PARALLEL, 552
      value :PARSER, 553
      value :PARTIAL, 554
      value :PARTITION, 555
      value :PASSING, 556
      value :PASSWORD, 557
      value :PLACING, 558
      value :PLANS, 559
      value :POLICY, 560
      value :POSITION, 561
      value :PRECEDING, 562
      value :PRECISION, 563
      value :PRESERVE, 564
      value :PREPARE, 565
      value :PREPARED, 566
      value :PRIMARY, 567
      value :PRIOR, 568
      value :PRIVILEGES, 569
      value :PROCEDURAL, 570
      value :PROCEDURE, 571
      value :PROCEDURES, 572
      value :PROGRAM, 573
      value :PUBLICATION, 574
      value :QUOTE, 575
      value :RANGE, 576
      value :READ, 577
      value :REAL, 578
      value :REASSIGN, 579
      value :RECHECK, 580
      value :RECURSIVE, 581
      value :REF_P, 582
      value :REFERENCES, 583
      value :REFERENCING, 584
      value :REFRESH, 585
      value :REINDEX, 586
      value :RELATIVE_P, 587
      value :RELEASE, 588
      value :RENAME, 589
      value :REPEATABLE, 590
      value :REPLACE, 591
      value :REPLICA, 592
      value :RESET, 593
      value :RESTART, 594
      value :RESTRICT, 595
      value :RETURNING, 596
      value :RETURNS, 597
      value :REVOKE, 598
      value :RIGHT, 599
      value :ROLE, 600
      value :ROLLBACK, 601
      value :ROLLUP, 602
      value :ROUTINE, 603
      value :ROUTINES, 604
      value :ROW, 605
      value :ROWS, 606
      value :RULE, 607
      value :SAVEPOINT, 608
      value :SCHEMA, 609
      value :SCHEMAS, 610
      value :SCROLL, 611
      value :SEARCH, 612
      value :SECOND_P, 613
      value :SECURITY, 614
      value :SELECT, 615
      value :SEQUENCE, 616
      value :SEQUENCES, 617
      value :SERIALIZABLE, 618
      value :SERVER, 619
      value :SESSION, 620
      value :SESSION_USER, 621
      value :SET, 622
      value :SETS, 623
      value :SETOF, 624
      value :SHARE, 625
      value :SHOW, 626
      value :SIMILAR, 627
      value :SIMPLE, 628
      value :SKIP, 629
      value :SMALLINT, 630
      value :SNAPSHOT, 631
      value :SOME, 632
      value :SQL_P, 633
      value :STABLE, 634
      value :STANDALONE_P, 635
      value :START, 636
      value :STATEMENT, 637
      value :STATISTICS, 638
      value :STDIN, 639
      value :STDOUT, 640
      value :STORAGE, 641
      value :STORED, 642
      value :STRICT_P, 643
      value :STRIP_P, 644
      value :SUBSCRIPTION, 645
      value :SUBSTRING, 646
      value :SUPPORT, 647
      value :SYMMETRIC, 648
      value :SYSID, 649
      value :SYSTEM_P, 650
      value :TABLE, 651
      value :TABLES, 652
      value :TABLESAMPLE, 653
      value :TABLESPACE, 654
      value :TEMP, 655
      value :TEMPLATE, 656
      value :TEMPORARY, 657
      value :TEXT_P, 658
      value :THEN, 659
      value :TIES, 660
      value :TIME, 661
      value :TIMESTAMP, 662
      value :TO, 663
      value :TRAILING, 664
      value :TRANSACTION, 665
      value :TRANSFORM, 666
      value :TREAT, 667
      value :TRIGGER, 668
      value :TRIM, 669
      value :TRUE_P, 670
      value :TRUNCATE, 671
      value :TRUSTED, 672
      value :TYPE_P, 673
      value :TYPES_P, 674
      value :UESCAPE, 675
      value :UNBOUNDED, 676
      value :UNCOMMITTED, 677
      value :UNENCRYPTED, 678
      value :UNION, 679
      value :UNIQUE, 680
      value :UNKNOWN, 681
      value :UNLISTEN, 682
      value :UNLOGGED, 683
      value :UNTIL, 684
      value :UPDATE, 685
      value :USER, 686
      value :USING, 687
      value :VACUUM, 688
      value :VALID, 689
      value :VALIDATE, 690
      value :VALIDATOR, 691
      value :VALUE_P, 692
      value :VALUES, 693
      value :VARCHAR, 694
      value :VARIADIC, 695
      value :VARYING, 696
      value :VERBOSE, 697
      value :VERSION_P, 698
      value :VIEW, 699
      value :VIEWS, 700
      value :VOLATILE, 701
      value :WHEN, 702
      value :WHERE, 703
      value :WHITESPACE_P, 704
      value :WINDOW, 705
      value :WITH, 706
      value :WITHIN, 707
      value :WITHOUT, 708
      value :WORK, 709
      value :WRAPPER, 710
      value :WRITE, 711
      value :XML_P, 712
      value :XMLATTRIBUTES, 713
      value :XMLCONCAT, 714
      value :XMLELEMENT, 715
      value :XMLEXISTS, 716
      value :XMLFOREST, 717
      value :XMLNAMESPACES, 718
      value :XMLPARSE, 719
      value :XMLPI, 720
      value :XMLROOT, 721
      value :XMLSERIALIZE, 722
      value :XMLTABLE, 723
      value :YEAR_P, 724
      value :YES_P, 725
      value :ZONE, 726
      value :NOT_LA, 727
      value :NULLS_LA, 728
      value :WITH_LA, 729
      value :POSTFIXOP, 730
      value :UMINUS, 731
    end
  end
end

module PgQuery
  ParseResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ParseResult").msgclass
  ScanResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ScanResult").msgclass
  Node = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.Node").msgclass
  Integer = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.Integer").msgclass
  Float = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.Float").msgclass
  String = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.String").msgclass
  BitString = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.BitString").msgclass
  Null = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.Null").msgclass
  List = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.List").msgclass
  OidList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.OidList").msgclass
  IntList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.IntList").msgclass
  Alias = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.Alias").msgclass
  RangeVar = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RangeVar").msgclass
  TableFunc = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.TableFunc").msgclass
  Expr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.Expr").msgclass
  Var = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.Var").msgclass
  Param = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.Param").msgclass
  Aggref = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.Aggref").msgclass
  GroupingFunc = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.GroupingFunc").msgclass
  WindowFunc = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.WindowFunc").msgclass
  SubscriptingRef = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SubscriptingRef").msgclass
  FuncExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.FuncExpr").msgclass
  NamedArgExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.NamedArgExpr").msgclass
  OpExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.OpExpr").msgclass
  DistinctExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DistinctExpr").msgclass
  NullIfExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.NullIfExpr").msgclass
  ScalarArrayOpExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ScalarArrayOpExpr").msgclass
  BoolExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.BoolExpr").msgclass
  SubLink = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SubLink").msgclass
  SubPlan = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SubPlan").msgclass
  AlternativeSubPlan = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlternativeSubPlan").msgclass
  FieldSelect = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.FieldSelect").msgclass
  FieldStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.FieldStore").msgclass
  RelabelType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RelabelType").msgclass
  CoerceViaIO = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CoerceViaIO").msgclass
  ArrayCoerceExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ArrayCoerceExpr").msgclass
  ConvertRowtypeExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ConvertRowtypeExpr").msgclass
  CollateExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CollateExpr").msgclass
  CaseExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CaseExpr").msgclass
  CaseWhen = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CaseWhen").msgclass
  CaseTestExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CaseTestExpr").msgclass
  ArrayExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ArrayExpr").msgclass
  RowExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RowExpr").msgclass
  RowCompareExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RowCompareExpr").msgclass
  CoalesceExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CoalesceExpr").msgclass
  MinMaxExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.MinMaxExpr").msgclass
  SQLValueFunction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SQLValueFunction").msgclass
  XmlExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.XmlExpr").msgclass
  NullTest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.NullTest").msgclass
  BooleanTest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.BooleanTest").msgclass
  CoerceToDomain = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CoerceToDomain").msgclass
  CoerceToDomainValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CoerceToDomainValue").msgclass
  SetToDefault = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SetToDefault").msgclass
  CurrentOfExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CurrentOfExpr").msgclass
  NextValueExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.NextValueExpr").msgclass
  InferenceElem = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.InferenceElem").msgclass
  TargetEntry = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.TargetEntry").msgclass
  RangeTblRef = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RangeTblRef").msgclass
  JoinExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.JoinExpr").msgclass
  FromExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.FromExpr").msgclass
  OnConflictExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.OnConflictExpr").msgclass
  IntoClause = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.IntoClause").msgclass
  RawStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RawStmt").msgclass
  Query = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.Query").msgclass
  InsertStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.InsertStmt").msgclass
  DeleteStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DeleteStmt").msgclass
  UpdateStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.UpdateStmt").msgclass
  SelectStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SelectStmt").msgclass
  AlterTableStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterTableStmt").msgclass
  AlterTableCmd = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterTableCmd").msgclass
  AlterDomainStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterDomainStmt").msgclass
  SetOperationStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SetOperationStmt").msgclass
  GrantStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.GrantStmt").msgclass
  GrantRoleStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.GrantRoleStmt").msgclass
  AlterDefaultPrivilegesStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterDefaultPrivilegesStmt").msgclass
  ClosePortalStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ClosePortalStmt").msgclass
  ClusterStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ClusterStmt").msgclass
  CopyStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CopyStmt").msgclass
  CreateStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateStmt").msgclass
  DefineStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DefineStmt").msgclass
  DropStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DropStmt").msgclass
  TruncateStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.TruncateStmt").msgclass
  CommentStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CommentStmt").msgclass
  FetchStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.FetchStmt").msgclass
  IndexStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.IndexStmt").msgclass
  CreateFunctionStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateFunctionStmt").msgclass
  AlterFunctionStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterFunctionStmt").msgclass
  DoStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DoStmt").msgclass
  RenameStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RenameStmt").msgclass
  RuleStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RuleStmt").msgclass
  NotifyStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.NotifyStmt").msgclass
  ListenStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ListenStmt").msgclass
  UnlistenStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.UnlistenStmt").msgclass
  TransactionStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.TransactionStmt").msgclass
  ViewStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ViewStmt").msgclass
  LoadStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.LoadStmt").msgclass
  CreateDomainStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateDomainStmt").msgclass
  CreatedbStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreatedbStmt").msgclass
  DropdbStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DropdbStmt").msgclass
  VacuumStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.VacuumStmt").msgclass
  ExplainStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ExplainStmt").msgclass
  CreateTableAsStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateTableAsStmt").msgclass
  CreateSeqStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateSeqStmt").msgclass
  AlterSeqStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterSeqStmt").msgclass
  VariableSetStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.VariableSetStmt").msgclass
  VariableShowStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.VariableShowStmt").msgclass
  DiscardStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DiscardStmt").msgclass
  CreateTrigStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateTrigStmt").msgclass
  CreatePLangStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreatePLangStmt").msgclass
  CreateRoleStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateRoleStmt").msgclass
  AlterRoleStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterRoleStmt").msgclass
  DropRoleStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DropRoleStmt").msgclass
  LockStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.LockStmt").msgclass
  ConstraintsSetStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ConstraintsSetStmt").msgclass
  ReindexStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ReindexStmt").msgclass
  CheckPointStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CheckPointStmt").msgclass
  CreateSchemaStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateSchemaStmt").msgclass
  AlterDatabaseStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterDatabaseStmt").msgclass
  AlterDatabaseSetStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterDatabaseSetStmt").msgclass
  AlterRoleSetStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterRoleSetStmt").msgclass
  CreateConversionStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateConversionStmt").msgclass
  CreateCastStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateCastStmt").msgclass
  CreateOpClassStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateOpClassStmt").msgclass
  CreateOpFamilyStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateOpFamilyStmt").msgclass
  AlterOpFamilyStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterOpFamilyStmt").msgclass
  PrepareStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.PrepareStmt").msgclass
  ExecuteStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ExecuteStmt").msgclass
  DeallocateStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DeallocateStmt").msgclass
  DeclareCursorStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DeclareCursorStmt").msgclass
  CreateTableSpaceStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateTableSpaceStmt").msgclass
  DropTableSpaceStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DropTableSpaceStmt").msgclass
  AlterObjectDependsStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterObjectDependsStmt").msgclass
  AlterObjectSchemaStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterObjectSchemaStmt").msgclass
  AlterOwnerStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterOwnerStmt").msgclass
  AlterOperatorStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterOperatorStmt").msgclass
  AlterTypeStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterTypeStmt").msgclass
  DropOwnedStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DropOwnedStmt").msgclass
  ReassignOwnedStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ReassignOwnedStmt").msgclass
  CompositeTypeStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CompositeTypeStmt").msgclass
  CreateEnumStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateEnumStmt").msgclass
  CreateRangeStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateRangeStmt").msgclass
  AlterEnumStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterEnumStmt").msgclass
  AlterTSDictionaryStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterTSDictionaryStmt").msgclass
  AlterTSConfigurationStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterTSConfigurationStmt").msgclass
  CreateFdwStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateFdwStmt").msgclass
  AlterFdwStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterFdwStmt").msgclass
  CreateForeignServerStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateForeignServerStmt").msgclass
  AlterForeignServerStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterForeignServerStmt").msgclass
  CreateUserMappingStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateUserMappingStmt").msgclass
  AlterUserMappingStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterUserMappingStmt").msgclass
  DropUserMappingStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DropUserMappingStmt").msgclass
  AlterTableSpaceOptionsStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterTableSpaceOptionsStmt").msgclass
  AlterTableMoveAllStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterTableMoveAllStmt").msgclass
  SecLabelStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SecLabelStmt").msgclass
  CreateForeignTableStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateForeignTableStmt").msgclass
  ImportForeignSchemaStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ImportForeignSchemaStmt").msgclass
  CreateExtensionStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateExtensionStmt").msgclass
  AlterExtensionStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterExtensionStmt").msgclass
  AlterExtensionContentsStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterExtensionContentsStmt").msgclass
  CreateEventTrigStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateEventTrigStmt").msgclass
  AlterEventTrigStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterEventTrigStmt").msgclass
  RefreshMatViewStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RefreshMatViewStmt").msgclass
  ReplicaIdentityStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ReplicaIdentityStmt").msgclass
  AlterSystemStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterSystemStmt").msgclass
  CreatePolicyStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreatePolicyStmt").msgclass
  AlterPolicyStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterPolicyStmt").msgclass
  CreateTransformStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateTransformStmt").msgclass
  CreateAmStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateAmStmt").msgclass
  CreatePublicationStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreatePublicationStmt").msgclass
  AlterPublicationStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterPublicationStmt").msgclass
  CreateSubscriptionStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateSubscriptionStmt").msgclass
  AlterSubscriptionStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterSubscriptionStmt").msgclass
  DropSubscriptionStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DropSubscriptionStmt").msgclass
  CreateStatsStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateStatsStmt").msgclass
  AlterCollationStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterCollationStmt").msgclass
  CallStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CallStmt").msgclass
  AlterStatsStmt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterStatsStmt").msgclass
  A_Expr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.A_Expr").msgclass
  ColumnRef = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ColumnRef").msgclass
  ParamRef = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ParamRef").msgclass
  A_Const = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.A_Const").msgclass
  FuncCall = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.FuncCall").msgclass
  A_Star = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.A_Star").msgclass
  A_Indices = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.A_Indices").msgclass
  A_Indirection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.A_Indirection").msgclass
  A_ArrayExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.A_ArrayExpr").msgclass
  ResTarget = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ResTarget").msgclass
  MultiAssignRef = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.MultiAssignRef").msgclass
  TypeCast = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.TypeCast").msgclass
  CollateClause = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CollateClause").msgclass
  SortBy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SortBy").msgclass
  WindowDef = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.WindowDef").msgclass
  RangeSubselect = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RangeSubselect").msgclass
  RangeFunction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RangeFunction").msgclass
  RangeTableSample = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RangeTableSample").msgclass
  RangeTableFunc = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RangeTableFunc").msgclass
  RangeTableFuncCol = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RangeTableFuncCol").msgclass
  TypeName = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.TypeName").msgclass
  ColumnDef = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ColumnDef").msgclass
  IndexElem = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.IndexElem").msgclass
  Constraint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.Constraint").msgclass
  DefElem = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DefElem").msgclass
  RangeTblEntry = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RangeTblEntry").msgclass
  RangeTblFunction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RangeTblFunction").msgclass
  TableSampleClause = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.TableSampleClause").msgclass
  WithCheckOption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.WithCheckOption").msgclass
  SortGroupClause = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SortGroupClause").msgclass
  GroupingSet = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.GroupingSet").msgclass
  WindowClause = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.WindowClause").msgclass
  ObjectWithArgs = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ObjectWithArgs").msgclass
  AccessPriv = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AccessPriv").msgclass
  CreateOpClassItem = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CreateOpClassItem").msgclass
  TableLikeClause = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.TableLikeClause").msgclass
  FunctionParameter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.FunctionParameter").msgclass
  LockingClause = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.LockingClause").msgclass
  RowMarkClause = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RowMarkClause").msgclass
  XmlSerialize = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.XmlSerialize").msgclass
  WithClause = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.WithClause").msgclass
  InferClause = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.InferClause").msgclass
  OnConflictClause = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.OnConflictClause").msgclass
  CommonTableExpr = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CommonTableExpr").msgclass
  RoleSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RoleSpec").msgclass
  TriggerTransition = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.TriggerTransition").msgclass
  PartitionElem = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.PartitionElem").msgclass
  PartitionSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.PartitionSpec").msgclass
  PartitionBoundSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.PartitionBoundSpec").msgclass
  PartitionRangeDatum = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.PartitionRangeDatum").msgclass
  PartitionCmd = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.PartitionCmd").msgclass
  VacuumRelation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.VacuumRelation").msgclass
  InlineCodeBlock = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.InlineCodeBlock").msgclass
  CallContext = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CallContext").msgclass
  ScanToken = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ScanToken").msgclass
  OverridingKind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.OverridingKind").enummodule
  QuerySource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.QuerySource").enummodule
  SortByDir = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SortByDir").enummodule
  SortByNulls = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SortByNulls").enummodule
  A_Expr_Kind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.A_Expr_Kind").enummodule
  RoleSpecType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RoleSpecType").enummodule
  TableLikeOption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.TableLikeOption").enummodule
  DefElemAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DefElemAction").enummodule
  PartitionRangeDatumKind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.PartitionRangeDatumKind").enummodule
  RTEKind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RTEKind").enummodule
  WCOKind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.WCOKind").enummodule
  GroupingSetKind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.GroupingSetKind").enummodule
  CTEMaterialize = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CTEMaterialize").enummodule
  SetOperation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SetOperation").enummodule
  ObjectType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ObjectType").enummodule
  DropBehavior = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DropBehavior").enummodule
  AlterTableType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterTableType").enummodule
  GrantTargetType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.GrantTargetType").enummodule
  VariableSetKind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.VariableSetKind").enummodule
  ConstrType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ConstrType").enummodule
  ImportForeignSchemaType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ImportForeignSchemaType").enummodule
  RoleStmtType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RoleStmtType").enummodule
  FetchDirection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.FetchDirection").enummodule
  FunctionParameterMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.FunctionParameterMode").enummodule
  TransactionStmtKind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.TransactionStmtKind").enummodule
  ViewCheckOption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ViewCheckOption").enummodule
  ClusterOption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ClusterOption").enummodule
  DiscardMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.DiscardMode").enummodule
  ReindexObjectType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ReindexObjectType").enummodule
  AlterTSConfigType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterTSConfigType").enummodule
  AlterSubscriptionType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AlterSubscriptionType").enummodule
  OnCommitAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.OnCommitAction").enummodule
  ParamKind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.ParamKind").enummodule
  CoercionContext = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CoercionContext").enummodule
  CoercionForm = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CoercionForm").enummodule
  BoolExprType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.BoolExprType").enummodule
  SubLinkType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SubLinkType").enummodule
  RowCompareType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.RowCompareType").enummodule
  MinMaxOp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.MinMaxOp").enummodule
  SQLValueFunctionOp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SQLValueFunctionOp").enummodule
  XmlExprOp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.XmlExprOp").enummodule
  XmlOptionType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.XmlOptionType").enummodule
  NullTestType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.NullTestType").enummodule
  BoolTestType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.BoolTestType").enummodule
  CmdType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.CmdType").enummodule
  JoinType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.JoinType").enummodule
  AggStrategy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AggStrategy").enummodule
  AggSplit = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.AggSplit").enummodule
  SetOpCmd = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SetOpCmd").enummodule
  SetOpStrategy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.SetOpStrategy").enummodule
  OnConflictAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.OnConflictAction").enummodule
  LimitOption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.LimitOption").enummodule
  LockClauseStrength = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.LockClauseStrength").enummodule
  LockWaitPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.LockWaitPolicy").enummodule
  LockTupleMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.LockTupleMode").enummodule
  KeywordKind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.KeywordKind").enummodule
  Token = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("pg_query.Token").enummodule
end
