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