問題タブ [hugsql]
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.
sql - 間違った数の結果を返す場合、hugsql クエリ関数にエラーをスローさせるように強制します。
Clojure と hugsql を使用します。クエリをそのように定義します。
を使用すると、名前空間def-db-fns
に関数が作成されます。query-should-return-one-but-returns-multiple
ただし、 に複数の行がある場合some_table
、この関数は単純に任意の行を返し、エラーを通知しません。
:one
データベースが複数の結果を返した場合、例外をスローするように定義されたクエリ関数を強制するにはどうすればよいですか?
database - Clojure/Hugsql で nil パラメータを処理する
Postgresql dbにアクセスするためにClojureでHugsqlを使用しています。私のデータベース テーブルのいくつかにはオプションの列があります。簡単な例として、address1、address2、city など、さまざまな住所列を持つ「users」テーブルを考えてみます。
「更新」の Hugsql クエリ仕様を作成するとき、渡すマップにどの値が存在するかわかりません。したがって、クエリを作成すると、次のようになります。
ただし、ユーザーマップを渡します
その後、例外がスローされます。私はそれが次のようなものを作成することを期待しています
私は Hugsql のソースを見てきました - それは私が回避できない例外をスローする (validate-parameters) 関数を呼び出します。明らかな何かが欠けていると確信しています。これは珍しい要件のようには見えません。オプションの列のすべての可能な組み合わせに対して個別の SQL クエリ仕様を記述したくないことは確かです。
不足しているパラメーターを処理する方法はありますか? オプションの列を持つことでデータベースを悪用していますか?
postgresql - HugSQL でカスタム関数を使用する
macOS 10.12.6 で PostgreSQL バージョン 10 を使用しており、HugSQL にアクセスできるクエリでカスタム plpgsql 関数を使用したいと考えています。次の ansatz は正しく機能します。
HugSQL では複数行の SQL ステートメントを記述でき、 の関数定義を含めることができるため、これは機能しますhelper()
。
ただし、クエリを実行するたびに関数を再定義しているため、実際にそうするのが効率的かどうかは疑問ですdo-something!
。関数定義を入力ファイルの先頭に配置しようとしましたが、コンパイラ例外が発生するだけでした。
質問:これに対する最善の方法は何ですか?
clojure - すべてのキーと値のペアに一致
元のクエリ:
任意のキーと値のペアを渡して、一致する結果を取得したいと考えています。例えば:
(select*-list db-spec {:name "Fruit" :type "Foo"})
結果は次のようになります。
これを達成するためのいくつかの醜い方法を考えることができますが、これを行うための良い方法を見落としている可能性があります。