1414- information_schema: 11323
1515"""
1616
17+ from iris_pgwire .schema_mapper import IRIS_SCHEMA
1718import hashlib
1819from dataclasses import dataclass
1920from typing import Literal
2021
21- ObjectType = Literal [
22- "namespace" , "table" , "column" , "constraint" , "index" , "type" , "default"
23- ]
22+ ObjectType = Literal ["namespace" , "table" , "column" , "constraint" , "index" , "type" , "default" ]
2423
2524
2625@dataclass
2726class ObjectIdentity :
2827 """Identity tuple for OID generation."""
2928
30- namespace : str # Schema name (e.g., 'SQLUser')
31- object_type : ObjectType # Object category
3229 object_name : str # Fully qualified name (e.g., 'users' or 'users.id')
30+ namespace : str = IRIS_SCHEMA # Schema name (e.g., '{IRIS_SCHEMA}')
31+ object_type : ObjectType = "table" # Object category
3332
3433 @property
3534 def identity_string (self ) -> str :
@@ -46,8 +45,8 @@ class OIDGenerator:
4645
4746 Usage:
4847 gen = OIDGenerator()
49- table_oid = gen.get_oid('SQLUser ', 'table', 'users')
50- column_oid = gen.get_oid('SQLUser ', 'column', 'users.id')
48+ table_oid = gen.get_oid('{IRIS_SCHEMA} ', 'table', 'users')
49+ column_oid = gen.get_oid('{IRIS_SCHEMA} ', 'column', 'users.id')
5150 """
5251
5352 # Well-known namespace OIDs (match PostgreSQL)
@@ -65,14 +64,14 @@ def __init__(self):
6564 """Initialize OID generator with empty cache."""
6665 self ._cache : dict [str , int ] = {}
6766
68- def get_oid (self , namespace : str , object_type : str , object_name : str ) -> int :
67+ def get_oid (self , object_type : str , object_name : str , namespace : str = IRIS_SCHEMA ) -> int :
6968 """
7069 Generate deterministic OID for an object.
7170
7271 Args:
73- namespace: Schema name (e.g., 'SQLUser')
7472 object_type: Object category ('table', 'column', 'constraint', etc.)
7573 object_name: Object name (e.g., 'users' or 'users.id' for columns)
74+ namespace: Schema name (e.g., '{IRIS_SCHEMA}')
7675
7776 Returns:
7877 Deterministic OID in user range (>= 16384)
@@ -95,7 +94,7 @@ def get_oid_from_identity(self, identity: ObjectIdentity) -> int:
9594 Returns:
9695 Deterministic OID
9796 """
98- return self .get_oid (identity .namespace , identity .object_type , identity .object_name )
97+ return self .get_oid (identity .object_type , identity .object_name , identity .namespace )
9998
10099 def _generate_oid (self , identity_string : str ) -> int :
101100 """
@@ -141,57 +140,57 @@ def get_namespace_oid(self, namespace: str) -> int:
141140 return self .WELL_KNOWN_NAMESPACES [ns_lower ]
142141
143142 # Generate OID for custom namespace
144- return self .get_oid ("" , " namespace" , namespace )
143+ return self .get_oid ("namespace " , namespace , "" )
145144
146- def get_table_oid (self , schema : str , table_name : str ) -> int :
145+ def get_table_oid (self , table_name : str , schema : str = IRIS_SCHEMA ) -> int :
147146 """
148147 Convenience method to get OID for a table.
149148
150149 Args:
151- schema: Schema name (e.g., 'SQLUser')
152150 table_name: Table name (e.g., 'users')
151+ schema: Schema name (e.g., '{IRIS_SCHEMA}')
153152
154153 Returns:
155154 Table OID
156155 """
157- return self .get_oid (schema , "table" , table_name )
156+ return self .get_oid ("table" , table_name , schema )
158157
159- def get_column_oid (self , schema : str , table_name : str , column_name : str ) -> int :
158+ def get_column_oid (self , table_name : str , column_name : str , schema : str = IRIS_SCHEMA ) -> int :
160159 """
161160 Convenience method to get OID for a column.
162161
163162 Args:
164- schema: Schema name
165163 table_name: Table name
166164 column_name: Column name
165+ schema: Schema name
167166
168167 Returns:
169168 Column OID
170169 """
171- return self .get_oid (schema , "column" , f"{ table_name } .{ column_name } " )
170+ return self .get_oid ("column" , f"{ table_name } .{ column_name } " , schema )
172171
173- def get_constraint_oid (self , schema : str , constraint_name : str ) -> int :
172+ def get_constraint_oid (self , constraint_name : str , schema : str = IRIS_SCHEMA ) -> int :
174173 """
175174 Convenience method to get OID for a constraint.
176175
177176 Args:
178- schema: Schema name
179177 constraint_name: Constraint name
178+ schema: Schema name
180179
181180 Returns:
182181 Constraint OID
183182 """
184- return self .get_oid (schema , "constraint" , constraint_name )
183+ return self .get_oid ("constraint" , constraint_name , schema )
185184
186- def get_index_oid (self , schema : str , index_name : str ) -> int :
185+ def get_index_oid (self , index_name : str , schema : str = IRIS_SCHEMA ) -> int :
187186 """
188187 Convenience method to get OID for an index.
189188
190189 Args:
191- schema: Schema name
192190 index_name: Index name
191+ schema: Schema name
193192
194193 Returns:
195194 Index OID
196195 """
197- return self .get_oid (schema , "index" , index_name )
196+ return self .get_oid ("index" , index_name , schema )
0 commit comments