spark-connect 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +144 -27
  3. data/README.md +29 -11
  4. data/lib/spark_connect/catalog.rb +157 -12
  5. data/lib/spark_connect/channel_builder.rb +119 -12
  6. data/lib/spark_connect/client.rb +233 -17
  7. data/lib/spark_connect/column.rb +143 -10
  8. data/lib/spark_connect/conf.rb +16 -0
  9. data/lib/spark_connect/data_frame.rb +428 -23
  10. data/lib/spark_connect/functions.rb +1947 -493
  11. data/lib/spark_connect/grouped_data.rb +33 -7
  12. data/lib/spark_connect/merge.rb +146 -0
  13. data/lib/spark_connect/na_functions.rb +43 -9
  14. data/lib/spark_connect/observation.rb +26 -5
  15. data/lib/spark_connect/pipelines.rb +101 -0
  16. data/lib/spark_connect/plan.rb +52 -0
  17. data/lib/spark_connect/proto/spark/connect/base_pb.rb +6 -1
  18. data/lib/spark_connect/proto/spark/connect/base_services_pb.rb +2 -0
  19. data/lib/spark_connect/proto/spark/connect/catalog_pb.rb +11 -1
  20. data/lib/spark_connect/proto/spark/connect/commands_pb.rb +1 -1
  21. data/lib/spark_connect/proto/spark/connect/expressions_pb.rb +3 -1
  22. data/lib/spark_connect/proto/spark/connect/pipelines_pb.rb +5 -1
  23. data/lib/spark_connect/proto/spark/connect/relations_pb.rb +4 -1
  24. data/lib/spark_connect/proto/spark/connect/types_pb.rb +3 -1
  25. data/lib/spark_connect/reader.rb +98 -17
  26. data/lib/spark_connect/session.rb +232 -30
  27. data/lib/spark_connect/stat_functions.rb +19 -9
  28. data/lib/spark_connect/storage_level.rb +79 -0
  29. data/lib/spark_connect/streaming.rb +335 -20
  30. data/lib/spark_connect/table_arg.rb +73 -0
  31. data/lib/spark_connect/tvf.rb +78 -0
  32. data/lib/spark_connect/types.rb +149 -0
  33. data/lib/spark_connect/version.rb +2 -2
  34. data/lib/spark_connect/writer.rb +80 -10
  35. data/lib/spark_connect.rb +4 -0
  36. data/proto/spark/connect/base.proto +93 -1
  37. data/proto/spark/connect/catalog.proto +81 -0
  38. data/proto/spark/connect/commands.proto +7 -0
  39. data/proto/spark/connect/expressions.proto +28 -0
  40. data/proto/spark/connect/pipelines.proto +92 -5
  41. data/proto/spark/connect/relations.proto +71 -1
  42. data/proto/spark/connect/types.proto +19 -0
  43. metadata +6 -2
@@ -14,7 +14,7 @@ require 'spark/connect/ml_pb'
14
14
  require 'spark/connect/pipelines_pb'
15
15
 
16
16
 
