On an indexed expression, use the "astext" (e.g. "->>") conversion when rendered in SQL. E.g.:: select(data_table.c.data["some key"].astext) .. seealso:: :meth:`_expression.ColumnElement.cast`
(self)
| 208 | |
| 209 | @property |
| 210 | def astext(self) -> ColumnElement[str]: |
| 211 | """On an indexed expression, use the "astext" (e.g. "->>") |
| 212 | conversion when rendered in SQL. |
| 213 | |
| 214 | E.g.:: |
| 215 | |
| 216 | select(data_table.c.data["some key"].astext) |
| 217 | |
| 218 | .. seealso:: |
| 219 | |
| 220 | :meth:`_expression.ColumnElement.cast` |
| 221 | |
| 222 | """ |
| 223 | if isinstance(self.expr.right.type, sqltypes.JSON.JSONPathType): |
| 224 | return self.expr.left.operate( # type: ignore[no-any-return] |
| 225 | JSONPATH_ASTEXT, |
| 226 | self.expr.right, |
| 227 | result_type=self.type.astext_type, |
| 228 | ) |
| 229 | else: |
| 230 | return self.expr.left.operate( # type: ignore[no-any-return] |
| 231 | ASTEXT, self.expr.right, result_type=self.type.astext_type |
| 232 | ) |
| 233 | |
| 234 | comparator_factory = Comparator |
| 235 |