LSST Applications g0265f82a02+c6dfa2ddaf,g1162b98a3f+ffe7eabc7e,g2079a07aa2+1b2e822518,g2bbee38e9b+c6dfa2ddaf,g337abbeb29+c6dfa2ddaf,g36da64cc00+ea84795170,g3ddfee87b4+955a963fd8,g50ff169b8f+2eb0e556e8,g52b1c1532d+90ebb246c7,g555ede804d+955a963fd8,g591dd9f2cf+bac198a2cb,g5ec818987f+420292cfeb,g858d7b2824+d6c9a0a3b8,g876c692160+aabc49a3c3,g8a8a8dda67+90ebb246c7,g8cdfe0ae6a+4fd9e222a8,g99cad8db69+e6cd765486,g9ddcbc5298+a1346535a5,ga1e77700b3+df8f93165b,ga8c6da7877+acd47f83f4,gae46bcf261+c6dfa2ddaf,gb0e22166c9+8634eb87fb,gb3f2274832+12c8382528,gba4ed39666+1ac82b564f,gbb8dafda3b+0574160a1f,gbeb006f7da+dea2fbb49f,gc28159a63d+c6dfa2ddaf,gc86a011abf+d6c9a0a3b8,gcf0d15dbbd+955a963fd8,gdaeeff99f8+1cafcb7cd4,gdc0c513512+d6c9a0a3b8,ge79ae78c31+c6dfa2ddaf,geb67518f79+ba1859f325,gee10cc3b42+90ebb246c7,gf1cff7945b+d6c9a0a3b8,w.2024.13
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
lsst.dax.apdb.apdbSqlSchema.GUID Class Reference
Inheritance diagram for lsst.dax.apdb.apdbSqlSchema.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 60 of file apdbSqlSchema.py.

Member Function Documentation

◆ load_dialect_impl()

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

Definition at line 71 of file apdbSqlSchema.py.

71 def load_dialect_impl(self, dialect: sqlalchemy.engine.Dialect) -> sqlalchemy.types.TypeEngine:
72 if dialect.name == "postgresql":
73 return dialect.type_descriptor(UUID())
74 else:
75 return dialect.type_descriptor(sqlalchemy.CHAR(32))
76

◆ process_bind_param()

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

Definition at line 77 of file apdbSqlSchema.py.

77 def process_bind_param(self, value: Any, dialect: sqlalchemy.engine.Dialect) -> str | None:
78 if value is None:
79 return value
80
81 # Coerce input to UUID type, in general having UUID on input is the
82 # only thing that we want but there is code right now that uses ints.
83 if isinstance(value, int):
84 value = uuid.UUID(int=value)
85 elif isinstance(value, bytes):
86 value = uuid.UUID(bytes=value)
87 elif isinstance(value, str):
88 # hexstring
89 value = uuid.UUID(hex=value)
90 elif not isinstance(value, uuid.UUID):
91 raise TypeError(f"Unexpected type of a bind value: {type(value)}")
92
93 if dialect.name == "postgresql":
94 return str(value)
95 else:
96 return "%.32x" % value.int
97

◆ process_result_value()

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

Definition at line 98 of file apdbSqlSchema.py.

100 ) -> uuid.UUID | None:
101 if value is None:
102 return value
103 elif isinstance(value, uuid.UUID):
104 # sqlalchemy 2 converts to UUID internally
105 return value
106 else:
107 return uuid.UUID(hex=value)
108
109

Member Data Documentation

◆ cache_ok

bool lsst.dax.apdb.apdbSqlSchema.GUID.cache_ok = True
static

Definition at line 69 of file apdbSqlSchema.py.

◆ impl

lsst.dax.apdb.apdbSqlSchema.GUID.impl = sqlalchemy.CHAR
static

Definition at line 67 of file apdbSqlSchema.py.


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