This is an automated email from the ASF dual-hosted git repository.

wenchen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new 4622e8584e37 [SPARK-52510][GEO][CONNECT][FOLLOWUP] Reserve expression 
proto numbers for Geometry and Geography
4622e8584e37 is described below

commit 4622e8584e37289b3e1c03d4694e6431cc10895d
Author: Uros Bojanic <[email protected]>
AuthorDate: Tue Oct 28 23:59:55 2025 +0800

    [SPARK-52510][GEO][CONNECT][FOLLOWUP] Reserve expression proto numbers for 
Geometry and Geography
    
    ### What changes were proposed in this pull request?
    This PR follows up on https://github.com/apache/spark/pull/51204, evolving 
`expressions.proto` to also reserve two numbers in Spark Connect for geospatial 
types (`Geometry` and `Geography`).
    
    ### Why are the changes needed?
    Geospatial types need to have their proto file representation in 
expressions as well, and we need to reserve it.
    
    ### Does this PR introduce _any_ user-facing change?
    No.
    
    ### How was this patch tested?
    Regenerated Python bindings are verified via the appropriate PySpark 
Connect unit & integration tests.
    
    ### Was this patch authored or co-authored using generative AI tooling?
    No.
    
    Closes #52746 from uros-db/geo-exprs-proto.
    
    Authored-by: Uros Bojanic <[email protected]>
    Signed-off-by: Wenchen Fan <[email protected]>
---
 .../pyspark/sql/connect/proto/expressions_pb2.py   | 102 ++++++++++-----------
 .../main/protobuf/spark/connect/expressions.proto  |   3 +
 2 files changed, 54 insertions(+), 51 deletions(-)

diff --git a/python/pyspark/sql/connect/proto/expressions_pb2.py 
b/python/pyspark/sql/connect/proto/expressions_pb2.py
index 01a45864d565..bd75ade02d8b 100644
--- a/python/pyspark/sql/connect/proto/expressions_pb2.py
+++ b/python/pyspark/sql/connect/proto/expressions_pb2.py
@@ -40,7 +40,7 @@ from pyspark.sql.connect.proto import common_pb2 as 
spark_dot_connect_dot_common
 
 
 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
-    
b'\n\x1fspark/connect/expressions.proto\x12\rspark.connect\x1a\x19google/protobuf/any.proto\x1a\x19spark/connect/types.proto\x1a\x1aspark/connect/common.proto"\x86\x38\n\nExpression\x12\x37\n\x06\x63ommon\x18\x12
 
