LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
lsst.dax.apdb.sql.modelToSql.GUID Class Reference
Inheritance diagram for lsst.dax.apdb.sql.modelToSql.GUID:

Public Member Functions

sqlalchemy.types.TypeEngine load_dialect_impl (self, sqlalchemy.engine.Dialect dialect)
 
str|None process_bind_param (self, Any value, sqlalchemy.engine.Dialect dialect)
 
uuid.UUID|None process_result_value (self, str|uuid.UUID|None value, sqlalchemy.engine.Dialect dialect)
 

Static Public Attributes

 impl = sqlalchemy.CHAR
 
bool cache_ok = True
 

Detailed Description

Platform-independent GUID type.

Uses PostgreSQL's UUID type, otherwise uses CHAR(32), storing as
stringified hex values.

Definition at line 40 of file modelToSql.py.

Member Function Documentation

◆ load_dialect_impl()

sqlalchemy.types.TypeEngine lsst.dax.apdb.sql.modelToSql.GUID.load_dialect_impl ( self,
sqlalchemy.engine.Dialect dialect )

Definition at line 51 of file modelToSql.py.

51 def load_dialect_impl(self, dialect: sqlalchemy.engine.Dialect) -> sqlalchemy.types.TypeEngine:
52 if dialect.name == "postgresql":
53 return dialect.type_descriptor(UUID())
54 else:
55 return dialect.type_descriptor(sqlalchemy.CHAR(32))
56

◆ process_bind_param()

str | None lsst.dax.apdb.sql.modelToSql.GUID.process_bind_param ( self,
Any value,
sqlalchemy.engine.Dialect dialect )

Definition at line 57 of file modelToSql.py.

57 def process_bind_param(self, value: Any, dialect: sqlalchemy.engine.Dialect) -> str | None:
58 if value is None:
59 return value
60
61 # Coerce input to UUID type, in general having UUID on input is the
62 # only thing that we want but there is code right now that uses ints.
63 if isinstance(value, int):
64 value = uuid.UUID(int=value)
65 elif isinstance(value, bytes):
66 value = uuid.UUID(bytes=value)
67 elif isinstance(value, str):
68 # hexstring
69 value = uuid.UUID(hex=value)
70 elif not isinstance(value, uuid.UUID):
71 raise TypeError(f"Unexpected type of a bind value: {type(value)}")
72
73 if dialect.name == "postgresql":
74 return str(value)
75 else:
76 return "%.32x" % value.int
77

◆ process_result_value()

uuid.UUID | None lsst.dax.apdb.sql.modelToSql.GUID.process_result_value ( self,
str | uuid.UUID | None value,
sqlalchemy.engine.Dialect dialect )

Definition at line 78 of file modelToSql.py.

80 ) -> uuid.UUID | None:
81 if value is None:
82 return value
83 elif isinstance(value, uuid.UUID):
84 # sqlalchemy 2 converts to UUID internally
85 return value
86 else:
87 return uuid.UUID(hex=value)
88
89

Member Data Documentation

◆ cache_ok

bool lsst.dax.apdb.sql.modelToSql.GUID.cache_ok = True
static

Definition at line 49 of file modelToSql.py.

◆ impl

lsst.dax.apdb.sql.modelToSql.GUID.impl = sqlalchemy.CHAR
static

Definition at line 47 of file modelToSql.py.


The documentation for this class was generated from the following file: