[Question] Are composite types defined in PostgreSQL supported by SQLProvider?
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- fsharp, postgresql
- Domínio
- databases
Direção de pesquisa
Comece com PostgreSQLTests.fsx e rastreie como o SQLProvider descobre e representa os parâmetros de stored procedures. Compare a assinatura do tipo composto relatada com os exemplos existentes de tipos PostgreSQL e o workaround do Npgsql. Considera-se concluído quando for estabelecido se os tipos compostos são compatíveis e o mapping ou a limitação necessária tiver sido documentado ou testado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Description
Database has composite types defined which are input/output types to stored procedures. I am attempting to call the said procedure with input parameters. SqlProvider does not see the input parameter and assumes it is a void function.
Repro steps
The composite type defined in the database is
CREATE TYPE product_t AS
(name text,
product_type text)
The signature of procedure in the database is
create or replace function func_iproduct( p product_t ) returns void as
On .NET side (F#), I have created a type
type PgProductType(Name:string,ProductType:string)=
member this.Name = Name
member this.ProductType = ProductType
new() = PgProductType("","")
I believe there should be a way in which I could tell SqlProvider how to map PgProductType to product_t; not sure if this is required or such mapping is automatic. If required, an example how do I go about doing it would be helpful. Without this mapping, if I attempt to execute the procedure, the error message it reports back indicates that SqlProvider does NOT see the input parameter;
let prd = new PgProductType("F#Product","")
ctx.Functions.FuncIproduct.Invoke(prd)
stdin(29,1): error FS0501: The member or object constructor 'Invoke' takes 0 argument(s) but is here given 1. The required signature is 'SqlDataProvider<...>.dataContext.Functions.FuncIproduct.Result.Invoke() : Unit'.
Question
- Can I use postgresql composite types? If so, an illustrative example would help.The test suite PostgreSQLTests.fsx does not contain an example to map custom types (though there are examples to map pre-defined postgresql types).
- Any alternative solution short of re-implementing queries (using query expressions) foregoing the existing procedures?
Known workarounds
Directly use Npgsql
Related information
- PostgreSQL 9.6
- Win 7
- Linguagem predominante
- F#
- Estrelas
- 627
- Forks
- 148
- Merge médio
- 2h 2min
- PRs com merge (30d)
- 1
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de fsprojects/SQLProvider
-
enhancement
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
fsprojects/SQLProvider#872 · 2 comentários ·
-
Repo Assist?Abertaenhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 10/100
fsprojects/SQLProvider#870 · 1 comentário ·
-
postgresql
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 58/100
fsprojects/SQLProvider#869 · 2 comentários ·
-
documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 42/100
fsprojects/SQLProvider#868 · 2 comentários ·
-
sql server
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
fsprojects/SQLProvider#851 · 1 comentário ·
Todas as issues de fsprojects/SQLProvider
Issues semelhantes
-
Edit: CBS Reality (Romania)Abertachannels:edit check:passed
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 65/100
Mantenedores costumam responder em até 6 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
StackExchange/StackExchange.Redis#3274 ·
Mantenedores costumam responder em até 1 dia
-
author-page correction
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 60/100
acl-org/acl-anthology#10313 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
AOSSIE-Org/Gitcord-GithubDiscordBot#147 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
anime duplicate exception request-theme
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 82/100
LizardByte/ThemerrDB#8926 · 1 comentário ·
Mantenedores costumam responder em até 1 dia