Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/pg_catalog.py: 90%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

77 statements  

1# dialects/postgresql/pg_catalog.py 

2# Copyright (C) 2005-2026 the SQLAlchemy authors and contributors 

3# <see AUTHORS file> 

4# 

5# This module is part of SQLAlchemy and is released under 

6# the MIT License: https://www.opensource.org/licenses/mit-license.php 

7 

8from __future__ import annotations 

9 

10from typing import Any 

11from typing import Optional 

12from typing import Sequence 

13from typing import TYPE_CHECKING 

14 

15from .array import ARRAY 

16from .types import OID 

17from .types import REGCLASS 

18from ... import Column 

19from ... import func 

20from ... import MetaData 

21from ... import Table 

22from ...types import BigInteger 

23from ...types import Boolean 

24from ...types import CHAR 

25from ...types import Float 

26from ...types import Integer 

27from ...types import SmallInteger 

28from ...types import String 

29from ...types import Text 

30from ...types import TypeDecorator 

31 

32if TYPE_CHECKING: 

33 from ...engine.interfaces import Dialect 

34 from ...sql.type_api import _ResultProcessorType 

35 

36 

37# types 

38class NAME(TypeDecorator[str]): 

39 impl = String(64, collation="C") 

40 cache_ok = True 

41 

42 

43class PG_NODE_TREE(TypeDecorator[str]): 

44 impl = Text(collation="C") 

45 cache_ok = True 

46 

47 

48class INT2VECTOR(TypeDecorator[Sequence[int]]): 

49 impl = ARRAY(SmallInteger) 

50 cache_ok = True 

51 

52 

53class OIDVECTOR(TypeDecorator[Sequence[int]]): 

54 impl = ARRAY(OID) 

55 cache_ok = True 

56 

57 

58class _SpaceVector: 

59 def result_processor( 

60 self, dialect: Dialect, coltype: object 

61 ) -> _ResultProcessorType[list[int]]: 

62 def process(value: Any) -> Optional[list[int]]: 

63 if value is None: 

64 return value 

65 return [int(p) for p in value.split(" ")] 

66 

67 return process 

68 

69 

70REGPROC = REGCLASS # seems an alias 

71 

72# functions 

73_pg_cat = func.pg_catalog 

74quote_ident = _pg_cat.quote_ident 

75pg_table_is_visible = _pg_cat.pg_table_is_visible 

76pg_type_is_visible = _pg_cat.pg_type_is_visible 

77pg_collation_is_visible = _pg_cat.pg_collation_is_visible 

78pg_get_viewdef = _pg_cat.pg_get_viewdef 

79pg_get_serial_sequence = _pg_cat.pg_get_serial_sequence 

80format_type = _pg_cat.format_type 

81pg_get_expr = _pg_cat.pg_get_expr 

82pg_get_constraintdef = _pg_cat.pg_get_constraintdef 

83pg_get_indexdef = _pg_cat.pg_get_indexdef 

84 

85# constants 

86RELKINDS_TABLE_NO_FOREIGN = ("r", "p") 

87RELKINDS_TABLE = RELKINDS_TABLE_NO_FOREIGN + ("f",) 

88RELKINDS_VIEW = ("v",) 

89RELKINDS_MAT_VIEW = ("m",) 

90RELKINDS_ALL_TABLE_LIKE = RELKINDS_TABLE + RELKINDS_VIEW + RELKINDS_MAT_VIEW 

91 

92# tables 

93pg_catalog_meta = MetaData(schema="pg_catalog") 

94 

95pg_namespace = Table( 

96 "pg_namespace", 

97 pg_catalog_meta, 

98 Column("oid", OID), 

99 Column("nspname", NAME), 

100 Column("nspowner", OID), 

101) 

102 

103pg_class = Table( 

104 "pg_class", 

105 pg_catalog_meta, 

106 Column("oid", OID, info={"server_version": (9, 3)}), 

107 Column("relname", NAME), 

108 Column("relnamespace", OID), 

109 Column("reltype", OID), 

110 Column("reloftype", OID), 

111 Column("relowner", OID), 

112 Column("relam", OID), 

113 Column("relfilenode", OID), 

114 Column("reltablespace", OID), 

115 Column("relpages", Integer), 

116 Column("reltuples", Float), 

117 Column("relallvisible", Integer, info={"server_version": (9, 2)}), 

118 Column("reltoastrelid", OID), 

119 Column("relhasindex", Boolean), 

120 Column("relisshared", Boolean), 

121 Column("relpersistence", CHAR, info={"server_version": (9, 1)}), 

122 Column("relkind", CHAR), 

123 Column("relnatts", SmallInteger), 

124 Column("relchecks", SmallInteger), 

125 Column("relhasrules", Boolean), 

126 Column("relhastriggers", Boolean), 

127 Column("relhassubclass", Boolean), 

128 Column("relrowsecurity", Boolean), 

129 Column("relforcerowsecurity", Boolean, info={"server_version": (9, 5)}), 

130 Column("relispopulated", Boolean, info={"server_version": (9, 3)}), 

131 Column("relreplident", CHAR, info={"server_version": (9, 4)}), 

132 Column("relispartition", Boolean, info={"server_version": (10,)}), 

133 Column("relrewrite", OID, info={"server_version": (11,)}), 

134 Column("reloptions", ARRAY(Text)), 

135) 

