github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/opt/xform/testdata/external/nova (about) 1 # Correlated subquery cases derived from OpenStack Compute (nova): 2 # https://github.com/openstack/nova 3 4 exec-ddl 5 create table flavors 6 ( 7 id Integer primary key, 8 name String(255) not null, 9 memory_mb Integer not null, 10 vcpus Integer not null, 11 root_gb Integer, 12 ephemeral_gb Integer, 13 flavorid String(255) not null, 14 swap Integer default 0 not null, 15 rxtx_factor Float default 1, 16 vcpu_weight Integer, 17 disabled Boolean default false, 18 is_public Boolean default true, 19 description Text, 20 created_at Timestamp, 21 updated_at Timestamp, 22 unique (flavorid), 23 unique (name) 24 ) 25 ---- 26 27 exec-ddl 28 create table flavor_projects 29 ( 30 id Integer primary key, 31 flavor_id Integer not null, 32 project_id String(255) not null, 33 created_at Timestamp, 34 updated_at Timestamp, 35 foreign key (flavor_id) references flavors (id), 36 unique (flavor_id, project_id) 37 ) 38 ---- 39 40 exec-ddl 41 create table flavor_extra_specs 42 ( 43 id Integer primary key, 44 key String(255) not null, 45 value String(255), 46 flavor_id Integer not null, 47 created_at Timestamp, 48 updated_at Timestamp, 49 foreign key (flavor_id) references flavors (id), 50 unique index flavor_extra_specs_flavor_id_key_idx (flavor_id, key) 51 ) 52 ---- 53 54 exec-ddl 55 create table instance_types 56 ( 57 id Integer primary key, 58 name String(255), 59 memory_mb Integer not null, 60 vcpus Integer not null, 61 root_gb Integer, 62 ephemeral_gb Integer, 63 flavorid String(255), 64 swap Integer not null default 0, 65 rxtx_factor Float default 1, 66 vcpu_weight Integer, 67 disabled Boolean default False, 68 is_public Boolean default True, 69 deleted Boolean, 70 deleted_at Timestamp, 71 created_at Timestamp, 72 updated_at Timestamp, 73 unique (flavorid, deleted), 74 unique (name, deleted) 75 ) 76 ---- 77 78 exec-ddl 79 create table instance_type_projects 80 ( 81 id Integer primary key, 82 instance_type_id Integer not null, 83 project_id String(255), 84 deleted Boolean, 85 deleted_at Timestamp, 86 created_at Timestamp, 87 updated_at Timestamp, 88 foreign key (instance_type_id) references instance_types (id), 89 unique (instance_type_id, project_id, deleted) 90 ) 91 ---- 92 93 exec-ddl 94 create table instance_type_extra_specs 95 ( 96 id Integer primary key, 97 key String(255), 98 value String(255), 99 instance_type_id Integer not null, 100 deleted Boolean, 101 deleted_at Timestamp, 102 created_at Timestamp, 103 updated_at Timestamp, 104 foreign key (instance_type_id) references instance_types (id), 105 index instance_type_extra_specs_instance_type_id_key_idx (instance_type_id, key), 106 unique (instance_type_id, key, deleted) 107 ) 108 ---- 109 110 opt 111 select anon_1.flavors_created_at as anon_1_flavors_created_at, 112 anon_1.flavors_updated_at as anon_1_flavors_updated_at, 113 anon_1.flavors_id as anon_1_flavors_id, 114 anon_1.flavors_name as anon_1_flavors_name, 115 anon_1.flavors_memory_mb as anon_1_flavors_memory_mb, 116 anon_1.flavors_vcpus as anon_1_flavors_vcpus, 117 anon_1.flavors_root_gb as anon_1_flavors_root_gb, 118 anon_1.flavors_ephemeral_gb as anon_1_flavors_ephemeral_gb, 119 anon_1.flavors_flavorid as anon_1_flavors_flavorid, 120 anon_1.flavors_swap as anon_1_flavors_swap, 121 anon_1.flavors_rxtx_factor as anon_1_flavors_rxtx_factor, 122 anon_1.flavors_vcpu_weight as anon_1_flavors_vcpu_weight, 123 anon_1.flavors_disabled as anon_1_flavors_disabled, 124 anon_1.flavors_is_public as anon_1_flavors_is_public, 125 flavor_extra_specs_1.created_at as flavor_extra_specs_1_created_at, 126 flavor_extra_specs_1.updated_at as flavor_extra_specs_1_updated_at, 127 flavor_extra_specs_1.id as flavor_extra_specs_1_id, 128 flavor_extra_specs_1."key" as flavor_extra_specs_1_key, 129 flavor_extra_specs_1.value as flavor_extra_specs_1_value, 130 flavor_extra_specs_1.flavor_id as flavor_extra_specs_1_flavor_id 131 from (select flavors.created_at as flavors_created_at, 132 flavors.updated_at as flavors_updated_at, 133 flavors.id as flavors_id, 134 flavors.name as flavors_name, 135 flavors.memory_mb as flavors_memory_mb, 136 flavors.vcpus as flavors_vcpus, 137 flavors.root_gb as flavors_root_gb, 138 flavors.ephemeral_gb as flavors_ephemeral_gb, 139 flavors.flavorid as flavors_flavorid, 140 flavors.swap as flavors_swap, 141 flavors.rxtx_factor as flavors_rxtx_factor, 142 flavors.vcpu_weight as flavors_vcpu_weight, 143 flavors.disabled as flavors_disabled, 144 flavors.is_public as flavors_is_public 145 from flavors 146 where (flavors.is_public = true 147 or (exists (select 1 148 from flavor_projects 149 where flavor_projects.flavor_id = flavors.id 150 and flavor_projects.project_id = $1))) 151 and flavors.flavorid = $2 152 order by flavors.id asc 153 offset $3 rows 154 limit $4) 155 as anon_1 156 left join flavor_extra_specs as flavor_extra_specs_1 157 on flavor_extra_specs_1.flavor_id = anon_1.flavors_id 158 order by anon_1.flavors_id asc 159 ---- 160 project 161 ├── columns: anon_1_flavors_created_at:14 anon_1_flavors_updated_at:15 anon_1_flavors_id:1!null anon_1_flavors_name:2!null anon_1_flavors_memory_mb:3!null anon_1_flavors_vcpus:4!null anon_1_flavors_root_gb:5 anon_1_flavors_ephemeral_gb:6 anon_1_flavors_flavorid:7!null anon_1_flavors_swap:8!null anon_1_flavors_rxtx_factor:9 anon_1_flavors_vcpu_weight:10 anon_1_flavors_disabled:11 anon_1_flavors_is_public:12 flavor_extra_specs_1_created_at:29 flavor_extra_specs_1_updated_at:30 flavor_extra_specs_1_id:25 flavor_extra_specs_1_key:26 flavor_extra_specs_1_value:27 flavor_extra_specs_1_flavor_id:28 162 ├── immutable, side-effects, has-placeholder 163 ├── key: (1,25) 164 ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 165 ├── ordering: +1 166 └── left-join (merge) 167 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 flavor_extra_specs_1.id:25 key:26 value:27 flavor_extra_specs_1.flavor_id:28 flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 168 ├── left ordering: +1 169 ├── right ordering: +28 170 ├── immutable, side-effects, has-placeholder 171 ├── key: (1,25) 172 ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 173 ├── ordering: +1 174 ├── limit 175 │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 176 │ ├── internal-ordering: +1 177 │ ├── immutable, side-effects, has-placeholder 178 │ ├── key: (1) 179 │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 180 │ ├── ordering: +1 181 │ ├── offset 182 │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 183 │ │ ├── internal-ordering: +1 184 │ │ ├── has-placeholder 185 │ │ ├── key: (1) 186 │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 187 │ │ ├── ordering: +1 188 │ │ ├── select 189 │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 190 │ │ │ ├── has-placeholder 191 │ │ │ ├── key: (1) 192 │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 193 │ │ │ ├── ordering: +1 194 │ │ │ ├── group-by 195 │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 196 │ │ │ │ ├── grouping columns: flavors.id:1!null 197 │ │ │ │ ├── has-placeholder 198 │ │ │ │ ├── key: (1) 199 │ │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 200 │ │ │ │ ├── ordering: +1 201 │ │ │ │ ├── left-join (merge) 202 │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_projects.flavor_id:17 true:22 203 │ │ │ │ │ ├── left ordering: +1 204 │ │ │ │ │ ├── right ordering: +17 205 │ │ │ │ │ ├── has-placeholder 206 │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 207 │ │ │ │ │ ├── ordering: +1 208 │ │ │ │ │ ├── select 209 │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 210 │ │ │ │ │ │ ├── has-placeholder 211 │ │ │ │ │ │ ├── key: (1) 212 │ │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 213 │ │ │ │ │ │ ├── ordering: +1 214 │ │ │ │ │ │ ├── scan flavors 215 │ │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 216 │ │ │ │ │ │ │ ├── key: (1) 217 │ │ │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 218 │ │ │ │ │ │ │ └── ordering: +1 219 │ │ │ │ │ │ └── filters 220 │ │ │ │ │ │ └── flavorid:7 = $2 [outer=(7), constraints=(/7: (/NULL - ])] 221 │ │ │ │ │ ├── project 222 │ │ │ │ │ │ ├── columns: true:22!null flavor_projects.flavor_id:17!null 223 │ │ │ │ │ │ ├── has-placeholder 224 │ │ │ │ │ │ ├── fd: ()-->(22) 225 │ │ │ │ │ │ ├── ordering: +17 opt(22) [actual: +17] 226 │ │ │ │ │ │ ├── select 227 │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 228 │ │ │ │ │ │ │ ├── has-placeholder 229 │ │ │ │ │ │ │ ├── key: (17,18) 230 │ │ │ │ │ │ │ ├── ordering: +17 231 │ │ │ │ │ │ │ ├── scan flavor_projects@secondary 232 │ │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 233 │ │ │ │ │ │ │ │ ├── key: (17,18) 234 │ │ │ │ │ │ │ │ └── ordering: +17 235 │ │ │ │ │ │ │ └── filters 236 │ │ │ │ │ │ │ └── project_id:18 = $1 [outer=(18), constraints=(/18: (/NULL - ])] 237 │ │ │ │ │ │ └── projections 238 │ │ │ │ │ │ └── true [as=true:22] 239 │ │ │ │ │ └── filters (true) 240 │ │ │ │ └── aggregations 241 │ │ │ │ ├── const-not-null-agg [as=true_agg:23, outer=(22)] 242 │ │ │ │ │ └── true:22 243 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 244 │ │ │ │ │ └── name:2 245 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 246 │ │ │ │ │ └── memory_mb:3 247 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 248 │ │ │ │ │ └── vcpus:4 249 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 250 │ │ │ │ │ └── root_gb:5 251 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 252 │ │ │ │ │ └── ephemeral_gb:6 253 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 254 │ │ │ │ │ └── flavorid:7 255 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 256 │ │ │ │ │ └── swap:8 257 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 258 │ │ │ │ │ └── rxtx_factor:9 259 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 260 │ │ │ │ │ └── vcpu_weight:10 261 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 262 │ │ │ │ │ └── disabled:11 263 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 264 │ │ │ │ │ └── is_public:12 265 │ │ │ │ ├── const-agg [as=flavors.created_at:14, outer=(14)] 266 │ │ │ │ │ └── flavors.created_at:14 267 │ │ │ │ └── const-agg [as=flavors.updated_at:15, outer=(15)] 268 │ │ │ │ └── flavors.updated_at:15 269 │ │ │ └── filters 270 │ │ │ └── (is_public:12 = true) OR (true_agg:23 IS NOT NULL) [outer=(12,23)] 271 │ │ └── $3 272 │ └── $4 273 ├── sort 274 │ ├── columns: flavor_extra_specs_1.id:25!null key:26!null value:27 flavor_extra_specs_1.flavor_id:28!null flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 275 │ ├── key: (25) 276 │ ├── fd: (25)-->(26-30), (26,28)-->(25,27,29,30) 277 │ ├── ordering: +28 278 │ └── scan flavor_extra_specs_1 279 │ ├── columns: flavor_extra_specs_1.id:25!null key:26!null value:27 flavor_extra_specs_1.flavor_id:28!null flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 280 │ ├── key: (25) 281 │ └── fd: (25)-->(26-30), (26,28)-->(25,27,29,30) 282 └── filters (true) 283 284 opt 285 select anon_1.flavors_created_at as anon_1_flavors_created_at, 286 anon_1.flavors_updated_at as anon_1_flavors_updated_at, 287 anon_1.flavors_id as anon_1_flavors_id, 288 anon_1.flavors_name as anon_1_flavors_name, 289 anon_1.flavors_memory_mb as anon_1_flavors_memory_mb, 290 anon_1.flavors_vcpus as anon_1_flavors_vcpus, 291 anon_1.flavors_root_gb as anon_1_flavors_root_gb, 292 anon_1.flavors_ephemeral_gb as anon_1_flavors_ephemeral_gb, 293 anon_1.flavors_flavorid as anon_1_flavors_flavorid, 294 anon_1.flavors_swap as anon_1_flavors_swap, 295 anon_1.flavors_rxtx_factor as anon_1_flavors_rxtx_factor, 296 anon_1.flavors_vcpu_weight as anon_1_flavors_vcpu_weight, 297 anon_1.flavors_disabled as anon_1_flavors_disabled, 298 anon_1.flavors_is_public as anon_1_flavors_is_public, 299 flavor_extra_specs_1.created_at as flavor_extra_specs_1_created_at, 300 flavor_extra_specs_1.updated_at as flavor_extra_specs_1_updated_at, 301 flavor_extra_specs_1.id as flavor_extra_specs_1_id, 302 flavor_extra_specs_1."key" as flavor_extra_specs_1_key, 303 flavor_extra_specs_1.value as flavor_extra_specs_1_value, 304 flavor_extra_specs_1.flavor_id as flavor_extra_specs_1_flavor_id 305 from (select flavors.created_at as flavors_created_at, 306 flavors.updated_at as flavors_updated_at, 307 flavors.id as flavors_id, 308 flavors.name as flavors_name, 309 flavors.memory_mb as flavors_memory_mb, 310 flavors.vcpus as flavors_vcpus, 311 flavors.root_gb as flavors_root_gb, 312 flavors.ephemeral_gb as flavors_ephemeral_gb, 313 flavors.flavorid as flavors_flavorid, 314 flavors.swap as flavors_swap, 315 flavors.rxtx_factor as flavors_rxtx_factor, 316 flavors.vcpu_weight as flavors_vcpu_weight, 317 flavors.disabled as flavors_disabled, 318 flavors.is_public as flavors_is_public 319 from flavors 320 where (flavors.is_public = true 321 or (exists (select 1 322 from flavor_projects 323 where flavor_projects.flavor_id = flavors.id 324 and flavor_projects.project_id = $1))) 325 and flavors.disabled = false 326 and (flavors.is_public = true 327 or (exists (select 1 328 from flavor_projects 329 where flavor_projects.flavor_id = flavors.id 330 and flavor_projects.project_id = $2))) 331 order by flavors.flavorid asc, flavors.id asc 332 offset $3 rows 333 limit $4) 334 as anon_1 335 left join flavor_extra_specs as flavor_extra_specs_1 336 on flavor_extra_specs_1.flavor_id = anon_1.flavors_id 337 order by anon_1.flavors_flavorid asc, anon_1.flavors_id asc 338 ---- 339 sort 340 ├── columns: anon_1_flavors_created_at:14 anon_1_flavors_updated_at:15 anon_1_flavors_id:1!null anon_1_flavors_name:2!null anon_1_flavors_memory_mb:3!null anon_1_flavors_vcpus:4!null anon_1_flavors_root_gb:5 anon_1_flavors_ephemeral_gb:6 anon_1_flavors_flavorid:7!null anon_1_flavors_swap:8!null anon_1_flavors_rxtx_factor:9 anon_1_flavors_vcpu_weight:10 anon_1_flavors_disabled:11!null anon_1_flavors_is_public:12 flavor_extra_specs_1_created_at:38 flavor_extra_specs_1_updated_at:39 flavor_extra_specs_1_id:34 flavor_extra_specs_1_key:35 flavor_extra_specs_1_value:36 flavor_extra_specs_1_flavor_id:37 341 ├── immutable, side-effects, has-placeholder 342 ├── key: (1,34) 343 ├── fd: ()-->(11), (1)-->(2-10,12,14,15), (7)-->(1-6,8-10,12,14,15), (2)-->(1,3-10,12,14,15), (34)-->(35-39), (35,37)-->(34,36,38,39) 344 ├── ordering: +7 opt(11) [actual: +7] 345 └── project 346 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_extra_specs_1.id:34 key:35 value:36 flavor_extra_specs_1.flavor_id:37 flavor_extra_specs_1.created_at:38 flavor_extra_specs_1.updated_at:39 347 ├── immutable, side-effects, has-placeholder 348 ├── key: (1,34) 349 ├── fd: ()-->(11), (1)-->(2-10,12,14,15), (7)-->(1-6,8-10,12,14,15), (2)-->(1,3-10,12,14,15), (34)-->(35-39), (35,37)-->(34,36,38,39) 350 └── right-join (hash) 351 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:32 flavor_extra_specs_1.id:34 key:35 value:36 flavor_extra_specs_1.flavor_id:37 flavor_extra_specs_1.created_at:38 flavor_extra_specs_1.updated_at:39 352 ├── immutable, side-effects, has-placeholder 353 ├── key: (1,34) 354 ├── fd: ()-->(11), (1)-->(2-10,12,14,15,32), (7)-->(1-6,8-10,12,14,15), (2)-->(1,3-10,12,14,15), (34)-->(35-39), (35,37)-->(34,36,38,39) 355 ├── scan flavor_extra_specs_1 356 │ ├── columns: flavor_extra_specs_1.id:34!null key:35!null value:36 flavor_extra_specs_1.flavor_id:37!null flavor_extra_specs_1.created_at:38 flavor_extra_specs_1.updated_at:39 357 │ ├── key: (34) 358 │ └── fd: (34)-->(35-39), (35,37)-->(34,36,38,39) 359 ├── limit 360 │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:32 361 │ ├── internal-ordering: +7 opt(11) 362 │ ├── immutable, side-effects, has-placeholder 363 │ ├── key: (1) 364 │ ├── fd: ()-->(11), (1)-->(2-10,12,14,15,32), (7)-->(1-6,8-10,12,14,15), (2)-->(1,3-10,12,14,15) 365 │ ├── offset 366 │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:32 367 │ │ ├── internal-ordering: +7 opt(11) 368 │ │ ├── has-placeholder 369 │ │ ├── key: (1) 370 │ │ ├── fd: ()-->(11), (1)-->(2-10,12,14,15,32), (7)-->(1-6,8-10,12,14,15), (2)-->(1,3-10,12,14,15) 371 │ │ ├── ordering: +7 opt(11) [actual: +7] 372 │ │ ├── sort 373 │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:32 374 │ │ │ ├── has-placeholder 375 │ │ │ ├── key: (1) 376 │ │ │ ├── fd: ()-->(11), (1)-->(2-10,12,14,15,32), (7)-->(1-6,8-10,12,14,15), (2)-->(1,3-10,12,14,15) 377 │ │ │ ├── ordering: +7 opt(11) [actual: +7] 378 │ │ │ └── select 379 │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:32 380 │ │ │ ├── has-placeholder 381 │ │ │ ├── key: (1) 382 │ │ │ ├── fd: ()-->(11), (1)-->(2-10,12,14,15,32), (7)-->(1-6,8-10,12,14,15), (2)-->(1,3-10,12,14,15) 383 │ │ │ ├── group-by 384 │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:32 385 │ │ │ │ ├── grouping columns: flavors.id:1!null 386 │ │ │ │ ├── internal-ordering: +1 opt(11) 387 │ │ │ │ ├── has-placeholder 388 │ │ │ │ ├── key: (1) 389 │ │ │ │ ├── fd: ()-->(11), (1)-->(2-12,14,15,32), (7)-->(1-6,8-10,12,14,15), (2)-->(1,3-10,12,14,15) 390 │ │ │ │ ├── left-join (merge) 391 │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_projects.flavor_id:23 true_agg:29 true:31 392 │ │ │ │ │ ├── left ordering: +1 393 │ │ │ │ │ ├── right ordering: +23 394 │ │ │ │ │ ├── has-placeholder 395 │ │ │ │ │ ├── fd: ()-->(11), (1)-->(2-10,12,14,15,29), (7)-->(1-6,8-10,12,14,15), (2)-->(1,3-10,12,14,15) 396 │ │ │ │ │ ├── ordering: +1 opt(11) [actual: +1] 397 │ │ │ │ │ ├── select 398 │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:29 399 │ │ │ │ │ │ ├── has-placeholder 400 │ │ │ │ │ │ ├── key: (1) 401 │ │ │ │ │ │ ├── fd: ()-->(11), (1)-->(2-10,12,14,15,29), (7)-->(1-6,8-10,12,14,15), (2)-->(1,3-10,12,14,15) 402 │ │ │ │ │ │ ├── ordering: +1 opt(11) [actual: +1] 403 │ │ │ │ │ │ ├── group-by 404 │ │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:29 405 │ │ │ │ │ │ │ ├── grouping columns: flavors.id:1!null 406 │ │ │ │ │ │ │ ├── has-placeholder 407 │ │ │ │ │ │ │ ├── key: (1) 408 │ │ │ │ │ │ │ ├── fd: ()-->(11), (1)-->(2-12,14,15,29), (7)-->(1-6,8-10,12,14,15), (2)-->(1,3-10,12,14,15) 409 │ │ │ │ │ │ │ ├── ordering: +1 opt(11) [actual: +1] 410 │ │ │ │ │ │ │ ├── left-join (merge) 411 │ │ │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_projects.flavor_id:17 true:28 412 │ │ │ │ │ │ │ │ ├── left ordering: +1 413 │ │ │ │ │ │ │ │ ├── right ordering: +17 414 │ │ │ │ │ │ │ │ ├── has-placeholder 415 │ │ │ │ │ │ │ │ ├── fd: ()-->(11), (1)-->(2-10,12,14,15), (7)-->(1-6,8-10,12,14,15), (2)-->(1,3-10,12,14,15) 416 │ │ │ │ │ │ │ │ ├── ordering: +1 opt(11) [actual: +1] 417 │ │ │ │ │ │ │ │ ├── select 418 │ │ │ │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 flavors.created_at:14 flavors.updated_at:15 419 │ │ │ │ │ │ │ │ │ ├── key: (1) 420 │ │ │ │ │ │ │ │ │ ├── fd: ()-->(11), (1)-->(2-10,12,14,15), (7)-->(1-6,8-10,12,14,15), (2)-->(1,3-10,12,14,15) 421 │ │ │ │ │ │ │ │ │ ├── ordering: +1 opt(11) [actual: +1] 422 │ │ │ │ │ │ │ │ │ ├── scan flavors 423 │ │ │ │ │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 424 │ │ │ │ │ │ │ │ │ │ ├── key: (1) 425 │ │ │ │ │ │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 426 │ │ │ │ │ │ │ │ │ │ └── ordering: +1 opt(11) [actual: +1] 427 │ │ │ │ │ │ │ │ │ └── filters 428 │ │ │ │ │ │ │ │ │ └── disabled:11 = false [outer=(11), constraints=(/11: [/false - /false]; tight), fd=()-->(11)] 429 │ │ │ │ │ │ │ │ ├── project 430 │ │ │ │ │ │ │ │ │ ├── columns: true:28!null flavor_projects.flavor_id:17!null 431 │ │ │ │ │ │ │ │ │ ├── has-placeholder 432 │ │ │ │ │ │ │ │ │ ├── fd: ()-->(28) 433 │ │ │ │ │ │ │ │ │ ├── ordering: +17 opt(28) [actual: +17] 434 │ │ │ │ │ │ │ │ │ ├── select 435 │ │ │ │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 436 │ │ │ │ │ │ │ │ │ │ ├── has-placeholder 437 │ │ │ │ │ │ │ │ │ │ ├── key: (17,18) 438 │ │ │ │ │ │ │ │ │ │ ├── ordering: +17 439 │ │ │ │ │ │ │ │ │ │ ├── scan flavor_projects@secondary 440 │ │ │ │ │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 441 │ │ │ │ │ │ │ │ │ │ │ ├── key: (17,18) 442 │ │ │ │ │ │ │ │ │ │ │ └── ordering: +17 443 │ │ │ │ │ │ │ │ │ │ └── filters 444 │ │ │ │ │ │ │ │ │ │ └── project_id:18 = $1 [outer=(18), constraints=(/18: (/NULL - ])] 445 │ │ │ │ │ │ │ │ │ └── projections 446 │ │ │ │ │ │ │ │ │ └── true [as=true:28] 447 │ │ │ │ │ │ │ │ └── filters (true) 448 │ │ │ │ │ │ │ └── aggregations 449 │ │ │ │ │ │ │ ├── const-not-null-agg [as=true_agg:29, outer=(28)] 450 │ │ │ │ │ │ │ │ └── true:28 451 │ │ │ │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 452 │ │ │ │ │ │ │ │ └── name:2 453 │ │ │ │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 454 │ │ │ │ │ │ │ │ └── memory_mb:3 455 │ │ │ │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 456 │ │ │ │ │ │ │ │ └── vcpus:4 457 │ │ │ │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 458 │ │ │ │ │ │ │ │ └── root_gb:5 459 │ │ │ │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 460 │ │ │ │ │ │ │ │ └── ephemeral_gb:6 461 │ │ │ │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 462 │ │ │ │ │ │ │ │ └── flavorid:7 463 │ │ │ │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 464 │ │ │ │ │ │ │ │ └── swap:8 465 │ │ │ │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 466 │ │ │ │ │ │ │ │ └── rxtx_factor:9 467 │ │ │ │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 468 │ │ │ │ │ │ │ │ └── vcpu_weight:10 469 │ │ │ │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 470 │ │ │ │ │ │ │ │ └── disabled:11 471 │ │ │ │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 472 │ │ │ │ │ │ │ │ └── is_public:12 473 │ │ │ │ │ │ │ ├── const-agg [as=flavors.created_at:14, outer=(14)] 474 │ │ │ │ │ │ │ │ └── flavors.created_at:14 475 │ │ │ │ │ │ │ └── const-agg [as=flavors.updated_at:15, outer=(15)] 476 │ │ │ │ │ │ │ └── flavors.updated_at:15 477 │ │ │ │ │ │ └── filters 478 │ │ │ │ │ │ └── (is_public:12 = true) OR (true_agg:29 IS NOT NULL) [outer=(12,29)] 479 │ │ │ │ │ ├── project 480 │ │ │ │ │ │ ├── columns: true:31!null flavor_projects.flavor_id:23!null 481 │ │ │ │ │ │ ├── has-placeholder 482 │ │ │ │ │ │ ├── fd: ()-->(31) 483 │ │ │ │ │ │ ├── ordering: +23 opt(31) [actual: +23] 484 │ │ │ │ │ │ ├── select 485 │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:23!null project_id:24!null 486 │ │ │ │ │ │ │ ├── has-placeholder 487 │ │ │ │ │ │ │ ├── key: (23,24) 488 │ │ │ │ │ │ │ ├── ordering: +23 489 │ │ │ │ │ │ │ ├── scan flavor_projects@secondary 490 │ │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:23!null project_id:24!null 491 │ │ │ │ │ │ │ │ ├── key: (23,24) 492 │ │ │ │ │ │ │ │ └── ordering: +23 493 │ │ │ │ │ │ │ └── filters 494 │ │ │ │ │ │ │ └── project_id:24 = $2 [outer=(24), constraints=(/24: (/NULL - ])] 495 │ │ │ │ │ │ └── projections 496 │ │ │ │ │ │ └── true [as=true:31] 497 │ │ │ │ │ └── filters (true) 498 │ │ │ │ └── aggregations 499 │ │ │ │ ├── const-not-null-agg [as=true_agg:32, outer=(31)] 500 │ │ │ │ │ └── true:31 501 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 502 │ │ │ │ │ └── name:2 503 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 504 │ │ │ │ │ └── memory_mb:3 505 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 506 │ │ │ │ │ └── vcpus:4 507 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 508 │ │ │ │ │ └── root_gb:5 509 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 510 │ │ │ │ │ └── ephemeral_gb:6 511 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 512 │ │ │ │ │ └── flavorid:7 513 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 514 │ │ │ │ │ └── swap:8 515 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 516 │ │ │ │ │ └── rxtx_factor:9 517 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 518 │ │ │ │ │ └── vcpu_weight:10 519 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 520 │ │ │ │ │ └── disabled:11 521 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 522 │ │ │ │ │ └── is_public:12 523 │ │ │ │ ├── const-agg [as=flavors.created_at:14, outer=(14)] 524 │ │ │ │ │ └── flavors.created_at:14 525 │ │ │ │ └── const-agg [as=flavors.updated_at:15, outer=(15)] 526 │ │ │ │ └── flavors.updated_at:15 527 │ │ │ └── filters 528 │ │ │ └── (is_public:12 = true) OR (true_agg:32 IS NOT NULL) [outer=(12,32)] 529 │ │ └── $3 530 │ └── $4 531 └── filters 532 └── flavor_extra_specs_1.flavor_id:37 = flavors.id:1 [outer=(1,37), constraints=(/1: (/NULL - ]; /37: (/NULL - ]), fd=(1)==(37), (37)==(1)] 533 534 opt 535 select anon_1.instance_types_created_at as anon_1_instance_types_created_at, 536 anon_1.instance_types_updated_at as anon_1_instance_types_updated_at, 537 anon_1.instance_types_deleted_at as anon_1_instance_types_deleted_at, 538 anon_1.instance_types_deleted as anon_1_instance_types_deleted, 539 anon_1.instance_types_id as anon_1_instance_types_id, 540 anon_1.instance_types_name as anon_1_instance_types_name, 541 anon_1.instance_types_memory_mb as anon_1_instance_types_memory_mb, 542 anon_1.instance_types_vcpus as anon_1_instance_types_vcpus, 543 anon_1.instance_types_root_gb as anon_1_instance_types_root_gb, 544 anon_1.instance_types_ephemeral_gb as anon_1_instance_types_ephemeral_gb, 545 anon_1.instance_types_flavorid as anon_1_instance_types_flavorid, 546 anon_1.instance_types_swap as anon_1_instance_types_swap, 547 anon_1.instance_types_rxtx_factor as anon_1_instance_types_rxtx_factor, 548 anon_1.instance_types_vcpu_weight as anon_1_instance_types_vcpu_weight, 549 anon_1.instance_types_disabled as anon_1_instance_types_disabled, 550 anon_1.instance_types_is_public as anon_1_instance_types_is_public, 551 instance_type_extra_specs_1.created_at as instance_type_extra_specs_1_created_at, 552 instance_type_extra_specs_1.updated_at as instance_type_extra_specs_1_updated_at, 553 instance_type_extra_specs_1.deleted_at as instance_type_extra_specs_1_deleted_at, 554 instance_type_extra_specs_1.deleted as instance_type_extra_specs_1_deleted, 555 instance_type_extra_specs_1.id as instance_type_extra_specs_1_id, 556 instance_type_extra_specs_1."key" as instance_type_extra_specs_1_key, 557 instance_type_extra_specs_1.value as instance_type_extra_specs_1_value, 558 instance_type_extra_specs_1.instance_type_id as instance_type_extra_specs_1_instance_type_id 559 from (select instance_types.created_at as instance_types_created_at, 560 instance_types.updated_at as instance_types_updated_at, 561 instance_types.deleted_at as instance_types_deleted_at, 562 instance_types.deleted as instance_types_deleted, 563 instance_types.id as instance_types_id, 564 instance_types.name as instance_types_name, 565 instance_types.memory_mb as instance_types_memory_mb, 566 instance_types.vcpus as instance_types_vcpus, 567 instance_types.root_gb as instance_types_root_gb, 568 instance_types.ephemeral_gb as instance_types_ephemeral_gb, 569 instance_types.flavorid as instance_types_flavorid, 570 instance_types.swap as instance_types_swap, 571 instance_types.rxtx_factor as instance_types_rxtx_factor, 572 instance_types.vcpu_weight as instance_types_vcpu_weight, 573 instance_types.disabled as instance_types_disabled, 574 instance_types.is_public as instance_types_is_public 575 from instance_types 576 where instance_types.deleted = $1 577 and (instance_types.is_public = true 578 or (exists (select 1 579 from instance_type_projects 580 where instance_type_projects.instance_type_id = instance_types.id 581 and instance_type_projects.deleted = $2 582 and instance_type_projects.deleted = $3 583 and instance_type_projects.project_id = $4))) 584 order by instance_types.flavorid asc, instance_types.id asc 585 offset $5 rows 586 limit $6) 587 as anon_1 588 left join instance_type_extra_specs as instance_type_extra_specs_1 589 on instance_type_extra_specs_1.instance_type_id = anon_1.instance_types_id 590 and instance_type_extra_specs_1.deleted = $7 591 order by anon_1.instance_types_flavorid asc, 592 anon_1.instance_types_id asc 593 ---- 594 sort 595 ├── columns: anon_1_instance_types_created_at:15 anon_1_instance_types_updated_at:16 anon_1_instance_types_deleted_at:14 anon_1_instance_types_deleted:13!null anon_1_instance_types_id:1!null anon_1_instance_types_name:2 anon_1_instance_types_memory_mb:3!null anon_1_instance_types_vcpus:4!null anon_1_instance_types_root_gb:5 anon_1_instance_types_ephemeral_gb:6 anon_1_instance_types_flavorid:7 anon_1_instance_types_swap:8!null anon_1_instance_types_rxtx_factor:9 anon_1_instance_types_vcpu_weight:10 anon_1_instance_types_disabled:11 anon_1_instance_types_is_public:12 instance_type_extra_specs_1_created_at:34 instance_type_extra_specs_1_updated_at:35 instance_type_extra_specs_1_deleted_at:33 instance_type_extra_specs_1_deleted:32 instance_type_extra_specs_1_id:28 instance_type_extra_specs_1_key:29 instance_type_extra_specs_1_value:30 instance_type_extra_specs_1_instance_type_id:31 596 ├── immutable, side-effects, has-placeholder 597 ├── key: (1,28) 598 ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 599 ├── ordering: +7,+1 600 └── project 601 ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_extra_specs_1.id:28 key:29 value:30 instance_type_extra_specs_1.instance_type_id:31 instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 602 ├── immutable, side-effects, has-placeholder 603 ├── key: (1,28) 604 ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 605 └── right-join (hash) 606 ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 instance_type_extra_specs_1.id:28 key:29 value:30 instance_type_extra_specs_1.instance_type_id:31 instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 607 ├── immutable, side-effects, has-placeholder 608 ├── key: (1,28) 609 ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 610 ├── select 611 │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32!null instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 612 │ ├── has-placeholder 613 │ ├── key: (28) 614 │ ├── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 615 │ ├── scan instance_type_extra_specs_1 616 │ │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 617 │ │ ├── key: (28) 618 │ │ └── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 619 │ └── filters 620 │ └── instance_type_extra_specs_1.deleted:32 = $7 [outer=(32), constraints=(/32: (/NULL - ])] 621 ├── limit 622 │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 623 │ ├── internal-ordering: +7,+1 624 │ ├── immutable, side-effects, has-placeholder 625 │ ├── key: (1) 626 │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 627 │ ├── offset 628 │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 629 │ │ ├── internal-ordering: +7,+1 630 │ │ ├── has-placeholder 631 │ │ ├── key: (1) 632 │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 633 │ │ ├── ordering: +7,+1 634 │ │ ├── sort 635 │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 636 │ │ │ ├── has-placeholder 637 │ │ │ ├── key: (1) 638 │ │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 639 │ │ │ ├── ordering: +7,+1 640 │ │ │ └── select 641 │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 642 │ │ │ ├── has-placeholder 643 │ │ │ ├── key: (1) 644 │ │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 645 │ │ │ ├── group-by 646 │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 647 │ │ │ │ ├── grouping columns: instance_types.id:1!null 648 │ │ │ │ ├── internal-ordering: +1 649 │ │ │ │ ├── has-placeholder 650 │ │ │ │ ├── key: (1) 651 │ │ │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 652 │ │ │ │ ├── left-join (merge) 653 │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_projects.instance_type_id:18 true:25 654 │ │ │ │ │ ├── left ordering: +1 655 │ │ │ │ │ ├── right ordering: +18 656 │ │ │ │ │ ├── has-placeholder 657 │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 658 │ │ │ │ │ ├── ordering: +1 659 │ │ │ │ │ ├── select 660 │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 661 │ │ │ │ │ │ ├── has-placeholder 662 │ │ │ │ │ │ ├── key: (1) 663 │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 664 │ │ │ │ │ │ ├── ordering: +1 665 │ │ │ │ │ │ ├── scan instance_types 666 │ │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13 instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 667 │ │ │ │ │ │ │ ├── key: (1) 668 │ │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 669 │ │ │ │ │ │ │ └── ordering: +1 670 │ │ │ │ │ │ └── filters 671 │ │ │ │ │ │ └── instance_types.deleted:13 = $1 [outer=(13), constraints=(/13: (/NULL - ])] 672 │ │ │ │ │ ├── project 673 │ │ │ │ │ │ ├── columns: true:25!null instance_type_projects.instance_type_id:18!null 674 │ │ │ │ │ │ ├── has-placeholder 675 │ │ │ │ │ │ ├── fd: ()-->(25) 676 │ │ │ │ │ │ ├── ordering: +18 opt(25) [actual: +18] 677 │ │ │ │ │ │ ├── select 678 │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19!null instance_type_projects.deleted:20!null 679 │ │ │ │ │ │ │ ├── has-placeholder 680 │ │ │ │ │ │ │ ├── key: (18-20) 681 │ │ │ │ │ │ │ ├── ordering: +18 682 │ │ │ │ │ │ │ ├── scan instance_type_projects@secondary 683 │ │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19 instance_type_projects.deleted:20 684 │ │ │ │ │ │ │ │ ├── lax-key: (18-20) 685 │ │ │ │ │ │ │ │ └── ordering: +18 686 │ │ │ │ │ │ │ └── filters 687 │ │ │ │ │ │ │ ├── instance_type_projects.deleted:20 = $2 [outer=(20), constraints=(/20: (/NULL - ])] 688 │ │ │ │ │ │ │ ├── instance_type_projects.deleted:20 = $3 [outer=(20), constraints=(/20: (/NULL - ])] 689 │ │ │ │ │ │ │ └── project_id:19 = $4 [outer=(19), constraints=(/19: (/NULL - ])] 690 │ │ │ │ │ │ └── projections 691 │ │ │ │ │ │ └── true [as=true:25] 692 │ │ │ │ │ └── filters (true) 693 │ │ │ │ └── aggregations 694 │ │ │ │ ├── const-not-null-agg [as=true_agg:26, outer=(25)] 695 │ │ │ │ │ └── true:25 696 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 697 │ │ │ │ │ └── name:2 698 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 699 │ │ │ │ │ └── memory_mb:3 700 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 701 │ │ │ │ │ └── vcpus:4 702 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 703 │ │ │ │ │ └── root_gb:5 704 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 705 │ │ │ │ │ └── ephemeral_gb:6 706 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 707 │ │ │ │ │ └── flavorid:7 708 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 709 │ │ │ │ │ └── swap:8 710 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 711 │ │ │ │ │ └── rxtx_factor:9 712 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 713 │ │ │ │ │ └── vcpu_weight:10 714 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 715 │ │ │ │ │ └── disabled:11 716 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 717 │ │ │ │ │ └── is_public:12 718 │ │ │ │ ├── const-agg [as=instance_types.deleted:13, outer=(13)] 719 │ │ │ │ │ └── instance_types.deleted:13 720 │ │ │ │ ├── const-agg [as=instance_types.deleted_at:14, outer=(14)] 721 │ │ │ │ │ └── instance_types.deleted_at:14 722 │ │ │ │ ├── const-agg [as=instance_types.created_at:15, outer=(15)] 723 │ │ │ │ │ └── instance_types.created_at:15 724 │ │ │ │ └── const-agg [as=instance_types.updated_at:16, outer=(16)] 725 │ │ │ │ └── instance_types.updated_at:16 726 │ │ │ └── filters 727 │ │ │ └── (is_public:12 = true) OR (true_agg:26 IS NOT NULL) [outer=(12,26)] 728 │ │ └── $5 729 │ └── $6 730 └── filters 731 └── instance_type_extra_specs_1.instance_type_id:31 = instance_types.id:1 [outer=(1,31), constraints=(/1: (/NULL - ]; /31: (/NULL - ]), fd=(1)==(31), (31)==(1)] 732 733 opt 734 select instance_types.created_at as instance_types_created_at, 735 instance_types.updated_at as instance_types_updated_at, 736 instance_types.deleted_at as instance_types_deleted_at, 737 instance_types.deleted as instance_types_deleted, 738 instance_types.id as instance_types_id, 739 instance_types.name as instance_types_name, 740 instance_types.memory_mb as instance_types_memory_mb, 741 instance_types.vcpus as instance_types_vcpus, 742 instance_types.root_gb as instance_types_root_gb, 743 instance_types.ephemeral_gb as instance_types_ephemeral_gb, 744 instance_types.flavorid as instance_types_flavorid, 745 instance_types.swap as instance_types_swap, 746 instance_types.rxtx_factor as instance_types_rxtx_factor, 747 instance_types.vcpu_weight as instance_types_vcpu_weight, 748 instance_types.disabled as instance_types_disabled, 749 instance_types.is_public as instance_types_is_public, 750 instance_type_extra_specs_1.created_at as instance_type_extra_specs_1_created_at, 751 instance_type_extra_specs_1.updated_at as instance_type_extra_specs_1_updated_at, 752 instance_type_extra_specs_1.deleted_at as instance_type_extra_specs_1_deleted_at, 753 instance_type_extra_specs_1.deleted as instance_type_extra_specs_1_deleted, 754 instance_type_extra_specs_1.id as instance_type_extra_specs_1_id, 755 instance_type_extra_specs_1."key" as instance_type_extra_specs_1_key, 756 instance_type_extra_specs_1.value as instance_type_extra_specs_1_value, 757 instance_type_extra_specs_1.instance_type_id as instance_type_extra_specs_1_instance_type_id 758 from instance_types 759 left join instance_type_extra_specs as instance_type_extra_specs_1 760 on instance_type_extra_specs_1.instance_type_id = instance_types.id 761 and instance_type_extra_specs_1.deleted = $1 762 where instance_types.deleted = $2 763 and (instance_types.is_public = true 764 or (exists (select 1 765 from instance_type_projects 766 where instance_type_projects.instance_type_id = instance_types.id 767 and instance_type_projects.deleted = $3 768 and instance_type_projects.project_id = $4))) 769 order by instance_types.flavorid asc, instance_types.id asc 770 ---- 771 sort 772 ├── columns: instance_types_created_at:15 instance_types_updated_at:16 instance_types_deleted_at:14 instance_types_deleted:13!null instance_types_id:1!null instance_types_name:2 instance_types_memory_mb:3!null instance_types_vcpus:4!null instance_types_root_gb:5 instance_types_ephemeral_gb:6 instance_types_flavorid:7 instance_types_swap:8!null instance_types_rxtx_factor:9 instance_types_vcpu_weight:10 instance_types_disabled:11 instance_types_is_public:12 instance_type_extra_specs_1_created_at:23 instance_type_extra_specs_1_updated_at:24 instance_type_extra_specs_1_deleted_at:22 instance_type_extra_specs_1_deleted:21 instance_type_extra_specs_1_id:17 instance_type_extra_specs_1_key:18 instance_type_extra_specs_1_value:19 instance_type_extra_specs_1_instance_type_id:20 773 ├── has-placeholder 774 ├── key: (1,17) 775 ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (17)-->(18-24), (18,20,21)~~>(17,19,22-24) 776 ├── ordering: +7,+1 777 └── project 778 ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_extra_specs_1.id:17 key:18 value:19 instance_type_extra_specs_1.instance_type_id:20 instance_type_extra_specs_1.deleted:21 instance_type_extra_specs_1.deleted_at:22 instance_type_extra_specs_1.created_at:23 instance_type_extra_specs_1.updated_at:24 779 ├── has-placeholder 780 ├── key: (1,17) 781 ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (17)-->(18-24), (18,20,21)~~>(17,19,22-24) 782 └── right-join (hash) 783 ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_extra_specs_1.id:17 key:18 value:19 instance_type_extra_specs_1.instance_type_id:20 instance_type_extra_specs_1.deleted:21 instance_type_extra_specs_1.deleted_at:22 instance_type_extra_specs_1.created_at:23 instance_type_extra_specs_1.updated_at:24 true_agg:34 784 ├── has-placeholder 785 ├── key: (1,17) 786 ├── fd: (1)-->(2-16,34), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (17)-->(18-24), (18,20,21)~~>(17,19,22-24) 787 ├── select 788 │ ├── columns: instance_type_extra_specs_1.id:17!null key:18 value:19 instance_type_extra_specs_1.instance_type_id:20!null instance_type_extra_specs_1.deleted:21!null instance_type_extra_specs_1.deleted_at:22 instance_type_extra_specs_1.created_at:23 instance_type_extra_specs_1.updated_at:24 789 │ ├── has-placeholder 790 │ ├── key: (17) 791 │ ├── fd: (17)-->(18-24), (18,20,21)~~>(17,19,22-24) 792 │ ├── scan instance_type_extra_specs_1 793 │ │ ├── columns: instance_type_extra_specs_1.id:17!null key:18 value:19 instance_type_extra_specs_1.instance_type_id:20!null instance_type_extra_specs_1.deleted:21 instance_type_extra_specs_1.deleted_at:22 instance_type_extra_specs_1.created_at:23 instance_type_extra_specs_1.updated_at:24 794 │ │ ├── key: (17) 795 │ │ └── fd: (17)-->(18-24), (18,20,21)~~>(17,19,22-24) 796 │ └── filters 797 │ └── instance_type_extra_specs_1.deleted:21 = $1 [outer=(21), constraints=(/21: (/NULL - ])] 798 ├── select 799 │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:34 800 │ ├── has-placeholder 801 │ ├── key: (1) 802 │ ├── fd: (1)-->(2-16,34), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 803 │ ├── group-by 804 │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:34 805 │ │ ├── grouping columns: instance_types.id:1!null 806 │ │ ├── internal-ordering: +1 807 │ │ ├── has-placeholder 808 │ │ ├── key: (1) 809 │ │ ├── fd: (1)-->(2-16,34), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 810 │ │ ├── left-join (merge) 811 │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_projects.instance_type_id:26 true:33 812 │ │ │ ├── left ordering: +1 813 │ │ │ ├── right ordering: +26 814 │ │ │ ├── has-placeholder 815 │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 816 │ │ │ ├── ordering: +1 817 │ │ │ ├── select 818 │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 819 │ │ │ │ ├── has-placeholder 820 │ │ │ │ ├── key: (1) 821 │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 822 │ │ │ │ ├── ordering: +1 823 │ │ │ │ ├── scan instance_types 824 │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13 instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 825 │ │ │ │ │ ├── key: (1) 826 │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 827 │ │ │ │ │ └── ordering: +1 828 │ │ │ │ └── filters 829 │ │ │ │ └── instance_types.deleted:13 = $2 [outer=(13), constraints=(/13: (/NULL - ])] 830 │ │ │ ├── project 831 │ │ │ │ ├── columns: true:33!null instance_type_projects.instance_type_id:26!null 832 │ │ │ │ ├── has-placeholder 833 │ │ │ │ ├── fd: ()-->(33) 834 │ │ │ │ ├── ordering: +26 opt(33) [actual: +26] 835 │ │ │ │ ├── select 836 │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:26!null project_id:27!null instance_type_projects.deleted:28!null 837 │ │ │ │ │ ├── has-placeholder 838 │ │ │ │ │ ├── key: (26-28) 839 │ │ │ │ │ ├── ordering: +26 840 │ │ │ │ │ ├── scan instance_type_projects@secondary 841 │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:26!null project_id:27 instance_type_projects.deleted:28 842 │ │ │ │ │ │ ├── lax-key: (26-28) 843 │ │ │ │ │ │ └── ordering: +26 844 │ │ │ │ │ └── filters 845 │ │ │ │ │ ├── instance_type_projects.deleted:28 = $3 [outer=(28), constraints=(/28: (/NULL - ])] 846 │ │ │ │ │ └── project_id:27 = $4 [outer=(27), constraints=(/27: (/NULL - ])] 847 │ │ │ │ └── projections 848 │ │ │ │ └── true [as=true:33] 849 │ │ │ └── filters (true) 850 │ │ └── aggregations 851 │ │ ├── const-not-null-agg [as=true_agg:34, outer=(33)] 852 │ │ │ └── true:33 853 │ │ ├── const-agg [as=name:2, outer=(2)] 854 │ │ │ └── name:2 855 │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 856 │ │ │ └── memory_mb:3 857 │ │ ├── const-agg [as=vcpus:4, outer=(4)] 858 │ │ │ └── vcpus:4 859 │ │ ├── const-agg [as=root_gb:5, outer=(5)] 860 │ │ │ └── root_gb:5 861 │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 862 │ │ │ └── ephemeral_gb:6 863 │ │ ├── const-agg [as=flavorid:7, outer=(7)] 864 │ │ │ └── flavorid:7 865 │ │ ├── const-agg [as=swap:8, outer=(8)] 866 │ │ │ └── swap:8 867 │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 868 │ │ │ └── rxtx_factor:9 869 │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 870 │ │ │ └── vcpu_weight:10 871 │ │ ├── const-agg [as=disabled:11, outer=(11)] 872 │ │ │ └── disabled:11 873 │ │ ├── const-agg [as=is_public:12, outer=(12)] 874 │ │ │ └── is_public:12 875 │ │ ├── const-agg [as=instance_types.deleted:13, outer=(13)] 876 │ │ │ └── instance_types.deleted:13 877 │ │ ├── const-agg [as=instance_types.deleted_at:14, outer=(14)] 878 │ │ │ └── instance_types.deleted_at:14 879 │ │ ├── const-agg [as=instance_types.created_at:15, outer=(15)] 880 │ │ │ └── instance_types.created_at:15 881 │ │ └── const-agg [as=instance_types.updated_at:16, outer=(16)] 882 │ │ └── instance_types.updated_at:16 883 │ └── filters 884 │ └── (is_public:12 = true) OR (true_agg:34 IS NOT NULL) [outer=(12,34)] 885 └── filters 886 └── instance_type_extra_specs_1.instance_type_id:20 = instance_types.id:1 [outer=(1,20), constraints=(/1: (/NULL - ]; /20: (/NULL - ]), fd=(1)==(20), (20)==(1)] 887 888 opt 889 select anon_1.instance_types_created_at as anon_1_instance_types_created_at, 890 anon_1.instance_types_updated_at as anon_1_instance_types_updated_at, 891 anon_1.instance_types_deleted_at as anon_1_instance_types_deleted_at, 892 anon_1.instance_types_deleted as anon_1_instance_types_deleted, 893 anon_1.instance_types_id as anon_1_instance_types_id, 894 anon_1.instance_types_name as anon_1_instance_types_name, 895 anon_1.instance_types_memory_mb as anon_1_instance_types_memory_mb, 896 anon_1.instance_types_vcpus as anon_1_instance_types_vcpus, 897 anon_1.instance_types_root_gb as anon_1_instance_types_root_gb, 898 anon_1.instance_types_ephemeral_gb as anon_1_instance_types_ephemeral_gb, 899 anon_1.instance_types_flavorid as anon_1_instance_types_flavorid, 900 anon_1.instance_types_swap as anon_1_instance_types_swap, 901 anon_1.instance_types_rxtx_factor as anon_1_instance_types_rxtx_factor, 902 anon_1.instance_types_vcpu_weight as anon_1_instance_types_vcpu_weight, 903 anon_1.instance_types_disabled as anon_1_instance_types_disabled, 904 anon_1.instance_types_is_public as anon_1_instance_types_is_public, 905 instance_type_extra_specs_1.created_at as instance_type_extra_specs_1_created_at, 906 instance_type_extra_specs_1.updated_at as instance_type_extra_specs_1_updated_at, 907 instance_type_extra_specs_1.deleted_at as instance_type_extra_specs_1_deleted_at, 908 instance_type_extra_specs_1.deleted as instance_type_extra_specs_1_deleted, 909 instance_type_extra_specs_1.id as instance_type_extra_specs_1_id, 910 instance_type_extra_specs_1."key" as instance_type_extra_specs_1_key, 911 instance_type_extra_specs_1.value as instance_type_extra_specs_1_value, 912 instance_type_extra_specs_1.instance_type_id as instance_type_extra_specs_1_instance_type_id 913 from (select instance_types.created_at as instance_types_created_at, 914 instance_types.updated_at as instance_types_updated_at, 915 instance_types.deleted_at as instance_types_deleted_at, 916 instance_types.deleted as instance_types_deleted, 917 instance_types.id as instance_types_id, 918 instance_types.name as instance_types_name, 919 instance_types.memory_mb as instance_types_memory_mb, 920 instance_types.vcpus as instance_types_vcpus, 921 instance_types.root_gb as instance_types_root_gb, 922 instance_types.ephemeral_gb as instance_types_ephemeral_gb, 923 instance_types.flavorid as instance_types_flavorid, 924 instance_types.swap as instance_types_swap, 925 instance_types.rxtx_factor as instance_types_rxtx_factor, 926 instance_types.vcpu_weight as instance_types_vcpu_weight, 927 instance_types.disabled as instance_types_disabled, 928 instance_types.is_public as instance_types_is_public 929 from instance_types 930 where instance_types.deleted = $1 931 and (instance_types.is_public = true 932 or (exists (select 1 933 from instance_type_projects 934 where instance_type_projects.instance_type_id = instance_types.id 935 and instance_type_projects.deleted = $2 936 and instance_type_projects.project_id = $3))) 937 and instance_types.name = $4 938 offset $5 rows 939 limit $6) 940 as anon_1 941 left join instance_type_extra_specs as instance_type_extra_specs_1 942 on instance_type_extra_specs_1.instance_type_id = anon_1.instance_types_id 943 and instance_type_extra_specs_1.deleted = $7 944 ---- 945 project 946 ├── columns: anon_1_instance_types_created_at:15 anon_1_instance_types_updated_at:16 anon_1_instance_types_deleted_at:14 anon_1_instance_types_deleted:13!null anon_1_instance_types_id:1!null anon_1_instance_types_name:2!null anon_1_instance_types_memory_mb:3!null anon_1_instance_types_vcpus:4!null anon_1_instance_types_root_gb:5 anon_1_instance_types_ephemeral_gb:6 anon_1_instance_types_flavorid:7 anon_1_instance_types_swap:8!null anon_1_instance_types_rxtx_factor:9 anon_1_instance_types_vcpu_weight:10 anon_1_instance_types_disabled:11 anon_1_instance_types_is_public:12 instance_type_extra_specs_1_created_at:34 instance_type_extra_specs_1_updated_at:35 instance_type_extra_specs_1_deleted_at:33 instance_type_extra_specs_1_deleted:32 instance_type_extra_specs_1_id:28 instance_type_extra_specs_1_key:29 instance_type_extra_specs_1_value:30 instance_type_extra_specs_1_instance_type_id:31 947 ├── immutable, side-effects, has-placeholder 948 ├── key: (1,28) 949 ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)-->(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 950 └── right-join (hash) 951 ├── columns: instance_types.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 instance_type_extra_specs_1.id:28 key:29 value:30 instance_type_extra_specs_1.instance_type_id:31 instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 952 ├── immutable, side-effects, has-placeholder 953 ├── key: (1,28) 954 ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)-->(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 955 ├── select 956 │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32!null instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 957 │ ├── has-placeholder 958 │ ├── key: (28) 959 │ ├── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 960 │ ├── scan instance_type_extra_specs_1 961 │ │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 962 │ │ ├── key: (28) 963 │ │ └── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 964 │ └── filters 965 │ └── instance_type_extra_specs_1.deleted:32 = $7 [outer=(32), constraints=(/32: (/NULL - ])] 966 ├── limit 967 │ ├── columns: instance_types.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 968 │ ├── immutable, side-effects, has-placeholder 969 │ ├── key: (1) 970 │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)-->(1,3-12,14-16) 971 │ ├── offset 972 │ │ ├── columns: instance_types.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 973 │ │ ├── has-placeholder 974 │ │ ├── key: (1) 975 │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)-->(1,3-12,14-16) 976 │ │ ├── select 977 │ │ │ ├── columns: instance_types.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 978 │ │ │ ├── has-placeholder 979 │ │ │ ├── key: (1) 980 │ │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)-->(1,3-12,14-16) 981 │ │ │ ├── group-by 982 │ │ │ │ ├── columns: instance_types.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 983 │ │ │ │ ├── grouping columns: instance_types.id:1!null 984 │ │ │ │ ├── internal-ordering: +1 985 │ │ │ │ ├── has-placeholder 986 │ │ │ │ ├── key: (1) 987 │ │ │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)-->(1,3-12,14-16) 988 │ │ │ │ ├── left-join (merge) 989 │ │ │ │ │ ├── columns: instance_types.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_projects.instance_type_id:18 true:25 990 │ │ │ │ │ ├── left ordering: +1 991 │ │ │ │ │ ├── right ordering: +18 992 │ │ │ │ │ ├── has-placeholder 993 │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)-->(1,3-12,14-16) 994 │ │ │ │ │ ├── ordering: +1 995 │ │ │ │ │ ├── select 996 │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 997 │ │ │ │ │ │ ├── has-placeholder 998 │ │ │ │ │ │ ├── key: (1) 999 │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)-->(1,3-12,14-16) 1000 │ │ │ │ │ │ ├── ordering: +1 1001 │ │ │ │ │ │ ├── scan instance_types 1002 │ │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13 instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 1003 │ │ │ │ │ │ │ ├── key: (1) 1004 │ │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1005 │ │ │ │ │ │ │ └── ordering: +1 1006 │ │ │ │ │ │ └── filters 1007 │ │ │ │ │ │ ├── instance_types.deleted:13 = $1 [outer=(13), constraints=(/13: (/NULL - ])] 1008 │ │ │ │ │ │ └── name:2 = $4 [outer=(2), constraints=(/2: (/NULL - ])] 1009 │ │ │ │ │ ├── project 1010 │ │ │ │ │ │ ├── columns: true:25!null instance_type_projects.instance_type_id:18!null 1011 │ │ │ │ │ │ ├── has-placeholder 1012 │ │ │ │ │ │ ├── fd: ()-->(25) 1013 │ │ │ │ │ │ ├── ordering: +18 opt(25) [actual: +18] 1014 │ │ │ │ │ │ ├── select 1015 │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19!null instance_type_projects.deleted:20!null 1016 │ │ │ │ │ │ │ ├── has-placeholder 1017 │ │ │ │ │ │ │ ├── key: (18-20) 1018 │ │ │ │ │ │ │ ├── ordering: +18 1019 │ │ │ │ │ │ │ ├── scan instance_type_projects@secondary 1020 │ │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19 instance_type_projects.deleted:20 1021 │ │ │ │ │ │ │ │ ├── lax-key: (18-20) 1022 │ │ │ │ │ │ │ │ └── ordering: +18 1023 │ │ │ │ │ │ │ └── filters 1024 │ │ │ │ │ │ │ ├── instance_type_projects.deleted:20 = $2 [outer=(20), constraints=(/20: (/NULL - ])] 1025 │ │ │ │ │ │ │ └── project_id:19 = $3 [outer=(19), constraints=(/19: (/NULL - ])] 1026 │ │ │ │ │ │ └── projections 1027 │ │ │ │ │ │ └── true [as=true:25] 1028 │ │ │ │ │ └── filters (true) 1029 │ │ │ │ └── aggregations 1030 │ │ │ │ ├── const-not-null-agg [as=true_agg:26, outer=(25)] 1031 │ │ │ │ │ └── true:25 1032 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 1033 │ │ │ │ │ └── name:2 1034 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 1035 │ │ │ │ │ └── memory_mb:3 1036 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 1037 │ │ │ │ │ └── vcpus:4 1038 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 1039 │ │ │ │ │ └── root_gb:5 1040 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 1041 │ │ │ │ │ └── ephemeral_gb:6 1042 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 1043 │ │ │ │ │ └── flavorid:7 1044 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 1045 │ │ │ │ │ └── swap:8 1046 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 1047 │ │ │ │ │ └── rxtx_factor:9 1048 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 1049 │ │ │ │ │ └── vcpu_weight:10 1050 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 1051 │ │ │ │ │ └── disabled:11 1052 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 1053 │ │ │ │ │ └── is_public:12 1054 │ │ │ │ ├── const-agg [as=instance_types.deleted:13, outer=(13)] 1055 │ │ │ │ │ └── instance_types.deleted:13 1056 │ │ │ │ ├── const-agg [as=instance_types.deleted_at:14, outer=(14)] 1057 │ │ │ │ │ └── instance_types.deleted_at:14 1058 │ │ │ │ ├── const-agg [as=instance_types.created_at:15, outer=(15)] 1059 │ │ │ │ │ └── instance_types.created_at:15 1060 │ │ │ │ └── const-agg [as=instance_types.updated_at:16, outer=(16)] 1061 │ │ │ │ └── instance_types.updated_at:16 1062 │ │ │ └── filters 1063 │ │ │ └── (is_public:12 = true) OR (true_agg:26 IS NOT NULL) [outer=(12,26)] 1064 │ │ └── $5 1065 │ └── $6 1066 └── filters 1067 └── instance_type_extra_specs_1.instance_type_id:31 = instance_types.id:1 [outer=(1,31), constraints=(/1: (/NULL - ]; /31: (/NULL - ]), fd=(1)==(31), (31)==(1)] 1068 1069 opt 1070 select anon_1.instance_types_created_at as anon_1_instance_types_created_at, 1071 anon_1.instance_types_updated_at as anon_1_instance_types_updated_at, 1072 anon_1.instance_types_deleted_at as anon_1_instance_types_deleted_at, 1073 anon_1.instance_types_deleted as anon_1_instance_types_deleted, 1074 anon_1.instance_types_id as anon_1_instance_types_id, 1075 anon_1.instance_types_name as anon_1_instance_types_name, 1076 anon_1.instance_types_memory_mb as anon_1_instance_types_memory_mb, 1077 anon_1.instance_types_vcpus as anon_1_instance_types_vcpus, 1078 anon_1.instance_types_root_gb as anon_1_instance_types_root_gb, 1079 anon_1.instance_types_ephemeral_gb as anon_1_instance_types_ephemeral_gb, 1080 anon_1.instance_types_flavorid as anon_1_instance_types_flavorid, 1081 anon_1.instance_types_swap as anon_1_instance_types_swap, 1082 anon_1.instance_types_rxtx_factor as anon_1_instance_types_rxtx_factor, 1083 anon_1.instance_types_vcpu_weight as anon_1_instance_types_vcpu_weight, 1084 anon_1.instance_types_disabled as anon_1_instance_types_disabled, 1085 anon_1.instance_types_is_public as anon_1_instance_types_is_public, 1086 instance_type_extra_specs_1.created_at as instance_type_extra_specs_1_created_at, 1087 instance_type_extra_specs_1.updated_at as instance_type_extra_specs_1_updated_at, 1088 instance_type_extra_specs_1.deleted_at as instance_type_extra_specs_1_deleted_at, 1089 instance_type_extra_specs_1.deleted as instance_type_extra_specs_1_deleted, 1090 instance_type_extra_specs_1.id as instance_type_extra_specs_1_id, 1091 instance_type_extra_specs_1."key" as instance_type_extra_specs_1_key, 1092 instance_type_extra_specs_1.value as instance_type_extra_specs_1_value, 1093 instance_type_extra_specs_1.instance_type_id as instance_type_extra_specs_1_instance_type_id 1094 from (select instance_types.created_at as instance_types_created_at, 1095 instance_types.updated_at as instance_types_updated_at, 1096 instance_types.deleted_at as instance_types_deleted_at, 1097 instance_types.deleted as instance_types_deleted, 1098 instance_types.id as instance_types_id, 1099 instance_types.name as instance_types_name, 1100 instance_types.memory_mb as instance_types_memory_mb, 1101 instance_types.vcpus as instance_types_vcpus, 1102 instance_types.root_gb as instance_types_root_gb, 1103 instance_types.ephemeral_gb as instance_types_ephemeral_gb, 1104 instance_types.flavorid as instance_types_flavorid, 1105 instance_types.swap as instance_types_swap, 1106 instance_types.rxtx_factor as instance_types_rxtx_factor, 1107 instance_types.vcpu_weight as instance_types_vcpu_weight, 1108 instance_types.disabled as instance_types_disabled, 1109 instance_types.is_public as instance_types_is_public 1110 from instance_types 1111 where instance_types.deleted = $1 1112 and (instance_types.is_public = true 1113 or (exists (select 1 1114 from instance_type_projects 1115 where instance_type_projects.instance_type_id = instance_types.id 1116 and instance_type_projects.deleted = $2 1117 and instance_type_projects.project_id = $3))) 1118 and instance_types.id = $4 1119 offset $5 rows 1120 limit $6) 1121 as anon_1 1122 left join instance_type_extra_specs as instance_type_extra_specs_1 1123 on instance_type_extra_specs_1.instance_type_id = anon_1.instance_types_id 1124 and instance_type_extra_specs_1.deleted = $7 1125 ---- 1126 project 1127 ├── columns: anon_1_instance_types_created_at:15 anon_1_instance_types_updated_at:16 anon_1_instance_types_deleted_at:14 anon_1_instance_types_deleted:13!null anon_1_instance_types_id:1!null anon_1_instance_types_name:2 anon_1_instance_types_memory_mb:3!null anon_1_instance_types_vcpus:4!null anon_1_instance_types_root_gb:5 anon_1_instance_types_ephemeral_gb:6 anon_1_instance_types_flavorid:7 anon_1_instance_types_swap:8!null anon_1_instance_types_rxtx_factor:9 anon_1_instance_types_vcpu_weight:10 anon_1_instance_types_disabled:11 anon_1_instance_types_is_public:12 instance_type_extra_specs_1_created_at:34 instance_type_extra_specs_1_updated_at:35 instance_type_extra_specs_1_deleted_at:33 instance_type_extra_specs_1_deleted:32 instance_type_extra_specs_1_id:28 instance_type_extra_specs_1_key:29 instance_type_extra_specs_1_value:30 instance_type_extra_specs_1_instance_type_id:31 1128 ├── immutable, side-effects, has-placeholder 1129 ├── key: (1,28) 1130 ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 1131 └── right-join (hash) 1132 ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 instance_type_extra_specs_1.id:28 key:29 value:30 instance_type_extra_specs_1.instance_type_id:31 instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 1133 ├── immutable, side-effects, has-placeholder 1134 ├── key: (1,28) 1135 ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 1136 ├── select 1137 │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32!null instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 1138 │ ├── has-placeholder 1139 │ ├── key: (28) 1140 │ ├── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 1141 │ ├── scan instance_type_extra_specs_1 1142 │ │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 1143 │ │ ├── key: (28) 1144 │ │ └── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 1145 │ └── filters 1146 │ └── instance_type_extra_specs_1.deleted:32 = $7 [outer=(32), constraints=(/32: (/NULL - ])] 1147 ├── limit 1148 │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 1149 │ ├── immutable, side-effects, has-placeholder 1150 │ ├── key: (1) 1151 │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1152 │ ├── offset 1153 │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 1154 │ │ ├── has-placeholder 1155 │ │ ├── key: (1) 1156 │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1157 │ │ ├── select 1158 │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 1159 │ │ │ ├── has-placeholder 1160 │ │ │ ├── key: (1) 1161 │ │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1162 │ │ │ ├── group-by 1163 │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 1164 │ │ │ │ ├── grouping columns: instance_types.id:1!null 1165 │ │ │ │ ├── internal-ordering: +1 1166 │ │ │ │ ├── has-placeholder 1167 │ │ │ │ ├── key: (1) 1168 │ │ │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1169 │ │ │ │ ├── left-join (merge) 1170 │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_projects.instance_type_id:18 true:25 1171 │ │ │ │ │ ├── left ordering: +1 1172 │ │ │ │ │ ├── right ordering: +18 1173 │ │ │ │ │ ├── has-placeholder 1174 │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1175 │ │ │ │ │ ├── ordering: +1 1176 │ │ │ │ │ ├── select 1177 │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 1178 │ │ │ │ │ │ ├── has-placeholder 1179 │ │ │ │ │ │ ├── key: (1) 1180 │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1181 │ │ │ │ │ │ ├── ordering: +1 1182 │ │ │ │ │ │ ├── scan instance_types 1183 │ │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13 instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 1184 │ │ │ │ │ │ │ ├── key: (1) 1185 │ │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1186 │ │ │ │ │ │ │ └── ordering: +1 1187 │ │ │ │ │ │ └── filters 1188 │ │ │ │ │ │ ├── instance_types.id:1 = $4 [outer=(1), constraints=(/1: (/NULL - ])] 1189 │ │ │ │ │ │ └── instance_types.deleted:13 = $1 [outer=(13), constraints=(/13: (/NULL - ])] 1190 │ │ │ │ │ ├── project 1191 │ │ │ │ │ │ ├── columns: true:25!null instance_type_projects.instance_type_id:18!null 1192 │ │ │ │ │ │ ├── has-placeholder 1193 │ │ │ │ │ │ ├── fd: ()-->(25) 1194 │ │ │ │ │ │ ├── ordering: +18 opt(25) [actual: +18] 1195 │ │ │ │ │ │ ├── select 1196 │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19!null instance_type_projects.deleted:20!null 1197 │ │ │ │ │ │ │ ├── has-placeholder 1198 │ │ │ │ │ │ │ ├── key: (18-20) 1199 │ │ │ │ │ │ │ ├── ordering: +18 1200 │ │ │ │ │ │ │ ├── scan instance_type_projects@secondary 1201 │ │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19 instance_type_projects.deleted:20 1202 │ │ │ │ │ │ │ │ ├── lax-key: (18-20) 1203 │ │ │ │ │ │ │ │ └── ordering: +18 1204 │ │ │ │ │ │ │ └── filters 1205 │ │ │ │ │ │ │ ├── instance_type_projects.deleted:20 = $2 [outer=(20), constraints=(/20: (/NULL - ])] 1206 │ │ │ │ │ │ │ ├── project_id:19 = $3 [outer=(19), constraints=(/19: (/NULL - ])] 1207 │ │ │ │ │ │ │ └── instance_type_projects.instance_type_id:18 = $4 [outer=(18), constraints=(/18: (/NULL - ])] 1208 │ │ │ │ │ │ └── projections 1209 │ │ │ │ │ │ └── true [as=true:25] 1210 │ │ │ │ │ └── filters (true) 1211 │ │ │ │ └── aggregations 1212 │ │ │ │ ├── const-not-null-agg [as=true_agg:26, outer=(25)] 1213 │ │ │ │ │ └── true:25 1214 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 1215 │ │ │ │ │ └── name:2 1216 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 1217 │ │ │ │ │ └── memory_mb:3 1218 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 1219 │ │ │ │ │ └── vcpus:4 1220 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 1221 │ │ │ │ │ └── root_gb:5 1222 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 1223 │ │ │ │ │ └── ephemeral_gb:6 1224 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 1225 │ │ │ │ │ └── flavorid:7 1226 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 1227 │ │ │ │ │ └── swap:8 1228 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 1229 │ │ │ │ │ └── rxtx_factor:9 1230 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 1231 │ │ │ │ │ └── vcpu_weight:10 1232 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 1233 │ │ │ │ │ └── disabled:11 1234 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 1235 │ │ │ │ │ └── is_public:12 1236 │ │ │ │ ├── const-agg [as=instance_types.deleted:13, outer=(13)] 1237 │ │ │ │ │ └── instance_types.deleted:13 1238 │ │ │ │ ├── const-agg [as=instance_types.deleted_at:14, outer=(14)] 1239 │ │ │ │ │ └── instance_types.deleted_at:14 1240 │ │ │ │ ├── const-agg [as=instance_types.created_at:15, outer=(15)] 1241 │ │ │ │ │ └── instance_types.created_at:15 1242 │ │ │ │ └── const-agg [as=instance_types.updated_at:16, outer=(16)] 1243 │ │ │ │ └── instance_types.updated_at:16 1244 │ │ │ └── filters 1245 │ │ │ └── (is_public:12 = true) OR (true_agg:26 IS NOT NULL) [outer=(12,26)] 1246 │ │ └── $5 1247 │ └── $6 1248 └── filters 1249 └── instance_type_extra_specs_1.instance_type_id:31 = instance_types.id:1 [outer=(1,31), constraints=(/1: (/NULL - ]; /31: (/NULL - ]), fd=(1)==(31), (31)==(1)] 1250 1251 opt 1252 select anon_1.flavors_created_at as anon_1_flavors_created_at, 1253 anon_1.flavors_updated_at as anon_1_flavors_updated_at, 1254 anon_1.flavors_id as anon_1_flavors_id, 1255 anon_1.flavors_name as anon_1_flavors_name, 1256 anon_1.flavors_memory_mb as anon_1_flavors_memory_mb, 1257 anon_1.flavors_vcpus as anon_1_flavors_vcpus, 1258 anon_1.flavors_root_gb as anon_1_flavors_root_gb, 1259 anon_1.flavors_ephemeral_gb as anon_1_flavors_ephemeral_gb, 1260 anon_1.flavors_flavorid as anon_1_flavors_flavorid, 1261 anon_1.flavors_swap as anon_1_flavors_swap, 1262 anon_1.flavors_rxtx_factor as anon_1_flavors_rxtx_factor, 1263 anon_1.flavors_vcpu_weight as anon_1_flavors_vcpu_weight, 1264 anon_1.flavors_disabled as anon_1_flavors_disabled, 1265 anon_1.flavors_is_public as anon_1_flavors_is_public, 1266 flavor_extra_specs_1.created_at as flavor_extra_specs_1_created_at, 1267 flavor_extra_specs_1.updated_at as flavor_extra_specs_1_updated_at, 1268 flavor_extra_specs_1.id as flavor_extra_specs_1_id, 1269 flavor_extra_specs_1."key" as flavor_extra_specs_1_key, 1270 flavor_extra_specs_1.value as flavor_extra_specs_1_value, 1271 flavor_extra_specs_1.flavor_id as flavor_extra_specs_1_flavor_id 1272 from (select flavors.created_at as flavors_created_at, 1273 flavors.updated_at as flavors_updated_at, 1274 flavors.id as flavors_id, 1275 flavors.name as flavors_name, 1276 flavors.memory_mb as flavors_memory_mb, 1277 flavors.vcpus as flavors_vcpus, 1278 flavors.root_gb as flavors_root_gb, 1279 flavors.ephemeral_gb as flavors_ephemeral_gb, 1280 flavors.flavorid as flavors_flavorid, 1281 flavors.swap as flavors_swap, 1282 flavors.rxtx_factor as flavors_rxtx_factor, 1283 flavors.vcpu_weight as flavors_vcpu_weight, 1284 flavors.disabled as flavors_disabled, 1285 flavors.is_public as flavors_is_public 1286 from flavors 1287 where (flavors.is_public = true 1288 or (exists (select 1 1289 from flavor_projects 1290 where flavor_projects.flavor_id = flavors.id 1291 and flavor_projects.project_id = $1))) 1292 and flavors.name = $2 1293 offset $3 rows 1294 limit $4) 1295 as anon_1 1296 left join flavor_extra_specs as flavor_extra_specs_1 1297 on flavor_extra_specs_1.flavor_id = anon_1.flavors_id 1298 ---- 1299 project 1300 ├── columns: anon_1_flavors_created_at:14 anon_1_flavors_updated_at:15 anon_1_flavors_id:1!null anon_1_flavors_name:2!null anon_1_flavors_memory_mb:3!null anon_1_flavors_vcpus:4!null anon_1_flavors_root_gb:5 anon_1_flavors_ephemeral_gb:6 anon_1_flavors_flavorid:7!null anon_1_flavors_swap:8!null anon_1_flavors_rxtx_factor:9 anon_1_flavors_vcpu_weight:10 anon_1_flavors_disabled:11 anon_1_flavors_is_public:12 flavor_extra_specs_1_created_at:29 flavor_extra_specs_1_updated_at:30 flavor_extra_specs_1_id:25 flavor_extra_specs_1_key:26 flavor_extra_specs_1_value:27 flavor_extra_specs_1_flavor_id:28 1301 ├── immutable, side-effects, has-placeholder 1302 ├── key: (1,25) 1303 ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 1304 └── right-join (hash) 1305 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 flavor_extra_specs_1.id:25 key:26 value:27 flavor_extra_specs_1.flavor_id:28 flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 1306 ├── immutable, side-effects, has-placeholder 1307 ├── key: (1,25) 1308 ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 1309 ├── scan flavor_extra_specs_1 1310 │ ├── columns: flavor_extra_specs_1.id:25!null key:26!null value:27 flavor_extra_specs_1.flavor_id:28!null flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 1311 │ ├── key: (25) 1312 │ └── fd: (25)-->(26-30), (26,28)-->(25,27,29,30) 1313 ├── limit 1314 │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 1315 │ ├── immutable, side-effects, has-placeholder 1316 │ ├── key: (1) 1317 │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1318 │ ├── offset 1319 │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 1320 │ │ ├── has-placeholder 1321 │ │ ├── key: (1) 1322 │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1323 │ │ ├── select 1324 │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 1325 │ │ │ ├── has-placeholder 1326 │ │ │ ├── key: (1) 1327 │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1328 │ │ │ ├── group-by 1329 │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 1330 │ │ │ │ ├── grouping columns: flavors.id:1!null 1331 │ │ │ │ ├── internal-ordering: +1 1332 │ │ │ │ ├── has-placeholder 1333 │ │ │ │ ├── key: (1) 1334 │ │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1335 │ │ │ │ ├── left-join (merge) 1336 │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_projects.flavor_id:17 true:22 1337 │ │ │ │ │ ├── left ordering: +1 1338 │ │ │ │ │ ├── right ordering: +17 1339 │ │ │ │ │ ├── has-placeholder 1340 │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1341 │ │ │ │ │ ├── ordering: +1 1342 │ │ │ │ │ ├── select 1343 │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 1344 │ │ │ │ │ │ ├── has-placeholder 1345 │ │ │ │ │ │ ├── key: (1) 1346 │ │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1347 │ │ │ │ │ │ ├── ordering: +1 1348 │ │ │ │ │ │ ├── scan flavors 1349 │ │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 1350 │ │ │ │ │ │ │ ├── key: (1) 1351 │ │ │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1352 │ │ │ │ │ │ │ └── ordering: +1 1353 │ │ │ │ │ │ └── filters 1354 │ │ │ │ │ │ └── name:2 = $2 [outer=(2), constraints=(/2: (/NULL - ])] 1355 │ │ │ │ │ ├── project 1356 │ │ │ │ │ │ ├── columns: true:22!null flavor_projects.flavor_id:17!null 1357 │ │ │ │ │ │ ├── has-placeholder 1358 │ │ │ │ │ │ ├── fd: ()-->(22) 1359 │ │ │ │ │ │ ├── ordering: +17 opt(22) [actual: +17] 1360 │ │ │ │ │ │ ├── select 1361 │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 1362 │ │ │ │ │ │ │ ├── has-placeholder 1363 │ │ │ │ │ │ │ ├── key: (17,18) 1364 │ │ │ │ │ │ │ ├── ordering: +17 1365 │ │ │ │ │ │ │ ├── scan flavor_projects@secondary 1366 │ │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 1367 │ │ │ │ │ │ │ │ ├── key: (17,18) 1368 │ │ │ │ │ │ │ │ └── ordering: +17 1369 │ │ │ │ │ │ │ └── filters 1370 │ │ │ │ │ │ │ └── project_id:18 = $1 [outer=(18), constraints=(/18: (/NULL - ])] 1371 │ │ │ │ │ │ └── projections 1372 │ │ │ │ │ │ └── true [as=true:22] 1373 │ │ │ │ │ └── filters (true) 1374 │ │ │ │ └── aggregations 1375 │ │ │ │ ├── const-not-null-agg [as=true_agg:23, outer=(22)] 1376 │ │ │ │ │ └── true:22 1377 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 1378 │ │ │ │ │ └── name:2 1379 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 1380 │ │ │ │ │ └── memory_mb:3 1381 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 1382 │ │ │ │ │ └── vcpus:4 1383 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 1384 │ │ │ │ │ └── root_gb:5 1385 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 1386 │ │ │ │ │ └── ephemeral_gb:6 1387 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 1388 │ │ │ │ │ └── flavorid:7 1389 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 1390 │ │ │ │ │ └── swap:8 1391 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 1392 │ │ │ │ │ └── rxtx_factor:9 1393 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 1394 │ │ │ │ │ └── vcpu_weight:10 1395 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 1396 │ │ │ │ │ └── disabled:11 1397 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 1398 │ │ │ │ │ └── is_public:12 1399 │ │ │ │ ├── const-agg [as=flavors.created_at:14, outer=(14)] 1400 │ │ │ │ │ └── flavors.created_at:14 1401 │ │ │ │ └── const-agg [as=flavors.updated_at:15, outer=(15)] 1402 │ │ │ │ └── flavors.updated_at:15 1403 │ │ │ └── filters 1404 │ │ │ └── (is_public:12 = true) OR (true_agg:23 IS NOT NULL) [outer=(12,23)] 1405 │ │ └── $3 1406 │ └── $4 1407 └── filters 1408 └── flavor_extra_specs_1.flavor_id:28 = flavors.id:1 [outer=(1,28), constraints=(/1: (/NULL - ]; /28: (/NULL - ]), fd=(1)==(28), (28)==(1)] 1409 1410 opt 1411 select anon_1.flavors_created_at as anon_1_flavors_created_at, 1412 anon_1.flavors_updated_at as anon_1_flavors_updated_at, 1413 anon_1.flavors_id as anon_1_flavors_id, 1414 anon_1.flavors_name as anon_1_flavors_name, 1415 anon_1.flavors_memory_mb as anon_1_flavors_memory_mb, 1416 anon_1.flavors_vcpus as anon_1_flavors_vcpus, 1417 anon_1.flavors_root_gb as anon_1_flavors_root_gb, 1418 anon_1.flavors_ephemeral_gb as anon_1_flavors_ephemeral_gb, 1419 anon_1.flavors_flavorid as anon_1_flavors_flavorid, 1420 anon_1.flavors_swap as anon_1_flavors_swap, 1421 anon_1.flavors_rxtx_factor as anon_1_flavors_rxtx_factor, 1422 anon_1.flavors_vcpu_weight as anon_1_flavors_vcpu_weight, 1423 anon_1.flavors_disabled as anon_1_flavors_disabled, 1424 anon_1.flavors_is_public as anon_1_flavors_is_public, 1425 flavor_extra_specs_1.created_at as flavor_extra_specs_1_created_at, 1426 flavor_extra_specs_1.updated_at as flavor_extra_specs_1_updated_at, 1427 flavor_extra_specs_1.id as flavor_extra_specs_1_id, 1428 flavor_extra_specs_1."key" as flavor_extra_specs_1_key, 1429 flavor_extra_specs_1.value as flavor_extra_specs_1_value, 1430 flavor_extra_specs_1.flavor_id as flavor_extra_specs_1_flavor_id 1431 from (select flavors.created_at as flavors_created_at, 1432 flavors.updated_at as flavors_updated_at, 1433 flavors.id as flavors_id, 1434 flavors.name as flavors_name, 1435 flavors.memory_mb as flavors_memory_mb, 1436 flavors.vcpus as flavors_vcpus, 1437 flavors.root_gb as flavors_root_gb, 1438 flavors.ephemeral_gb as flavors_ephemeral_gb, 1439 flavors.flavorid as flavors_flavorid, 1440 flavors.swap as flavors_swap, 1441 flavors.rxtx_factor as flavors_rxtx_factor, 1442 flavors.vcpu_weight as flavors_vcpu_weight, 1443 flavors.disabled as flavors_disabled, 1444 flavors.is_public as flavors_is_public 1445 from flavors 1446 where (flavors.is_public = true 1447 or (exists (select 1 1448 from flavor_projects 1449 where flavor_projects.flavor_id = flavors.id 1450 and flavor_projects.project_id = $1))) 1451 and flavors.flavorid = $2 1452 offset $3 rows 1453 limit $4) 1454 as anon_1 1455 left join flavor_extra_specs as flavor_extra_specs_1 1456 on flavor_extra_specs_1.flavor_id = anon_1.flavors_id 1457 ---- 1458 project 1459 ├── columns: anon_1_flavors_created_at:14 anon_1_flavors_updated_at:15 anon_1_flavors_id:1!null anon_1_flavors_name:2!null anon_1_flavors_memory_mb:3!null anon_1_flavors_vcpus:4!null anon_1_flavors_root_gb:5 anon_1_flavors_ephemeral_gb:6 anon_1_flavors_flavorid:7!null anon_1_flavors_swap:8!null anon_1_flavors_rxtx_factor:9 anon_1_flavors_vcpu_weight:10 anon_1_flavors_disabled:11 anon_1_flavors_is_public:12 flavor_extra_specs_1_created_at:29 flavor_extra_specs_1_updated_at:30 flavor_extra_specs_1_id:25 flavor_extra_specs_1_key:26 flavor_extra_specs_1_value:27 flavor_extra_specs_1_flavor_id:28 1460 ├── immutable, side-effects, has-placeholder 1461 ├── key: (1,25) 1462 ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 1463 └── right-join (hash) 1464 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 flavor_extra_specs_1.id:25 key:26 value:27 flavor_extra_specs_1.flavor_id:28 flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 1465 ├── immutable, side-effects, has-placeholder 1466 ├── key: (1,25) 1467 ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 1468 ├── scan flavor_extra_specs_1 1469 │ ├── columns: flavor_extra_specs_1.id:25!null key:26!null value:27 flavor_extra_specs_1.flavor_id:28!null flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 1470 │ ├── key: (25) 1471 │ └── fd: (25)-->(26-30), (26,28)-->(25,27,29,30) 1472 ├── limit 1473 │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 1474 │ ├── immutable, side-effects, has-placeholder 1475 │ ├── key: (1) 1476 │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1477 │ ├── offset 1478 │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 1479 │ │ ├── has-placeholder 1480 │ │ ├── key: (1) 1481 │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1482 │ │ ├── select 1483 │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 1484 │ │ │ ├── has-placeholder 1485 │ │ │ ├── key: (1) 1486 │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1487 │ │ │ ├── group-by 1488 │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 1489 │ │ │ │ ├── grouping columns: flavors.id:1!null 1490 │ │ │ │ ├── internal-ordering: +1 1491 │ │ │ │ ├── has-placeholder 1492 │ │ │ │ ├── key: (1) 1493 │ │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1494 │ │ │ │ ├── left-join (merge) 1495 │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_projects.flavor_id:17 true:22 1496 │ │ │ │ │ ├── left ordering: +1 1497 │ │ │ │ │ ├── right ordering: +17 1498 │ │ │ │ │ ├── has-placeholder 1499 │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1500 │ │ │ │ │ ├── ordering: +1 1501 │ │ │ │ │ ├── select 1502 │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 1503 │ │ │ │ │ │ ├── has-placeholder 1504 │ │ │ │ │ │ ├── key: (1) 1505 │ │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1506 │ │ │ │ │ │ ├── ordering: +1 1507 │ │ │ │ │ │ ├── scan flavors 1508 │ │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 1509 │ │ │ │ │ │ │ ├── key: (1) 1510 │ │ │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1511 │ │ │ │ │ │ │ └── ordering: +1 1512 │ │ │ │ │ │ └── filters 1513 │ │ │ │ │ │ └── flavorid:7 = $2 [outer=(7), constraints=(/7: (/NULL - ])] 1514 │ │ │ │ │ ├── project 1515 │ │ │ │ │ │ ├── columns: true:22!null flavor_projects.flavor_id:17!null 1516 │ │ │ │ │ │ ├── has-placeholder 1517 │ │ │ │ │ │ ├── fd: ()-->(22) 1518 │ │ │ │ │ │ ├── ordering: +17 opt(22) [actual: +17] 1519 │ │ │ │ │ │ ├── select 1520 │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 1521 │ │ │ │ │ │ │ ├── has-placeholder 1522 │ │ │ │ │ │ │ ├── key: (17,18) 1523 │ │ │ │ │ │ │ ├── ordering: +17 1524 │ │ │ │ │ │ │ ├── scan flavor_projects@secondary 1525 │ │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 1526 │ │ │ │ │ │ │ │ ├── key: (17,18) 1527 │ │ │ │ │ │ │ │ └── ordering: +17 1528 │ │ │ │ │ │ │ └── filters 1529 │ │ │ │ │ │ │ └── project_id:18 = $1 [outer=(18), constraints=(/18: (/NULL - ])] 1530 │ │ │ │ │ │ └── projections 1531 │ │ │ │ │ │ └── true [as=true:22] 1532 │ │ │ │ │ └── filters (true) 1533 │ │ │ │ └── aggregations 1534 │ │ │ │ ├── const-not-null-agg [as=true_agg:23, outer=(22)] 1535 │ │ │ │ │ └── true:22 1536 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 1537 │ │ │ │ │ └── name:2 1538 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 1539 │ │ │ │ │ └── memory_mb:3 1540 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 1541 │ │ │ │ │ └── vcpus:4 1542 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 1543 │ │ │ │ │ └── root_gb:5 1544 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 1545 │ │ │ │ │ └── ephemeral_gb:6 1546 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 1547 │ │ │ │ │ └── flavorid:7 1548 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 1549 │ │ │ │ │ └── swap:8 1550 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 1551 │ │ │ │ │ └── rxtx_factor:9 1552 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 1553 │ │ │ │ │ └── vcpu_weight:10 1554 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 1555 │ │ │ │ │ └── disabled:11 1556 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 1557 │ │ │ │ │ └── is_public:12 1558 │ │ │ │ ├── const-agg [as=flavors.created_at:14, outer=(14)] 1559 │ │ │ │ │ └── flavors.created_at:14 1560 │ │ │ │ └── const-agg [as=flavors.updated_at:15, outer=(15)] 1561 │ │ │ │ └── flavors.updated_at:15 1562 │ │ │ └── filters 1563 │ │ │ └── (is_public:12 = true) OR (true_agg:23 IS NOT NULL) [outer=(12,23)] 1564 │ │ └── $3 1565 │ └── $4 1566 └── filters 1567 └── flavor_extra_specs_1.flavor_id:28 = flavors.id:1 [outer=(1,28), constraints=(/1: (/NULL - ]; /28: (/NULL - ]), fd=(1)==(28), (28)==(1)] 1568 1569 opt 1570 select anon_1.flavors_created_at as anon_1_flavors_created_at, 1571 anon_1.flavors_updated_at as anon_1_flavors_updated_at, 1572 anon_1.flavors_id as anon_1_flavors_id, 1573 anon_1.flavors_name as anon_1_flavors_name, 1574 anon_1.flavors_memory_mb as anon_1_flavors_memory_mb, 1575 anon_1.flavors_vcpus as anon_1_flavors_vcpus, 1576 anon_1.flavors_root_gb as anon_1_flavors_root_gb, 1577 anon_1.flavors_ephemeral_gb as anon_1_flavors_ephemeral_gb, 1578 anon_1.flavors_flavorid as anon_1_flavors_flavorid, 1579 anon_1.flavors_swap as anon_1_flavors_swap, 1580 anon_1.flavors_rxtx_factor as anon_1_flavors_rxtx_factor, 1581 anon_1.flavors_vcpu_weight as anon_1_flavors_vcpu_weight, 1582 anon_1.flavors_disabled as anon_1_flavors_disabled, 1583 anon_1.flavors_is_public as anon_1_flavors_is_public, 1584 flavor_extra_specs_1.created_at as flavor_extra_specs_1_created_at, 1585 flavor_extra_specs_1.updated_at as flavor_extra_specs_1_updated_at, 1586 flavor_extra_specs_1.id as flavor_extra_specs_1_id, 1587 flavor_extra_specs_1."key" as flavor_extra_specs_1_key, 1588 flavor_extra_specs_1.value as flavor_extra_specs_1_value, 1589 flavor_extra_specs_1.flavor_id as flavor_extra_specs_1_flavor_id 1590 from (select flavors.created_at as flavors_created_at, 1591 flavors.updated_at as flavors_updated_at, 1592 flavors.id as flavors_id, 1593 flavors.name as flavors_name, 1594 flavors.memory_mb as flavors_memory_mb, 1595 flavors.vcpus as flavors_vcpus, 1596 flavors.root_gb as flavors_root_gb, 1597 flavors.ephemeral_gb as flavors_ephemeral_gb, 1598 flavors.flavorid as flavors_flavorid, 1599 flavors.swap as flavors_swap, 1600 flavors.rxtx_factor as flavors_rxtx_factor, 1601 flavors.vcpu_weight as flavors_vcpu_weight, 1602 flavors.disabled as flavors_disabled, 1603 flavors.is_public as flavors_is_public 1604 from flavors 1605 where (flavors.is_public = true 1606 or (exists (select 1 1607 from flavor_projects 1608 where flavor_projects.flavor_id = flavors.id 1609 and flavor_projects.project_id = $1))) 1610 and (flavors.flavorid > $2 1611 or flavors.flavorid = $3 1612 and flavors.id > $4) 1613 order by flavors.flavorid asc, flavors.id asc 1614 offset $5 rows 1615 limit $6) 1616 as anon_1 1617 left join flavor_extra_specs as flavor_extra_specs_1 1618 on flavor_extra_specs_1.flavor_id = anon_1.flavors_id 1619 order by anon_1.flavors_flavorid asc, anon_1.flavors_id asc 1620 ---- 1621 sort 1622 ├── columns: anon_1_flavors_created_at:14 anon_1_flavors_updated_at:15 anon_1_flavors_id:1!null anon_1_flavors_name:2!null anon_1_flavors_memory_mb:3!null anon_1_flavors_vcpus:4!null anon_1_flavors_root_gb:5 anon_1_flavors_ephemeral_gb:6 anon_1_flavors_flavorid:7!null anon_1_flavors_swap:8!null anon_1_flavors_rxtx_factor:9 anon_1_flavors_vcpu_weight:10 anon_1_flavors_disabled:11 anon_1_flavors_is_public:12 flavor_extra_specs_1_created_at:29 flavor_extra_specs_1_updated_at:30 flavor_extra_specs_1_id:25 flavor_extra_specs_1_key:26 flavor_extra_specs_1_value:27 flavor_extra_specs_1_flavor_id:28 1623 ├── immutable, side-effects, has-placeholder 1624 ├── key: (1,25) 1625 ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 1626 ├── ordering: +7 1627 └── project 1628 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_extra_specs_1.id:25 key:26 value:27 flavor_extra_specs_1.flavor_id:28 flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 1629 ├── immutable, side-effects, has-placeholder 1630 ├── key: (1,25) 1631 ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 1632 └── right-join (hash) 1633 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 flavor_extra_specs_1.id:25 key:26 value:27 flavor_extra_specs_1.flavor_id:28 flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 1634 ├── immutable, side-effects, has-placeholder 1635 ├── key: (1,25) 1636 ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 1637 ├── scan flavor_extra_specs_1 1638 │ ├── columns: flavor_extra_specs_1.id:25!null key:26!null value:27 flavor_extra_specs_1.flavor_id:28!null flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 1639 │ ├── key: (25) 1640 │ └── fd: (25)-->(26-30), (26,28)-->(25,27,29,30) 1641 ├── limit 1642 │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 1643 │ ├── internal-ordering: +7 1644 │ ├── immutable, side-effects, has-placeholder 1645 │ ├── key: (1) 1646 │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1647 │ ├── offset 1648 │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 1649 │ │ ├── internal-ordering: +7 1650 │ │ ├── has-placeholder 1651 │ │ ├── key: (1) 1652 │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1653 │ │ ├── ordering: +7 1654 │ │ ├── sort 1655 │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 1656 │ │ │ ├── has-placeholder 1657 │ │ │ ├── key: (1) 1658 │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1659 │ │ │ ├── ordering: +7 1660 │ │ │ └── select 1661 │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 1662 │ │ │ ├── has-placeholder 1663 │ │ │ ├── key: (1) 1664 │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1665 │ │ │ ├── group-by 1666 │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 1667 │ │ │ │ ├── grouping columns: flavors.id:1!null 1668 │ │ │ │ ├── internal-ordering: +1 1669 │ │ │ │ ├── has-placeholder 1670 │ │ │ │ ├── key: (1) 1671 │ │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1672 │ │ │ │ ├── left-join (merge) 1673 │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_projects.flavor_id:17 true:22 1674 │ │ │ │ │ ├── left ordering: +1 1675 │ │ │ │ │ ├── right ordering: +17 1676 │ │ │ │ │ ├── has-placeholder 1677 │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1678 │ │ │ │ │ ├── ordering: +1 1679 │ │ │ │ │ ├── select 1680 │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 1681 │ │ │ │ │ │ ├── has-placeholder 1682 │ │ │ │ │ │ ├── key: (1) 1683 │ │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1684 │ │ │ │ │ │ ├── ordering: +1 1685 │ │ │ │ │ │ ├── scan flavors 1686 │ │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 1687 │ │ │ │ │ │ │ ├── key: (1) 1688 │ │ │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 1689 │ │ │ │ │ │ │ └── ordering: +1 1690 │ │ │ │ │ │ └── filters 1691 │ │ │ │ │ │ └── (flavorid:7 > $2) OR ((flavorid:7 = $3) AND (flavors.id:1 > $4)) [outer=(1,7), constraints=(/7: (/NULL - ])] 1692 │ │ │ │ │ ├── project 1693 │ │ │ │ │ │ ├── columns: true:22!null flavor_projects.flavor_id:17!null 1694 │ │ │ │ │ │ ├── has-placeholder 1695 │ │ │ │ │ │ ├── fd: ()-->(22) 1696 │ │ │ │ │ │ ├── ordering: +17 opt(22) [actual: +17] 1697 │ │ │ │ │ │ ├── select 1698 │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 1699 │ │ │ │ │ │ │ ├── has-placeholder 1700 │ │ │ │ │ │ │ ├── key: (17,18) 1701 │ │ │ │ │ │ │ ├── ordering: +17 1702 │ │ │ │ │ │ │ ├── scan flavor_projects@secondary 1703 │ │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 1704 │ │ │ │ │ │ │ │ ├── key: (17,18) 1705 │ │ │ │ │ │ │ │ └── ordering: +17 1706 │ │ │ │ │ │ │ └── filters 1707 │ │ │ │ │ │ │ └── project_id:18 = $1 [outer=(18), constraints=(/18: (/NULL - ])] 1708 │ │ │ │ │ │ └── projections 1709 │ │ │ │ │ │ └── true [as=true:22] 1710 │ │ │ │ │ └── filters (true) 1711 │ │ │ │ └── aggregations 1712 │ │ │ │ ├── const-not-null-agg [as=true_agg:23, outer=(22)] 1713 │ │ │ │ │ └── true:22 1714 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 1715 │ │ │ │ │ └── name:2 1716 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 1717 │ │ │ │ │ └── memory_mb:3 1718 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 1719 │ │ │ │ │ └── vcpus:4 1720 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 1721 │ │ │ │ │ └── root_gb:5 1722 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 1723 │ │ │ │ │ └── ephemeral_gb:6 1724 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 1725 │ │ │ │ │ └── flavorid:7 1726 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 1727 │ │ │ │ │ └── swap:8 1728 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 1729 │ │ │ │ │ └── rxtx_factor:9 1730 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 1731 │ │ │ │ │ └── vcpu_weight:10 1732 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 1733 │ │ │ │ │ └── disabled:11 1734 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 1735 │ │ │ │ │ └── is_public:12 1736 │ │ │ │ ├── const-agg [as=flavors.created_at:14, outer=(14)] 1737 │ │ │ │ │ └── flavors.created_at:14 1738 │ │ │ │ └── const-agg [as=flavors.updated_at:15, outer=(15)] 1739 │ │ │ │ └── flavors.updated_at:15 1740 │ │ │ └── filters 1741 │ │ │ └── (is_public:12 = true) OR (true_agg:23 IS NOT NULL) [outer=(12,23)] 1742 │ │ └── $5 1743 │ └── $6 1744 └── filters 1745 └── flavor_extra_specs_1.flavor_id:28 = flavors.id:1 [outer=(1,28), constraints=(/1: (/NULL - ]; /28: (/NULL - ]), fd=(1)==(28), (28)==(1)] 1746 1747 opt 1748 select anon_1.instance_types_created_at as anon_1_instance_types_created_at, 1749 anon_1.instance_types_updated_at as anon_1_instance_types_updated_at, 1750 anon_1.instance_types_deleted_at as anon_1_instance_types_deleted_at, 1751 anon_1.instance_types_deleted as anon_1_instance_types_deleted, 1752 anon_1.instance_types_id as anon_1_instance_types_id, 1753 anon_1.instance_types_name as anon_1_instance_types_name, 1754 anon_1.instance_types_memory_mb as anon_1_instance_types_memory_mb, 1755 anon_1.instance_types_vcpus as anon_1_instance_types_vcpus, 1756 anon_1.instance_types_root_gb as anon_1_instance_types_root_gb, 1757 anon_1.instance_types_ephemeral_gb as anon_1_instance_types_ephemeral_gb, 1758 anon_1.instance_types_flavorid as anon_1_instance_types_flavorid, 1759 anon_1.instance_types_swap as anon_1_instance_types_swap, 1760 anon_1.instance_types_rxtx_factor as anon_1_instance_types_rxtx_factor, 1761 anon_1.instance_types_vcpu_weight as anon_1_instance_types_vcpu_weight, 1762 anon_1.instance_types_disabled as anon_1_instance_types_disabled, 1763 anon_1.instance_types_is_public as anon_1_instance_types_is_public, 1764 instance_type_extra_specs_1.created_at as instance_type_extra_specs_1_created_at, 1765 instance_type_extra_specs_1.updated_at as instance_type_extra_specs_1_updated_at, 1766 instance_type_extra_specs_1.deleted_at as instance_type_extra_specs_1_deleted_at, 1767 instance_type_extra_specs_1.deleted as instance_type_extra_specs_1_deleted, 1768 instance_type_extra_specs_1.id as instance_type_extra_specs_1_id, 1769 instance_type_extra_specs_1."key" as instance_type_extra_specs_1_key, 1770 instance_type_extra_specs_1.value as instance_type_extra_specs_1_value, 1771 instance_type_extra_specs_1.instance_type_id as instance_type_extra_specs_1_instance_type_id 1772 from (select instance_types.created_at as instance_types_created_at, 1773 instance_types.updated_at as instance_types_updated_at, 1774 instance_types.deleted_at as instance_types_deleted_at, 1775 instance_types.deleted as instance_types_deleted, 1776 instance_types.id as instance_types_id, 1777 instance_types.name as instance_types_name, 1778 instance_types.memory_mb as instance_types_memory_mb, 1779 instance_types.vcpus as instance_types_vcpus, 1780 instance_types.root_gb as instance_types_root_gb, 1781 instance_types.ephemeral_gb as instance_types_ephemeral_gb, 1782 instance_types.flavorid as instance_types_flavorid, 1783 instance_types.swap as instance_types_swap, 1784 instance_types.rxtx_factor as instance_types_rxtx_factor, 1785 instance_types.vcpu_weight as instance_types_vcpu_weight, 1786 instance_types.disabled as instance_types_disabled, 1787 instance_types.is_public as instance_types_is_public 1788 from instance_types 1789 where instance_types.deleted = $1 1790 and (instance_types.is_public = true 1791 or (exists (select 1 1792 from instance_type_projects 1793 where instance_type_projects.instance_type_id = instance_types.id 1794 and instance_type_projects.deleted = $2 1795 and instance_type_projects.project_id = $3))) 1796 order by instance_types.flavorid asc, instance_types.id asc 1797 offset $4 rows 1798 limit $5) 1799 as anon_1 1800 left join instance_type_extra_specs as instance_type_extra_specs_1 1801 on instance_type_extra_specs_1.instance_type_id = anon_1.instance_types_id 1802 and instance_type_extra_specs_1.deleted = $6 1803 order by anon_1.instance_types_flavorid asc, 1804 anon_1.instance_types_id asc 1805 ---- 1806 sort 1807 ├── columns: anon_1_instance_types_created_at:15 anon_1_instance_types_updated_at:16 anon_1_instance_types_deleted_at:14 anon_1_instance_types_deleted:13!null anon_1_instance_types_id:1!null anon_1_instance_types_name:2 anon_1_instance_types_memory_mb:3!null anon_1_instance_types_vcpus:4!null anon_1_instance_types_root_gb:5 anon_1_instance_types_ephemeral_gb:6 anon_1_instance_types_flavorid:7 anon_1_instance_types_swap:8!null anon_1_instance_types_rxtx_factor:9 anon_1_instance_types_vcpu_weight:10 anon_1_instance_types_disabled:11 anon_1_instance_types_is_public:12 instance_type_extra_specs_1_created_at:34 instance_type_extra_specs_1_updated_at:35 instance_type_extra_specs_1_deleted_at:33 instance_type_extra_specs_1_deleted:32 instance_type_extra_specs_1_id:28 instance_type_extra_specs_1_key:29 instance_type_extra_specs_1_value:30 instance_type_extra_specs_1_instance_type_id:31 1808 ├── immutable, side-effects, has-placeholder 1809 ├── key: (1,28) 1810 ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 1811 ├── ordering: +7,+1 1812 └── project 1813 ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_extra_specs_1.id:28 key:29 value:30 instance_type_extra_specs_1.instance_type_id:31 instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 1814 ├── immutable, side-effects, has-placeholder 1815 ├── key: (1,28) 1816 ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 1817 └── right-join (hash) 1818 ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 instance_type_extra_specs_1.id:28 key:29 value:30 instance_type_extra_specs_1.instance_type_id:31 instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 1819 ├── immutable, side-effects, has-placeholder 1820 ├── key: (1,28) 1821 ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 1822 ├── select 1823 │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32!null instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 1824 │ ├── has-placeholder 1825 │ ├── key: (28) 1826 │ ├── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 1827 │ ├── scan instance_type_extra_specs_1 1828 │ │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 1829 │ │ ├── key: (28) 1830 │ │ └── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 1831 │ └── filters 1832 │ └── instance_type_extra_specs_1.deleted:32 = $6 [outer=(32), constraints=(/32: (/NULL - ])] 1833 ├── limit 1834 │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 1835 │ ├── internal-ordering: +7,+1 1836 │ ├── immutable, side-effects, has-placeholder 1837 │ ├── key: (1) 1838 │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1839 │ ├── offset 1840 │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 1841 │ │ ├── internal-ordering: +7,+1 1842 │ │ ├── has-placeholder 1843 │ │ ├── key: (1) 1844 │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1845 │ │ ├── ordering: +7,+1 1846 │ │ ├── sort 1847 │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 1848 │ │ │ ├── has-placeholder 1849 │ │ │ ├── key: (1) 1850 │ │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1851 │ │ │ ├── ordering: +7,+1 1852 │ │ │ └── select 1853 │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 1854 │ │ │ ├── has-placeholder 1855 │ │ │ ├── key: (1) 1856 │ │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1857 │ │ │ ├── group-by 1858 │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 1859 │ │ │ │ ├── grouping columns: instance_types.id:1!null 1860 │ │ │ │ ├── internal-ordering: +1 1861 │ │ │ │ ├── has-placeholder 1862 │ │ │ │ ├── key: (1) 1863 │ │ │ │ ├── fd: (1)-->(2-16,26), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1864 │ │ │ │ ├── left-join (merge) 1865 │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_projects.instance_type_id:18 true:25 1866 │ │ │ │ │ ├── left ordering: +1 1867 │ │ │ │ │ ├── right ordering: +18 1868 │ │ │ │ │ ├── has-placeholder 1869 │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1870 │ │ │ │ │ ├── ordering: +1 1871 │ │ │ │ │ ├── select 1872 │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 1873 │ │ │ │ │ │ ├── has-placeholder 1874 │ │ │ │ │ │ ├── key: (1) 1875 │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1876 │ │ │ │ │ │ ├── ordering: +1 1877 │ │ │ │ │ │ ├── scan instance_types 1878 │ │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13 instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 1879 │ │ │ │ │ │ │ ├── key: (1) 1880 │ │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 1881 │ │ │ │ │ │ │ └── ordering: +1 1882 │ │ │ │ │ │ └── filters 1883 │ │ │ │ │ │ └── instance_types.deleted:13 = $1 [outer=(13), constraints=(/13: (/NULL - ])] 1884 │ │ │ │ │ ├── project 1885 │ │ │ │ │ │ ├── columns: true:25!null instance_type_projects.instance_type_id:18!null 1886 │ │ │ │ │ │ ├── has-placeholder 1887 │ │ │ │ │ │ ├── fd: ()-->(25) 1888 │ │ │ │ │ │ ├── ordering: +18 opt(25) [actual: +18] 1889 │ │ │ │ │ │ ├── select 1890 │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19!null instance_type_projects.deleted:20!null 1891 │ │ │ │ │ │ │ ├── has-placeholder 1892 │ │ │ │ │ │ │ ├── key: (18-20) 1893 │ │ │ │ │ │ │ ├── ordering: +18 1894 │ │ │ │ │ │ │ ├── scan instance_type_projects@secondary 1895 │ │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19 instance_type_projects.deleted:20 1896 │ │ │ │ │ │ │ │ ├── lax-key: (18-20) 1897 │ │ │ │ │ │ │ │ └── ordering: +18 1898 │ │ │ │ │ │ │ └── filters 1899 │ │ │ │ │ │ │ ├── instance_type_projects.deleted:20 = $2 [outer=(20), constraints=(/20: (/NULL - ])] 1900 │ │ │ │ │ │ │ └── project_id:19 = $3 [outer=(19), constraints=(/19: (/NULL - ])] 1901 │ │ │ │ │ │ └── projections 1902 │ │ │ │ │ │ └── true [as=true:25] 1903 │ │ │ │ │ └── filters (true) 1904 │ │ │ │ └── aggregations 1905 │ │ │ │ ├── const-not-null-agg [as=true_agg:26, outer=(25)] 1906 │ │ │ │ │ └── true:25 1907 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 1908 │ │ │ │ │ └── name:2 1909 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 1910 │ │ │ │ │ └── memory_mb:3 1911 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 1912 │ │ │ │ │ └── vcpus:4 1913 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 1914 │ │ │ │ │ └── root_gb:5 1915 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 1916 │ │ │ │ │ └── ephemeral_gb:6 1917 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 1918 │ │ │ │ │ └── flavorid:7 1919 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 1920 │ │ │ │ │ └── swap:8 1921 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 1922 │ │ │ │ │ └── rxtx_factor:9 1923 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 1924 │ │ │ │ │ └── vcpu_weight:10 1925 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 1926 │ │ │ │ │ └── disabled:11 1927 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 1928 │ │ │ │ │ └── is_public:12 1929 │ │ │ │ ├── const-agg [as=instance_types.deleted:13, outer=(13)] 1930 │ │ │ │ │ └── instance_types.deleted:13 1931 │ │ │ │ ├── const-agg [as=instance_types.deleted_at:14, outer=(14)] 1932 │ │ │ │ │ └── instance_types.deleted_at:14 1933 │ │ │ │ ├── const-agg [as=instance_types.created_at:15, outer=(15)] 1934 │ │ │ │ │ └── instance_types.created_at:15 1935 │ │ │ │ └── const-agg [as=instance_types.updated_at:16, outer=(16)] 1936 │ │ │ │ └── instance_types.updated_at:16 1937 │ │ │ └── filters 1938 │ │ │ └── (is_public:12 = true) OR (true_agg:26 IS NOT NULL) [outer=(12,26)] 1939 │ │ └── $4 1940 │ └── $5 1941 └── filters 1942 └── instance_type_extra_specs_1.instance_type_id:31 = instance_types.id:1 [outer=(1,31), constraints=(/1: (/NULL - ]; /31: (/NULL - ]), fd=(1)==(31), (31)==(1)] 1943 1944 opt 1945 select anon_1.instance_types_created_at as anon_1_instance_types_created_at, 1946 anon_1.instance_types_updated_at as anon_1_instance_types_updated_at, 1947 anon_1.instance_types_deleted_at as anon_1_instance_types_deleted_at, 1948 anon_1.instance_types_deleted as anon_1_instance_types_deleted, 1949 anon_1.instance_types_id as anon_1_instance_types_id, 1950 anon_1.instance_types_name as anon_1_instance_types_name, 1951 anon_1.instance_types_memory_mb as anon_1_instance_types_memory_mb, 1952 anon_1.instance_types_vcpus as anon_1_instance_types_vcpus, 1953 anon_1.instance_types_root_gb as anon_1_instance_types_root_gb, 1954 anon_1.instance_types_ephemeral_gb as anon_1_instance_types_ephemeral_gb, 1955 anon_1.instance_types_flavorid as anon_1_instance_types_flavorid, 1956 anon_1.instance_types_swap as anon_1_instance_types_swap, 1957 anon_1.instance_types_rxtx_factor as anon_1_instance_types_rxtx_factor, 1958 anon_1.instance_types_vcpu_weight as anon_1_instance_types_vcpu_weight, 1959 anon_1.instance_types_disabled as anon_1_instance_types_disabled, 1960 anon_1.instance_types_is_public as anon_1_instance_types_is_public, 1961 instance_type_extra_specs_1.created_at as instance_type_extra_specs_1_created_at, 1962 instance_type_extra_specs_1.updated_at as instance_type_extra_specs_1_updated_at, 1963 instance_type_extra_specs_1.deleted_at as instance_type_extra_specs_1_deleted_at, 1964 instance_type_extra_specs_1.deleted as instance_type_extra_specs_1_deleted, 1965 instance_type_extra_specs_1.id as instance_type_extra_specs_1_id, 1966 instance_type_extra_specs_1."key" as instance_type_extra_specs_1_key, 1967 instance_type_extra_specs_1.value as instance_type_extra_specs_1_value, 1968 instance_type_extra_specs_1.instance_type_id as instance_type_extra_specs_1_instance_type_id 1969 from (select instance_types.created_at as instance_types_created_at, 1970 instance_types.updated_at as instance_types_updated_at, 1971 instance_types.deleted_at as instance_types_deleted_at, 1972 instance_types.deleted as instance_types_deleted, 1973 instance_types.id as instance_types_id, 1974 instance_types.name as instance_types_name, 1975 instance_types.memory_mb as instance_types_memory_mb, 1976 instance_types.vcpus as instance_types_vcpus, 1977 instance_types.root_gb as instance_types_root_gb, 1978 instance_types.ephemeral_gb as instance_types_ephemeral_gb, 1979 instance_types.flavorid as instance_types_flavorid, 1980 instance_types.swap as instance_types_swap, 1981 instance_types.rxtx_factor as instance_types_rxtx_factor, 1982 instance_types.vcpu_weight as instance_types_vcpu_weight, 1983 instance_types.disabled as instance_types_disabled, 1984 instance_types.is_public as instance_types_is_public 1985 from instance_types 1986 where instance_types.deleted = $1 1987 and (instance_types.is_public = true 1988 or (exists (select 1 1989 from instance_type_projects 1990 where instance_type_projects.instance_type_id = instance_types.id 1991 and instance_type_projects.deleted = $2 1992 and instance_type_projects.project_id = $3))) 1993 and instance_types.flavorid = $4 1994 offset $5 rows 1995 limit $6) 1996 as anon_1 1997 left join instance_type_extra_specs as instance_type_extra_specs_1 1998 on instance_type_extra_specs_1.instance_type_id = anon_1.instance_types_id 1999 and instance_type_extra_specs_1.deleted = $7 2000 ---- 2001 project 2002 ├── columns: anon_1_instance_types_created_at:15 anon_1_instance_types_updated_at:16 anon_1_instance_types_deleted_at:14 anon_1_instance_types_deleted:13!null anon_1_instance_types_id:1!null anon_1_instance_types_name:2 anon_1_instance_types_memory_mb:3!null anon_1_instance_types_vcpus:4!null anon_1_instance_types_root_gb:5 anon_1_instance_types_ephemeral_gb:6 anon_1_instance_types_flavorid:7!null anon_1_instance_types_swap:8!null anon_1_instance_types_rxtx_factor:9 anon_1_instance_types_vcpu_weight:10 anon_1_instance_types_disabled:11 anon_1_instance_types_is_public:12 instance_type_extra_specs_1_created_at:34 instance_type_extra_specs_1_updated_at:35 instance_type_extra_specs_1_deleted_at:33 instance_type_extra_specs_1_deleted:32 instance_type_extra_specs_1_id:28 instance_type_extra_specs_1_key:29 instance_type_extra_specs_1_value:30 instance_type_extra_specs_1_instance_type_id:31 2003 ├── immutable, side-effects, has-placeholder 2004 ├── key: (1,28) 2005 ├── fd: (1)-->(2-16), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2006 └── right-join (hash) 2007 ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 instance_type_extra_specs_1.id:28 key:29 value:30 instance_type_extra_specs_1.instance_type_id:31 instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 2008 ├── immutable, side-effects, has-placeholder 2009 ├── key: (1,28) 2010 ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2011 ├── select 2012 │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32!null instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 2013 │ ├── has-placeholder 2014 │ ├── key: (28) 2015 │ ├── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2016 │ ├── scan instance_type_extra_specs_1 2017 │ │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 2018 │ │ ├── key: (28) 2019 │ │ └── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2020 │ └── filters 2021 │ └── instance_type_extra_specs_1.deleted:32 = $7 [outer=(32), constraints=(/32: (/NULL - ])] 2022 ├── limit 2023 │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 2024 │ ├── immutable, side-effects, has-placeholder 2025 │ ├── key: (1) 2026 │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2027 │ ├── offset 2028 │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 2029 │ │ ├── has-placeholder 2030 │ │ ├── key: (1) 2031 │ │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2032 │ │ ├── select 2033 │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 2034 │ │ │ ├── has-placeholder 2035 │ │ │ ├── key: (1) 2036 │ │ │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2037 │ │ │ ├── group-by 2038 │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 2039 │ │ │ │ ├── grouping columns: instance_types.id:1!null 2040 │ │ │ │ ├── internal-ordering: +1 2041 │ │ │ │ ├── has-placeholder 2042 │ │ │ │ ├── key: (1) 2043 │ │ │ │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2044 │ │ │ │ ├── left-join (merge) 2045 │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_projects.instance_type_id:18 true:25 2046 │ │ │ │ │ ├── left ordering: +1 2047 │ │ │ │ │ ├── right ordering: +18 2048 │ │ │ │ │ ├── has-placeholder 2049 │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2050 │ │ │ │ │ ├── ordering: +1 2051 │ │ │ │ │ ├── select 2052 │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 2053 │ │ │ │ │ │ ├── has-placeholder 2054 │ │ │ │ │ │ ├── key: (1) 2055 │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2056 │ │ │ │ │ │ ├── ordering: +1 2057 │ │ │ │ │ │ ├── scan instance_types 2058 │ │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13 instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 2059 │ │ │ │ │ │ │ ├── key: (1) 2060 │ │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2061 │ │ │ │ │ │ │ └── ordering: +1 2062 │ │ │ │ │ │ └── filters 2063 │ │ │ │ │ │ ├── instance_types.deleted:13 = $1 [outer=(13), constraints=(/13: (/NULL - ])] 2064 │ │ │ │ │ │ └── flavorid:7 = $4 [outer=(7), constraints=(/7: (/NULL - ])] 2065 │ │ │ │ │ ├── project 2066 │ │ │ │ │ │ ├── columns: true:25!null instance_type_projects.instance_type_id:18!null 2067 │ │ │ │ │ │ ├── has-placeholder 2068 │ │ │ │ │ │ ├── fd: ()-->(25) 2069 │ │ │ │ │ │ ├── ordering: +18 opt(25) [actual: +18] 2070 │ │ │ │ │ │ ├── select 2071 │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19!null instance_type_projects.deleted:20!null 2072 │ │ │ │ │ │ │ ├── has-placeholder 2073 │ │ │ │ │ │ │ ├── key: (18-20) 2074 │ │ │ │ │ │ │ ├── ordering: +18 2075 │ │ │ │ │ │ │ ├── scan instance_type_projects@secondary 2076 │ │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19 instance_type_projects.deleted:20 2077 │ │ │ │ │ │ │ │ ├── lax-key: (18-20) 2078 │ │ │ │ │ │ │ │ └── ordering: +18 2079 │ │ │ │ │ │ │ └── filters 2080 │ │ │ │ │ │ │ ├── instance_type_projects.deleted:20 = $2 [outer=(20), constraints=(/20: (/NULL - ])] 2081 │ │ │ │ │ │ │ └── project_id:19 = $3 [outer=(19), constraints=(/19: (/NULL - ])] 2082 │ │ │ │ │ │ └── projections 2083 │ │ │ │ │ │ └── true [as=true:25] 2084 │ │ │ │ │ └── filters (true) 2085 │ │ │ │ └── aggregations 2086 │ │ │ │ ├── const-not-null-agg [as=true_agg:26, outer=(25)] 2087 │ │ │ │ │ └── true:25 2088 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 2089 │ │ │ │ │ └── name:2 2090 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 2091 │ │ │ │ │ └── memory_mb:3 2092 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 2093 │ │ │ │ │ └── vcpus:4 2094 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 2095 │ │ │ │ │ └── root_gb:5 2096 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 2097 │ │ │ │ │ └── ephemeral_gb:6 2098 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 2099 │ │ │ │ │ └── flavorid:7 2100 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 2101 │ │ │ │ │ └── swap:8 2102 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 2103 │ │ │ │ │ └── rxtx_factor:9 2104 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 2105 │ │ │ │ │ └── vcpu_weight:10 2106 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 2107 │ │ │ │ │ └── disabled:11 2108 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 2109 │ │ │ │ │ └── is_public:12 2110 │ │ │ │ ├── const-agg [as=instance_types.deleted:13, outer=(13)] 2111 │ │ │ │ │ └── instance_types.deleted:13 2112 │ │ │ │ ├── const-agg [as=instance_types.deleted_at:14, outer=(14)] 2113 │ │ │ │ │ └── instance_types.deleted_at:14 2114 │ │ │ │ ├── const-agg [as=instance_types.created_at:15, outer=(15)] 2115 │ │ │ │ │ └── instance_types.created_at:15 2116 │ │ │ │ └── const-agg [as=instance_types.updated_at:16, outer=(16)] 2117 │ │ │ │ └── instance_types.updated_at:16 2118 │ │ │ └── filters 2119 │ │ │ └── (is_public:12 = true) OR (true_agg:26 IS NOT NULL) [outer=(12,26)] 2120 │ │ └── $5 2121 │ └── $6 2122 └── filters 2123 └── instance_type_extra_specs_1.instance_type_id:31 = instance_types.id:1 [outer=(1,31), constraints=(/1: (/NULL - ]; /31: (/NULL - ]), fd=(1)==(31), (31)==(1)] 2124 2125 opt 2126 select flavors.created_at as flavors_created_at, 2127 flavors.updated_at as flavors_updated_at, 2128 flavors.id as flavors_id, 2129 flavors.name as flavors_name, 2130 flavors.memory_mb as flavors_memory_mb, 2131 flavors.vcpus as flavors_vcpus, 2132 flavors.root_gb as flavors_root_gb, 2133 flavors.ephemeral_gb as flavors_ephemeral_gb, 2134 flavors.flavorid as flavors_flavorid, 2135 flavors.swap as flavors_swap, 2136 flavors.rxtx_factor as flavors_rxtx_factor, 2137 flavors.vcpu_weight as flavors_vcpu_weight, 2138 flavors.disabled as flavors_disabled, 2139 flavors.is_public as flavors_is_public, 2140 flavor_extra_specs_1.created_at as flavor_extra_specs_1_created_at, 2141 flavor_extra_specs_1.updated_at as flavor_extra_specs_1_updated_at, 2142 flavor_extra_specs_1.id as flavor_extra_specs_1_id, 2143 flavor_extra_specs_1."key" as flavor_extra_specs_1_key, 2144 flavor_extra_specs_1.value as flavor_extra_specs_1_value, 2145 flavor_extra_specs_1.flavor_id as flavor_extra_specs_1_flavor_id 2146 from flavors 2147 left join flavor_extra_specs as flavor_extra_specs_1 2148 on flavor_extra_specs_1.flavor_id = flavors.id 2149 where flavors.is_public = true 2150 or (exists (select 1 2151 from flavor_projects 2152 where flavor_projects.flavor_id = flavors.id 2153 and flavor_projects.project_id = $1)) 2154 order by flavors.flavorid asc, flavors.id asc 2155 ---- 2156 sort 2157 ├── columns: flavors_created_at:14 flavors_updated_at:15 flavors_id:1!null flavors_name:2!null flavors_memory_mb:3!null flavors_vcpus:4!null flavors_root_gb:5 flavors_ephemeral_gb:6 flavors_flavorid:7!null flavors_swap:8!null flavors_rxtx_factor:9 flavors_vcpu_weight:10 flavors_disabled:11 flavors_is_public:12 flavor_extra_specs_1_created_at:20 flavor_extra_specs_1_updated_at:21 flavor_extra_specs_1_id:16 flavor_extra_specs_1_key:17 flavor_extra_specs_1_value:18 flavor_extra_specs_1_flavor_id:19 2158 ├── has-placeholder 2159 ├── key: (1,16) 2160 ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (16)-->(17-21), (17,19)-->(16,18,20,21) 2161 ├── ordering: +7 2162 └── project 2163 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_extra_specs_1.id:16 key:17 value:18 flavor_extra_specs_1.flavor_id:19 flavor_extra_specs_1.created_at:20 flavor_extra_specs_1.updated_at:21 2164 ├── has-placeholder 2165 ├── key: (1,16) 2166 ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (16)-->(17-21), (17,19)-->(16,18,20,21) 2167 └── right-join (hash) 2168 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_extra_specs_1.id:16 key:17 value:18 flavor_extra_specs_1.flavor_id:19 flavor_extra_specs_1.created_at:20 flavor_extra_specs_1.updated_at:21 true_agg:29 2169 ├── has-placeholder 2170 ├── key: (1,16) 2171 ├── fd: (1)-->(2-12,14,15,29), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (16)-->(17-21), (17,19)-->(16,18,20,21) 2172 ├── scan flavor_extra_specs_1 2173 │ ├── columns: flavor_extra_specs_1.id:16!null key:17!null value:18 flavor_extra_specs_1.flavor_id:19!null flavor_extra_specs_1.created_at:20 flavor_extra_specs_1.updated_at:21 2174 │ ├── key: (16) 2175 │ └── fd: (16)-->(17-21), (17,19)-->(16,18,20,21) 2176 ├── select 2177 │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:29 2178 │ ├── has-placeholder 2179 │ ├── key: (1) 2180 │ ├── fd: (1)-->(2-12,14,15,29), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 2181 │ ├── group-by 2182 │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:29 2183 │ │ ├── grouping columns: flavors.id:1!null 2184 │ │ ├── internal-ordering: +1 2185 │ │ ├── has-placeholder 2186 │ │ ├── key: (1) 2187 │ │ ├── fd: (1)-->(2-12,14,15,29), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 2188 │ │ ├── left-join (merge) 2189 │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_projects.flavor_id:23 true:28 2190 │ │ │ ├── left ordering: +1 2191 │ │ │ ├── right ordering: +23 2192 │ │ │ ├── has-placeholder 2193 │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 2194 │ │ │ ├── ordering: +1 2195 │ │ │ ├── scan flavors 2196 │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 2197 │ │ │ │ ├── key: (1) 2198 │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 2199 │ │ │ │ └── ordering: +1 2200 │ │ │ ├── project 2201 │ │ │ │ ├── columns: true:28!null flavor_projects.flavor_id:23!null 2202 │ │ │ │ ├── has-placeholder 2203 │ │ │ │ ├── fd: ()-->(28) 2204 │ │ │ │ ├── ordering: +23 opt(28) [actual: +23] 2205 │ │ │ │ ├── select 2206 │ │ │ │ │ ├── columns: flavor_projects.flavor_id:23!null project_id:24!null 2207 │ │ │ │ │ ├── has-placeholder 2208 │ │ │ │ │ ├── key: (23,24) 2209 │ │ │ │ │ ├── ordering: +23 2210 │ │ │ │ │ ├── scan flavor_projects@secondary 2211 │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:23!null project_id:24!null 2212 │ │ │ │ │ │ ├── key: (23,24) 2213 │ │ │ │ │ │ └── ordering: +23 2214 │ │ │ │ │ └── filters 2215 │ │ │ │ │ └── project_id:24 = $1 [outer=(24), constraints=(/24: (/NULL - ])] 2216 │ │ │ │ └── projections 2217 │ │ │ │ └── true [as=true:28] 2218 │ │ │ └── filters (true) 2219 │ │ └── aggregations 2220 │ │ ├── const-not-null-agg [as=true_agg:29, outer=(28)] 2221 │ │ │ └── true:28 2222 │ │ ├── const-agg [as=name:2, outer=(2)] 2223 │ │ │ └── name:2 2224 │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 2225 │ │ │ └── memory_mb:3 2226 │ │ ├── const-agg [as=vcpus:4, outer=(4)] 2227 │ │ │ └── vcpus:4 2228 │ │ ├── const-agg [as=root_gb:5, outer=(5)] 2229 │ │ │ └── root_gb:5 2230 │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 2231 │ │ │ └── ephemeral_gb:6 2232 │ │ ├── const-agg [as=flavorid:7, outer=(7)] 2233 │ │ │ └── flavorid:7 2234 │ │ ├── const-agg [as=swap:8, outer=(8)] 2235 │ │ │ └── swap:8 2236 │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 2237 │ │ │ └── rxtx_factor:9 2238 │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 2239 │ │ │ └── vcpu_weight:10 2240 │ │ ├── const-agg [as=disabled:11, outer=(11)] 2241 │ │ │ └── disabled:11 2242 │ │ ├── const-agg [as=is_public:12, outer=(12)] 2243 │ │ │ └── is_public:12 2244 │ │ ├── const-agg [as=flavors.created_at:14, outer=(14)] 2245 │ │ │ └── flavors.created_at:14 2246 │ │ └── const-agg [as=flavors.updated_at:15, outer=(15)] 2247 │ │ └── flavors.updated_at:15 2248 │ └── filters 2249 │ └── (is_public:12 = true) OR (true_agg:29 IS NOT NULL) [outer=(12,29)] 2250 └── filters 2251 └── flavor_extra_specs_1.flavor_id:19 = flavors.id:1 [outer=(1,19), constraints=(/1: (/NULL - ]; /19: (/NULL - ]), fd=(1)==(19), (19)==(1)] 2252 2253 opt 2254 select anon_1.instance_types_created_at as anon_1_instance_types_created_at, 2255 anon_1.instance_types_updated_at as anon_1_instance_types_updated_at, 2256 anon_1.instance_types_deleted_at as anon_1_instance_types_deleted_at, 2257 anon_1.instance_types_deleted as anon_1_instance_types_deleted, 2258 anon_1.instance_types_id as anon_1_instance_types_id, 2259 anon_1.instance_types_name as anon_1_instance_types_name, 2260 anon_1.instance_types_memory_mb as anon_1_instance_types_memory_mb, 2261 anon_1.instance_types_vcpus as anon_1_instance_types_vcpus, 2262 anon_1.instance_types_root_gb as anon_1_instance_types_root_gb, 2263 anon_1.instance_types_ephemeral_gb as anon_1_instance_types_ephemeral_gb, 2264 anon_1.instance_types_flavorid as anon_1_instance_types_flavorid, 2265 anon_1.instance_types_swap as anon_1_instance_types_swap, 2266 anon_1.instance_types_rxtx_factor as anon_1_instance_types_rxtx_factor, 2267 anon_1.instance_types_vcpu_weight as anon_1_instance_types_vcpu_weight, 2268 anon_1.instance_types_disabled as anon_1_instance_types_disabled, 2269 anon_1.instance_types_is_public as anon_1_instance_types_is_public, 2270 instance_type_extra_specs_1.created_at as instance_type_extra_specs_1_created_at, 2271 instance_type_extra_specs_1.updated_at as instance_type_extra_specs_1_updated_at, 2272 instance_type_extra_specs_1.deleted_at as instance_type_extra_specs_1_deleted_at, 2273 instance_type_extra_specs_1.deleted as instance_type_extra_specs_1_deleted, 2274 instance_type_extra_specs_1.id as instance_type_extra_specs_1_id, 2275 instance_type_extra_specs_1."key" as instance_type_extra_specs_1_key, 2276 instance_type_extra_specs_1.value as instance_type_extra_specs_1_value, 2277 instance_type_extra_specs_1.instance_type_id as instance_type_extra_specs_1_instance_type_id 2278 from (select instance_types.created_at as instance_types_created_at, 2279 instance_types.updated_at as instance_types_updated_at, 2280 instance_types.deleted_at as instance_types_deleted_at, 2281 instance_types.deleted as instance_types_deleted, 2282 instance_types.id as instance_types_id, 2283 instance_types.name as instance_types_name, 2284 instance_types.memory_mb as instance_types_memory_mb, 2285 instance_types.vcpus as instance_types_vcpus, 2286 instance_types.root_gb as instance_types_root_gb, 2287 instance_types.ephemeral_gb as instance_types_ephemeral_gb, 2288 instance_types.flavorid as instance_types_flavorid, 2289 instance_types.swap as instance_types_swap, 2290 instance_types.rxtx_factor as instance_types_rxtx_factor, 2291 instance_types.vcpu_weight as instance_types_vcpu_weight, 2292 instance_types.disabled as instance_types_disabled, 2293 instance_types.is_public as instance_types_is_public 2294 from instance_types 2295 where instance_types.deleted = $1 2296 and (instance_types.is_public = true 2297 or (exists (select 1 2298 from instance_type_projects 2299 where instance_type_projects.instance_type_id = instance_types.id 2300 and instance_type_projects.deleted = $2 2301 and instance_type_projects.project_id = $3))) 2302 and (instance_types.flavorid > $4 2303 or instance_types.flavorid = $5 2304 and instance_types.id > $6) 2305 order by instance_types.flavorid asc, instance_types.id asc 2306 offset $7 rows 2307 limit $8) 2308 as anon_1 2309 left join instance_type_extra_specs as instance_type_extra_specs_1 2310 on instance_type_extra_specs_1.instance_type_id = anon_1.instance_types_id 2311 and instance_type_extra_specs_1.deleted = $9 2312 order by anon_1.instance_types_flavorid asc, 2313 anon_1.instance_types_id asc 2314 ---- 2315 sort 2316 ├── columns: anon_1_instance_types_created_at:15 anon_1_instance_types_updated_at:16 anon_1_instance_types_deleted_at:14 anon_1_instance_types_deleted:13!null anon_1_instance_types_id:1!null anon_1_instance_types_name:2 anon_1_instance_types_memory_mb:3!null anon_1_instance_types_vcpus:4!null anon_1_instance_types_root_gb:5 anon_1_instance_types_ephemeral_gb:6 anon_1_instance_types_flavorid:7!null anon_1_instance_types_swap:8!null anon_1_instance_types_rxtx_factor:9 anon_1_instance_types_vcpu_weight:10 anon_1_instance_types_disabled:11 anon_1_instance_types_is_public:12 instance_type_extra_specs_1_created_at:34 instance_type_extra_specs_1_updated_at:35 instance_type_extra_specs_1_deleted_at:33 instance_type_extra_specs_1_deleted:32 instance_type_extra_specs_1_id:28 instance_type_extra_specs_1_key:29 instance_type_extra_specs_1_value:30 instance_type_extra_specs_1_instance_type_id:31 2317 ├── immutable, side-effects, has-placeholder 2318 ├── key: (1,28) 2319 ├── fd: (1)-->(2-16), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2320 ├── ordering: +7,+1 2321 └── project 2322 ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_extra_specs_1.id:28 key:29 value:30 instance_type_extra_specs_1.instance_type_id:31 instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 2323 ├── immutable, side-effects, has-placeholder 2324 ├── key: (1,28) 2325 ├── fd: (1)-->(2-16), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2326 └── right-join (hash) 2327 ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 instance_type_extra_specs_1.id:28 key:29 value:30 instance_type_extra_specs_1.instance_type_id:31 instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 2328 ├── immutable, side-effects, has-placeholder 2329 ├── key: (1,28) 2330 ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2331 ├── select 2332 │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32!null instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 2333 │ ├── has-placeholder 2334 │ ├── key: (28) 2335 │ ├── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2336 │ ├── scan instance_type_extra_specs_1 2337 │ │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 2338 │ │ ├── key: (28) 2339 │ │ └── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2340 │ └── filters 2341 │ └── instance_type_extra_specs_1.deleted:32 = $9 [outer=(32), constraints=(/32: (/NULL - ])] 2342 ├── limit 2343 │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 2344 │ ├── internal-ordering: +7,+1 2345 │ ├── immutable, side-effects, has-placeholder 2346 │ ├── key: (1) 2347 │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2348 │ ├── offset 2349 │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 2350 │ │ ├── internal-ordering: +7,+1 2351 │ │ ├── has-placeholder 2352 │ │ ├── key: (1) 2353 │ │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2354 │ │ ├── ordering: +7,+1 2355 │ │ ├── sort 2356 │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 2357 │ │ │ ├── has-placeholder 2358 │ │ │ ├── key: (1) 2359 │ │ │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2360 │ │ │ ├── ordering: +7,+1 2361 │ │ │ └── select 2362 │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 2363 │ │ │ ├── has-placeholder 2364 │ │ │ ├── key: (1) 2365 │ │ │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2366 │ │ │ ├── group-by 2367 │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 2368 │ │ │ │ ├── grouping columns: instance_types.id:1!null 2369 │ │ │ │ ├── internal-ordering: +1 2370 │ │ │ │ ├── has-placeholder 2371 │ │ │ │ ├── key: (1) 2372 │ │ │ │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2373 │ │ │ │ ├── left-join (merge) 2374 │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_projects.instance_type_id:18 true:25 2375 │ │ │ │ │ ├── left ordering: +1 2376 │ │ │ │ │ ├── right ordering: +18 2377 │ │ │ │ │ ├── has-placeholder 2378 │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2379 │ │ │ │ │ ├── ordering: +1 2380 │ │ │ │ │ ├── select 2381 │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 2382 │ │ │ │ │ │ ├── has-placeholder 2383 │ │ │ │ │ │ ├── key: (1) 2384 │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2385 │ │ │ │ │ │ ├── ordering: +1 2386 │ │ │ │ │ │ ├── scan instance_types 2387 │ │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13 instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 2388 │ │ │ │ │ │ │ ├── key: (1) 2389 │ │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2390 │ │ │ │ │ │ │ └── ordering: +1 2391 │ │ │ │ │ │ └── filters 2392 │ │ │ │ │ │ ├── instance_types.deleted:13 = $1 [outer=(13), constraints=(/13: (/NULL - ])] 2393 │ │ │ │ │ │ └── (flavorid:7 > $4) OR ((flavorid:7 = $5) AND (instance_types.id:1 > $6)) [outer=(1,7), constraints=(/7: (/NULL - ])] 2394 │ │ │ │ │ ├── project 2395 │ │ │ │ │ │ ├── columns: true:25!null instance_type_projects.instance_type_id:18!null 2396 │ │ │ │ │ │ ├── has-placeholder 2397 │ │ │ │ │ │ ├── fd: ()-->(25) 2398 │ │ │ │ │ │ ├── ordering: +18 opt(25) [actual: +18] 2399 │ │ │ │ │ │ ├── select 2400 │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19!null instance_type_projects.deleted:20!null 2401 │ │ │ │ │ │ │ ├── has-placeholder 2402 │ │ │ │ │ │ │ ├── key: (18-20) 2403 │ │ │ │ │ │ │ ├── ordering: +18 2404 │ │ │ │ │ │ │ ├── scan instance_type_projects@secondary 2405 │ │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19 instance_type_projects.deleted:20 2406 │ │ │ │ │ │ │ │ ├── lax-key: (18-20) 2407 │ │ │ │ │ │ │ │ └── ordering: +18 2408 │ │ │ │ │ │ │ └── filters 2409 │ │ │ │ │ │ │ ├── instance_type_projects.deleted:20 = $2 [outer=(20), constraints=(/20: (/NULL - ])] 2410 │ │ │ │ │ │ │ └── project_id:19 = $3 [outer=(19), constraints=(/19: (/NULL - ])] 2411 │ │ │ │ │ │ └── projections 2412 │ │ │ │ │ │ └── true [as=true:25] 2413 │ │ │ │ │ └── filters (true) 2414 │ │ │ │ └── aggregations 2415 │ │ │ │ ├── const-not-null-agg [as=true_agg:26, outer=(25)] 2416 │ │ │ │ │ └── true:25 2417 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 2418 │ │ │ │ │ └── name:2 2419 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 2420 │ │ │ │ │ └── memory_mb:3 2421 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 2422 │ │ │ │ │ └── vcpus:4 2423 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 2424 │ │ │ │ │ └── root_gb:5 2425 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 2426 │ │ │ │ │ └── ephemeral_gb:6 2427 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 2428 │ │ │ │ │ └── flavorid:7 2429 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 2430 │ │ │ │ │ └── swap:8 2431 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 2432 │ │ │ │ │ └── rxtx_factor:9 2433 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 2434 │ │ │ │ │ └── vcpu_weight:10 2435 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 2436 │ │ │ │ │ └── disabled:11 2437 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 2438 │ │ │ │ │ └── is_public:12 2439 │ │ │ │ ├── const-agg [as=instance_types.deleted:13, outer=(13)] 2440 │ │ │ │ │ └── instance_types.deleted:13 2441 │ │ │ │ ├── const-agg [as=instance_types.deleted_at:14, outer=(14)] 2442 │ │ │ │ │ └── instance_types.deleted_at:14 2443 │ │ │ │ ├── const-agg [as=instance_types.created_at:15, outer=(15)] 2444 │ │ │ │ │ └── instance_types.created_at:15 2445 │ │ │ │ └── const-agg [as=instance_types.updated_at:16, outer=(16)] 2446 │ │ │ │ └── instance_types.updated_at:16 2447 │ │ │ └── filters 2448 │ │ │ └── (is_public:12 = true) OR (true_agg:26 IS NOT NULL) [outer=(12,26)] 2449 │ │ └── $7 2450 │ └── $8 2451 └── filters 2452 └── instance_type_extra_specs_1.instance_type_id:31 = instance_types.id:1 [outer=(1,31), constraints=(/1: (/NULL - ]; /31: (/NULL - ]), fd=(1)==(31), (31)==(1)] 2453 2454 opt 2455 select anon_1.flavors_created_at as anon_1_flavors_created_at, 2456 anon_1.flavors_updated_at as anon_1_flavors_updated_at, 2457 anon_1.flavors_id as anon_1_flavors_id, 2458 anon_1.flavors_name as anon_1_flavors_name, 2459 anon_1.flavors_memory_mb as anon_1_flavors_memory_mb, 2460 anon_1.flavors_vcpus as anon_1_flavors_vcpus, 2461 anon_1.flavors_root_gb as anon_1_flavors_root_gb, 2462 anon_1.flavors_ephemeral_gb as anon_1_flavors_ephemeral_gb, 2463 anon_1.flavors_flavorid as anon_1_flavors_flavorid, 2464 anon_1.flavors_swap as anon_1_flavors_swap, 2465 anon_1.flavors_rxtx_factor as anon_1_flavors_rxtx_factor, 2466 anon_1.flavors_vcpu_weight as anon_1_flavors_vcpu_weight, 2467 anon_1.flavors_disabled as anon_1_flavors_disabled, 2468 anon_1.flavors_is_public as anon_1_flavors_is_public, 2469 flavor_extra_specs_1.created_at as flavor_extra_specs_1_created_at, 2470 flavor_extra_specs_1.updated_at as flavor_extra_specs_1_updated_at, 2471 flavor_extra_specs_1.id as flavor_extra_specs_1_id, 2472 flavor_extra_specs_1."key" as flavor_extra_specs_1_key, 2473 flavor_extra_specs_1.value as flavor_extra_specs_1_value, 2474 flavor_extra_specs_1.flavor_id as flavor_extra_specs_1_flavor_id 2475 from (select flavors.created_at as flavors_created_at, 2476 flavors.updated_at as flavors_updated_at, 2477 flavors.id as flavors_id, 2478 flavors.name as flavors_name, 2479 flavors.memory_mb as flavors_memory_mb, 2480 flavors.vcpus as flavors_vcpus, 2481 flavors.root_gb as flavors_root_gb, 2482 flavors.ephemeral_gb as flavors_ephemeral_gb, 2483 flavors.flavorid as flavors_flavorid, 2484 flavors.swap as flavors_swap, 2485 flavors.rxtx_factor as flavors_rxtx_factor, 2486 flavors.vcpu_weight as flavors_vcpu_weight, 2487 flavors.disabled as flavors_disabled, 2488 flavors.is_public as flavors_is_public 2489 from flavors 2490 where flavors.is_public = true 2491 or (exists (select 1 2492 from flavor_projects 2493 where flavor_projects.flavor_id = flavors.id 2494 and flavor_projects.project_id = $1)) 2495 order by flavors.flavorid asc, flavors.id asc 2496 offset $2 rows 2497 limit $3) 2498 as anon_1 2499 left join flavor_extra_specs as flavor_extra_specs_1 2500 on flavor_extra_specs_1.flavor_id = anon_1.flavors_id 2501 order by anon_1.flavors_flavorid asc, anon_1.flavors_id asc 2502 ---- 2503 sort 2504 ├── columns: anon_1_flavors_created_at:14 anon_1_flavors_updated_at:15 anon_1_flavors_id:1!null anon_1_flavors_name:2!null anon_1_flavors_memory_mb:3!null anon_1_flavors_vcpus:4!null anon_1_flavors_root_gb:5 anon_1_flavors_ephemeral_gb:6 anon_1_flavors_flavorid:7!null anon_1_flavors_swap:8!null anon_1_flavors_rxtx_factor:9 anon_1_flavors_vcpu_weight:10 anon_1_flavors_disabled:11 anon_1_flavors_is_public:12 flavor_extra_specs_1_created_at:29 flavor_extra_specs_1_updated_at:30 flavor_extra_specs_1_id:25 flavor_extra_specs_1_key:26 flavor_extra_specs_1_value:27 flavor_extra_specs_1_flavor_id:28 2505 ├── immutable, side-effects, has-placeholder 2506 ├── key: (1,25) 2507 ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 2508 ├── ordering: +7 2509 └── project 2510 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_extra_specs_1.id:25 key:26 value:27 flavor_extra_specs_1.flavor_id:28 flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 2511 ├── immutable, side-effects, has-placeholder 2512 ├── key: (1,25) 2513 ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 2514 └── right-join (hash) 2515 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 flavor_extra_specs_1.id:25 key:26 value:27 flavor_extra_specs_1.flavor_id:28 flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 2516 ├── immutable, side-effects, has-placeholder 2517 ├── key: (1,25) 2518 ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 2519 ├── scan flavor_extra_specs_1 2520 │ ├── columns: flavor_extra_specs_1.id:25!null key:26!null value:27 flavor_extra_specs_1.flavor_id:28!null flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 2521 │ ├── key: (25) 2522 │ └── fd: (25)-->(26-30), (26,28)-->(25,27,29,30) 2523 ├── limit 2524 │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 2525 │ ├── internal-ordering: +7 2526 │ ├── immutable, side-effects, has-placeholder 2527 │ ├── key: (1) 2528 │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 2529 │ ├── offset 2530 │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 2531 │ │ ├── internal-ordering: +7 2532 │ │ ├── has-placeholder 2533 │ │ ├── key: (1) 2534 │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 2535 │ │ ├── ordering: +7 2536 │ │ ├── sort 2537 │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 2538 │ │ │ ├── has-placeholder 2539 │ │ │ ├── key: (1) 2540 │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 2541 │ │ │ ├── ordering: +7 2542 │ │ │ └── select 2543 │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 2544 │ │ │ ├── has-placeholder 2545 │ │ │ ├── key: (1) 2546 │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 2547 │ │ │ ├── group-by 2548 │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 2549 │ │ │ │ ├── grouping columns: flavors.id:1!null 2550 │ │ │ │ ├── internal-ordering: +1 2551 │ │ │ │ ├── has-placeholder 2552 │ │ │ │ ├── key: (1) 2553 │ │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 2554 │ │ │ │ ├── left-join (merge) 2555 │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_projects.flavor_id:17 true:22 2556 │ │ │ │ │ ├── left ordering: +1 2557 │ │ │ │ │ ├── right ordering: +17 2558 │ │ │ │ │ ├── has-placeholder 2559 │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 2560 │ │ │ │ │ ├── ordering: +1 2561 │ │ │ │ │ ├── scan flavors 2562 │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 2563 │ │ │ │ │ │ ├── key: (1) 2564 │ │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 2565 │ │ │ │ │ │ └── ordering: +1 2566 │ │ │ │ │ ├── project 2567 │ │ │ │ │ │ ├── columns: true:22!null flavor_projects.flavor_id:17!null 2568 │ │ │ │ │ │ ├── has-placeholder 2569 │ │ │ │ │ │ ├── fd: ()-->(22) 2570 │ │ │ │ │ │ ├── ordering: +17 opt(22) [actual: +17] 2571 │ │ │ │ │ │ ├── select 2572 │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 2573 │ │ │ │ │ │ │ ├── has-placeholder 2574 │ │ │ │ │ │ │ ├── key: (17,18) 2575 │ │ │ │ │ │ │ ├── ordering: +17 2576 │ │ │ │ │ │ │ ├── scan flavor_projects@secondary 2577 │ │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 2578 │ │ │ │ │ │ │ │ ├── key: (17,18) 2579 │ │ │ │ │ │ │ │ └── ordering: +17 2580 │ │ │ │ │ │ │ └── filters 2581 │ │ │ │ │ │ │ └── project_id:18 = $1 [outer=(18), constraints=(/18: (/NULL - ])] 2582 │ │ │ │ │ │ └── projections 2583 │ │ │ │ │ │ └── true [as=true:22] 2584 │ │ │ │ │ └── filters (true) 2585 │ │ │ │ └── aggregations 2586 │ │ │ │ ├── const-not-null-agg [as=true_agg:23, outer=(22)] 2587 │ │ │ │ │ └── true:22 2588 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 2589 │ │ │ │ │ └── name:2 2590 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 2591 │ │ │ │ │ └── memory_mb:3 2592 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 2593 │ │ │ │ │ └── vcpus:4 2594 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 2595 │ │ │ │ │ └── root_gb:5 2596 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 2597 │ │ │ │ │ └── ephemeral_gb:6 2598 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 2599 │ │ │ │ │ └── flavorid:7 2600 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 2601 │ │ │ │ │ └── swap:8 2602 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 2603 │ │ │ │ │ └── rxtx_factor:9 2604 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 2605 │ │ │ │ │ └── vcpu_weight:10 2606 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 2607 │ │ │ │ │ └── disabled:11 2608 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 2609 │ │ │ │ │ └── is_public:12 2610 │ │ │ │ ├── const-agg [as=flavors.created_at:14, outer=(14)] 2611 │ │ │ │ │ └── flavors.created_at:14 2612 │ │ │ │ └── const-agg [as=flavors.updated_at:15, outer=(15)] 2613 │ │ │ │ └── flavors.updated_at:15 2614 │ │ │ └── filters 2615 │ │ │ └── (is_public:12 = true) OR (true_agg:23 IS NOT NULL) [outer=(12,23)] 2616 │ │ └── $2 2617 │ └── $3 2618 └── filters 2619 └── flavor_extra_specs_1.flavor_id:28 = flavors.id:1 [outer=(1,28), constraints=(/1: (/NULL - ]; /28: (/NULL - ]), fd=(1)==(28), (28)==(1)] 2620 2621 opt 2622 select anon_1.instance_types_created_at as anon_1_instance_types_created_at, 2623 anon_1.instance_types_updated_at as anon_1_instance_types_updated_at, 2624 anon_1.instance_types_deleted_at as anon_1_instance_types_deleted_at, 2625 anon_1.instance_types_deleted as anon_1_instance_types_deleted, 2626 anon_1.instance_types_id as anon_1_instance_types_id, 2627 anon_1.instance_types_name as anon_1_instance_types_name, 2628 anon_1.instance_types_memory_mb as anon_1_instance_types_memory_mb, 2629 anon_1.instance_types_vcpus as anon_1_instance_types_vcpus, 2630 anon_1.instance_types_root_gb as anon_1_instance_types_root_gb, 2631 anon_1.instance_types_ephemeral_gb as anon_1_instance_types_ephemeral_gb, 2632 anon_1.instance_types_flavorid as anon_1_instance_types_flavorid, 2633 anon_1.instance_types_swap as anon_1_instance_types_swap, 2634 anon_1.instance_types_rxtx_factor as anon_1_instance_types_rxtx_factor, 2635 anon_1.instance_types_vcpu_weight as anon_1_instance_types_vcpu_weight, 2636 anon_1.instance_types_disabled as anon_1_instance_types_disabled, 2637 anon_1.instance_types_is_public as anon_1_instance_types_is_public, 2638 instance_type_extra_specs_1.created_at as instance_type_extra_specs_1_created_at, 2639 instance_type_extra_specs_1.updated_at as instance_type_extra_specs_1_updated_at, 2640 instance_type_extra_specs_1.deleted_at as instance_type_extra_specs_1_deleted_at, 2641 instance_type_extra_specs_1.deleted as instance_type_extra_specs_1_deleted, 2642 instance_type_extra_specs_1.id as instance_type_extra_specs_1_id, 2643 instance_type_extra_specs_1."key" as instance_type_extra_specs_1_key, 2644 instance_type_extra_specs_1.value as instance_type_extra_specs_1_value, 2645 instance_type_extra_specs_1.instance_type_id as instance_type_extra_specs_1_instance_type_id 2646 from (select instance_types.created_at as instance_types_created_at, 2647 instance_types.updated_at as instance_types_updated_at, 2648 instance_types.deleted_at as instance_types_deleted_at, 2649 instance_types.deleted as instance_types_deleted, 2650 instance_types.id as instance_types_id, 2651 instance_types.name as instance_types_name, 2652 instance_types.memory_mb as instance_types_memory_mb, 2653 instance_types.vcpus as instance_types_vcpus, 2654 instance_types.root_gb as instance_types_root_gb, 2655 instance_types.ephemeral_gb as instance_types_ephemeral_gb, 2656 instance_types.flavorid as instance_types_flavorid, 2657 instance_types.swap as instance_types_swap, 2658 instance_types.rxtx_factor as instance_types_rxtx_factor, 2659 instance_types.vcpu_weight as instance_types_vcpu_weight, 2660 instance_types.disabled as instance_types_disabled, 2661 instance_types.is_public as instance_types_is_public 2662 from instance_types 2663 where instance_types.deleted = $1 2664 and (instance_types.is_public = true 2665 or (exists (select 1 2666 from instance_type_projects 2667 where instance_type_projects.instance_type_id = instance_types.id 2668 and instance_type_projects.deleted = $2 2669 and instance_type_projects.project_id = $3))) 2670 and instance_types.disabled = false 2671 and (instance_types.is_public = true 2672 or (exists (select 1 2673 from instance_type_projects 2674 where instance_type_projects.instance_type_id = instance_types.id 2675 and instance_type_projects.deleted = $4 2676 and instance_type_projects.deleted = $5 2677 and instance_type_projects.project_id = $6))) 2678 order by instance_types.flavorid asc, instance_types.id asc 2679 offset $7 rows 2680 limit $8) 2681 as anon_1 2682 left join instance_type_extra_specs as instance_type_extra_specs_1 2683 on instance_type_extra_specs_1.instance_type_id = anon_1.instance_types_id 2684 and instance_type_extra_specs_1.deleted = $9 2685 order by anon_1.instance_types_flavorid asc, 2686 anon_1.instance_types_id asc 2687 ---- 2688 project 2689 ├── columns: anon_1_instance_types_created_at:15 anon_1_instance_types_updated_at:16 anon_1_instance_types_deleted_at:14 anon_1_instance_types_deleted:13!null anon_1_instance_types_id:1!null anon_1_instance_types_name:2 anon_1_instance_types_memory_mb:3!null anon_1_instance_types_vcpus:4!null anon_1_instance_types_root_gb:5 anon_1_instance_types_ephemeral_gb:6 anon_1_instance_types_flavorid:7 anon_1_instance_types_swap:8!null anon_1_instance_types_rxtx_factor:9 anon_1_instance_types_vcpu_weight:10 anon_1_instance_types_disabled:11!null anon_1_instance_types_is_public:12 instance_type_extra_specs_1_created_at:45 instance_type_extra_specs_1_updated_at:46 instance_type_extra_specs_1_deleted_at:44 instance_type_extra_specs_1_deleted:43 instance_type_extra_specs_1_id:39 instance_type_extra_specs_1_key:40 instance_type_extra_specs_1_value:41 instance_type_extra_specs_1_instance_type_id:42 2690 ├── immutable, side-effects, has-placeholder 2691 ├── key: (1,39) 2692 ├── fd: ()-->(11), (1)-->(2-10,12-16), (7,13)~~>(1-6,8-10,12,14-16), (2,13)~~>(1,3-10,12,14-16), (39)-->(40-46), (40,42,43)~~>(39,41,44-46) 2693 ├── ordering: +7,+1 opt(11) [actual: +7,+1] 2694 └── left-join (lookup instance_type_extra_specs) 2695 ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:37 instance_type_extra_specs_1.id:39 key:40 value:41 instance_type_extra_specs_1.instance_type_id:42 instance_type_extra_specs_1.deleted:43 instance_type_extra_specs_1.deleted_at:44 instance_type_extra_specs_1.created_at:45 instance_type_extra_specs_1.updated_at:46 2696 ├── key columns: [39] = [39] 2697 ├── lookup columns are key 2698 ├── immutable, side-effects, has-placeholder 2699 ├── key: (1,39) 2700 ├── fd: ()-->(11), (1)-->(2-10,12-16,37), (7,13)~~>(1-6,8-10,12,14-16), (2,13)~~>(1,3-10,12,14-16), (39)-->(40-46), (40,42,43)~~>(39,41,44-46) 2701 ├── ordering: +7,+1 opt(11) [actual: +7,+1] 2702 ├── left-join (lookup instance_type_extra_specs@secondary) 2703 │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:37 instance_type_extra_specs_1.id:39 key:40 instance_type_extra_specs_1.instance_type_id:42 instance_type_extra_specs_1.deleted:43 2704 │ ├── key columns: [1] = [42] 2705 │ ├── immutable, side-effects, has-placeholder 2706 │ ├── key: (1,39) 2707 │ ├── fd: ()-->(11), (1)-->(2-10,12-16,37), (7,13)~~>(1-6,8-10,12,14-16), (2,13)~~>(1,3-10,12,14-16), (39)-->(40,42,43), (40,42,43)~~>(39) 2708 │ ├── ordering: +7,+1 opt(11) [actual: +7,+1] 2709 │ ├── limit 2710 │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:37 2711 │ │ ├── internal-ordering: +7,+1 opt(11) 2712 │ │ ├── immutable, side-effects, has-placeholder 2713 │ │ ├── key: (1) 2714 │ │ ├── fd: ()-->(11), (1)-->(2-10,12-16,37), (7,13)~~>(1-6,8-10,12,14-16), (2,13)~~>(1,3-10,12,14-16) 2715 │ │ ├── ordering: +7,+1 opt(11) [actual: +7,+1] 2716 │ │ ├── offset 2717 │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:37 2718 │ │ │ ├── internal-ordering: +7,+1 opt(11) 2719 │ │ │ ├── has-placeholder 2720 │ │ │ ├── key: (1) 2721 │ │ │ ├── fd: ()-->(11), (1)-->(2-10,12-16,37), (7,13)~~>(1-6,8-10,12,14-16), (2,13)~~>(1,3-10,12,14-16) 2722 │ │ │ ├── ordering: +7,+1 opt(11) [actual: +7,+1] 2723 │ │ │ ├── sort 2724 │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:37 2725 │ │ │ │ ├── has-placeholder 2726 │ │ │ │ ├── key: (1) 2727 │ │ │ │ ├── fd: ()-->(11), (1)-->(2-10,12-16,37), (7,13)~~>(1-6,8-10,12,14-16), (2,13)~~>(1,3-10,12,14-16) 2728 │ │ │ │ ├── ordering: +7,+1 opt(11) [actual: +7,+1] 2729 │ │ │ │ └── select 2730 │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:37 2731 │ │ │ │ ├── has-placeholder 2732 │ │ │ │ ├── key: (1) 2733 │ │ │ │ ├── fd: ()-->(11), (1)-->(2-10,12-16,37), (7,13)~~>(1-6,8-10,12,14-16), (2,13)~~>(1,3-10,12,14-16) 2734 │ │ │ │ ├── group-by 2735 │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:37 2736 │ │ │ │ │ ├── grouping columns: instance_types.id:1!null 2737 │ │ │ │ │ ├── internal-ordering: +1 opt(11) 2738 │ │ │ │ │ ├── has-placeholder 2739 │ │ │ │ │ ├── key: (1) 2740 │ │ │ │ │ ├── fd: ()-->(11), (1)-->(2-16,37), (7,13)~~>(1-6,8-10,12,14-16), (2,13)~~>(1,3-10,12,14-16) 2741 │ │ │ │ │ ├── left-join (merge) 2742 │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_projects.instance_type_id:26 true_agg:34 true:36 2743 │ │ │ │ │ │ ├── left ordering: +1 2744 │ │ │ │ │ │ ├── right ordering: +26 2745 │ │ │ │ │ │ ├── has-placeholder 2746 │ │ │ │ │ │ ├── fd: ()-->(11), (1)-->(2-10,12-16,34), (7,13)~~>(1-6,8-10,12,14-16), (2,13)~~>(1,3-10,12,14-16) 2747 │ │ │ │ │ │ ├── ordering: +1 opt(11) [actual: +1] 2748 │ │ │ │ │ │ ├── select 2749 │ │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:34 2750 │ │ │ │ │ │ │ ├── has-placeholder 2751 │ │ │ │ │ │ │ ├── key: (1) 2752 │ │ │ │ │ │ │ ├── fd: ()-->(11), (1)-->(2-10,12-16,34), (7,13)~~>(1-6,8-10,12,14-16), (2,13)~~>(1,3-10,12,14-16) 2753 │ │ │ │ │ │ │ ├── ordering: +1 opt(11) [actual: +1] 2754 │ │ │ │ │ │ │ ├── group-by 2755 │ │ │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:34 2756 │ │ │ │ │ │ │ │ ├── grouping columns: instance_types.id:1!null 2757 │ │ │ │ │ │ │ │ ├── has-placeholder 2758 │ │ │ │ │ │ │ │ ├── key: (1) 2759 │ │ │ │ │ │ │ │ ├── fd: ()-->(11), (1)-->(2-16,34), (7,13)~~>(1-6,8-10,12,14-16), (2,13)~~>(1,3-10,12,14-16) 2760 │ │ │ │ │ │ │ │ ├── ordering: +1 opt(11) [actual: +1] 2761 │ │ │ │ │ │ │ │ ├── left-join (merge) 2762 │ │ │ │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_projects.instance_type_id:18 true:33 2763 │ │ │ │ │ │ │ │ │ ├── left ordering: +1 2764 │ │ │ │ │ │ │ │ │ ├── right ordering: +18 2765 │ │ │ │ │ │ │ │ │ ├── has-placeholder 2766 │ │ │ │ │ │ │ │ │ ├── fd: ()-->(11), (1)-->(2-10,12-16), (7,13)~~>(1-6,8-10,12,14-16), (2,13)~~>(1,3-10,12,14-16) 2767 │ │ │ │ │ │ │ │ │ ├── ordering: +1 opt(11) [actual: +1] 2768 │ │ │ │ │ │ │ │ │ ├── select 2769 │ │ │ │ │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11!null is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 2770 │ │ │ │ │ │ │ │ │ │ ├── has-placeholder 2771 │ │ │ │ │ │ │ │ │ │ ├── key: (1) 2772 │ │ │ │ │ │ │ │ │ │ ├── fd: ()-->(11), (1)-->(2-10,12-16), (7,13)~~>(1-6,8-10,12,14-16), (2,13)~~>(1,3-10,12,14-16) 2773 │ │ │ │ │ │ │ │ │ │ ├── ordering: +1 opt(11) [actual: +1] 2774 │ │ │ │ │ │ │ │ │ │ ├── scan instance_types 2775 │ │ │ │ │ │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13 instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 2776 │ │ │ │ │ │ │ │ │ │ │ ├── key: (1) 2777 │ │ │ │ │ │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2778 │ │ │ │ │ │ │ │ │ │ │ └── ordering: +1 opt(11) [actual: +1] 2779 │ │ │ │ │ │ │ │ │ │ └── filters 2780 │ │ │ │ │ │ │ │ │ │ ├── instance_types.deleted:13 = $1 [outer=(13), constraints=(/13: (/NULL - ])] 2781 │ │ │ │ │ │ │ │ │ │ └── disabled:11 = false [outer=(11), constraints=(/11: [/false - /false]; tight), fd=()-->(11)] 2782 │ │ │ │ │ │ │ │ │ ├── project 2783 │ │ │ │ │ │ │ │ │ │ ├── columns: true:33!null instance_type_projects.instance_type_id:18!null 2784 │ │ │ │ │ │ │ │ │ │ ├── has-placeholder 2785 │ │ │ │ │ │ │ │ │ │ ├── fd: ()-->(33) 2786 │ │ │ │ │ │ │ │ │ │ ├── ordering: +18 opt(33) [actual: +18] 2787 │ │ │ │ │ │ │ │ │ │ ├── select 2788 │ │ │ │ │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19!null instance_type_projects.deleted:20!null 2789 │ │ │ │ │ │ │ │ │ │ │ ├── has-placeholder 2790 │ │ │ │ │ │ │ │ │ │ │ ├── key: (18-20) 2791 │ │ │ │ │ │ │ │ │ │ │ ├── ordering: +18 2792 │ │ │ │ │ │ │ │ │ │ │ ├── scan instance_type_projects@secondary 2793 │ │ │ │ │ │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19 instance_type_projects.deleted:20 2794 │ │ │ │ │ │ │ │ │ │ │ │ ├── lax-key: (18-20) 2795 │ │ │ │ │ │ │ │ │ │ │ │ └── ordering: +18 2796 │ │ │ │ │ │ │ │ │ │ │ └── filters 2797 │ │ │ │ │ │ │ │ │ │ │ ├── instance_type_projects.deleted:20 = $2 [outer=(20), constraints=(/20: (/NULL - ])] 2798 │ │ │ │ │ │ │ │ │ │ │ └── project_id:19 = $3 [outer=(19), constraints=(/19: (/NULL - ])] 2799 │ │ │ │ │ │ │ │ │ │ └── projections 2800 │ │ │ │ │ │ │ │ │ │ └── true [as=true:33] 2801 │ │ │ │ │ │ │ │ │ └── filters (true) 2802 │ │ │ │ │ │ │ │ └── aggregations 2803 │ │ │ │ │ │ │ │ ├── const-not-null-agg [as=true_agg:34, outer=(33)] 2804 │ │ │ │ │ │ │ │ │ └── true:33 2805 │ │ │ │ │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 2806 │ │ │ │ │ │ │ │ │ └── name:2 2807 │ │ │ │ │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 2808 │ │ │ │ │ │ │ │ │ └── memory_mb:3 2809 │ │ │ │ │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 2810 │ │ │ │ │ │ │ │ │ └── vcpus:4 2811 │ │ │ │ │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 2812 │ │ │ │ │ │ │ │ │ └── root_gb:5 2813 │ │ │ │ │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 2814 │ │ │ │ │ │ │ │ │ └── ephemeral_gb:6 2815 │ │ │ │ │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 2816 │ │ │ │ │ │ │ │ │ └── flavorid:7 2817 │ │ │ │ │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 2818 │ │ │ │ │ │ │ │ │ └── swap:8 2819 │ │ │ │ │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 2820 │ │ │ │ │ │ │ │ │ └── rxtx_factor:9 2821 │ │ │ │ │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 2822 │ │ │ │ │ │ │ │ │ └── vcpu_weight:10 2823 │ │ │ │ │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 2824 │ │ │ │ │ │ │ │ │ └── disabled:11 2825 │ │ │ │ │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 2826 │ │ │ │ │ │ │ │ │ └── is_public:12 2827 │ │ │ │ │ │ │ │ ├── const-agg [as=instance_types.deleted:13, outer=(13)] 2828 │ │ │ │ │ │ │ │ │ └── instance_types.deleted:13 2829 │ │ │ │ │ │ │ │ ├── const-agg [as=instance_types.deleted_at:14, outer=(14)] 2830 │ │ │ │ │ │ │ │ │ └── instance_types.deleted_at:14 2831 │ │ │ │ │ │ │ │ ├── const-agg [as=instance_types.created_at:15, outer=(15)] 2832 │ │ │ │ │ │ │ │ │ └── instance_types.created_at:15 2833 │ │ │ │ │ │ │ │ └── const-agg [as=instance_types.updated_at:16, outer=(16)] 2834 │ │ │ │ │ │ │ │ └── instance_types.updated_at:16 2835 │ │ │ │ │ │ │ └── filters 2836 │ │ │ │ │ │ │ └── (is_public:12 = true) OR (true_agg:34 IS NOT NULL) [outer=(12,34)] 2837 │ │ │ │ │ │ ├── project 2838 │ │ │ │ │ │ │ ├── columns: true:36!null instance_type_projects.instance_type_id:26!null 2839 │ │ │ │ │ │ │ ├── has-placeholder 2840 │ │ │ │ │ │ │ ├── fd: ()-->(36) 2841 │ │ │ │ │ │ │ ├── ordering: +26 opt(36) [actual: +26] 2842 │ │ │ │ │ │ │ ├── select 2843 │ │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:26!null project_id:27!null instance_type_projects.deleted:28!null 2844 │ │ │ │ │ │ │ │ ├── has-placeholder 2845 │ │ │ │ │ │ │ │ ├── key: (26-28) 2846 │ │ │ │ │ │ │ │ ├── ordering: +26 2847 │ │ │ │ │ │ │ │ ├── scan instance_type_projects@secondary 2848 │ │ │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:26!null project_id:27 instance_type_projects.deleted:28 2849 │ │ │ │ │ │ │ │ │ ├── lax-key: (26-28) 2850 │ │ │ │ │ │ │ │ │ └── ordering: +26 2851 │ │ │ │ │ │ │ │ └── filters 2852 │ │ │ │ │ │ │ │ ├── instance_type_projects.deleted:28 = $4 [outer=(28), constraints=(/28: (/NULL - ])] 2853 │ │ │ │ │ │ │ │ ├── instance_type_projects.deleted:28 = $5 [outer=(28), constraints=(/28: (/NULL - ])] 2854 │ │ │ │ │ │ │ │ └── project_id:27 = $6 [outer=(27), constraints=(/27: (/NULL - ])] 2855 │ │ │ │ │ │ │ └── projections 2856 │ │ │ │ │ │ │ └── true [as=true:36] 2857 │ │ │ │ │ │ └── filters (true) 2858 │ │ │ │ │ └── aggregations 2859 │ │ │ │ │ ├── const-not-null-agg [as=true_agg:37, outer=(36)] 2860 │ │ │ │ │ │ └── true:36 2861 │ │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 2862 │ │ │ │ │ │ └── name:2 2863 │ │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 2864 │ │ │ │ │ │ └── memory_mb:3 2865 │ │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 2866 │ │ │ │ │ │ └── vcpus:4 2867 │ │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 2868 │ │ │ │ │ │ └── root_gb:5 2869 │ │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 2870 │ │ │ │ │ │ └── ephemeral_gb:6 2871 │ │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 2872 │ │ │ │ │ │ └── flavorid:7 2873 │ │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 2874 │ │ │ │ │ │ └── swap:8 2875 │ │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 2876 │ │ │ │ │ │ └── rxtx_factor:9 2877 │ │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 2878 │ │ │ │ │ │ └── vcpu_weight:10 2879 │ │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 2880 │ │ │ │ │ │ └── disabled:11 2881 │ │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 2882 │ │ │ │ │ │ └── is_public:12 2883 │ │ │ │ │ ├── const-agg [as=instance_types.deleted:13, outer=(13)] 2884 │ │ │ │ │ │ └── instance_types.deleted:13 2885 │ │ │ │ │ ├── const-agg [as=instance_types.deleted_at:14, outer=(14)] 2886 │ │ │ │ │ │ └── instance_types.deleted_at:14 2887 │ │ │ │ │ ├── const-agg [as=instance_types.created_at:15, outer=(15)] 2888 │ │ │ │ │ │ └── instance_types.created_at:15 2889 │ │ │ │ │ └── const-agg [as=instance_types.updated_at:16, outer=(16)] 2890 │ │ │ │ │ └── instance_types.updated_at:16 2891 │ │ │ │ └── filters 2892 │ │ │ │ └── (is_public:12 = true) OR (true_agg:37 IS NOT NULL) [outer=(12,37)] 2893 │ │ │ └── $7 2894 │ │ └── $8 2895 │ └── filters 2896 │ └── instance_type_extra_specs_1.deleted:43 = $9 [outer=(43), constraints=(/43: (/NULL - ])] 2897 └── filters (true) 2898 2899 opt 2900 select anon_1.instance_types_created_at as anon_1_instance_types_created_at, 2901 anon_1.instance_types_updated_at as anon_1_instance_types_updated_at, 2902 anon_1.instance_types_deleted_at as anon_1_instance_types_deleted_at, 2903 anon_1.instance_types_deleted as anon_1_instance_types_deleted, 2904 anon_1.instance_types_id as anon_1_instance_types_id, 2905 anon_1.instance_types_name as anon_1_instance_types_name, 2906 anon_1.instance_types_memory_mb as anon_1_instance_types_memory_mb, 2907 anon_1.instance_types_vcpus as anon_1_instance_types_vcpus, 2908 anon_1.instance_types_root_gb as anon_1_instance_types_root_gb, 2909 anon_1.instance_types_ephemeral_gb as anon_1_instance_types_ephemeral_gb, 2910 anon_1.instance_types_flavorid as anon_1_instance_types_flavorid, 2911 anon_1.instance_types_swap as anon_1_instance_types_swap, 2912 anon_1.instance_types_rxtx_factor as anon_1_instance_types_rxtx_factor, 2913 anon_1.instance_types_vcpu_weight as anon_1_instance_types_vcpu_weight, 2914 anon_1.instance_types_disabled as anon_1_instance_types_disabled, 2915 anon_1.instance_types_is_public as anon_1_instance_types_is_public, 2916 instance_type_extra_specs_1.created_at as instance_type_extra_specs_1_created_at, 2917 instance_type_extra_specs_1.updated_at as instance_type_extra_specs_1_updated_at, 2918 instance_type_extra_specs_1.deleted_at as instance_type_extra_specs_1_deleted_at, 2919 instance_type_extra_specs_1.deleted as instance_type_extra_specs_1_deleted, 2920 instance_type_extra_specs_1.id as instance_type_extra_specs_1_id, 2921 instance_type_extra_specs_1."key" as instance_type_extra_specs_1_key, 2922 instance_type_extra_specs_1.value as instance_type_extra_specs_1_value, 2923 instance_type_extra_specs_1.instance_type_id as instance_type_extra_specs_1_instance_type_id 2924 from (select instance_types.created_at as instance_types_created_at, 2925 instance_types.updated_at as instance_types_updated_at, 2926 instance_types.deleted_at as instance_types_deleted_at, 2927 instance_types.deleted as instance_types_deleted, 2928 instance_types.id as instance_types_id, 2929 instance_types.name as instance_types_name, 2930 instance_types.memory_mb as instance_types_memory_mb, 2931 instance_types.vcpus as instance_types_vcpus, 2932 instance_types.root_gb as instance_types_root_gb, 2933 instance_types.ephemeral_gb as instance_types_ephemeral_gb, 2934 instance_types.flavorid as instance_types_flavorid, 2935 instance_types.swap as instance_types_swap, 2936 instance_types.rxtx_factor as instance_types_rxtx_factor, 2937 instance_types.vcpu_weight as instance_types_vcpu_weight, 2938 instance_types.disabled as instance_types_disabled, 2939 instance_types.is_public as instance_types_is_public 2940 from instance_types 2941 where instance_types.deleted = $1 2942 and (instance_types.is_public = true 2943 or (exists (select 1 2944 from instance_type_projects 2945 where instance_type_projects.instance_type_id = instance_types.id 2946 and instance_type_projects.deleted = $2 2947 and instance_type_projects.project_id = $3))) 2948 and instance_types.flavorid = $4 2949 order by instance_types.deleted asc, instance_types.id asc 2950 offset $5 rows 2951 limit $6) 2952 as anon_1 2953 left join instance_type_extra_specs as instance_type_extra_specs_1 2954 on instance_type_extra_specs_1.instance_type_id = anon_1.instance_types_id 2955 and instance_type_extra_specs_1.deleted = $7 2956 order by anon_1.instance_types_deleted asc, 2957 anon_1.instance_types_id asc 2958 ---- 2959 sort 2960 ├── columns: anon_1_instance_types_created_at:15 anon_1_instance_types_updated_at:16 anon_1_instance_types_deleted_at:14 anon_1_instance_types_deleted:13!null anon_1_instance_types_id:1!null anon_1_instance_types_name:2 anon_1_instance_types_memory_mb:3!null anon_1_instance_types_vcpus:4!null anon_1_instance_types_root_gb:5 anon_1_instance_types_ephemeral_gb:6 anon_1_instance_types_flavorid:7!null anon_1_instance_types_swap:8!null anon_1_instance_types_rxtx_factor:9 anon_1_instance_types_vcpu_weight:10 anon_1_instance_types_disabled:11 anon_1_instance_types_is_public:12 instance_type_extra_specs_1_created_at:34 instance_type_extra_specs_1_updated_at:35 instance_type_extra_specs_1_deleted_at:33 instance_type_extra_specs_1_deleted:32 instance_type_extra_specs_1_id:28 instance_type_extra_specs_1_key:29 instance_type_extra_specs_1_value:30 instance_type_extra_specs_1_instance_type_id:31 2961 ├── immutable, side-effects, has-placeholder 2962 ├── key: (1,28) 2963 ├── fd: (1)-->(2-16), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2964 ├── ordering: +13,+1 2965 └── project 2966 ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_extra_specs_1.id:28 key:29 value:30 instance_type_extra_specs_1.instance_type_id:31 instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 2967 ├── immutable, side-effects, has-placeholder 2968 ├── key: (1,28) 2969 ├── fd: (1)-->(2-16), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2970 └── right-join (hash) 2971 ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 instance_type_extra_specs_1.id:28 key:29 value:30 instance_type_extra_specs_1.instance_type_id:31 instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 2972 ├── immutable, side-effects, has-placeholder 2973 ├── key: (1,28) 2974 ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16), (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2975 ├── select 2976 │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32!null instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 2977 │ ├── has-placeholder 2978 │ ├── key: (28) 2979 │ ├── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2980 │ ├── scan instance_type_extra_specs_1 2981 │ │ ├── columns: instance_type_extra_specs_1.id:28!null key:29 value:30 instance_type_extra_specs_1.instance_type_id:31!null instance_type_extra_specs_1.deleted:32 instance_type_extra_specs_1.deleted_at:33 instance_type_extra_specs_1.created_at:34 instance_type_extra_specs_1.updated_at:35 2982 │ │ ├── key: (28) 2983 │ │ └── fd: (28)-->(29-35), (29,31,32)~~>(28,30,33-35) 2984 │ └── filters 2985 │ └── instance_type_extra_specs_1.deleted:32 = $7 [outer=(32), constraints=(/32: (/NULL - ])] 2986 ├── limit 2987 │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 2988 │ ├── internal-ordering: +13,+1 2989 │ ├── immutable, side-effects, has-placeholder 2990 │ ├── key: (1) 2991 │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2992 │ ├── offset 2993 │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 2994 │ │ ├── internal-ordering: +13,+1 2995 │ │ ├── has-placeholder 2996 │ │ ├── key: (1) 2997 │ │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 2998 │ │ ├── ordering: +13,+1 2999 │ │ ├── sort 3000 │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 3001 │ │ │ ├── has-placeholder 3002 │ │ │ ├── key: (1) 3003 │ │ │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 3004 │ │ │ ├── ordering: +13,+1 3005 │ │ │ └── select 3006 │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 3007 │ │ │ ├── has-placeholder 3008 │ │ │ ├── key: (1) 3009 │ │ │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 3010 │ │ │ ├── group-by 3011 │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 true_agg:26 3012 │ │ │ │ ├── grouping columns: instance_types.id:1!null 3013 │ │ │ │ ├── internal-ordering: +1 3014 │ │ │ │ ├── has-placeholder 3015 │ │ │ │ ├── key: (1) 3016 │ │ │ │ ├── fd: (1)-->(2-16,26), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 3017 │ │ │ │ ├── left-join (merge) 3018 │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 instance_type_projects.instance_type_id:18 true:25 3019 │ │ │ │ │ ├── left ordering: +1 3020 │ │ │ │ │ ├── right ordering: +18 3021 │ │ │ │ │ ├── has-placeholder 3022 │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 3023 │ │ │ │ │ ├── ordering: +1 3024 │ │ │ │ │ ├── select 3025 │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13!null instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 3026 │ │ │ │ │ │ ├── has-placeholder 3027 │ │ │ │ │ │ ├── key: (1) 3028 │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)-->(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 3029 │ │ │ │ │ │ ├── ordering: +1 3030 │ │ │ │ │ │ ├── scan instance_types 3031 │ │ │ │ │ │ │ ├── columns: instance_types.id:1!null name:2 memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7 swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 instance_types.deleted:13 instance_types.deleted_at:14 instance_types.created_at:15 instance_types.updated_at:16 3032 │ │ │ │ │ │ │ ├── key: (1) 3033 │ │ │ │ │ │ │ ├── fd: (1)-->(2-16), (7,13)~~>(1-6,8-12,14-16), (2,13)~~>(1,3-12,14-16) 3034 │ │ │ │ │ │ │ └── ordering: +1 3035 │ │ │ │ │ │ └── filters 3036 │ │ │ │ │ │ ├── instance_types.deleted:13 = $1 [outer=(13), constraints=(/13: (/NULL - ])] 3037 │ │ │ │ │ │ └── flavorid:7 = $4 [outer=(7), constraints=(/7: (/NULL - ])] 3038 │ │ │ │ │ ├── project 3039 │ │ │ │ │ │ ├── columns: true:25!null instance_type_projects.instance_type_id:18!null 3040 │ │ │ │ │ │ ├── has-placeholder 3041 │ │ │ │ │ │ ├── fd: ()-->(25) 3042 │ │ │ │ │ │ ├── ordering: +18 opt(25) [actual: +18] 3043 │ │ │ │ │ │ ├── select 3044 │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19!null instance_type_projects.deleted:20!null 3045 │ │ │ │ │ │ │ ├── has-placeholder 3046 │ │ │ │ │ │ │ ├── key: (18-20) 3047 │ │ │ │ │ │ │ ├── ordering: +18 3048 │ │ │ │ │ │ │ ├── scan instance_type_projects@secondary 3049 │ │ │ │ │ │ │ │ ├── columns: instance_type_projects.instance_type_id:18!null project_id:19 instance_type_projects.deleted:20 3050 │ │ │ │ │ │ │ │ ├── lax-key: (18-20) 3051 │ │ │ │ │ │ │ │ └── ordering: +18 3052 │ │ │ │ │ │ │ └── filters 3053 │ │ │ │ │ │ │ ├── instance_type_projects.deleted:20 = $2 [outer=(20), constraints=(/20: (/NULL - ])] 3054 │ │ │ │ │ │ │ └── project_id:19 = $3 [outer=(19), constraints=(/19: (/NULL - ])] 3055 │ │ │ │ │ │ └── projections 3056 │ │ │ │ │ │ └── true [as=true:25] 3057 │ │ │ │ │ └── filters (true) 3058 │ │ │ │ └── aggregations 3059 │ │ │ │ ├── const-not-null-agg [as=true_agg:26, outer=(25)] 3060 │ │ │ │ │ └── true:25 3061 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 3062 │ │ │ │ │ └── name:2 3063 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 3064 │ │ │ │ │ └── memory_mb:3 3065 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 3066 │ │ │ │ │ └── vcpus:4 3067 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 3068 │ │ │ │ │ └── root_gb:5 3069 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 3070 │ │ │ │ │ └── ephemeral_gb:6 3071 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 3072 │ │ │ │ │ └── flavorid:7 3073 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 3074 │ │ │ │ │ └── swap:8 3075 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 3076 │ │ │ │ │ └── rxtx_factor:9 3077 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 3078 │ │ │ │ │ └── vcpu_weight:10 3079 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 3080 │ │ │ │ │ └── disabled:11 3081 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 3082 │ │ │ │ │ └── is_public:12 3083 │ │ │ │ ├── const-agg [as=instance_types.deleted:13, outer=(13)] 3084 │ │ │ │ │ └── instance_types.deleted:13 3085 │ │ │ │ ├── const-agg [as=instance_types.deleted_at:14, outer=(14)] 3086 │ │ │ │ │ └── instance_types.deleted_at:14 3087 │ │ │ │ ├── const-agg [as=instance_types.created_at:15, outer=(15)] 3088 │ │ │ │ │ └── instance_types.created_at:15 3089 │ │ │ │ └── const-agg [as=instance_types.updated_at:16, outer=(16)] 3090 │ │ │ │ └── instance_types.updated_at:16 3091 │ │ │ └── filters 3092 │ │ │ └── (is_public:12 = true) OR (true_agg:26 IS NOT NULL) [outer=(12,26)] 3093 │ │ └── $5 3094 │ └── $6 3095 └── filters 3096 └── instance_type_extra_specs_1.instance_type_id:31 = instance_types.id:1 [outer=(1,31), constraints=(/1: (/NULL - ]; /31: (/NULL - ]), fd=(1)==(31), (31)==(1)] 3097 3098 opt 3099 select anon_1.flavors_created_at as anon_1_flavors_created_at, 3100 anon_1.flavors_updated_at as anon_1_flavors_updated_at, 3101 anon_1.flavors_id as anon_1_flavors_id, 3102 anon_1.flavors_name as anon_1_flavors_name, 3103 anon_1.flavors_memory_mb as anon_1_flavors_memory_mb, 3104 anon_1.flavors_vcpus as anon_1_flavors_vcpus, 3105 anon_1.flavors_root_gb as anon_1_flavors_root_gb, 3106 anon_1.flavors_ephemeral_gb as anon_1_flavors_ephemeral_gb, 3107 anon_1.flavors_flavorid as anon_1_flavors_flavorid, 3108 anon_1.flavors_swap as anon_1_flavors_swap, 3109 anon_1.flavors_rxtx_factor as anon_1_flavors_rxtx_factor, 3110 anon_1.flavors_vcpu_weight as anon_1_flavors_vcpu_weight, 3111 anon_1.flavors_disabled as anon_1_flavors_disabled, 3112 anon_1.flavors_is_public as anon_1_flavors_is_public, 3113 flavor_extra_specs_1.created_at as flavor_extra_specs_1_created_at, 3114 flavor_extra_specs_1.updated_at as flavor_extra_specs_1_updated_at, 3115 flavor_extra_specs_1.id as flavor_extra_specs_1_id, 3116 flavor_extra_specs_1."key" as flavor_extra_specs_1_key, 3117 flavor_extra_specs_1.value as flavor_extra_specs_1_value, 3118 flavor_extra_specs_1.flavor_id as flavor_extra_specs_1_flavor_id 3119 from (select flavors.created_at as flavors_created_at, 3120 flavors.updated_at as flavors_updated_at, 3121 flavors.id as flavors_id, 3122 flavors.name as flavors_name, 3123 flavors.memory_mb as flavors_memory_mb, 3124 flavors.vcpus as flavors_vcpus, 3125 flavors.root_gb as flavors_root_gb, 3126 flavors.ephemeral_gb as flavors_ephemeral_gb, 3127 flavors.flavorid as flavors_flavorid, 3128 flavors.swap as flavors_swap, 3129 flavors.rxtx_factor as flavors_rxtx_factor, 3130 flavors.vcpu_weight as flavors_vcpu_weight, 3131 flavors.disabled as flavors_disabled, 3132 flavors.is_public as flavors_is_public 3133 from flavors 3134 where (flavors.is_public = true 3135 or (exists (select 1 3136 from flavor_projects 3137 where flavor_projects.flavor_id = flavors.id 3138 and flavor_projects.project_id = $1))) 3139 and flavors.id = $2 3140 offset $3 rows 3141 limit $4) 3142 as anon_1 3143 left join flavor_extra_specs as flavor_extra_specs_1 3144 on flavor_extra_specs_1.flavor_id = anon_1.flavors_id 3145 ---- 3146 project 3147 ├── columns: anon_1_flavors_created_at:14 anon_1_flavors_updated_at:15 anon_1_flavors_id:1!null anon_1_flavors_name:2!null anon_1_flavors_memory_mb:3!null anon_1_flavors_vcpus:4!null anon_1_flavors_root_gb:5 anon_1_flavors_ephemeral_gb:6 anon_1_flavors_flavorid:7!null anon_1_flavors_swap:8!null anon_1_flavors_rxtx_factor:9 anon_1_flavors_vcpu_weight:10 anon_1_flavors_disabled:11 anon_1_flavors_is_public:12 flavor_extra_specs_1_created_at:29 flavor_extra_specs_1_updated_at:30 flavor_extra_specs_1_id:25 flavor_extra_specs_1_key:26 flavor_extra_specs_1_value:27 flavor_extra_specs_1_flavor_id:28 3148 ├── immutable, side-effects, has-placeholder 3149 ├── key: (1,25) 3150 ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 3151 └── right-join (hash) 3152 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 flavor_extra_specs_1.id:25 key:26 value:27 flavor_extra_specs_1.flavor_id:28 flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 3153 ├── immutable, side-effects, has-placeholder 3154 ├── key: (1,25) 3155 ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15), (25)-->(26-30), (26,28)-->(25,27,29,30) 3156 ├── scan flavor_extra_specs_1 3157 │ ├── columns: flavor_extra_specs_1.id:25!null key:26!null value:27 flavor_extra_specs_1.flavor_id:28!null flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 3158 │ ├── key: (25) 3159 │ └── fd: (25)-->(26-30), (26,28)-->(25,27,29,30) 3160 ├── limit 3161 │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 3162 │ ├── immutable, side-effects, has-placeholder 3163 │ ├── key: (1) 3164 │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 3165 │ ├── offset 3166 │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 3167 │ │ ├── has-placeholder 3168 │ │ ├── key: (1) 3169 │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 3170 │ │ ├── select 3171 │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 3172 │ │ │ ├── has-placeholder 3173 │ │ │ ├── key: (1) 3174 │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 3175 │ │ │ ├── group-by 3176 │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 true_agg:23 3177 │ │ │ │ ├── grouping columns: flavors.id:1!null 3178 │ │ │ │ ├── internal-ordering: +1 3179 │ │ │ │ ├── has-placeholder 3180 │ │ │ │ ├── key: (1) 3181 │ │ │ │ ├── fd: (1)-->(2-12,14,15,23), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 3182 │ │ │ │ ├── left-join (merge) 3183 │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 flavor_projects.flavor_id:17 true:22 3184 │ │ │ │ │ ├── left ordering: +1 3185 │ │ │ │ │ ├── right ordering: +17 3186 │ │ │ │ │ ├── has-placeholder 3187 │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 3188 │ │ │ │ │ ├── ordering: +1 3189 │ │ │ │ │ ├── select 3190 │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 3191 │ │ │ │ │ │ ├── has-placeholder 3192 │ │ │ │ │ │ ├── key: (1) 3193 │ │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 3194 │ │ │ │ │ │ ├── ordering: +1 3195 │ │ │ │ │ │ ├── scan flavors 3196 │ │ │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 flavors.created_at:14 flavors.updated_at:15 3197 │ │ │ │ │ │ │ ├── key: (1) 3198 │ │ │ │ │ │ │ ├── fd: (1)-->(2-12,14,15), (7)-->(1-6,8-12,14,15), (2)-->(1,3-12,14,15) 3199 │ │ │ │ │ │ │ └── ordering: +1 3200 │ │ │ │ │ │ └── filters 3201 │ │ │ │ │ │ └── flavors.id:1 = $2 [outer=(1), constraints=(/1: (/NULL - ])] 3202 │ │ │ │ │ ├── project 3203 │ │ │ │ │ │ ├── columns: true:22!null flavor_projects.flavor_id:17!null 3204 │ │ │ │ │ │ ├── has-placeholder 3205 │ │ │ │ │ │ ├── fd: ()-->(22) 3206 │ │ │ │ │ │ ├── ordering: +17 opt(22) [actual: +17] 3207 │ │ │ │ │ │ ├── select 3208 │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 3209 │ │ │ │ │ │ │ ├── has-placeholder 3210 │ │ │ │ │ │ │ ├── key: (17,18) 3211 │ │ │ │ │ │ │ ├── ordering: +17 3212 │ │ │ │ │ │ │ ├── scan flavor_projects@secondary 3213 │ │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 3214 │ │ │ │ │ │ │ │ ├── key: (17,18) 3215 │ │ │ │ │ │ │ │ └── ordering: +17 3216 │ │ │ │ │ │ │ └── filters 3217 │ │ │ │ │ │ │ ├── project_id:18 = $1 [outer=(18), constraints=(/18: (/NULL - ])] 3218 │ │ │ │ │ │ │ └── flavor_projects.flavor_id:17 = $2 [outer=(17), constraints=(/17: (/NULL - ])] 3219 │ │ │ │ │ │ └── projections 3220 │ │ │ │ │ │ └── true [as=true:22] 3221 │ │ │ │ │ └── filters (true) 3222 │ │ │ │ └── aggregations 3223 │ │ │ │ ├── const-not-null-agg [as=true_agg:23, outer=(22)] 3224 │ │ │ │ │ └── true:22 3225 │ │ │ │ ├── const-agg [as=name:2, outer=(2)] 3226 │ │ │ │ │ └── name:2 3227 │ │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 3228 │ │ │ │ │ └── memory_mb:3 3229 │ │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 3230 │ │ │ │ │ └── vcpus:4 3231 │ │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 3232 │ │ │ │ │ └── root_gb:5 3233 │ │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 3234 │ │ │ │ │ └── ephemeral_gb:6 3235 │ │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 3236 │ │ │ │ │ └── flavorid:7 3237 │ │ │ │ ├── const-agg [as=swap:8, outer=(8)] 3238 │ │ │ │ │ └── swap:8 3239 │ │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 3240 │ │ │ │ │ └── rxtx_factor:9 3241 │ │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 3242 │ │ │ │ │ └── vcpu_weight:10 3243 │ │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 3244 │ │ │ │ │ └── disabled:11 3245 │ │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 3246 │ │ │ │ │ └── is_public:12 3247 │ │ │ │ ├── const-agg [as=flavors.created_at:14, outer=(14)] 3248 │ │ │ │ │ └── flavors.created_at:14 3249 │ │ │ │ └── const-agg [as=flavors.updated_at:15, outer=(15)] 3250 │ │ │ │ └── flavors.updated_at:15 3251 │ │ │ └── filters 3252 │ │ │ └── (is_public:12 = true) OR (true_agg:23 IS NOT NULL) [outer=(12,23)] 3253 │ │ └── $3 3254 │ └── $4 3255 └── filters 3256 └── flavor_extra_specs_1.flavor_id:28 = flavors.id:1 [outer=(1,28), constraints=(/1: (/NULL - ]; /28: (/NULL - ]), fd=(1)==(28), (28)==(1)] 3257 3258 opt 3259 select anon_1.flavors_created_at as anon_1_flavors_created_at, 3260 anon_1.flavors_updated_at as anon_1_flavors_updated_at, 3261 anon_1.flavors_id as anon_1_flavors_id, 3262 anon_1.flavors_name as anon_1_flavors_name, 3263 anon_1.flavors_memory_mb as anon_1_flavors_memory_mb, 3264 anon_1.flavors_vcpus as anon_1_flavors_vcpus, 3265 anon_1.flavors_root_gb as anon_1_flavors_root_gb, 3266 anon_1.flavors_ephemeral_gb as anon_1_flavors_ephemeral_gb, 3267 anon_1.flavors_flavorid as anon_1_flavors_flavorid, 3268 anon_1.flavors_swap as anon_1_flavors_swap, 3269 anon_1.flavors_rxtx_factor as anon_1_flavors_rxtx_factor, 3270 anon_1.flavors_vcpu_weight as anon_1_flavors_vcpu_weight, 3271 anon_1.flavors_disabled as anon_1_flavors_disabled, 3272 anon_1.flavors_is_public as anon_1_flavors_is_public, 3273 anon_1.flavors_description as anon_1_flavors_description, 3274 flavor_extra_specs_1.created_at as flavor_extra_specs_1_created_at, 3275 flavor_extra_specs_1.updated_at as flavor_extra_specs_1_updated_at, 3276 flavor_extra_specs_1.id as flavor_extra_specs_1_id, 3277 flavor_extra_specs_1."key" as flavor_extra_specs_1_key, 3278 flavor_extra_specs_1.value as flavor_extra_specs_1_value, 3279 flavor_extra_specs_1.flavor_id as flavor_extra_specs_1_flavor_id 3280 from (select flavors.created_at as flavors_created_at, 3281 flavors.updated_at as flavors_updated_at, 3282 flavors.id as flavors_id, 3283 flavors.name as flavors_name, 3284 flavors.memory_mb as flavors_memory_mb, 3285 flavors.vcpus as flavors_vcpus, 3286 flavors.root_gb as flavors_root_gb, 3287 flavors.ephemeral_gb as flavors_ephemeral_gb, 3288 flavors.flavorid as flavors_flavorid, 3289 flavors.swap as flavors_swap, 3290 flavors.rxtx_factor as flavors_rxtx_factor, 3291 flavors.vcpu_weight as flavors_vcpu_weight, 3292 flavors.disabled as flavors_disabled, 3293 flavors.is_public as flavors_is_public, 3294 flavors.description as flavors_description 3295 from flavors 3296 where flavors.is_public = true 3297 or (exists (select 1 3298 from flavor_projects 3299 where flavor_projects.flavor_id = flavors.id 3300 and flavor_projects.project_id = $1)) 3301 order by flavors.flavorid asc, flavors.id asc 3302 limit $2) 3303 as anon_1 3304 left join flavor_extra_specs as flavor_extra_specs_1 3305 on flavor_extra_specs_1.flavor_id = anon_1.flavors_id 3306 order by anon_1.flavors_flavorid asc, anon_1.flavors_id asc 3307 ---- 3308 sort 3309 ├── columns: anon_1_flavors_created_at:14 anon_1_flavors_updated_at:15 anon_1_flavors_id:1!null anon_1_flavors_name:2!null anon_1_flavors_memory_mb:3!null anon_1_flavors_vcpus:4!null anon_1_flavors_root_gb:5 anon_1_flavors_ephemeral_gb:6 anon_1_flavors_flavorid:7!null anon_1_flavors_swap:8!null anon_1_flavors_rxtx_factor:9 anon_1_flavors_vcpu_weight:10 anon_1_flavors_disabled:11 anon_1_flavors_is_public:12 anon_1_flavors_description:13 flavor_extra_specs_1_created_at:29 flavor_extra_specs_1_updated_at:30 flavor_extra_specs_1_id:25 flavor_extra_specs_1_key:26 flavor_extra_specs_1_value:27 flavor_extra_specs_1_flavor_id:28 3310 ├── immutable, side-effects, has-placeholder 3311 ├── key: (1,25) 3312 ├── fd: (1)-->(2-15), (7)-->(1-6,8-15), (2)-->(1,3-15), (25)-->(26-30), (26,28)-->(25,27,29,30) 3313 ├── ordering: +7 3314 └── project 3315 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 description:13 flavors.created_at:14 flavors.updated_at:15 flavor_extra_specs_1.id:25 key:26 value:27 flavor_extra_specs_1.flavor_id:28 flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 3316 ├── immutable, side-effects, has-placeholder 3317 ├── key: (1,25) 3318 ├── fd: (1)-->(2-15), (7)-->(1-6,8-15), (2)-->(1,3-15), (25)-->(26-30), (26,28)-->(25,27,29,30) 3319 └── right-join (hash) 3320 ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 description:13 flavors.created_at:14 flavors.updated_at:15 true_agg:23 flavor_extra_specs_1.id:25 key:26 value:27 flavor_extra_specs_1.flavor_id:28 flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 3321 ├── immutable, side-effects, has-placeholder 3322 ├── key: (1,25) 3323 ├── fd: (1)-->(2-15,23), (7)-->(1-6,8-15), (2)-->(1,3-15), (25)-->(26-30), (26,28)-->(25,27,29,30) 3324 ├── scan flavor_extra_specs_1 3325 │ ├── columns: flavor_extra_specs_1.id:25!null key:26!null value:27 flavor_extra_specs_1.flavor_id:28!null flavor_extra_specs_1.created_at:29 flavor_extra_specs_1.updated_at:30 3326 │ ├── key: (25) 3327 │ └── fd: (25)-->(26-30), (26,28)-->(25,27,29,30) 3328 ├── limit 3329 │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 description:13 flavors.created_at:14 flavors.updated_at:15 true_agg:23 3330 │ ├── internal-ordering: +7 3331 │ ├── immutable, side-effects, has-placeholder 3332 │ ├── key: (1) 3333 │ ├── fd: (1)-->(2-15,23), (7)-->(1-6,8-15), (2)-->(1,3-15) 3334 │ ├── sort 3335 │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 description:13 flavors.created_at:14 flavors.updated_at:15 true_agg:23 3336 │ │ ├── has-placeholder 3337 │ │ ├── key: (1) 3338 │ │ ├── fd: (1)-->(2-15,23), (7)-->(1-6,8-15), (2)-->(1,3-15) 3339 │ │ ├── ordering: +7 3340 │ │ └── select 3341 │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 description:13 flavors.created_at:14 flavors.updated_at:15 true_agg:23 3342 │ │ ├── has-placeholder 3343 │ │ ├── key: (1) 3344 │ │ ├── fd: (1)-->(2-15,23), (7)-->(1-6,8-15), (2)-->(1,3-15) 3345 │ │ ├── group-by 3346 │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 description:13 flavors.created_at:14 flavors.updated_at:15 true_agg:23 3347 │ │ │ ├── grouping columns: flavors.id:1!null 3348 │ │ │ ├── internal-ordering: +1 3349 │ │ │ ├── has-placeholder 3350 │ │ │ ├── key: (1) 3351 │ │ │ ├── fd: (1)-->(2-15,23), (7)-->(1-6,8-15), (2)-->(1,3-15) 3352 │ │ │ ├── left-join (merge) 3353 │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 description:13 flavors.created_at:14 flavors.updated_at:15 flavor_projects.flavor_id:17 true:22 3354 │ │ │ │ ├── left ordering: +1 3355 │ │ │ │ ├── right ordering: +17 3356 │ │ │ │ ├── has-placeholder 3357 │ │ │ │ ├── fd: (1)-->(2-15), (7)-->(1-6,8-15), (2)-->(1,3-15) 3358 │ │ │ │ ├── ordering: +1 3359 │ │ │ │ ├── scan flavors 3360 │ │ │ │ │ ├── columns: flavors.id:1!null name:2!null memory_mb:3!null vcpus:4!null root_gb:5 ephemeral_gb:6 flavorid:7!null swap:8!null rxtx_factor:9 vcpu_weight:10 disabled:11 is_public:12 description:13 flavors.created_at:14 flavors.updated_at:15 3361 │ │ │ │ │ ├── key: (1) 3362 │ │ │ │ │ ├── fd: (1)-->(2-15), (7)-->(1-6,8-15), (2)-->(1,3-15) 3363 │ │ │ │ │ └── ordering: +1 3364 │ │ │ │ ├── project 3365 │ │ │ │ │ ├── columns: true:22!null flavor_projects.flavor_id:17!null 3366 │ │ │ │ │ ├── has-placeholder 3367 │ │ │ │ │ ├── fd: ()-->(22) 3368 │ │ │ │ │ ├── ordering: +17 opt(22) [actual: +17] 3369 │ │ │ │ │ ├── select 3370 │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 3371 │ │ │ │ │ │ ├── has-placeholder 3372 │ │ │ │ │ │ ├── key: (17,18) 3373 │ │ │ │ │ │ ├── ordering: +17 3374 │ │ │ │ │ │ ├── scan flavor_projects@secondary 3375 │ │ │ │ │ │ │ ├── columns: flavor_projects.flavor_id:17!null project_id:18!null 3376 │ │ │ │ │ │ │ ├── key: (17,18) 3377 │ │ │ │ │ │ │ └── ordering: +17 3378 │ │ │ │ │ │ └── filters 3379 │ │ │ │ │ │ └── project_id:18 = $1 [outer=(18), constraints=(/18: (/NULL - ])] 3380 │ │ │ │ │ └── projections 3381 │ │ │ │ │ └── true [as=true:22] 3382 │ │ │ │ └── filters (true) 3383 │ │ │ └── aggregations 3384 │ │ │ ├── const-not-null-agg [as=true_agg:23, outer=(22)] 3385 │ │ │ │ └── true:22 3386 │ │ │ ├── const-agg [as=name:2, outer=(2)] 3387 │ │ │ │ └── name:2 3388 │ │ │ ├── const-agg [as=memory_mb:3, outer=(3)] 3389 │ │ │ │ └── memory_mb:3 3390 │ │ │ ├── const-agg [as=vcpus:4, outer=(4)] 3391 │ │ │ │ └── vcpus:4 3392 │ │ │ ├── const-agg [as=root_gb:5, outer=(5)] 3393 │ │ │ │ └── root_gb:5 3394 │ │ │ ├── const-agg [as=ephemeral_gb:6, outer=(6)] 3395 │ │ │ │ └── ephemeral_gb:6 3396 │ │ │ ├── const-agg [as=flavorid:7, outer=(7)] 3397 │ │ │ │ └── flavorid:7 3398 │ │ │ ├── const-agg [as=swap:8, outer=(8)] 3399 │ │ │ │ └── swap:8 3400 │ │ │ ├── const-agg [as=rxtx_factor:9, outer=(9)] 3401 │ │ │ │ └── rxtx_factor:9 3402 │ │ │ ├── const-agg [as=vcpu_weight:10, outer=(10)] 3403 │ │ │ │ └── vcpu_weight:10 3404 │ │ │ ├── const-agg [as=disabled:11, outer=(11)] 3405 │ │ │ │ └── disabled:11 3406 │ │ │ ├── const-agg [as=is_public:12, outer=(12)] 3407 │ │ │ │ └── is_public:12 3408 │ │ │ ├── const-agg [as=description:13, outer=(13)] 3409 │ │ │ │ └── description:13 3410 │ │ │ ├── const-agg [as=flavors.created_at:14, outer=(14)] 3411 │ │ │ │ └── flavors.created_at:14 3412 │ │ │ └── const-agg [as=flavors.updated_at:15, outer=(15)] 3413 │ │ │ └── flavors.updated_at:15 3414 │ │ └── filters 3415 │ │ └── (is_public:12 = true) OR (true_agg:23 IS NOT NULL) [outer=(12,23)] 3416 │ └── $2 3417 └── filters 3418 └── flavor_extra_specs_1.flavor_id:28 = flavors.id:1 [outer=(1,28), constraints=(/1: (/NULL - ]; /28: (/NULL - ]), fd=(1)==(28), (28)==(1)]