diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2022-02-07 17:50:56 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2022-02-07 17:50:56 +0000 |
| commit | cc5fd2fb28dba9961ce7aa8ae5dc151362050d9e (patch) | |
| tree | 06ee8e5e516eeb12ee72d7e1e99e0840f2641459 /lib | |
| parent | 0566df2f79c7aae978bc0ef8e253cfcc4de54ecc (diff) | |
| parent | 24de22338522779c5d9e720c4b97dc8609136c29 (diff) | |
| download | sqlalchemy-cc5fd2fb28dba9961ce7aa8ae5dc151362050d9e.tar.gz | |
Merge "apply literal value resolution to String" into main
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sqlalchemy/sql/sqltypes.py | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql/sqltypes.py b/lib/sqlalchemy/sql/sqltypes.py index 42fad5e04..575f402c3 100644 --- a/lib/sqlalchemy/sql/sqltypes.py +++ b/lib/sqlalchemy/sql/sqltypes.py @@ -184,6 +184,15 @@ class String(Concatenable, TypeEngine[typing_Text]): self.length = length self.collation = collation + def _resolve_for_literal(self, value): + # I was SO PROUD of my regex trick, but we dont need it. + # re.search(r"[^\u0000-\u007F]", value) + + if value.isascii(): + return _STRING + else: + return _UNICODE + def literal_processor(self, dialect): def process(value): value = value.replace("'", "''") @@ -3019,6 +3028,10 @@ MATCHTYPE = MatchType() TABLEVALUE = TableValueType() DATETIME_TIMEZONE = DateTime(timezone=True) TIME_TIMEZONE = Time(timezone=True) +_DATETIME = DateTime() +_TIME = Time() +_STRING = String() +_UNICODE = Unicode() _type_map = { int: Integer(), @@ -3026,12 +3039,12 @@ _type_map = { bool: BOOLEANTYPE, decimal.Decimal: Numeric(), dt.date: Date(), - dt.datetime: DateTime(), - dt.time: Time(), + dt.datetime: _DATETIME, + dt.time: _TIME, dt.timedelta: Interval(), util.NoneType: NULLTYPE, bytes: LargeBinary(), - str: Unicode(), + str: _STRING, } |