136 

137pg_type = Table( 

138 "pg_type", 

139 pg_catalog_meta, 

140 Column("oid", OID, info={"server_version": (9, 3)}), 

141 Column("typname", NAME), 

142 Column("typnamespace", OID), 

143 Column("typowner", OID), 

144 Column("typlen", SmallInteger), 

145 Column("typbyval", Boolean), 

146 Column("typtype", CHAR), 

147 Column("typcategory", CHAR), 

148 Column("typispreferred", Boolean), 

149 Column("typisdefined", Boolean), 

150 Column("typdelim", CHAR), 

151 Column("typrelid", OID), 

152 Column("typelem", OID), 

153 Column("typarray", OID), 

154 Column("typinput", REGPROC), 

155 Column("typoutput", REGPROC), 

156 Column("typreceive", REGPROC), 

157 Column("typsend", REGPROC), 

158 Column("typmodin", REGPROC), 

159 Column("typmodout", REGPROC), 

160 Column("typanalyze", REGPROC), 

161 Column("typalign", CHAR), 

162 Column("typstorage", CHAR), 

163 Column("typnotnull", Boolean), 

164 Column("typbasetype", OID), 

165 Column("typtypmod", Integer), 

166 Column("typndims", Integer), 

167 Column("typcollation", OID, info={"server_version": (9, 1)}), 

168 Column("typdefault", Text), 

169) 

170 

171pg_index = Table( 

172 "pg_index", 

173 pg_catalog_meta, 

174 Column("indexrelid", OID), 

175 Column("indrelid", OID), 

176 Column("indnatts", SmallInteger), 

177 Column("indnkeyatts", SmallInteger, info={"server_version": (11,)}), 

178 Column("indisunique", Boolean), 

179 Column("indnullsnotdistinct", Boolean, info={"server_version": (15,)}), 

180 Column("indisprimary", Boolean), 

181 Column("indisexclusion", Boolean, info={"server_version": (9, 1)}), 

182 Column("indimmediate", Boolean), 

183 Column("indisclustered", Boolean), 

184 Column("indisvalid", Boolean), 

185 Column("indcheckxmin", Boolean), 

186 Column("indisready", Boolean), 

187 Column("indislive", Boolean, info={"server_version": (9, 3)}), # 9.3 

188 Column("indisreplident", Boolean), 

189 Column("indkey", INT2VECTOR), 

190 Column("indcollation", OIDVECTOR, info={"server_version": (9, 1)}), # 9.1 

191 Column("indclass", OIDVECTOR), 

192 Column("indoption", INT2VECTOR), 

193 Column("indexprs", PG_NODE_TREE), 

194 Column("indpred", PG_NODE_TREE), 

195) 

196 

197pg_attribute = Table( 

198 "pg_attribute", 

199 pg_catalog_meta, 

200 Column("attrelid", OID), 

201 Column("attname", NAME), 

202 Column("atttypid", OID), 

203 Column("attstattarget", Integer), 

204 Column("attlen", SmallInteger), 

205 Column("attnum", SmallInteger), 

206 Column("attndims", Integer), 

207 Column("attcacheoff", Integer), 

208 Column("atttypmod", Integer), 

209 Column("attbyval", Boolean), 

210 Column("attstorage", CHAR), 

211 Column("attalign", CHAR), 

212 Column("attnotnull", Boolean), 

213 Column("atthasdef", Boolean), 

214 Column("atthasmissing", Boolean, info={"server_version": (11,)}), 

215 Column("attidentity", CHAR, info={"server_version": (10,)}), 

216 Column("attgenerated", CHAR, info={"server_version": (12,)}), 

217 Column("attisdropped", Boolean), 

218 Column("attislocal", Boolean), 

219 Column("attinhcount", Integer), 

220 Column("attcollation", OID, info={"server_version": (9, 1)}), 

221) 

222 

