バージョン選択

フォーラム

メニュー

オンライン状況

44 人のユーザが現在オンラインです。 (36 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 44
もっと...

サイト内検索

プラグイン > 開発について > 2.13.0 における SC_Query_Ex#delete() の変更について

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
snitta
投稿日時: 2013/10/22 11:21
対応状況: −−−
一人前
登録日: 2013/10/3
居住地: 島根県
投稿: 100
2.13.0 における SC_Query_Ex#delete() の変更について
いつも大変お世話になっております。
現在 2.12.x 用のプラグインを 2.13.0 に対応させる作業を行っている者です。
その途中で SC_Query#delete() の実装が変わっている事で問題に遭遇しましたのでご相談させて下さい。

問題の内容ですが、データベースに PostgreSQL を使用してる場合で SC_Query#delete() に大文字を含むテーブル名を渡すとエラーコード 42P01 undefined_table が発生します。
これは SC_Query#delete() 内で MDB2#quoteIdentifier() によるクォートが行われるようになったために、識別子の大文字小文字が区別されるようになってしまった事が原因だと思われます。
PostgreSQL の仕様ではクォートしない識別子は小文字として解釈されます。
http://www.postgresql.jp/document/9.3/html/sql-syntax-lexical.html

プラグイン仕様書の命名規則ではテーブル名に大文字を含む可能性のあるプラグインコードを含める事になっておりそれに従って作られたプラグインが稼働中である点、
SC_Query の他のメソッドではクォートされていない点、
以上を踏まえるとクォートしないままの実装に統一した方がよいと考えますがいかがでしょうか?
※正しいSQL文にするなら全てクォートするのが筋だと思いますが手間を考えると大変そうですので(汗

ご意見を頂けましたら幸いです。
よろしくお願いいたします。
seasoft
投稿日時: 2013/10/22 11:41
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 2.13.0 における SC_Query_Ex#delete() の変更について
> プラグイン仕様書の命名規則ではテーブル名に大文字を含む可能性のあるプラグインコードを含める事になっておりそれに従って作られたプラグインが稼働中である点、

開発 ML (eccube-dev:42) にて、「規約の見直しをかけたいと考えております」とコメントがありました。

最新の規約を把握しておりませんが、この辺りの整備が遅れているのかもしれませんね。


> SC_Query の他のメソッドではクォートされていない点、

(他のメソッドでクォートするものがあるため?) バックアップが動作しない問題に対して、応急的に対応したものだったと記憶しています。

http://svn.ec-cube.net/open_trac/ticket/2213 にも記載の通り、差し戻しも想定していたのですが、そのままリリースに至っております。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

snitta
投稿日時: 2013/10/22 14:37
対応状況: −−−
一人前
登録日: 2013/10/3
居住地: 島根県
投稿: 100
Re: 2.13.0 における SC_Query_Ex#delete() の変更について
seasoft 様
早速のご回答ありがとうございます。

> 最新の規約を把握しておりませんが、この辺りの整備が遅れているのかもしれませんね。

なるほどそのような事情があったのですね。
開発MLは所在が分からず読んでいませんが、公開はコミッターの方限定でしょうか?


> http://svn.ec-cube.net/open_trac/ticket/2213 にも記載の通り、差し戻しも想定していたのですが、そのままリリースに至っております。

リリース前に確認して意見を出すべきでしたね…反省です。
既存のプラグインは SC_Query#delete() をオーバーライドして対応させ、
新しく作るプラグインに関しては影響を受けないように小文字で統一する事にいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,236名です
総投稿数は110,052件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1651
8
red
1570
9
mcontact
1299
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.