Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,9 @@ object AnsiTypeCoercion extends TypeCoercionBase {
// We allow coercion from GEOGRAPHY(<srid>) types (i.e. fixed SRID types) to the
// GEOGRAPHY(ANY) type (i.e. mixed SRID type). This coercion is always safe to do.
case (t1: GeographyType, t2: GeographyType) if t1 != t2 => Some(GeographyType("ANY"))
// We allow coercion from GEOMETRY(<srid>) types (i.e. fixed SRID types) to the
// GEOMETRY(ANY) type (i.e. mixed SRID type). This coercion is always safe to do.
case (t1: GeometryType, t2: GeometryType) if t1 != t2 => Some(GeometryType("ANY"))

case (t1, t2) => findTypeForComplex(t1, t2, findTightestCommonType)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,9 @@ object TypeCoercion extends TypeCoercionBase {
// We allow coercion from GEOGRAPHY(<srid>) types (i.e. fixed SRID types) to the
// GEOGRAPHY(ANY) type (i.e. mixed SRID type). This coercion is always safe to do.
case (t1: GeographyType, t2: GeographyType) if t1 != t2 => Some(GeographyType("ANY"))
// We allow coercion from GEOMETRY(<srid>) types (i.e. fixed SRID types) to the
// GEOMETRY(ANY) type (i.e. mixed SRID type). This coercion is always safe to do.
case (t1: GeometryType, t2: GeometryType) if t1 != t2 => Some(GeometryType("ANY"))

case (t1, t2) => findTypeForComplex(t1, t2, findTightestCommonType)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,18 @@ class AnsiTypeCoercionSuite extends TypeCoercionSuiteBase {
widenTest(GeographyType("ANY"), GeographyType("ANY"), Some(GeographyType("ANY")))
widenTest(GeographyType("ANY"), GeographyType(4326), Some(GeographyType("ANY")))
widenTest(GeographyType(4326), GeographyType("ANY"), Some(GeographyType("ANY")))
// Geometry with same fixed SRIDs.
widenTest(GeometryType(0), GeometryType(0), Some(GeometryType(0)))
widenTest(GeometryType(3857), GeometryType(3857), Some(GeometryType(3857)))
widenTest(GeometryType(4326), GeometryType(4326), Some(GeometryType(4326)))
// Geometry with different fixed SRIDs.
widenTest(GeometryType(0), GeometryType(3857), Some(GeometryType("ANY")))
widenTest(GeometryType(3857), GeometryType(4326), Some(GeometryType("ANY")))
widenTest(GeometryType(4326), GeometryType(0), Some(GeometryType("ANY")))
// Geometry with mixed SRIDs.
widenTest(GeometryType("ANY"), GeometryType("ANY"), Some(GeometryType("ANY")))
widenTest(GeometryType("ANY"), GeometryType(4326), Some(GeometryType("ANY")))
widenTest(GeometryType(4326), GeometryType("ANY"), Some(GeometryType("ANY")))

// Integral mixed with floating point.
widenTest(IntegerType, FloatType, Some(DoubleType))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -603,6 +603,18 @@ class TypeCoercionSuite extends TypeCoercionSuiteBase {
widenTest(GeographyType("ANY"), GeographyType("ANY"), Some(GeographyType("ANY")))
widenTest(GeographyType("ANY"), GeographyType(4326), Some(GeographyType("ANY")))
widenTest(GeographyType(4326), GeographyType("ANY"), Some(GeographyType("ANY")))
// Geometry with same fixed SRIDs.
widenTest(GeometryType(0), GeometryType(0), Some(GeometryType(0)))
widenTest(GeometryType(3857), GeometryType(3857), Some(GeometryType(3857)))
widenTest(GeometryType(4326), GeometryType(4326), Some(GeometryType(4326)))
// Geometry with different fixed SRIDs.
widenTest(GeometryType(0), GeometryType(3857), Some(GeometryType("ANY")))
widenTest(GeometryType(3857), GeometryType(4326), Some(GeometryType("ANY")))
widenTest(GeometryType(4326), GeometryType(0), Some(GeometryType("ANY")))
// Geometry with mixed SRIDs.
widenTest(GeometryType("ANY"), GeometryType("ANY"), Some(GeometryType("ANY")))
widenTest(GeometryType("ANY"), GeometryType(4326), Some(GeometryType("ANY")))
widenTest(GeometryType(4326), GeometryType("ANY"), Some(GeometryType("ANY")))

// Integral mixed with floating point.
widenTest(IntegerType, FloatType, Some(FloatType))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,14 @@ Project [typeof(array(cast(st_geogfromwkb(wkb#x) as geography(any)), cast(st_geo
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(array(ST_GeomFromWKB(wkb), ST_GeomFromWKB(wkb)::GEOMETRY(ANY))) FROM geodata
-- !query analysis
Project [typeof(array(cast(st_geomfromwkb(wkb#x) as geometry(any)), cast(st_geomfromwkb(wkb#x) as geometry(any)))) AS typeof(array(st_geomfromwkb(wkb), CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(map('a', ST_GeogFromWKB(wkb), 'b', ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY))) FROM geodata
-- !query analysis
Expand All @@ -169,6 +177,14 @@ Project [typeof(map(a, cast(st_geogfromwkb(wkb#x) as geography(any)), b, cast(st
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(map('a', ST_GeomFromWKB(wkb), 'b', ST_GeomFromWKB(wkb)::GEOMETRY(ANY))) FROM geodata
-- !query analysis
Project [typeof(map(a, cast(st_geomfromwkb(wkb#x) as geometry(any)), b, cast(st_geomfromwkb(wkb#x) as geometry(any)))) AS typeof(map(a, st_geomfromwkb(wkb), b, CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(array(named_struct('g1', ST_GeogFromWKB(wkb), 'g2', ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY)), named_struct('g1', ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY), 'g2', ST_GeogFromWKB(wkb)))) FROM geodata
-- !query analysis
Expand All @@ -177,6 +193,14 @@ Project [typeof(array(cast(named_struct(g1, st_geogfromwkb(wkb#x), g2, cast(st_g
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(array(named_struct('g1', ST_GeomFromWKB(wkb), 'g2', ST_GeomFromWKB(wkb)::GEOMETRY(ANY)), named_struct('g1', ST_GeomFromWKB(wkb)::GEOMETRY(ANY), 'g2', ST_GeomFromWKB(wkb)))) FROM geodata
-- !query analysis
Project [typeof(array(cast(named_struct(g1, st_geomfromwkb(wkb#x), g2, cast(st_geomfromwkb(wkb#x) as geometry(any))) as struct<g1:geometry(any),g2:geometry(any)>), cast(named_struct(g1, cast(st_geomfromwkb(wkb#x) as geometry(any)), g2, st_geomfromwkb(wkb#x)) as struct<g1:geometry(any),g2:geometry(any)>))) AS typeof(array(named_struct(g1, st_geomfromwkb(wkb), g2, CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY))), named_struct(g1, CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY)), g2, st_geomfromwkb(wkb))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(named_struct('a', array(ST_GeogFromWKB(wkb), ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY)), 'b', map('g', ST_GeogFromWKB(wkb), 'h', ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY)))) FROM geodata
-- !query analysis
Expand All @@ -185,6 +209,14 @@ Project [typeof(named_struct(a, array(cast(st_geogfromwkb(wkb#x) as geography(an
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(named_struct('a', array(ST_GeomFromWKB(wkb), ST_GeomFromWKB(wkb)::GEOMETRY(ANY)), 'b', map('g', ST_GeomFromWKB(wkb), 'h', ST_GeomFromWKB(wkb)::GEOMETRY(ANY)))) FROM geodata
-- !query analysis
Project [typeof(named_struct(a, array(cast(st_geomfromwkb(wkb#x) as geometry(any)), cast(st_geomfromwkb(wkb#x) as geometry(any))), b, map(g, cast(st_geomfromwkb(wkb#x) as geometry(any)), h, cast(st_geomfromwkb(wkb#x) as geometry(any))))) AS typeof(named_struct(a, array(st_geomfromwkb(wkb), CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY))), b, map(g, st_geomfromwkb(wkb), h, CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY)))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(nvl(ST_GeogFromWKB(wkb), ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY))) FROM geodata
-- !query analysis
Expand All @@ -193,6 +225,14 @@ Project [typeof(nvl(st_geogfromwkb(wkb#x), cast(st_geogfromwkb(wkb#x) as geograp
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(nvl(ST_GeomFromWKB(wkb), ST_GeomFromWKB(wkb)::GEOMETRY(ANY))) FROM geodata
-- !query analysis
Project [typeof(nvl(st_geomfromwkb(wkb#x), cast(st_geomfromwkb(wkb#x) as geometry(any)))) AS typeof(nvl(st_geomfromwkb(wkb), CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(nvl2(ST_GeogFromWKB(wkb), ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY), ST_GeogFromWKB(wkb))) FROM geodata
-- !query analysis
Expand All @@ -201,6 +241,14 @@ Project [typeof(nvl2(st_geogfromwkb(wkb#x), cast(st_geogfromwkb(wkb#x) as geogra
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(nvl2(ST_GeomFromWKB(wkb), ST_GeomFromWKB(wkb)::GEOMETRY(ANY), ST_GeomFromWKB(wkb))) FROM geodata
-- !query analysis
Project [typeof(nvl2(st_geomfromwkb(wkb#x), cast(st_geomfromwkb(wkb#x) as geometry(any)), st_geomfromwkb(wkb#x))) AS typeof(nvl2(st_geomfromwkb(wkb), CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY)), st_geomfromwkb(wkb)))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(CASE WHEN wkb IS NOT NULL THEN ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY) ELSE ST_GeogFromWKB(wkb) END) FROM geodata
-- !query analysis
Expand All @@ -209,6 +257,14 @@ Project [typeof(CASE WHEN isnotnull(wkb#x) THEN cast(st_geogfromwkb(wkb#x) as ge
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(CASE WHEN wkb IS NOT NULL THEN ST_GeomFromWKB(wkb)::GEOMETRY(ANY) ELSE ST_GeomFromWKB(wkb) END) FROM geodata
-- !query analysis
Project [typeof(CASE WHEN isnotnull(wkb#x) THEN cast(st_geomfromwkb(wkb#x) as geometry(any)) ELSE cast(st_geomfromwkb(wkb#x) as geometry(any)) END) AS typeof(CASE WHEN (wkb IS NOT NULL) THEN CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY)) ELSE st_geomfromwkb(wkb) END)#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(coalesce(ST_GeogFromWKB(wkb), ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY))) FROM geodata
-- !query analysis
Expand All @@ -217,6 +273,14 @@ Project [typeof(coalesce(cast(st_geogfromwkb(wkb#x) as geography(any)), cast(st_
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(coalesce(ST_GeomFromWKB(wkb), ST_GeomFromWKB(wkb)::GEOMETRY(ANY))) FROM geodata
-- !query analysis
Project [typeof(coalesce(cast(st_geomfromwkb(wkb#x) as geometry(any)), cast(st_geomfromwkb(wkb#x) as geometry(any)))) AS typeof(coalesce(st_geomfromwkb(wkb), CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(IF(wkb IS NOT NULL, ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY), ST_GeogFromWKB(wkb))) FROM geodata
-- !query analysis
Expand All @@ -225,6 +289,14 @@ Project [typeof(if (isnotnull(wkb#x)) cast(st_geogfromwkb(wkb#x) as geography(an
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(IF(wkb IS NOT NULL, ST_GeomFromWKB(wkb)::GEOMETRY(ANY), ST_GeomFromWKB(wkb))) FROM geodata
-- !query analysis
Project [typeof(if (isnotnull(wkb#x)) cast(st_geomfromwkb(wkb#x) as geometry(any)) else cast(st_geomfromwkb(wkb#x) as geometry(any))) AS typeof((IF((wkb IS NOT NULL), CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY)), st_geomfromwkb(wkb))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT hex(ST_AsBinary(ST_GeogFromWKB(X'0101000000000000000000f03f0000000000000040'))) AS result
-- !query analysis
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,14 @@ Project [typeof(array(cast(st_geogfromwkb(wkb#x) as geography(any)), cast(st_geo
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(array(ST_GeomFromWKB(wkb), ST_GeomFromWKB(wkb)::GEOMETRY(ANY))) FROM geodata
-- !query analysis
Project [typeof(array(cast(st_geomfromwkb(wkb#x) as geometry(any)), cast(st_geomfromwkb(wkb#x) as geometry(any)))) AS typeof(array(st_geomfromwkb(wkb), CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(map('a', ST_GeogFromWKB(wkb), 'b', ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY))) FROM geodata
-- !query analysis
Expand All @@ -169,6 +177,14 @@ Project [typeof(map(a, cast(st_geogfromwkb(wkb#x) as geography(any)), b, cast(st
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(map('a', ST_GeomFromWKB(wkb), 'b', ST_GeomFromWKB(wkb)::GEOMETRY(ANY))) FROM geodata
-- !query analysis
Project [typeof(map(a, cast(st_geomfromwkb(wkb#x) as geometry(any)), b, cast(st_geomfromwkb(wkb#x) as geometry(any)))) AS typeof(map(a, st_geomfromwkb(wkb), b, CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(array(named_struct('g1', ST_GeogFromWKB(wkb), 'g2', ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY)), named_struct('g1', ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY), 'g2', ST_GeogFromWKB(wkb)))) FROM geodata
-- !query analysis
Expand All @@ -177,6 +193,14 @@ Project [typeof(array(cast(named_struct(g1, st_geogfromwkb(wkb#x), g2, cast(st_g
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(array(named_struct('g1', ST_GeomFromWKB(wkb), 'g2', ST_GeomFromWKB(wkb)::GEOMETRY(ANY)), named_struct('g1', ST_GeomFromWKB(wkb)::GEOMETRY(ANY), 'g2', ST_GeomFromWKB(wkb)))) FROM geodata
-- !query analysis
Project [typeof(array(cast(named_struct(g1, st_geomfromwkb(wkb#x), g2, cast(st_geomfromwkb(wkb#x) as geometry(any))) as struct<g1:geometry(any),g2:geometry(any)>), cast(named_struct(g1, cast(st_geomfromwkb(wkb#x) as geometry(any)), g2, st_geomfromwkb(wkb#x)) as struct<g1:geometry(any),g2:geometry(any)>))) AS typeof(array(named_struct(g1, st_geomfromwkb(wkb), g2, CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY))), named_struct(g1, CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY)), g2, st_geomfromwkb(wkb))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(named_struct('a', array(ST_GeogFromWKB(wkb), ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY)), 'b', map('g', ST_GeogFromWKB(wkb), 'h', ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY)))) FROM geodata
-- !query analysis
Expand All @@ -185,6 +209,14 @@ Project [typeof(named_struct(a, array(cast(st_geogfromwkb(wkb#x) as geography(an
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(named_struct('a', array(ST_GeomFromWKB(wkb), ST_GeomFromWKB(wkb)::GEOMETRY(ANY)), 'b', map('g', ST_GeomFromWKB(wkb), 'h', ST_GeomFromWKB(wkb)::GEOMETRY(ANY)))) FROM geodata
-- !query analysis
Project [typeof(named_struct(a, array(cast(st_geomfromwkb(wkb#x) as geometry(any)), cast(st_geomfromwkb(wkb#x) as geometry(any))), b, map(g, cast(st_geomfromwkb(wkb#x) as geometry(any)), h, cast(st_geomfromwkb(wkb#x) as geometry(any))))) AS typeof(named_struct(a, array(st_geomfromwkb(wkb), CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY))), b, map(g, st_geomfromwkb(wkb), h, CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY)))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(nvl(ST_GeogFromWKB(wkb), ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY))) FROM geodata
-- !query analysis
Expand All @@ -193,6 +225,14 @@ Project [typeof(nvl(st_geogfromwkb(wkb#x), cast(st_geogfromwkb(wkb#x) as geograp
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(nvl(ST_GeomFromWKB(wkb), ST_GeomFromWKB(wkb)::GEOMETRY(ANY))) FROM geodata
-- !query analysis
Project [typeof(nvl(st_geomfromwkb(wkb#x), cast(st_geomfromwkb(wkb#x) as geometry(any)))) AS typeof(nvl(st_geomfromwkb(wkb), CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(nvl2(ST_GeogFromWKB(wkb), ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY), ST_GeogFromWKB(wkb))) FROM geodata
-- !query analysis
Expand All @@ -201,6 +241,14 @@ Project [typeof(nvl2(st_geogfromwkb(wkb#x), cast(st_geogfromwkb(wkb#x) as geogra
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(nvl2(ST_GeomFromWKB(wkb), ST_GeomFromWKB(wkb)::GEOMETRY(ANY), ST_GeomFromWKB(wkb))) FROM geodata
-- !query analysis
Project [typeof(nvl2(st_geomfromwkb(wkb#x), cast(st_geomfromwkb(wkb#x) as geometry(any)), st_geomfromwkb(wkb#x))) AS typeof(nvl2(st_geomfromwkb(wkb), CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY)), st_geomfromwkb(wkb)))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(CASE WHEN wkb IS NOT NULL THEN ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY) ELSE ST_GeogFromWKB(wkb) END) FROM geodata
-- !query analysis
Expand All @@ -209,6 +257,14 @@ Project [typeof(CASE WHEN isnotnull(wkb#x) THEN cast(st_geogfromwkb(wkb#x) as ge
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(CASE WHEN wkb IS NOT NULL THEN ST_GeomFromWKB(wkb)::GEOMETRY(ANY) ELSE ST_GeomFromWKB(wkb) END) FROM geodata
-- !query analysis
Project [typeof(CASE WHEN isnotnull(wkb#x) THEN cast(st_geomfromwkb(wkb#x) as geometry(any)) ELSE cast(st_geomfromwkb(wkb#x) as geometry(any)) END) AS typeof(CASE WHEN (wkb IS NOT NULL) THEN CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY)) ELSE st_geomfromwkb(wkb) END)#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(coalesce(ST_GeogFromWKB(wkb), ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY))) FROM geodata
-- !query analysis
Expand All @@ -217,6 +273,14 @@ Project [typeof(coalesce(cast(st_geogfromwkb(wkb#x) as geography(any)), cast(st_
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(coalesce(ST_GeomFromWKB(wkb), ST_GeomFromWKB(wkb)::GEOMETRY(ANY))) FROM geodata
-- !query analysis
Project [typeof(coalesce(cast(st_geomfromwkb(wkb#x) as geometry(any)), cast(st_geomfromwkb(wkb#x) as geometry(any)))) AS typeof(coalesce(st_geomfromwkb(wkb), CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(IF(wkb IS NOT NULL, ST_GeogFromWKB(wkb)::GEOGRAPHY(ANY), ST_GeogFromWKB(wkb))) FROM geodata
-- !query analysis
Expand All @@ -225,6 +289,14 @@ Project [typeof(if (isnotnull(wkb#x)) cast(st_geogfromwkb(wkb#x) as geography(an
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT typeof(IF(wkb IS NOT NULL, ST_GeomFromWKB(wkb)::GEOMETRY(ANY), ST_GeomFromWKB(wkb))) FROM geodata
-- !query analysis
Project [typeof(if (isnotnull(wkb#x)) cast(st_geomfromwkb(wkb#x) as geometry(any)) else cast(st_geomfromwkb(wkb#x) as geometry(any))) AS typeof((IF((wkb IS NOT NULL), CAST(st_geomfromwkb(wkb) AS GEOMETRY(ANY)), st_geomfromwkb(wkb))))#x]
+- SubqueryAlias spark_catalog.default.geodata
+- Relation spark_catalog.default.geodata[wkb#x] parquet


-- !query
SELECT hex(ST_AsBinary(ST_GeogFromWKB(X'0101000000000000000000f03f0000000000000040'))) AS result
-- !query analysis
Expand Down
Loading