Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

string::lower() comparison with an array fails

オープン
#376 コメント 7 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
postgresql, ruby, sql
領域
databases

調査の方向性

Start by reproducing the provided where query against PostgreSQL and trace how string::lower(field).is([...]) generates its predicate. Done means the array comparison produces an IN query with the expected values and works without the text = record error.

索引モデルが issue の本文から書いたものです。

説明

bug

Describe the bug

When using string:lower() in a where statement, if the comparison is with an array, the comparison fails.

To Reproduce

Assuming a table "table" with a string field "field", in any repository do:

root.where { string::lower(field).is([“value1”, “value2”]) }

Fails with

Caused by PG::UndefinedFunction: ERROR: operator does not exist: text = record
LINE 1: …" FROM “table” WHERE (LOWER(“table”.“field”) = ('value1…
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.

Expected behavior

The comparison is expected to generate a query with (LOWER("table"."field") in ('value1', 'value2')) and the query should work

Your environment

  • Affects my production application: NO
  • Ruby version: 2.6.6
  • OS: Linux
主要言語
Ruby
スター
220
フォーク
97
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

rom-rb/rom-sql のほかの issue

rom-rb/rom-sql の issue をすべて見る

似ている issue

Ruby の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。