LoginSignup
1
1

【Phalcon】期待したクエリが生成されないことがある【v4,v5】

Last updated at Posted at 2024-05-18

概要

担当プロジェクトでPhalconのアップデートを行なっており、その際に発生した不具合の備忘録です。
issueを見つけるのに時間がかかったので、同じ現象に遭遇した方の助けになれば幸いです。
Phalconにはphqlという独自のsqlのようなものがあり、ベタ書きしたのをPhalconが用意しているparser内で変換しクエリ実行している箇所で、そんなカラムないよ!と怒られるエラーが発生していました。
parserにカラム名先頭で「not」が来ると削除されてしまうバグがあり、そのためエラーが発生していたようです。

例えば元のSQLが以下だったとします。(Modelにnoteがある前提)

Select m.note From Model m.

これをcreateQuery()やexecuteQuery()でparseしてしまうと...

Select m.e Form Model m.

当然「Column not found」でエラーになります。
2019年からあるバグのようで、未だに修正されていないようです😭
対象バージョンは4.0.0〜

Githubのissueは↓
issue:https://github.com/phalcon/cphalcon/issues/14641

解消するには?

カラム名を[]で囲ってあげればOK。

Select m.[note] Form Model m.

これで解消できます。
もしくはparser周りを修正してあげれば解決できるかもしれません

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1