2020import sqlalchemy .sql .default_comparator
2121import sqlalchemy .sql .sqltypes
2222import sqlalchemy .types
23+ from sqlalchemy .sql import operators
2324
2425from . import base
2526
@@ -90,7 +91,7 @@ def _setup_getitem(self, name):
9091 subtype = self .expr .type ._STRUCT_byname .get (name .lower ())
9192 if subtype is None :
9293 raise KeyError (name )
93- operator = struct_getitem_op
94+ operator = operators . json_getitem_op
9495 index = _field_index (self , name , operator )
9596 return operator , index , subtype
9697
@@ -113,16 +114,8 @@ def _field_index(self, name, operator):
113114 )
114115
115116
116- def struct_getitem_op (a , b ):
117- raise NotImplementedError ()
118-
119-
120- sqlalchemy .sql .default_comparator .operator_lookup [
121- struct_getitem_op .__name__
122- ] = sqlalchemy .sql .default_comparator .operator_lookup ["json_getitem_op" ]
123-
124117
125118class SQLCompiler :
126- def visit_struct_getitem_op_binary (self , binary , operator_ , ** kw ):
119+ def visit_json_getitem_op_binary (self , binary , operator_ , ** kw ):
127120 left = self .process (binary .left , ** kw )
128121 return f"{ left } .{ binary .right .value } "
0 commit comments