Skip to content
This repository was archived by the owner on Sep 28, 2022. It is now read-only.

Bugfix in getMetaData #17

Merged
merged 1 commit into from
Apr 7, 2020
Merged

Bugfix in getMetaData #17

merged 1 commit into from
Apr 7, 2020

Conversation

codercms
Copy link
Collaborator

@codercms codercms commented Apr 4, 2020

Content of all rows is equals to the content of last row.

Table schema is:
image

\Swoole\Coroutine\run(function () {
    $pg = new \Swoole\Coroutine\PostgreSQL();
    $conn = $pg->connect('host=127.0.0.1 port=5433 dbname=test user=test password=secret');

    dump($pg->metaData('companies'))
}

Output is:

Click to expand
^ array:15 [
  "id" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "original_name" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "name_rus" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "name_rus_short" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "inn" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "kpp" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "is_foreign" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "is_manufacturer" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "is_holder" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "is_distributor" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "is_pharmacy" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "note" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "created_at" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "updated_at" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "deleted_at" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
]

After fix output is:

Click to expand
^ array:15 [
  "id" => array:7 [
    "num" => 1
    "type" => "uuid"
    "len" => 16
    "not null" => true
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "original_name" => array:7 [
    "num" => 2
    "type" => "text"
    "len" => -1
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "name_rus" => array:7 [
    "num" => 3
    "type" => "text"
    "len" => -1
    "not null" => true
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "name_rus_short" => array:7 [
    "num" => 4
    "type" => "text"
    "len" => -1
    "not null" => true
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "inn" => array:7 [
    "num" => 5
    "type" => "varchar"
    "len" => -1
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "kpp" => array:7 [
    "num" => 6
    "type" => "varchar"
    "len" => -1
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "is_foreign" => array:7 [
    "num" => 7
    "type" => "bool"
    "len" => 1
    "not null" => true
    "has default" => true
    "array dims" => 0
    "is enum" => false
  ]
  "is_manufacturer" => array:7 [
    "num" => 8
    "type" => "bool"
    "len" => 1
    "not null" => true
    "has default" => true
    "array dims" => 0
    "is enum" => false
  ]
  "is_holder" => array:7 [
    "num" => 9
    "type" => "bool"
    "len" => 1
    "not null" => true
    "has default" => true
    "array dims" => 0
    "is enum" => false
  ]
  "is_distributor" => array:7 [
    "num" => 10
    "type" => "bool"
    "len" => 1
    "not null" => true
    "has default" => true
    "array dims" => 0
    "is enum" => false
  ]
  "is_pharmacy" => array:7 [
    "num" => 11
    "type" => "bool"
    "len" => 1
    "not null" => true
    "has default" => true
    "array dims" => 0
    "is enum" => false
  ]
  "note" => array:7 [
    "num" => 12
    "type" => "text"
    "len" => -1
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "created_at" => array:7 [
    "num" => 13
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "updated_at" => array:7 [
    "num" => 14
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "deleted_at" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
]

Content of all rows is equals to the content of last row.

Table schema is:
![image](https://user-images.githubusercontent.com/4526911/78420732-7b8a0b00-765a-11ea-9f7b-f0a282641564.png)

```php
\Swoole\Coroutine\run(function () {
    $pg = new \Swoole\Coroutine\PostgreSQL();
    $conn = $pg->connect('host=127.0.0.1 port=5433 dbname=test user=test password=secret');

    dump($pg->metaData('companies'))
}
```

Output is:
<details>
<summary>Click to expand</summary>
```
^ array:15 [
  "id" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "original_name" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "name_rus" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "name_rus_short" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "inn" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "kpp" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "is_foreign" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "is_manufacturer" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "is_holder" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "is_distributor" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "is_pharmacy" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "note" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "created_at" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "updated_at" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "deleted_at" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
]
```
</details>

After fix output is:
<details>
<summary>Click to expand</summary>
```
^ array:15 [
  "id" => array:7 [
    "num" => 1
    "type" => "uuid"
    "len" => 16
    "not null" => true
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "original_name" => array:7 [
    "num" => 2
    "type" => "text"
    "len" => -1
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "name_rus" => array:7 [
    "num" => 3
    "type" => "text"
    "len" => -1
    "not null" => true
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "name_rus_short" => array:7 [
    "num" => 4
    "type" => "text"
    "len" => -1
    "not null" => true
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "inn" => array:7 [
    "num" => 5
    "type" => "varchar"
    "len" => -1
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "kpp" => array:7 [
    "num" => 6
    "type" => "varchar"
    "len" => -1
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "is_foreign" => array:7 [
    "num" => 7
    "type" => "bool"
    "len" => 1
    "not null" => true
    "has default" => true
    "array dims" => 0
    "is enum" => false
  ]
  "is_manufacturer" => array:7 [
    "num" => 8
    "type" => "bool"
    "len" => 1
    "not null" => true
    "has default" => true
    "array dims" => 0
    "is enum" => false
  ]
  "is_holder" => array:7 [
    "num" => 9
    "type" => "bool"
    "len" => 1
    "not null" => true
    "has default" => true
    "array dims" => 0
    "is enum" => false
  ]
  "is_distributor" => array:7 [
    "num" => 10
    "type" => "bool"
    "len" => 1
    "not null" => true
    "has default" => true
    "array dims" => 0
    "is enum" => false
  ]
  "is_pharmacy" => array:7 [
    "num" => 11
    "type" => "bool"
    "len" => 1
    "not null" => true
    "has default" => true
    "array dims" => 0
    "is enum" => false
  ]
  "note" => array:7 [
    "num" => 12
    "type" => "text"
    "len" => -1
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "created_at" => array:7 [
    "num" => 13
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "updated_at" => array:7 [
    "num" => 14
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
  "deleted_at" => array:7 [
    "num" => 15
    "type" => "timestamp"
    "len" => 8
    "not null" => false
    "has default" => false
    "array dims" => 0
    "is enum" => false
  ]
]
```
</details>
@yunnian
Copy link
Contributor

yunnian commented Apr 7, 2020

@codercms thanks

@yunnian yunnian merged commit a1c7090 into swoole:v4.4.x Apr 7, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants