code: protected function loadTableIndexes($tableName)
      {
          static $sql = <<<'SQL'
  SELECT
      "ic"."relname" AS "name",
      "ia"."attname" AS "column_name",
      "i"."indisunique" AS "index_is_unique",
      "i"."indisprimary" AS "index_is_primary"
  FROM "pg_class" AS "tc"
  INNER JOIN "pg_namespace" AS "tcns"
      ON "tcns"."oid" = "tc"."relnamespace"
  INNER JOIN "pg_index" AS "i"
      ON "i"."indrelid" = "tc"."oid"
  INNER JOIN "pg_class" AS "ic"
      ON "ic"."oid" = "i"."indexrelid"
  INNER JOIN "pg_attribute" AS "ia"
      ON "ia"."attrelid" = "i"."indrelid" AND "ia"."attnum" = ANY ("i"."indkey")
  WHERE "tcns"."nspname" = :schemaName AND "tc"."relname" = :tableName
  ORDER BY "ia"."attnum" ASC
  SQL;
  
          $resolvedName = $this->resolveTableName($tableName);
          $indexes = $this->db->createCommand($sql, [
              ':schemaName' => $resolvedName->schemaName,
              ':tableName' => $resolvedName->name,
          ])->queryAll();
          $indexes = $this->normalizePdoRowKeyCase($indexes, true);
          $indexes = ArrayHelper::index($indexes, null, 'name');
          $result = [];
          foreach ($indexes as $name => $index) {
              $result[] = new IndexConstraint([
                  'isPrimary' => (bool) $index[0]['index_is_primary'],
                  'isUnique' => (bool) $index[0]['index_is_unique'],
                  'name' => $name,
                  'columnNames' => ArrayHelper::getColumn($index, 'column_name'),
              ]);
          }
  
          return $result;
      }
docs: {@inheritdoc}