223pg_constraint = Table( 

224 "pg_constraint", 

225 pg_catalog_meta, 

226 Column("oid", OID), # 9.3 

227 Column("conname", NAME), 

228 Column("connamespace", OID), 

229 Column("contype", CHAR), 

230 Column("condeferrable", Boolean), 

231 Column("condeferred", Boolean), 

232 Column("convalidated", Boolean, info={"server_version": (9, 1)}), 

233 Column("conrelid", OID), 

234 Column("contypid", OID), 

235 Column("conindid", OID), 

236 Column("conparentid", OID, info={"server_version": (11,)}), 

237 Column("confrelid", OID), 

238 Column("confupdtype", CHAR), 

239 Column("confdeltype", CHAR), 

240 Column("confmatchtype", CHAR), 

241 Column("conislocal", Boolean), 

242 Column("coninhcount", Integer), 

243 Column("connoinherit", Boolean, info={"server_version": (9, 2)}), 

244 Column("conkey", ARRAY(SmallInteger)), 

245 Column("confkey", ARRAY(SmallInteger)), 

246) 

247 

248pg_sequence = Table( 

249 "pg_sequence", 

250 pg_catalog_meta, 

251 Column("seqrelid", OID), 

252 Column("seqtypid", OID), 

253 Column("seqstart", BigInteger), 

254 Column("seqincrement", BigInteger), 

255 Column("seqmax", BigInteger), 

256 Column("seqmin", BigInteger), 

257 Column("seqcache", BigInteger), 

258 Column("seqcycle", Boolean), 

259 info={"server_version": (10,)}, 

260) 

261 

262pg_attrdef = Table( 

263 "pg_attrdef", 

264 pg_catalog_meta, 

265 Column("oid", OID, info={"server_version": (9, 3)}), 

266 Column("adrelid", OID), 

267 Column("adnum", SmallInteger), 

268 Column("adbin", PG_NODE_TREE), 

269) 

270 

271pg_description = Table( 

272 "pg_description", 

273 pg_catalog_meta, 

274 Column("objoid", OID), 

275 Column("classoid", OID), 

276 Column("objsubid", Integer), 

277 Column("description", Text(collation="C")), 

278) 

279 

280pg_enum = Table( 

281 "pg_enum", 

282 pg_catalog_meta, 

283 Column("oid", OID, info={"server_version": (9, 3)}), 

284 Column("enumtypid", OID), 

285 Column("enumsortorder", Float(), info={"server_version": (9, 1)}), 

286 Column("enumlabel", NAME), 

287) 

288 

289pg_am = Table( 

290 "pg_am", 

291 pg_catalog_meta, 

292 Column("oid", OID, info={"server_version": (9, 3)}), 

293 Column("amname", NAME), 

294 Column("amhandler", REGPROC, info={"server_version": (9, 6)}), 

295 Column("amtype", CHAR, info={"server_version": (9, 6)}), 

296) 

297 

298pg_collation = Table( 

299 "pg_collation", 

300 pg_catalog_meta, 

301 Column("oid", OID, info={"server_version": (9, 3)}), 

302 Column("collname", NAME), 

303 Column("collnamespace", OID), 

304 Column("collowner", OID), 

305 Column("collprovider", CHAR, info={"server_version": (10,)}), 

306 Column("collisdeterministic", Boolean, info={"server_version": (12,)}), 

307 Column("collencoding", Integer), 

308 Column("collcollate", Text), 

309 Column("collctype", Text), 

310 Column("colliculocale", Text), 

311 Column("collicurules", Text, info={"server_version": (16,)}), 

312 Column("collversion", Text, info={"server_version": (10,)}), 

313) 

314 

315pg_opclass = Table( 

316 "pg_opclass", 

317 pg_catalog_meta, 

318 Column("oid", OID, info={"server_version": (9, 3)}), 

319 Column("opcmethod", NAME), 

320 Column("opcname", NAME), 

321 Column("opsnamespace", OID), 

322 Column("opsowner", OID), 

323 Column("opcfamily", OID), 

324 Column("opcintype", OID), 

325 Column("opcdefault", Boolean), 

326 Column("opckeytype", OID), 

327) 

328 

329pg_inherits = Table( 

330 "pg_inherits", 

331 pg_catalog_meta, 

332 Column("inhrelid", OID), 

333 Column("inhparent", OID), 

334 Column("inhseqno", Integer), 

335 Column("inhdetachpending", Boolean, info={"server_version": (14,)}), 

336) 

337 

338pg_tablespace = Table( 

339 "pg_tablespace", 

340 pg_catalog_meta, 

341 Column("oid", OID), 

342 Column("spcname", NAME), 

343 Column("spcowner", OID), 

344 Column("spcoptions", ARRAY(Text)), 

345)