SQLite3Result::fetchArray Doesn't Handle Join Statement Properly
オープン
まだ誰も着手していません。
Extension: sqlite3
Feature
- 主要言語
- C
- スター
- 40.4k
- フォーク
- 8.1k
- 平均マージ
- 2日 13時間
- マージ済み PR(30日)
- 96
説明
When i tried using ( join ) statement for fetching data , sqlite3 tend to overwrite the column name if it appears in the other table
- eg:
table-a
| ID | Name | Foreign_id |
|---|---|---|
| 1 | bar | 2 |
table-b
| ID | Name |
|---|---|
| 2 | foo |
When i try to join them
SELECT * FROM table-a a JOIN table-b b ON(a.foreign_id=b.id)
i get the result as follows
[
array(
'ID' => 2,
'name' => 'foo',
'foreign_id' => 2
)
]
i suggest prefixing the columns names with the table aliases name to clarify and avoid overwriting
So the result would be like this
[
array(
'a.ID' => 1,
'a.name' => 'bar',
'a.Foreign_id' => 2,
'b.ID' => 2,
'b.name' => 'foo'
)
]
thanks in advance
From manual page: https://php.net/sqlite3result.fetcharray
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
リンクされている SQLite3Result::fetchArray のマニュアルページから始め、2 つのサンプルテーブルを使って報告された SELECT * JOIN クエリを再現します。重複する列名をどのように扱うことが意図されているかを判断し、動作を変更またはテストする前に、受け入れられる結果の形を確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- php, sqlite
- 領域
- database
- issue の種類
- バグ
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 25/100