問題タブ [doobie]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - Doobie での Postgresql 配列エンコーディング – text[] vs Various[]
次の postgresql スキーマがあるとします。
以下はプレーン SQL で機能し、行 1 と 2 を返します (@>
は pg の「含む」演算子です)。
しかし、Doobieでも同じです(postgresql 拡張を使用):
次の場合に失敗します。
searchTerms
補間された値をキャストtext[]
すると、問題が解決するようです。
同様に、データベース スキーマでfields
列の型を からtext[]
に変更しvarchar[]
て、キャストを回避することもできます。これにより、正しい行がコンパイルされて返されます。
私の主な問題は、なぜ Doobie がそのように振る舞うかがわからないことです。カスタム型で同じ問題に再び遭遇する可能性があるため、なぜ が に$searchTerms
デコードされて にデコードされvarying[]
ないのかを理解する必要があります。また、この動作を変更して、列の型を維持し、キャストを回避text[]
できるようにするために何ができるかを理解する必要があります。text[]
おそらくこれを制御する暗黙のインスタンスがどこかにあると思いますが、それが何であるかはわかりませんでした。