// 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"]; IntoClause into_clause = 4 [json_name="IntoClause"]; 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"]; WindowFuncRunCondition window_func_run_condition = 10 [json_name="WindowFuncRunCondition"]; MergeSupportFunc merge_support_func = 11 [json_name="MergeSupportFunc"]; SubscriptingRef subscripting_ref = 12 [json_name="SubscriptingRef"]; FuncExpr func_expr = 13 [json_name="FuncExpr"]; NamedArgExpr named_arg_expr = 14 [json_name="NamedArgExpr"]; OpExpr op_expr = 15 [json_name="OpExpr"]; DistinctExpr distinct_expr = 16 [json_name="DistinctExpr"]; NullIfExpr null_if_expr = 17 [json_name="NullIfExpr"]; ScalarArrayOpExpr scalar_array_op_expr = 18 [json_name="ScalarArrayOpExpr"]; BoolExpr bool_expr = 19 [json_name="BoolExpr"]; SubLink sub_link = 20 [json_name="SubLink"]; SubPlan sub_plan = 21 [json_name="SubPlan"]; AlternativeSubPlan alternative_sub_plan = 22 [json_name="AlternativeSubPlan"]; FieldSelect field_select = 23 [json_name="FieldSelect"]; FieldStore field_store = 24 [json_name="FieldStore"]; RelabelType relabel_type = 25 [json_name="RelabelType"]; CoerceViaIO coerce_via_io = 26 [json_name="CoerceViaIO"]; ArrayCoerceExpr array_coerce_expr = 27 [json_name="ArrayCoerceExpr"]; ConvertRowtypeExpr convert_rowtype_expr = 28 [json_name="ConvertRowtypeExpr"]; CollateExpr collate_expr = 29 [json_name="CollateExpr"]; CaseExpr case_expr = 30 [json_name="CaseExpr"]; CaseWhen case_when = 31 [json_name="CaseWhen"]; CaseTestExpr case_test_expr = 32 [json_name="CaseTestExpr"]; ArrayExpr array_expr = 33 [json_name="ArrayExpr"]; RowExpr row_expr = 34 [json_name="RowExpr"]; RowCompareExpr row_compare_expr = 35 [json_name="RowCompareExpr"]; CoalesceExpr coalesce_expr = 36 [json_name="CoalesceExpr"]; MinMaxExpr min_max_expr = 37 [json_name="MinMaxExpr"]; SQLValueFunction sqlvalue_function = 38 [json_name="SQLValueFunction"]; XmlExpr xml_expr = 39 [json_name="XmlExpr"]; JsonFormat json_format = 40 [json_name="JsonFormat"]; JsonReturning json_returning = 41 [json_name="JsonReturning"]; JsonValueExpr json_value_expr = 42 [json_name="JsonValueExpr"]; JsonConstructorExpr json_constructor_expr = 43 [json_name="JsonConstructorExpr"]; JsonIsPredicate json_is_predicate = 44 [json_name="JsonIsPredicate"]; JsonBehavior json_behavior = 45 [json_name="JsonBehavior"]; JsonExpr json_expr = 46 [json_name="JsonExpr"]; JsonTablePath json_table_path = 47 [json_name="JsonTablePath"]; JsonTablePathScan json_table_path_scan = 48 [json_name="JsonTablePathScan"]; JsonTableSiblingJoin json_table_sibling_join = 49 [json_name="JsonTableSiblingJoin"]; NullTest null_test = 50 [json_name="NullTest"]; BooleanTest boolean_test = 51 [json_name="BooleanTest"]; MergeAction merge_action = 52 [json_name="MergeAction"]; CoerceToDomain coerce_to_domain = 53 [json_name="CoerceToDomain"]; CoerceToDomainValue coerce_to_domain_value = 54 [json_name="CoerceToDomainValue"]; SetToDefault set_to_default = 55 [json_name="SetToDefault"]; CurrentOfExpr current_of_expr = 56 [json_name="CurrentOfExpr"]; NextValueExpr next_value_expr = 57 [json_name="NextValueExpr"]; InferenceElem inference_elem = 58 [json_name="InferenceElem"]; TargetEntry target_entry = 59 [json_name="TargetEntry"]; RangeTblRef range_tbl_ref = 60 [json_name="RangeTblRef"]; JoinExpr join_expr = 61 [json_name="JoinExpr"]; FromExpr from_expr = 62 [json_name="FromExpr"]; OnConflictExpr on_conflict_expr = 63 [json_name="OnConflictExpr"]; Query query = 64 [json_name="Query"]; TypeName type_name = 65 [json_name="TypeName"]; ColumnRef column_ref = 66 [json_name="ColumnRef"]; ParamRef param_ref = 67 [json_name="ParamRef"]; A_Expr a_expr = 68 [json_name="A_Expr"]; TypeCast type_cast = 69 [json_name="TypeCast"]; CollateClause collate_clause = 70 [json_name="CollateClause"]; RoleSpec role_spec = 71 [json_name="RoleSpec"]; FuncCall func_call = 72 [json_name="FuncCall"]; A_Star a_star = 73 [json_name="A_Star"]; A_Indices a_indices = 74 [json_name="A_Indices"]; A_Indirection a_indirection = 75 [json_name="A_Indirection"]; A_ArrayExpr a_array_expr = 76 [json_name="A_ArrayExpr"]; ResTarget res_target = 77 [json_name="ResTarget"]; MultiAssignRef multi_assign_ref = 78 [json_name="MultiAssignRef"]; SortBy sort_by = 79 [json_name="SortBy"]; WindowDef window_def = 80 [json_name="WindowDef"]; RangeSubselect range_subselect = 81 [json_name="RangeSubselect"]; RangeFunction range_function = 82 [json_name="RangeFunction"]; RangeTableFunc range_table_func = 83 [json_name="RangeTableFunc"]; RangeTableFuncCol range_table_func_col = 84 [json_name="RangeTableFuncCol"]; RangeTableSample range_table_sample = 85 [json_name="RangeTableSample"]; ColumnDef column_def = 86 [json_name="ColumnDef"]; TableLikeClause table_like_clause = 87 [json_name="TableLikeClause"]; IndexElem index_elem = 88 [json_name="IndexElem"]; DefElem def_elem = 89 [json_name="DefElem"]; LockingClause locking_clause = 90 [json_name="LockingClause"]; XmlSerialize xml_serialize = 91 [json_name="XmlSerialize"]; PartitionElem partition_elem = 92 [json_name="PartitionElem"]; PartitionSpec partition_spec = 93 [json_name="PartitionSpec"]; PartitionBoundSpec partition_bound_spec = 94 [json_name="PartitionBoundSpec"]; PartitionRangeDatum partition_range_datum = 95 [json_name="PartitionRangeDatum"]; SinglePartitionSpec single_partition_spec = 96 [json_name="SinglePartitionSpec"]; PartitionCmd partition_cmd = 97 [json_name="PartitionCmd"]; RangeTblEntry range_tbl_entry = 98 [json_name="RangeTblEntry"]; RTEPermissionInfo rtepermission_info = 99 [json_name="RTEPermissionInfo"]; RangeTblFunction range_tbl_function = 100 [json_name="RangeTblFunction"]; TableSampleClause table_sample_clause = 101 [json_name="TableSampleClause"]; WithCheckOption with_check_option = 102 [json_name="WithCheckOption"]; SortGroupClause sort_group_clause = 103 [json_name="SortGroupClause"]; GroupingSet grouping_set = 104 [json_name="GroupingSet"]; WindowClause window_clause = 105 [json_name="WindowClause"]; RowMarkClause row_mark_clause = 106 [json_name="RowMarkClause"]; WithClause with_clause = 107 [json_name="WithClause"]; InferClause infer_clause = 108 [json_name="InferClause"]; OnConflictClause on_conflict_clause = 109 [json_name="OnConflictClause"]; CTESearchClause ctesearch_clause = 110 [json_name="CTESearchClause"]; CTECycleClause ctecycle_clause = 111 [json_name="CTECycleClause"]; CommonTableExpr common_table_expr = 112 [json_name="CommonTableExpr"]; MergeWhenClause merge_when_clause = 113 [json_name="MergeWhenClause"]; TriggerTransition trigger_transition = 114 [json_name="TriggerTransition"]; JsonOutput json_output = 115 [json_name="JsonOutput"]; JsonArgument json_argument = 116 [json_name="JsonArgument"]; JsonFuncExpr json_func_expr = 117 [json_name="JsonFuncExpr"]; JsonTablePathSpec json_table_path_spec = 118 [json_name="JsonTablePathSpec"]; JsonTable json_table = 119 [json_name="JsonTable"]; JsonTableColumn json_table_column = 120 [json_name="JsonTableColumn"]; JsonKeyValue json_key_value = 121 [json_name="JsonKeyValue"]; JsonParseExpr json_parse_expr = 122 [json_name="JsonParseExpr"]; JsonScalarExpr json_scalar_expr = 123 [json_name="JsonScalarExpr"]; JsonSerializeExpr json_serialize_expr = 124 [json_name="JsonSerializeExpr"]; JsonObjectConstructor json_object_constructor = 125 [json_name="JsonObjectConstructor"]; JsonArrayConstructor json_array_constructor = 126 [json_name="JsonArrayConstructor"]; JsonArrayQueryConstructor json_array_query_constructor = 127 [json_name="JsonArrayQueryConstructor"]; JsonAggConstructor json_agg_constructor = 128 [json_name="JsonAggConstructor"]; JsonObjectAgg json_object_agg = 129 [json_name="JsonObjectAgg"]; JsonArrayAgg json_array_agg = 130 [json_name="JsonArrayAgg"]; RawStmt raw_stmt = 131 [json_name="RawStmt"]; InsertStmt insert_stmt = 132 [json_name="InsertStmt"]; DeleteStmt delete_stmt = 133 [json_name="DeleteStmt"]; UpdateStmt update_stmt = 134 [json_name="UpdateStmt"]; MergeStmt merge_stmt = 135 [json_name="MergeStmt"]; SelectStmt select_stmt = 136 [json_name="SelectStmt"]; SetOperationStmt set_operation_stmt = 137 [json_name="SetOperationStmt"]; ReturnStmt return_stmt = 138 [json_name="ReturnStmt"]; PLAssignStmt plassign_stmt = 139 [json_name="PLAssignStmt"]; CreateSchemaStmt create_schema_stmt = 140 [json_name="CreateSchemaStmt"]; AlterTableStmt alter_table_stmt = 141 [json_name="AlterTableStmt"]; ReplicaIdentityStmt replica_identity_stmt = 142 [json_name="ReplicaIdentityStmt"]; AlterTableCmd alter_table_cmd = 143 [json_name="AlterTableCmd"]; AlterCollationStmt alter_collation_stmt = 144 [json_name="AlterCollationStmt"]; AlterDomainStmt alter_domain_stmt = 145 [json_name="AlterDomainStmt"]; GrantStmt grant_stmt = 146 [json_name="GrantStmt"]; ObjectWithArgs object_with_args = 147 [json_name="ObjectWithArgs"]; AccessPriv access_priv = 148 [json_name="AccessPriv"]; GrantRoleStmt grant_role_stmt = 149 [json_name="GrantRoleStmt"]; AlterDefaultPrivilegesStmt alter_default_privileges_stmt = 150 [json_name="AlterDefaultPrivilegesStmt"]; CopyStmt copy_stmt = 151 [json_name="CopyStmt"]; VariableSetStmt variable_set_stmt = 152 [json_name="VariableSetStmt"]; VariableShowStmt variable_show_stmt = 153 [json_name="VariableShowStmt"]; CreateStmt create_stmt = 154 [json_name="CreateStmt"]; Constraint constraint = 155 [json_name="Constraint"]; CreateTableSpaceStmt create_table_space_stmt = 156 [json_name="CreateTableSpaceStmt"]; DropTableSpaceStmt drop_table_space_stmt = 157 [json_name="DropTableSpaceStmt"]; AlterTableSpaceOptionsStmt alter_table_space_options_stmt = 158 [json_name="AlterTableSpaceOptionsStmt"]; AlterTableMoveAllStmt alter_table_move_all_stmt = 159 [json_name="AlterTableMoveAllStmt"]; CreateExtensionStmt create_extension_stmt = 160 [json_name="CreateExtensionStmt"]; AlterExtensionStmt alter_extension_stmt = 161 [json_name="AlterExtensionStmt"]; AlterExtensionContentsStmt alter_extension_contents_stmt = 162 [json_name="AlterExtensionContentsStmt"]; CreateFdwStmt create_fdw_stmt = 163 [json_name="CreateFdwStmt"]; AlterFdwStmt alter_fdw_stmt = 164 [json_name="AlterFdwStmt"]; CreateForeignServerStmt create_foreign_server_stmt = 165 [json_name="CreateForeignServerStmt"]; AlterForeignServerStmt alter_foreign_server_stmt = 166 [json_name="AlterForeignServerStmt"]; CreateForeignTableStmt create_foreign_table_stmt = 167 [json_name="CreateForeignTableStmt"]; CreateUserMappingStmt create_user_mapping_stmt = 168 [json_name="CreateUserMappingStmt"]; AlterUserMappingStmt alter_user_mapping_stmt = 169 [json_name="AlterUserMappingStmt"]; DropUserMappingStmt drop_user_mapping_stmt = 170 [json_name="DropUserMappingStmt"]; ImportForeignSchemaStmt import_foreign_schema_stmt = 171 [json_name="ImportForeignSchemaStmt"]; CreatePolicyStmt create_policy_stmt = 172 [json_name="CreatePolicyStmt"]; AlterPolicyStmt alter_policy_stmt = 173 [json_name="AlterPolicyStmt"]; CreateAmStmt create_am_stmt = 174 [json_name="CreateAmStmt"]; CreateTrigStmt create_trig_stmt = 175 [json_name="CreateTrigStmt"]; CreateEventTrigStmt create_event_trig_stmt = 176 [json_name="CreateEventTrigStmt"]; AlterEventTrigStmt alter_event_trig_stmt = 177 [json_name="AlterEventTrigStmt"]; CreatePLangStmt create_plang_stmt = 178 [json_name="CreatePLangStmt"]; CreateRoleStmt create_role_stmt = 179 [json_name="CreateRoleStmt"]; AlterRoleStmt alter_role_stmt = 180 [json_name="AlterRoleStmt"]; AlterRoleSetStmt alter_role_set_stmt = 181 [json_name="AlterRoleSetStmt"]; DropRoleStmt drop_role_stmt = 182 [json_name="DropRoleStmt"]; CreateSeqStmt create_seq_stmt = 183 [json_name="CreateSeqStmt"]; AlterSeqStmt alter_seq_stmt = 184 [json_name="AlterSeqStmt"]; DefineStmt define_stmt = 185 [json_name="DefineStmt"]; CreateDomainStmt create_domain_stmt = 186 [json_name="CreateDomainStmt"]; CreateOpClassStmt create_op_class_stmt = 187 [json_name="CreateOpClassStmt"]; CreateOpClassItem create_op_class_item = 188 [json_name="CreateOpClassItem"]; CreateOpFamilyStmt create_op_family_stmt = 189 [json_name="CreateOpFamilyStmt"]; AlterOpFamilyStmt alter_op_family_stmt = 190 [json_name="AlterOpFamilyStmt"]; DropStmt drop_stmt = 191 [json_name="DropStmt"]; TruncateStmt truncate_stmt = 192 [json_name="TruncateStmt"]; CommentStmt comment_stmt = 193 [json_name="CommentStmt"]; SecLabelStmt sec_label_stmt = 194 [json_name="SecLabelStmt"]; DeclareCursorStmt declare_cursor_stmt = 195 [json_name="DeclareCursorStmt"]; ClosePortalStmt close_portal_stmt = 196 [json_name="ClosePortalStmt"]; FetchStmt fetch_stmt = 197 [json_name="FetchStmt"]; IndexStmt index_stmt = 198 [json_name="IndexStmt"]; CreateStatsStmt create_stats_stmt = 199 [json_name="CreateStatsStmt"]; StatsElem stats_elem = 200 [json_name="StatsElem"]; AlterStatsStmt alter_stats_stmt = 201 [json_name="AlterStatsStmt"]; CreateFunctionStmt create_function_stmt = 202 [json_name="CreateFunctionStmt"]; FunctionParameter function_parameter = 203 [json_name="FunctionParameter"]; AlterFunctionStmt alter_function_stmt = 204 [json_name="AlterFunctionStmt"]; DoStmt do_stmt = 205 [json_name="DoStmt"]; InlineCodeBlock inline_code_block = 206 [json_name="InlineCodeBlock"]; CallStmt call_stmt = 207 [json_name="CallStmt"]; CallContext call_context = 208 [json_name="CallContext"]; RenameStmt rename_stmt = 209 [json_name="RenameStmt"]; AlterObjectDependsStmt alter_object_depends_stmt = 210 [json_name="AlterObjectDependsStmt"]; AlterObjectSchemaStmt alter_object_schema_stmt = 211 [json_name="AlterObjectSchemaStmt"]; AlterOwnerStmt alter_owner_stmt = 212 [json_name="AlterOwnerStmt"]; AlterOperatorStmt alter_operator_stmt = 213 [json_name="AlterOperatorStmt"]; AlterTypeStmt alter_type_stmt = 214 [json_name="AlterTypeStmt"]; RuleStmt rule_stmt = 215 [json_name="RuleStmt"]; NotifyStmt notify_stmt = 216 [json_name="NotifyStmt"]; ListenStmt listen_stmt = 217 [json_name="ListenStmt"]; UnlistenStmt unlisten_stmt = 218 [json_name="UnlistenStmt"]; TransactionStmt transaction_stmt = 219 [json_name="TransactionStmt"]; CompositeTypeStmt composite_type_stmt = 220 [json_name="CompositeTypeStmt"]; CreateEnumStmt create_enum_stmt = 221 [json_name="CreateEnumStmt"]; CreateRangeStmt create_range_stmt = 222 [json_name="CreateRangeStmt"]; AlterEnumStmt alter_enum_stmt = 223 [json_name="AlterEnumStmt"]; ViewStmt view_stmt = 224 [json_name="ViewStmt"]; LoadStmt load_stmt = 225 [json_name="LoadStmt"]; CreatedbStmt createdb_stmt = 226 [json_name="CreatedbStmt"]; AlterDatabaseStmt alter_database_stmt = 227 [json_name="AlterDatabaseStmt"]; AlterDatabaseRefreshCollStmt alter_database_refresh_coll_stmt = 228 [json_name="AlterDatabaseRefreshCollStmt"]; AlterDatabaseSetStmt alter_database_set_stmt = 229 [json_name="AlterDatabaseSetStmt"]; DropdbStmt dropdb_stmt = 230 [json_name="DropdbStmt"]; AlterSystemStmt alter_system_stmt = 231 [json_name="AlterSystemStmt"]; ClusterStmt cluster_stmt = 232 [json_name="ClusterStmt"]; VacuumStmt vacuum_stmt = 233 [json_name="VacuumStmt"]; VacuumRelation vacuum_relation = 234 [json_name="VacuumRelation"]; ExplainStmt explain_stmt = 235 [json_name="ExplainStmt"]; CreateTableAsStmt create_table_as_stmt = 236 [json_name="CreateTableAsStmt"]; RefreshMatViewStmt refresh_mat_view_stmt = 237 [json_name="RefreshMatViewStmt"]; CheckPointStmt check_point_stmt = 238 [json_name="CheckPointStmt"]; DiscardStmt discard_stmt = 239 [json_name="DiscardStmt"]; LockStmt lock_stmt = 240 [json_name="LockStmt"]; ConstraintsSetStmt constraints_set_stmt = 241 [json_name="ConstraintsSetStmt"]; ReindexStmt reindex_stmt = 242 [json_name="ReindexStmt"]; CreateConversionStmt create_conversion_stmt = 243 [json_name="CreateConversionStmt"]; CreateCastStmt create_cast_stmt = 244 [json_name="CreateCastStmt"]; CreateTransformStmt create_transform_stmt = 245 [json_name="CreateTransformStmt"]; PrepareStmt prepare_stmt = 246 [json_name="PrepareStmt"]; ExecuteStmt execute_stmt = 247 [json_name="ExecuteStmt"]; DeallocateStmt deallocate_stmt = 248 [json_name="DeallocateStmt"]; DropOwnedStmt drop_owned_stmt = 249 [json_name="DropOwnedStmt"]; ReassignOwnedStmt reassign_owned_stmt = 250 [json_name="ReassignOwnedStmt"]; AlterTSDictionaryStmt alter_tsdictionary_stmt = 251 [json_name="AlterTSDictionaryStmt"]; AlterTSConfigurationStmt alter_tsconfiguration_stmt = 252 [json_name="AlterTSConfigurationStmt"]; PublicationTable publication_table = 253 [json_name="PublicationTable"]; PublicationObjSpec publication_obj_spec = 254 [json_name="PublicationObjSpec"]; CreatePublicationStmt create_publication_stmt = 255 [json_name="CreatePublicationStmt"]; AlterPublicationStmt alter_publication_stmt = 256 [json_name="AlterPublicationStmt"]; CreateSubscriptionStmt create_subscription_stmt = 257 [json_name="CreateSubscriptionStmt"]; AlterSubscriptionStmt alter_subscription_stmt = 258 [json_name="AlterSubscriptionStmt"]; DropSubscriptionStmt drop_subscription_stmt = 259 [json_name="DropSubscriptionStmt"]; Integer integer = 260 [json_name="Integer"]; Float float = 261 [json_name="Float"]; Boolean boolean = 262 [json_name="Boolean"]; String string = 263 [json_name="String"]; BitString bit_string = 264 [json_name="BitString"]; List list = 265 [json_name="List"]; IntList int_list = 266 [json_name="IntList"]; OidList oid_list = 267 [json_name="OidList"]; A_Const a_const = 268 [json_name="A_Const"]; } } message Integer { int32 ival = 1; /* machine integer */ } message Float { string fval = 1; /* string */ } message Boolean { bool boolval = 1; } message String { string sval = 1; /* string */ } message BitString { string bsval = 1; /* string */ } message List { repeated Node items = 1; } message OidList { repeated Node items = 1; } message IntList { repeated Node items = 1; } message A_Const { oneof val { Integer ival = 1; Float fval = 2; Boolean boolval = 3; String sval = 4; BitString bsval = 5; } bool isnull = 10; int32 location = 11; } 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 { TableFuncType functype = 1 [json_name="functype"]; repeated Node ns_uris = 2 [json_name="ns_uris"]; repeated Node ns_names = 3 [json_name="ns_names"]; Node docexpr = 4 [json_name="docexpr"]; Node rowexpr = 5 [json_name="rowexpr"]; repeated Node colnames = 6 [json_name="colnames"]; repeated Node coltypes = 7 [json_name="coltypes"]; repeated Node coltypmods = 8 [json_name="coltypmods"]; repeated Node colcollations = 9 [json_name="colcollations"]; repeated Node colexprs = 10 [json_name="colexprs"]; repeated Node coldefexprs = 11 [json_name="coldefexprs"]; repeated Node colvalexprs = 12 [json_name="colvalexprs"]; repeated Node passingvalexprs = 13 [json_name="passingvalexprs"]; repeated uint64 notnulls = 14 [json_name="notnulls"]; Node plan = 15 [json_name="plan"]; int32 ordinalitycol = 16 [json_name="ordinalitycol"]; int32 location = 17 [json_name="location"]; } 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 Var { Node xpr = 1 [json_name="xpr"]; int32 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"]; repeated uint64 varnullingrels = 7 [json_name="varnullingrels"]; uint32 varlevelsup = 8 [json_name="varlevelsup"]; int32 location = 9 [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"]; repeated Node aggargtypes = 6 [json_name="aggargtypes"]; repeated Node aggdirectargs = 7 [json_name="aggdirectargs"]; repeated Node args = 8 [json_name="args"]; repeated Node aggorder = 9 [json_name="aggorder"]; repeated Node aggdistinct = 10 [json_name="aggdistinct"]; Node aggfilter = 11 [json_name="aggfilter"]; bool aggstar = 12 [json_name="aggstar"]; bool aggvariadic = 13 [json_name="aggvariadic"]; string aggkind = 14 [json_name="aggkind"]; uint32 agglevelsup = 15 [json_name="agglevelsup"]; AggSplit aggsplit = 16 [json_name="aggsplit"]; int32 aggno = 17 [json_name="aggno"]; int32 aggtransno = 18 [json_name="aggtransno"]; int32 location = 19 [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"]; uint32 agglevelsup = 4 [json_name="agglevelsup"]; int32 location = 5 [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"]; repeated Node run_condition = 8 [json_name="runCondition"]; uint32 winref = 9 [json_name="winref"]; bool winstar = 10 [json_name="winstar"]; bool winagg = 11 [json_name="winagg"]; int32 location = 12 [json_name="location"]; } message WindowFuncRunCondition { Node xpr = 1 [json_name="xpr"]; uint32 opno = 2 [json_name="opno"]; uint32 inputcollid = 3 [json_name="inputcollid"]; bool wfunc_left = 4 [json_name="wfunc_left"]; Node arg = 5 [json_name="arg"]; } message MergeSupportFunc { Node xpr = 1 [json_name="xpr"]; uint32 msftype = 2 [json_name="msftype"]; uint32 msfcollid = 3 [json_name="msfcollid"]; int32 location = 4 [json_name="location"]; } message SubscriptingRef { Node xpr = 1 [json_name="xpr"]; uint32 refcontainertype = 2 [json_name="refcontainertype"]; uint32 refelemtype = 3 [json_name="refelemtype"]; uint32 refrestype = 4 [json_name="refrestype"]; int32 reftypmod = 5 [json_name="reftypmod"]; uint32 refcollid = 6 [json_name="refcollid"]; repeated Node refupperindexpr = 7 [json_name="refupperindexpr"]; repeated Node reflowerindexpr = 8 [json_name="reflowerindexpr"]; Node refexpr = 9 [json_name="refexpr"]; Node refassgnexpr = 10 [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 opresulttype = 3 [json_name="opresulttype"]; bool opretset = 4 [json_name="opretset"]; uint32 opcollid = 5 [json_name="opcollid"]; uint32 inputcollid = 6 [json_name="inputcollid"]; repeated Node args = 7 [json_name="args"]; int32 location = 8 [json_name="location"]; } message DistinctExpr { Node xpr = 1 [json_name="xpr"]; uint32 opno = 2 [json_name="opno"]; uint32 opresulttype = 3 [json_name="opresulttype"]; bool opretset = 4 [json_name="opretset"]; uint32 opcollid = 5 [json_name="opcollid"]; uint32 inputcollid = 6 [json_name="inputcollid"]; repeated Node args = 7 [json_name="args"]; int32 location = 8 [json_name="location"]; } message NullIfExpr { Node xpr = 1 [json_name="xpr"]; uint32 opno = 2 [json_name="opno"]; uint32 opresulttype = 3 [json_name="opresulttype"]; bool opretset = 4 [json_name="opretset"]; uint32 opcollid = 5 [json_name="opcollid"]; uint32 inputcollid = 6 [json_name="inputcollid"]; repeated Node args = 7 [json_name="args"]; int32 location = 8 [json_name="location"]; } message ScalarArrayOpExpr { Node xpr = 1 [json_name="xpr"]; uint32 opno = 2 [json_name="opno"]; bool use_or = 3 [json_name="useOr"]; uint32 inputcollid = 4 [json_name="inputcollid"]; repeated Node args = 5 [json_name="args"]; int32 location = 6 [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"]; bool indent = 8 [json_name="indent"]; uint32 type = 9 [json_name="type"]; int32 typmod = 10 [json_name="typmod"]; int32 location = 11 [json_name="location"]; } message JsonFormat { JsonFormatType format_type = 1 [json_name="format_type"]; JsonEncoding encoding = 2 [json_name="encoding"]; int32 location = 3 [json_name="location"]; } message JsonReturning { JsonFormat format = 1 [json_name="format"]; uint32 typid = 2 [json_name="typid"]; int32 typmod = 3 [json_name="typmod"]; } message JsonValueExpr { Node raw_expr = 1 [json_name="raw_expr"]; Node formatted_expr = 2 [json_name="formatted_expr"]; JsonFormat format = 3 [json_name="format"]; } message JsonConstructorExpr { Node xpr = 1 [json_name="xpr"]; JsonConstructorType type = 2 [json_name="type"]; repeated Node args = 3 [json_name="args"]; Node func = 4 [json_name="func"]; Node coercion = 5 [json_name="coercion"]; JsonReturning returning = 6 [json_name="returning"]; bool absent_on_null = 7 [json_name="absent_on_null"]; bool unique = 8 [json_name="unique"]; int32 location = 9 [json_name="location"]; } message JsonIsPredicate { Node expr = 1 [json_name="expr"]; JsonFormat format = 2 [json_name="format"]; JsonValueType item_type = 3 [json_name="item_type"]; bool unique_keys = 4 [json_name="unique_keys"]; int32 location = 5 [json_name="location"]; } message JsonBehavior { JsonBehaviorType btype = 1 [json_name="btype"]; Node expr = 2 [json_name="expr"]; bool coerce = 3 [json_name="coerce"]; int32 location = 4 [json_name="location"]; } message JsonExpr { Node xpr = 1 [json_name="xpr"]; JsonExprOp op = 2 [json_name="op"]; string column_name = 3 [json_name="column_name"]; Node formatted_expr = 4 [json_name="formatted_expr"]; JsonFormat format = 5 [json_name="format"]; Node path_spec = 6 [json_name="path_spec"]; JsonReturning returning = 7 [json_name="returning"]; repeated Node passing_names = 8 [json_name="passing_names"]; repeated Node passing_values = 9 [json_name="passing_values"]; JsonBehavior on_empty = 10 [json_name="on_empty"]; JsonBehavior on_error = 11 [json_name="on_error"]; bool use_io_coercion = 12 [json_name="use_io_coercion"]; bool use_json_coercion = 13 [json_name="use_json_coercion"]; JsonWrapper wrapper = 14 [json_name="wrapper"]; bool omit_quotes = 15 [json_name="omit_quotes"]; uint32 collation = 16 [json_name="collation"]; int32 location = 17 [json_name="location"]; } message JsonTablePath { string name = 1 [json_name="name"]; } message JsonTablePathScan { Node plan = 1 [json_name="plan"]; JsonTablePath path = 2 [json_name="path"]; bool error_on_error = 3 [json_name="errorOnError"]; Node child = 4 [json_name="child"]; int32 col_min = 5 [json_name="colMin"]; int32 col_max = 6 [json_name="colMax"]; } message JsonTableSiblingJoin { Node plan = 1 [json_name="plan"]; Node lplan = 2 [json_name="lplan"]; Node rplan = 3 [json_name="rplan"]; } 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 MergeAction { MergeMatchKind match_kind = 1 [json_name="matchKind"]; CmdType command_type = 2 [json_name="commandType"]; OverridingKind override = 3 [json_name="override"]; Node qual = 4 [json_name="qual"]; repeated Node target_list = 5 [json_name="targetList"]; repeated Node update_colnos = 6 [json_name="updateColnos"]; } 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"]; Alias join_using_alias = 6 [json_name="join_using_alias"]; Node quals = 7 [json_name="quals"]; Alias alias = 8 [json_name="alias"]; int32 rtindex = 9 [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 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"]; bool is_return = 15 [json_name="isReturn"]; repeated Node cte_list = 16 [json_name="cteList"]; repeated Node rtable = 17 [json_name="rtable"]; repeated Node rteperminfos = 18 [json_name="rteperminfos"]; FromExpr jointree = 19 [json_name="jointree"]; repeated Node merge_action_list = 20 [json_name="mergeActionList"]; int32 merge_target_relation = 21 [json_name="mergeTargetRelation"]; Node merge_join_condition = 22 [json_name="mergeJoinCondition"]; repeated Node target_list = 23 [json_name="targetList"]; OverridingKind override = 24 [json_name="override"]; OnConflictExpr on_conflict = 25 [json_name="onConflict"]; repeated Node returning_list = 26 [json_name="returningList"]; repeated Node group_clause = 27 [json_name="groupClause"]; bool group_distinct = 28 [json_name="groupDistinct"]; repeated Node grouping_sets = 29 [json_name="groupingSets"]; Node having_qual = 30 [json_name="havingQual"]; repeated Node window_clause = 31 [json_name="windowClause"]; repeated Node distinct_clause = 32 [json_name="distinctClause"]; repeated Node sort_clause = 33 [json_name="sortClause"]; Node limit_offset = 34 [json_name="limitOffset"]; Node limit_count = 35 [json_name="limitCount"]; LimitOption limit_option = 36 [json_name="limitOption"]; repeated Node row_marks = 37 [json_name="rowMarks"]; Node set_operations = 38 [json_name="setOperations"]; repeated Node constraint_deps = 39 [json_name="constraintDeps"]; repeated Node with_check_options = 40 [json_name="withCheckOptions"]; int32 stmt_location = 41 [json_name="stmt_location"]; int32 stmt_len = 42 [json_name="stmt_len"]; } 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 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_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 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 RoleSpec { RoleSpecType roletype = 1 [json_name="roletype"]; string rolename = 2 [json_name="rolename"]; int32 location = 3 [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"]; WindowDef over = 5 [json_name="over"]; bool agg_within_group = 6 [json_name="agg_within_group"]; bool agg_star = 7 [json_name="agg_star"]; bool agg_distinct = 8 [json_name="agg_distinct"]; bool func_variadic = 9 [json_name="func_variadic"]; CoercionForm funcformat = 10 [json_name="funcformat"]; int32 location = 11 [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 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 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 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 ColumnDef { string colname = 1 [json_name="colname"]; TypeName type_name = 2 [json_name="typeName"]; string compression = 3 [json_name="compression"]; int32 inhcount = 4 [json_name="inhcount"]; bool is_local = 5 [json_name="is_local"]; bool is_not_null = 6 [json_name="is_not_null"]; bool is_from_type = 7 [json_name="is_from_type"]; string storage = 8 [json_name="storage"]; string storage_name = 9 [json_name="storage_name"]; Node raw_default = 10 [json_name="raw_default"]; Node cooked_default = 11 [json_name="cooked_default"]; string identity = 12 [json_name="identity"]; RangeVar identity_sequence = 13 [json_name="identitySequence"]; string generated = 14 [json_name="generated"]; CollateClause coll_clause = 15 [json_name="collClause"]; uint32 coll_oid = 16 [json_name="collOid"]; repeated Node constraints = 17 [json_name="constraints"]; repeated Node fdwoptions = 18 [json_name="fdwoptions"]; int32 location = 19 [json_name="location"]; } message TableLikeClause { RangeVar relation = 1 [json_name="relation"]; uint32 options = 2 [json_name="options"]; uint32 relation_oid = 3 [json_name="relationOid"]; } 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 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 LockingClause { repeated Node locked_rels = 1 [json_name="lockedRels"]; LockClauseStrength strength = 2 [json_name="strength"]; LockWaitPolicy wait_policy = 3 [json_name="waitPolicy"]; } message XmlSerialize { XmlOptionType xmloption = 1 [json_name="xmloption"]; Node expr = 2 [json_name="expr"]; TypeName type_name = 3 [json_name="typeName"]; bool indent = 4 [json_name="indent"]; int32 location = 5 [json_name="location"]; } 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 { PartitionStrategy 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 SinglePartitionSpec { } message PartitionCmd { RangeVar name = 1 [json_name="name"]; PartitionBoundSpec bound = 2 [json_name="bound"]; bool concurrent = 3 [json_name="concurrent"]; } message RangeTblEntry { Alias alias = 1 [json_name="alias"]; Alias eref = 2 [json_name="eref"]; RTEKind rtekind = 3 [json_name="rtekind"]; uint32 relid = 4 [json_name="relid"]; bool inh = 5 [json_name="inh"]; string relkind = 6 [json_name="relkind"]; int32 rellockmode = 7 [json_name="rellockmode"]; uint32 perminfoindex = 8 [json_name="perminfoindex"]; TableSampleClause tablesample = 9 [json_name="tablesample"]; Query subquery = 10 [json_name="subquery"]; bool security_barrier = 11 [json_name="security_barrier"]; JoinType jointype = 12 [json_name="jointype"]; int32 joinmergedcols = 13 [json_name="joinmergedcols"]; repeated Node joinaliasvars = 14 [json_name="joinaliasvars"]; repeated Node joinleftcols = 15 [json_name="joinleftcols"]; repeated Node joinrightcols = 16 [json_name="joinrightcols"]; Alias join_using_alias = 17 [json_name="join_using_alias"]; repeated Node functions = 18 [json_name="functions"]; bool funcordinality = 19 [json_name="funcordinality"]; TableFunc tablefunc = 20 [json_name="tablefunc"]; repeated Node values_lists = 21 [json_name="values_lists"]; string ctename = 22 [json_name="ctename"]; uint32 ctelevelsup = 23 [json_name="ctelevelsup"]; bool self_reference = 24 [json_name="self_reference"]; repeated Node coltypes = 25 [json_name="coltypes"]; repeated Node coltypmods = 26 [json_name="coltypmods"]; repeated Node colcollations = 27 [json_name="colcollations"]; string enrname = 28 [json_name="enrname"]; double enrtuples = 29 [json_name="enrtuples"]; bool lateral = 30 [json_name="lateral"]; bool in_from_cl = 31 [json_name="inFromCl"]; repeated Node security_quals = 32 [json_name="securityQuals"]; } message RTEPermissionInfo { uint32 relid = 1 [json_name="relid"]; bool inh = 2 [json_name="inh"]; uint64 required_perms = 3 [json_name="requiredPerms"]; uint32 check_as_user = 4 [json_name="checkAsUser"]; repeated uint64 selected_cols = 5 [json_name="selectedCols"]; repeated uint64 inserted_cols = 6 [json_name="insertedCols"]; repeated uint64 updated_cols = 7 [json_name="updatedCols"]; } 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 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 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 CTESearchClause { repeated Node search_col_list = 1 [json_name="search_col_list"]; bool search_breadth_first = 2 [json_name="search_breadth_first"]; string search_seq_column = 3 [json_name="search_seq_column"]; int32 location = 4 [json_name="location"]; } message CTECycleClause { repeated Node cycle_col_list = 1 [json_name="cycle_col_list"]; string cycle_mark_column = 2 [json_name="cycle_mark_column"]; Node cycle_mark_value = 3 [json_name="cycle_mark_value"]; Node cycle_mark_default = 4 [json_name="cycle_mark_default"]; string cycle_path_column = 5 [json_name="cycle_path_column"]; int32 location = 6 [json_name="location"]; uint32 cycle_mark_type = 7 [json_name="cycle_mark_type"]; int32 cycle_mark_typmod = 8 [json_name="cycle_mark_typmod"]; uint32 cycle_mark_collation = 9 [json_name="cycle_mark_collation"]; uint32 cycle_mark_neop = 10 [json_name="cycle_mark_neop"]; } 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"]; CTESearchClause search_clause = 5 [json_name="search_clause"]; CTECycleClause cycle_clause = 6 [json_name="cycle_clause"]; int32 location = 7 [json_name="location"]; bool cterecursive = 8 [json_name="cterecursive"]; int32 cterefcount = 9 [json_name="cterefcount"]; repeated Node ctecolnames = 10 [json_name="ctecolnames"]; repeated Node ctecoltypes = 11 [json_name="ctecoltypes"]; repeated Node ctecoltypmods = 12 [json_name="ctecoltypmods"]; repeated Node ctecolcollations = 13 [json_name="ctecolcollations"]; } message MergeWhenClause { MergeMatchKind match_kind = 1 [json_name="matchKind"]; CmdType command_type = 2 [json_name="commandType"]; OverridingKind override = 3 [json_name="override"]; Node condition = 4 [json_name="condition"]; repeated Node target_list = 5 [json_name="targetList"]; repeated Node values = 6 [json_name="values"]; } message TriggerTransition { string name = 1 [json_name="name"]; bool is_new = 2 [json_name="isNew"]; bool is_table = 3 [json_name="isTable"]; } message JsonOutput { TypeName type_name = 1 [json_name="typeName"]; JsonReturning returning = 2 [json_name="returning"]; } message JsonArgument { JsonValueExpr val = 1 [json_name="val"]; string name = 2 [json_name="name"]; } message JsonFuncExpr { JsonExprOp op = 1 [json_name="op"]; string column_name = 2 [json_name="column_name"]; JsonValueExpr context_item = 3 [json_name="context_item"]; Node pathspec = 4 [json_name="pathspec"]; repeated Node passing = 5 [json_name="passing"]; JsonOutput output = 6 [json_name="output"]; JsonBehavior on_empty = 7 [json_name="on_empty"]; JsonBehavior on_error = 8 [json_name="on_error"]; JsonWrapper wrapper = 9 [json_name="wrapper"]; JsonQuotes quotes = 10 [json_name="quotes"]; int32 location = 11 [json_name="location"]; } message JsonTablePathSpec { Node string = 1 [json_name="string"]; string name = 2 [json_name="name"]; int32 name_location = 3 [json_name="name_location"]; int32 location = 4 [json_name="location"]; } message JsonTable { JsonValueExpr context_item = 1 [json_name="context_item"]; JsonTablePathSpec pathspec = 2 [json_name="pathspec"]; repeated Node passing = 3 [json_name="passing"]; repeated Node columns = 4 [json_name="columns"]; JsonBehavior on_error = 5 [json_name="on_error"]; Alias alias = 6 [json_name="alias"]; bool lateral = 7 [json_name="lateral"]; int32 location = 8 [json_name="location"]; } message JsonTableColumn { JsonTableColumnType coltype = 1 [json_name="coltype"]; string name = 2 [json_name="name"]; TypeName type_name = 3 [json_name="typeName"]; JsonTablePathSpec pathspec = 4 [json_name="pathspec"]; JsonFormat format = 5 [json_name="format"]; JsonWrapper wrapper = 6 [json_name="wrapper"]; JsonQuotes quotes = 7 [json_name="quotes"]; repeated Node columns = 8 [json_name="columns"]; JsonBehavior on_empty = 9 [json_name="on_empty"]; JsonBehavior on_error = 10 [json_name="on_error"]; int32 location = 11 [json_name="location"]; } message JsonKeyValue { Node key = 1 [json_name="key"]; JsonValueExpr value = 2 [json_name="value"]; } message JsonParseExpr { JsonValueExpr expr = 1 [json_name="expr"]; JsonOutput output = 2 [json_name="output"]; bool unique_keys = 3 [json_name="unique_keys"]; int32 location = 4 [json_name="location"]; } message JsonScalarExpr { Node expr = 1 [json_name="expr"]; JsonOutput output = 2 [json_name="output"]; int32 location = 3 [json_name="location"]; } message JsonSerializeExpr { JsonValueExpr expr = 1 [json_name="expr"]; JsonOutput output = 2 [json_name="output"]; int32 location = 3 [json_name="location"]; } message JsonObjectConstructor { repeated Node exprs = 1 [json_name="exprs"]; JsonOutput output = 2 [json_name="output"]; bool absent_on_null = 3 [json_name="absent_on_null"]; bool unique = 4 [json_name="unique"]; int32 location = 5 [json_name="location"]; } message JsonArrayConstructor { repeated Node exprs = 1 [json_name="exprs"]; JsonOutput output = 2 [json_name="output"]; bool absent_on_null = 3 [json_name="absent_on_null"]; int32 location = 4 [json_name="location"]; } message JsonArrayQueryConstructor { Node query = 1 [json_name="query"]; JsonOutput output = 2 [json_name="output"]; JsonFormat format = 3 [json_name="format"]; bool absent_on_null = 4 [json_name="absent_on_null"]; int32 location = 5 [json_name="location"]; } message JsonAggConstructor { JsonOutput output = 1 [json_name="output"]; Node agg_filter = 2 [json_name="agg_filter"]; repeated Node agg_order = 3 [json_name="agg_order"]; WindowDef over = 4 [json_name="over"]; int32 location = 5 [json_name="location"]; } message JsonObjectAgg { JsonAggConstructor constructor = 1 [json_name="constructor"]; JsonKeyValue arg = 2 [json_name="arg"]; bool absent_on_null = 3 [json_name="absent_on_null"]; bool unique = 4 [json_name="unique"]; } message JsonArrayAgg { JsonAggConstructor constructor = 1 [json_name="constructor"]; JsonValueExpr arg = 2 [json_name="arg"]; bool absent_on_null = 3 [json_name="absent_on_null"]; } 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 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 MergeStmt { RangeVar relation = 1 [json_name="relation"]; Node source_relation = 2 [json_name="sourceRelation"]; Node join_condition = 3 [json_name="joinCondition"]; repeated Node merge_when_clauses = 4 [json_name="mergeWhenClauses"]; 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"]; bool group_distinct = 7 [json_name="groupDistinct"]; Node having_clause = 8 [json_name="havingClause"]; repeated Node window_clause = 9 [json_name="windowClause"]; repeated Node values_lists = 10 [json_name="valuesLists"]; repeated Node sort_clause = 11 [json_name="sortClause"]; Node limit_offset = 12 [json_name="limitOffset"]; Node limit_count = 13 [json_name="limitCount"]; LimitOption limit_option = 14 [json_name="limitOption"]; repeated Node locking_clause = 15 [json_name="lockingClause"]; WithClause with_clause = 16 [json_name="withClause"]; SetOperation op = 17 [json_name="op"]; bool all = 18 [json_name="all"]; SelectStmt larg = 19 [json_name="larg"]; SelectStmt rarg = 20 [json_name="rarg"]; } 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 ReturnStmt { Node returnval = 1 [json_name="returnval"]; } message PLAssignStmt { string name = 1 [json_name="name"]; repeated Node indirection = 2 [json_name="indirection"]; int32 nnames = 3 [json_name="nnames"]; SelectStmt val = 4 [json_name="val"]; int32 location = 5 [json_name="location"]; } 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 AlterTableStmt { RangeVar relation = 1 [json_name="relation"]; repeated Node cmds = 2 [json_name="cmds"]; ObjectType objtype = 3 [json_name="objtype"]; bool missing_ok = 4 [json_name="missing_ok"]; } message ReplicaIdentityStmt { string identity_type = 1 [json_name="identity_type"]; string name = 2 [json_name="name"]; } 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"]; bool recurse = 8 [json_name="recurse"]; } message AlterCollationStmt { repeated Node collname = 1 [json_name="collname"]; } 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 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"]; RoleSpec grantor = 8 [json_name="grantor"]; DropBehavior behavior = 9 [json_name="behavior"]; } message ObjectWithArgs { repeated Node objname = 1 [json_name="objname"]; repeated Node objargs = 2 [json_name="objargs"]; repeated Node objfuncargs = 3 [json_name="objfuncargs"]; bool args_unspecified = 4 [json_name="args_unspecified"]; } message AccessPriv { string priv_name = 1 [json_name="priv_name"]; repeated Node cols = 2 [json_name="cols"]; } 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"]; repeated Node opt = 4 [json_name="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 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 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 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 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"]; bool skip_validation = 5 [json_name="skip_validation"]; bool initially_valid = 6 [json_name="initially_valid"]; bool is_no_inherit = 7 [json_name="is_no_inherit"]; Node raw_expr = 8 [json_name="raw_expr"]; string cooked_expr = 9 [json_name="cooked_expr"]; string generated_when = 10 [json_name="generated_when"]; int32 inhcount = 11 [json_name="inhcount"]; bool nulls_not_distinct = 12 [json_name="nulls_not_distinct"]; repeated Node keys = 13 [json_name="keys"]; repeated Node including = 14 [json_name="including"]; repeated Node exclusions = 15 [json_name="exclusions"]; repeated Node options = 16 [json_name="options"]; string indexname = 17 [json_name="indexname"]; string indexspace = 18 [json_name="indexspace"]; bool reset_default_tblspc = 19 [json_name="reset_default_tblspc"]; string access_method = 20 [json_name="access_method"]; Node where_clause = 21 [json_name="where_clause"]; RangeVar pktable = 22 [json_name="pktable"]; repeated Node fk_attrs = 23 [json_name="fk_attrs"]; repeated Node pk_attrs = 24 [json_name="pk_attrs"]; string fk_matchtype = 25 [json_name="fk_matchtype"]; string fk_upd_action = 26 [json_name="fk_upd_action"]; string fk_del_action = 27 [json_name="fk_del_action"]; repeated Node fk_del_set_cols = 28 [json_name="fk_del_set_cols"]; repeated Node old_conpfeqop = 29 [json_name="old_conpfeqop"]; uint32 old_pktable_oid = 30 [json_name="old_pktable_oid"]; int32 location = 31 [json_name="location"]; } 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 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 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 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 CreateForeignTableStmt { CreateStmt base_stmt = 1 [json_name="base"]; string servername = 2 [json_name="servername"]; repeated Node options = 3 [json_name="options"]; } 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 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 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 CreateAmStmt { string amname = 1 [json_name="amname"]; repeated Node handler_name = 2 [json_name="handler_name"]; string amtype = 3 [json_name="amtype"]; } message CreateTrigStmt { bool replace = 1 [json_name="replace"]; bool isconstraint = 2 [json_name="isconstraint"]; string trigname = 3 [json_name="trigname"]; RangeVar relation = 4 [json_name="relation"]; repeated Node funcname = 5 [json_name="funcname"]; repeated Node args = 6 [json_name="args"]; bool row = 7 [json_name="row"]; int32 timing = 8 [json_name="timing"]; int32 events = 9 [json_name="events"]; repeated Node columns = 10 [json_name="columns"]; Node when_clause = 11 [json_name="whenClause"]; repeated Node transition_rels = 12 [json_name="transitionRels"]; bool deferrable = 13 [json_name="deferrable"]; bool initdeferred = 14 [json_name="initdeferred"]; RangeVar constrrel = 15 [json_name="constrrel"]; } 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 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 AlterRoleSetStmt { RoleSpec role = 1 [json_name="role"]; string database = 2 [json_name="database"]; VariableSetStmt setstmt = 3 [json_name="setstmt"]; } message DropRoleStmt { repeated Node roles = 1 [json_name="roles"]; bool missing_ok = 2 [json_name="missing_ok"]; } 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 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 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 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 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 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 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 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 DeclareCursorStmt { string portalname = 1 [json_name="portalname"]; int32 options = 2 [json_name="options"]; Node query = 3 [json_name="query"]; } message ClosePortalStmt { string portalname = 1 [json_name="portalname"]; } 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_number = 12 [json_name="oldNumber"]; uint32 old_create_subid = 13 [json_name="oldCreateSubid"]; uint32 old_first_relfilelocator_subid = 14 [json_name="oldFirstRelfilelocatorSubid"]; bool unique = 15 [json_name="unique"]; bool nulls_not_distinct = 16 [json_name="nulls_not_distinct"]; bool primary = 17 [json_name="primary"]; bool isconstraint = 18 [json_name="isconstraint"]; bool deferrable = 19 [json_name="deferrable"]; bool initdeferred = 20 [json_name="initdeferred"]; bool transformed = 21 [json_name="transformed"]; bool concurrent = 22 [json_name="concurrent"]; bool if_not_exists = 23 [json_name="if_not_exists"]; bool reset_default_tblspc = 24 [json_name="reset_default_tblspc"]; } 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 transformed = 6 [json_name="transformed"]; bool if_not_exists = 7 [json_name="if_not_exists"]; } message StatsElem { string name = 1 [json_name="name"]; Node expr = 2 [json_name="expr"]; } message AlterStatsStmt { repeated Node defnames = 1 [json_name="defnames"]; Node stxstattarget = 2 [json_name="stxstattarget"]; bool missing_ok = 3 [json_name="missing_ok"]; } 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"]; Node sql_body = 7 [json_name="sql_body"]; } 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 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 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 CallStmt { FuncCall funccall = 1 [json_name="funccall"]; FuncExpr funcexpr = 2 [json_name="funcexpr"]; repeated Node outargs = 3 [json_name="outargs"]; } message CallContext { bool atomic = 1 [json_name="atomic"]; } 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 AlterObjectDependsStmt { ObjectType object_type = 1 [json_name="objectType"]; RangeVar relation = 2 [json_name="relation"]; Node object = 3 [json_name="object"]; String 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 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"]; int32 location = 6 [json_name="location"]; } 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 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 CreatedbStmt { string dbname = 1 [json_name="dbname"]; repeated Node options = 2 [json_name="options"]; } message AlterDatabaseStmt { string dbname = 1 [json_name="dbname"]; repeated Node options = 2 [json_name="options"]; } message AlterDatabaseRefreshCollStmt { string dbname = 1 [json_name="dbname"]; } message AlterDatabaseSetStmt { string dbname = 1 [json_name="dbname"]; VariableSetStmt setstmt = 2 [json_name="setstmt"]; } message DropdbStmt { string dbname = 1 [json_name="dbname"]; bool missing_ok = 2 [json_name="missing_ok"]; repeated Node options = 3 [json_name="options"]; } message AlterSystemStmt { VariableSetStmt setstmt = 1 [json_name="setstmt"]; } message ClusterStmt { RangeVar relation = 1 [json_name="relation"]; string indexname = 2 [json_name="indexname"]; repeated Node params = 3 [json_name="params"]; } 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 VacuumRelation { RangeVar relation = 1 [json_name="relation"]; uint32 oid = 2 [json_name="oid"]; repeated Node va_cols = 3 [json_name="va_cols"]; } 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 objtype = 3 [json_name="objtype"]; bool is_select_into = 4 [json_name="is_select_into"]; bool if_not_exists = 5 [json_name="if_not_exists"]; } message RefreshMatViewStmt { bool concurrent = 1 [json_name="concurrent"]; bool skip_data = 2 [json_name="skipData"]; RangeVar relation = 3 [json_name="relation"]; } message CheckPointStmt { } message DiscardStmt { DiscardMode target = 1 [json_name="target"]; } 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"]; repeated Node params = 4 [json_name="params"]; } 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 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 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"]; bool isall = 2 [json_name="isall"]; int32 location = 3 [json_name="location"]; } 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 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 PublicationTable { RangeVar relation = 1 [json_name="relation"]; Node where_clause = 2 [json_name="whereClause"]; repeated Node columns = 3 [json_name="columns"]; } message PublicationObjSpec { PublicationObjSpecType pubobjtype = 1 [json_name="pubobjtype"]; string name = 2 [json_name="name"]; PublicationTable pubtable = 3 [json_name="pubtable"]; int32 location = 4 [json_name="location"]; } message CreatePublicationStmt { string pubname = 1 [json_name="pubname"]; repeated Node options = 2 [json_name="options"]; repeated Node pubobjects = 3 [json_name="pubobjects"]; 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 pubobjects = 3 [json_name="pubobjects"]; bool for_all_tables = 4 [json_name="for_all_tables"]; AlterPublicationAction action = 5 [json_name="action"]; } 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"]; } 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 SetQuantifier { SET_QUANTIFIER_UNDEFINED = 0; SET_QUANTIFIER_DEFAULT = 1; SET_QUANTIFIER_ALL = 2; SET_QUANTIFIER_DISTINCT = 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_IN = 7; AEXPR_LIKE = 8; AEXPR_ILIKE = 9; AEXPR_SIMILAR = 10; AEXPR_BETWEEN = 11; AEXPR_NOT_BETWEEN = 12; AEXPR_BETWEEN_SYM = 13; AEXPR_NOT_BETWEEN_SYM = 14; } enum RoleSpecType { ROLE_SPEC_TYPE_UNDEFINED = 0; ROLESPEC_CSTRING = 1; ROLESPEC_CURRENT_ROLE = 2; ROLESPEC_CURRENT_USER = 3; ROLESPEC_SESSION_USER = 4; ROLESPEC_PUBLIC = 5; } enum TableLikeOption { TABLE_LIKE_OPTION_UNDEFINED = 0; CREATE_TABLE_LIKE_COMMENTS = 1; CREATE_TABLE_LIKE_COMPRESSION = 2; CREATE_TABLE_LIKE_CONSTRAINTS = 3; CREATE_TABLE_LIKE_DEFAULTS = 4; CREATE_TABLE_LIKE_GENERATED = 5; CREATE_TABLE_LIKE_IDENTITY = 6; CREATE_TABLE_LIKE_INDEXES = 7; CREATE_TABLE_LIKE_STATISTICS = 8; CREATE_TABLE_LIKE_STORAGE = 9; CREATE_TABLE_LIKE_ALL = 10; } enum DefElemAction { DEF_ELEM_ACTION_UNDEFINED = 0; DEFELEM_UNSPEC = 1; DEFELEM_SET = 2; DEFELEM_ADD = 3; DEFELEM_DROP = 4; } enum PartitionStrategy { PARTITION_STRATEGY_UNDEFINED = 0; PARTITION_STRATEGY_LIST = 1; PARTITION_STRATEGY_RANGE = 2; PARTITION_STRATEGY_HASH = 3; } 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; WCO_RLS_MERGE_UPDATE_CHECK = 5; WCO_RLS_MERGE_DELETE_CHECK = 6; } 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 JsonQuotes { JSON_QUOTES_UNDEFINED = 0; JS_QUOTES_UNSPEC = 1; JS_QUOTES_KEEP = 2; JS_QUOTES_OMIT = 3; } enum JsonTableColumnType { JSON_TABLE_COLUMN_TYPE_UNDEFINED = 0; JTC_FOR_ORDINALITY = 1; JTC_REGULAR = 2; JTC_EXISTS = 3; JTC_FORMATTED = 4; JTC_NESTED = 5; } 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_PARAMETER_ACL = 28; OBJECT_POLICY = 29; OBJECT_PROCEDURE = 30; OBJECT_PUBLICATION = 31; OBJECT_PUBLICATION_NAMESPACE = 32; OBJECT_PUBLICATION_REL = 33; OBJECT_ROLE = 34; OBJECT_ROUTINE = 35; OBJECT_RULE = 36; OBJECT_SCHEMA = 37; OBJECT_SEQUENCE = 38; OBJECT_SUBSCRIPTION = 39; OBJECT_STATISTIC_EXT = 40; OBJECT_TABCONSTRAINT = 41; OBJECT_TABLE = 42; OBJECT_TABLESPACE = 43; OBJECT_TRANSFORM = 44; OBJECT_TRIGGER = 45; OBJECT_TSCONFIGURATION = 46; OBJECT_TSDICTIONARY = 47; OBJECT_TSPARSER = 48; OBJECT_TSTEMPLATE = 49; OBJECT_TYPE = 50; OBJECT_USER_MAPPING = 51; OBJECT_VIEW = 52; } enum DropBehavior { DROP_BEHAVIOR_UNDEFINED = 0; DROP_RESTRICT = 1; DROP_CASCADE = 2; } enum AlterTableType { ALTER_TABLE_TYPE_UNDEFINED = 0; AT_AddColumn = 1; AT_AddColumnToView = 2; AT_ColumnDefault = 3; AT_CookedColumnDefault = 4; AT_DropNotNull = 5; AT_SetNotNull = 6; AT_SetExpression = 7; AT_DropExpression = 8; AT_CheckNotNull = 9; AT_SetStatistics = 10; AT_SetOptions = 11; AT_ResetOptions = 12; AT_SetStorage = 13; AT_SetCompression = 14; AT_DropColumn = 15; AT_AddIndex = 16; AT_ReAddIndex = 17; AT_AddConstraint = 18; AT_ReAddConstraint = 19; AT_ReAddDomainConstraint = 20; AT_AlterConstraint = 21; AT_ValidateConstraint = 22; AT_AddIndexConstraint = 23; AT_DropConstraint = 24; AT_ReAddComment = 25; AT_AlterColumnType = 26; AT_AlterColumnGenericOptions = 27; AT_ChangeOwner = 28; AT_ClusterOn = 29; AT_DropCluster = 30; AT_SetLogged = 31; AT_SetUnLogged = 32; AT_DropOids = 33; AT_SetAccessMethod = 34; AT_SetTableSpace = 35; AT_SetRelOptions = 36; AT_ResetRelOptions = 37; AT_ReplaceRelOptions = 38; AT_EnableTrig = 39; AT_EnableAlwaysTrig = 40; AT_EnableReplicaTrig = 41; AT_DisableTrig = 42; AT_EnableTrigAll = 43; AT_DisableTrigAll = 44; AT_EnableTrigUser = 45; AT_DisableTrigUser = 46; AT_EnableRule = 47; AT_EnableAlwaysRule = 48; AT_EnableReplicaRule = 49; AT_DisableRule = 50; AT_AddInherit = 51; AT_DropInherit = 52; AT_AddOf = 53; AT_DropOf = 54; AT_ReplicaIdentity = 55; AT_EnableRowSecurity = 56; AT_DisableRowSecurity = 57; AT_ForceRowSecurity = 58; AT_NoForceRowSecurity = 59; AT_GenericOptions = 60; AT_AttachPartition = 61; AT_DetachPartition = 62; AT_DetachPartitionFinalize = 63; AT_AddIdentity = 64; AT_SetIdentity = 65; AT_DropIdentity = 66; AT_ReAddStatistics = 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; FUNC_PARAM_DEFAULT = 6; } 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 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 PublicationObjSpecType { PUBLICATION_OBJ_SPEC_TYPE_UNDEFINED = 0; PUBLICATIONOBJ_TABLE = 1; PUBLICATIONOBJ_TABLES_IN_SCHEMA = 2; PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA = 3; PUBLICATIONOBJ_CONTINUATION = 4; } enum AlterPublicationAction { ALTER_PUBLICATION_ACTION_UNDEFINED = 0; AP_AddObjects = 1; AP_DropObjects = 2; AP_SetObjects = 3; } enum AlterSubscriptionType { ALTER_SUBSCRIPTION_TYPE_UNDEFINED = 0; ALTER_SUBSCRIPTION_OPTIONS = 1; ALTER_SUBSCRIPTION_CONNECTION = 2; ALTER_SUBSCRIPTION_SET_PUBLICATION = 3; ALTER_SUBSCRIPTION_ADD_PUBLICATION = 4; ALTER_SUBSCRIPTION_DROP_PUBLICATION = 5; ALTER_SUBSCRIPTION_REFRESH = 6; ALTER_SUBSCRIPTION_ENABLED = 7; ALTER_SUBSCRIPTION_SKIP = 8; } enum OverridingKind { OVERRIDING_KIND_UNDEFINED = 0; OVERRIDING_NOT_SET = 1; OVERRIDING_USER_VALUE = 2; OVERRIDING_SYSTEM_VALUE = 3; } enum OnCommitAction { ON_COMMIT_ACTION_UNDEFINED = 0; ONCOMMIT_NOOP = 1; ONCOMMIT_PRESERVE_ROWS = 2; ONCOMMIT_DELETE_ROWS = 3; ONCOMMIT_DROP = 4; } enum TableFuncType { TABLE_FUNC_TYPE_UNDEFINED = 0; TFT_XMLTABLE = 1; TFT_JSON_TABLE = 2; } 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_PLPGSQL = 3; COERCION_EXPLICIT = 4; } enum CoercionForm { COERCION_FORM_UNDEFINED = 0; COERCE_EXPLICIT_CALL = 1; COERCE_EXPLICIT_CAST = 2; COERCE_IMPLICIT_CAST = 3; COERCE_SQL_SYNTAX = 4; } 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 JsonEncoding { JSON_ENCODING_UNDEFINED = 0; JS_ENC_DEFAULT = 1; JS_ENC_UTF8 = 2; JS_ENC_UTF16 = 3; JS_ENC_UTF32 = 4; } enum JsonFormatType { JSON_FORMAT_TYPE_UNDEFINED = 0; JS_FORMAT_DEFAULT = 1; JS_FORMAT_JSON = 2; JS_FORMAT_JSONB = 3; } enum JsonConstructorType { JSON_CONSTRUCTOR_TYPE_UNDEFINED = 0; JSCTOR_JSON_OBJECT = 1; JSCTOR_JSON_ARRAY = 2; JSCTOR_JSON_OBJECTAGG = 3; JSCTOR_JSON_ARRAYAGG = 4; JSCTOR_JSON_PARSE = 5; JSCTOR_JSON_SCALAR = 6; JSCTOR_JSON_SERIALIZE = 7; } enum JsonValueType { JSON_VALUE_TYPE_UNDEFINED = 0; JS_TYPE_ANY = 1; JS_TYPE_OBJECT = 2; JS_TYPE_ARRAY = 3; JS_TYPE_SCALAR = 4; } enum JsonWrapper { JSON_WRAPPER_UNDEFINED = 0; JSW_UNSPEC = 1; JSW_NONE = 2; JSW_CONDITIONAL = 3; JSW_UNCONDITIONAL = 4; } enum JsonBehaviorType { JSON_BEHAVIOR_TYPE_UNDEFINED = 0; JSON_BEHAVIOR_NULL = 1; JSON_BEHAVIOR_ERROR = 2; JSON_BEHAVIOR_EMPTY = 3; JSON_BEHAVIOR_TRUE = 4; JSON_BEHAVIOR_FALSE = 5; JSON_BEHAVIOR_UNKNOWN = 6; JSON_BEHAVIOR_EMPTY_ARRAY = 7; JSON_BEHAVIOR_EMPTY_OBJECT = 8; JSON_BEHAVIOR_DEFAULT = 9; } enum JsonExprOp { JSON_EXPR_OP_UNDEFINED = 0; JSON_EXISTS_OP = 1; JSON_QUERY_OP = 2; JSON_VALUE_OP = 3; JSON_TABLE_OP = 4; } 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 MergeMatchKind { MERGE_MATCH_KIND_UNDEFINED = 0; MERGE_WHEN_MATCHED = 1; MERGE_WHEN_NOT_MATCHED_BY_SOURCE = 2; MERGE_WHEN_NOT_MATCHED_BY_TARGET = 3; } enum CmdType { CMD_TYPE_UNDEFINED = 0; CMD_UNKNOWN = 1; CMD_SELECT = 2; CMD_UPDATE = 3; CMD_INSERT = 4; CMD_DELETE = 5; CMD_MERGE = 6; CMD_UTILITY = 7; CMD_NOTHING = 8; } 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_RIGHT_ANTI = 7; JOIN_UNIQUE_OUTER = 8; JOIN_UNIQUE_INNER = 9; } 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_36 = 36; // "$" 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; ABSENT = 278; ABSOLUTE_P = 279; ACCESS = 280; ACTION = 281; ADD_P = 282; ADMIN = 283; AFTER = 284; AGGREGATE = 285; ALL = 286; ALSO = 287; ALTER = 288; ALWAYS = 289; ANALYSE = 290; ANALYZE = 291; AND = 292; ANY = 293; ARRAY = 294; AS = 295; ASC = 296; ASENSITIVE = 297; ASSERTION = 298; ASSIGNMENT = 299; ASYMMETRIC = 300; ATOMIC = 301; AT = 302; ATTACH = 303; ATTRIBUTE = 304; AUTHORIZATION = 305; BACKWARD = 306; BEFORE = 307; BEGIN_P = 308; BETWEEN = 309; BIGINT = 310; BINARY = 311; BIT = 312; BOOLEAN_P = 313; BOTH = 314; BREADTH = 315; BY = 316; CACHE = 317; CALL = 318; CALLED = 319; CASCADE = 320; CASCADED = 321; CASE = 322; CAST = 323; CATALOG_P = 324; CHAIN = 325; CHAR_P = 326; CHARACTER = 327; CHARACTERISTICS = 328; CHECK = 329; CHECKPOINT = 330; CLASS = 331; CLOSE = 332; CLUSTER = 333; COALESCE = 334; COLLATE = 335; COLLATION = 336; COLUMN = 337; COLUMNS = 338; COMMENT = 339; COMMENTS = 340; COMMIT = 341; COMMITTED = 342; COMPRESSION = 343; CONCURRENTLY = 344; CONDITIONAL = 345; CONFIGURATION = 346; CONFLICT = 347; CONNECTION = 348; CONSTRAINT = 349; CONSTRAINTS = 350; CONTENT_P = 351; CONTINUE_P = 352; CONVERSION_P = 353; COPY = 354; COST = 355; CREATE = 356; CROSS = 357; CSV = 358; CUBE = 359; CURRENT_P = 360; CURRENT_CATALOG = 361; CURRENT_DATE = 362; CURRENT_ROLE = 363; CURRENT_SCHEMA = 364; CURRENT_TIME = 365; CURRENT_TIMESTAMP = 366; CURRENT_USER = 367; CURSOR = 368; CYCLE = 369; DATA_P = 370; DATABASE = 371; DAY_P = 372; DEALLOCATE = 373; DEC = 374; DECIMAL_P = 375; DECLARE = 376; DEFAULT = 377; DEFAULTS = 378; DEFERRABLE = 379; DEFERRED = 380; DEFINER = 381; DELETE_P = 382; DELIMITER = 383; DELIMITERS = 384; DEPENDS = 385; DEPTH = 386; DESC = 387; DETACH = 388; DICTIONARY = 389; DISABLE_P = 390; DISCARD = 391; DISTINCT = 392; DO = 393; DOCUMENT_P = 394; DOMAIN_P = 395; DOUBLE_P = 396; DROP = 397; EACH = 398; ELSE = 399; EMPTY_P = 400; ENABLE_P = 401; ENCODING = 402; ENCRYPTED = 403; END_P = 404; ENUM_P = 405; ERROR_P = 406; ESCAPE = 407; EVENT = 408; EXCEPT = 409; EXCLUDE = 410; EXCLUDING = 411; EXCLUSIVE = 412; EXECUTE = 413; EXISTS = 414; EXPLAIN = 415; EXPRESSION = 416; EXTENSION = 417; EXTERNAL = 418; EXTRACT = 419; FALSE_P = 420; FAMILY = 421; FETCH = 422; FILTER = 423; FINALIZE = 424; FIRST_P = 425; FLOAT_P = 426; FOLLOWING = 427; FOR = 428; FORCE = 429; FOREIGN = 430; FORMAT = 431; FORWARD = 432; FREEZE = 433; FROM = 434; FULL = 435; FUNCTION = 436; FUNCTIONS = 437; GENERATED = 438; GLOBAL = 439; GRANT = 440; GRANTED = 441; GREATEST = 442; GROUP_P = 443; GROUPING = 444; GROUPS = 445; HANDLER = 446; HAVING = 447; HEADER_P = 448; HOLD = 449; HOUR_P = 450; IDENTITY_P = 451; IF_P = 452; ILIKE = 453; IMMEDIATE = 454; IMMUTABLE = 455; IMPLICIT_P = 456; IMPORT_P = 457; IN_P = 458; INCLUDE = 459; INCLUDING = 460; INCREMENT = 461; INDENT = 462; INDEX = 463; INDEXES = 464; INHERIT = 465; INHERITS = 466; INITIALLY = 467; INLINE_P = 468; INNER_P = 469; INOUT = 470; INPUT_P = 471; INSENSITIVE = 472; INSERT = 473; INSTEAD = 474; INT_P = 475; INTEGER = 476; INTERSECT = 477; INTERVAL = 478; INTO = 479; INVOKER = 480; IS = 481; ISNULL = 482; ISOLATION = 483; JOIN = 484; JSON = 485; JSON_ARRAY = 486; JSON_ARRAYAGG = 487; JSON_EXISTS = 488; JSON_OBJECT = 489; JSON_OBJECTAGG = 490; JSON_QUERY = 491; JSON_SCALAR = 492; JSON_SERIALIZE = 493; JSON_TABLE = 494; JSON_VALUE = 495; KEEP = 496; KEY = 497; KEYS = 498; LABEL = 499; LANGUAGE = 500; LARGE_P = 501; LAST_P = 502; LATERAL_P = 503; LEADING = 504; LEAKPROOF = 505; LEAST = 506; LEFT = 507; LEVEL = 508; LIKE = 509; LIMIT = 510; LISTEN = 511; LOAD = 512; LOCAL = 513; LOCALTIME = 514; LOCALTIMESTAMP = 515; LOCATION = 516; LOCK_P = 517; LOCKED = 518; LOGGED = 519; MAPPING = 520; MATCH = 521; MATCHED = 522; MATERIALIZED = 523; MAXVALUE = 524; MERGE = 525; MERGE_ACTION = 526; METHOD = 527; MINUTE_P = 528; MINVALUE = 529; MODE = 530; MONTH_P = 531; MOVE = 532; NAME_P = 533; NAMES = 534; NATIONAL = 535; NATURAL = 536; NCHAR = 537; NESTED = 538; NEW = 539; NEXT = 540; NFC = 541; NFD = 542; NFKC = 543; NFKD = 544; NO = 545; NONE = 546; NORMALIZE = 547; NORMALIZED = 548; NOT = 549; NOTHING = 550; NOTIFY = 551; NOTNULL = 552; NOWAIT = 553; NULL_P = 554; NULLIF = 555; NULLS_P = 556; NUMERIC = 557; OBJECT_P = 558; OF = 559; OFF = 560; OFFSET = 561; OIDS = 562; OLD = 563; OMIT = 564; ON = 565; ONLY = 566; OPERATOR = 567; OPTION = 568; OPTIONS = 569; OR = 570; ORDER = 571; ORDINALITY = 572; OTHERS = 573; OUT_P = 574; OUTER_P = 575; OVER = 576; OVERLAPS = 577; OVERLAY = 578; OVERRIDING = 579; OWNED = 580; OWNER = 581; PARALLEL = 582; PARAMETER = 583; PARSER = 584; PARTIAL = 585; PARTITION = 586; PASSING = 587; PASSWORD = 588; PATH = 589; PLACING = 590; PLAN = 591; PLANS = 592; POLICY = 593; POSITION = 594; PRECEDING = 595; PRECISION = 596; PRESERVE = 597; PREPARE = 598; PREPARED = 599; PRIMARY = 600; PRIOR = 601; PRIVILEGES = 602; PROCEDURAL = 603; PROCEDURE = 604; PROCEDURES = 605; PROGRAM = 606; PUBLICATION = 607; QUOTE = 608; QUOTES = 609; RANGE = 610; READ = 611; REAL = 612; REASSIGN = 613; RECHECK = 614; RECURSIVE = 615; REF_P = 616; REFERENCES = 617; REFERENCING = 618; REFRESH = 619; REINDEX = 620; RELATIVE_P = 621; RELEASE = 622; RENAME = 623; REPEATABLE = 624; REPLACE = 625; REPLICA = 626; RESET = 627; RESTART = 628; RESTRICT = 629; RETURN = 630; RETURNING = 631; RETURNS = 632; REVOKE = 633; RIGHT = 634; ROLE = 635; ROLLBACK = 636; ROLLUP = 637; ROUTINE = 638; ROUTINES = 639; ROW = 640; ROWS = 641; RULE = 642; SAVEPOINT = 643; SCALAR = 644; SCHEMA = 645; SCHEMAS = 646; SCROLL = 647; SEARCH = 648; SECOND_P = 649; SECURITY = 650; SELECT = 651; SEQUENCE = 652; SEQUENCES = 653; SERIALIZABLE = 654; SERVER = 655; SESSION = 656; SESSION_USER = 657; SET = 658; SETS = 659; SETOF = 660; SHARE = 661; SHOW = 662; SIMILAR = 663; SIMPLE = 664; SKIP = 665; SMALLINT = 666; SNAPSHOT = 667; SOME = 668; SOURCE = 669; SQL_P = 670; STABLE = 671; STANDALONE_P = 672; START = 673; STATEMENT = 674; STATISTICS = 675; STDIN = 676; STDOUT = 677; STORAGE = 678; STORED = 679; STRICT_P = 680; STRING_P = 681; STRIP_P = 682; SUBSCRIPTION = 683; SUBSTRING = 684; SUPPORT = 685; SYMMETRIC = 686; SYSID = 687; SYSTEM_P = 688; SYSTEM_USER = 689; TABLE = 690; TABLES = 691; TABLESAMPLE = 692; TABLESPACE = 693; TARGET = 694; TEMP = 695; TEMPLATE = 696; TEMPORARY = 697; TEXT_P = 698; THEN = 699; TIES = 700; TIME = 701; TIMESTAMP = 702; TO = 703; TRAILING = 704; TRANSACTION = 705; TRANSFORM = 706; TREAT = 707; TRIGGER = 708; TRIM = 709; TRUE_P = 710; TRUNCATE = 711; TRUSTED = 712; TYPE_P = 713; TYPES_P = 714; UESCAPE = 715; UNBOUNDED = 716; UNCONDITIONAL = 717; UNCOMMITTED = 718; UNENCRYPTED = 719; UNION = 720; UNIQUE = 721; UNKNOWN = 722; UNLISTEN = 723; UNLOGGED = 724; UNTIL = 725; UPDATE = 726; USER = 727; USING = 728; VACUUM = 729; VALID = 730; VALIDATE = 731; VALIDATOR = 732; VALUE_P = 733; VALUES = 734; VARCHAR = 735; VARIADIC = 736; VARYING = 737; VERBOSE = 738; VERSION_P = 739; VIEW = 740; VIEWS = 741; VOLATILE = 742; WHEN = 743; WHERE = 744; WHITESPACE_P = 745; WINDOW = 746; WITH = 747; WITHIN = 748; WITHOUT = 749; WORK = 750; WRAPPER = 751; WRITE = 752; XML_P = 753; XMLATTRIBUTES = 754; XMLCONCAT = 755; XMLELEMENT = 756; XMLEXISTS = 757; XMLFOREST = 758; XMLNAMESPACES = 759; XMLPARSE = 760; XMLPI = 761; XMLROOT = 762; XMLSERIALIZE = 763; XMLTABLE = 764; YEAR_P = 765; YES_P = 766; ZONE = 767; FORMAT_LA = 768; NOT_LA = 769; NULLS_LA = 770; WITH_LA = 771; WITHOUT_LA = 772; MODE_TYPE_NAME = 773; MODE_PLPGSQL_EXPR = 774; MODE_PLPGSQL_ASSIGN1 = 775; MODE_PLPGSQL_ASSIGN2 = 776; MODE_PLPGSQL_ASSIGN3 = 777; UMINUS = 778; }