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