問題タブ [postgresql-simple]
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 - count(*) 型の Database.PostgreSQL.Simple との互換性エラー?
エラーは
クエリでによって返される値は、ではなくcount(*)
に変換する必要があるようです。これらの特定の変数を整数型に変更すると、クエリが機能します。Integer
Int
しかし、このエラーは、まったく同じコードを持つ別のマシンでは発生していませんでした。最初のマシンは 32 ビットで、この別のマシンは 64 ビットでした。それが私が識別できた唯一の違いです。
何が起こっているのかについて洞察を持っている人はいますか?
postgresql - postgresql-単純なクエリ エラー
編集:何がうまくいかないのかがよくわかりました。そのクエリをプレーンな古い形式で実行するとpsql
、次の結果が得られます。
それで、私は3本の弦を取り戻していますか?しかし、私は戻ってきていると言いますIO [Only String]
。物事を台無しにしているのは、ここでの私の型シグネチャであると確信しています...
postgresql-simple
でライブラリを使用して簡単なクエリを作成しようとしていますHaskell
。私のコードは、表示されているエラーとともに以下に貼り付けられます。誰でもアイデアはありますか?
私のデータベースは呼び出されverbos
、その中に というテーブルがありますgerund
。query_
次を含むa を実行できconn "SELECT 2 + 2"
ます。これは正常に動作します。また、デフォルト情報で指定されたデフォルト データでデータベースに接続することもできます (password = 'postgres' : psql -h localhost -p 5432 -U postgres
(ドキュメント[ 1 ] から)
次のエラーが表示されます。
ConversionFailed {errSQLType = "3 つの値: [(Basic {typoid = Oid 1043, typcategory = 'S', typdelim = ',', typname = \"varchar\"},Just \"放棄\"),(Basic {typoid = Oid 1043, typcategory = 'S', typdelim = ',', typname = \"varchar\"},Just \"abandonando\"),(Basic {typoid = Oid 1043, typcategory = 'S', typdelim = ' ,', typname = \"varchar\"},Just \"abandoning\")]", errSQLTableOid = Nothing, errSQLField = "", errHaskellType = "対象の型に 1 スロット", errMessage = "列数の不一致ターゲットタイプの変換と数値"}
postgresql - Haskell PostgreSQL シンプルな FromField
カスタム enum データ型の FromField インスタンスの定義に問題があります。
私のデータベースで表すRole
には、int 0 と 1 を使用します (ロールは後で追加できます) smallint
。
Review
私のdbテーブルの行を表す他のデータ型で使用されています:
これは、ReviewAssignment の FromRow インスタンスです。
今、私は実装方法を理解していない次のものを見逃しています:
postgresql - PostgreSQL Simple はタプルで最大 10 個の変数しかサポートしていませんが、もっと必要です
列がたくさんあるpostgresqlテーブルがあります.20〜30列程度です。Posgresql Simple は、タプルで最大 10 個の変数のみをサポートします
私には十分ではありません。どうすれば修正できますか?私が持っている元の「データ」を使用することはできません。挿入に使用すると、Postgresql によって生成された「id」およびその他のフィールドがクライアントから渡され、例外が発生します。
新しい「データ」を作成してから実装FromJson
し、場合によっては他のインスタンスを実装するのはやり過ぎかもしれません。では、他に解決策はありますか?
postgresql - 関数での PostgreSQL-simple `execute` が失敗し、「execute の結果は列 1 列の結果になりました」
Haskell から 3 行を更新する Postgres 関数を実行したいのですが、 で宣言されていRETURNS VOID
ます。次のように関数を実行します。
しかし、これは次の結果になります:
クエリは結果を返しません:
Haskell からこの Postgresql 関数を実行するにはどうすればよいですか?
postgresql - haskell postgresql-simple 非互換タイプ _int8 および Int64 (および整数)
以下の誤った関数は、サーバー側で Postgis 地理空間交差を処理し、クライアント側で返された Int64 の配列を処理する subdivide と呼ばれるプログラムの一部です。
Stack でビルドおよび実行され、Nightly 2016-08-02 に解決され、アーキテクチャ x86_64 が明示的に指定されます。
「intersectionsSql」として定義された Postgres クエリを実行すると、次のランタイム エラーが発生します (RUNTIME ERROR HERE のコメントを参照してください)。
私は Integer、Int64、および Int を試しましたが、すべて同じ結果になりました。これらの Haskell 型はすべて _int8 と互換性があるはずなので、直観に反します。
SQL クエリは、postgres bigint[] の単一行を返す必要があります。これは、PGAdmin で確認しました。
何か案は?
また、私がどのようにコードを書いたかについてのコメントもあります - 最後に GHC を使ってから 10 年以上経ち、時代が変わりました。
ご検討いただきありがとうございます。
マイク・トーマス
haskell - サーバントを使用したデータベース支援の REST API?
シンプルな概念実証のサーバント API を設定する際に問題が発生しています。これは私の User データ型と API タイプです。
このハンドラー メソッドは、次のように postgresql-simple を使用します。
データベースへの接続やルーティング メソッドなどのボイラープレート コードは省略されています。問題は、私が POST リクエストを行う場合、やりたいことは新しいユーザーを作成することなので、JSON を提供することです。
しかし、私のプログラムは実行時に失敗します
API は id フィールドを持つ User を指定したため、これは理にかなっています。しかし、リクエストで偽のIDを渡す必要はありません(postgresによって順次割り当てられるため)。また、id フィールドを User データ型から移動することもできません。これは、別のエンドポイントに GET 要求を行うときにモデルとデータベースの不一致が原因で postgres-simple が失敗するためです (これにより、ID による取得が行われます。上記には含まれていません)。 )。ここで何をすればいいですか?カスタム FromJson インスタンスを作成しますか? Data.Aeson.TH オプション フラグ omitNothingFields を True に設定し、id フィールドを Maybe Int に設定しようとしましたが、それもうまくいきませんでした。アドバイスをいただければ幸いです。
json - postgres-simple - 「クエリ」の使用に起因する (ToRow Int) のインスタンスがありません
私は haskell に不慣れで、正直苦労しています。しかし、それは私の考えを拡大するので、ここに行きます。Postgres DB にクエリを実行し、結果を JSON として返す必要がある、非常に単純な Web サーバーを実行しようとしています。
クエリは非常に単純です: "Select id,data from MYTABLE where id = 1"
しかし、haskell の型システムが今私を殺しており、私のアクションの最終的な型が一致しません。SpockとPostgreSQL-Simpleをコンボとして使用しています。
ほとんどのチュートリアルは、私がやりたいことに対して単純なものか、難しいものです。私はその中間にいて、多くのHaskellの理解を欠いています.以前の問題の多くは、単純なコピーと貼り付けですでに解決しており、単純なバージョンが機能しています.
しかし、ルート変数を渡そうとするとすぐに失敗します。これが私の作業バージョンです。私のデータベーステーブルはここでは「封筒」と呼ばれています.重要な呼び出しはそれが言う場所get "json"
です:
次に、ラムダ関数を使用してエンベロープ ID を渡そうとします。そのためには、PostgreSQL-Simplequery_
をquery
次のように変更する必要もあります。
私が得るエラーは言う:
ラムダ関数がなくても、クエリから最初のアイテムだけを返すという問題もあります。
完全なソースはbitbucketにあります
誰かが私をここで助けてくれることを願っています。すでにお読みいただきありがとうございます。