// 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"]; SubscriptingRef subscripting_ref = 10 [json_name="SubscriptingRef"]; FuncExpr func_expr = 11 [json_name="FuncExpr"]; NamedArgExpr named_arg_expr = 12 [json_name="NamedArgExpr"]; OpExpr op_expr = 13 [json_name="OpExpr"]; DistinctExpr distinct_expr = 14 [json_name="DistinctExpr"]; NullIfExpr null_if_expr = 15 [json_name="NullIfExpr"]; ScalarArrayOpExpr scalar_array_op_expr = 16 [json_name="ScalarArrayOpExpr"]; BoolExpr bool_expr = 17 [json_name="BoolExpr"]; SubLink sub_link = 18 [json_name="SubLink"]; SubPlan sub_plan = 19 [json_name="SubPlan"]; AlternativeSubPlan alternative_sub_plan = 20 [json_name="AlternativeSubPlan"]; FieldSelect field_select = 21 [json_name="FieldSelect"]; FieldStore field_store = 22 [json_name="FieldStore"]; RelabelType relabel_type = 23 [json_name="RelabelType"]; CoerceViaIO coerce_via_io = 24 [json_name="CoerceViaIO"]; ArrayCoerceExpr array_coerce_expr = 25 [json_name="ArrayCoerceExpr"]; ConvertRowtypeExpr convert_rowtype_expr = 26 [json_name="ConvertRowtypeExpr"]; CollateExpr collate_expr = 27 [json_name="CollateExpr"]; CaseExpr case_expr = 28 [json_name="CaseExpr"]; CaseWhen case_when = 29 [json_name="CaseWhen"]; CaseTestExpr case_test_expr = 30 [json_name="CaseTestExpr"]; ArrayExpr array_expr = 31 [json_name="ArrayExpr"]; RowExpr row_expr = 32 [json_name="RowExpr"]; RowCompareExpr row_compare_expr = 33 [json_name="RowCompareExpr"]; CoalesceExpr coalesce_expr = 34 [json_name="CoalesceExpr"]; MinMaxExpr min_max_expr = 35 [json_name="MinMaxExpr"]; SQLValueFunction sqlvalue_function = 36 [json_name="SQLValueFunction"]; XmlExpr xml_expr = 37 [json_name="XmlExpr"]; JsonFormat json_format = 38 [json_name="JsonFormat"]; JsonReturning json_returning = 39 [json_name="JsonReturning"]; JsonValueExpr json_value_expr = 40 [json_name="JsonValueExpr"]; JsonConstructorExpr json_constructor_expr = 41 [json_name="JsonConstructorExpr"]; JsonIsPredicate json_is_predicate = 42 [json_name="JsonIsPredicate"]; NullTest null_test = 43 [json_name="NullTest"]; BooleanTest boolean_test = 44 [json_name="BooleanTest"]; CoerceToDomain coerce_to_domain = 45 [json_name="CoerceToDomain"]; CoerceToDomainValue coerce_to_domain_value = 46 [json_name="CoerceToDomainValue"]; SetToDefault set_to_default = 47 [json_name="SetToDefault"]; CurrentOfExpr current_of_expr = 48 [json_name="CurrentOfExpr"]; NextValueExpr next_value_expr = 49 [json_name="NextValueExpr"]; InferenceElem inference_elem = 50 [json_name="InferenceElem"]; TargetEntry target_entry = 51 [json_name="TargetEntry"]; RangeTblRef range_tbl_ref = 52 [json_name="RangeTblRef"]; JoinExpr join_expr = 53 [json_name="JoinExpr"]; FromExpr from_expr = 54 [json_name="FromExpr"]; OnConflictExpr on_conflict_expr = 55 [json_name="OnConflictExpr"]; Query query = 56 [json_name="Query"]; TypeName type_name = 57 [json_name="TypeName"]; ColumnRef column_ref = 58 [json_name="ColumnRef"]; ParamRef param_ref = 59 [json_name="ParamRef"]; A_Expr a_expr = 60 [json_name="A_Expr"]; TypeCast type_cast = 61 [json_name="TypeCast"]; CollateClause collate_clause = 62 [json_name="CollateClause"]; RoleSpec role_spec = 63 [json_name="RoleSpec"]; FuncCall func_call = 64 [json_name="FuncCall"]; A_Star a_star = 65 [json_name="A_Star"]; A_Indices a_indices = 66 [json_name="A_Indices"]; A_Indirection a_indirection = 67 [json_name="A_Indirection"]; A_ArrayExpr a_array_expr = 68 [json_name="A_ArrayExpr"]; ResTarget res_target = 69 [json_name="ResTarget"]; MultiAssignRef multi_assign_ref = 70 [json_name="MultiAssignRef"]; SortBy sort_by = 71 [json_name="SortBy"]; WindowDef window_def = 72 [json_name="WindowDef"]; RangeSubselect range_subselect = 73 [json_name="RangeSubselect"]; RangeFunction range_function = 74 [json_name="RangeFunction"]; RangeTableFunc range_table_func = 75 [json_name="RangeTableFunc"]; RangeTableFuncCol range_table_func_col = 76 [json_name="RangeTableFuncCol"]; RangeTableSample range_table_sample = 77 [json_name="RangeTableSample"]; ColumnDef column_def = 78 [json_name="ColumnDef"]; TableLikeClause table_like_clause = 79 [json_name="TableLikeClause"]; IndexElem index_elem = 80 [json_name="IndexElem"]; DefElem def_elem = 81 [json_name="DefElem"]; LockingClause locking_clause = 82 [json_name="LockingClause"]; XmlSerialize xml_serialize = 83 [json_name="XmlSerialize"]; PartitionElem partition_elem = 84 [json_name="PartitionElem"]; PartitionSpec partition_spec = 85 [json_name="PartitionSpec"]; PartitionBoundSpec partition_bound_spec = 86 [json_name="PartitionBoundSpec"]; PartitionRangeDatum partition_range_datum = 87 [json_name="PartitionRangeDatum"]; PartitionCmd partition_cmd = 88 [json_name="PartitionCmd"]; RangeTblEntry range_tbl_entry = 89 [json_name="RangeTblEntry"]; RTEPermissionInfo rtepermission_info = 90 [json_name="RTEPermissionInfo"]; RangeTblFunction range_tbl_function = 91 [json_name="RangeTblFunction"]; TableSampleClause table_sample_clause = 92 [json_name="TableSampleClause"]; WithCheckOption with_check_option = 93 [json_name="WithCheckOption"]; SortGroupClause sort_group_clause = 94 [json_name="SortGroupClause"]; GroupingSet grouping_set = 95 [json_name="GroupingSet"]; WindowClause window_clause = 96 [json_name="WindowClause"]; RowMarkClause row_mark_clause = 97 [json_name="RowMarkClause"]; WithClause with_clause = 98 [json_name="WithClause"]; InferClause infer_clause = 99 [json_name="InferClause"]; OnConflictClause on_conflict_clause = 100 [json_name="OnConflictClause"]; CTESearchClause ctesearch_clause = 101 [json_name="CTESearchClause"]; CTECycleClause ctecycle_clause = 102 [json_name="CTECycleClause"]; CommonTableExpr common_table_expr = 103 [json_name="CommonTableExpr"]; MergeWhenClause merge_when_clause = 104 [json_name="MergeWhenClause"]; MergeAction merge_action = 105 [json_name="MergeAction"]; TriggerTransition trigger_transition = 106 [json_name="TriggerTransition"]; JsonOutput json_output = 107 [json_name="JsonOutput"]; JsonKeyValue json_key_value = 108 [json_name="JsonKeyValue"]; JsonObjectConstructor json_object_constructor = 109 [json_name="JsonObjectConstructor"]; JsonArrayConstructor json_array_constructor = 110 [json_name="JsonArrayConstructor"]; JsonArrayQueryConstructor json_array_query_constructor = 111 [json_name="JsonArrayQueryConstructor"]; JsonAggConstructor json_agg_constructor = 112 [json_name="JsonAggConstructor"]; JsonObjectAgg json_object_agg = 113 [json_name="JsonObjectAgg"]; JsonArrayAgg json_array_agg = 114 [json_name="JsonArrayAgg"]; RawStmt raw_stmt = 115 [json_name="RawStmt"]; InsertStmt insert_stmt = 116 [json_name="InsertStmt"]; DeleteStmt delete_stmt = 117 [json_name="DeleteStmt"]; UpdateStmt update_stmt = 118 [json_name="UpdateStmt"]; MergeStmt merge_stmt = 119 [json_name="MergeStmt"]; SelectStmt select_stmt = 120 [json_name="SelectStmt"]; SetOperationStmt set_operation_stmt = 121 [json_name="SetOperationStmt"]; ReturnStmt return_stmt = 122 [json_name="ReturnStmt"]; PLAssignStmt plassign_stmt = 123 [json_name="PLAssignStmt"]; CreateSchemaStmt create_schema_stmt = 124 [json_name="CreateSchemaStmt"]; AlterTableStmt alter_table_stmt = 125 [json_name="AlterTableStmt"]; ReplicaIdentityStmt replica_identity_stmt = 126 [json_name="ReplicaIdentityStmt"]; AlterTableCmd alter_table_cmd = 127 [json_name="AlterTableCmd"]; AlterCollationStmt alter_collation_stmt = 128 [json_name="AlterCollationStmt"]; AlterDomainStmt alter_domain_stmt = 129 [json_name="AlterDomainStmt"]; GrantStmt grant_stmt = 130 [json_name="GrantStmt"]; ObjectWithArgs object_with_args = 131 [json_name="ObjectWithArgs"]; AccessPriv access_priv = 132 [json_name="AccessPriv"]; GrantRoleStmt grant_role_stmt = 133 [json_name="GrantRoleStmt"]; AlterDefaultPrivilegesStmt alter_default_privileges_stmt = 134 [json_name="AlterDefaultPrivilegesStmt"]; CopyStmt copy_stmt = 135 [json_name="CopyStmt"]; VariableSetStmt variable_set_stmt = 136 [json_name="VariableSetStmt"]; VariableShowStmt variable_show_stmt = 137 [json_name="VariableShowStmt"]; CreateStmt create_stmt = 138 [json_name="CreateStmt"]; Constraint constraint = 139 [json_name="Constraint"]; CreateTableSpaceStmt create_table_space_stmt = 140 [json_name="CreateTableSpaceStmt"]; DropTableSpaceStmt drop_table_space_stmt = 141 [json_name="DropTableSpaceStmt"]; AlterTableSpaceOptionsStmt alter_table_space_options_stmt = 142 [json_name="AlterTableSpaceOptionsStmt"]; AlterTableMoveAllStmt alter_table_move_all_stmt = 143 [json_name="AlterTableMoveAllStmt"]; CreateExtensionStmt create_extension_stmt = 144 [json_name="CreateExtensionStmt"]; AlterExtensionStmt alter_extension_stmt = 145 [json_name="AlterExtensionStmt"]; AlterExtensionContentsStmt alter_extension_contents_stmt = 146 [json_name="AlterExtensionContentsStmt"]; CreateFdwStmt create_fdw_stmt = 147 [json_name="CreateFdwStmt"]; AlterFdwStmt alter_fdw_stmt = 148 [json_name="AlterFdwStmt"]; CreateForeignServerStmt create_foreign_server_stmt = 149 [json_name="CreateForeignServerStmt"]; AlterForeignServerStmt alter_foreign_server_stmt = 150 [json_name="AlterForeignServerStmt"]; CreateForeignTableStmt create_foreign_table_stmt = 151 [json_name="CreateForeignTableStmt"]; CreateUserMappingStmt create_user_mapping_stmt = 152 [json_name="CreateUserMappingStmt"]; AlterUserMappingStmt alter_user_mapping_stmt = 153 [json_name="AlterUserMappingStmt"]; DropUserMappingStmt drop_user_mapping_stmt = 154 [json_name="DropUserMappingStmt"]; ImportForeignSchemaStmt import_foreign_schema_stmt = 155 [json_name="ImportForeignSchemaStmt"]; CreatePolicyStmt create_policy_stmt = 156 [json_name="CreatePolicyStmt"]; AlterPolicyStmt alter_policy_stmt = 157 [json_name="AlterPolicyStmt"]; CreateAmStmt create_am_stmt = 158 [json_name="CreateAmStmt"]; CreateTrigStmt create_trig_stmt = 159 [json_name="CreateTrigStmt"]; CreateEventTrigStmt create_event_trig_stmt = 160 [json_name="CreateEventTrigStmt"]; AlterEventTrigStmt alter_event_trig_stmt = 161 [json_name="AlterEventTrigStmt"]; CreatePLangStmt create_plang_stmt = 162 [json_name="CreatePLangStmt"]; CreateRoleStmt create_role_stmt = 163 [json_name="CreateRoleStmt"]; AlterRoleStmt alter_role_stmt = 164 [json_name="AlterRoleStmt"]; AlterRoleSetStmt alter_role_set_stmt = 165 [json_name="AlterRoleSetStmt"]; DropRoleStmt drop_role_stmt = 166 [json_name="DropRoleStmt"]; CreateSeqStmt create_seq_stmt = 167 [json_name="CreateSeqStmt"]; AlterSeqStmt alter_seq_stmt = 168 [json_name="AlterSeqStmt"]; DefineStmt define_stmt = 169 [json_name="DefineStmt"]; CreateDomainStmt create_domain_stmt = 170 [json_name="CreateDomainStmt"]; CreateOpClassStmt create_op_class_stmt = 171 [json_name="CreateOpClassStmt"]; CreateOpClassItem create_op_class_item = 172 [json_name="CreateOpClassItem"]; CreateOpFamilyStmt create_op_family_stmt = 173 [json_name="CreateOpFamilyStmt"]; AlterOpFamilyStmt alter_op_family_stmt = 174 [json_name="AlterOpFamilyStmt"]; DropStmt drop_stmt = 175 [json_name="DropStmt"]; TruncateStmt truncate_stmt = 176 [json_name="TruncateStmt"]; CommentStmt comment_stmt = 177 [json_name="CommentStmt"]; SecLabelStmt sec_label_stmt = 178 [json_name="SecLabelStmt"]; DeclareCursorStmt declare_cursor_stmt = 179 [json_name="DeclareCursorStmt"]; ClosePortalStmt close_portal_stmt = 180 [json_name="ClosePortalStmt"]; FetchStmt fetch_stmt = 181 [json_name="FetchStmt"]; IndexStmt index_stmt = 182 [json_name="IndexStmt"]; CreateStatsStmt create_stats_stmt = 183 [json_name="CreateStatsStmt"]; StatsElem stats_elem = 184 [json_name="StatsElem"]; AlterStatsStmt alter_stats_stmt = 185 [json_name="AlterStatsStmt"]; CreateFunctionStmt create_function_stmt = 186 [json_name="CreateFunctionStmt"]; FunctionParameter function_parameter = 187 [json_name="FunctionParameter"]; AlterFunctionStmt alter_function_stmt = 188 [json_name="AlterFunctionStmt"]; DoStmt do_stmt = 189 [json_name="DoStmt"]; InlineCodeBlock inline_code_block = 190 [json_name="InlineCodeBlock"]; CallStmt call_stmt = 191 [json_name="CallStmt"]; CallContext call_context = 192 [json_name="CallContext"]; RenameStmt rename_stmt = 193 [json_name="RenameStmt"]; AlterObjectDependsStmt alter_object_depends_stmt = 194 [json_name="AlterObjectDependsStmt"]; AlterObjectSchemaStmt alter_object_schema_stmt = 195 [json_name="AlterObjectSchemaStmt"]; AlterOwnerStmt alter_owner_stmt = 196 [json_name="AlterOwnerStmt"]; AlterOperatorStmt alter_operator_stmt = 197 [json_name="AlterOperatorStmt"]; AlterTypeStmt alter_type_stmt = 198 [json_name="AlterTypeStmt"]; RuleStmt rule_stmt = 199 [json_name="RuleStmt"]; NotifyStmt notify_stmt = 200 [json_name="NotifyStmt"]; ListenStmt listen_stmt = 201 [json_name="ListenStmt"]; UnlistenStmt unlisten_stmt = 202 [json_name="UnlistenStmt"]; TransactionStmt transaction_stmt = 203 [json_name="TransactionStmt"]; CompositeTypeStmt composite_type_stmt = 204 [json_name="CompositeTypeStmt"]; CreateEnumStmt create_enum_stmt = 205 [json_name="CreateEnumStmt"]; CreateRangeStmt create_range_stmt = 206 [json_name="CreateRangeStmt"]; AlterEnumStmt alter_enum_stmt = 207 [json_name="AlterEnumStmt"]; ViewStmt view_stmt = 208 [json_name="ViewStmt"]; LoadStmt load_stmt = 209 [json_name="LoadStmt"]; CreatedbStmt createdb_stmt = 210 [json_name="CreatedbStmt"]; AlterDatabaseStmt alter_database_stmt = 211 [json_name="AlterDatabaseStmt"]; AlterDatabaseRefreshCollStmt alter_database_refresh_coll_stmt = 212 [json_name="AlterDatabaseRefreshCollStmt"]; AlterDatabaseSetStmt alter_database_set_stmt = 213 [json_name="AlterDatabaseSetStmt"]; DropdbStmt dropdb_stmt = 214 [json_name="DropdbStmt"]; AlterSystemStmt alter_system_stmt = 215 [json_name="AlterSystemStmt"]; ClusterStmt cluster_stmt = 216 [json_name="ClusterStmt"]; VacuumStmt vacuum_stmt = 217 [json_name="VacuumStmt"]; VacuumRelation vacuum_relation = 218 [json_name="VacuumRelation"]; ExplainStmt explain_stmt = 219 [json_name="ExplainStmt"]; CreateTableAsStmt create_table_as_stmt = 220 [json_name="CreateTableAsStmt"]; RefreshMatViewStmt refresh_mat_view_stmt = 221 [json_name="RefreshMatViewStmt"]; CheckPointStmt check_point_stmt = 222 [json_name="CheckPointStmt"]; DiscardStmt discard_stmt = 223 [json_name="DiscardStmt"]; LockStmt lock_stmt = 224 [json_name="LockStmt"]; ConstraintsSetStmt constraints_set_stmt = 225 [json_name="ConstraintsSetStmt"]; ReindexStmt reindex_stmt = 226 [json_name="ReindexStmt"]; CreateConversionStmt create_conversion_stmt = 227 [json_name="CreateConversionStmt"]; CreateCastStmt create_cast_stmt = 228 [json_name="CreateCastStmt"]; CreateTransformStmt create_transform_stmt = 229 [json_name="CreateTransformStmt"]; PrepareStmt prepare_stmt = 230 [json_name="PrepareStmt"]; ExecuteStmt execute_stmt = 231 [json_name="ExecuteStmt"]; DeallocateStmt deallocate_stmt = 232 [json_name="DeallocateStmt"]; DropOwnedStmt drop_owned_stmt = 233 [json_name="DropOwnedStmt"]; ReassignOwnedStmt reassign_owned_stmt = 234 [json_name="ReassignOwnedStmt"]; AlterTSDictionaryStmt alter_tsdictionary_stmt = 235 [json_name="AlterTSDictionaryStmt"]; AlterTSConfigurationStmt alter_tsconfiguration_stmt = 236 [json_name="AlterTSConfigurationStmt"]; PublicationTable publication_table = 237 [json_name="PublicationTable"]; PublicationObjSpec publication_obj_spec = 238 [json_name="PublicationObjSpec"]; CreatePublicationStmt create_publication_stmt = 239 [json_name="CreatePublicationStmt"]; AlterPublicationStmt alter_publication_stmt = 240 [json_name="AlterPublicationStmt"]; CreateSubscriptionStmt create_subscription_stmt = 241 [json_name="CreateSubscriptionStmt"]; AlterSubscriptionStmt alter_subscription_stmt = 242 [json_name="AlterSubscriptionStmt"]; DropSubscriptionStmt drop_subscription_stmt = 243 [json_name="DropSubscriptionStmt"]; Integer integer = 244 [json_name="Integer"]; Float float = 245 [json_name="Float"]; Boolean boolean = 246 [json_name="Boolean"]; String string = 247 [json_name="String"]; BitString bit_string = 248 [json_name="BitString"]; List list = 249 [json_name="List"]; IntList int_list = 250 [json_name="IntList"]; OidList oid_list = 251 [json_name="OidList"]; A_Const a_const = 252 [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 { repeated Node ns_uris = 1 [json_name="ns_uris"]; repeated Node ns_names = 2 [json_name="ns_names"]; Node docexpr = 3 [json_name="docexpr"]; Node rowexpr = 4 [json_name="rowexpr"]; repeated Node colnames = 5 [json_name="colnames"]; repeated Node coltypes = 6 [json_name="coltypes"]; repeated Node coltypmods = 7 [json_name="coltypmods"]; repeated Node colcollations = 8 [json_name="colcollations"]; repeated Node colexprs = 9 [json_name="colexprs"]; repeated Node coldefexprs = 10 [json_name="coldefexprs"]; repeated uint64 notnulls = 11 [json_name="notnulls"]; int32 ordinalitycol = 12 [json_name="ordinalitycol"]; int32 location = 13 [json_name="location"]; } message 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"]; uint32 winref = 8 [json_name="winref"]; bool winstar = 9 [json_name="winstar"]; bool winagg = 10 [json_name="winagg"]; int32 location = 11 [json_name="location"]; } message SubscriptingRef { Node xpr = 1 [json_name="xpr"]; uint32 refcontainertype = 2 [json_name="refcontainertype"]; uint32 refelemtype = 3 [json_name="refelemtype"]; 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 NullTest { Node xpr = 1 [json_name="xpr"]; Node arg = 2 [json_name="arg"]; NullTestType nulltesttype = 3 [json_name="nulltesttype"]; bool argisrow = 4 [json_name="argisrow"]; int32 location = 5 [json_name="location"]; } message BooleanTest { Node xpr = 1 [json_name="xpr"]; Node arg = 2 [json_name="arg"]; BoolTestType booltesttype = 3 [json_name="booltesttype"]; int32 location = 4 [json_name="location"]; } message CoerceToDomain { Node xpr = 1 [json_name="xpr"]; Node arg = 2 [json_name="arg"]; uint32 resulttype = 3 [json_name="resulttype"]; int32 resulttypmod = 4 [json_name="resulttypmod"]; uint32 resultcollid = 5 [json_name="resultcollid"]; CoercionForm coercionformat = 6 [json_name="coercionformat"]; int32 location = 7 [json_name="location"]; } message CoerceToDomainValue { Node xpr = 1 [json_name="xpr"]; uint32 type_id = 2 [json_name="typeId"]; int32 type_mod = 3 [json_name="typeMod"]; uint32 collation = 4 [json_name="collation"]; int32 location = 5 [json_name="location"]; } message SetToDefault { Node xpr = 1 [json_name="xpr"]; uint32 type_id = 2 [json_name="typeId"]; int32 type_mod = 3 [json_name="typeMod"]; uint32 collation = 4 [json_name="collation"]; int32 location = 5 [json_name="location"]; } message CurrentOfExpr { Node xpr = 1 [json_name="xpr"]; uint32 cvarno = 2 [json_name="cvarno"]; string cursor_name = 3 [json_name="cursor_name"]; int32 cursor_param = 4 [json_name="cursor_param"]; } message NextValueExpr { Node xpr = 1 [json_name="xpr"]; uint32 seqid = 2 [json_name="seqid"]; uint32 type_id = 3 [json_name="typeId"]; } message InferenceElem { Node xpr = 1 [json_name="xpr"]; Node expr = 2 [json_name="expr"]; uint32 infercollid = 3 [json_name="infercollid"]; uint32 inferopclass = 4 [json_name="inferopclass"]; } message TargetEntry { Node xpr = 1 [json_name="xpr"]; Node expr = 2 [json_name="expr"]; int32 resno = 3 [json_name="resno"]; string resname = 4 [json_name="resname"]; uint32 ressortgroupref = 5 [json_name="ressortgroupref"]; uint32 resorigtbl = 6 [json_name="resorigtbl"]; int32 resorigcol = 7 [json_name="resorigcol"]; bool resjunk = 8 [json_name="resjunk"]; } message RangeTblRef { int32 rtindex = 1 [json_name="rtindex"]; } message JoinExpr { JoinType jointype = 1 [json_name="jointype"]; bool is_natural = 2 [json_name="isNatural"]; Node larg = 3 [json_name="larg"]; Node rarg = 4 [json_name="rarg"]; repeated Node using_clause = 5 [json_name="usingClause"]; 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"]; bool merge_use_outer_join = 21 [json_name="mergeUseOuterJoin"]; repeated Node target_list = 22 [json_name="targetList"]; OverridingKind override = 23 [json_name="override"]; OnConflictExpr on_conflict = 24 [json_name="onConflict"]; repeated Node returning_list = 25 [json_name="returningList"]; repeated Node group_clause = 26 [json_name="groupClause"]; bool group_distinct = 27 [json_name="groupDistinct"]; repeated Node grouping_sets = 28 [json_name="groupingSets"]; Node having_qual = 29 [json_name="havingQual"]; repeated Node window_clause = 30 [json_name="windowClause"]; repeated Node distinct_clause = 31 [json_name="distinctClause"]; repeated Node sort_clause = 32 [json_name="sortClause"]; Node limit_offset = 33 [json_name="limitOffset"]; Node limit_count = 34 [json_name="limitCount"]; LimitOption limit_option = 35 [json_name="limitOption"]; repeated Node row_marks = 36 [json_name="rowMarks"]; Node set_operations = 37 [json_name="setOperations"]; repeated Node constraint_deps = 38 [json_name="constraintDeps"]; repeated Node with_check_options = 39 [json_name="withCheckOptions"]; int32 stmt_location = 40 [json_name="stmt_location"]; int32 stmt_len = 41 [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 PartitionCmd { RangeVar name = 1 [json_name="name"]; PartitionBoundSpec bound = 2 [json_name="bound"]; bool concurrent = 3 [json_name="concurrent"]; } message RangeTblEntry { RTEKind rtekind = 1 [json_name="rtekind"]; uint32 relid = 2 [json_name="relid"]; string relkind = 3 [json_name="relkind"]; int32 rellockmode = 4 [json_name="rellockmode"]; TableSampleClause tablesample = 5 [json_name="tablesample"]; uint32 perminfoindex = 6 [json_name="perminfoindex"]; Query subquery = 7 [json_name="subquery"]; bool security_barrier = 8 [json_name="security_barrier"]; JoinType jointype = 9 [json_name="jointype"]; int32 joinmergedcols = 10 [json_name="joinmergedcols"]; repeated Node joinaliasvars = 11 [json_name="joinaliasvars"]; repeated Node joinleftcols = 12 [json_name="joinleftcols"]; repeated Node joinrightcols = 13 [json_name="joinrightcols"]; Alias join_using_alias = 14 [json_name="join_using_alias"]; repeated Node functions = 15 [json_name="functions"]; bool funcordinality = 16 [json_name="funcordinality"]; TableFunc tablefunc = 17 [json_name="tablefunc"]; repeated Node values_lists = 18 [json_name="values_lists"]; string ctename = 19 [json_name="ctename"]; uint32 ctelevelsup = 20 [json_name="ctelevelsup"]; bool self_reference = 21 [json_name="self_reference"]; repeated Node coltypes = 22 [json_name="coltypes"]; repeated Node coltypmods = 23 [json_name="coltypmods"]; repeated Node colcollations = 24 [json_name="colcollations"]; string enrname = 25 [json_name="enrname"]; double enrtuples = 26 [json_name="enrtuples"]; Alias alias = 27 [json_name="alias"]; Alias eref = 28 [json_name="eref"]; bool lateral = 29 [json_name="lateral"]; bool inh = 30 [json_name="inh"]; 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"]; repeated Node run_condition = 8 [json_name="runCondition"]; uint32 start_in_range_func = 9 [json_name="startInRangeFunc"]; uint32 end_in_range_func = 10 [json_name="endInRangeFunc"]; uint32 in_range_coll = 11 [json_name="inRangeColl"]; bool in_range_asc = 12 [json_name="inRangeAsc"]; bool in_range_nulls_first = 13 [json_name="inRangeNullsFirst"]; uint32 winref = 14 [json_name="winref"]; bool copied_order = 15 [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 { bool matched = 1 [json_name="matched"]; 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 MergeAction { bool matched = 1 [json_name="matched"]; 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 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 JsonKeyValue { Node key = 1 [json_name="key"]; JsonValueExpr value = 2 [json_name="value"]; } 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"]; WithClause with_clause = 5 [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"]; int32 location = 5 [json_name="location"]; bool is_no_inherit = 6 [json_name="is_no_inherit"]; Node raw_expr = 7 [json_name="raw_expr"]; string cooked_expr = 8 [json_name="cooked_expr"]; string generated_when = 9 [json_name="generated_when"]; bool nulls_not_distinct = 10 [json_name="nulls_not_distinct"]; repeated Node keys = 11 [json_name="keys"]; repeated Node including = 12 [json_name="including"]; repeated Node exclusions = 13 [json_name="exclusions"]; repeated Node options = 14 [json_name="options"]; string indexname = 15 [json_name="indexname"]; string indexspace = 16 [json_name="indexspace"]; bool reset_default_tblspc = 17 [json_name="reset_default_tblspc"]; string access_method = 18 [json_name="access_method"]; Node where_clause = 19 [json_name="where_clause"]; RangeVar pktable = 20 [json_name="pktable"]; repeated Node fk_attrs = 21 [json_name="fk_attrs"]; repeated Node pk_attrs = 22 [json_name="pk_attrs"]; string fk_matchtype = 23 [json_name="fk_matchtype"]; string fk_upd_action = 24 [json_name="fk_upd_action"]; string fk_del_action = 25 [json_name="fk_del_action"]; repeated Node fk_del_set_cols = 26 [json_name="fk_del_set_cols"]; repeated Node old_conpfeqop = 27 [json_name="old_conpfeqop"]; uint32 old_pktable_oid = 28 [json_name="old_pktable_oid"]; bool skip_validation = 29 [json_name="skip_validation"]; bool initially_valid = 30 [json_name="initially_valid"]; } 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"]; int32 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"]; } 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"]; } 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 OverridingKind { OVERRIDING_KIND_UNDEFINED = 0; OVERRIDING_NOT_SET = 1; OVERRIDING_USER_VALUE = 2; OVERRIDING_SYSTEM_VALUE = 3; } enum QuerySource { QUERY_SOURCE_UNDEFINED = 0; QSRC_ORIGINAL = 1; QSRC_PARSER = 2; QSRC_INSTEAD_RULE = 3; QSRC_QUAL_INSTEAD_RULE = 4; QSRC_NON_INSTEAD_RULE = 5; } enum SortByDir { SORT_BY_DIR_UNDEFINED = 0; SORTBY_DEFAULT = 1; SORTBY_ASC = 2; SORTBY_DESC = 3; SORTBY_USING = 4; } enum SortByNulls { SORT_BY_NULLS_UNDEFINED = 0; SORTBY_NULLS_DEFAULT = 1; SORTBY_NULLS_FIRST = 2; SORTBY_NULLS_LAST = 3; } enum 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 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_DropExpression = 7; AT_CheckNotNull = 8; AT_SetStatistics = 9; AT_SetOptions = 10; AT_ResetOptions = 11; AT_SetStorage = 12; AT_SetCompression = 13; AT_DropColumn = 14; AT_AddIndex = 15; AT_ReAddIndex = 16; AT_AddConstraint = 17; AT_ReAddConstraint = 18; AT_ReAddDomainConstraint = 19; AT_AlterConstraint = 20; AT_ValidateConstraint = 21; AT_AddIndexConstraint = 22; AT_DropConstraint = 23; AT_ReAddComment = 24; AT_AlterColumnType = 25; AT_AlterColumnGenericOptions = 26; AT_ChangeOwner = 27; AT_ClusterOn = 28; AT_DropCluster = 29; AT_SetLogged = 30; AT_SetUnLogged = 31; AT_DropOids = 32; AT_SetAccessMethod = 33; AT_SetTableSpace = 34; AT_SetRelOptions = 35; AT_ResetRelOptions = 36; AT_ReplaceRelOptions = 37; AT_EnableTrig = 38; AT_EnableAlwaysTrig = 39; AT_EnableReplicaTrig = 40; AT_DisableTrig = 41; AT_EnableTrigAll = 42; AT_DisableTrigAll = 43; AT_EnableTrigUser = 44; AT_DisableTrigUser = 45; AT_EnableRule = 46; AT_EnableAlwaysRule = 47; AT_EnableReplicaRule = 48; AT_DisableRule = 49; AT_AddInherit = 50; AT_DropInherit = 51; AT_AddOf = 52; AT_DropOf = 53; AT_ReplicaIdentity = 54; AT_EnableRowSecurity = 55; AT_DisableRowSecurity = 56; AT_ForceRowSecurity = 57; AT_NoForceRowSecurity = 58; AT_GenericOptions = 59; AT_AttachPartition = 60; AT_DetachPartition = 61; AT_DetachPartitionFinalize = 62; AT_AddIdentity = 63; AT_SetIdentity = 64; AT_DropIdentity = 65; AT_ReAddStatistics = 66; } 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 OnCommitAction { ON_COMMIT_ACTION_UNDEFINED = 0; ONCOMMIT_NOOP = 1; ONCOMMIT_PRESERVE_ROWS = 2; ONCOMMIT_DELETE_ROWS = 3; ONCOMMIT_DROP = 4; } enum ParamKind { PARAM_KIND_UNDEFINED = 0; PARAM_EXTERN = 1; PARAM_EXEC = 2; PARAM_SUBLINK = 3; PARAM_MULTIEXPR = 4; } enum CoercionContext { COERCION_CONTEXT_UNDEFINED = 0; COERCION_IMPLICIT = 1; COERCION_ASSIGNMENT = 2; COERCION_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; } enum JsonValueType { JSON_VALUE_TYPE_UNDEFINED = 0; JS_TYPE_ANY = 1; JS_TYPE_OBJECT = 2; JS_TYPE_ARRAY = 3; JS_TYPE_SCALAR = 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 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; CONFIGURATION = 345; CONFLICT = 346; CONNECTION = 347; CONSTRAINT = 348; CONSTRAINTS = 349; CONTENT_P = 350; CONTINUE_P = 351; CONVERSION_P = 352; COPY = 353; COST = 354; CREATE = 355; CROSS = 356; CSV = 357; CUBE = 358; CURRENT_P = 359; CURRENT_CATALOG = 360; CURRENT_DATE = 361; CURRENT_ROLE = 362; CURRENT_SCHEMA = 363; CURRENT_TIME = 364; CURRENT_TIMESTAMP = 365; CURRENT_USER = 366; CURSOR = 367; CYCLE = 368; DATA_P = 369; DATABASE = 370; DAY_P = 371; DEALLOCATE = 372; DEC = 373; DECIMAL_P = 374; DECLARE = 375; DEFAULT = 376; DEFAULTS = 377; DEFERRABLE = 378; DEFERRED = 379; DEFINER = 380; DELETE_P = 381; DELIMITER = 382; DELIMITERS = 383; DEPENDS = 384; DEPTH = 385; DESC = 386; DETACH = 387; DICTIONARY = 388; DISABLE_P = 389; DISCARD = 390; DISTINCT = 391; DO = 392; DOCUMENT_P = 393; DOMAIN_P = 394; DOUBLE_P = 395; DROP = 396; EACH = 397; ELSE = 398; ENABLE_P = 399; ENCODING = 400; ENCRYPTED = 401; END_P = 402; ENUM_P = 403; ESCAPE = 404; EVENT = 405; EXCEPT = 406; EXCLUDE = 407; EXCLUDING = 408; EXCLUSIVE = 409; EXECUTE = 410; EXISTS = 411; EXPLAIN = 412; EXPRESSION = 413; EXTENSION = 414; EXTERNAL = 415; EXTRACT = 416; FALSE_P = 417; FAMILY = 418; FETCH = 419; FILTER = 420; FINALIZE = 421; FIRST_P = 422; FLOAT_P = 423; FOLLOWING = 424; FOR = 425; FORCE = 426; FOREIGN = 427; FORMAT = 428; FORWARD = 429; FREEZE = 430; FROM = 431; FULL = 432; FUNCTION = 433; FUNCTIONS = 434; GENERATED = 435; GLOBAL = 436; GRANT = 437; GRANTED = 438; GREATEST = 439; GROUP_P = 440; GROUPING = 441; GROUPS = 442; HANDLER = 443; HAVING = 444; HEADER_P = 445; HOLD = 446; HOUR_P = 447; IDENTITY_P = 448; IF_P = 449; ILIKE = 450; IMMEDIATE = 451; IMMUTABLE = 452; IMPLICIT_P = 453; IMPORT_P = 454; IN_P = 455; INCLUDE = 456; INCLUDING = 457; INCREMENT = 458; INDENT = 459; INDEX = 460; INDEXES = 461; INHERIT = 462; INHERITS = 463; INITIALLY = 464; INLINE_P = 465; INNER_P = 466; INOUT = 467; INPUT_P = 468; INSENSITIVE = 469; INSERT = 470; INSTEAD = 471; INT_P = 472; INTEGER = 473; INTERSECT = 474; INTERVAL = 475; INTO = 476; INVOKER = 477; IS = 478; ISNULL = 479; ISOLATION = 480; JOIN = 481; JSON = 482; JSON_ARRAY = 483; JSON_ARRAYAGG = 484; JSON_OBJECT = 485; JSON_OBJECTAGG = 486; KEY = 487; KEYS = 488; LABEL = 489; LANGUAGE = 490; LARGE_P = 491; LAST_P = 492; LATERAL_P = 493; LEADING = 494; LEAKPROOF = 495; LEAST = 496; LEFT = 497; LEVEL = 498; LIKE = 499; LIMIT = 500; LISTEN = 501; LOAD = 502; LOCAL = 503; LOCALTIME = 504; LOCALTIMESTAMP = 505; LOCATION = 506; LOCK_P = 507; LOCKED = 508; LOGGED = 509; MAPPING = 510; MATCH = 511; MATCHED = 512; MATERIALIZED = 513; MAXVALUE = 514; MERGE = 515; METHOD = 516; MINUTE_P = 517; MINVALUE = 518; MODE = 519; MONTH_P = 520; MOVE = 521; NAME_P = 522; NAMES = 523; NATIONAL = 524; NATURAL = 525; NCHAR = 526; NEW = 527; NEXT = 528; NFC = 529; NFD = 530; NFKC = 531; NFKD = 532; NO = 533; NONE = 534; NORMALIZE = 535; NORMALIZED = 536; NOT = 537; NOTHING = 538; NOTIFY = 539; NOTNULL = 540; NOWAIT = 541; NULL_P = 542; NULLIF = 543; NULLS_P = 544; NUMERIC = 545; OBJECT_P = 546; OF = 547; OFF = 548; OFFSET = 549; OIDS = 550; OLD = 551; ON = 552; ONLY = 553; OPERATOR = 554; OPTION = 555; OPTIONS = 556; OR = 557; ORDER = 558; ORDINALITY = 559; OTHERS = 560; OUT_P = 561; OUTER_P = 562; OVER = 563; OVERLAPS = 564; OVERLAY = 565; OVERRIDING = 566; OWNED = 567; OWNER = 568; PARALLEL = 569; PARAMETER = 570; PARSER = 571; PARTIAL = 572; PARTITION = 573; PASSING = 574; PASSWORD = 575; PLACING = 576; PLANS = 577; POLICY = 578; POSITION = 579; PRECEDING = 580; PRECISION = 581; PRESERVE = 582; PREPARE = 583; PREPARED = 584; PRIMARY = 585; PRIOR = 586; PRIVILEGES = 587; PROCEDURAL = 588; PROCEDURE = 589; PROCEDURES = 590; PROGRAM = 591; PUBLICATION = 592; QUOTE = 593; RANGE = 594; READ = 595; REAL = 596; REASSIGN = 597; RECHECK = 598; RECURSIVE = 599; REF_P = 600; REFERENCES = 601; REFERENCING = 602; REFRESH = 603; REINDEX = 604; RELATIVE_P = 605; RELEASE = 606; RENAME = 607; REPEATABLE = 608; REPLACE = 609; REPLICA = 610; RESET = 611; RESTART = 612; RESTRICT = 613; RETURN = 614; RETURNING = 615; RETURNS = 616; REVOKE = 617; RIGHT = 618; ROLE = 619; ROLLBACK = 620; ROLLUP = 621; ROUTINE = 622; ROUTINES = 623; ROW = 624; ROWS = 625; RULE = 626; SAVEPOINT = 627; SCALAR = 628; SCHEMA = 629; SCHEMAS = 630; SCROLL = 631; SEARCH = 632; SECOND_P = 633; SECURITY = 634; SELECT = 635; SEQUENCE = 636; SEQUENCES = 637; SERIALIZABLE = 638; SERVER = 639; SESSION = 640; SESSION_USER = 641; SET = 642; SETS = 643; SETOF = 644; SHARE = 645; SHOW = 646; SIMILAR = 647; SIMPLE = 648; SKIP = 649; SMALLINT = 650; SNAPSHOT = 651; SOME = 652; SQL_P = 653; STABLE = 654; STANDALONE_P = 655; START = 656; STATEMENT = 657; STATISTICS = 658; STDIN = 659; STDOUT = 660; STORAGE = 661; STORED = 662; STRICT_P = 663; STRIP_P = 664; SUBSCRIPTION = 665; SUBSTRING = 666; SUPPORT = 667; SYMMETRIC = 668; SYSID = 669; SYSTEM_P = 670; SYSTEM_USER = 671; TABLE = 672; TABLES = 673; TABLESAMPLE = 674; TABLESPACE = 675; TEMP = 676; TEMPLATE = 677; TEMPORARY = 678; TEXT_P = 679; THEN = 680; TIES = 681; TIME = 682; TIMESTAMP = 683; TO = 684; TRAILING = 685; TRANSACTION = 686; TRANSFORM = 687; TREAT = 688; TRIGGER = 689; TRIM = 690; TRUE_P = 691; TRUNCATE = 692; TRUSTED = 693; TYPE_P = 694; TYPES_P = 695; UESCAPE = 696; UNBOUNDED = 697; UNCOMMITTED = 698; UNENCRYPTED = 699; UNION = 700; UNIQUE = 701; UNKNOWN = 702; UNLISTEN = 703; UNLOGGED = 704; UNTIL = 705; UPDATE = 706; USER = 707; USING = 708; VACUUM = 709; VALID = 710; VALIDATE = 711; VALIDATOR = 712; VALUE_P = 713; VALUES = 714; VARCHAR = 715; VARIADIC = 716; VARYING = 717; VERBOSE = 718; VERSION_P = 719; VIEW = 720; VIEWS = 721; VOLATILE = 722; WHEN = 723; WHERE = 724; WHITESPACE_P = 725; WINDOW = 726; WITH = 727; WITHIN = 728; WITHOUT = 729; WORK = 730; WRAPPER = 731; WRITE = 732; XML_P = 733; XMLATTRIBUTES = 734; XMLCONCAT = 735; XMLELEMENT = 736; XMLEXISTS = 737; XMLFOREST = 738; XMLNAMESPACES = 739; XMLPARSE = 740; XMLPI = 741; XMLROOT = 742; XMLSERIALIZE = 743; XMLTABLE = 744; YEAR_P = 745; YES_P = 746; ZONE = 747; FORMAT_LA = 748; NOT_LA = 749; NULLS_LA = 750; WITH_LA = 751; WITHOUT_LA = 752; MODE_TYPE_NAME = 753; MODE_PLPGSQL_EXPR = 754; MODE_PLPGSQL_ASSIGN1 = 755; MODE_PLPGSQL_ASSIGN2 = 756; MODE_PLPGSQL_ASSIGN3 = 757; UMINUS = 758; }