Skip to content

Commit e241c26

Browse files
Fix: Guard against None in as_binary_wkb and drop unused default_srid from bind key helper
1 parent f5b4509 commit e241c26

3 files changed

Lines changed: 3 additions & 9 deletions

File tree

geoalchemy2/admin/dialects/mysql.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@ def _mysql_dynamic_ewkb_source_token(source_bind, compiler=None):
476476
return f"{source_name}_{ordinal}"
477477

478478

479-
def _mysql_dynamic_ewkb_bind_keys(source_bind, *, default_srid=None, source_token=None):
479+
def _mysql_dynamic_ewkb_bind_keys(source_bind, *, source_token=None):
480480
source_name = source_token or getattr(source_bind, "_orig_key", None) or source_bind.key
481481
source_name = str(source_name)
482482
key_token = re.sub(r"[^0-9A-Za-z_]+", "_", source_name).strip("_") or "param"
@@ -495,7 +495,6 @@ def _make_mysql_dynamic_ewkb_bind_clauses(
495495
):
496496
wkb_key, srid_key = _mysql_dynamic_ewkb_bind_keys(
497497
wkb_clause,
498-
default_srid=default_srid,
499498
source_token=source_token,
500499
)
501500
wkb_bind_kwargs = {
@@ -876,7 +875,6 @@ def _get_mysql_dynamic_ewkb_bind_mappings(clauseelement, dialect):
876875

877876
wkb_key, srid_key = _mysql_dynamic_ewkb_bind_keys(
878877
source_bind,
879-
default_srid=default_srid,
880878
source_token=source_token,
881879
)
882880
dynamic_bind_mappings.append(

geoalchemy2/types/dialects/common.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ def _validate_wkb_bindvalue_srid(bindvalue, column_srid):
3737

3838

3939
def as_binary_wkb(bindvalue, *, strip_srid=False, column_srid=None):
40+
if bindvalue is None:
41+
return None
4042
if strip_srid:
4143
_validate_wkb_bindvalue_srid(bindvalue, column_srid)
4244
if isinstance(bindvalue, WKBElement):

tests/test_types.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,6 @@ def test_geom_from_ewkb_defaulted_bindparam_uses_dynamic_srid_processor(self):
633633
compiled_expr = expr.compile(dialect=mysql.dialect())
634634
wkb_key, srid_key = _mysql_admin._mysql_dynamic_ewkb_bind_keys(
635635
source_bind,
636-
default_srid=4326,
637636
)
638637
wkb_processor = compiled_expr._bind_processors[wkb_key]
639638
srid_processor = compiled_expr._bind_processors[srid_key]
@@ -656,7 +655,6 @@ def test_mysql_before_execute_expands_dynamic_ewkb_bindparams(self):
656655
stmt = select([func.ST_GeomFromEWKB(source_bind)])
657656
wkb_key, srid_key = _mysql_admin._mysql_dynamic_ewkb_bind_keys(
658657
source_bind,
659-
default_srid=4326,
660658
)
661659
override = bytes.fromhex(WEB_MERCATOR_EWKB_HEX)
662660

@@ -689,7 +687,6 @@ def get_wkb():
689687
compiled_expr = expr.compile(dialect=mysql.dialect())
690688
wkb_key, srid_key = _mysql_admin._mysql_dynamic_ewkb_bind_keys(
691689
source_bind,
692-
default_srid=0,
693690
)
694691

695692
assert self.normalize_sql(compiled_expr) == "ST_GeomFromWKB(%s, %s)"
@@ -946,7 +943,6 @@ def test_geom_from_ewkb_defaulted_bindparam_uses_dynamic_srid_processor(self):
946943
compiled_expr = expr.compile(dialect=self.dialect())
947944
wkb_key, srid_key = _mysql_admin._mysql_dynamic_ewkb_bind_keys(
948945
source_bind,
949-
default_srid=4326,
950946
)
951947
wkb_processor = compiled_expr._bind_processors[wkb_key]
952948
srid_processor = compiled_expr._bind_processors[srid_key]
@@ -969,7 +965,6 @@ def test_mariadb_before_execute_expands_dynamic_ewkb_bindparams(self):
969965
stmt = select([func.ST_GeomFromEWKB(source_bind)])
970966
wkb_key, srid_key = _mysql_admin._mysql_dynamic_ewkb_bind_keys(
971967
source_bind,
972-
default_srid=4326,
973968
)
974969
override = bytes.fromhex(WEB_MERCATOR_EWKB_HEX)
975970

@@ -1002,7 +997,6 @@ def get_wkb():
1002997
compiled_expr = expr.compile(dialect=self.dialect())
1003998
wkb_key, srid_key = _mysql_admin._mysql_dynamic_ewkb_bind_keys(
1004999
source_bind,
1005-
default_srid=0,
10061000
)
10071001

10081002
assert self.normalize_sql(compiled_expr) == "ST_GeomFromWKB(unhex(%s), %s)"

0 commit comments

Comments
 (0)