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)]