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]