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