\x01(\x0b\x32\x1f.spark.connect.ExpressionCommonR\x06\x63ommon\x12=\n\x07literal\x18\x01
 
\x01(\x0b\x32!.spark.connect.Expression.LiteralH\x00R\x07literal\x12\x62\n\x14unresolved_attribute\x18\x02
 
\x01(\x0b\x32-.spark.connect.Expression.UnresolvedAttributeH\x00R\x13unresolved 
[...]
+    
b'\n\x1fspark/connect/expressions.proto\x12\rspark.connect\x1a\x19google/protobuf/any.proto\x1a\x19spark/connect/types.proto\x1a\x1aspark/connect/common.proto"\x92\x38\n\nExpression\x12\x37\n\x06\x63ommon\x18\x12
 
\x01(\x0b\x32\x1f.spark.connect.ExpressionCommonR\x06\x63ommon\x12=\n\x07literal\x18\x01
 
\x01(\x0b\x32!.spark.connect.Expression.LiteralH\x00R\x07literal\x12\x62\n\x14unresolved_attribute\x18\x02
 
\x01(\x0b\x32-.spark.connect.Expression.UnresolvedAttributeH\x00R\x13unresolved 
[...]
 )
 
 _globals = globals()
@@ -68,7 +68,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
         "struct_type"
     ]._serialized_options = b"\030\001"
     _globals["_EXPRESSION"]._serialized_start = 133
-    _globals["_EXPRESSION"]._serialized_end = 7307
+    _globals["_EXPRESSION"]._serialized_end = 7319
     _globals["_EXPRESSION_WINDOW"]._serialized_start = 2103
     _globals["_EXPRESSION_WINDOW"]._serialized_end = 2886
     _globals["_EXPRESSION_WINDOW_WINDOWFRAME"]._serialized_start = 2393
@@ -90,7 +90,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
     _globals["_EXPRESSION_CAST_EVALMODE"]._serialized_start = 3595
     _globals["_EXPRESSION_CAST_EVALMODE"]._serialized_end = 3693
     _globals["_EXPRESSION_LITERAL"]._serialized_start = 3712
-    _globals["_EXPRESSION_LITERAL"]._serialized_end = 5906
+    _globals["_EXPRESSION_LITERAL"]._serialized_end = 5918
     _globals["_EXPRESSION_LITERAL_DECIMAL"]._serialized_start = 4762
     _globals["_EXPRESSION_LITERAL_DECIMAL"]._serialized_end = 4879
     _globals["_EXPRESSION_LITERAL_CALENDARINTERVAL"]._serialized_start = 4881
@@ -105,52 +105,52 @@ if not _descriptor._USE_C_DESCRIPTORS:
     _globals["_EXPRESSION_LITERAL_SPECIALIZEDARRAY"]._serialized_end = 5813
     _globals["_EXPRESSION_LITERAL_TIME"]._serialized_start = 5815
     _globals["_EXPRESSION_LITERAL_TIME"]._serialized_end = 5890
-    _globals["_EXPRESSION_UNRESOLVEDATTRIBUTE"]._serialized_start = 5909
-    _globals["_EXPRESSION_UNRESOLVEDATTRIBUTE"]._serialized_end = 6095
-    _globals["_EXPRESSION_UNRESOLVEDFUNCTION"]._serialized_start = 6098
-    _globals["_EXPRESSION_UNRESOLVEDFUNCTION"]._serialized_end = 6356
-    _globals["_EXPRESSION_EXPRESSIONSTRING"]._serialized_start = 6358
-    _globals["_EXPRESSION_EXPRESSIONSTRING"]._serialized_end = 6408
-    _globals["_EXPRESSION_UNRESOLVEDSTAR"]._serialized_start = 6410
-    _globals["_EXPRESSION_UNRESOLVEDSTAR"]._serialized_end = 6534
-    _globals["_EXPRESSION_UNRESOLVEDREGEX"]._serialized_start = 6536
-    _globals["_EXPRESSION_UNRESOLVEDREGEX"]._serialized_end = 6622
-    _globals["_EXPRESSION_UNRESOLVEDEXTRACTVALUE"]._serialized_start = 6625
-    _globals["_EXPRESSION_UNRESOLVEDEXTRACTVALUE"]._serialized_end = 6757
-    _globals["_EXPRESSION_UPDATEFIELDS"]._serialized_start = 6760
-    _globals["_EXPRESSION_UPDATEFIELDS"]._serialized_end = 6947
-    _globals["_EXPRESSION_ALIAS"]._serialized_start = 6949
-    _globals["_EXPRESSION_ALIAS"]._serialized_end = 7069
-    _globals["_EXPRESSION_LAMBDAFUNCTION"]._serialized_start = 7072
-    _globals["_EXPRESSION_LAMBDAFUNCTION"]._serialized_end = 7230
-    _globals["_EXPRESSION_UNRESOLVEDNAMEDLAMBDAVARIABLE"]._serialized_start = 
7232
-    _globals["_EXPRESSION_UNRESOLVEDNAMEDLAMBDAVARIABLE"]._serialized_end = 
7294
-    _globals["_EXPRESSIONCOMMON"]._serialized_start = 7309
-    _globals["_EXPRESSIONCOMMON"]._serialized_end = 7374
-    _globals["_COMMONINLINEUSERDEFINEDFUNCTION"]._serialized_start = 7377
-    _globals["_COMMONINLINEUSERDEFINEDFUNCTION"]._serialized_end = 7774
-    _globals["_PYTHONUDF"]._serialized_start = 7777
-    _globals["_PYTHONUDF"]._serialized_end = 7981
-    _globals["_SCALARSCALAUDF"]._serialized_start = 7984
-    _globals["_SCALARSCALAUDF"]._serialized_end = 8198
-    _globals["_JAVAUDF"]._serialized_start = 8201
-    _globals["_JAVAUDF"]._serialized_end = 8350
-    _globals["_TYPEDAGGREGATEEXPRESSION"]._serialized_start = 8352
-    _globals["_TYPEDAGGREGATEEXPRESSION"]._serialized_end = 8451
-    _globals["_CALLFUNCTION"]._serialized_start = 8453
-    _globals["_CALLFUNCTION"]._serialized_end = 8561
-    _globals["_NAMEDARGUMENTEXPRESSION"]._serialized_start = 8563
-    _globals["_NAMEDARGUMENTEXPRESSION"]._serialized_end = 8655
-    _globals["_MERGEACTION"]._serialized_start = 8658
-    _globals["_MERGEACTION"]._serialized_end = 9170
-    _globals["_MERGEACTION_ASSIGNMENT"]._serialized_start = 8880
-    _globals["_MERGEACTION_ASSIGNMENT"]._serialized_end = 8986
-    _globals["_MERGEACTION_ACTIONTYPE"]._serialized_start = 8989
-    _globals["_MERGEACTION_ACTIONTYPE"]._serialized_end = 9156
-    _globals["_SUBQUERYEXPRESSION"]._serialized_start = 9173
-    _globals["_SUBQUERYEXPRESSION"]._serialized_end = 9882
-    _globals["_SUBQUERYEXPRESSION_TABLEARGOPTIONS"]._serialized_start = 9479
-    _globals["_SUBQUERYEXPRESSION_TABLEARGOPTIONS"]._serialized_end = 9713
-    _globals["_SUBQUERYEXPRESSION_SUBQUERYTYPE"]._serialized_start = 9716
-    _globals["_SUBQUERYEXPRESSION_SUBQUERYTYPE"]._serialized_end = 9860
+    _globals["_EXPRESSION_UNRESOLVEDATTRIBUTE"]._serialized_start = 5921
+    _globals["_EXPRESSION_UNRESOLVEDATTRIBUTE"]._serialized_end = 6107
+    _globals["_EXPRESSION_UNRESOLVEDFUNCTION"]._serialized_start = 6110
+    _globals["_EXPRESSION_UNRESOLVEDFUNCTION"]._serialized_end = 6368
+    _globals["_EXPRESSION_EXPRESSIONSTRING"]._serialized_start = 6370
+    _globals["_EXPRESSION_EXPRESSIONSTRING"]._serialized_end = 6420
+    _globals["_EXPRESSION_UNRESOLVEDSTAR"]._serialized_start = 6422
+    _globals["_EXPRESSION_UNRESOLVEDSTAR"]._serialized_end = 6546
+    _globals["_EXPRESSION_UNRESOLVEDREGEX"]._serialized_start = 6548
+    _globals["_EXPRESSION_UNRESOLVEDREGEX"]._serialized_end = 6634
+    _globals["_EXPRESSION_UNRESOLVEDEXTRACTVALUE"]._serialized_start = 6637
+    _globals["_EXPRESSION_UNRESOLVEDEXTRACTVALUE"]._serialized_end = 6769
+    _globals["_EXPRESSION_UPDATEFIELDS"]._serialized_start = 6772
+    _globals["_EXPRESSION_UPDATEFIELDS"]._serialized_end = 6959
+    _globals["_EXPRESSION_ALIAS"]._serialized_start = 6961
+    _globals["_EXPRESSION_ALIAS"]._serialized_end = 7081
+    _globals["_EXPRESSION_LAMBDAFUNCTION"]._serialized_start = 7084
+    _globals["_EXPRESSION_LAMBDAFUNCTION"]._serialized_end = 7242
+    _globals["_EXPRESSION_UNRESOLVEDNAMEDLAMBDAVARIABLE"]._serialized_start = 
7244
+    _globals["_EXPRESSION_UNRESOLVEDNAMEDLAMBDAVARIABLE"]._serialized_end = 
7306
+    _globals["_EXPRESSIONCOMMON"]._serialized_start = 7321
+    _globals["_EXPRESSIONCOMMON"]._serialized_end = 7386
+    _globals["_COMMONINLINEUSERDEFINEDFUNCTION"]._serialized_start = 7389
+    _globals["_COMMONINLINEUSERDEFINEDFUNCTION"]._serialized_end = 7786
+    _globals["_PYTHONUDF"]._serialized_start = 7789
+    _globals["_PYTHONUDF"]._serialized_end = 7993
+    _globals["_SCALARSCALAUDF"]._serialized_start = 7996
+    _globals["_SCALARSCALAUDF"]._serialized_end = 8210
+    _globals["_JAVAUDF"]._serialized_start = 8213
+    _globals["_JAVAUDF"]._serialized_end = 8362
+    _globals["_TYPEDAGGREGATEEXPRESSION"]._serialized_start = 8364
+    _globals["_TYPEDAGGREGATEEXPRESSION"]._serialized_end = 8463
+    _globals["_CALLFUNCTION"]._serialized_start = 8465
+    _globals["_CALLFUNCTION"]._serialized_end = 8573
+    _globals["_NAMEDARGUMENTEXPRESSION"]._serialized_start = 8575
+    _globals["_NAMEDARGUMENTEXPRESSION"]._serialized_end = 8667
+    _globals["_MERGEACTION"]._serialized_start = 8670
+    _globals["_MERGEACTION"]._serialized_end = 9182
+    _globals["_MERGEACTION_ASSIGNMENT"]._serialized_start = 8892
+    _globals["_MERGEACTION_ASSIGNMENT"]._serialized_end = 8998
+    _globals["_MERGEACTION_ACTIONTYPE"]._serialized_start = 9001
+    _globals["_MERGEACTION_ACTIONTYPE"]._serialized_end = 9168
+    _globals["_SUBQUERYEXPRESSION"]._serialized_start = 9185
+    _globals["_SUBQUERYEXPRESSION"]._serialized_end = 9894
+    _globals["_SUBQUERYEXPRESSION_TABLEARGOPTIONS"]._serialized_start = 9491
+    _globals["_SUBQUERYEXPRESSION_TABLEARGOPTIONS"]._serialized_end = 9725
+    _globals["_SUBQUERYEXPRESSION_SUBQUERYTYPE"]._serialized_start = 9728
+    _globals["_SUBQUERYEXPRESSION_SUBQUERYTYPE"]._serialized_end = 9872
 # @@protoc_insertion_point(module_scope)
diff --git 
a/sql/connect/common/src/main/protobuf/spark/connect/expressions.proto 
b/sql/connect/common/src/main/protobuf/spark/connect/expressions.proto
index 9efbf609cbba..f74c5af11782 100644
--- a/sql/connect/common/src/main/protobuf/spark/connect/expressions.proto
+++ b/sql/connect/common/src/main/protobuf/spark/connect/expressions.proto
@@ -207,6 +207,9 @@ message Expression {
       Time time = 26;
     }
 
+    // Reserved for Geometry and Geography.
+    reserved 27, 28;
+
     // Data type information for the literal.
     // This field is required only in the root literal message for null values 
or
     // for data types (e.g., array, map, or struct) with non-trivial 
information.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to