17
- descriptor_data = "\n\x18spark/connect/base.proto\x12\rspark.connect\x1a\x19google/protobuf/any.proto\x1a\x1cspark/connect/commands.proto\x1a\x1aspark/connect/common.proto\x1a\x1fspark/connect/expressions.proto\x1a\x1dspark/connect/relations.proto\x1a\x19spark/connect/types.proto\x1a\x16spark/connect/ml.proto\x1a\x1dspark/connect/pipelines.proto\"\x9f\x03\n\x04Plan\x12\'\n\x04root\x18\x01 \x01(\x0b\x32\x17.spark.connect.RelationH\x00\x12)\n\x07\x63ommand\x18\x02 \x01(\x0b\x32\x16.spark.connect.CommandH\x00\x12G\n\x14\x63ompressed_operation\x18\x03 \x01(\x0b\x32\'.spark.connect.Plan.CompressedOperationH\x00\x1a\xee\x01\n\x13\x43ompressedOperation\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12?\n\x07op_type\x18\x02 \x01(\x0e\x32..spark.connect.Plan.CompressedOperation.OpType\x12:\n\x11\x63ompression_codec\x18\x03 \x01(\x0e\x32\x1f.spark.connect.CompressionCodec\"L\n\x06OpType\x12\x17\n\x13OP_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10OP_TYPE_RELATION\x10\x01\x12\x13\n\x0fOP_TYPE_COMMAND\x10\x02\x42\t\n\x07op_type\"\\\n\x0bUserContext\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x11\n\tuser_name\x18\x02 \x01(\t\x12)\n\nextensions\x18\xe7\x07 \x03(\x0b\x32\x14.google.protobuf.Any\"\xe7\x11\n\x12\x41nalyzePlanRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x11 \x01(\tH\x01\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x18\n\x0b\x63lient_type\x18\x03 \x01(\tH\x02\x88\x01\x01\x12:\n\x06schema\x18\x04 \x01(\x0b\x32(.spark.connect.AnalyzePlanRequest.SchemaH\x00\x12<\n\x07\x65xplain\x18\x05 \x01(\x0b\x32).spark.connect.AnalyzePlanRequest.ExplainH\x00\x12\x43\n\x0btree_string\x18\x06 \x01(\x0b\x32,.spark.connect.AnalyzePlanRequest.TreeStringH\x00\x12=\n\x08is_local\x18\x07 \x01(\x0b\x32).spark.connect.AnalyzePlanRequest.IsLocalH\x00\x12\x45\n\x0cis_streaming\x18\x08 \x01(\x0b\x32-.spark.connect.AnalyzePlanRequest.IsStreamingH\x00\x12\x43\n\x0binput_files\x18\t \x01(\x0b\x32,.spark.connect.AnalyzePlanRequest.InputFilesH\x00\x12G\n\rspark_version\x18\n \x01(\x0b\x32..spark.connect.AnalyzePlanRequest.SparkVersionH\x00\x12?\n\tddl_parse\x18\x0b \x01(\x0b\x32*.spark.connect.AnalyzePlanRequest.DDLParseH\x00\x12I\n\x0esame_semantics\x18\x0c \x01(\x0b\x32/.spark.connect.AnalyzePlanRequest.SameSemanticsH\x00\x12G\n\rsemantic_hash\x18\r \x01(\x0b\x32..spark.connect.AnalyzePlanRequest.SemanticHashH\x00\x12<\n\x07persist\x18\x0e \x01(\x0b\x32).spark.connect.AnalyzePlanRequest.PersistH\x00\x12@\n\tunpersist\x18\x0f \x01(\x0b\x32+.spark.connect.AnalyzePlanRequest.UnpersistH\x00\x12N\n\x11get_storage_level\x18\x10 \x01(\x0b\x32\x31.spark.connect.AnalyzePlanRequest.GetStorageLevelH\x00\x12\x42\n\x0bjson_to_ddl\x18\x12 \x01(\x0b\x32+.spark.connect.AnalyzePlanRequest.JsonToDDLH\x00\x1a+\n\x06Schema\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x1a\xa8\x02\n\x07\x45xplain\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x12K\n\x0c\x65xplain_mode\x18\x02 \x01(\x0e\x32\x35.spark.connect.AnalyzePlanRequest.Explain.ExplainMode\"\xac\x01\n\x0b\x45xplainMode\x12\x1c\n\x18\x45XPLAIN_MODE_UNSPECIFIED\x10\x00\x12\x17\n\x13\x45XPLAIN_MODE_SIMPLE\x10\x01\x12\x19\n\x15\x45XPLAIN_MODE_EXTENDED\x10\x02\x12\x18\n\x14\x45XPLAIN_MODE_CODEGEN\x10\x03\x12\x15\n\x11\x45XPLAIN_MODE_COST\x10\x04\x12\x1a\n\x16\x45XPLAIN_MODE_FORMATTED\x10\x05\x1aM\n\nTreeString\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x12\x12\n\x05level\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\x08\n\x06_level\x1a,\n\x07IsLocal\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x1a\x30\n\x0bIsStreaming\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x1a/\n\nInputFiles\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x1a\x0e\n\x0cSparkVersion\x1a\x1e\n\x08\x44\x44LParse\x12\x12\n\nddl_string\x18\x01 \x01(\t\x1a\x62\n\rSameSemantics\x12(\n\x0btarget_plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x12\'\n\nother_plan\x18\x02 \x01(\x0b\x32\x13.spark.connect.Plan\x1a\x31\n\x0cSemanticHash\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x1a\x7f\n\x07Persist\x12)\n\x08relation\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x37\n\rstorage_level\x18\x02 \x01(\x0b\x32\x1b.spark.connect.StorageLevelH\x00\x88\x01\x01\x42\x10\n\x0e_storage_level\x1aZ\n\tUnpersist\x12)\n\x08relation\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x15\n\x08\x62locking\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x0b\n\t_blocking\x1a<\n\x0fGetStorageLevel\x12)\n\x08relation\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x1a \n\tJsonToDDL\x12\x13\n\x0bjson_string\x18\x01 \x01(\tB\t\n\x07\x61nalyzeB)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"\x8c\x0c\n\x13\x41nalyzePlanResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x0f \x01(\t\x12;\n\x06schema\x18\x02 \x01(\x0b\x32).spark.connect.AnalyzePlanResponse.SchemaH\x00\x12=\n\x07\x65xplain\x18\x03 \x01(\x0b\x32*.spark.connect.AnalyzePlanResponse.ExplainH\x00\x12\x44\n\x0btree_string\x18\x04 \x01(\x0b\x32-.spark.connect.AnalyzePlanResponse.TreeStringH\x00\x12>\n\x08is_local\x18\x05 \x01(\x0b\x32*.spark.connect.AnalyzePlanResponse.IsLocalH\x00\x12\x46\n\x0cis_streaming\x18\x06 \x01(\x0b\x32..spark.connect.AnalyzePlanResponse.IsStreamingH\x00\x12\x44\n\x0binput_files\x18\x07 \x01(\x0b\x32-.spark.connect.AnalyzePlanResponse.InputFilesH\x00\x12H\n\rspark_version\x18\x08 \x01(\x0b\x32/.spark.connect.AnalyzePlanResponse.SparkVersionH\x00\x12@\n\tddl_parse\x18\t \x01(\x0b\x32+.spark.connect.AnalyzePlanResponse.DDLParseH\x00\x12J\n\x0esame_semantics\x18\n \x01(\x0b\x32\x30.spark.connect.AnalyzePlanResponse.SameSemanticsH\x00\x12H\n\rsemantic_hash\x18\x0b \x01(\x0b\x32/.spark.connect.AnalyzePlanResponse.SemanticHashH\x00\x12=\n\x07persist\x18\x0c \x01(\x0b\x32*.spark.connect.AnalyzePlanResponse.PersistH\x00\x12\x41\n\tunpersist\x18\r \x01(\x0b\x32,.spark.connect.AnalyzePlanResponse.UnpersistH\x00\x12O\n\x11get_storage_level\x18\x0e \x01(\x0b\x32\x32.spark.connect.AnalyzePlanResponse.GetStorageLevelH\x00\x12\x43\n\x0bjson_to_ddl\x18\x10 \x01(\x0b\x32,.spark.connect.AnalyzePlanResponse.JsonToDDLH\x00\x1a\x31\n\x06Schema\x12\'\n\x06schema\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataType\x1a!\n\x07\x45xplain\x12\x16\n\x0e\x65xplain_string\x18\x01 \x01(\t\x1a!\n\nTreeString\x12\x13\n\x0btree_string\x18\x01 \x01(\t\x1a\x1b\n\x07IsLocal\x12\x10\n\x08is_local\x18\x01 \x01(\x08\x1a#\n\x0bIsStreaming\x12\x14\n\x0cis_streaming\x18\x01 \x01(\x08\x1a\x1b\n\nInputFiles\x12\r\n\x05\x66iles\x18\x01 \x03(\t\x1a\x1f\n\x0cSparkVersion\x12\x0f\n\x07version\x18\x01 \x01(\t\x1a\x33\n\x08\x44\x44LParse\x12\'\n\x06parsed\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataType\x1a\x1f\n\rSameSemantics\x12\x0e\n\x06result\x18\x01 \x01(\x08\x1a\x1e\n\x0cSemanticHash\x12\x0e\n\x06result\x18\x01 \x01(\x05\x1a\t\n\x07Persist\x1a\x0b\n\tUnpersist\x1a\x45\n\x0fGetStorageLevel\x12\x32\n\rstorage_level\x18\x01 \x01(\x0b\x32\x1b.spark.connect.StorageLevel\x1a\x1f\n\tJsonToDDL\x12\x12\n\nddl_string\x18\x01 \x01(\tB\x08\n\x06result\"\xe0\x04\n\x12\x45xecutePlanRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x19\n\x0coperation_id\x18\x06 \x01(\tH\x01\x88\x01\x01\x12!\n\x04plan\x18\x03 \x01(\x0b\x32\x13.spark.connect.Plan\x12\x18\n\x0b\x63lient_type\x18\x04 \x01(\tH\x02\x88\x01\x01\x12H\n\x0frequest_options\x18\x05 \x03(\x0b\x32/.spark.connect.ExecutePlanRequest.RequestOption\x12\x0c\n\x04tags\x18\x07 \x03(\t\x1a\xd2\x01\n\rRequestOption\x12:\n\x10reattach_options\x18\x01 \x01(\x0b\x32\x1e.spark.connect.ReattachOptionsH\x00\x12G\n\x17result_chunking_options\x18\x02 \x01(\x0b\x32$.spark.connect.ResultChunkingOptionsH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\x10\n\x0erequest_optionB)\n\'_client_observed_server_side_session_idB\x0f\n\r_operation_idB\x0e\n\x0c_client_type\"\x86\x15\n\x13\x45xecutePlanResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x0f \x01(\t\x12\x14\n\x0coperation_id\x18\x0c \x01(\t\x12\x13\n\x0bresponse_id\x18\r \x01(\t\x12\x44\n\x0b\x61rrow_batch\x18\x02 \x01(\x0b\x32-.spark.connect.ExecutePlanResponse.ArrowBatchH\x00\x12Q\n\x12sql_command_result\x18\x05 \x01(\x0b\x32\x33.spark.connect.ExecutePlanResponse.SqlCommandResultH\x00\x12]\n#write_stream_operation_start_result\x18\x08 \x01(\x0b\x32..spark.connect.WriteStreamOperationStartResultH\x00\x12T\n\x1estreaming_query_command_result\x18\t \x01(\x0b\x32*.spark.connect.StreamingQueryCommandResultH\x00\x12P\n\x1cget_resources_command_result\x18\n \x01(\x0b\x32(.spark.connect.GetResourcesCommandResultH\x00\x12\x63\n&streaming_query_manager_command_result\x18\x0b \x01(\x0b\x32\x31.spark.connect.StreamingQueryManagerCommandResultH\x00\x12\x63\n&streaming_query_listener_events_result\x18\x10 \x01(\x0b\x32\x31.spark.connect.StreamingQueryListenerEventsResultH\x00\x12L\n\x0fresult_complete\x18\x0e \x01(\x0b\x32\x31.spark.connect.ExecutePlanResponse.ResultCompleteH\x00\x12\x63\n&create_resource_profile_command_result\x18\x11 \x01(\x0b\x32\x31.spark.connect.CreateResourceProfileCommandResultH\x00\x12R\n\x12\x65xecution_progress\x18\x12 \x01(\x0b\x32\x34.spark.connect.ExecutePlanResponse.ExecutionProgressH\x00\x12K\n\x19\x63heckpoint_command_result\x18\x13 \x01(\x0b\x32&.spark.connect.CheckpointCommandResultH\x00\x12;\n\x11ml_command_result\x18\x14 \x01(\x0b\x32\x1e.spark.connect.MlCommandResultH\x00\x12\x43\n\x15pipeline_event_result\x18\x15 \x01(\x0b\x32\".spark.connect.PipelineEventResultH\x00\x12G\n\x17pipeline_command_result\x18\x16 \x01(\x0b\x32$.spark.connect.PipelineCommandResultH\x00\x12g\n(pipeline_query_function_execution_signal\x18\x17 \x01(\x0b\x32\x33.spark.connect.PipelineQueryFunctionExecutionSignalH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x12;\n\x07metrics\x18\x04 \x01(\x0b\x32*.spark.connect.ExecutePlanResponse.Metrics\x12L\n\x10observed_metrics\x18\x06 \x03(\x0b\x32\x32.spark.connect.ExecutePlanResponse.ObservedMetrics\x12\'\n\x06schema\x18\x07 \x01(\x0b\x32\x17.spark.connect.DataType\x1a=\n\x10SqlCommandResult\x12)\n\x08relation\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x1a\xbd\x01\n\nArrowBatch\x12\x11\n\trow_count\x18\x01 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x19\n\x0cstart_offset\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12\x18\n\x0b\x63hunk_index\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12 \n\x13num_chunks_in_batch\x18\x05 \x01(\x03H\x02\x88\x01\x01\x42\x0f\n\r_start_offsetB\x0e\n\x0c_chunk_indexB\x16\n\x14_num_chunks_in_batch\x1a\xaf\x03\n\x07Metrics\x12H\n\x07metrics\x18\x01 \x03(\x0b\x32\x37.spark.connect.ExecutePlanResponse.Metrics.MetricObject\x1a\x98\x02\n\x0cMetricObject\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07plan_id\x18\x02 \x01(\x03\x12\x0e\n\x06parent\x18\x03 \x01(\x03\x12h\n\x11\x65xecution_metrics\x18\x04 \x03(\x0b\x32M.spark.connect.ExecutePlanResponse.Metrics.MetricObject.ExecutionMetricsEntry\x1ao\n\x15\x45xecutionMetricsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x45\n\x05value\x18\x02 \x01(\x0b\x32\x36.spark.connect.ExecutePlanResponse.Metrics.MetricValue:\x02\x38\x01\x1a?\n\x0bMetricValue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03\x12\x13\n\x0bmetric_type\x18\x03 \x01(\t\x1aq\n\x0fObservedMetrics\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x31\n\x06values\x18\x02 \x03(\x0b\x32!.spark.connect.Expression.Literal\x12\x0c\n\x04keys\x18\x03 \x03(\t\x12\x0f\n\x07plan_id\x18\x04 \x01(\x03\x1a\x10\n\x0eResultComplete\x1a\xf6\x01\n\x11\x45xecutionProgress\x12N\n\x06stages\x18\x01 \x03(\x0b\x32>.spark.connect.ExecutePlanResponse.ExecutionProgress.StageInfo\x12\x1a\n\x12num_inflight_tasks\x18\x02 \x01(\x03\x1au\n\tStageInfo\x12\x10\n\x08stage_id\x18\x01 \x01(\x03\x12\x11\n\tnum_tasks\x18\x02 \x01(\x03\x12\x1b\n\x13num_completed_tasks\x18\x03 \x01(\x03\x12\x18\n\x10input_bytes_read\x18\x04 \x01(\x03\x12\x0c\n\x04\x64one\x18\x05 \x01(\x08\x42\x0f\n\rresponse_type\"5\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\x05value\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\"\xe5\x07\n\rConfigRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x39\n\toperation\x18\x03 \x01(\x0b\x32&.spark.connect.ConfigRequest.Operation\x12\x18\n\x0b\x63lient_type\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\xb0\x03\n\tOperation\x12/\n\x03set\x18\x01 \x01(\x0b\x32 .spark.connect.ConfigRequest.SetH\x00\x12/\n\x03get\x18\x02 \x01(\x0b\x32 .spark.connect.ConfigRequest.GetH\x00\x12G\n\x10get_with_default\x18\x03 \x01(\x0b\x32+.spark.connect.ConfigRequest.GetWithDefaultH\x00\x12<\n\nget_option\x18\x04 \x01(\x0b\x32&.spark.connect.ConfigRequest.GetOptionH\x00\x12\x36\n\x07get_all\x18\x05 \x01(\x0b\x32#.spark.connect.ConfigRequest.GetAllH\x00\x12\x33\n\x05unset\x18\x06 \x01(\x0b\x32\".spark.connect.ConfigRequest.UnsetH\x00\x12\x42\n\ris_modifiable\x18\x07 \x01(\x0b\x32).spark.connect.ConfigRequest.IsModifiableH\x00\x42\t\n\x07op_type\x1aM\n\x03Set\x12&\n\x05pairs\x18\x01 \x03(\x0b\x32\x17.spark.connect.KeyValue\x12\x13\n\x06silent\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_silent\x1a\x13\n\x03Get\x12\x0c\n\x04keys\x18\x01 \x03(\t\x1a\x38\n\x0eGetWithDefault\x12&\n\x05pairs\x18\x01 \x03(\x0b\x32\x17.spark.connect.KeyValue\x1a\x19\n\tGetOption\x12\x0c\n\x04keys\x18\x01 \x03(\t\x1a(\n\x06GetAll\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_prefix\x1a\x15\n\x05Unset\x12\x0c\n\x04keys\x18\x01 \x03(\t\x1a\x1c\n\x0cIsModifiable\x12\x0c\n\x04keys\x18\x01 \x03(\tB)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"~\n\x0e\x43onfigResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x04 \x01(\t\x12&\n\x05pairs\x18\x02 \x03(\x0b\x32\x17.spark.connect.KeyValue\x12\x10\n\x08warnings\x18\x03 \x03(\t\"\xbc\x06\n\x13\x41\x64\x64\x41rtifactsRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x33\n&client_observed_server_side_session_id\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x63lient_type\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x39\n\x05\x62\x61tch\x18\x03 \x01(\x0b\x32(.spark.connect.AddArtifactsRequest.BatchH\x00\x12N\n\x0b\x62\x65gin_chunk\x18\x04 \x01(\x0b\x32\x37.spark.connect.AddArtifactsRequest.BeginChunkedArtifactH\x00\x12\x41\n\x05\x63hunk\x18\x05 \x01(\x0b\x32\x30.spark.connect.AddArtifactsRequest.ArtifactChunkH\x00\x1a*\n\rArtifactChunk\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x0b\n\x03\x63rc\x18\x02 \x01(\x03\x1a\x63\n\x13SingleChunkArtifact\x12\x0c\n\x04name\x18\x01 \x01(\t\x12>\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x30.spark.connect.AddArtifactsRequest.ArtifactChunk\x1aR\n\x05\x42\x61tch\x12I\n\tartifacts\x18\x01 \x03(\x0b\x32\x36.spark.connect.AddArtifactsRequest.SingleChunkArtifact\x1a\x96\x01\n\x14\x42\x65ginChunkedArtifact\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0btotal_bytes\x18\x02 \x01(\x03\x12\x12\n\nnum_chunks\x18\x03 \x01(\x03\x12G\n\rinitial_chunk\x18\x04 \x01(\x0b\x32\x30.spark.connect.AddArtifactsRequest.ArtifactChunkB\t\n\x07payloadB)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"\xce\x01\n\x14\x41\x64\x64\x41rtifactsResponse\x12\x12\n\nsession_id\x18\x02 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x03 \x01(\t\x12\x46\n\tartifacts\x18\x01 \x03(\x0b\x32\x33.spark.connect.AddArtifactsResponse.ArtifactSummary\x1a:\n\x0f\x41rtifactSummary\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x19\n\x11is_crc_successful\x18\x02 \x01(\x08\"\xf8\x01\n\x17\x41rtifactStatusesRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x18\n\x0b\x63lient_type\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\r\n\x05names\x18\x04 \x03(\tB)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"\xa2\x02\n\x18\x41rtifactStatusesResponse\x12\x12\n\nsession_id\x18\x02 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x03 \x01(\t\x12G\n\x08statuses\x18\x01 \x03(\x0b\x32\x35.spark.connect.ArtifactStatusesResponse.StatusesEntry\x1ag\n\rStatusesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x45\n\x05value\x18\x02 \x01(\x0b\x32\x36.spark.connect.ArtifactStatusesResponse.ArtifactStatus:\x02\x38\x01\x1a \n\x0e\x41rtifactStatus\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"\xea\x03\n\x10InterruptRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x18\n\x0b\x63lient_type\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x45\n\x0einterrupt_type\x18\x04 \x01(\x0e\x32-.spark.connect.InterruptRequest.InterruptType\x12\x17\n\roperation_tag\x18\x05 \x01(\tH\x00\x12\x16\n\x0coperation_id\x18\x06 \x01(\tH\x00\"\x80\x01\n\rInterruptType\x12\x1e\n\x1aINTERRUPT_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12INTERRUPT_TYPE_ALL\x10\x01\x12\x16\n\x12INTERRUPT_TYPE_TAG\x10\x02\x12\x1f\n\x1bINTERRUPT_TYPE_OPERATION_ID\x10\x03\x42\x0b\n\tinterruptB)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"`\n\x11InterruptResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x03 \x01(\t\x12\x17\n\x0finterrupted_ids\x18\x02 \x03(\t\"\'\n\x0fReattachOptions\x12\x14\n\x0creattachable\x18\x01 \x01(\x08\"\x83\x01\n\x15ResultChunkingOptions\x12\"\n\x1a\x61llow_arrow_batch_chunking\x18\x01 \x01(\x08\x12\'\n\x1apreferred_arrow_chunk_size\x18\x02 \x01(\x03H\x00\x88\x01\x01\x42\x1d\n\x1b_preferred_arrow_chunk_size\"\xb2\x02\n\x16ReattachExecuteRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x14\n\x0coperation_id\x18\x03 \x01(\t\x12\x18\n\x0b\x63lient_type\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x10last_response_id\x18\x05 \x01(\tH\x02\x88\x01\x01\x42)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_typeB\x13\n\x11_last_response_id\"\xcf\x03\n\x15ReleaseExecuteRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x14\n\x0coperation_id\x18\x03 \x01(\t\x12\x18\n\x0b\x63lient_type\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x46\n\x0brelease_all\x18\x05 \x01(\x0b\x32/.spark.connect.ReleaseExecuteRequest.ReleaseAllH\x00\x12J\n\rrelease_until\x18\x06 \x01(\x0b\x32\x31.spark.connect.ReleaseExecuteRequest.ReleaseUntilH\x00\x1a\x0c\n\nReleaseAll\x1a#\n\x0cReleaseUntil\x12\x13\n\x0bresponse_id\x18\x01 \x01(\tB\t\n\x07releaseB)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"x\n\x16ReleaseExecuteResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x03 \x01(\t\x12\x19\n\x0coperation_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_operation_id\"\xa0\x01\n\x15ReleaseSessionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x18\n\x0b\x63lient_type\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x17\n\x0f\x61llow_reconnect\x18\x04 \x01(\x08\x42\x0e\n\x0c_client_type\"L\n\x16ReleaseSessionResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x02 \x01(\t\"\xfc\x01\n\x18\x46\x65tchErrorDetailsRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x10\n\x08\x65rror_id\x18\x03 \x01(\t\x12\x18\n\x0b\x63lient_type\x18\x04 \x01(\tH\x01\x88\x01\x01\x42)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"\xc0\x0c\n\x19\x46\x65tchErrorDetailsResponse\x12\x1e\n\x16server_side_session_id\x18\x03 \x01(\t\x12\x12\n\nsession_id\x18\x04 \x01(\t\x12\x1b\n\x0eroot_error_idx\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12>\n\x06\x65rrors\x18\x02 \x03(\x0b\x32..spark.connect.FetchErrorDetailsResponse.Error\x1a|\n\x11StackTraceElement\x12\x17\n\x0f\x64\x65\x63laring_class\x18\x01 \x01(\t\x12\x13\n\x0bmethod_name\x18\x02 \x01(\t\x12\x16\n\tfile_name\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x0bline_number\x18\x04 \x01(\x05\x42\x0c\n\n_file_name\x1a\x97\x02\n\x0cQueryContext\x12W\n\x0c\x63ontext_type\x18\n \x01(\x0e\x32\x41.spark.connect.FetchErrorDetailsResponse.QueryContext.ContextType\x12\x13\n\x0bobject_type\x18\x01 \x01(\t\x12\x13\n\x0bobject_name\x18\x02 \x01(\t\x12\x13\n\x0bstart_index\x18\x03 \x01(\x05\x12\x12\n\nstop_index\x18\x04 \x01(\x05\x12\x10\n\x08\x66ragment\x18\x05 \x01(\t\x12\x11\n\tcall_site\x18\x06 \x01(\t\x12\x0f\n\x07summary\x18\x07 \x01(\t\"%\n\x0b\x43ontextType\x12\x07\n\x03SQL\x10\x00\x12\r\n\tDATAFRAME\x10\x01\x1a\xce\x03\n\x0eSparkThrowable\x12\x18\n\x0b\x65rror_class\x18\x01 \x01(\tH\x00\x88\x01\x01\x12j\n\x12message_parameters\x18\x02 \x03(\x0b\x32N.spark.connect.FetchErrorDetailsResponse.SparkThrowable.MessageParametersEntry\x12M\n\x0equery_contexts\x18\x03 \x03(\x0b\x32\x35.spark.connect.FetchErrorDetailsResponse.QueryContext\x12\x16\n\tsql_state\x18\x04 \x01(\tH\x01\x88\x01\x01\x12^\n\x14\x62reaking_change_info\x18\x05 \x01(\x0b\x32;.spark.connect.FetchErrorDetailsResponse.BreakingChangeInfoH\x02\x88\x01\x01\x1a\x38\n\x16MessageParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_error_classB\x0c\n\n_sql_stateB\x17\n\x15_breaking_change_info\x1a\xca\x01\n\x12\x42reakingChangeInfo\x12\x19\n\x11migration_message\x18\x01 \x03(\t\x12Y\n\x11mitigation_config\x18\x02 \x01(\x0b\x32\x39.spark.connect.FetchErrorDetailsResponse.MitigationConfigH\x00\x88\x01\x01\x12\x18\n\x0bneeds_audit\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x14\n\x12_mitigation_configB\x0e\n\x0c_needs_audit\x1a.\n\x10MitigationConfig\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a\x98\x02\n\x05\x45rror\x12\x1c\n\x14\x65rror_type_hierarchy\x18\x01 \x03(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12O\n\x0bstack_trace\x18\x03 \x03(\x0b\x32:.spark.connect.FetchErrorDetailsResponse.StackTraceElement\x12\x16\n\tcause_idx\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12U\n\x0fspark_throwable\x18\x05 \x01(\x0b\x32\x37.spark.connect.FetchErrorDetailsResponse.SparkThrowableH\x01\x88\x01\x01\x42\x0c\n\n_cause_idxB\x12\n\x10_spark_throwableB\x11\n\x0f_root_error_idx\"P\n\x17\x43heckpointCommandResult\x12\x35\n\x08relation\x18\x01 \x01(\x0b\x32#.spark.connect.CachedRemoteRelation\"\x95\x02\n\x13\x43loneSessionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x18\n\x0b\x63lient_type\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0enew_session_id\x18\x04 \x01(\tH\x02\x88\x01\x01\x42)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_typeB\x11\n\x0f_new_session_id\"\x86\x01\n\x14\x43loneSessionResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x02 \x01(\t\x12\x16\n\x0enew_session_id\x18\x03 \x01(\t\x12\"\n\x1anew_server_side_session_id\x18\x04 \x01(\t*Q\n\x10\x43ompressionCodec\x12!\n\x1d\x43OMPRESSION_CODEC_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x43OMPRESSION_CODEC_ZSTD\x10\x01\x32\x8d\x08\n\x13SparkConnectService\x12X\n\x0b\x45xecutePlan\x12!.spark.connect.ExecutePlanRequest\x1a\".spark.connect.ExecutePlanResponse\"\x00\x30\x01\x12V\n\x0b\x41nalyzePlan\x12!.spark.connect.AnalyzePlanRequest\x1a\".spark.connect.AnalyzePlanResponse\"\x00\x12G\n\x06\x43onfig\x12\x1c.spark.connect.ConfigRequest\x1a\x1d.spark.connect.ConfigResponse\"\x00\x12[\n\x0c\x41\x64\x64\x41rtifacts\x12\".spark.connect.AddArtifactsRequest\x1a#.spark.connect.AddArtifactsResponse\"\x00(\x01\x12\x63\n\x0e\x41rtifactStatus\x12&.spark.connect.ArtifactStatusesRequest\x1a\'.spark.connect.ArtifactStatusesResponse\"\x00\x12P\n\tInterrupt\x12\x1f.spark.connect.InterruptRequest\x1a .spark.connect.InterruptResponse\"\x00\x12`\n\x0fReattachExecute\x12%.spark.connect.ReattachExecuteRequest\x1a\".spark.connect.ExecutePlanResponse\"\x00\x30\x01\x12_\n\x0eReleaseExecute\x12$.spark.connect.ReleaseExecuteRequest\x1a%.spark.connect.ReleaseExecuteResponse\"\x00\x12_\n\x0eReleaseSession\x12$.spark.connect.ReleaseSessionRequest\x1a%.spark.connect.ReleaseSessionResponse\"\x00\x12h\n\x11\x46\x65tchErrorDetails\x12\'.spark.connect.FetchErrorDetailsRequest\x1a(.spark.connect.FetchErrorDetailsResponse\"\x00\x12Y\n\x0c\x43loneSession\x12\".spark.connect.CloneSessionRequest\x1a#.spark.connect.CloneSessionResponse\"\x00\x42\x36\n\x1eorg.apache.spark.connect.protoP\x01Z\x12internal/generatedb\x06proto3"
17
+ descriptor_data = "\n\x18spark/connect/base.proto\x12\rspark.connect\x1a\x19google/protobuf/any.proto\x1a\x1cspark/connect/commands.proto\x1a\x1aspark/connect/common.proto\x1a\x1fspark/connect/expressions.proto\x1a\x1dspark/connect/relations.proto\x1a\x19spark/connect/types.proto\x1a\x16spark/connect/ml.proto\x1a\x1dspark/connect/pipelines.proto\"\x9f\x03\n\x04Plan\x12\'\n\x04root\x18\x01 \x01(\x0b\x32\x17.spark.connect.RelationH\x00\x12)\n\x07\x63ommand\x18\x02 \x01(\x0b\x32\x16.spark.connect.CommandH\x00\x12G\n\x14\x63ompressed_operation\x18\x03 \x01(\x0b\x32\'.spark.connect.Plan.CompressedOperationH\x00\x1a\xee\x01\n\x13\x43ompressedOperation\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12?\n\x07op_type\x18\x02 \x01(\x0e\x32..spark.connect.Plan.CompressedOperation.OpType\x12:\n\x11\x63ompression_codec\x18\x03 \x01(\x0e\x32\x1f.spark.connect.CompressionCodec\"L\n\x06OpType\x12\x17\n\x13OP_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10OP_TYPE_RELATION\x10\x01\x12\x13\n\x0fOP_TYPE_COMMAND\x10\x02\x42\t\n\x07op_type\"\\\n\x0bUserContext\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x11\n\tuser_name\x18\x02 \x01(\t\x12)\n\nextensions\x18\xe7\x07 \x03(\x0b\x32\x14.google.protobuf.Any\"\xe7\x11\n\x12\x41nalyzePlanRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x11 \x01(\tH\x01\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x18\n\x0b\x63lient_type\x18\x03 \x01(\tH\x02\x88\x01\x01\x12:\n\x06schema\x18\x04 \x01(\x0b\x32(.spark.connect.AnalyzePlanRequest.SchemaH\x00\x12<\n\x07\x65xplain\x18\x05 \x01(\x0b\x32).spark.connect.AnalyzePlanRequest.ExplainH\x00\x12\x43\n\x0btree_string\x18\x06 \x01(\x0b\x32,.spark.connect.AnalyzePlanRequest.TreeStringH\x00\x12=\n\x08is_local\x18\x07 \x01(\x0b\x32).spark.connect.AnalyzePlanRequest.IsLocalH\x00\x12\x45\n\x0cis_streaming\x18\x08 \x01(\x0b\x32-.spark.connect.AnalyzePlanRequest.IsStreamingH\x00\x12\x43\n\x0binput_files\x18\t \x01(\x0b\x32,.spark.connect.AnalyzePlanRequest.InputFilesH\x00\x12G\n\rspark_version\x18\n \x01(\x0b\x32..spark.connect.AnalyzePlanRequest.SparkVersionH\x00\x12?\n\tddl_parse\x18\x0b \x01(\x0b\x32*.spark.connect.AnalyzePlanRequest.DDLParseH\x00\x12I\n\x0esame_semantics\x18\x0c \x01(\x0b\x32/.spark.connect.AnalyzePlanRequest.SameSemanticsH\x00\x12G\n\rsemantic_hash\x18\r \x01(\x0b\x32..spark.connect.AnalyzePlanRequest.SemanticHashH\x00\x12<\n\x07persist\x18\x0e \x01(\x0b\x32).spark.connect.AnalyzePlanRequest.PersistH\x00\x12@\n\tunpersist\x18\x0f \x01(\x0b\x32+.spark.connect.AnalyzePlanRequest.UnpersistH\x00\x12N\n\x11get_storage_level\x18\x10 \x01(\x0b\x32\x31.spark.connect.AnalyzePlanRequest.GetStorageLevelH\x00\x12\x42\n\x0bjson_to_ddl\x18\x12 \x01(\x0b\x32+.spark.connect.AnalyzePlanRequest.JsonToDDLH\x00\x1a+\n\x06Schema\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x1a\xa8\x02\n\x07\x45xplain\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x12K\n\x0c\x65xplain_mode\x18\x02 \x01(\x0e\x32\x35.spark.connect.AnalyzePlanRequest.Explain.ExplainMode\"\xac\x01\n\x0b\x45xplainMode\x12\x1c\n\x18\x45XPLAIN_MODE_UNSPECIFIED\x10\x00\x12\x17\n\x13\x45XPLAIN_MODE_SIMPLE\x10\x01\x12\x19\n\x15\x45XPLAIN_MODE_EXTENDED\x10\x02\x12\x18\n\x14\x45XPLAIN_MODE_CODEGEN\x10\x03\x12\x15\n\x11\x45XPLAIN_MODE_COST\x10\x04\x12\x1a\n\x16\x45XPLAIN_MODE_FORMATTED\x10\x05\x1aM\n\nTreeString\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x12\x12\n\x05level\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\x08\n\x06_level\x1a,\n\x07IsLocal\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x1a\x30\n\x0bIsStreaming\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x1a/\n\nInputFiles\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x1a\x0e\n\x0cSparkVersion\x1a\x1e\n\x08\x44\x44LParse\x12\x12\n\nddl_string\x18\x01 \x01(\t\x1a\x62\n\rSameSemantics\x12(\n\x0btarget_plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x12\'\n\nother_plan\x18\x02 \x01(\x0b\x32\x13.spark.connect.Plan\x1a\x31\n\x0cSemanticHash\x12!\n\x04plan\x18\x01 \x01(\x0b\x32\x13.spark.connect.Plan\x1a\x7f\n\x07Persist\x12)\n\x08relation\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x37\n\rstorage_level\x18\x02 \x01(\x0b\x32\x1b.spark.connect.StorageLevelH\x00\x88\x01\x01\x42\x10\n\x0e_storage_level\x1aZ\n\tUnpersist\x12)\n\x08relation\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x15\n\x08\x62locking\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x0b\n\t_blocking\x1a<\n\x0fGetStorageLevel\x12)\n\x08relation\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x1a \n\tJsonToDDL\x12\x13\n\x0bjson_string\x18\x01 \x01(\tB\t\n\x07\x61nalyzeB)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"\x8c\x0c\n\x13\x41nalyzePlanResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x0f \x01(\t\x12;\n\x06schema\x18\x02 \x01(\x0b\x32).spark.connect.AnalyzePlanResponse.SchemaH\x00\x12=\n\x07\x65xplain\x18\x03 \x01(\x0b\x32*.spark.connect.AnalyzePlanResponse.ExplainH\x00\x12\x44\n\x0btree_string\x18\x04 \x01(\x0b\x32-.spark.connect.AnalyzePlanResponse.TreeStringH\x00\x12>\n\x08is_local\x18\x05 \x01(\x0b\x32*.spark.connect.AnalyzePlanResponse.IsLocalH\x00\x12\x46\n\x0cis_streaming\x18\x06 \x01(\x0b\x32..spark.connect.AnalyzePlanResponse.IsStreamingH\x00\x12\x44\n\x0binput_files\x18\x07 \x01(\x0b\x32-.spark.connect.AnalyzePlanResponse.InputFilesH\x00\x12H\n\rspark_version\x18\x08 \x01(\x0b\x32/.spark.connect.AnalyzePlanResponse.SparkVersionH\x00\x12@\n\tddl_parse\x18\t \x01(\x0b\x32+.spark.connect.AnalyzePlanResponse.DDLParseH\x00\x12J\n\x0esame_semantics\x18\n \x01(\x0b\x32\x30.spark.connect.AnalyzePlanResponse.SameSemanticsH\x00\x12H\n\rsemantic_hash\x18\x0b \x01(\x0b\x32/.spark.connect.AnalyzePlanResponse.SemanticHashH\x00\x12=\n\x07persist\x18\x0c \x01(\x0b\x32*.spark.connect.AnalyzePlanResponse.PersistH\x00\x12\x41\n\tunpersist\x18\r \x01(\x0b\x32,.spark.connect.AnalyzePlanResponse.UnpersistH\x00\x12O\n\x11get_storage_level\x18\x0e \x01(\x0b\x32\x32.spark.connect.AnalyzePlanResponse.GetStorageLevelH\x00\x12\x43\n\x0bjson_to_ddl\x18\x10 \x01(\x0b\x32,.spark.connect.AnalyzePlanResponse.JsonToDDLH\x00\x1a\x31\n\x06Schema\x12\'\n\x06schema\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataType\x1a!\n\x07\x45xplain\x12\x16\n\x0e\x65xplain_string\x18\x01 \x01(\t\x1a!\n\nTreeString\x12\x13\n\x0btree_string\x18\x01 \x01(\t\x1a\x1b\n\x07IsLocal\x12\x10\n\x08is_local\x18\x01 \x01(\x08\x1a#\n\x0bIsStreaming\x12\x14\n\x0cis_streaming\x18\x01 \x01(\x08\x1a\x1b\n\nInputFiles\x12\r\n\x05\x66iles\x18\x01 \x03(\t\x1a\x1f\n\x0cSparkVersion\x12\x0f\n\x07version\x18\x01 \x01(\t\x1a\x33\n\x08\x44\x44LParse\x12\'\n\x06parsed\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataType\x1a\x1f\n\rSameSemantics\x12\x0e\n\x06result\x18\x01 \x01(\x08\x1a\x1e\n\x0cSemanticHash\x12\x0e\n\x06result\x18\x01 \x01(\x05\x1a\t\n\x07Persist\x1a\x0b\n\tUnpersist\x1a\x45\n\x0fGetStorageLevel\x12\x32\n\rstorage_level\x18\x01 \x01(\x0b\x32\x1b.spark.connect.StorageLevel\x1a\x1f\n\tJsonToDDL\x12\x12\n\nddl_string\x18\x01 \x01(\tB\x08\n\x06result\"\xe0\x04\n\x12\x45xecutePlanRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x19\n\x0coperation_id\x18\x06 \x01(\tH\x01\x88\x01\x01\x12!\n\x04plan\x18\x03 \x01(\x0b\x32\x13.spark.connect.Plan\x12\x18\n\x0b\x63lient_type\x18\x04 \x01(\tH\x02\x88\x01\x01\x12H\n\x0frequest_options\x18\x05 \x03(\x0b\x32/.spark.connect.ExecutePlanRequest.RequestOption\x12\x0c\n\x04tags\x18\x07 \x03(\t\x1a\xd2\x01\n\rRequestOption\x12:\n\x10reattach_options\x18\x01 \x01(\x0b\x32\x1e.spark.connect.ReattachOptionsH\x00\x12G\n\x17result_chunking_options\x18\x02 \x01(\x0b\x32$.spark.connect.ResultChunkingOptionsH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\x10\n\x0erequest_optionB)\n\'_client_observed_server_side_session_idB\x0f\n\r_operation_idB\x0e\n\x0c_client_type\"\xf7\x15\n\x13\x45xecutePlanResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x0f \x01(\t\x12\x14\n\x0coperation_id\x18\x0c \x01(\t\x12\x13\n\x0bresponse_id\x18\r \x01(\t\x12\x44\n\x0b\x61rrow_batch\x18\x02 \x01(\x0b\x32-.spark.connect.ExecutePlanResponse.ArrowBatchH\x00\x12Q\n\x12sql_command_result\x18\x05 \x01(\x0b\x32\x33.spark.connect.ExecutePlanResponse.SqlCommandResultH\x00\x12]\n#write_stream_operation_start_result\x18\x08 \x01(\x0b\x32..spark.connect.WriteStreamOperationStartResultH\x00\x12T\n\x1estreaming_query_command_result\x18\t \x01(\x0b\x32*.spark.connect.StreamingQueryCommandResultH\x00\x12P\n\x1cget_resources_command_result\x18\n \x01(\x0b\x32(.spark.connect.GetResourcesCommandResultH\x00\x12\x63\n&streaming_query_manager_command_result\x18\x0b \x01(\x0b\x32\x31.spark.connect.StreamingQueryManagerCommandResultH\x00\x12\x63\n&streaming_query_listener_events_result\x18\x10 \x01(\x0b\x32\x31.spark.connect.StreamingQueryListenerEventsResultH\x00\x12L\n\x0fresult_complete\x18\x0e \x01(\x0b\x32\x31.spark.connect.ExecutePlanResponse.ResultCompleteH\x00\x12\x63\n&create_resource_profile_command_result\x18\x11 \x01(\x0b\x32\x31.spark.connect.CreateResourceProfileCommandResultH\x00\x12R\n\x12\x65xecution_progress\x18\x12 \x01(\x0b\x32\x34.spark.connect.ExecutePlanResponse.ExecutionProgressH\x00\x12K\n\x19\x63heckpoint_command_result\x18\x13 \x01(\x0b\x32&.spark.connect.CheckpointCommandResultH\x00\x12;\n\x11ml_command_result\x18\x14 \x01(\x0b\x32\x1e.spark.connect.MlCommandResultH\x00\x12\x43\n\x15pipeline_event_result\x18\x15 \x01(\x0b\x32\".spark.connect.PipelineEventResultH\x00\x12G\n\x17pipeline_command_result\x18\x16 \x01(\x0b\x32$.spark.connect.PipelineCommandResultH\x00\x12g\n(pipeline_query_function_execution_signal\x18\x17 \x01(\x0b\x32\x33.spark.connect.PipelineQueryFunctionExecutionSignalH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x12;\n\x07metrics\x18\x04 \x01(\x0b\x32*.spark.connect.ExecutePlanResponse.Metrics\x12L\n\x10observed_metrics\x18\x06 \x03(\x0b\x32\x32.spark.connect.ExecutePlanResponse.ObservedMetrics\x12\'\n\x06schema\x18\x07 \x01(\x0b\x32\x17.spark.connect.DataType\x1a=\n\x10SqlCommandResult\x12)\n\x08relation\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x1a\xbd\x01\n\nArrowBatch\x12\x11\n\trow_count\x18\x01 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x19\n\x0cstart_offset\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12\x18\n\x0b\x63hunk_index\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12 \n\x13num_chunks_in_batch\x18\x05 \x01(\x03H\x02\x88\x01\x01\x42\x0f\n\r_start_offsetB\x0e\n\x0c_chunk_indexB\x16\n\x14_num_chunks_in_batch\x1a\xaf\x03\n\x07Metrics\x12H\n\x07metrics\x18\x01 \x03(\x0b\x32\x37.spark.connect.ExecutePlanResponse.Metrics.MetricObject\x1a\x98\x02\n\x0cMetricObject\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07plan_id\x18\x02 \x01(\x03\x12\x0e\n\x06parent\x18\x03 \x01(\x03\x12h\n\x11\x65xecution_metrics\x18\x04 \x03(\x0b\x32M.spark.connect.ExecutePlanResponse.Metrics.MetricObject.ExecutionMetricsEntry\x1ao\n\x15\x45xecutionMetricsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x45\n\x05value\x18\x02 \x01(\x0b\x32\x36.spark.connect.ExecutePlanResponse.Metrics.MetricValue:\x02\x38\x01\x1a?\n\x0bMetricValue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03\x12\x13\n\x0bmetric_type\x18\x03 \x01(\t\x1a\xe1\x01\n\x0fObservedMetrics\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x31\n\x06values\x18\x02 \x03(\x0b\x32!.spark.connect.Expression.Literal\x12\x0c\n\x04keys\x18\x03 \x03(\t\x12\x0f\n\x07plan_id\x18\x04 \x01(\x03\x12\x1b\n\x0eroot_error_idx\x18\x05 \x01(\x05H\x00\x88\x01\x01\x12>\n\x06\x65rrors\x18\x06 \x03(\x0b\x32..spark.connect.FetchErrorDetailsResponse.ErrorB\x11\n\x0f_root_error_idx\x1a\x10\n\x0eResultComplete\x1a\xf6\x01\n\x11\x45xecutionProgress\x12N\n\x06stages\x18\x01 \x03(\x0b\x32>.spark.connect.ExecutePlanResponse.ExecutionProgress.StageInfo\x12\x1a\n\x12num_inflight_tasks\x18\x02 \x01(\x03\x1au\n\tStageInfo\x12\x10\n\x08stage_id\x18\x01 \x01(\x03\x12\x11\n\tnum_tasks\x18\x02 \x01(\x03\x12\x1b\n\x13num_completed_tasks\x18\x03 \x01(\x03\x12\x18\n\x10input_bytes_read\x18\x04 \x01(\x03\x12\x0c\n\x04\x64one\x18\x05 \x01(\x08\x42\x0f\n\rresponse_type\"5\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\x05value\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\"\xe5\x07\n\rConfigRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x39\n\toperation\x18\x03 \x01(\x0b\x32&.spark.connect.ConfigRequest.Operation\x12\x18\n\x0b\x63lient_type\x18\x04 \x01(\tH\x01\x88\x01\x01\x1a\xb0\x03\n\tOperation\x12/\n\x03set\x18\x01 \x01(\x0b\x32 .spark.connect.ConfigRequest.SetH\x00\x12/\n\x03get\x18\x02 \x01(\x0b\x32 .spark.connect.ConfigRequest.GetH\x00\x12G\n\x10get_with_default\x18\x03 \x01(\x0b\x32+.spark.connect.ConfigRequest.GetWithDefaultH\x00\x12<\n\nget_option\x18\x04 \x01(\x0b\x32&.spark.connect.ConfigRequest.GetOptionH\x00\x12\x36\n\x07get_all\x18\x05 \x01(\x0b\x32#.spark.connect.ConfigRequest.GetAllH\x00\x12\x33\n\x05unset\x18\x06 \x01(\x0b\x32\".spark.connect.ConfigRequest.UnsetH\x00\x12\x42\n\ris_modifiable\x18\x07 \x01(\x0b\x32).spark.connect.ConfigRequest.IsModifiableH\x00\x42\t\n\x07op_type\x1aM\n\x03Set\x12&\n\x05pairs\x18\x01 \x03(\x0b\x32\x17.spark.connect.KeyValue\x12\x13\n\x06silent\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_silent\x1a\x13\n\x03Get\x12\x0c\n\x04keys\x18\x01 \x03(\t\x1a\x38\n\x0eGetWithDefault\x12&\n\x05pairs\x18\x01 \x03(\x0b\x32\x17.spark.connect.KeyValue\x1a\x19\n\tGetOption\x12\x0c\n\x04keys\x18\x01 \x03(\t\x1a(\n\x06GetAll\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_prefix\x1a\x15\n\x05Unset\x12\x0c\n\x04keys\x18\x01 \x03(\t\x1a\x1c\n\x0cIsModifiable\x12\x0c\n\x04keys\x18\x01 \x03(\tB)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"~\n\x0e\x43onfigResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x04 \x01(\t\x12&\n\x05pairs\x18\x02 \x03(\x0b\x32\x17.spark.connect.KeyValue\x12\x10\n\x08warnings\x18\x03 \x03(\t\"\xbc\x06\n\x13\x41\x64\x64\x41rtifactsRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x33\n&client_observed_server_side_session_id\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x63lient_type\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x39\n\x05\x62\x61tch\x18\x03 \x01(\x0b\x32(.spark.connect.AddArtifactsRequest.BatchH\x00\x12N\n\x0b\x62\x65gin_chunk\x18\x04 \x01(\x0b\x32\x37.spark.connect.AddArtifactsRequest.BeginChunkedArtifactH\x00\x12\x41\n\x05\x63hunk\x18\x05 \x01(\x0b\x32\x30.spark.connect.AddArtifactsRequest.ArtifactChunkH\x00\x1a*\n\rArtifactChunk\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x0b\n\x03\x63rc\x18\x02 \x01(\x03\x1a\x63\n\x13SingleChunkArtifact\x12\x0c\n\x04name\x18\x01 \x01(\t\x12>\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x30.spark.connect.AddArtifactsRequest.ArtifactChunk\x1aR\n\x05\x42\x61tch\x12I\n\tartifacts\x18\x01 \x03(\x0b\x32\x36.spark.connect.AddArtifactsRequest.SingleChunkArtifact\x1a\x96\x01\n\x14\x42\x65ginChunkedArtifact\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0btotal_bytes\x18\x02 \x01(\x03\x12\x12\n\nnum_chunks\x18\x03 \x01(\x03\x12G\n\rinitial_chunk\x18\x04 \x01(\x0b\x32\x30.spark.connect.AddArtifactsRequest.ArtifactChunkB\t\n\x07payloadB)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"\xce\x01\n\x14\x41\x64\x64\x41rtifactsResponse\x12\x12\n\nsession_id\x18\x02 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x03 \x01(\t\x12\x46\n\tartifacts\x18\x01 \x03(\x0b\x32\x33.spark.connect.AddArtifactsResponse.ArtifactSummary\x1a:\n\x0f\x41rtifactSummary\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x19\n\x11is_crc_successful\x18\x02 \x01(\x08\"\xf8\x01\n\x17\x41rtifactStatusesRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x18\n\x0b\x63lient_type\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\r\n\x05names\x18\x04 \x03(\tB)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"\xa2\x02\n\x18\x41rtifactStatusesResponse\x12\x12\n\nsession_id\x18\x02 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x03 \x01(\t\x12G\n\x08statuses\x18\x01 \x03(\x0b\x32\x35.spark.connect.ArtifactStatusesResponse.StatusesEntry\x1ag\n\rStatusesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x45\n\x05value\x18\x02 \x01(\x0b\x32\x36.spark.connect.ArtifactStatusesResponse.ArtifactStatus:\x02\x38\x01\x1a \n\x0e\x41rtifactStatus\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"\xea\x03\n\x10InterruptRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x18\n\x0b\x63lient_type\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x45\n\x0einterrupt_type\x18\x04 \x01(\x0e\x32-.spark.connect.InterruptRequest.InterruptType\x12\x17\n\roperation_tag\x18\x05 \x01(\tH\x00\x12\x16\n\x0coperation_id\x18\x06 \x01(\tH\x00\"\x80\x01\n\rInterruptType\x12\x1e\n\x1aINTERRUPT_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12INTERRUPT_TYPE_ALL\x10\x01\x12\x16\n\x12INTERRUPT_TYPE_TAG\x10\x02\x12\x1f\n\x1bINTERRUPT_TYPE_OPERATION_ID\x10\x03\x42\x0b\n\tinterruptB)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"`\n\x11InterruptResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x03 \x01(\t\x12\x17\n\x0finterrupted_ids\x18\x02 \x03(\t\"\'\n\x0fReattachOptions\x12\x14\n\x0creattachable\x18\x01 \x01(\x08\"\x83\x01\n\x15ResultChunkingOptions\x12\"\n\x1a\x61llow_arrow_batch_chunking\x18\x01 \x01(\x08\x12\'\n\x1apreferred_arrow_chunk_size\x18\x02 \x01(\x03H\x00\x88\x01\x01\x42\x1d\n\x1b_preferred_arrow_chunk_size\"\xb2\x02\n\x16ReattachExecuteRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x14\n\x0coperation_id\x18\x03 \x01(\t\x12\x18\n\x0b\x63lient_type\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x10last_response_id\x18\x05 \x01(\tH\x02\x88\x01\x01\x42)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_typeB\x13\n\x11_last_response_id\"\xcf\x03\n\x15ReleaseExecuteRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x14\n\x0coperation_id\x18\x03 \x01(\t\x12\x18\n\x0b\x63lient_type\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x46\n\x0brelease_all\x18\x05 \x01(\x0b\x32/.spark.connect.ReleaseExecuteRequest.ReleaseAllH\x00\x12J\n\rrelease_until\x18\x06 \x01(\x0b\x32\x31.spark.connect.ReleaseExecuteRequest.ReleaseUntilH\x00\x1a\x0c\n\nReleaseAll\x1a#\n\x0cReleaseUntil\x12\x13\n\x0bresponse_id\x18\x01 \x01(\tB\t\n\x07releaseB)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"x\n\x16ReleaseExecuteResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x03 \x01(\t\x12\x19\n\x0coperation_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_operation_id\"\xa0\x01\n\x15ReleaseSessionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x18\n\x0b\x63lient_type\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x17\n\x0f\x61llow_reconnect\x18\x04 \x01(\x08\x42\x0e\n\x0c_client_type\"L\n\x16ReleaseSessionResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x02 \x01(\t\"\xfc\x01\n\x18\x46\x65tchErrorDetailsRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x10\n\x08\x65rror_id\x18\x03 \x01(\t\x12\x18\n\x0b\x63lient_type\x18\x04 \x01(\tH\x01\x88\x01\x01\x42)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_type\"\xc0\x0c\n\x19\x46\x65tchErrorDetailsResponse\x12\x1e\n\x16server_side_session_id\x18\x03 \x01(\t\x12\x12\n\nsession_id\x18\x04 \x01(\t\x12\x1b\n\x0eroot_error_idx\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12>\n\x06\x65rrors\x18\x02 \x03(\x0b\x32..spark.connect.FetchErrorDetailsResponse.Error\x1a|\n\x11StackTraceElement\x12\x17\n\x0f\x64\x65\x63laring_class\x18\x01 \x01(\t\x12\x13\n\x0bmethod_name\x18\x02 \x01(\t\x12\x16\n\tfile_name\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x0bline_number\x18\x04 \x01(\x05\x42\x0c\n\n_file_name\x1a\x97\x02\n\x0cQueryContext\x12W\n\x0c\x63ontext_type\x18\n \x01(\x0e\x32\x41.spark.connect.FetchErrorDetailsResponse.QueryContext.ContextType\x12\x13\n\x0bobject_type\x18\x01 \x01(\t\x12\x13\n\x0bobject_name\x18\x02 \x01(\t\x12\x13\n\x0bstart_index\x18\x03 \x01(\x05\x12\x12\n\nstop_index\x18\x04 \x01(\x05\x12\x10\n\x08\x66ragment\x18\x05 \x01(\t\x12\x11\n\tcall_site\x18\x06 \x01(\t\x12\x0f\n\x07summary\x18\x07 \x01(\t\"%\n\x0b\x43ontextType\x12\x07\n\x03SQL\x10\x00\x12\r\n\tDATAFRAME\x10\x01\x1a\xce\x03\n\x0eSparkThrowable\x12\x18\n\x0b\x65rror_class\x18\x01 \x01(\tH\x00\x88\x01\x01\x12j\n\x12message_parameters\x18\x02 \x03(\x0b\x32N.spark.connect.FetchErrorDetailsResponse.SparkThrowable.MessageParametersEntry\x12M\n\x0equery_contexts\x18\x03 \x03(\x0b\x32\x35.spark.connect.FetchErrorDetailsResponse.QueryContext\x12\x16\n\tsql_state\x18\x04 \x01(\tH\x01\x88\x01\x01\x12^\n\x14\x62reaking_change_info\x18\x05 \x01(\x0b\x32;.spark.connect.FetchErrorDetailsResponse.BreakingChangeInfoH\x02\x88\x01\x01\x1a\x38\n\x16MessageParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_error_classB\x0c\n\n_sql_stateB\x17\n\x15_breaking_change_info\x1a\xca\x01\n\x12\x42reakingChangeInfo\x12\x19\n\x11migration_message\x18\x01 \x03(\t\x12Y\n\x11mitigation_config\x18\x02 \x01(\x0b\x32\x39.spark.connect.FetchErrorDetailsResponse.MitigationConfigH\x00\x88\x01\x01\x12\x18\n\x0bneeds_audit\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x14\n\x12_mitigation_configB\x0e\n\x0c_needs_audit\x1a.\n\x10MitigationConfig\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a\x98\x02\n\x05\x45rror\x12\x1c\n\x14\x65rror_type_hierarchy\x18\x01 \x03(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12O\n\x0bstack_trace\x18\x03 \x03(\x0b\x32:.spark.connect.FetchErrorDetailsResponse.StackTraceElement\x12\x16\n\tcause_idx\x18\x04 \x01(\x05H\x00\x88\x01\x01\x12U\n\x0fspark_throwable\x18\x05 \x01(\x0b\x32\x37.spark.connect.FetchErrorDetailsResponse.SparkThrowableH\x01\x88\x01\x01\x42\x0c\n\n_cause_idxB\x12\n\x10_spark_throwableB\x11\n\x0f_root_error_idx\"P\n\x17\x43heckpointCommandResult\x12\x35\n\x08relation\x18\x01 \x01(\x0b\x32#.spark.connect.CachedRemoteRelation\"\x95\x02\n\x13\x43loneSessionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x33\n&client_observed_server_side_session_id\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x18\n\x0b\x63lient_type\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0enew_session_id\x18\x04 \x01(\tH\x02\x88\x01\x01\x42)\n\'_client_observed_server_side_session_idB\x0e\n\x0c_client_typeB\x11\n\x0f_new_session_id\"\x86\x01\n\x14\x43loneSessionResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x02 \x01(\t\x12\x16\n\x0enew_session_id\x18\x03 \x01(\t\x12\"\n\x1anew_server_side_session_id\x18\x04 \x01(\t\"\xd5\x03\n\x10GetStatusRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x30\n\x0cuser_context\x18\x02 \x01(\x0b\x32\x1a.spark.connect.UserContext\x12\x18\n\x0b\x63lient_type\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x33\n&client_observed_server_side_session_id\x18\x04 \x01(\tH\x01\x88\x01\x01\x12U\n\x10operation_status\x18\x05 \x01(\x0b\x32\x36.spark.connect.GetStatusRequest.OperationStatusRequestH\x02\x88\x01\x01\x12)\n\nextensions\x18\xe7\x07 \x03(\x0b\x32\x14.google.protobuf.Any\x1aZ\n\x16OperationStatusRequest\x12\x15\n\roperation_ids\x18\x01 \x03(\t\x12)\n\nextensions\x18\xe7\x07 \x03(\x0b\x32\x14.google.protobuf.AnyB\x0e\n\x0c_client_typeB)\n\'_client_observed_server_side_session_idB\x13\n\x11_operation_status\"\xce\x04\n\x11GetStatusResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1e\n\x16server_side_session_id\x18\x02 \x01(\t\x12L\n\x12operation_statuses\x18\x03 \x03(\x0b\x32\x30.spark.connect.GetStatusResponse.OperationStatus\x12)\n\nextensions\x18\xe7\x07 \x03(\x0b\x32\x14.google.protobuf.Any\x1a\x8b\x03\n\x0fOperationStatus\x12\x14\n\x0coperation_id\x18\x01 \x01(\t\x12N\n\x05state\x18\x02 \x01(\x0e\x32?.spark.connect.GetStatusResponse.OperationStatus.OperationState\x12)\n\nextensions\x18\xe7\x07 \x03(\x0b\x32\x14.google.protobuf.Any\"\xe6\x01\n\x0eOperationState\x12\x1f\n\x1bOPERATION_STATE_UNSPECIFIED\x10\x00\x12\x1b\n\x17OPERATION_STATE_UNKNOWN\x10\x01\x12\x1b\n\x17OPERATION_STATE_RUNNING\x10\x02\x12\x1f\n\x1bOPERATION_STATE_TERMINATING\x10\x03\x12\x1d\n\x19OPERATION_STATE_SUCCEEDED\x10\x04\x12\x1a\n\x16OPERATION_STATE_FAILED\x10\x05\x12\x1d\n\x19OPERATION_STATE_CANCELLED\x10\x06*Q\n\x10\x43ompressionCodec\x12!\n\x1d\x43OMPRESSION_CODEC_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x43OMPRESSION_CODEC_ZSTD\x10\x01\x32\xdf\x08\n\x13SparkConnectService\x12X\n\x0b\x45xecutePlan\x12!.spark.connect.ExecutePlanRequest\x1a\".spark.connect.ExecutePlanResponse\"\x00\x30\x01\x12V\n\x0b\x41nalyzePlan\x12!.spark.connect.AnalyzePlanRequest\x1a\".spark.connect.AnalyzePlanResponse\"\x00\x12G\n\x06\x43onfig\x12\x1c.spark.connect.ConfigRequest\x1a\x1d.spark.connect.ConfigResponse\"\x00\x12[\n\x0c\x41\x64\x64\x41rtifacts\x12\".spark.connect.AddArtifactsRequest\x1a#.spark.connect.AddArtifactsResponse\"\x00(\x01\x12\x63\n\x0e\x41rtifactStatus\x12&.spark.connect.ArtifactStatusesRequest\x1a\'.spark.connect.ArtifactStatusesResponse\"\x00\x12P\n\tInterrupt\x12\x1f.spark.connect.InterruptRequest\x1a .spark.connect.InterruptResponse\"\x00\x12`\n\x0fReattachExecute\x12%.spark.connect.ReattachExecuteRequest\x1a\".spark.connect.ExecutePlanResponse\"\x00\x30\x01\x12_\n\x0eReleaseExecute\x12$.spark.connect.ReleaseExecuteRequest\x1a%.spark.connect.ReleaseExecuteResponse\"\x00\x12_\n\x0eReleaseSession\x12$.spark.connect.ReleaseSessionRequest\x1a%.spark.connect.ReleaseSessionResponse\"\x00\x12h\n\x11\x46\x65tchErrorDetails\x12\'.spark.connect.FetchErrorDetailsRequest\x1a(.spark.connect.FetchErrorDetailsResponse\"\x00\x12Y\n\x0c\x43loneSession\x12\".spark.connect.CloneSessionRequest\x1a#.spark.connect.CloneSessionResponse\"\x00\x12P\n\tGetStatus\x12\x1f.spark.connect.GetStatusRequest\x1a .spark.connect.GetStatusResponse\"\x00\x42\x36\n\x1eorg.apache.spark.connect.protoP\x01Z\x12internal/generatedb\x06proto3"
18
18
 
19
19
  pool = ::Google::Protobuf::DescriptorPool.generated_pool
20
20
  pool.add_serialized_file(descriptor_data)
@@ -113,6 +113,11 @@ module Spark
113
113
  CheckpointCommandResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.CheckpointCommandResult").msgclass
114
114
  CloneSessionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.CloneSessionRequest").msgclass
115
115
  CloneSessionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.CloneSessionResponse").msgclass
116
+ GetStatusRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.GetStatusRequest").msgclass
117
+ GetStatusRequest::OperationStatusRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.GetStatusRequest.OperationStatusRequest").msgclass
118
+ GetStatusResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.GetStatusResponse").msgclass
119
+ GetStatusResponse::OperationStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.GetStatusResponse.OperationStatus").msgclass
120
+ GetStatusResponse::OperationStatus::OperationState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.GetStatusResponse.OperationStatus.OperationState").enummodule
116
121
  CompressionCodec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.CompressionCodec").enummodule
117
122
  end
118
123
  end
@@ -74,6 +74,8 @@ module Spark
74
74
  # The request can optionally specify a custom session ID for the cloned session (must be
75
75
  # a valid UUID). If not provided, a new UUID will be generated automatically.
76
76
  rpc :CloneSession, ::Spark::Connect::CloneSessionRequest, ::Spark::Connect::CloneSessionResponse
77
+ # Get status information of different types.
78
+ rpc :GetStatus, ::Spark::Connect::GetStatusRequest, ::Spark::Connect::GetStatusResponse
77
79
  end
78
80
 
79
81
  Stub = Service.rpc_stub_class
@@ -8,7 +8,7 @@ require 'spark/connect/common_pb'
8
8
  require 'spark/connect/types_pb'
9
9
 
10
10
 
11
- descriptor_data = "\n\x1bspark/connect/catalog.proto\x12\rspark.connect\x1a\x1aspark/connect/common.proto\x1a\x19spark/connect/types.proto\"\xc4\x0b\n\x07\x43\x61talog\x12:\n\x10\x63urrent_database\x18\x01 \x01(\x0b\x32\x1e.spark.connect.CurrentDatabaseH\x00\x12\x41\n\x14set_current_database\x18\x02 \x01(\x0b\x32!.spark.connect.SetCurrentDatabaseH\x00\x12\x36\n\x0elist_databases\x18\x03 \x01(\x0b\x32\x1c.spark.connect.ListDatabasesH\x00\x12\x30\n\x0blist_tables\x18\x04 \x01(\x0b\x32\x19.spark.connect.ListTablesH\x00\x12\x36\n\x0elist_functions\x18\x05 \x01(\x0b\x32\x1c.spark.connect.ListFunctionsH\x00\x12\x32\n\x0clist_columns\x18\x06 \x01(\x0b\x32\x1a.spark.connect.ListColumnsH\x00\x12\x32\n\x0cget_database\x18\x07 \x01(\x0b\x32\x1a.spark.connect.GetDatabaseH\x00\x12,\n\tget_table\x18\x08 \x01(\x0b\x32\x17.spark.connect.GetTableH\x00\x12\x32\n\x0cget_function\x18\t \x01(\x0b\x32\x1a.spark.connect.GetFunctionH\x00\x12\x38\n\x0f\x64\x61tabase_exists\x18\n \x01(\x0b\x32\x1d.spark.connect.DatabaseExistsH\x00\x12\x32\n\x0ctable_exists\x18\x0b \x01(\x0b\x32\x1a.spark.connect.TableExistsH\x00\x12\x38\n\x0f\x66unction_exists\x18\x0c \x01(\x0b\x32\x1d.spark.connect.FunctionExistsH\x00\x12\x43\n\x15\x63reate_external_table\x18\r \x01(\x0b\x32\".spark.connect.CreateExternalTableH\x00\x12\x32\n\x0c\x63reate_table\x18\x0e \x01(\x0b\x32\x1a.spark.connect.CreateTableH\x00\x12\x35\n\x0e\x64rop_temp_view\x18\x0f \x01(\x0b\x32\x1b.spark.connect.DropTempViewH\x00\x12\x42\n\x15\x64rop_global_temp_view\x18\x10 \x01(\x0b\x32!.spark.connect.DropGlobalTempViewH\x00\x12>\n\x12recover_partitions\x18\x11 \x01(\x0b\x32 .spark.connect.RecoverPartitionsH\x00\x12,\n\tis_cached\x18\x12 \x01(\x0b\x32\x17.spark.connect.IsCachedH\x00\x12\x30\n\x0b\x63\x61\x63he_table\x18\x13 \x01(\x0b\x32\x19.spark.connect.CacheTableH\x00\x12\x34\n\runcache_table\x18\x14 \x01(\x0b\x32\x1b.spark.connect.UncacheTableH\x00\x12\x30\n\x0b\x63lear_cache\x18\x15 \x01(\x0b\x32\x19.spark.connect.ClearCacheH\x00\x12\x34\n\rrefresh_table\x18\x16 \x01(\x0b\x32\x1b.spark.connect.RefreshTableH\x00\x12\x37\n\x0frefresh_by_path\x18\x17 \x01(\x0b\x32\x1c.spark.connect.RefreshByPathH\x00\x12\x38\n\x0f\x63urrent_catalog\x18\x18 \x01(\x0b\x32\x1d.spark.connect.CurrentCatalogH\x00\x12?\n\x13set_current_catalog\x18\x19 \x01(\x0b\x32 .spark.connect.SetCurrentCatalogH\x00\x12\x34\n\rlist_catalogs\x18\x1a \x01(\x0b\x32\x1b.spark.connect.ListCatalogsH\x00\x42\n\n\x08\x63\x61t_type\"\x11\n\x0f\x43urrentDatabase\"%\n\x12SetCurrentDatabase\x12\x0f\n\x07\x64\x62_name\x18\x01 \x01(\t\"1\n\rListDatabases\x12\x14\n\x07pattern\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_pattern\"P\n\nListTables\x12\x14\n\x07\x64\x62_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07pattern\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_db_nameB\n\n\x08_pattern\"S\n\rListFunctions\x12\x14\n\x07\x64\x62_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07pattern\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_db_nameB\n\n\x08_pattern\"C\n\x0bListColumns\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x14\n\x07\x64\x62_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_db_name\"\x1e\n\x0bGetDatabase\x12\x0f\n\x07\x64\x62_name\x18\x01 \x01(\t\"@\n\x08GetTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x14\n\x07\x64\x62_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_db_name\"F\n\x0bGetFunction\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x14\n\x07\x64\x62_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_db_name\"!\n\x0e\x44\x61tabaseExists\x12\x0f\n\x07\x64\x62_name\x18\x01 \x01(\t\"C\n\x0bTableExists\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x14\n\x07\x64\x62_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_db_name\"I\n\x0e\x46unctionExists\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x14\n\x07\x64\x62_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_db_name\"\x90\x02\n\x13\x43reateExternalTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x11\n\x04path\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06source\x18\x03 \x01(\tH\x01\x88\x01\x01\x12,\n\x06schema\x18\x04 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x02\x88\x01\x01\x12@\n\x07options\x18\x05 \x03(\x0b\x32/.spark.connect.CreateExternalTable.OptionsEntry\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_pathB\t\n\x07_sourceB\t\n\x07_schema\"\xaa\x02\n\x0b\x43reateTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x11\n\x04path\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06source\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x02\x88\x01\x01\x12,\n\x06schema\x18\x05 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x03\x88\x01\x01\x12\x38\n\x07options\x18\x06 \x03(\x0b\x32\'.spark.connect.CreateTable.OptionsEntry\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_pathB\t\n\x07_sourceB\x0e\n\x0c_descriptionB\t\n\x07_schema\"!\n\x0c\x44ropTempView\x12\x11\n\tview_name\x18\x01 \x01(\t\"\'\n\x12\x44ropGlobalTempView\x12\x11\n\tview_name\x18\x01 \x01(\t\"\'\n\x11RecoverPartitions\x12\x12\n\ntable_name\x18\x01 \x01(\t\"\x1e\n\x08IsCached\x12\x12\n\ntable_name\x18\x01 \x01(\t\"k\n\nCacheTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x37\n\rstorage_level\x18\x02 \x01(\x0b\x32\x1b.spark.connect.StorageLevelH\x00\x88\x01\x01\x42\x10\n\x0e_storage_level\"\"\n\x0cUncacheTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\"\x0c\n\nClearCache\"\"\n\x0cRefreshTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\"\x1d\n\rRefreshByPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x10\n\x0e\x43urrentCatalog\")\n\x11SetCurrentCatalog\x12\x14\n\x0c\x63\x61talog_name\x18\x01 \x01(\t\"0\n\x0cListCatalogs\x12\x14\n\x07pattern\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_patternB6\n\x1eorg.apache.spark.connect.protoP\x01Z\x12internal/generatedb\x06proto3"
11
+ descriptor_data = "\n\x1bspark/connect/catalog.proto\x12\rspark.connect\x1a\x1aspark/connect/common.proto\x1a\x19spark/connect/types.proto\"\xf5\x0f\n\x07\x43\x61talog\x12:\n\x10\x63urrent_database\x18\x01 \x01(\x0b\x32\x1e.spark.connect.CurrentDatabaseH\x00\x12\x41\n\x14set_current_database\x18\x02 \x01(\x0b\x32!.spark.connect.SetCurrentDatabaseH\x00\x12\x36\n\x0elist_databases\x18\x03 \x01(\x0b\x32\x1c.spark.connect.ListDatabasesH\x00\x12\x30\n\x0blist_tables\x18\x04 \x01(\x0b\x32\x19.spark.connect.ListTablesH\x00\x12\x36\n\x0elist_functions\x18\x05 \x01(\x0b\x32\x1c.spark.connect.ListFunctionsH\x00\x12\x32\n\x0clist_columns\x18\x06 \x01(\x0b\x32\x1a.spark.connect.ListColumnsH\x00\x12\x32\n\x0cget_database\x18\x07 \x01(\x0b\x32\x1a.spark.connect.GetDatabaseH\x00\x12,\n\tget_table\x18\x08 \x01(\x0b\x32\x17.spark.connect.GetTableH\x00\x12\x32\n\x0cget_function\x18\t \x01(\x0b\x32\x1a.spark.connect.GetFunctionH\x00\x12\x38\n\x0f\x64\x61tabase_exists\x18\n \x01(\x0b\x32\x1d.spark.connect.DatabaseExistsH\x00\x12\x32\n\x0ctable_exists\x18\x0b \x01(\x0b\x32\x1a.spark.connect.TableExistsH\x00\x12\x38\n\x0f\x66unction_exists\x18\x0c \x01(\x0b\x32\x1d.spark.connect.FunctionExistsH\x00\x12\x43\n\x15\x63reate_external_table\x18\r \x01(\x0b\x32\".spark.connect.CreateExternalTableH\x00\x12\x32\n\x0c\x63reate_table\x18\x0e \x01(\x0b\x32\x1a.spark.connect.CreateTableH\x00\x12\x35\n\x0e\x64rop_temp_view\x18\x0f \x01(\x0b\x32\x1b.spark.connect.DropTempViewH\x00\x12\x42\n\x15\x64rop_global_temp_view\x18\x10 \x01(\x0b\x32!.spark.connect.DropGlobalTempViewH\x00\x12>\n\x12recover_partitions\x18\x11 \x01(\x0b\x32 .spark.connect.RecoverPartitionsH\x00\x12,\n\tis_cached\x18\x12 \x01(\x0b\x32\x17.spark.connect.IsCachedH\x00\x12\x30\n\x0b\x63\x61\x63he_table\x18\x13 \x01(\x0b\x32\x19.spark.connect.CacheTableH\x00\x12\x34\n\runcache_table\x18\x14 \x01(\x0b\x32\x1b.spark.connect.UncacheTableH\x00\x12\x30\n\x0b\x63lear_cache\x18\x15 \x01(\x0b\x32\x19.spark.connect.ClearCacheH\x00\x12\x34\n\rrefresh_table\x18\x16 \x01(\x0b\x32\x1b.spark.connect.RefreshTableH\x00\x12\x37\n\x0frefresh_by_path\x18\x17 \x01(\x0b\x32\x1c.spark.connect.RefreshByPathH\x00\x12\x38\n\x0f\x63urrent_catalog\x18\x18 \x01(\x0b\x32\x1d.spark.connect.CurrentCatalogH\x00\x12?\n\x13set_current_catalog\x18\x19 \x01(\x0b\x32 .spark.connect.SetCurrentCatalogH\x00\x12\x34\n\rlist_catalogs\x18\x1a \x01(\x0b\x32\x1b.spark.connect.ListCatalogsH\x00\x12.\n\ndrop_table\x18\x1b \x01(\x0b\x32\x18.spark.connect.DropTableH\x00\x12,\n\tdrop_view\x18\x1c \x01(\x0b\x32\x17.spark.connect.DropViewH\x00\x12\x38\n\x0f\x63reate_database\x18\x1d \x01(\x0b\x32\x1d.spark.connect.CreateDatabaseH\x00\x12\x34\n\rdrop_database\x18\x1e \x01(\x0b\x32\x1b.spark.connect.DropDatabaseH\x00\x12\x38\n\x0flist_partitions\x18\x1f \x01(\x0b\x32\x1d.spark.connect.ListPartitionsH\x00\x12.\n\nlist_views\x18 \x01(\x0b\x32\x18.spark.connect.ListViewsH\x00\x12\x41\n\x14get_table_properties\x18! \x01(\x0b\x32!.spark.connect.GetTablePropertiesH\x00\x12\x46\n\x17get_create_table_string\x18\" \x01(\x0b\x32#.spark.connect.GetCreateTableStringH\x00\x12\x36\n\x0etruncate_table\x18# \x01(\x0b\x32\x1c.spark.connect.TruncateTableH\x00\x12\x34\n\ranalyze_table\x18$ \x01(\x0b\x32\x1b.spark.connect.AnalyzeTableH\x00\x42\n\n\x08\x63\x61t_type\"\x11\n\x0f\x43urrentDatabase\"%\n\x12SetCurrentDatabase\x12\x0f\n\x07\x64\x62_name\x18\x01 \x01(\t\"1\n\rListDatabases\x12\x14\n\x07pattern\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_pattern\"P\n\nListTables\x12\x14\n\x07\x64\x62_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07pattern\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_db_nameB\n\n\x08_pattern\"S\n\rListFunctions\x12\x14\n\x07\x64\x62_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07pattern\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_db_nameB\n\n\x08_pattern\"C\n\x0bListColumns\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x14\n\x07\x64\x62_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_db_name\"\x1e\n\x0bGetDatabase\x12\x0f\n\x07\x64\x62_name\x18\x01 \x01(\t\"@\n\x08GetTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x14\n\x07\x64\x62_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_db_name\"F\n\x0bGetFunction\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x14\n\x07\x64\x62_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_db_name\"!\n\x0e\x44\x61tabaseExists\x12\x0f\n\x07\x64\x62_name\x18\x01 \x01(\t\"C\n\x0bTableExists\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x14\n\x07\x64\x62_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_db_name\"I\n\x0e\x46unctionExists\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x14\n\x07\x64\x62_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_db_name\"\x90\x02\n\x13\x43reateExternalTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x11\n\x04path\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06source\x18\x03 \x01(\tH\x01\x88\x01\x01\x12,\n\x06schema\x18\x04 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x02\x88\x01\x01\x12@\n\x07options\x18\x05 \x03(\x0b\x32/.spark.connect.CreateExternalTable.OptionsEntry\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_pathB\t\n\x07_sourceB\t\n\x07_schema\"\xaa\x02\n\x0b\x43reateTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x11\n\x04path\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06source\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x02\x88\x01\x01\x12,\n\x06schema\x18\x05 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x03\x88\x01\x01\x12\x38\n\x07options\x18\x06 \x03(\x0b\x32\'.spark.connect.CreateTable.OptionsEntry\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_pathB\t\n\x07_sourceB\x0e\n\x0c_descriptionB\t\n\x07_schema\"!\n\x0c\x44ropTempView\x12\x11\n\tview_name\x18\x01 \x01(\t\"\'\n\x12\x44ropGlobalTempView\x12\x11\n\tview_name\x18\x01 \x01(\t\"\'\n\x11RecoverPartitions\x12\x12\n\ntable_name\x18\x01 \x01(\t\"\x1e\n\x08IsCached\x12\x12\n\ntable_name\x18\x01 \x01(\t\"k\n\nCacheTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x37\n\rstorage_level\x18\x02 \x01(\x0b\x32\x1b.spark.connect.StorageLevelH\x00\x88\x01\x01\x42\x10\n\x0e_storage_level\"\"\n\x0cUncacheTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\"\x0c\n\nClearCache\"\"\n\x0cRefreshTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\"\x1d\n\rRefreshByPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x10\n\x0e\x43urrentCatalog\")\n\x11SetCurrentCatalog\x12\x14\n\x0c\x63\x61talog_name\x18\x01 \x01(\t\"0\n\x0cListCatalogs\x12\x14\n\x07pattern\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_pattern\"A\n\tDropTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x11\n\tif_exists\x18\x02 \x01(\x08\x12\r\n\x05purge\x18\x03 \x01(\x08\"0\n\x08\x44ropView\x12\x11\n\tview_name\x18\x01 \x01(\t\x12\x11\n\tif_exists\x18\x02 \x01(\x08\"\xae\x01\n\x0e\x43reateDatabase\x12\x0f\n\x07\x64\x62_name\x18\x01 \x01(\t\x12\x15\n\rif_not_exists\x18\x02 \x01(\x08\x12\x41\n\nproperties\x18\x03 \x03(\x0b\x32-.spark.connect.CreateDatabase.PropertiesEntry\x1a\x31\n\x0fPropertiesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"C\n\x0c\x44ropDatabase\x12\x0f\n\x07\x64\x62_name\x18\x01 \x01(\t\x12\x11\n\tif_exists\x18\x02 \x01(\x08\x12\x0f\n\x07\x63\x61scade\x18\x03 \x01(\x08\"$\n\x0eListPartitions\x12\x12\n\ntable_name\x18\x01 \x01(\t\"O\n\tListViews\x12\x14\n\x07\x64\x62_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07pattern\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_db_nameB\n\n\x08_pattern\"(\n\x12GetTableProperties\x12\x12\n\ntable_name\x18\x01 \x01(\t\"<\n\x14GetCreateTableString\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x10\n\x08\x61s_serde\x18\x02 \x01(\x08\"#\n\rTruncateTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\"3\n\x0c\x41nalyzeTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12\x0f\n\x07no_scan\x18\x02 \x01(\x08\x42\x36\n\x1eorg.apache.spark.connect.protoP\x01Z\x12internal/generatedb\x06proto3"
12
12
 
13
13
  pool = ::Google::Protobuf::DescriptorPool.generated_pool
14
14
  pool.add_serialized_file(descriptor_data)
@@ -42,5 +42,15 @@ module Spark
42
42
  CurrentCatalog = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.CurrentCatalog").msgclass
43
43
  SetCurrentCatalog = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.SetCurrentCatalog").msgclass
44
44
  ListCatalogs = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.ListCatalogs").msgclass
45
+ DropTable = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.DropTable").msgclass
46
+ DropView = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.DropView").msgclass
47
+ CreateDatabase = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.CreateDatabase").msgclass
48
+ DropDatabase = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.DropDatabase").msgclass
49
+ ListPartitions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.ListPartitions").msgclass
50
+ ListViews = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.ListViews").msgclass
51
+ GetTableProperties = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.GetTableProperties").msgclass
52
+ GetCreateTableString = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.GetCreateTableString").msgclass
53
+ TruncateTable = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.TruncateTable").msgclass
54
+ AnalyzeTable = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.AnalyzeTable").msgclass
45
55
  end
46
56
  end
@@ -12,7 +12,7 @@ require 'spark/connect/ml_pb'
12
12
  require 'spark/connect/pipelines_pb'
13
13
 
14
14
 
15
- descriptor_data = "\n\x1cspark/connect/commands.proto\x12\rspark.connect\x1a\x19google/protobuf/any.proto\x1a\x1aspark/connect/common.proto\x1a\x1fspark/connect/expressions.proto\x1a\x1dspark/connect/relations.proto\x1a\x16spark/connect/ml.proto\x1a\x1dspark/connect/pipelines.proto\"\xc8\x0b\n\x07\x43ommand\x12K\n\x11register_function\x18\x01 \x01(\x0b\x32..spark.connect.CommonInlineUserDefinedFunctionH\x00\x12\x38\n\x0fwrite_operation\x18\x02 \x01(\x0b\x32\x1d.spark.connect.WriteOperationH\x00\x12J\n\x15\x63reate_dataframe_view\x18\x03 \x01(\x0b\x32).spark.connect.CreateDataFrameViewCommandH\x00\x12=\n\x12write_operation_v2\x18\x04 \x01(\x0b\x32\x1f.spark.connect.WriteOperationV2H\x00\x12\x30\n\x0bsql_command\x18\x05 \x01(\x0b\x32\x19.spark.connect.SqlCommandH\x00\x12P\n\x1cwrite_stream_operation_start\x18\x06 \x01(\x0b\x32(.spark.connect.WriteStreamOperationStartH\x00\x12G\n\x17streaming_query_command\x18\x07 \x01(\x0b\x32$.spark.connect.StreamingQueryCommandH\x00\x12\x43\n\x15get_resources_command\x18\x08 \x01(\x0b\x32\".spark.connect.GetResourcesCommandH\x00\x12V\n\x1fstreaming_query_manager_command\x18\t \x01(\x0b\x32+.spark.connect.StreamingQueryManagerCommandH\x00\x12V\n\x17register_table_function\x18\n \x01(\x0b\x32\x33.spark.connect.CommonInlineUserDefinedTableFunctionH\x00\x12_\n$streaming_query_listener_bus_command\x18\x0b \x01(\x0b\x32/.spark.connect.StreamingQueryListenerBusCommandH\x00\x12P\n\x14register_data_source\x18\x0c \x01(\x0b\x32\x30.spark.connect.CommonInlineUserDefinedDataSourceH\x00\x12V\n\x1f\x63reate_resource_profile_command\x18\r \x01(\x0b\x32+.spark.connect.CreateResourceProfileCommandH\x00\x12>\n\x12\x63heckpoint_command\x18\x0e \x01(\x0b\x32 .spark.connect.CheckpointCommandH\x00\x12\x61\n%remove_cached_remote_relation_command\x18\x0f \x01(\x0b\x32\x30.spark.connect.RemoveCachedRemoteRelationCommandH\x00\x12H\n\x18merge_into_table_command\x18\x10 \x01(\x0b\x32$.spark.connect.MergeIntoTableCommandH\x00\x12.\n\nml_command\x18\x11 \x01(\x0b\x32\x18.spark.connect.MlCommandH\x00\x12I\n\x18\x65xecute_external_command\x18\x12 \x01(\x0b\x32%.spark.connect.ExecuteExternalCommandH\x00\x12:\n\x10pipeline_command\x18\x13 \x01(\x0b\x32\x1e.spark.connect.PipelineCommandH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\x0e\n\x0c\x63ommand_type\"\xd9\x03\n\nSqlCommand\x12\x0f\n\x03sql\x18\x01 \x01(\tB\x02\x18\x01\x12\x35\n\x04\x61rgs\x18\x02 \x03(\x0b\x32#.spark.connect.SqlCommand.ArgsEntryB\x02\x18\x01\x12\x37\n\x08pos_args\x18\x03 \x03(\x0b\x32!.spark.connect.Expression.LiteralB\x02\x18\x01\x12J\n\x0fnamed_arguments\x18\x04 \x03(\x0b\x32-.spark.connect.SqlCommand.NamedArgumentsEntryB\x02\x18\x01\x12\x34\n\rpos_arguments\x18\x05 \x03(\x0b\x32\x19.spark.connect.ExpressionB\x02\x18\x01\x12&\n\x05input\x18\x06 \x01(\x0b\x32\x17.spark.connect.Relation\x1aN\n\tArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32!.spark.connect.Expression.Literal:\x02\x38\x01\x1aP\n\x13NamedArgumentsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression:\x02\x38\x01\"v\n\x1a\x43reateDataFrameViewCommand\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\tis_global\x18\x03 \x01(\x08\x12\x0f\n\x07replace\x18\x04 \x01(\x08\"\x9a\x07\n\x0eWriteOperation\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x13\n\x06source\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x04path\x18\x03 \x01(\tH\x00\x12\x38\n\x05table\x18\x04 \x01(\x0b\x32\'.spark.connect.WriteOperation.SaveTableH\x00\x12\x34\n\x04mode\x18\x05 \x01(\x0e\x32&.spark.connect.WriteOperation.SaveMode\x12\x19\n\x11sort_column_names\x18\x06 \x03(\t\x12\x1c\n\x14partitioning_columns\x18\x07 \x03(\t\x12\x39\n\tbucket_by\x18\x08 \x01(\x0b\x32&.spark.connect.WriteOperation.BucketBy\x12;\n\x07options\x18\t \x03(\x0b\x32*.spark.connect.WriteOperation.OptionsEntry\x12\x1a\n\x12\x63lustering_columns\x18\n \x03(\t\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\xeb\x01\n\tSaveTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12L\n\x0bsave_method\x18\x02 \x01(\x0e\x32\x37.spark.connect.WriteOperation.SaveTable.TableSaveMethod\"|\n\x0fTableSaveMethod\x12!\n\x1dTABLE_SAVE_METHOD_UNSPECIFIED\x10\x00\x12#\n\x1fTABLE_SAVE_METHOD_SAVE_AS_TABLE\x10\x01\x12!\n\x1dTABLE_SAVE_METHOD_INSERT_INTO\x10\x02\x1a<\n\x08\x42ucketBy\x12\x1b\n\x13\x62ucket_column_names\x18\x01 \x03(\t\x12\x13\n\x0bnum_buckets\x18\x02 \x01(\x05\"\x89\x01\n\x08SaveMode\x12\x19\n\x15SAVE_MODE_UNSPECIFIED\x10\x00\x12\x14\n\x10SAVE_MODE_APPEND\x10\x01\x12\x17\n\x13SAVE_MODE_OVERWRITE\x10\x02\x12\x1d\n\x19SAVE_MODE_ERROR_IF_EXISTS\x10\x03\x12\x14\n\x10SAVE_MODE_IGNORE\x10\x04\x42\x0b\n\tsave_typeB\t\n\x07_source\"\xcc\x05\n\x10WriteOperationV2\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12\x15\n\x08provider\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x14partitioning_columns\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x12=\n\x07options\x18\x05 \x03(\x0b\x32,.spark.connect.WriteOperationV2.OptionsEntry\x12N\n\x10table_properties\x18\x06 \x03(\x0b\x32\x34.spark.connect.WriteOperationV2.TablePropertiesEntry\x12\x32\n\x04mode\x18\x07 \x01(\x0e\x32$.spark.connect.WriteOperationV2.Mode\x12\x36\n\x13overwrite_condition\x18\x08 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x1a\n\x12\x63lustering_columns\x18\t \x03(\t\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x36\n\x14TablePropertiesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9f\x01\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bMODE_CREATE\x10\x01\x12\x12\n\x0eMODE_OVERWRITE\x10\x02\x12\x1d\n\x19MODE_OVERWRITE_PARTITIONS\x10\x03\x12\x0f\n\x0bMODE_APPEND\x10\x04\x12\x10\n\x0cMODE_REPLACE\x10\x05\x12\x1a\n\x16MODE_CREATE_OR_REPLACE\x10\x06\x42\x0b\n\t_provider\"\xf5\x04\n\x19WriteStreamOperationStart\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0e\n\x06\x66ormat\x18\x02 \x01(\t\x12\x46\n\x07options\x18\x03 \x03(\x0b\x32\x35.spark.connect.WriteStreamOperationStart.OptionsEntry\x12!\n\x19partitioning_column_names\x18\x04 \x03(\t\x12\"\n\x18processing_time_interval\x18\x05 \x01(\tH\x00\x12\x17\n\ravailable_now\x18\x06 \x01(\x08H\x00\x12\x0e\n\x04once\x18\x07 \x01(\x08H\x00\x12(\n\x1e\x63ontinuous_checkpoint_interval\x18\x08 \x01(\tH\x00\x12\x13\n\x0boutput_mode\x18\t \x01(\t\x12\x12\n\nquery_name\x18\n \x01(\t\x12\x0e\n\x04path\x18\x0b \x01(\tH\x01\x12\x14\n\ntable_name\x18\x0c \x01(\tH\x01\x12?\n\x0e\x66oreach_writer\x18\r \x01(\x0b\x32\'.spark.connect.StreamingForeachFunction\x12>\n\rforeach_batch\x18\x0e \x01(\x0b\x32\'.spark.connect.StreamingForeachFunction\x12\x1f\n\x17\x63lustering_column_names\x18\x0f \x03(\t\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07triggerB\x12\n\x10sink_destination\"\x94\x01\n\x18StreamingForeachFunction\x12\x33\n\x0fpython_function\x18\x01 \x01(\x0b\x32\x18.spark.connect.PythonUDFH\x00\x12\x37\n\x0escala_function\x18\x02 \x01(\x0b\x32\x1d.spark.connect.ScalarScalaUDFH\x00\x42\n\n\x08\x66unction\"\xae\x01\n\x1fWriteStreamOperationStartResult\x12\x39\n\x08query_id\x18\x01 \x01(\x0b\x32\'.spark.connect.StreamingQueryInstanceId\x12\x0c\n\x04name\x18\x02 \x01(\t\x12%\n\x18query_started_event_json\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x1b\n\x19_query_started_event_json\"6\n\x18StreamingQueryInstanceId\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\"\xf3\x03\n\x15StreamingQueryCommand\x12\x39\n\x08query_id\x18\x01 \x01(\x0b\x32\'.spark.connect.StreamingQueryInstanceId\x12\x10\n\x06status\x18\x02 \x01(\x08H\x00\x12\x17\n\rlast_progress\x18\x03 \x01(\x08H\x00\x12\x19\n\x0frecent_progress\x18\x04 \x01(\x08H\x00\x12\x0e\n\x04stop\x18\x05 \x01(\x08H\x00\x12\x1f\n\x15process_all_available\x18\x06 \x01(\x08H\x00\x12\x46\n\x07\x65xplain\x18\x07 \x01(\x0b\x32\x33.spark.connect.StreamingQueryCommand.ExplainCommandH\x00\x12\x13\n\texception\x18\x08 \x01(\x08H\x00\x12Y\n\x11\x61wait_termination\x18\t \x01(\x0b\x32<.spark.connect.StreamingQueryCommand.AwaitTerminationCommandH\x00\x1a\"\n\x0e\x45xplainCommand\x12\x10\n\x08\x65xtended\x18\x01 \x01(\x08\x1a\x41\n\x17\x41waitTerminationCommand\x12\x17\n\ntimeout_ms\x18\x02 \x01(\x03H\x00\x88\x01\x01\x42\r\n\x0b_timeout_msB\t\n\x07\x63ommand\"\xa0\x07\n\x1bStreamingQueryCommandResult\x12\x39\n\x08query_id\x18\x01 \x01(\x0b\x32\'.spark.connect.StreamingQueryInstanceId\x12I\n\x06status\x18\x02 \x01(\x0b\x32\x37.spark.connect.StreamingQueryCommandResult.StatusResultH\x00\x12Z\n\x0frecent_progress\x18\x03 \x01(\x0b\x32?.spark.connect.StreamingQueryCommandResult.RecentProgressResultH\x00\x12K\n\x07\x65xplain\x18\x04 \x01(\x0b\x32\x38.spark.connect.StreamingQueryCommandResult.ExplainResultH\x00\x12O\n\texception\x18\x05 \x01(\x0b\x32:.spark.connect.StreamingQueryCommandResult.ExceptionResultH\x00\x12^\n\x11\x61wait_termination\x18\x06 \x01(\x0b\x32\x41.spark.connect.StreamingQueryCommandResult.AwaitTerminationResultH\x00\x1ao\n\x0cStatusResult\x12\x16\n\x0estatus_message\x18\x01 \x01(\t\x12\x19\n\x11is_data_available\x18\x02 \x01(\x08\x12\x19\n\x11is_trigger_active\x18\x03 \x01(\x08\x12\x11\n\tis_active\x18\x04 \x01(\x08\x1a\x34\n\x14RecentProgressResult\x12\x1c\n\x14recent_progress_json\x18\x05 \x03(\t\x1a\x1f\n\rExplainResult\x12\x0e\n\x06result\x18\x01 \x01(\t\x1a\x9b\x01\n\x0f\x45xceptionResult\x12\x1e\n\x11\x65xception_message\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x65rror_class\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0bstack_trace\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x14\n\x12_exception_messageB\x0e\n\x0c_error_classB\x0e\n\x0c_stack_trace\x1a,\n\x16\x41waitTerminationResult\x12\x12\n\nterminated\x18\x01 \x01(\x08\x42\r\n\x0bresult_type\"\xa2\x05\n\x1cStreamingQueryManagerCommand\x12\x10\n\x06\x61\x63tive\x18\x01 \x01(\x08H\x00\x12\x13\n\tget_query\x18\x02 \x01(\tH\x00\x12g\n\x15\x61wait_any_termination\x18\x03 \x01(\x0b\x32\x46.spark.connect.StreamingQueryManagerCommand.AwaitAnyTerminationCommandH\x00\x12\x1a\n\x10reset_terminated\x18\x04 \x01(\x08H\x00\x12\x61\n\x0c\x61\x64\x64_listener\x18\x05 \x01(\x0b\x32I.spark.connect.StreamingQueryManagerCommand.StreamingQueryListenerCommandH\x00\x12\x64\n\x0fremove_listener\x18\x06 \x01(\x0b\x32I.spark.connect.StreamingQueryManagerCommand.StreamingQueryListenerCommandH\x00\x12\x18\n\x0elist_listeners\x18\x07 \x01(\x08H\x00\x1a\x44\n\x1a\x41waitAnyTerminationCommand\x12\x17\n\ntimeout_ms\x18\x01 \x01(\x03H\x00\x88\x01\x01\x42\r\n\x0b_timeout_ms\x1a\xa1\x01\n\x1dStreamingQueryListenerCommand\x12\x18\n\x10listener_payload\x18\x01 \x01(\x0c\x12>\n\x17python_listener_payload\x18\x02 \x01(\x0b\x32\x18.spark.connect.PythonUDFH\x00\x88\x01\x01\x12\n\n\x02id\x18\x03 \x01(\tB\x1a\n\x18_python_listener_payloadB\t\n\x07\x63ommand\"\x8f\x07\n\"StreamingQueryManagerCommandResult\x12P\n\x06\x61\x63tive\x18\x01 \x01(\x0b\x32>.spark.connect.StreamingQueryManagerCommandResult.ActiveResultH\x00\x12Y\n\x05query\x18\x02 \x01(\x0b\x32H.spark.connect.StreamingQueryManagerCommandResult.StreamingQueryInstanceH\x00\x12l\n\x15\x61wait_any_termination\x18\x03 \x01(\x0b\x32K.spark.connect.StreamingQueryManagerCommandResult.AwaitAnyTerminationResultH\x00\x12\x1a\n\x10reset_terminated\x18\x04 \x01(\x08H\x00\x12\x16\n\x0c\x61\x64\x64_listener\x18\x05 \x01(\x08H\x00\x12\x19\n\x0fremove_listener\x18\x06 \x01(\x08H\x00\x12l\n\x0elist_listeners\x18\x07 \x01(\x0b\x32R.spark.connect.StreamingQueryManagerCommandResult.ListStreamingQueryListenerResultH\x00\x1ap\n\x0c\x41\x63tiveResult\x12`\n\x0e\x61\x63tive_queries\x18\x01 \x03(\x0b\x32H.spark.connect.StreamingQueryManagerCommandResult.StreamingQueryInstance\x1ai\n\x16StreamingQueryInstance\x12\x33\n\x02id\x18\x01 \x01(\x0b\x32\'.spark.connect.StreamingQueryInstanceId\x12\x11\n\x04name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\x1a/\n\x19\x41waitAnyTerminationResult\x12\x12\n\nterminated\x18\x01 \x01(\x08\x1a:\n\x1eStreamingQueryListenerInstance\x12\x18\n\x10listener_payload\x18\x01 \x01(\x0c\x1a\x38\n ListStreamingQueryListenerResult\x12\x14\n\x0clistener_ids\x18\x01 \x03(\tB\r\n\x0bresult_type\"z\n StreamingQueryListenerBusCommand\x12#\n\x19\x61\x64\x64_listener_bus_listener\x18\x01 \x01(\x08H\x00\x12&\n\x1cremove_listener_bus_listener\x18\x02 \x01(\x08H\x00\x42\t\n\x07\x63ommand\"m\n\x1bStreamingQueryListenerEvent\x12\x12\n\nevent_json\x18\x01 \x01(\t\x12:\n\nevent_type\x18\x02 \x01(\x0e\x32&.spark.connect.StreamingQueryEventType\"\xaa\x01\n\"StreamingQueryListenerEventsResult\x12:\n\x06\x65vents\x18\x01 \x03(\x0b\x32*.spark.connect.StreamingQueryListenerEvent\x12(\n\x1blistener_bus_listener_added\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x1e\n\x1c_listener_bus_listener_added\"\x15\n\x13GetResourcesCommand\"\xbd\x01\n\x19GetResourcesCommandResult\x12J\n\tresources\x18\x01 \x03(\x0b\x32\x37.spark.connect.GetResourcesCommandResult.ResourcesEntry\x1aT\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x31\n\x05value\x18\x02 \x01(\x0b\x32\".spark.connect.ResourceInformation:\x02\x38\x01\"O\n\x1c\x43reateResourceProfileCommand\x12/\n\x07profile\x18\x01 \x01(\x0b\x32\x1e.spark.connect.ResourceProfile\"8\n\"CreateResourceProfileCommandResult\x12\x12\n\nprofile_id\x18\x01 \x01(\x05\"Z\n!RemoveCachedRemoteRelationCommand\x12\x35\n\x08relation\x18\x01 \x01(\x0b\x32#.spark.connect.CachedRemoteRelation\"\xa7\x01\n\x11\x43heckpointCommand\x12)\n\x08relation\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\r\n\x05local\x18\x02 \x01(\x08\x12\r\n\x05\x65\x61ger\x18\x03 \x01(\x08\x12\x37\n\rstorage_level\x18\x04 \x01(\x0b\x32\x1b.spark.connect.StorageLevelH\x00\x88\x01\x01\x42\x10\n\x0e_storage_level\"\xe5\x02\n\x15MergeIntoTableCommand\x12\x19\n\x11target_table_name\x18\x01 \x01(\t\x12\x32\n\x11source_table_plan\x18\x02 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x32\n\x0fmerge_condition\x18\x03 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x30\n\rmatch_actions\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x36\n\x13not_matched_actions\x18\x05 \x03(\x0b\x32\x19.spark.connect.Expression\x12@\n\x1dnot_matched_by_source_actions\x18\x06 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x1d\n\x15with_schema_evolution\x18\x07 \x01(\x08\"\xae\x01\n\x16\x45xecuteExternalCommand\x12\x0e\n\x06runner\x18\x01 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x02 \x01(\t\x12\x43\n\x07options\x18\x03 \x03(\x0b\x32\x32.spark.connect.ExecuteExternalCommand.OptionsEntry\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*\x85\x01\n\x17StreamingQueryEventType\x12\x1e\n\x1aQUERY_PROGRESS_UNSPECIFIED\x10\x00\x12\x18\n\x14QUERY_PROGRESS_EVENT\x10\x01\x12\x1a\n\x16QUERY_TERMINATED_EVENT\x10\x02\x12\x14\n\x10QUERY_IDLE_EVENT\x10\x03\x42\x36\n\x1eorg.apache.spark.connect.protoP\x01Z\x12internal/generatedb\x06proto3"
15
+ descriptor_data = "\n\x1cspark/connect/commands.proto\x12\rspark.connect\x1a\x19google/protobuf/any.proto\x1a\x1aspark/connect/common.proto\x1a\x1fspark/connect/expressions.proto\x1a\x1dspark/connect/relations.proto\x1a\x16spark/connect/ml.proto\x1a\x1dspark/connect/pipelines.proto\"\xc8\x0b\n\x07\x43ommand\x12K\n\x11register_function\x18\x01 \x01(\x0b\x32..spark.connect.CommonInlineUserDefinedFunctionH\x00\x12\x38\n\x0fwrite_operation\x18\x02 \x01(\x0b\x32\x1d.spark.connect.WriteOperationH\x00\x12J\n\x15\x63reate_dataframe_view\x18\x03 \x01(\x0b\x32).spark.connect.CreateDataFrameViewCommandH\x00\x12=\n\x12write_operation_v2\x18\x04 \x01(\x0b\x32\x1f.spark.connect.WriteOperationV2H\x00\x12\x30\n\x0bsql_command\x18\x05 \x01(\x0b\x32\x19.spark.connect.SqlCommandH\x00\x12P\n\x1cwrite_stream_operation_start\x18\x06 \x01(\x0b\x32(.spark.connect.WriteStreamOperationStartH\x00\x12G\n\x17streaming_query_command\x18\x07 \x01(\x0b\x32$.spark.connect.StreamingQueryCommandH\x00\x12\x43\n\x15get_resources_command\x18\x08 \x01(\x0b\x32\".spark.connect.GetResourcesCommandH\x00\x12V\n\x1fstreaming_query_manager_command\x18\t \x01(\x0b\x32+.spark.connect.StreamingQueryManagerCommandH\x00\x12V\n\x17register_table_function\x18\n \x01(\x0b\x32\x33.spark.connect.CommonInlineUserDefinedTableFunctionH\x00\x12_\n$streaming_query_listener_bus_command\x18\x0b \x01(\x0b\x32/.spark.connect.StreamingQueryListenerBusCommandH\x00\x12P\n\x14register_data_source\x18\x0c \x01(\x0b\x32\x30.spark.connect.CommonInlineUserDefinedDataSourceH\x00\x12V\n\x1f\x63reate_resource_profile_command\x18\r \x01(\x0b\x32+.spark.connect.CreateResourceProfileCommandH\x00\x12>\n\x12\x63heckpoint_command\x18\x0e \x01(\x0b\x32 .spark.connect.CheckpointCommandH\x00\x12\x61\n%remove_cached_remote_relation_command\x18\x0f \x01(\x0b\x32\x30.spark.connect.RemoveCachedRemoteRelationCommandH\x00\x12H\n\x18merge_into_table_command\x18\x10 \x01(\x0b\x32$.spark.connect.MergeIntoTableCommandH\x00\x12.\n\nml_command\x18\x11 \x01(\x0b\x32\x18.spark.connect.MlCommandH\x00\x12I\n\x18\x65xecute_external_command\x18\x12 \x01(\x0b\x32%.spark.connect.ExecuteExternalCommandH\x00\x12:\n\x10pipeline_command\x18\x13 \x01(\x0b\x32\x1e.spark.connect.PipelineCommandH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\x0e\n\x0c\x63ommand_type\"\xd9\x03\n\nSqlCommand\x12\x0f\n\x03sql\x18\x01 \x01(\tB\x02\x18\x01\x12\x35\n\x04\x61rgs\x18\x02 \x03(\x0b\x32#.spark.connect.SqlCommand.ArgsEntryB\x02\x18\x01\x12\x37\n\x08pos_args\x18\x03 \x03(\x0b\x32!.spark.connect.Expression.LiteralB\x02\x18\x01\x12J\n\x0fnamed_arguments\x18\x04 \x03(\x0b\x32-.spark.connect.SqlCommand.NamedArgumentsEntryB\x02\x18\x01\x12\x34\n\rpos_arguments\x18\x05 \x03(\x0b\x32\x19.spark.connect.ExpressionB\x02\x18\x01\x12&\n\x05input\x18\x06 \x01(\x0b\x32\x17.spark.connect.Relation\x1aN\n\tArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32!.spark.connect.Expression.Literal:\x02\x38\x01\x1aP\n\x13NamedArgumentsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression:\x02\x38\x01\"v\n\x1a\x43reateDataFrameViewCommand\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x11\n\tis_global\x18\x03 \x01(\x08\x12\x0f\n\x07replace\x18\x04 \x01(\x08\"\xb9\x07\n\x0eWriteOperation\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x13\n\x06source\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x04path\x18\x03 \x01(\tH\x00\x12\x38\n\x05table\x18\x04 \x01(\x0b\x32\'.spark.connect.WriteOperation.SaveTableH\x00\x12\x34\n\x04mode\x18\x05 \x01(\x0e\x32&.spark.connect.WriteOperation.SaveMode\x12\x19\n\x11sort_column_names\x18\x06 \x03(\t\x12\x1c\n\x14partitioning_columns\x18\x07 \x03(\t\x12\x39\n\tbucket_by\x18\x08 \x01(\x0b\x32&.spark.connect.WriteOperation.BucketBy\x12;\n\x07options\x18\t \x03(\x0b\x32*.spark.connect.WriteOperation.OptionsEntry\x12\x1a\n\x12\x63lustering_columns\x18\n \x03(\t\x12\x1d\n\x15with_schema_evolution\x18\x0b \x01(\x08\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\xeb\x01\n\tSaveTable\x12\x12\n\ntable_name\x18\x01 \x01(\t\x12L\n\x0bsave_method\x18\x02 \x01(\x0e\x32\x37.spark.connect.WriteOperation.SaveTable.TableSaveMethod\"|\n\x0fTableSaveMethod\x12!\n\x1dTABLE_SAVE_METHOD_UNSPECIFIED\x10\x00\x12#\n\x1fTABLE_SAVE_METHOD_SAVE_AS_TABLE\x10\x01\x12!\n\x1dTABLE_SAVE_METHOD_INSERT_INTO\x10\x02\x1a<\n\x08\x42ucketBy\x12\x1b\n\x13\x62ucket_column_names\x18\x01 \x03(\t\x12\x13\n\x0bnum_buckets\x18\x02 \x01(\x05\"\x89\x01\n\x08SaveMode\x12\x19\n\x15SAVE_MODE_UNSPECIFIED\x10\x00\x12\x14\n\x10SAVE_MODE_APPEND\x10\x01\x12\x17\n\x13SAVE_MODE_OVERWRITE\x10\x02\x12\x1d\n\x19SAVE_MODE_ERROR_IF_EXISTS\x10\x03\x12\x14\n\x10SAVE_MODE_IGNORE\x10\x04\x42\x0b\n\tsave_typeB\t\n\x07_source\"\xeb\x05\n\x10WriteOperationV2\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x12\n\ntable_name\x18\x02 \x01(\t\x12\x15\n\x08provider\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x14partitioning_columns\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x12=\n\x07options\x18\x05 \x03(\x0b\x32,.spark.connect.WriteOperationV2.OptionsEntry\x12N\n\x10table_properties\x18\x06 \x03(\x0b\x32\x34.spark.connect.WriteOperationV2.TablePropertiesEntry\x12\x32\n\x04mode\x18\x07 \x01(\x0e\x32$.spark.connect.WriteOperationV2.Mode\x12\x36\n\x13overwrite_condition\x18\x08 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x1a\n\x12\x63lustering_columns\x18\t \x03(\t\x12\x1d\n\x15with_schema_evolution\x18\n \x01(\x08\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x36\n\x14TablePropertiesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9f\x01\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bMODE_CREATE\x10\x01\x12\x12\n\x0eMODE_OVERWRITE\x10\x02\x12\x1d\n\x19MODE_OVERWRITE_PARTITIONS\x10\x03\x12\x0f\n\x0bMODE_APPEND\x10\x04\x12\x10\n\x0cMODE_REPLACE\x10\x05\x12\x1a\n\x16MODE_CREATE_OR_REPLACE\x10\x06\x42\x0b\n\t_provider\"\x99\x05\n\x19WriteStreamOperationStart\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0e\n\x06\x66ormat\x18\x02 \x01(\t\x12\x46\n\x07options\x18\x03 \x03(\x0b\x32\x35.spark.connect.WriteStreamOperationStart.OptionsEntry\x12!\n\x19partitioning_column_names\x18\x04 \x03(\t\x12\"\n\x18processing_time_interval\x18\x05 \x01(\tH\x00\x12\x17\n\ravailable_now\x18\x06 \x01(\x08H\x00\x12\x0e\n\x04once\x18\x07 \x01(\x08H\x00\x12(\n\x1e\x63ontinuous_checkpoint_interval\x18\x08 \x01(\tH\x00\x12\"\n\x18real_time_batch_duration\x18\x64 \x01(\tH\x00\x12\x13\n\x0boutput_mode\x18\t \x01(\t\x12\x12\n\nquery_name\x18\n \x01(\t\x12\x0e\n\x04path\x18\x0b \x01(\tH\x01\x12\x14\n\ntable_name\x18\x0c \x01(\tH\x01\x12?\n\x0e\x66oreach_writer\x18\r \x01(\x0b\x32\'.spark.connect.StreamingForeachFunction\x12>\n\rforeach_batch\x18\x0e \x01(\x0b\x32\'.spark.connect.StreamingForeachFunction\x12\x1f\n\x17\x63lustering_column_names\x18\x0f \x03(\t\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07triggerB\x12\n\x10sink_destination\"\x94\x01\n\x18StreamingForeachFunction\x12\x33\n\x0fpython_function\x18\x01 \x01(\x0b\x32\x18.spark.connect.PythonUDFH\x00\x12\x37\n\x0escala_function\x18\x02 \x01(\x0b\x32\x1d.spark.connect.ScalarScalaUDFH\x00\x42\n\n\x08\x66unction\"\xae\x01\n\x1fWriteStreamOperationStartResult\x12\x39\n\x08query_id\x18\x01 \x01(\x0b\x32\'.spark.connect.StreamingQueryInstanceId\x12\x0c\n\x04name\x18\x02 \x01(\t\x12%\n\x18query_started_event_json\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x1b\n\x19_query_started_event_json\"6\n\x18StreamingQueryInstanceId\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\"\xf3\x03\n\x15StreamingQueryCommand\x12\x39\n\x08query_id\x18\x01 \x01(\x0b\x32\'.spark.connect.StreamingQueryInstanceId\x12\x10\n\x06status\x18\x02 \x01(\x08H\x00\x12\x17\n\rlast_progress\x18\x03 \x01(\x08H\x00\x12\x19\n\x0frecent_progress\x18\x04 \x01(\x08H\x00\x12\x0e\n\x04stop\x18\x05 \x01(\x08H\x00\x12\x1f\n\x15process_all_available\x18\x06 \x01(\x08H\x00\x12\x46\n\x07\x65xplain\x18\x07 \x01(\x0b\x32\x33.spark.connect.StreamingQueryCommand.ExplainCommandH\x00\x12\x13\n\texception\x18\x08 \x01(\x08H\x00\x12Y\n\x11\x61wait_termination\x18\t \x01(\x0b\x32<.spark.connect.StreamingQueryCommand.AwaitTerminationCommandH\x00\x1a\"\n\x0e\x45xplainCommand\x12\x10\n\x08\x65xtended\x18\x01 \x01(\x08\x1a\x41\n\x17\x41waitTerminationCommand\x12\x17\n\ntimeout_ms\x18\x02 \x01(\x03H\x00\x88\x01\x01\x42\r\n\x0b_timeout_msB\t\n\x07\x63ommand\"\xa0\x07\n\x1bStreamingQueryCommandResult\x12\x39\n\x08query_id\x18\x01 \x01(\x0b\x32\'.spark.connect.StreamingQueryInstanceId\x12I\n\x06status\x18\x02 \x01(\x0b\x32\x37.spark.connect.StreamingQueryCommandResult.StatusResultH\x00\x12Z\n\x0frecent_progress\x18\x03 \x01(\x0b\x32?.spark.connect.StreamingQueryCommandResult.RecentProgressResultH\x00\x12K\n\x07\x65xplain\x18\x04 \x01(\x0b\x32\x38.spark.connect.StreamingQueryCommandResult.ExplainResultH\x00\x12O\n\texception\x18\x05 \x01(\x0b\x32:.spark.connect.StreamingQueryCommandResult.ExceptionResultH\x00\x12^\n\x11\x61wait_termination\x18\x06 \x01(\x0b\x32\x41.spark.connect.StreamingQueryCommandResult.AwaitTerminationResultH\x00\x1ao\n\x0cStatusResult\x12\x16\n\x0estatus_message\x18\x01 \x01(\t\x12\x19\n\x11is_data_available\x18\x02 \x01(\x08\x12\x19\n\x11is_trigger_active\x18\x03 \x01(\x08\x12\x11\n\tis_active\x18\x04 \x01(\x08\x1a\x34\n\x14RecentProgressResult\x12\x1c\n\x14recent_progress_json\x18\x05 \x03(\t\x1a\x1f\n\rExplainResult\x12\x0e\n\x06result\x18\x01 \x01(\t\x1a\x9b\x01\n\x0f\x45xceptionResult\x12\x1e\n\x11\x65xception_message\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x65rror_class\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0bstack_trace\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x14\n\x12_exception_messageB\x0e\n\x0c_error_classB\x0e\n\x0c_stack_trace\x1a,\n\x16\x41waitTerminationResult\x12\x12\n\nterminated\x18\x01 \x01(\x08\x42\r\n\x0bresult_type\"\xa2\x05\n\x1cStreamingQueryManagerCommand\x12\x10\n\x06\x61\x63tive\x18\x01 \x01(\x08H\x00\x12\x13\n\tget_query\x18\x02 \x01(\tH\x00\x12g\n\x15\x61wait_any_termination\x18\x03 \x01(\x0b\x32\x46.spark.connect.StreamingQueryManagerCommand.AwaitAnyTerminationCommandH\x00\x12\x1a\n\x10reset_terminated\x18\x04 \x01(\x08H\x00\x12\x61\n\x0c\x61\x64\x64_listener\x18\x05 \x01(\x0b\x32I.spark.connect.StreamingQueryManagerCommand.StreamingQueryListenerCommandH\x00\x12\x64\n\x0fremove_listener\x18\x06 \x01(\x0b\x32I.spark.connect.StreamingQueryManagerCommand.StreamingQueryListenerCommandH\x00\x12\x18\n\x0elist_listeners\x18\x07 \x01(\x08H\x00\x1a\x44\n\x1a\x41waitAnyTerminationCommand\x12\x17\n\ntimeout_ms\x18\x01 \x01(\x03H\x00\x88\x01\x01\x42\r\n\x0b_timeout_ms\x1a\xa1\x01\n\x1dStreamingQueryListenerCommand\x12\x18\n\x10listener_payload\x18\x01 \x01(\x0c\x12>\n\x17python_listener_payload\x18\x02 \x01(\x0b\x32\x18.spark.connect.PythonUDFH\x00\x88\x01\x01\x12\n\n\x02id\x18\x03 \x01(\tB\x1a\n\x18_python_listener_payloadB\t\n\x07\x63ommand\"\x8f\x07\n\"StreamingQueryManagerCommandResult\x12P\n\x06\x61\x63tive\x18\x01 \x01(\x0b\x32>.spark.connect.StreamingQueryManagerCommandResult.ActiveResultH\x00\x12Y\n\x05query\x18\x02 \x01(\x0b\x32H.spark.connect.StreamingQueryManagerCommandResult.StreamingQueryInstanceH\x00\x12l\n\x15\x61wait_any_termination\x18\x03 \x01(\x0b\x32K.spark.connect.StreamingQueryManagerCommandResult.AwaitAnyTerminationResultH\x00\x12\x1a\n\x10reset_terminated\x18\x04 \x01(\x08H\x00\x12\x16\n\x0c\x61\x64\x64_listener\x18\x05 \x01(\x08H\x00\x12\x19\n\x0fremove_listener\x18\x06 \x01(\x08H\x00\x12l\n\x0elist_listeners\x18\x07 \x01(\x0b\x32R.spark.connect.StreamingQueryManagerCommandResult.ListStreamingQueryListenerResultH\x00\x1ap\n\x0c\x41\x63tiveResult\x12`\n\x0e\x61\x63tive_queries\x18\x01 \x03(\x0b\x32H.spark.connect.StreamingQueryManagerCommandResult.StreamingQueryInstance\x1ai\n\x16StreamingQueryInstance\x12\x33\n\x02id\x18\x01 \x01(\x0b\x32\'.spark.connect.StreamingQueryInstanceId\x12\x11\n\x04name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\x1a/\n\x19\x41waitAnyTerminationResult\x12\x12\n\nterminated\x18\x01 \x01(\x08\x1a:\n\x1eStreamingQueryListenerInstance\x12\x18\n\x10listener_payload\x18\x01 \x01(\x0c\x1a\x38\n ListStreamingQueryListenerResult\x12\x14\n\x0clistener_ids\x18\x01 \x03(\tB\r\n\x0bresult_type\"z\n StreamingQueryListenerBusCommand\x12#\n\x19\x61\x64\x64_listener_bus_listener\x18\x01 \x01(\x08H\x00\x12&\n\x1cremove_listener_bus_listener\x18\x02 \x01(\x08H\x00\x42\t\n\x07\x63ommand\"m\n\x1bStreamingQueryListenerEvent\x12\x12\n\nevent_json\x18\x01 \x01(\t\x12:\n\nevent_type\x18\x02 \x01(\x0e\x32&.spark.connect.StreamingQueryEventType\"\xaa\x01\n\"StreamingQueryListenerEventsResult\x12:\n\x06\x65vents\x18\x01 \x03(\x0b\x32*.spark.connect.StreamingQueryListenerEvent\x12(\n\x1blistener_bus_listener_added\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x1e\n\x1c_listener_bus_listener_added\"\x15\n\x13GetResourcesCommand\"\xbd\x01\n\x19GetResourcesCommandResult\x12J\n\tresources\x18\x01 \x03(\x0b\x32\x37.spark.connect.GetResourcesCommandResult.ResourcesEntry\x1aT\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x31\n\x05value\x18\x02 \x01(\x0b\x32\".spark.connect.ResourceInformation:\x02\x38\x01\"O\n\x1c\x43reateResourceProfileCommand\x12/\n\x07profile\x18\x01 \x01(\x0b\x32\x1e.spark.connect.ResourceProfile\"8\n\"CreateResourceProfileCommandResult\x12\x12\n\nprofile_id\x18\x01 \x01(\x05\"Z\n!RemoveCachedRemoteRelationCommand\x12\x35\n\x08relation\x18\x01 \x01(\x0b\x32#.spark.connect.CachedRemoteRelation\"\xa7\x01\n\x11\x43heckpointCommand\x12)\n\x08relation\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\r\n\x05local\x18\x02 \x01(\x08\x12\r\n\x05\x65\x61ger\x18\x03 \x01(\x08\x12\x37\n\rstorage_level\x18\x04 \x01(\x0b\x32\x1b.spark.connect.StorageLevelH\x00\x88\x01\x01\x42\x10\n\x0e_storage_level\"\xe5\x02\n\x15MergeIntoTableCommand\x12\x19\n\x11target_table_name\x18\x01 \x01(\t\x12\x32\n\x11source_table_plan\x18\x02 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x32\n\x0fmerge_condition\x18\x03 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x30\n\rmatch_actions\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x36\n\x13not_matched_actions\x18\x05 \x03(\x0b\x32\x19.spark.connect.Expression\x12@\n\x1dnot_matched_by_source_actions\x18\x06 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x1d\n\x15with_schema_evolution\x18\x07 \x01(\x08\"\xae\x01\n\x16\x45xecuteExternalCommand\x12\x0e\n\x06runner\x18\x01 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x02 \x01(\t\x12\x43\n\x07options\x18\x03 \x03(\x0b\x32\x32.spark.connect.ExecuteExternalCommand.OptionsEntry\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*\x85\x01\n\x17StreamingQueryEventType\x12\x1e\n\x1aQUERY_PROGRESS_UNSPECIFIED\x10\x00\x12\x18\n\x14QUERY_PROGRESS_EVENT\x10\x01\x12\x1a\n\x16QUERY_TERMINATED_EVENT\x10\x02\x12\x14\n\x10QUERY_IDLE_EVENT\x10\x03\x42\x36\n\x1eorg.apache.spark.connect.protoP\x01Z\x12internal/generatedb\x06proto3"
16
16
 
17
17
  pool = ::Google::Protobuf::DescriptorPool.generated_pool
18
18
  pool.add_serialized_file(descriptor_data)
@@ -9,7 +9,7 @@ require 'spark/connect/types_pb'
9
9
  require 'spark/connect/common_pb'
10
10
 
11
11
 
12
- descriptor_data = "\n\x1fspark/connect/expressions.proto\x12\rspark.connect\x1a\x19google/protobuf/any.proto\x1a\x19spark/connect/types.proto\x1a\x1aspark/connect/common.proto\"\x8e.\n\nExpression\x12/\n\x06\x63ommon\x18\x12 \x01(\x0b\x32\x1f.spark.connect.ExpressionCommon\x12\x34\n\x07literal\x18\x01 \x01(\x0b\x32!.spark.connect.Expression.LiteralH\x00\x12M\n\x14unresolved_attribute\x18\x02 \x01(\x0b\x32-.spark.connect.Expression.UnresolvedAttributeH\x00\x12K\n\x13unresolved_function\x18\x03 \x01(\x0b\x32,.spark.connect.Expression.UnresolvedFunctionH\x00\x12G\n\x11\x65xpression_string\x18\x04 \x01(\x0b\x32*.spark.connect.Expression.ExpressionStringH\x00\x12\x43\n\x0funresolved_star\x18\x05 \x01(\x0b\x32(.spark.connect.Expression.UnresolvedStarH\x00\x12\x30\n\x05\x61lias\x18\x06 \x01(\x0b\x32\x1f.spark.connect.Expression.AliasH\x00\x12.\n\x04\x63\x61st\x18\x07 \x01(\x0b\x32\x1e.spark.connect.Expression.CastH\x00\x12\x45\n\x10unresolved_regex\x18\x08 \x01(\x0b\x32).spark.connect.Expression.UnresolvedRegexH\x00\x12\x39\n\nsort_order\x18\t \x01(\x0b\x32#.spark.connect.Expression.SortOrderH\x00\x12\x43\n\x0flambda_function\x18\n \x01(\x0b\x32(.spark.connect.Expression.LambdaFunctionH\x00\x12\x32\n\x06window\x18\x0b \x01(\x0b\x32 .spark.connect.Expression.WindowH\x00\x12T\n\x18unresolved_extract_value\x18\x0c \x01(\x0b\x32\x30.spark.connect.Expression.UnresolvedExtractValueH\x00\x12?\n\rupdate_fields\x18\r \x01(\x0b\x32&.spark.connect.Expression.UpdateFieldsH\x00\x12\x63\n unresolved_named_lambda_variable\x18\x0e \x01(\x0b\x32\x37.spark.connect.Expression.UnresolvedNamedLambdaVariableH\x00\x12]\n#common_inline_user_defined_function\x18\x0f \x01(\x0b\x32..spark.connect.CommonInlineUserDefinedFunctionH\x00\x12\x34\n\rcall_function\x18\x10 \x01(\x0b\x32\x1b.spark.connect.CallFunctionH\x00\x12K\n\x19named_argument_expression\x18\x11 \x01(\x0b\x32&.spark.connect.NamedArgumentExpressionH\x00\x12\x32\n\x0cmerge_action\x18\x13 \x01(\x0b\x32\x1a.spark.connect.MergeActionH\x00\x12M\n\x1atyped_aggregate_expression\x18\x14 \x01(\x0b\x32\'.spark.connect.TypedAggregateExpressionH\x00\x12@\n\x13subquery_expression\x18\x15 \x01(\x0b\x32!.spark.connect.SubqueryExpressionH\x00\x12Y\n\x1b\x64irect_shuffle_partition_id\x18\x16 \x01(\x0b\x32\x32.spark.connect.Expression.DirectShufflePartitionIDH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x1a\xa2\x05\n\x06Window\x12\x32\n\x0fwindow_function\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x31\n\x0epartition_spec\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x37\n\norder_spec\x18\x03 \x03(\x0b\x32#.spark.connect.Expression.SortOrder\x12@\n\nframe_spec\x18\x04 \x01(\x0b\x32,.spark.connect.Expression.Window.WindowFrame\x1a\xb5\x03\n\x0bWindowFrame\x12J\n\nframe_type\x18\x01 \x01(\x0e\x32\x36.spark.connect.Expression.Window.WindowFrame.FrameType\x12I\n\x05lower\x18\x02 \x01(\x0b\x32:.spark.connect.Expression.Window.WindowFrame.FrameBoundary\x12I\n\x05upper\x18\x03 \x01(\x0b\x32:.spark.connect.Expression.Window.WindowFrame.FrameBoundary\x1as\n\rFrameBoundary\x12\x15\n\x0b\x63urrent_row\x18\x01 \x01(\x08H\x00\x12\x13\n\tunbounded\x18\x02 \x01(\x08H\x00\x12*\n\x05value\x18\x03 \x01(\x0b\x32\x19.spark.connect.ExpressionH\x00\x42\n\n\x08\x62oundary\"O\n\tFrameType\x12\x18\n\x14\x46RAME_TYPE_UNDEFINED\x10\x00\x12\x12\n\x0e\x46RAME_TYPE_ROW\x10\x01\x12\x14\n\x10\x46RAME_TYPE_RANGE\x10\x02\x1a\x89\x03\n\tSortOrder\x12(\n\x05\x63hild\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x44\n\tdirection\x18\x02 \x01(\x0e\x32\x31.spark.connect.Expression.SortOrder.SortDirection\x12G\n\rnull_ordering\x18\x03 \x01(\x0e\x32\x30.spark.connect.Expression.SortOrder.NullOrdering\"l\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12\x1c\n\x18SORT_DIRECTION_ASCENDING\x10\x01\x12\x1d\n\x19SORT_DIRECTION_DESCENDING\x10\x02\"U\n\x0cNullOrdering\x12\x1a\n\x16SORT_NULLS_UNSPECIFIED\x10\x00\x12\x14\n\x10SORT_NULLS_FIRST\x10\x01\x12\x13\n\x0fSORT_NULLS_LAST\x10\x02\x1a\x44\n\x18\x44irectShufflePartitionID\x12(\n\x05\x63hild\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x1a\x9c\x02\n\x04\x43\x61st\x12\'\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\'\n\x04type\x18\x02 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x00\x12\x12\n\x08type_str\x18\x03 \x01(\tH\x00\x12:\n\teval_mode\x18\x04 \x01(\x0e\x32\'.spark.connect.Expression.Cast.EvalMode\"b\n\x08\x45valMode\x12\x19\n\x15\x45VAL_MODE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x45VAL_MODE_LEGACY\x10\x01\x12\x12\n\x0e\x45VAL_MODE_ANSI\x10\x02\x12\x11\n\rEVAL_MODE_TRY\x10\x03\x42\x0e\n\x0c\x63\x61st_to_type\x1a\xfb\r\n\x07Literal\x12\'\n\x04null\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x00\x12\x10\n\x06\x62inary\x18\x02 \x01(\x0cH\x00\x12\x11\n\x07\x62oolean\x18\x03 \x01(\x08H\x00\x12\x0e\n\x04\x62yte\x18\x04 \x01(\x05H\x00\x12\x0f\n\x05short\x18\x05 \x01(\x05H\x00\x12\x11\n\x07integer\x18\x06 \x01(\x05H\x00\x12\x0e\n\x04long\x18\x07 \x01(\x03H\x00\x12\x0f\n\x05\x66loat\x18\n \x01(\x02H\x00\x12\x10\n\x06\x64ouble\x18\x0b \x01(\x01H\x00\x12<\n\x07\x64\x65\x63imal\x18\x0c \x01(\x0b\x32).spark.connect.Expression.Literal.DecimalH\x00\x12\x10\n\x06string\x18\r \x01(\tH\x00\x12\x0e\n\x04\x64\x61te\x18\x10 \x01(\x05H\x00\x12\x13\n\ttimestamp\x18\x11 \x01(\x03H\x00\x12\x17\n\rtimestamp_ntz\x18\x12 \x01(\x03H\x00\x12O\n\x11\x63\x61lendar_interval\x18\x13 \x01(\x0b\x32\x32.spark.connect.Expression.Literal.CalendarIntervalH\x00\x12\x1d\n\x13year_month_interval\x18\x14 \x01(\x05H\x00\x12\x1b\n\x11\x64\x61y_time_interval\x18\x15 \x01(\x03H\x00\x12\x38\n\x05\x61rray\x18\x16 \x01(\x0b\x32\'.spark.connect.Expression.Literal.ArrayH\x00\x12\x34\n\x03map\x18\x17 \x01(\x0b\x32%.spark.connect.Expression.Literal.MapH\x00\x12:\n\x06struct\x18\x18 \x01(\x0b\x32(.spark.connect.Expression.Literal.StructH\x00\x12O\n\x11specialized_array\x18\x19 \x01(\x0b\x32\x32.spark.connect.Expression.Literal.SpecializedArrayH\x00\x12\x36\n\x04time\x18\x1a \x01(\x0b\x32&.spark.connect.Expression.Literal.TimeH\x00\x12*\n\tdata_type\x18\x64 \x01(\x0b\x32\x17.spark.connect.DataType\x1a\\\n\x07\x44\x65\x63imal\x12\r\n\x05value\x18\x01 \x01(\t\x12\x16\n\tprecision\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x05scale\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\x0c\n\n_precisionB\x08\n\x06_scale\x1a\x46\n\x10\x43\x61lendarInterval\x12\x0e\n\x06months\x18\x01 \x01(\x05\x12\x0c\n\x04\x64\x61ys\x18\x02 \x01(\x05\x12\x14\n\x0cmicroseconds\x18\x03 \x01(\x03\x1ao\n\x05\x41rray\x12\x31\n\x0c\x65lement_type\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataTypeB\x02\x18\x01\x12\x33\n\x08\x65lements\x18\x02 \x03(\x0b\x32!.spark.connect.Expression.Literal\x1a\xc9\x01\n\x03Map\x12-\n\x08key_type\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataTypeB\x02\x18\x01\x12/\n\nvalue_type\x18\x02 \x01(\x0b\x32\x17.spark.connect.DataTypeB\x02\x18\x01\x12/\n\x04keys\x18\x03 \x03(\x0b\x32!.spark.connect.Expression.Literal\x12\x31\n\x06values\x18\x04 \x03(\x0b\x32!.spark.connect.Expression.Literal\x1ao\n\x06Struct\x12\x30\n\x0bstruct_type\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataTypeB\x02\x18\x01\x12\x33\n\x08\x65lements\x18\x02 \x03(\x0b\x32!.spark.connect.Expression.Literal\x1a\x92\x02\n\x10SpecializedArray\x12%\n\x05\x62ools\x18\x01 \x01(\x0b\x32\x14.spark.connect.BoolsH\x00\x12#\n\x04ints\x18\x02 \x01(\x0b\x32\x13.spark.connect.IntsH\x00\x12%\n\x05longs\x18\x03 \x01(\x0b\x32\x14.spark.connect.LongsH\x00\x12\'\n\x06\x66loats\x18\x04 \x01(\x0b\x32\x15.spark.connect.FloatsH\x00\x12)\n\x07\x64oubles\x18\x05 \x01(\x0b\x32\x16.spark.connect.DoublesH\x00\x12)\n\x07strings\x18\x06 \x01(\x0b\x32\x16.spark.connect.StringsH\x00\x42\x0c\n\nvalue_type\x1a:\n\x04Time\x12\x0c\n\x04nano\x18\x01 \x01(\x03\x12\x16\n\tprecision\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\x0c\n\n_precisionB\x0e\n\x0cliteral_typeJ\x04\x08\x1b\x10\x1cJ\x04\x08\x1c\x10\x1d\x1a\x8c\x01\n\x13UnresolvedAttribute\x12\x1b\n\x13unparsed_identifier\x18\x01 \x01(\t\x12\x14\n\x07plan_id\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x1f\n\x12is_metadata_column\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_plan_idB\x15\n\x13_is_metadata_column\x1a\xba\x01\n\x12UnresolvedFunction\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12,\n\targuments\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x13\n\x0bis_distinct\x18\x03 \x01(\x08\x12 \n\x18is_user_defined_function\x18\x04 \x01(\x08\x12\x18\n\x0bis_internal\x18\x05 \x01(\x08H\x00\x88\x01\x01\x42\x0e\n\x0c_is_internal\x1a&\n\x10\x45xpressionString\x12\x12\n\nexpression\x18\x01 \x01(\t\x1a\x64\n\x0eUnresolvedStar\x12\x1c\n\x0funparsed_target\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07plan_id\x18\x02 \x01(\x03H\x01\x88\x01\x01\x42\x12\n\x10_unparsed_targetB\n\n\x08_plan_id\x1a\x45\n\x0fUnresolvedRegex\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12\x14\n\x07plan_id\x18\x02 \x01(\x03H\x00\x88\x01\x01\x42\n\n\x08_plan_id\x1aq\n\x16UnresolvedExtractValue\x12(\n\x05\x63hild\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12-\n\nextraction\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression\x1a\x8d\x01\n\x0cUpdateFields\x12\x34\n\x11struct_expression\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x12\n\nfield_name\x18\x02 \x01(\t\x12\x33\n\x10value_expression\x18\x03 \x01(\x0b\x32\x19.spark.connect.Expression\x1a\x62\n\x05\x41lias\x12\'\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x0c\n\x04name\x18\x02 \x03(\t\x12\x15\n\x08metadata\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_metadata\x1a\x89\x01\n\x0eLambdaFunction\x12+\n\x08\x66unction\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12J\n\targuments\x18\x02 \x03(\x0b\x32\x37.spark.connect.Expression.UnresolvedNamedLambdaVariable\x1a\x33\n\x1dUnresolvedNamedLambdaVariable\x12\x12\n\nname_parts\x18\x01 \x03(\tB\x0b\n\texpr_type\"9\n\x10\x45xpressionCommon\x12%\n\x06origin\x18\x01 \x01(\x0b\x32\x15.spark.connect.Origin\"\xb5\x02\n\x1f\x43ommonInlineUserDefinedFunction\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x15\n\rdeterministic\x18\x02 \x01(\x08\x12,\n\targuments\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\x12.\n\npython_udf\x18\x04 \x01(\x0b\x32\x18.spark.connect.PythonUDFH\x00\x12\x39\n\x10scalar_scala_udf\x18\x05 \x01(\x0b\x32\x1d.spark.connect.ScalarScalaUDFH\x00\x12*\n\x08java_udf\x18\x06 \x01(\x0b\x32\x16.spark.connect.JavaUDFH\x00\x12\x13\n\x0bis_distinct\x18\x07 \x01(\x08\x42\n\n\x08\x66unction\"\x8e\x01\n\tPythonUDF\x12,\n\x0boutput_type\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataType\x12\x11\n\teval_type\x18\x02 \x01(\x05\x12\x0f\n\x07\x63ommand\x18\x03 \x01(\x0c\x12\x12\n\npython_ver\x18\x04 \x01(\t\x12\x1b\n\x13\x61\x64\x64itional_includes\x18\x05 \x03(\t\"\xa0\x01\n\x0eScalarScalaUDF\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12+\n\ninputTypes\x18\x02 \x03(\x0b\x32\x17.spark.connect.DataType\x12+\n\noutputType\x18\x03 \x01(\x0b\x32\x17.spark.connect.DataType\x12\x10\n\x08nullable\x18\x04 \x01(\x08\x12\x11\n\taggregate\x18\x05 \x01(\x08\"s\n\x07JavaUDF\x12\x12\n\nclass_name\x18\x01 \x01(\t\x12\x31\n\x0boutput_type\x18\x02 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x00\x88\x01\x01\x12\x11\n\taggregate\x18\x03 \x01(\x08\x42\x0e\n\x0c_output_type\"S\n\x18TypedAggregateExpression\x12\x37\n\x10scalar_scala_udf\x18\x01 \x01(\x0b\x32\x1d.spark.connect.ScalarScalaUDF\"S\n\x0c\x43\x61llFunction\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12,\n\targuments\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\"P\n\x17NamedArgumentExpression\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression\"\xd0\x03\n\x0bMergeAction\x12:\n\x0b\x61\x63tion_type\x18\x01 \x01(\x0e\x32%.spark.connect.MergeAction.ActionType\x12\x31\n\tcondition\x18\x02 \x01(\x0b\x32\x19.spark.connect.ExpressionH\x00\x88\x01\x01\x12:\n\x0b\x61ssignments\x18\x03 \x03(\x0b\x32%.spark.connect.MergeAction.Assignment\x1a^\n\nAssignment\x12&\n\x03key\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression\"\xa7\x01\n\nActionType\x12\x17\n\x13\x41\x43TION_TYPE_INVALID\x10\x00\x12\x16\n\x12\x41\x43TION_TYPE_DELETE\x10\x01\x12\x16\n\x12\x41\x43TION_TYPE_INSERT\x10\x02\x12\x1b\n\x17\x41\x43TION_TYPE_INSERT_STAR\x10\x03\x12\x16\n\x12\x41\x43TION_TYPE_UPDATE\x10\x04\x12\x1b\n\x17\x41\x43TION_TYPE_UPDATE_STAR\x10\x05\x42\x0c\n\n_condition\"\xdd\x04\n\x12SubqueryExpression\x12\x0f\n\x07plan_id\x18\x01 \x01(\x03\x12\x45\n\rsubquery_type\x18\x02 \x01(\x0e\x32..spark.connect.SubqueryExpression.SubqueryType\x12Q\n\x11table_arg_options\x18\x03 \x01(\x0b\x32\x31.spark.connect.SubqueryExpression.TableArgOptionsH\x00\x88\x01\x01\x12\x35\n\x12in_subquery_values\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x1a\xbb\x01\n\x0fTableArgOptions\x12\x31\n\x0epartition_spec\x18\x01 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x37\n\norder_spec\x18\x02 \x03(\x0b\x32#.spark.connect.Expression.SortOrder\x12\"\n\x15with_single_partition\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x18\n\x16_with_single_partition\"\x90\x01\n\x0cSubqueryType\x12\x19\n\x15SUBQUERY_TYPE_UNKNOWN\x10\x00\x12\x18\n\x14SUBQUERY_TYPE_SCALAR\x10\x01\x12\x18\n\x14SUBQUERY_TYPE_EXISTS\x10\x02\x12\x1b\n\x17SUBQUERY_TYPE_TABLE_ARG\x10\x03\x12\x14\n\x10SUBQUERY_TYPE_IN\x10\x04\x42\x14\n\x12_table_arg_optionsB6\n\x1eorg.apache.spark.connect.protoP\x01Z\x12internal/generatedb\x06proto3"
12
+ descriptor_data = "\n\x1fspark/connect/expressions.proto\x12\rspark.connect\x1a\x19google/protobuf/any.proto\x1a\x19spark/connect/types.proto\x1a\x1aspark/connect/common.proto\"\x90\x31\n\nExpression\x12/\n\x06\x63ommon\x18\x12 \x01(\x0b\x32\x1f.spark.connect.ExpressionCommon\x12\x34\n\x07literal\x18\x01 \x01(\x0b\x32!.spark.connect.Expression.LiteralH\x00\x12M\n\x14unresolved_attribute\x18\x02 \x01(\x0b\x32-.spark.connect.Expression.UnresolvedAttributeH\x00\x12K\n\x13unresolved_function\x18\x03 \x01(\x0b\x32,.spark.connect.Expression.UnresolvedFunctionH\x00\x12G\n\x11\x65xpression_string\x18\x04 \x01(\x0b\x32*.spark.connect.Expression.ExpressionStringH\x00\x12\x43\n\x0funresolved_star\x18\x05 \x01(\x0b\x32(.spark.connect.Expression.UnresolvedStarH\x00\x12\x30\n\x05\x61lias\x18\x06 \x01(\x0b\x32\x1f.spark.connect.Expression.AliasH\x00\x12.\n\x04\x63\x61st\x18\x07 \x01(\x0b\x32\x1e.spark.connect.Expression.CastH\x00\x12\x45\n\x10unresolved_regex\x18\x08 \x01(\x0b\x32).spark.connect.Expression.UnresolvedRegexH\x00\x12\x39\n\nsort_order\x18\t \x01(\x0b\x32#.spark.connect.Expression.SortOrderH\x00\x12\x43\n\x0flambda_function\x18\n \x01(\x0b\x32(.spark.connect.Expression.LambdaFunctionH\x00\x12\x32\n\x06window\x18\x0b \x01(\x0b\x32 .spark.connect.Expression.WindowH\x00\x12T\n\x18unresolved_extract_value\x18\x0c \x01(\x0b\x32\x30.spark.connect.Expression.UnresolvedExtractValueH\x00\x12?\n\rupdate_fields\x18\r \x01(\x0b\x32&.spark.connect.Expression.UpdateFieldsH\x00\x12\x63\n unresolved_named_lambda_variable\x18\x0e \x01(\x0b\x32\x37.spark.connect.Expression.UnresolvedNamedLambdaVariableH\x00\x12]\n#common_inline_user_defined_function\x18\x0f \x01(\x0b\x32..spark.connect.CommonInlineUserDefinedFunctionH\x00\x12\x34\n\rcall_function\x18\x10 \x01(\x0b\x32\x1b.spark.connect.CallFunctionH\x00\x12K\n\x19named_argument_expression\x18\x11 \x01(\x0b\x32&.spark.connect.NamedArgumentExpressionH\x00\x12\x32\n\x0cmerge_action\x18\x13 \x01(\x0b\x32\x1a.spark.connect.MergeActionH\x00\x12M\n\x1atyped_aggregate_expression\x18\x14 \x01(\x0b\x32\'.spark.connect.TypedAggregateExpressionH\x00\x12@\n\x13subquery_expression\x18\x15 \x01(\x0b\x32!.spark.connect.SubqueryExpressionH\x00\x12Y\n\x1b\x64irect_shuffle_partition_id\x18\x16 \x01(\x0b\x32\x32.spark.connect.Expression.DirectShufflePartitionIDH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x1a\xa2\x05\n\x06Window\x12\x32\n\x0fwindow_function\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x31\n\x0epartition_spec\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x37\n\norder_spec\x18\x03 \x03(\x0b\x32#.spark.connect.Expression.SortOrder\x12@\n\nframe_spec\x18\x04 \x01(\x0b\x32,.spark.connect.Expression.Window.WindowFrame\x1a\xb5\x03\n\x0bWindowFrame\x12J\n\nframe_type\x18\x01 \x01(\x0e\x32\x36.spark.connect.Expression.Window.WindowFrame.FrameType\x12I\n\x05lower\x18\x02 \x01(\x0b\x32:.spark.connect.Expression.Window.WindowFrame.FrameBoundary\x12I\n\x05upper\x18\x03 \x01(\x0b\x32:.spark.connect.Expression.Window.WindowFrame.FrameBoundary\x1as\n\rFrameBoundary\x12\x15\n\x0b\x63urrent_row\x18\x01 \x01(\x08H\x00\x12\x13\n\tunbounded\x18\x02 \x01(\x08H\x00\x12*\n\x05value\x18\x03 \x01(\x0b\x32\x19.spark.connect.ExpressionH\x00\x42\n\n\x08\x62oundary\"O\n\tFrameType\x12\x18\n\x14\x46RAME_TYPE_UNDEFINED\x10\x00\x12\x12\n\x0e\x46RAME_TYPE_ROW\x10\x01\x12\x14\n\x10\x46RAME_TYPE_RANGE\x10\x02\x1a\x89\x03\n\tSortOrder\x12(\n\x05\x63hild\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x44\n\tdirection\x18\x02 \x01(\x0e\x32\x31.spark.connect.Expression.SortOrder.SortDirection\x12G\n\rnull_ordering\x18\x03 \x01(\x0e\x32\x30.spark.connect.Expression.SortOrder.NullOrdering\"l\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12\x1c\n\x18SORT_DIRECTION_ASCENDING\x10\x01\x12\x1d\n\x19SORT_DIRECTION_DESCENDING\x10\x02\"U\n\x0cNullOrdering\x12\x1a\n\x16SORT_NULLS_UNSPECIFIED\x10\x00\x12\x14\n\x10SORT_NULLS_FIRST\x10\x01\x12\x13\n\x0fSORT_NULLS_LAST\x10\x02\x1a\x44\n\x18\x44irectShufflePartitionID\x12(\n\x05\x63hild\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x1a\x9c\x02\n\x04\x43\x61st\x12\'\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\'\n\x04type\x18\x02 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x00\x12\x12\n\x08type_str\x18\x03 \x01(\tH\x00\x12:\n\teval_mode\x18\x04 \x01(\x0e\x32\'.spark.connect.Expression.Cast.EvalMode\"b\n\x08\x45valMode\x12\x19\n\x15\x45VAL_MODE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x45VAL_MODE_LEGACY\x10\x01\x12\x12\n\x0e\x45VAL_MODE_ANSI\x10\x02\x12\x11\n\rEVAL_MODE_TRY\x10\x03\x42\x0e\n\x0c\x63\x61st_to_type\x1a\xfd\x10\n\x07Literal\x12\'\n\x04null\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x00\x12\x10\n\x06\x62inary\x18\x02 \x01(\x0cH\x00\x12\x11\n\x07\x62oolean\x18\x03 \x01(\x08H\x00\x12\x0e\n\x04\x62yte\x18\x04 \x01(\x05H\x00\x12\x0f\n\x05short\x18\x05 \x01(\x05H\x00\x12\x11\n\x07integer\x18\x06 \x01(\x05H\x00\x12\x0e\n\x04long\x18\x07 \x01(\x03H\x00\x12\x0f\n\x05\x66loat\x18\n \x01(\x02H\x00\x12\x10\n\x06\x64ouble\x18\x0b \x01(\x01H\x00\x12<\n\x07\x64\x65\x63imal\x18\x0c \x01(\x0b\x32).spark.connect.Expression.Literal.DecimalH\x00\x12\x10\n\x06string\x18\r \x01(\tH\x00\x12\x0e\n\x04\x64\x61te\x18\x10 \x01(\x05H\x00\x12\x13\n\ttimestamp\x18\x11 \x01(\x03H\x00\x12\x17\n\rtimestamp_ntz\x18\x12 \x01(\x03H\x00\x12O\n\x11\x63\x61lendar_interval\x18\x13 \x01(\x0b\x32\x32.spark.connect.Expression.Literal.CalendarIntervalH\x00\x12\x1d\n\x13year_month_interval\x18\x14 \x01(\x05H\x00\x12\x1b\n\x11\x64\x61y_time_interval\x18\x15 \x01(\x03H\x00\x12\x38\n\x05\x61rray\x18\x16 \x01(\x0b\x32\'.spark.connect.Expression.Literal.ArrayH\x00\x12\x34\n\x03map\x18\x17 \x01(\x0b\x32%.spark.connect.Expression.Literal.MapH\x00\x12:\n\x06struct\x18\x18 \x01(\x0b\x32(.spark.connect.Expression.Literal.StructH\x00\x12O\n\x11specialized_array\x18\x19 \x01(\x0b\x32\x32.spark.connect.Expression.Literal.SpecializedArrayH\x00\x12\x36\n\x04time\x18\x1a \x01(\x0b\x32&.spark.connect.Expression.Literal.TimeH\x00\x12R\n\x13timestamp_ntz_nanos\x18\x1d \x01(\x0b\x32\x33.spark.connect.Expression.Literal.TimestampNTZNanosH\x00\x12R\n\x13timestamp_ltz_nanos\x18\x1e \x01(\x0b\x32\x33.spark.connect.Expression.Literal.TimestampLTZNanosH\x00\x12*\n\tdata_type\x18\x64 \x01(\x0b\x32\x17.spark.connect.DataType\x1a\\\n\x07\x44\x65\x63imal\x12\r\n\x05value\x18\x01 \x01(\t\x12\x16\n\tprecision\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x05scale\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\x0c\n\n_precisionB\x08\n\x06_scale\x1a\x46\n\x10\x43\x61lendarInterval\x12\x0e\n\x06months\x18\x01 \x01(\x05\x12\x0c\n\x04\x64\x61ys\x18\x02 \x01(\x05\x12\x14\n\x0cmicroseconds\x18\x03 \x01(\x03\x1ao\n\x05\x41rray\x12\x31\n\x0c\x65lement_type\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataTypeB\x02\x18\x01\x12\x33\n\x08\x65lements\x18\x02 \x03(\x0b\x32!.spark.connect.Expression.Literal\x1a\xc9\x01\n\x03Map\x12-\n\x08key_type\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataTypeB\x02\x18\x01\x12/\n\nvalue_type\x18\x02 \x01(\x0b\x32\x17.spark.connect.DataTypeB\x02\x18\x01\x12/\n\x04keys\x18\x03 \x03(\x0b\x32!.spark.connect.Expression.Literal\x12\x31\n\x06values\x18\x04 \x03(\x0b\x32!.spark.connect.Expression.Literal\x1ao\n\x06Struct\x12\x30\n\x0bstruct_type\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataTypeB\x02\x18\x01\x12\x33\n\x08\x65lements\x18\x02 \x03(\x0b\x32!.spark.connect.Expression.Literal\x1a\x92\x02\n\x10SpecializedArray\x12%\n\x05\x62ools\x18\x01 \x01(\x0b\x32\x14.spark.connect.BoolsH\x00\x12#\n\x04ints\x18\x02 \x01(\x0b\x32\x13.spark.connect.IntsH\x00\x12%\n\x05longs\x18\x03 \x01(\x0b\x32\x14.spark.connect.LongsH\x00\x12\'\n\x06\x66loats\x18\x04 \x01(\x0b\x32\x15.spark.connect.FloatsH\x00\x12)\n\x07\x64oubles\x18\x05 \x01(\x0b\x32\x16.spark.connect.DoublesH\x00\x12)\n\x07strings\x18\x06 \x01(\x0b\x32\x16.spark.connect.StringsH\x00\x42\x0c\n\nvalue_type\x1a:\n\x04Time\x12\x0c\n\x04nano\x18\x01 \x01(\x03\x12\x16\n\tprecision\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\x0c\n\n_precision\x1ak\n\x11TimestampNTZNanos\x12\x14\n\x0c\x65poch_micros\x18\x01 \x01(\x03\x12\x1a\n\x12nanos_within_micro\x18\x02 \x01(\x05\x12\x16\n\tprecision\x18\x03 \x01(\x05H\x00\x88\x01\x01\x42\x0c\n\n_precision\x1ak\n\x11TimestampLTZNanos\x12\x14\n\x0c\x65poch_micros\x18\x01 \x01(\x03\x12\x1a\n\x12nanos_within_micro\x18\x02 \x01(\x05\x12\x16\n\tprecision\x18\x03 \x01(\x05H\x00\x88\x01\x01\x42\x0c\n\n_precisionB\x0e\n\x0cliteral_typeJ\x04\x08\x1b\x10\x1cJ\x04\x08\x1c\x10\x1d\x1a\x8c\x01\n\x13UnresolvedAttribute\x12\x1b\n\x13unparsed_identifier\x18\x01 \x01(\t\x12\x14\n\x07plan_id\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x1f\n\x12is_metadata_column\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_plan_idB\x15\n\x13_is_metadata_column\x1a\xba\x01\n\x12UnresolvedFunction\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12,\n\targuments\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x13\n\x0bis_distinct\x18\x03 \x01(\x08\x12 \n\x18is_user_defined_function\x18\x04 \x01(\x08\x12\x18\n\x0bis_internal\x18\x05 \x01(\x08H\x00\x88\x01\x01\x42\x0e\n\x0c_is_internal\x1a&\n\x10\x45xpressionString\x12\x12\n\nexpression\x18\x01 \x01(\t\x1a\x64\n\x0eUnresolvedStar\x12\x1c\n\x0funparsed_target\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07plan_id\x18\x02 \x01(\x03H\x01\x88\x01\x01\x42\x12\n\x10_unparsed_targetB\n\n\x08_plan_id\x1a\x45\n\x0fUnresolvedRegex\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12\x14\n\x07plan_id\x18\x02 \x01(\x03H\x00\x88\x01\x01\x42\n\n\x08_plan_id\x1aq\n\x16UnresolvedExtractValue\x12(\n\x05\x63hild\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12-\n\nextraction\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression\x1a\x8d\x01\n\x0cUpdateFields\x12\x34\n\x11struct_expression\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x12\n\nfield_name\x18\x02 \x01(\t\x12\x33\n\x10value_expression\x18\x03 \x01(\x0b\x32\x19.spark.connect.Expression\x1a\x62\n\x05\x41lias\x12\'\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x0c\n\x04name\x18\x02 \x03(\t\x12\x15\n\x08metadata\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_metadata\x1a\x89\x01\n\x0eLambdaFunction\x12+\n\x08\x66unction\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12J\n\targuments\x18\x02 \x03(\x0b\x32\x37.spark.connect.Expression.UnresolvedNamedLambdaVariable\x1a\x33\n\x1dUnresolvedNamedLambdaVariable\x12\x12\n\nname_parts\x18\x01 \x03(\tB\x0b\n\texpr_type\"9\n\x10\x45xpressionCommon\x12%\n\x06origin\x18\x01 \x01(\x0b\x32\x15.spark.connect.Origin\"\xb5\x02\n\x1f\x43ommonInlineUserDefinedFunction\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x15\n\rdeterministic\x18\x02 \x01(\x08\x12,\n\targuments\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\x12.\n\npython_udf\x18\x04 \x01(\x0b\x32\x18.spark.connect.PythonUDFH\x00\x12\x39\n\x10scalar_scala_udf\x18\x05 \x01(\x0b\x32\x1d.spark.connect.ScalarScalaUDFH\x00\x12*\n\x08java_udf\x18\x06 \x01(\x0b\x32\x16.spark.connect.JavaUDFH\x00\x12\x13\n\x0bis_distinct\x18\x07 \x01(\x08\x42\n\n\x08\x66unction\"\x8e\x01\n\tPythonUDF\x12,\n\x0boutput_type\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataType\x12\x11\n\teval_type\x18\x02 \x01(\x05\x12\x0f\n\x07\x63ommand\x18\x03 \x01(\x0c\x12\x12\n\npython_ver\x18\x04 \x01(\t\x12\x1b\n\x13\x61\x64\x64itional_includes\x18\x05 \x03(\t\"\xa0\x01\n\x0eScalarScalaUDF\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12+\n\ninputTypes\x18\x02 \x03(\x0b\x32\x17.spark.connect.DataType\x12+\n\noutputType\x18\x03 \x01(\x0b\x32\x17.spark.connect.DataType\x12\x10\n\x08nullable\x18\x04 \x01(\x08\x12\x11\n\taggregate\x18\x05 \x01(\x08\"s\n\x07JavaUDF\x12\x12\n\nclass_name\x18\x01 \x01(\t\x12\x31\n\x0boutput_type\x18\x02 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x00\x88\x01\x01\x12\x11\n\taggregate\x18\x03 \x01(\x08\x42\x0e\n\x0c_output_type\"S\n\x18TypedAggregateExpression\x12\x37\n\x10scalar_scala_udf\x18\x01 \x01(\x0b\x32\x1d.spark.connect.ScalarScalaUDF\"S\n\x0c\x43\x61llFunction\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12,\n\targuments\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\"P\n\x17NamedArgumentExpression\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression\"\xd0\x03\n\x0bMergeAction\x12:\n\x0b\x61\x63tion_type\x18\x01 \x01(\x0e\x32%.spark.connect.MergeAction.ActionType\x12\x31\n\tcondition\x18\x02 \x01(\x0b\x32\x19.spark.connect.ExpressionH\x00\x88\x01\x01\x12:\n\x0b\x61ssignments\x18\x03 \x03(\x0b\x32%.spark.connect.MergeAction.Assignment\x1a^\n\nAssignment\x12&\n\x03key\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression\"\xa7\x01\n\nActionType\x12\x17\n\x13\x41\x43TION_TYPE_INVALID\x10\x00\x12\x16\n\x12\x41\x43TION_TYPE_DELETE\x10\x01\x12\x16\n\x12\x41\x43TION_TYPE_INSERT\x10\x02\x12\x1b\n\x17\x41\x43TION_TYPE_INSERT_STAR\x10\x03\x12\x16\n\x12\x41\x43TION_TYPE_UPDATE\x10\x04\x12\x1b\n\x17\x41\x43TION_TYPE_UPDATE_STAR\x10\x05\x42\x0c\n\n_condition\"\xdd\x04\n\x12SubqueryExpression\x12\x0f\n\x07plan_id\x18\x01 \x01(\x03\x12\x45\n\rsubquery_type\x18\x02 \x01(\x0e\x32..spark.connect.SubqueryExpression.SubqueryType\x12Q\n\x11table_arg_options\x18\x03 \x01(\x0b\x32\x31.spark.connect.SubqueryExpression.TableArgOptionsH\x00\x88\x01\x01\x12\x35\n\x12in_subquery_values\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x1a\xbb\x01\n\x0fTableArgOptions\x12\x31\n\x0epartition_spec\x18\x01 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x37\n\norder_spec\x18\x02 \x03(\x0b\x32#.spark.connect.Expression.SortOrder\x12\"\n\x15with_single_partition\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x18\n\x16_with_single_partition\"\x90\x01\n\x0cSubqueryType\x12\x19\n\x15SUBQUERY_TYPE_UNKNOWN\x10\x00\x12\x18\n\x14SUBQUERY_TYPE_SCALAR\x10\x01\x12\x18\n\x14SUBQUERY_TYPE_EXISTS\x10\x02\x12\x1b\n\x17SUBQUERY_TYPE_TABLE_ARG\x10\x03\x12\x14\n\x10SUBQUERY_TYPE_IN\x10\x04\x42\x14\n\x12_table_arg_optionsB6\n\x1eorg.apache.spark.connect.protoP\x01Z\x12internal/generatedb\x06proto3"
13
13
 
14
14
  pool = ::Google::Protobuf::DescriptorPool.generated_pool
15
15
  pool.add_serialized_file(descriptor_data)
@@ -35,6 +35,8 @@ module Spark
35
35
  Expression::Literal::Struct = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Expression.Literal.Struct").msgclass
36
36
  Expression::Literal::SpecializedArray = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Expression.Literal.SpecializedArray").msgclass
37
37
  Expression::Literal::Time = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Expression.Literal.Time").msgclass
38
+ Expression::Literal::TimestampNTZNanos = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Expression.Literal.TimestampNTZNanos").msgclass
39
+ Expression::Literal::TimestampLTZNanos = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Expression.Literal.TimestampLTZNanos").msgclass
38
40
  Expression::UnresolvedAttribute = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Expression.UnresolvedAttribute").msgclass
39
41
  Expression::UnresolvedFunction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Expression.UnresolvedFunction").msgclass
40
42
  Expression::ExpressionString = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Expression.ExpressionString").msgclass
@@ -7,11 +7,12 @@ require 'google/protobuf'
7
7
  require 'google/protobuf/any_pb'
8
8
  require 'google/protobuf/timestamp_pb'
9
9
  require 'spark/connect/common_pb'
10
+ require 'spark/connect/expressions_pb'
10
11
  require 'spark/connect/relations_pb'
11
12
  require 'spark/connect/types_pb'
12
13
 
13
14
 
14
- descriptor_data = "\n\x1dspark/connect/pipelines.proto\x12\rspark.connect\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1aspark/connect/common.proto\x1a\x1dspark/connect/relations.proto\x1a\x19spark/connect/types.proto\"\xa8\x1c\n\x0fPipelineCommand\x12S\n\x15\x63reate_dataflow_graph\x18\x01 \x01(\x0b\x32\x32.spark.connect.PipelineCommand.CreateDataflowGraphH\x00\x12\x44\n\rdefine_output\x18\x02 \x01(\x0b\x32+.spark.connect.PipelineCommand.DefineOutputH\x00\x12@\n\x0b\x64\x65\x66ine_flow\x18\x03 \x01(\x0b\x32).spark.connect.PipelineCommand.DefineFlowH\x00\x12O\n\x13\x64rop_dataflow_graph\x18\x04 \x01(\x0b\x32\x30.spark.connect.PipelineCommand.DropDataflowGraphH\x00\x12<\n\tstart_run\x18\x05 \x01(\x0b\x32\'.spark.connect.PipelineCommand.StartRunH\x00\x12Z\n\x19\x64\x65\x66ine_sql_graph_elements\x18\x06 \x01(\x0b\x32\x35.spark.connect.PipelineCommand.DefineSqlGraphElementsH\x00\x12z\n*get_query_function_execution_signal_stream\x18\x07 \x01(\x0b\x32\x44.spark.connect.PipelineCommand.GetQueryFunctionExecutionSignalStreamH\x00\x12i\n!define_flow_query_function_result\x18\x08 \x01(\x0b\x32<.spark.connect.PipelineCommand.DefineFlowQueryFunctionResultH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x1a\xfe\x01\n\x13\x43reateDataflowGraph\x12\x1c\n\x0f\x64\x65\x66\x61ult_catalog\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x10\x64\x65\x66\x61ult_database\x18\x02 \x01(\tH\x01\x88\x01\x01\x12Q\n\x08sql_conf\x18\x05 \x03(\x0b\x32?.spark.connect.PipelineCommand.CreateDataflowGraph.SqlConfEntry\x1a.\n\x0cSqlConfEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x12\n\x10_default_catalogB\x13\n\x11_default_database\x1aI\n\x11\x44ropDataflowGraph\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x14\n\x12_dataflow_graph_id\x1a\xa4\x08\n\x0c\x44\x65\x66ineOutput\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boutput_name\x18\x02 \x01(\tH\x02\x88\x01\x01\x12\x33\n\x0boutput_type\x18\x03 \x01(\x0e\x32\x19.spark.connect.OutputTypeH\x03\x88\x01\x01\x12\x14\n\x07\x63omment\x18\x04 \x01(\tH\x04\x88\x01\x01\x12\x44\n\x14source_code_location\x18\x05 \x01(\x0b\x32!.spark.connect.SourceCodeLocationH\x05\x88\x01\x01\x12Q\n\rtable_details\x18\x06 \x01(\x0b\x32\x38.spark.connect.PipelineCommand.DefineOutput.TableDetailsH\x00\x12O\n\x0csink_details\x18\x07 \x01(\x0b\x32\x37.spark.connect.PipelineCommand.DefineOutput.SinkDetailsH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x1a\xdb\x02\n\x0cTableDetails\x12g\n\x10table_properties\x18\x01 \x03(\x0b\x32M.spark.connect.PipelineCommand.DefineOutput.TableDetails.TablePropertiesEntry\x12\x16\n\x0epartition_cols\x18\x02 \x03(\t\x12\x13\n\x06\x66ormat\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x33\n\x10schema_data_type\x18\x04 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x00\x12\x17\n\rschema_string\x18\x05 \x01(\tH\x00\x12\x1a\n\x12\x63lustering_columns\x18\x06 \x03(\t\x1a\x36\n\x14TablePropertiesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06schemaB\t\n\x07_format\x1a\xb4\x01\n\x0bSinkDetails\x12U\n\x07options\x18\x01 \x03(\x0b\x32\x44.spark.connect.PipelineCommand.DefineOutput.SinkDetails.OptionsEntry\x12\x13\n\x06\x66ormat\x18\x02 \x01(\tH\x00\x88\x01\x01\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_formatB\t\n\x07\x64\x65tailsB\x14\n\x12_dataflow_graph_idB\x0e\n\x0c_output_nameB\x0e\n\x0c_output_typeB\n\n\x08_commentB\x17\n\x15_source_code_location\x1a\xe4\x05\n\nDefineFlow\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tflow_name\x18\x02 \x01(\tH\x02\x88\x01\x01\x12 \n\x13target_dataset_name\x18\x03 \x01(\tH\x03\x88\x01\x01\x12H\n\x08sql_conf\x18\x04 \x03(\x0b\x32\x36.spark.connect.PipelineCommand.DefineFlow.SqlConfEntry\x12\x16\n\tclient_id\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x44\n\x14source_code_location\x18\x06 \x01(\x0b\x32!.spark.connect.SourceCodeLocationH\x05\x88\x01\x01\x12\x63\n\x15relation_flow_details\x18\x07 \x01(\x0b\x32\x42.spark.connect.PipelineCommand.DefineFlow.WriteRelationFlowDetailsH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x12\x11\n\x04once\x18\x08 \x01(\x08H\x06\x88\x01\x01\x1a.\n\x0cSqlConfEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aW\n\x18WriteRelationFlowDetails\x12.\n\x08relation\x18\x01 \x01(\x0b\x32\x17.spark.connect.RelationH\x00\x88\x01\x01\x42\x0b\n\t_relation\x1a\x30\n\x08Response\x12\x16\n\tflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_flow_nameB\t\n\x07\x64\x65tailsB\x14\n\x12_dataflow_graph_idB\x0c\n\n_flow_nameB\x16\n\x14_target_dataset_nameB\x0c\n\n_client_idB\x17\n\x15_source_code_locationB\x07\n\x05_once\x1a\xeb\x01\n\x08StartRun\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16\x66ull_refresh_selection\x18\x02 \x03(\t\x12\x1d\n\x10\x66ull_refresh_all\x18\x03 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x11refresh_selection\x18\x04 \x03(\t\x12\x10\n\x03\x64ry\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\x14\n\x07storage\x18\x06 \x01(\tH\x03\x88\x01\x01\x42\x14\n\x12_dataflow_graph_idB\x13\n\x11_full_refresh_allB\x06\n\x04_dryB\n\n\x08_storage\x1a\xa0\x01\n\x16\x44\x65\x66ineSqlGraphElements\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rsql_file_path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08sql_text\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x14\n\x12_dataflow_graph_idB\x10\n\x0e_sql_file_pathB\x0b\n\t_sql_text\x1a\x83\x01\n%GetQueryFunctionExecutionSignalStream\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tclient_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x14\n\x12_dataflow_graph_idB\x0c\n\n_client_id\x1a\xb8\x01\n\x1d\x44\x65\x66ineFlowQueryFunctionResult\x12\x16\n\tflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12.\n\x08relation\x18\x03 \x01(\x0b\x32\x17.spark.connect.RelationH\x02\x88\x01\x01\x42\x0c\n\n_flow_nameB\x14\n\x12_dataflow_graph_idB\x0b\n\t_relationB\x0e\n\x0c\x63ommand_type\"\xf3\x04\n\x15PipelineCommandResult\x12\x66\n\x1c\x63reate_dataflow_graph_result\x18\x01 \x01(\x0b\x32>.spark.connect.PipelineCommandResult.CreateDataflowGraphResultH\x00\x12W\n\x14\x64\x65\x66ine_output_result\x18\x02 \x01(\x0b\x32\x37.spark.connect.PipelineCommandResult.DefineOutputResultH\x00\x12S\n\x12\x64\x65\x66ine_flow_result\x18\x03 \x01(\x0b\x32\x35.spark.connect.PipelineCommandResult.DefineFlowResultH\x00\x1aQ\n\x19\x43reateDataflowGraphResult\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x14\n\x12_dataflow_graph_id\x1aq\n\x12\x44\x65\x66ineOutputResult\x12\x43\n\x13resolved_identifier\x18\x01 \x01(\x0b\x32!.spark.connect.ResolvedIdentifierH\x00\x88\x01\x01\x42\x16\n\x14_resolved_identifier\x1ao\n\x10\x44\x65\x66ineFlowResult\x12\x43\n\x13resolved_identifier\x18\x01 \x01(\x0b\x32!.spark.connect.ResolvedIdentifierH\x00\x88\x01\x01\x42\x16\n\x14_resolved_identifierB\r\n\x0bresult_type\"B\n\x13PipelineEventResult\x12+\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x1c.spark.connect.PipelineEvent\"`\n\rPipelineEvent\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x07message\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_message\"\xc0\x01\n\x12SourceCodeLocation\x12\x16\n\tfile_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bline_number\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1c\n\x0f\x64\x65\x66inition_path\x18\x03 \x01(\tH\x02\x88\x01\x01\x12(\n\textension\x18\xe7\x07 \x03(\x0b\x32\x14.google.protobuf.AnyB\x0c\n\n_file_nameB\x0e\n\x0c_line_numberB\x12\n\x10_definition_path\":\n$PipelineQueryFunctionExecutionSignal\x12\x12\n\nflow_names\x18\x01 \x03(\t\"\xd1\x01\n\x17PipelineAnalysisContext\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0f\x64\x65\x66inition_path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tflow_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12(\n\textension\x18\xe7\x07 \x03(\x0b\x32\x14.google.protobuf.AnyB\x14\n\x12_dataflow_graph_idB\x12\n\x10_definition_pathB\x0c\n\n_flow_name*i\n\nOutputType\x12\x1b\n\x17OUTPUT_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11MATERIALIZED_VIEW\x10\x01\x12\t\n\x05TABLE\x10\x02\x12\x12\n\x0eTEMPORARY_VIEW\x10\x03\x12\x08\n\x04SINK\x10\x04\x42\x36\n\x1eorg.apache.spark.connect.protoP\x01Z\x12internal/generatedb\x06proto3"
15
+ descriptor_data = "\n\x1dspark/connect/pipelines.proto\x12\rspark.connect\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1aspark/connect/common.proto\x1a\x1fspark/connect/expressions.proto\x1a\x1dspark/connect/relations.proto\x1a\x19spark/connect/types.proto\"\xb2\'\n\x0fPipelineCommand\x12S\n\x15\x63reate_dataflow_graph\x18\x01 \x01(\x0b\x32\x32.spark.connect.PipelineCommand.CreateDataflowGraphH\x00\x12\x44\n\rdefine_output\x18\x02 \x01(\x0b\x32+.spark.connect.PipelineCommand.DefineOutputH\x00\x12@\n\x0b\x64\x65\x66ine_flow\x18\x03 \x01(\x0b\x32).spark.connect.PipelineCommand.DefineFlowH\x00\x12O\n\x13\x64rop_dataflow_graph\x18\x04 \x01(\x0b\x32\x30.spark.connect.PipelineCommand.DropDataflowGraphH\x00\x12<\n\tstart_run\x18\x05 \x01(\x0b\x32\'.spark.connect.PipelineCommand.StartRunH\x00\x12Z\n\x19\x64\x65\x66ine_sql_graph_elements\x18\x06 \x01(\x0b\x32\x35.spark.connect.PipelineCommand.DefineSqlGraphElementsH\x00\x12z\n*get_query_function_execution_signal_stream\x18\x07 \x01(\x0b\x32\x44.spark.connect.PipelineCommand.GetQueryFunctionExecutionSignalStreamH\x00\x12i\n!define_flow_query_function_result\x18\x08 \x01(\x0b\x32<.spark.connect.PipelineCommand.DefineFlowQueryFunctionResultH\x00\x12Q\n\x14\x65xecute_output_flows\x18\t \x01(\x0b\x32\x31.spark.connect.PipelineCommand.ExecuteOutputFlowsH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x1a\xfe\x01\n\x13\x43reateDataflowGraph\x12\x1c\n\x0f\x64\x65\x66\x61ult_catalog\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x10\x64\x65\x66\x61ult_database\x18\x02 \x01(\tH\x01\x88\x01\x01\x12Q\n\x08sql_conf\x18\x05 \x03(\x0b\x32?.spark.connect.PipelineCommand.CreateDataflowGraph.SqlConfEntry\x1a.\n\x0cSqlConfEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x12\n\x10_default_catalogB\x13\n\x11_default_database\x1aI\n\x11\x44ropDataflowGraph\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x14\n\x12_dataflow_graph_id\x1a\xa4\x08\n\x0c\x44\x65\x66ineOutput\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boutput_name\x18\x02 \x01(\tH\x02\x88\x01\x01\x12\x33\n\x0boutput_type\x18\x03 \x01(\x0e\x32\x19.spark.connect.OutputTypeH\x03\x88\x01\x01\x12\x14\n\x07\x63omment\x18\x04 \x01(\tH\x04\x88\x01\x01\x12\x44\n\x14source_code_location\x18\x05 \x01(\x0b\x32!.spark.connect.SourceCodeLocationH\x05\x88\x01\x01\x12Q\n\rtable_details\x18\x06 \x01(\x0b\x32\x38.spark.connect.PipelineCommand.DefineOutput.TableDetailsH\x00\x12O\n\x0csink_details\x18\x07 \x01(\x0b\x32\x37.spark.connect.PipelineCommand.DefineOutput.SinkDetailsH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x1a\xdb\x02\n\x0cTableDetails\x12g\n\x10table_properties\x18\x01 \x03(\x0b\x32M.spark.connect.PipelineCommand.DefineOutput.TableDetails.TablePropertiesEntry\x12\x16\n\x0epartition_cols\x18\x02 \x03(\t\x12\x13\n\x06\x66ormat\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x33\n\x10schema_data_type\x18\x04 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x00\x12\x17\n\rschema_string\x18\x05 \x01(\tH\x00\x12\x1a\n\x12\x63lustering_columns\x18\x06 \x03(\t\x1a\x36\n\x14TablePropertiesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06schemaB\t\n\x07_format\x1a\xb4\x01\n\x0bSinkDetails\x12U\n\x07options\x18\x01 \x03(\x0b\x32\x44.spark.connect.PipelineCommand.DefineOutput.SinkDetails.OptionsEntry\x12\x13\n\x06\x66ormat\x18\x02 \x01(\tH\x00\x88\x01\x01\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_formatB\t\n\x07\x64\x65tailsB\x14\n\x12_dataflow_graph_idB\x0e\n\x0c_output_nameB\x0e\n\x0c_output_typeB\n\n\x08_commentB\x17\n\x15_source_code_location\x1a\x97\r\n\nDefineFlow\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tflow_name\x18\x02 \x01(\tH\x02\x88\x01\x01\x12 \n\x13target_dataset_name\x18\x03 \x01(\tH\x03\x88\x01\x01\x12H\n\x08sql_conf\x18\x04 \x03(\x0b\x32\x36.spark.connect.PipelineCommand.DefineFlow.SqlConfEntry\x12\x16\n\tclient_id\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x44\n\x14source_code_location\x18\x06 \x01(\x0b\x32!.spark.connect.SourceCodeLocationH\x05\x88\x01\x01\x12\x63\n\x15relation_flow_details\x18\x07 \x01(\x0b\x32\x42.spark.connect.PipelineCommand.DefineFlow.WriteRelationFlowDetailsH\x00\x12]\n\x15\x61uto_cdc_flow_details\x18\n \x01(\x0b\x32<.spark.connect.PipelineCommand.DefineFlow.AutoCdcFlowDetailsH\x00\x12*\n\textension\x18\xe7\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x12\x11\n\x04once\x18\x08 \x01(\x08H\x06\x88\x01\x01\x1a.\n\x0cSqlConfEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aW\n\x18WriteRelationFlowDetails\x12.\n\x08relation\x18\x01 \x01(\x0b\x32\x17.spark.connect.RelationH\x00\x88\x01\x01\x42\x0b\n\t_relation\x1a\x8c\x06\n\x12\x41utoCdcFlowDetails\x12\x13\n\x06source\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\'\n\x04keys\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x33\n\x0bsequence_by\x18\x03 \x01(\x0b\x32\x19.spark.connect.ExpressionH\x01\x88\x01\x01\x12\x38\n\x10\x61pply_as_deletes\x18\x06 \x01(\x0b\x32\x19.spark.connect.ExpressionH\x02\x88\x01\x01\x12:\n\x12\x61pply_as_truncates\x18\x07 \x01(\x0b\x32\x19.spark.connect.ExpressionH\x03\x88\x01\x01\x12.\n\x0b\x63olumn_list\x18\x08 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x35\n\x12\x65xcept_column_list\x18\t \x03(\x0b\x32\x19.spark.connect.Expression\x12M\n\x12stored_as_scd_type\x18\n \x01(\x0e\x32\x31.spark.connect.PipelineCommand.DefineFlow.SCDType\x12<\n\x19track_history_column_list\x18\x0b \x03(\x0b\x32\x19.spark.connect.Expression\x12\x43\n track_history_except_column_list\x18\x0c \x03(\x0b\x32\x19.spark.connect.Expression\x12\x42\n\x1fignore_null_updates_column_list\x18\x0e \x03(\x0b\x32\x19.spark.connect.Expression\x12I\n&ignore_null_updates_except_column_list\x18\x0f \x03(\x0b\x32\x19.spark.connect.ExpressionB\t\n\x07_sourceB\x0e\n\x0c_sequence_byB\x13\n\x11_apply_as_deletesB\x15\n\x13_apply_as_truncates\x1a\x30\n\x08Response\x12\x16\n\tflow_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_flow_name\"C\n\x07SCDType\x12\x18\n\x14SCD_TYPE_UNSPECIFIED\x10\x00\x12\x0e\n\nSCD_TYPE_1\x10\x01\x12\x0e\n\nSCD_TYPE_2\x10\x02\x42\t\n\x07\x64\x65tailsB\x14\n\x12_dataflow_graph_idB\x0c\n\n_flow_nameB\x16\n\x14_target_dataset_nameB\x0c\n\n_client_idB\x17\n\x15_source_code_locationB\x07\n\x05_once\x1a\xa8\x02\n\x12\x45xecuteOutputFlows\x12G\n\rdefine_output\x18\x01 \x01(\x0b\x32+.spark.connect.PipelineCommand.DefineOutputH\x00\x88\x01\x01\x12?\n\x0c\x64\x65\x66ine_flows\x18\x02 \x03(\x0b\x32).spark.connect.PipelineCommand.DefineFlow\x12\x19\n\x0c\x66ull_refresh\x18\x03 \x01(\x08H\x01\x88\x01\x01\x12\x14\n\x07storage\x18\x04 \x01(\tH\x02\x88\x01\x01\x12(\n\textension\x18\xe7\x07 \x03(\x0b\x32\x14.google.protobuf.AnyB\x10\n\x0e_define_outputB\x0f\n\r_full_refreshB\n\n\x08_storage\x1a\xeb\x01\n\x08StartRun\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16\x66ull_refresh_selection\x18\x02 \x03(\t\x12\x1d\n\x10\x66ull_refresh_all\x18\x03 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x11refresh_selection\x18\x04 \x03(\t\x12\x10\n\x03\x64ry\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\x14\n\x07storage\x18\x06 \x01(\tH\x03\x88\x01\x01\x42\x14\n\x12_dataflow_graph_idB\x13\n\x11_full_refresh_allB\x06\n\x04_dryB\n\n\x08_storage\x1a\xa0\x01\n\x16\x44\x65\x66ineSqlGraphElements\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rsql_file_path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08sql_text\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x14\n\x12_dataflow_graph_idB\x10\n\x0e_sql_file_pathB\x0b\n\t_sql_text\x1a\x83\x01\n%GetQueryFunctionExecutionSignalStream\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tclient_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x14\n\x12_dataflow_graph_idB\x0c\n\n_client_id\x1a\x91\x02\n\x1d\x44\x65\x66ineFlowQueryFunctionResult\x12\x1a\n\tflow_name\x18\x01 \x01(\tB\x02\x18\x01H\x00\x88\x01\x01\x12?\n\x0f\x66low_identifier\x18\x04 \x01(\x0b\x32!.spark.connect.ResolvedIdentifierH\x01\x88\x01\x01\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x02 \x01(\tH\x02\x88\x01\x01\x12.\n\x08relation\x18\x03 \x01(\x0b\x32\x17.spark.connect.RelationH\x03\x88\x01\x01\x42\x0c\n\n_flow_nameB\x12\n\x10_flow_identifierB\x14\n\x12_dataflow_graph_idB\x0b\n\t_relationB\x0e\n\x0c\x63ommand_type\"\xf3\x04\n\x15PipelineCommandResult\x12\x66\n\x1c\x63reate_dataflow_graph_result\x18\x01 \x01(\x0b\x32>.spark.connect.PipelineCommandResult.CreateDataflowGraphResultH\x00\x12W\n\x14\x64\x65\x66ine_output_result\x18\x02 \x01(\x0b\x32\x37.spark.connect.PipelineCommandResult.DefineOutputResultH\x00\x12S\n\x12\x64\x65\x66ine_flow_result\x18\x03 \x01(\x0b\x32\x35.spark.connect.PipelineCommandResult.DefineFlowResultH\x00\x1aQ\n\x19\x43reateDataflowGraphResult\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x14\n\x12_dataflow_graph_id\x1aq\n\x12\x44\x65\x66ineOutputResult\x12\x43\n\x13resolved_identifier\x18\x01 \x01(\x0b\x32!.spark.connect.ResolvedIdentifierH\x00\x88\x01\x01\x42\x16\n\x14_resolved_identifier\x1ao\n\x10\x44\x65\x66ineFlowResult\x12\x43\n\x13resolved_identifier\x18\x01 \x01(\x0b\x32!.spark.connect.ResolvedIdentifierH\x00\x88\x01\x01\x42\x16\n\x14_resolved_identifierB\r\n\x0bresult_type\"B\n\x13PipelineEventResult\x12+\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x1c.spark.connect.PipelineEvent\"`\n\rPipelineEvent\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x07message\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_message\"\xc0\x01\n\x12SourceCodeLocation\x12\x16\n\tfile_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bline_number\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1c\n\x0f\x64\x65\x66inition_path\x18\x03 \x01(\tH\x02\x88\x01\x01\x12(\n\textension\x18\xe7\x07 \x03(\x0b\x32\x14.google.protobuf.AnyB\x0c\n\n_file_nameB\x0e\n\x0c_line_numberB\x12\n\x10_definition_path\"{\n$PipelineQueryFunctionExecutionSignal\x12\x16\n\nflow_names\x18\x01 \x03(\tB\x02\x18\x01\x12;\n\x10\x66low_identifiers\x18\x02 \x03(\x0b\x32!.spark.connect.ResolvedIdentifier\"\xaa\x02\n\x17PipelineAnalysisContext\x12\x1e\n\x11\x64\x61taflow_graph_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0f\x64\x65\x66inition_path\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\tflow_name\x18\x03 \x01(\tB\x02\x18\x01H\x02\x88\x01\x01\x12?\n\x0f\x66low_identifier\x18\x04 \x01(\x0b\x32!.spark.connect.ResolvedIdentifierH\x03\x88\x01\x01\x12(\n\textension\x18\xe7\x07 \x03(\x0b\x32\x14.google.protobuf.AnyB\x14\n\x12_dataflow_graph_idB\x12\n\x10_definition_pathB\x0c\n\n_flow_nameB\x12\n\x10_flow_identifier*i\n\nOutputType\x12\x1b\n\x17OUTPUT_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11MATERIALIZED_VIEW\x10\x01\x12\t\n\x05TABLE\x10\x02\x12\x12\n\x0eTEMPORARY_VIEW\x10\x03\x12\x08\n\x04SINK\x10\x04\x42\x36\n\x1eorg.apache.spark.connect.protoP\x01Z\x12internal/generatedb\x06proto3"
15
16
 
16
17
  pool = ::Google::Protobuf::DescriptorPool.generated_pool
17
18
  pool.add_serialized_file(descriptor_data)
@@ -26,7 +27,10 @@ module Spark
26
27
  PipelineCommand::DefineOutput::SinkDetails = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.PipelineCommand.DefineOutput.SinkDetails").msgclass
27
28
  PipelineCommand::DefineFlow = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.PipelineCommand.DefineFlow").msgclass
28
29
  PipelineCommand::DefineFlow::WriteRelationFlowDetails = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.PipelineCommand.DefineFlow.WriteRelationFlowDetails").msgclass
30
+ PipelineCommand::DefineFlow::AutoCdcFlowDetails = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.PipelineCommand.DefineFlow.AutoCdcFlowDetails").msgclass
29
31
  PipelineCommand::DefineFlow::Response = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.PipelineCommand.DefineFlow.Response").msgclass
32
+ PipelineCommand::DefineFlow::SCDType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.PipelineCommand.DefineFlow.SCDType").enummodule
33
+ PipelineCommand::ExecuteOutputFlows = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.PipelineCommand.ExecuteOutputFlows").msgclass
30
34
  PipelineCommand::StartRun = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.PipelineCommand.StartRun").msgclass
31
35
  PipelineCommand::DefineSqlGraphElements = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.PipelineCommand.DefineSqlGraphElements").msgclass
32
36
  PipelineCommand::GetQueryFunctionExecutionSignalStream = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.PipelineCommand.GetQueryFunctionExecutionSignalStream").msgclass
@@ -12,7 +12,7 @@ require 'spark/connect/common_pb'
12
12
  require 'spark/connect/ml_common_pb'
13
13
 
14
14
 
15
- descriptor_data = "\n\x1dspark/connect/relations.proto\x12\rspark.connect\x1a\x19google/protobuf/any.proto\x1a\x1fspark/connect/expressions.proto\x1a\x19spark/connect/types.proto\x1a\x1bspark/connect/catalog.proto\x1a\x1aspark/connect/common.proto\x1a\x1dspark/connect/ml_common.proto\"\xa3\x18\n\x08Relation\x12-\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x1d.spark.connect.RelationCommon\x12#\n\x04read\x18\x02 \x01(\x0b\x32\x13.spark.connect.ReadH\x00\x12)\n\x07project\x18\x03 \x01(\x0b\x32\x16.spark.connect.ProjectH\x00\x12\'\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x15.spark.connect.FilterH\x00\x12#\n\x04join\x18\x05 \x01(\x0b\x32\x13.spark.connect.JoinH\x00\x12-\n\x06set_op\x18\x06 \x01(\x0b\x32\x1b.spark.connect.SetOperationH\x00\x12#\n\x04sort\x18\x07 \x01(\x0b\x32\x13.spark.connect.SortH\x00\x12%\n\x05limit\x18\x08 \x01(\x0b\x32\x14.spark.connect.LimitH\x00\x12-\n\taggregate\x18\t \x01(\x0b\x32\x18.spark.connect.AggregateH\x00\x12!\n\x03sql\x18\n \x01(\x0b\x32\x12.spark.connect.SQLH\x00\x12\x36\n\x0elocal_relation\x18\x0b \x01(\x0b\x32\x1c.spark.connect.LocalRelationH\x00\x12\'\n\x06sample\x18\x0c \x01(\x0b\x32\x15.spark.connect.SampleH\x00\x12\'\n\x06offset\x18\r \x01(\x0b\x32\x15.spark.connect.OffsetH\x00\x12\x31\n\x0b\x64\x65\x64uplicate\x18\x0e \x01(\x0b\x32\x1a.spark.connect.DeduplicateH\x00\x12%\n\x05range\x18\x0f \x01(\x0b\x32\x14.spark.connect.RangeH\x00\x12\x36\n\x0esubquery_alias\x18\x10 \x01(\x0b\x32\x1c.spark.connect.SubqueryAliasH\x00\x12\x31\n\x0brepartition\x18\x11 \x01(\x0b\x32\x1a.spark.connect.RepartitionH\x00\x12$\n\x05to_df\x18\x12 \x01(\x0b\x32\x13.spark.connect.ToDFH\x00\x12\x41\n\x14with_columns_renamed\x18\x13 \x01(\x0b\x32!.spark.connect.WithColumnsRenamedH\x00\x12\x30\n\x0bshow_string\x18\x14 \x01(\x0b\x32\x19.spark.connect.ShowStringH\x00\x12#\n\x04\x64rop\x18\x15 \x01(\x0b\x32\x13.spark.connect.DropH\x00\x12#\n\x04tail\x18\x16 \x01(\x0b\x32\x13.spark.connect.TailH\x00\x12\x32\n\x0cwith_columns\x18\x17 \x01(\x0b\x32\x1a.spark.connect.WithColumnsH\x00\x12#\n\x04hint\x18\x18 \x01(\x0b\x32\x13.spark.connect.HintH\x00\x12)\n\x07unpivot\x18\x19 \x01(\x0b\x32\x16.spark.connect.UnpivotH\x00\x12,\n\tto_schema\x18\x1a \x01(\x0b\x32\x17.spark.connect.ToSchemaH\x00\x12K\n\x19repartition_by_expression\x18\x1b \x01(\x0b\x32&.spark.connect.RepartitionByExpressionH\x00\x12\x36\n\x0emap_partitions\x18\x1c \x01(\x0b\x32\x1c.spark.connect.MapPartitionsH\x00\x12\x38\n\x0f\x63ollect_metrics\x18\x1d \x01(\x0b\x32\x1d.spark.connect.CollectMetricsH\x00\x12%\n\x05parse\x18\x1e \x01(\x0b\x32\x14.spark.connect.ParseH\x00\x12,\n\tgroup_map\x18\x1f \x01(\x0b\x32\x17.spark.connect.GroupMapH\x00\x12\x31\n\x0c\x63o_group_map\x18 \x01(\x0b\x32\x19.spark.connect.CoGroupMapH\x00\x12\x36\n\x0ewith_watermark\x18! \x01(\x0b\x32\x1c.spark.connect.WithWatermarkH\x00\x12K\n\x1a\x61pply_in_pandas_with_state\x18\" \x01(\x0b\x32%.spark.connect.ApplyInPandasWithStateH\x00\x12\x30\n\x0bhtml_string\x18# \x01(\x0b\x32\x19.spark.connect.HtmlStringH\x00\x12\x43\n\x15\x63\x61\x63hed_local_relation\x18$ \x01(\x0b\x32\".spark.connect.CachedLocalRelationH\x00\x12\x45\n\x16\x63\x61\x63hed_remote_relation\x18% \x01(\x0b\x32#.spark.connect.CachedRemoteRelationH\x00\x12h\n)common_inline_user_defined_table_function\x18& \x01(\x0b\x32\x33.spark.connect.CommonInlineUserDefinedTableFunctionH\x00\x12-\n\nas_of_join\x18\' \x01(\x0b\x32\x17.spark.connect.AsOfJoinH\x00\x12\x62\n&common_inline_user_defined_data_source\x18( \x01(\x0b\x32\x30.spark.connect.CommonInlineUserDefinedDataSourceH\x00\x12\x36\n\x0ewith_relations\x18) \x01(\x0b\x32\x1c.spark.connect.WithRelationsH\x00\x12-\n\ttranspose\x18* \x01(\x0b\x32\x18.spark.connect.TransposeH\x00\x12X\n unresolved_table_valued_function\x18+ \x01(\x0b\x32,.spark.connect.UnresolvedTableValuedFunctionH\x00\x12\x32\n\x0clateral_join\x18, \x01(\x0b\x32\x1a.spark.connect.LateralJoinH\x00\x12R\n\x1d\x63hunked_cached_local_relation\x18- \x01(\x0b\x32).spark.connect.ChunkedCachedLocalRelationH\x00\x12(\n\x07\x66ill_na\x18Z \x01(\x0b\x32\x15.spark.connect.NAFillH\x00\x12(\n\x07\x64rop_na\x18[ \x01(\x0b\x32\x15.spark.connect.NADropH\x00\x12+\n\x07replace\x18\\ \x01(\x0b\x32\x18.spark.connect.NAReplaceH\x00\x12-\n\x07summary\x18\x64 \x01(\x0b\x32\x1a.spark.connect.StatSummaryH\x00\x12/\n\x08\x63rosstab\x18\x65 \x01(\x0b\x32\x1b.spark.connect.StatCrosstabH\x00\x12/\n\x08\x64\x65scribe\x18\x66 \x01(\x0b\x32\x1b.spark.connect.StatDescribeH\x00\x12%\n\x03\x63ov\x18g \x01(\x0b\x32\x16.spark.connect.StatCovH\x00\x12\'\n\x04\x63orr\x18h \x01(\x0b\x32\x17.spark.connect.StatCorrH\x00\x12<\n\x0f\x61pprox_quantile\x18i \x01(\x0b\x32!.spark.connect.StatApproxQuantileH\x00\x12\x32\n\nfreq_items\x18j \x01(\x0b\x32\x1c.spark.connect.StatFreqItemsH\x00\x12\x30\n\tsample_by\x18k \x01(\x0b\x32\x1b.spark.connect.StatSampleByH\x00\x12*\n\x07\x63\x61talog\x18\xc8\x01 \x01(\x0b\x32\x16.spark.connect.CatalogH\x00\x12\x31\n\x0bml_relation\x18\xac\x02 \x01(\x0b\x32\x19.spark.connect.MlRelationH\x00\x12*\n\textension\x18\xe6\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x12*\n\x07unknown\x18\xe7\x07 \x01(\x0b\x32\x16.spark.connect.UnknownH\x00\x42\n\n\x08rel_type\"\x99\x03\n\nMlRelation\x12\x38\n\ttransform\x18\x01 \x01(\x0b\x32#.spark.connect.MlRelation.TransformH\x00\x12%\n\x05\x66\x65tch\x18\x02 \x01(\x0b\x32\x14.spark.connect.FetchH\x00\x12;\n\x15model_summary_dataset\x18\x03 \x01(\x0b\x32\x17.spark.connect.RelationH\x01\x88\x01\x01\x1a\xc7\x01\n\tTransform\x12+\n\x07obj_ref\x18\x01 \x01(\x0b\x32\x18.spark.connect.ObjectRefH\x00\x12\x30\n\x0btransformer\x18\x02 \x01(\x0b\x32\x19.spark.connect.MlOperatorH\x00\x12&\n\x05input\x18\x03 \x01(\x0b\x32\x17.spark.connect.Relation\x12\'\n\x06params\x18\x04 \x01(\x0b\x32\x17.spark.connect.MlParamsB\n\n\x08operatorB\t\n\x07ml_typeB\x18\n\x16_model_summary_dataset\"\x9e\x02\n\x05\x46\x65tch\x12)\n\x07obj_ref\x18\x01 \x01(\x0b\x32\x18.spark.connect.ObjectRef\x12,\n\x07methods\x18\x02 \x03(\x0b\x32\x1b.spark.connect.Fetch.Method\x1a\xbb\x01\n\x06Method\x12\x0e\n\x06method\x18\x01 \x01(\t\x12.\n\x04\x61rgs\x18\x02 \x03(\x0b\x32 .spark.connect.Fetch.Method.Args\x1aq\n\x04\x41rgs\x12\x32\n\x05param\x18\x01 \x01(\x0b\x32!.spark.connect.Expression.LiteralH\x00\x12(\n\x05input\x18\x02 \x01(\x0b\x32\x17.spark.connect.RelationH\x00\x42\x0b\n\targs_type\"\t\n\x07Unknown\"r\n\x0eRelationCommon\x12\x17\n\x0bsource_info\x18\x01 \x01(\tB\x02\x18\x01\x12\x14\n\x07plan_id\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12%\n\x06origin\x18\x03 \x01(\x0b\x32\x15.spark.connect.OriginB\n\n\x08_plan_id\"\x92\x03\n\x03SQL\x12\r\n\x05query\x18\x01 \x01(\t\x12.\n\x04\x61rgs\x18\x02 \x03(\x0b\x32\x1c.spark.connect.SQL.ArgsEntryB\x02\x18\x01\x12\x37\n\x08pos_args\x18\x03 \x03(\x0b\x32!.spark.connect.Expression.LiteralB\x02\x18\x01\x12?\n\x0fnamed_arguments\x18\x04 \x03(\x0b\x32&.spark.connect.SQL.NamedArgumentsEntry\x12\x30\n\rpos_arguments\x18\x05 \x03(\x0b\x32\x19.spark.connect.Expression\x1aN\n\tArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32!.spark.connect.Expression.Literal:\x02\x38\x01\x1aP\n\x13NamedArgumentsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression:\x02\x38\x01\"c\n\rWithRelations\x12%\n\x04root\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12+\n\nreferences\x18\x02 \x03(\x0b\x32\x17.spark.connect.Relation\"\x91\x04\n\x04Read\x12\x35\n\x0bnamed_table\x18\x01 \x01(\x0b\x32\x1e.spark.connect.Read.NamedTableH\x00\x12\x35\n\x0b\x64\x61ta_source\x18\x02 \x01(\x0b\x32\x1e.spark.connect.Read.DataSourceH\x00\x12\x14\n\x0cis_streaming\x18\x03 \x01(\x08\x1a\x97\x01\n\nNamedTable\x12\x1b\n\x13unparsed_identifier\x18\x01 \x01(\t\x12<\n\x07options\x18\x02 \x03(\x0b\x32+.spark.connect.Read.NamedTable.OptionsEntry\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\xdd\x01\n\nDataSource\x12\x13\n\x06\x66ormat\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06schema\x18\x02 \x01(\tH\x01\x88\x01\x01\x12<\n\x07options\x18\x03 \x03(\x0b\x32+.spark.connect.Read.DataSource.OptionsEntry\x12\r\n\x05paths\x18\x04 \x03(\t\x12\x12\n\npredicates\x18\x05 \x03(\t\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_formatB\t\n\x07_schemaB\x0b\n\tread_type\"a\n\x07Project\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12.\n\x0b\x65xpressions\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\"^\n\x06\x46ilter\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12,\n\tcondition\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression\"\xb6\x04\n\x04Join\x12%\n\x04left\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x05right\x18\x02 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x31\n\x0ejoin_condition\x18\x03 \x01(\x0b\x32\x19.spark.connect.Expression\x12/\n\tjoin_type\x18\x04 \x01(\x0e\x32\x1c.spark.connect.Join.JoinType\x12\x15\n\rusing_columns\x18\x05 \x03(\t\x12=\n\x0ejoin_data_type\x18\x06 \x01(\x0b\x32 .spark.connect.Join.JoinDataTypeH\x00\x88\x01\x01\x1a?\n\x0cJoinDataType\x12\x16\n\x0eis_left_struct\x18\x01 \x01(\x08\x12\x17\n\x0fis_right_struct\x18\x02 \x01(\x08\"\xd0\x01\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x18\n\x14JOIN_TYPE_FULL_OUTER\x10\x02\x12\x18\n\x14JOIN_TYPE_LEFT_OUTER\x10\x03\x12\x19\n\x15JOIN_TYPE_RIGHT_OUTER\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x05\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x06\x12\x13\n\x0fJOIN_TYPE_CROSS\x10\x07\x42\x11\n\x0f_join_data_type\"\x99\x03\n\x0cSetOperation\x12+\n\nleft_input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12,\n\x0bright_input\x18\x02 \x01(\x0b\x32\x17.spark.connect.Relation\x12:\n\x0bset_op_type\x18\x03 \x01(\x0e\x32%.spark.connect.SetOperation.SetOpType\x12\x13\n\x06is_all\x18\x04 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07\x62y_name\x18\x05 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61llow_missing_columns\x18\x06 \x01(\x08H\x02\x88\x01\x01\"r\n\tSetOpType\x12\x1b\n\x17SET_OP_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15SET_OP_TYPE_INTERSECT\x10\x01\x12\x15\n\x11SET_OP_TYPE_UNION\x10\x02\x12\x16\n\x12SET_OP_TYPE_EXCEPT\x10\x03\x42\t\n\x07_is_allB\n\n\x08_by_nameB\x18\n\x16_allow_missing_columns\">\n\x05Limit\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\r\n\x05limit\x18\x02 \x01(\x05\"@\n\x06Offset\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0e\n\x06offset\x18\x02 \x01(\x05\"=\n\x04Tail\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\r\n\x05limit\x18\x02 \x01(\x05\"\x92\x05\n\tAggregate\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x36\n\ngroup_type\x18\x02 \x01(\x0e\x32\".spark.connect.Aggregate.GroupType\x12\x37\n\x14grouping_expressions\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x38\n\x15\x61ggregate_expressions\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x12-\n\x05pivot\x18\x05 \x01(\x0b\x32\x1e.spark.connect.Aggregate.Pivot\x12<\n\rgrouping_sets\x18\x06 \x03(\x0b\x32%.spark.connect.Aggregate.GroupingSets\x1a\x62\n\x05Pivot\x12&\n\x03\x63ol\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x31\n\x06values\x18\x02 \x03(\x0b\x32!.spark.connect.Expression.Literal\x1a?\n\x0cGroupingSets\x12/\n\x0cgrouping_set\x18\x01 \x03(\x0b\x32\x19.spark.connect.Expression\"\x9f\x01\n\tGroupType\x12\x1a\n\x16GROUP_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12GROUP_TYPE_GROUPBY\x10\x01\x12\x15\n\x11GROUP_TYPE_ROLLUP\x10\x02\x12\x13\n\x0fGROUP_TYPE_CUBE\x10\x03\x12\x14\n\x10GROUP_TYPE_PIVOT\x10\x04\x12\x1c\n\x18GROUP_TYPE_GROUPING_SETS\x10\x05\"\x88\x01\n\x04Sort\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x32\n\x05order\x18\x02 \x03(\x0b\x32#.spark.connect.Expression.SortOrder\x12\x16\n\tis_global\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x0c\n\n_is_global\"p\n\x04\x44rop\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12*\n\x07\x63olumns\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x14\n\x0c\x63olumn_names\x18\x03 \x03(\t\"\xb9\x01\n\x0b\x44\x65\x64uplicate\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x14\n\x0c\x63olumn_names\x18\x02 \x03(\t\x12 \n\x13\x61ll_columns_as_keys\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10within_watermark\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_all_columns_as_keysB\x13\n\x11_within_watermark\"K\n\rLocalRelation\x12\x11\n\x04\x64\x61ta\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06schema\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_dataB\t\n\x07_schema\"B\n\x13\x43\x61\x63hedLocalRelation\x12\x0c\n\x04hash\x18\x03 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x06userIdR\tsessionId\"X\n\x1a\x43hunkedCachedLocalRelation\x12\x12\n\ndataHashes\x18\x01 \x03(\t\x12\x17\n\nschemaHash\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_schemaHash\"+\n\x14\x43\x61\x63hedRemoteRelation\x12\x13\n\x0brelation_id\x18\x01 \x01(\t\"\xc7\x01\n\x06Sample\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x13\n\x0blower_bound\x18\x02 \x01(\x01\x12\x13\n\x0bupper_bound\x18\x03 \x01(\x01\x12\x1d\n\x10with_replacement\x18\x04 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04seed\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12\x1b\n\x13\x64\x65terministic_order\x18\x06 \x01(\x08\x42\x13\n\x11_with_replacementB\x07\n\x05_seed\"p\n\x05Range\x12\x12\n\x05start\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x03\x12\x0c\n\x04step\x18\x03 \x01(\x03\x12\x1b\n\x0enum_partitions\x18\x04 \x01(\x05H\x01\x88\x01\x01\x42\x08\n\x06_startB\x11\n\x0f_num_partitions\"Y\n\rSubqueryAlias\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\x11\n\tqualifier\x18\x03 \x03(\t\"o\n\x0bRepartition\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x16\n\x0enum_partitions\x18\x02 \x01(\x05\x12\x14\n\x07shuffle\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_shuffle\"j\n\nShowString\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x10\n\x08num_rows\x18\x02 \x01(\x05\x12\x10\n\x08truncate\x18\x03 \x01(\x05\x12\x10\n\x08vertical\x18\x04 \x01(\x08\"X\n\nHtmlString\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x10\n\x08num_rows\x18\x02 \x01(\x05\x12\x10\n\x08truncate\x18\x03 \x01(\x05\"I\n\x0bStatSummary\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x12\n\nstatistics\x18\x02 \x03(\t\"D\n\x0cStatDescribe\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ols\x18\x02 \x03(\t\"R\n\x0cStatCrosstab\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ol1\x18\x02 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x03 \x01(\t\"M\n\x07StatCov\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ol1\x18\x02 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x03 \x01(\t\"n\n\x08StatCorr\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ol1\x18\x02 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x03 \x01(\t\x12\x13\n\x06method\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_method\"y\n\x12StatApproxQuantile\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ols\x18\x02 \x03(\t\x12\x15\n\rprobabilities\x18\x03 \x03(\x01\x12\x16\n\x0erelative_error\x18\x04 \x01(\x01\"g\n\rStatFreqItems\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ols\x18\x02 \x03(\t\x12\x14\n\x07support\x18\x03 \x01(\x01H\x00\x88\x01\x01\x42\n\n\x08_support\"\x85\x02\n\x0cStatSampleBy\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x03\x63ol\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x37\n\tfractions\x18\x03 \x03(\x0b\x32$.spark.connect.StatSampleBy.Fraction\x12\x11\n\x04seed\x18\x05 \x01(\x03H\x00\x88\x01\x01\x1aP\n\x08\x46raction\x12\x32\n\x07stratum\x18\x01 \x01(\x0b\x32!.spark.connect.Expression.Literal\x12\x10\n\x08\x66raction\x18\x02 \x01(\x01\x42\x07\n\x05_seed\"q\n\x06NAFill\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ols\x18\x02 \x03(\t\x12\x31\n\x06values\x18\x03 \x03(\x0b\x32!.spark.connect.Expression.Literal\"l\n\x06NADrop\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ols\x18\x02 \x03(\t\x12\x1a\n\rmin_non_nulls\x18\x03 \x01(\x05H\x00\x88\x01\x01\x42\x10\n\x0e_min_non_nulls\"\xf8\x01\n\tNAReplace\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ols\x18\x02 \x03(\t\x12:\n\x0creplacements\x18\x03 \x03(\x0b\x32$.spark.connect.NAReplace.Replacement\x1ay\n\x0bReplacement\x12\x34\n\told_value\x18\x01 \x01(\x0b\x32!.spark.connect.Expression.Literal\x12\x34\n\tnew_value\x18\x02 \x01(\x0b\x32!.spark.connect.Expression.Literal\"D\n\x04ToDF\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x14\n\x0c\x63olumn_names\x18\x02 \x03(\t\"\xbb\x02\n\x12WithColumnsRenamed\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12W\n\x12rename_columns_map\x18\x02 \x03(\x0b\x32\x37.spark.connect.WithColumnsRenamed.RenameColumnsMapEntryB\x02\x18\x01\x12\x39\n\x07renames\x18\x03 \x03(\x0b\x32(.spark.connect.WithColumnsRenamed.Rename\x1a\x37\n\x15RenameColumnsMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x30\n\x06Rename\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12\x14\n\x0cnew_col_name\x18\x02 \x01(\t\"g\n\x0bWithColumns\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x30\n\x07\x61liases\x18\x02 \x03(\x0b\x32\x1f.spark.connect.Expression.Alias\"d\n\rWithWatermark\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x12\n\nevent_time\x18\x02 \x01(\t\x12\x17\n\x0f\x64\x65lay_threshold\x18\x03 \x01(\t\"k\n\x04Hint\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04name\x18\x02 \x01(\t\x12-\n\nparameters\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\"\x86\x02\n\x07Unpivot\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x03ids\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x32\n\x06values\x18\x03 \x01(\x0b\x32\x1d.spark.connect.Unpivot.ValuesH\x00\x88\x01\x01\x12\x1c\n\x14variable_column_name\x18\x04 \x01(\t\x12\x19\n\x11value_column_name\x18\x05 \x01(\t\x1a\x33\n\x06Values\x12)\n\x06values\x18\x01 \x03(\x0b\x32\x19.spark.connect.ExpressionB\t\n\x07_values\"e\n\tTranspose\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x30\n\rindex_columns\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\"d\n\x1dUnresolvedTableValuedFunction\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12,\n\targuments\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\"[\n\x08ToSchema\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\'\n\x06schema\x18\x02 \x01(\x0b\x32\x17.spark.connect.DataType\"\xa5\x01\n\x17RepartitionByExpression\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x32\n\x0fpartition_exprs\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x1b\n\x0enum_partitions\x18\x03 \x01(\x05H\x00\x88\x01\x01\x42\x11\n\x0f_num_partitions\"\xc5\x01\n\rMapPartitions\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12<\n\x04\x66unc\x18\x02 \x01(\x0b\x32..spark.connect.CommonInlineUserDefinedFunction\x12\x17\n\nis_barrier\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x17\n\nprofile_id\x18\x04 \x01(\x05H\x01\x88\x01\x01\x42\r\n\x0b_is_barrierB\r\n\x0b_profile_id\"\x9e\x05\n\x08GroupMap\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x37\n\x14grouping_expressions\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12<\n\x04\x66unc\x18\x03 \x01(\x0b\x32..spark.connect.CommonInlineUserDefinedFunction\x12\x36\n\x13sorting_expressions\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x12.\n\rinitial_input\x18\x05 \x01(\x0b\x32\x17.spark.connect.Relation\x12?\n\x1cinitial_grouping_expressions\x18\x06 \x03(\x0b\x32\x19.spark.connect.Expression\x12%\n\x18is_map_groups_with_state\x18\x07 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0boutput_mode\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0ctimeout_conf\x18\t \x01(\tH\x02\x88\x01\x01\x12\x32\n\x0cstate_schema\x18\n \x01(\x0b\x32\x17.spark.connect.DataTypeH\x03\x88\x01\x01\x12M\n\x19transform_with_state_info\x18\x0b \x01(\x0b\x32%.spark.connect.TransformWithStateInfoH\x04\x88\x01\x01\x42\x1b\n\x19_is_map_groups_with_stateB\x0e\n\x0c_output_modeB\x0f\n\r_timeout_confB\x0f\n\r_state_schemaB\x1c\n\x1a_transform_with_state_info\"\xb2\x01\n\x16TransformWithStateInfo\x12\x11\n\ttime_mode\x18\x01 \x01(\t\x12#\n\x16\x65vent_time_column_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x33\n\routput_schema\x18\x03 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x01\x88\x01\x01\x42\x19\n\x17_event_time_column_nameB\x10\n\x0e_output_schema\"\x94\x03\n\nCoGroupMap\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12=\n\x1ainput_grouping_expressions\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12&\n\x05other\x18\x03 \x01(\x0b\x32\x17.spark.connect.Relation\x12=\n\x1aother_grouping_expressions\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x12<\n\x04\x66unc\x18\x05 \x01(\x0b\x32..spark.connect.CommonInlineUserDefinedFunction\x12<\n\x19input_sorting_expressions\x18\x06 \x03(\x0b\x32\x19.spark.connect.Expression\x12<\n\x19other_sorting_expressions\x18\x07 \x03(\x0b\x32\x19.spark.connect.Expression\"\x8f\x02\n\x16\x41pplyInPandasWithState\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x37\n\x14grouping_expressions\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12<\n\x04\x66unc\x18\x03 \x01(\x0b\x32..spark.connect.CommonInlineUserDefinedFunction\x12\x15\n\routput_schema\x18\x04 \x01(\t\x12\x14\n\x0cstate_schema\x18\x05 \x01(\t\x12\x13\n\x0boutput_mode\x18\x06 \x01(\t\x12\x14\n\x0ctimeout_conf\x18\x07 \x01(\t\"\xc0\x01\n$CommonInlineUserDefinedTableFunction\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x15\n\rdeterministic\x18\x02 \x01(\x08\x12,\n\targuments\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x30\n\x0bpython_udtf\x18\x04 \x01(\x0b\x32\x19.spark.connect.PythonUDTFH\x00\x42\n\n\x08\x66unction\"\x87\x01\n\nPythonUDTF\x12\x31\n\x0breturn_type\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x00\x88\x01\x01\x12\x11\n\teval_type\x18\x02 \x01(\x05\x12\x0f\n\x07\x63ommand\x18\x03 \x01(\x0c\x12\x12\n\npython_ver\x18\x04 \x01(\tB\x0e\n\x0c_return_type\"\x7f\n!CommonInlineUserDefinedDataSource\x12\x0c\n\x04name\x18\x01 \x01(\t\x12=\n\x12python_data_source\x18\x02 \x01(\x0b\x32\x1f.spark.connect.PythonDataSourceH\x00\x42\r\n\x0b\x64\x61ta_source\"7\n\x10PythonDataSource\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\x0c\x12\x12\n\npython_ver\x18\x02 \x01(\t\"r\n\x0e\x43ollectMetrics\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04name\x18\x02 \x01(\t\x12*\n\x07metrics\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\"\xd8\x02\n\x05Parse\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x30\n\x06\x66ormat\x18\x02 \x01(\x0e\x32 .spark.connect.Parse.ParseFormat\x12,\n\x06schema\x18\x03 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x00\x88\x01\x01\x12\x32\n\x07options\x18\x04 \x03(\x0b\x32!.spark.connect.Parse.OptionsEntry\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"X\n\x0bParseFormat\x12\x1c\n\x18PARSE_FORMAT_UNSPECIFIED\x10\x00\x12\x14\n\x10PARSE_FORMAT_CSV\x10\x01\x12\x15\n\x11PARSE_FORMAT_JSON\x10\x02\x42\t\n\x07_schema\"\xee\x02\n\x08\x41sOfJoin\x12%\n\x04left\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x05right\x18\x02 \x01(\x0b\x32\x17.spark.connect.Relation\x12-\n\nleft_as_of\x18\x03 \x01(\x0b\x32\x19.spark.connect.Expression\x12.\n\x0bright_as_of\x18\x04 \x01(\x0b\x32\x19.spark.connect.Expression\x12,\n\tjoin_expr\x18\x05 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x15\n\rusing_columns\x18\x06 \x03(\t\x12\x11\n\tjoin_type\x18\x07 \x01(\t\x12,\n\ttolerance\x18\x08 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x1b\n\x13\x61llow_exact_matches\x18\t \x01(\x08\x12\x11\n\tdirection\x18\n \x01(\t\"\xc0\x01\n\x0bLateralJoin\x12%\n\x04left\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x05right\x18\x02 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x31\n\x0ejoin_condition\x18\x03 \x01(\x0b\x32\x19.spark.connect.Expression\x12/\n\tjoin_type\x18\x04 \x01(\x0e\x32\x1c.spark.connect.Join.JoinTypeB6\n\x1eorg.apache.spark.connect.protoP\x01Z\x12internal/generatedb\x06proto3"
15
+ descriptor_data = "\n\x1dspark/connect/relations.proto\x12\rspark.connect\x1a\x19google/protobuf/any.proto\x1a\x1fspark/connect/expressions.proto\x1a\x19spark/connect/types.proto\x1a\x1bspark/connect/catalog.proto\x1a\x1aspark/connect/common.proto\x1a\x1dspark/connect/ml_common.proto\"\xbb\x19\n\x08Relation\x12-\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x1d.spark.connect.RelationCommon\x12#\n\x04read\x18\x02 \x01(\x0b\x32\x13.spark.connect.ReadH\x00\x12)\n\x07project\x18\x03 \x01(\x0b\x32\x16.spark.connect.ProjectH\x00\x12\'\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x15.spark.connect.FilterH\x00\x12#\n\x04join\x18\x05 \x01(\x0b\x32\x13.spark.connect.JoinH\x00\x12-\n\x06set_op\x18\x06 \x01(\x0b\x32\x1b.spark.connect.SetOperationH\x00\x12#\n\x04sort\x18\x07 \x01(\x0b\x32\x13.spark.connect.SortH\x00\x12%\n\x05limit\x18\x08 \x01(\x0b\x32\x14.spark.connect.LimitH\x00\x12-\n\taggregate\x18\t \x01(\x0b\x32\x18.spark.connect.AggregateH\x00\x12!\n\x03sql\x18\n \x01(\x0b\x32\x12.spark.connect.SQLH\x00\x12\x36\n\x0elocal_relation\x18\x0b \x01(\x0b\x32\x1c.spark.connect.LocalRelationH\x00\x12\'\n\x06sample\x18\x0c \x01(\x0b\x32\x15.spark.connect.SampleH\x00\x12\'\n\x06offset\x18\r \x01(\x0b\x32\x15.spark.connect.OffsetH\x00\x12\x31\n\x0b\x64\x65\x64uplicate\x18\x0e \x01(\x0b\x32\x1a.spark.connect.DeduplicateH\x00\x12%\n\x05range\x18\x0f \x01(\x0b\x32\x14.spark.connect.RangeH\x00\x12\x36\n\x0esubquery_alias\x18\x10 \x01(\x0b\x32\x1c.spark.connect.SubqueryAliasH\x00\x12\x31\n\x0brepartition\x18\x11 \x01(\x0b\x32\x1a.spark.connect.RepartitionH\x00\x12$\n\x05to_df\x18\x12 \x01(\x0b\x32\x13.spark.connect.ToDFH\x00\x12\x41\n\x14with_columns_renamed\x18\x13 \x01(\x0b\x32!.spark.connect.WithColumnsRenamedH\x00\x12\x30\n\x0bshow_string\x18\x14 \x01(\x0b\x32\x19.spark.connect.ShowStringH\x00\x12#\n\x04\x64rop\x18\x15 \x01(\x0b\x32\x13.spark.connect.DropH\x00\x12#\n\x04tail\x18\x16 \x01(\x0b\x32\x13.spark.connect.TailH\x00\x12\x32\n\x0cwith_columns\x18\x17 \x01(\x0b\x32\x1a.spark.connect.WithColumnsH\x00\x12#\n\x04hint\x18\x18 \x01(\x0b\x32\x13.spark.connect.HintH\x00\x12)\n\x07unpivot\x18\x19 \x01(\x0b\x32\x16.spark.connect.UnpivotH\x00\x12,\n\tto_schema\x18\x1a \x01(\x0b\x32\x17.spark.connect.ToSchemaH\x00\x12K\n\x19repartition_by_expression\x18\x1b \x01(\x0b\x32&.spark.connect.RepartitionByExpressionH\x00\x12\x36\n\x0emap_partitions\x18\x1c \x01(\x0b\x32\x1c.spark.connect.MapPartitionsH\x00\x12\x38\n\x0f\x63ollect_metrics\x18\x1d \x01(\x0b\x32\x1d.spark.connect.CollectMetricsH\x00\x12%\n\x05parse\x18\x1e \x01(\x0b\x32\x14.spark.connect.ParseH\x00\x12,\n\tgroup_map\x18\x1f \x01(\x0b\x32\x17.spark.connect.GroupMapH\x00\x12\x31\n\x0c\x63o_group_map\x18 \x01(\x0b\x32\x19.spark.connect.CoGroupMapH\x00\x12\x36\n\x0ewith_watermark\x18! \x01(\x0b\x32\x1c.spark.connect.WithWatermarkH\x00\x12K\n\x1a\x61pply_in_pandas_with_state\x18\" \x01(\x0b\x32%.spark.connect.ApplyInPandasWithStateH\x00\x12\x30\n\x0bhtml_string\x18# \x01(\x0b\x32\x19.spark.connect.HtmlStringH\x00\x12\x43\n\x15\x63\x61\x63hed_local_relation\x18$ \x01(\x0b\x32\".spark.connect.CachedLocalRelationH\x00\x12\x45\n\x16\x63\x61\x63hed_remote_relation\x18% \x01(\x0b\x32#.spark.connect.CachedRemoteRelationH\x00\x12h\n)common_inline_user_defined_table_function\x18& \x01(\x0b\x32\x33.spark.connect.CommonInlineUserDefinedTableFunctionH\x00\x12-\n\nas_of_join\x18\' \x01(\x0b\x32\x17.spark.connect.AsOfJoinH\x00\x12\x62\n&common_inline_user_defined_data_source\x18( \x01(\x0b\x32\x30.spark.connect.CommonInlineUserDefinedDataSourceH\x00\x12\x36\n\x0ewith_relations\x18) \x01(\x0b\x32\x1c.spark.connect.WithRelationsH\x00\x12-\n\ttranspose\x18* \x01(\x0b\x32\x18.spark.connect.TransposeH\x00\x12X\n unresolved_table_valued_function\x18+ \x01(\x0b\x32,.spark.connect.UnresolvedTableValuedFunctionH\x00\x12\x32\n\x0clateral_join\x18, \x01(\x0b\x32\x1a.spark.connect.LateralJoinH\x00\x12R\n\x1d\x63hunked_cached_local_relation\x18- \x01(\x0b\x32).spark.connect.ChunkedCachedLocalRelationH\x00\x12:\n\x10relation_changes\x18. \x01(\x0b\x32\x1e.spark.connect.RelationChangesH\x00\x12\x37\n\x0fnearest_by_join\x18/ \x01(\x0b\x32\x1c.spark.connect.NearestByJoinH\x00\x12!\n\x03zip\x18\x30 \x01(\x0b\x32\x12.spark.connect.ZipH\x00\x12(\n\x07\x66ill_na\x18Z \x01(\x0b\x32\x15.spark.connect.NAFillH\x00\x12(\n\x07\x64rop_na\x18[ \x01(\x0b\x32\x15.spark.connect.NADropH\x00\x12+\n\x07replace\x18\\ \x01(\x0b\x32\x18.spark.connect.NAReplaceH\x00\x12-\n\x07summary\x18\x64 \x01(\x0b\x32\x1a.spark.connect.StatSummaryH\x00\x12/\n\x08\x63rosstab\x18\x65 \x01(\x0b\x32\x1b.spark.connect.StatCrosstabH\x00\x12/\n\x08\x64\x65scribe\x18\x66 \x01(\x0b\x32\x1b.spark.connect.StatDescribeH\x00\x12%\n\x03\x63ov\x18g \x01(\x0b\x32\x16.spark.connect.StatCovH\x00\x12\'\n\x04\x63orr\x18h \x01(\x0b\x32\x17.spark.connect.StatCorrH\x00\x12<\n\x0f\x61pprox_quantile\x18i \x01(\x0b\x32!.spark.connect.StatApproxQuantileH\x00\x12\x32\n\nfreq_items\x18j \x01(\x0b\x32\x1c.spark.connect.StatFreqItemsH\x00\x12\x30\n\tsample_by\x18k \x01(\x0b\x32\x1b.spark.connect.StatSampleByH\x00\x12*\n\x07\x63\x61talog\x18\xc8\x01 \x01(\x0b\x32\x16.spark.connect.CatalogH\x00\x12\x31\n\x0bml_relation\x18\xac\x02 \x01(\x0b\x32\x19.spark.connect.MlRelationH\x00\x12*\n\textension\x18\xe6\x07 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x12*\n\x07unknown\x18\xe7\x07 \x01(\x0b\x32\x16.spark.connect.UnknownH\x00\x42\n\n\x08rel_type\"\x99\x03\n\nMlRelation\x12\x38\n\ttransform\x18\x01 \x01(\x0b\x32#.spark.connect.MlRelation.TransformH\x00\x12%\n\x05\x66\x65tch\x18\x02 \x01(\x0b\x32\x14.spark.connect.FetchH\x00\x12;\n\x15model_summary_dataset\x18\x03 \x01(\x0b\x32\x17.spark.connect.RelationH\x01\x88\x01\x01\x1a\xc7\x01\n\tTransform\x12+\n\x07obj_ref\x18\x01 \x01(\x0b\x32\x18.spark.connect.ObjectRefH\x00\x12\x30\n\x0btransformer\x18\x02 \x01(\x0b\x32\x19.spark.connect.MlOperatorH\x00\x12&\n\x05input\x18\x03 \x01(\x0b\x32\x17.spark.connect.Relation\x12\'\n\x06params\x18\x04 \x01(\x0b\x32\x17.spark.connect.MlParamsB\n\n\x08operatorB\t\n\x07ml_typeB\x18\n\x16_model_summary_dataset\"\x9e\x02\n\x05\x46\x65tch\x12)\n\x07obj_ref\x18\x01 \x01(\x0b\x32\x18.spark.connect.ObjectRef\x12,\n\x07methods\x18\x02 \x03(\x0b\x32\x1b.spark.connect.Fetch.Method\x1a\xbb\x01\n\x06Method\x12\x0e\n\x06method\x18\x01 \x01(\t\x12.\n\x04\x61rgs\x18\x02 \x03(\x0b\x32 .spark.connect.Fetch.Method.Args\x1aq\n\x04\x41rgs\x12\x32\n\x05param\x18\x01 \x01(\x0b\x32!.spark.connect.Expression.LiteralH\x00\x12(\n\x05input\x18\x02 \x01(\x0b\x32\x17.spark.connect.RelationH\x00\x42\x0b\n\targs_type\"\t\n\x07Unknown\"r\n\x0eRelationCommon\x12\x17\n\x0bsource_info\x18\x01 \x01(\tB\x02\x18\x01\x12\x14\n\x07plan_id\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12%\n\x06origin\x18\x03 \x01(\x0b\x32\x15.spark.connect.OriginB\n\n\x08_plan_id\"\x92\x03\n\x03SQL\x12\r\n\x05query\x18\x01 \x01(\t\x12.\n\x04\x61rgs\x18\x02 \x03(\x0b\x32\x1c.spark.connect.SQL.ArgsEntryB\x02\x18\x01\x12\x37\n\x08pos_args\x18\x03 \x03(\x0b\x32!.spark.connect.Expression.LiteralB\x02\x18\x01\x12?\n\x0fnamed_arguments\x18\x04 \x03(\x0b\x32&.spark.connect.SQL.NamedArgumentsEntry\x12\x30\n\rpos_arguments\x18\x05 \x03(\x0b\x32\x19.spark.connect.Expression\x1aN\n\tArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32!.spark.connect.Expression.Literal:\x02\x38\x01\x1aP\n\x13NamedArgumentsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression:\x02\x38\x01\"c\n\rWithRelations\x12%\n\x04root\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12+\n\nreferences\x18\x02 \x03(\x0b\x32\x17.spark.connect.Relation\"\xbb\x04\n\x04Read\x12\x35\n\x0bnamed_table\x18\x01 \x01(\x0b\x32\x1e.spark.connect.Read.NamedTableH\x00\x12\x35\n\x0b\x64\x61ta_source\x18\x02 \x01(\x0b\x32\x1e.spark.connect.Read.DataSourceH\x00\x12\x14\n\x0cis_streaming\x18\x03 \x01(\x08\x1a\x97\x01\n\nNamedTable\x12\x1b\n\x13unparsed_identifier\x18\x01 \x01(\t\x12<\n\x07options\x18\x02 \x03(\x0b\x32+.spark.connect.Read.NamedTable.OptionsEntry\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x87\x02\n\nDataSource\x12\x13\n\x06\x66ormat\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06schema\x18\x02 \x01(\tH\x01\x88\x01\x01\x12<\n\x07options\x18\x03 \x03(\x0b\x32+.spark.connect.Read.DataSource.OptionsEntry\x12\r\n\x05paths\x18\x04 \x03(\t\x12\x12\n\npredicates\x18\x05 \x03(\t\x12\x18\n\x0bsource_name\x18\x06 \x01(\tH\x02\x88\x01\x01\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_formatB\t\n\x07_schemaB\x0e\n\x0c_source_nameB\x0b\n\tread_type\"\xb2\x01\n\x0fRelationChanges\x12\x1b\n\x13unparsed_identifier\x18\x01 \x01(\t\x12<\n\x07options\x18\x02 \x03(\x0b\x32+.spark.connect.RelationChanges.OptionsEntry\x12\x14\n\x0cis_streaming\x18\x03 \x01(\x08\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"a\n\x07Project\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12.\n\x0b\x65xpressions\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\"^\n\x06\x46ilter\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12,\n\tcondition\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression\"\xb6\x04\n\x04Join\x12%\n\x04left\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x05right\x18\x02 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x31\n\x0ejoin_condition\x18\x03 \x01(\x0b\x32\x19.spark.connect.Expression\x12/\n\tjoin_type\x18\x04 \x01(\x0e\x32\x1c.spark.connect.Join.JoinType\x12\x15\n\rusing_columns\x18\x05 \x03(\t\x12=\n\x0ejoin_data_type\x18\x06 \x01(\x0b\x32 .spark.connect.Join.JoinDataTypeH\x00\x88\x01\x01\x1a?\n\x0cJoinDataType\x12\x16\n\x0eis_left_struct\x18\x01 \x01(\x08\x12\x17\n\x0fis_right_struct\x18\x02 \x01(\x08\"\xd0\x01\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x18\n\x14JOIN_TYPE_FULL_OUTER\x10\x02\x12\x18\n\x14JOIN_TYPE_LEFT_OUTER\x10\x03\x12\x19\n\x15JOIN_TYPE_RIGHT_OUTER\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x05\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x06\x12\x13\n\x0fJOIN_TYPE_CROSS\x10\x07\x42\x11\n\x0f_join_data_type\"\x99\x03\n\x0cSetOperation\x12+\n\nleft_input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12,\n\x0bright_input\x18\x02 \x01(\x0b\x32\x17.spark.connect.Relation\x12:\n\x0bset_op_type\x18\x03 \x01(\x0e\x32%.spark.connect.SetOperation.SetOpType\x12\x13\n\x06is_all\x18\x04 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07\x62y_name\x18\x05 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61llow_missing_columns\x18\x06 \x01(\x08H\x02\x88\x01\x01\"r\n\tSetOpType\x12\x1b\n\x17SET_OP_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15SET_OP_TYPE_INTERSECT\x10\x01\x12\x15\n\x11SET_OP_TYPE_UNION\x10\x02\x12\x16\n\x12SET_OP_TYPE_EXCEPT\x10\x03\x42\t\n\x07_is_allB\n\n\x08_by_nameB\x18\n\x16_allow_missing_columns\">\n\x05Limit\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\r\n\x05limit\x18\x02 \x01(\x05\"@\n\x06Offset\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0e\n\x06offset\x18\x02 \x01(\x05\"=\n\x04Tail\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\r\n\x05limit\x18\x02 \x01(\x05\"\x92\x05\n\tAggregate\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x36\n\ngroup_type\x18\x02 \x01(\x0e\x32\".spark.connect.Aggregate.GroupType\x12\x37\n\x14grouping_expressions\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x38\n\x15\x61ggregate_expressions\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x12-\n\x05pivot\x18\x05 \x01(\x0b\x32\x1e.spark.connect.Aggregate.Pivot\x12<\n\rgrouping_sets\x18\x06 \x03(\x0b\x32%.spark.connect.Aggregate.GroupingSets\x1a\x62\n\x05Pivot\x12&\n\x03\x63ol\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x31\n\x06values\x18\x02 \x03(\x0b\x32!.spark.connect.Expression.Literal\x1a?\n\x0cGroupingSets\x12/\n\x0cgrouping_set\x18\x01 \x03(\x0b\x32\x19.spark.connect.Expression\"\x9f\x01\n\tGroupType\x12\x1a\n\x16GROUP_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12GROUP_TYPE_GROUPBY\x10\x01\x12\x15\n\x11GROUP_TYPE_ROLLUP\x10\x02\x12\x13\n\x0fGROUP_TYPE_CUBE\x10\x03\x12\x14\n\x10GROUP_TYPE_PIVOT\x10\x04\x12\x1c\n\x18GROUP_TYPE_GROUPING_SETS\x10\x05\"\x88\x01\n\x04Sort\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x32\n\x05order\x18\x02 \x03(\x0b\x32#.spark.connect.Expression.SortOrder\x12\x16\n\tis_global\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x0c\n\n_is_global\"p\n\x04\x44rop\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12*\n\x07\x63olumns\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x14\n\x0c\x63olumn_names\x18\x03 \x03(\t\"\xb9\x01\n\x0b\x44\x65\x64uplicate\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x14\n\x0c\x63olumn_names\x18\x02 \x03(\t\x12 \n\x13\x61ll_columns_as_keys\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10within_watermark\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_all_columns_as_keysB\x13\n\x11_within_watermark\"K\n\rLocalRelation\x12\x11\n\x04\x64\x61ta\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06schema\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_dataB\t\n\x07_schema\"B\n\x13\x43\x61\x63hedLocalRelation\x12\x0c\n\x04hash\x18\x03 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x06userIdR\tsessionId\"X\n\x1a\x43hunkedCachedLocalRelation\x12\x12\n\ndataHashes\x18\x01 \x03(\t\x12\x17\n\nschemaHash\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_schemaHash\"+\n\x14\x43\x61\x63hedRemoteRelation\x12\x13\n\x0brelation_id\x18\x01 \x01(\t\"\xc7\x01\n\x06Sample\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x13\n\x0blower_bound\x18\x02 \x01(\x01\x12\x13\n\x0bupper_bound\x18\x03 \x01(\x01\x12\x1d\n\x10with_replacement\x18\x04 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04seed\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12\x1b\n\x13\x64\x65terministic_order\x18\x06 \x01(\x08\x42\x13\n\x11_with_replacementB\x07\n\x05_seed\"p\n\x05Range\x12\x12\n\x05start\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x03\x12\x0c\n\x04step\x18\x03 \x01(\x03\x12\x1b\n\x0enum_partitions\x18\x04 \x01(\x05H\x01\x88\x01\x01\x42\x08\n\x06_startB\x11\n\x0f_num_partitions\"Y\n\rSubqueryAlias\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\x11\n\tqualifier\x18\x03 \x03(\t\"o\n\x0bRepartition\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x16\n\x0enum_partitions\x18\x02 \x01(\x05\x12\x14\n\x07shuffle\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_shuffle\"j\n\nShowString\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x10\n\x08num_rows\x18\x02 \x01(\x05\x12\x10\n\x08truncate\x18\x03 \x01(\x05\x12\x10\n\x08vertical\x18\x04 \x01(\x08\"X\n\nHtmlString\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x10\n\x08num_rows\x18\x02 \x01(\x05\x12\x10\n\x08truncate\x18\x03 \x01(\x05\"I\n\x0bStatSummary\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x12\n\nstatistics\x18\x02 \x03(\t\"D\n\x0cStatDescribe\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ols\x18\x02 \x03(\t\"R\n\x0cStatCrosstab\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ol1\x18\x02 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x03 \x01(\t\"M\n\x07StatCov\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ol1\x18\x02 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x03 \x01(\t\"n\n\x08StatCorr\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ol1\x18\x02 \x01(\t\x12\x0c\n\x04\x63ol2\x18\x03 \x01(\t\x12\x13\n\x06method\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_method\"y\n\x12StatApproxQuantile\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ols\x18\x02 \x03(\t\x12\x15\n\rprobabilities\x18\x03 \x03(\x01\x12\x16\n\x0erelative_error\x18\x04 \x01(\x01\"g\n\rStatFreqItems\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ols\x18\x02 \x03(\t\x12\x14\n\x07support\x18\x03 \x01(\x01H\x00\x88\x01\x01\x42\n\n\x08_support\"\x85\x02\n\x0cStatSampleBy\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x03\x63ol\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x37\n\tfractions\x18\x03 \x03(\x0b\x32$.spark.connect.StatSampleBy.Fraction\x12\x11\n\x04seed\x18\x05 \x01(\x03H\x00\x88\x01\x01\x1aP\n\x08\x46raction\x12\x32\n\x07stratum\x18\x01 \x01(\x0b\x32!.spark.connect.Expression.Literal\x12\x10\n\x08\x66raction\x18\x02 \x01(\x01\x42\x07\n\x05_seed\"q\n\x06NAFill\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ols\x18\x02 \x03(\t\x12\x31\n\x06values\x18\x03 \x03(\x0b\x32!.spark.connect.Expression.Literal\"l\n\x06NADrop\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ols\x18\x02 \x03(\t\x12\x1a\n\rmin_non_nulls\x18\x03 \x01(\x05H\x00\x88\x01\x01\x42\x10\n\x0e_min_non_nulls\"\xf8\x01\n\tNAReplace\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x63ols\x18\x02 \x03(\t\x12:\n\x0creplacements\x18\x03 \x03(\x0b\x32$.spark.connect.NAReplace.Replacement\x1ay\n\x0bReplacement\x12\x34\n\told_value\x18\x01 \x01(\x0b\x32!.spark.connect.Expression.Literal\x12\x34\n\tnew_value\x18\x02 \x01(\x0b\x32!.spark.connect.Expression.Literal\"D\n\x04ToDF\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x14\n\x0c\x63olumn_names\x18\x02 \x03(\t\"\xbb\x02\n\x12WithColumnsRenamed\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12W\n\x12rename_columns_map\x18\x02 \x03(\x0b\x32\x37.spark.connect.WithColumnsRenamed.RenameColumnsMapEntryB\x02\x18\x01\x12\x39\n\x07renames\x18\x03 \x03(\x0b\x32(.spark.connect.WithColumnsRenamed.Rename\x1a\x37\n\x15RenameColumnsMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x30\n\x06Rename\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12\x14\n\x0cnew_col_name\x18\x02 \x01(\t\"g\n\x0bWithColumns\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x30\n\x07\x61liases\x18\x02 \x03(\x0b\x32\x1f.spark.connect.Expression.Alias\"d\n\rWithWatermark\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x12\n\nevent_time\x18\x02 \x01(\t\x12\x17\n\x0f\x64\x65lay_threshold\x18\x03 \x01(\t\"k\n\x04Hint\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04name\x18\x02 \x01(\t\x12-\n\nparameters\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\"\x86\x02\n\x07Unpivot\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x03ids\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x32\n\x06values\x18\x03 \x01(\x0b\x32\x1d.spark.connect.Unpivot.ValuesH\x00\x88\x01\x01\x12\x1c\n\x14variable_column_name\x18\x04 \x01(\t\x12\x19\n\x11value_column_name\x18\x05 \x01(\t\x1a\x33\n\x06Values\x12)\n\x06values\x18\x01 \x03(\x0b\x32\x19.spark.connect.ExpressionB\t\n\x07_values\"e\n\tTranspose\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x30\n\rindex_columns\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\"d\n\x1dUnresolvedTableValuedFunction\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12,\n\targuments\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\"[\n\x08ToSchema\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\'\n\x06schema\x18\x02 \x01(\x0b\x32\x17.spark.connect.DataType\"\xa5\x01\n\x17RepartitionByExpression\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x32\n\x0fpartition_exprs\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x1b\n\x0enum_partitions\x18\x03 \x01(\x05H\x00\x88\x01\x01\x42\x11\n\x0f_num_partitions\"\xc5\x01\n\rMapPartitions\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12<\n\x04\x66unc\x18\x02 \x01(\x0b\x32..spark.connect.CommonInlineUserDefinedFunction\x12\x17\n\nis_barrier\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x17\n\nprofile_id\x18\x04 \x01(\x05H\x01\x88\x01\x01\x42\r\n\x0b_is_barrierB\r\n\x0b_profile_id\"\x9e\x05\n\x08GroupMap\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x37\n\x14grouping_expressions\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12<\n\x04\x66unc\x18\x03 \x01(\x0b\x32..spark.connect.CommonInlineUserDefinedFunction\x12\x36\n\x13sorting_expressions\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x12.\n\rinitial_input\x18\x05 \x01(\x0b\x32\x17.spark.connect.Relation\x12?\n\x1cinitial_grouping_expressions\x18\x06 \x03(\x0b\x32\x19.spark.connect.Expression\x12%\n\x18is_map_groups_with_state\x18\x07 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0boutput_mode\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0ctimeout_conf\x18\t \x01(\tH\x02\x88\x01\x01\x12\x32\n\x0cstate_schema\x18\n \x01(\x0b\x32\x17.spark.connect.DataTypeH\x03\x88\x01\x01\x12M\n\x19transform_with_state_info\x18\x0b \x01(\x0b\x32%.spark.connect.TransformWithStateInfoH\x04\x88\x01\x01\x42\x1b\n\x19_is_map_groups_with_stateB\x0e\n\x0c_output_modeB\x0f\n\r_timeout_confB\x0f\n\r_state_schemaB\x1c\n\x1a_transform_with_state_info\"\xb2\x01\n\x16TransformWithStateInfo\x12\x11\n\ttime_mode\x18\x01 \x01(\t\x12#\n\x16\x65vent_time_column_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x33\n\routput_schema\x18\x03 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x01\x88\x01\x01\x42\x19\n\x17_event_time_column_nameB\x10\n\x0e_output_schema\"\x94\x03\n\nCoGroupMap\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12=\n\x1ainput_grouping_expressions\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12&\n\x05other\x18\x03 \x01(\x0b\x32\x17.spark.connect.Relation\x12=\n\x1aother_grouping_expressions\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x12<\n\x04\x66unc\x18\x05 \x01(\x0b\x32..spark.connect.CommonInlineUserDefinedFunction\x12<\n\x19input_sorting_expressions\x18\x06 \x03(\x0b\x32\x19.spark.connect.Expression\x12<\n\x19other_sorting_expressions\x18\x07 \x03(\x0b\x32\x19.spark.connect.Expression\"\x8f\x02\n\x16\x41pplyInPandasWithState\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x37\n\x14grouping_expressions\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12<\n\x04\x66unc\x18\x03 \x01(\x0b\x32..spark.connect.CommonInlineUserDefinedFunction\x12\x15\n\routput_schema\x18\x04 \x01(\t\x12\x14\n\x0cstate_schema\x18\x05 \x01(\t\x12\x13\n\x0boutput_mode\x18\x06 \x01(\t\x12\x14\n\x0ctimeout_conf\x18\x07 \x01(\t\"\xc0\x01\n$CommonInlineUserDefinedTableFunction\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x15\n\rdeterministic\x18\x02 \x01(\x08\x12,\n\targuments\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x30\n\x0bpython_udtf\x18\x04 \x01(\x0b\x32\x19.spark.connect.PythonUDTFH\x00\x42\n\n\x08\x66unction\"\x87\x01\n\nPythonUDTF\x12\x31\n\x0breturn_type\x18\x01 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x00\x88\x01\x01\x12\x11\n\teval_type\x18\x02 \x01(\x05\x12\x0f\n\x07\x63ommand\x18\x03 \x01(\x0c\x12\x12\n\npython_ver\x18\x04 \x01(\tB\x0e\n\x0c_return_type\"\x7f\n!CommonInlineUserDefinedDataSource\x12\x0c\n\x04name\x18\x01 \x01(\t\x12=\n\x12python_data_source\x18\x02 \x01(\x0b\x32\x1f.spark.connect.PythonDataSourceH\x00\x42\r\n\x0b\x64\x61ta_source\"7\n\x10PythonDataSource\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\x0c\x12\x12\n\npython_ver\x18\x02 \x01(\t\"r\n\x0e\x43ollectMetrics\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04name\x18\x02 \x01(\t\x12*\n\x07metrics\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\"\xee\x02\n\x05Parse\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x30\n\x06\x66ormat\x18\x02 \x01(\x0e\x32 .spark.connect.Parse.ParseFormat\x12,\n\x06schema\x18\x03 \x01(\x0b\x32\x17.spark.connect.DataTypeH\x00\x88\x01\x01\x12\x32\n\x07options\x18\x04 \x03(\x0b\x32!.spark.connect.Parse.OptionsEntry\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"n\n\x0bParseFormat\x12\x1c\n\x18PARSE_FORMAT_UNSPECIFIED\x10\x00\x12\x14\n\x10PARSE_FORMAT_CSV\x10\x01\x12\x15\n\x11PARSE_FORMAT_JSON\x10\x02\x12\x14\n\x10PARSE_FORMAT_XML\x10\x03\x42\t\n\x07_schema\"\xee\x02\n\x08\x41sOfJoin\x12%\n\x04left\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x05right\x18\x02 \x01(\x0b\x32\x17.spark.connect.Relation\x12-\n\nleft_as_of\x18\x03 \x01(\x0b\x32\x19.spark.connect.Expression\x12.\n\x0bright_as_of\x18\x04 \x01(\x0b\x32\x19.spark.connect.Expression\x12,\n\tjoin_expr\x18\x05 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x15\n\rusing_columns\x18\x06 \x03(\t\x12\x11\n\tjoin_type\x18\x07 \x01(\t\x12,\n\ttolerance\x18\x08 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x1b\n\x13\x61llow_exact_matches\x18\t \x01(\x08\x12\x11\n\tdirection\x18\n \x01(\t\"\xc0\x01\n\x0bLateralJoin\x12%\n\x04left\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x05right\x18\x02 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x31\n\x0ejoin_condition\x18\x03 \x01(\x0b\x32\x19.spark.connect.Expression\x12/\n\tjoin_type\x18\x04 \x01(\x0e\x32\x1c.spark.connect.Join.JoinType\"\xde\x01\n\rNearestByJoin\x12%\n\x04left\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x05right\x18\x02 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x35\n\x12ranking_expression\x18\x03 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x13\n\x0bnum_results\x18\x04 \x01(\x05\x12\x11\n\tjoin_type\x18\x05 \x01(\t\x12\x0c\n\x04mode\x18\x06 \x01(\t\x12\x11\n\tdirection\x18\x07 \x01(\t\"T\n\x03Zip\x12%\n\x04left\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x05right\x18\x02 \x01(\x0b\x32\x17.spark.connect.RelationB6\n\x1eorg.apache.spark.connect.protoP\x01Z\x12internal/generatedb\x06proto3"
16
16
 
17
17
  pool = ::Google::Protobuf::DescriptorPool.generated_pool
18
18
  pool.add_serialized_file(descriptor_data)
@@ -32,6 +32,7 @@ module Spark
32
32
  Read = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Read").msgclass
33
33
  Read::NamedTable = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Read.NamedTable").msgclass
34
34
  Read::DataSource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Read.DataSource").msgclass
35
+ RelationChanges = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.RelationChanges").msgclass
35
36
  Project = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Project").msgclass
36
37
  Filter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Filter").msgclass
37
38
  Join = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Join").msgclass
@@ -98,5 +99,7 @@ module Spark
98
99
  Parse::ParseFormat = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Parse.ParseFormat").enummodule
99
100
  AsOfJoin = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.AsOfJoin").msgclass
100
101
  LateralJoin = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.LateralJoin").msgclass
102
+ NearestByJoin = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.NearestByJoin").msgclass
103
+ Zip = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("spark.connect.Zip").msgclass
101
104
  end
102
105
  end