Error with Oracle
还没有人认领这个 Issue。
评估
调研方向
首先使用 Oracle Docker image 和链接的 gist 重现该问题。检查 FSharp.Data.Sql.SqlDataProvider、SqlTypeProvider 以及报告的 GetProperties/get_Col 失败,以确定触发重复成员的 Oracle schema。完成的标准是同一个简单查询能够在没有 provided-type exception 的情况下编译;如果 repository 中有适用的测试位置,还应包含一个 regression test。
由索引模型根据 Issue 内容生成。
描述
Description
When doing simple queries on some oracle tables, the TP raises an exception
Repro steps
-
Use Oracle Docker Image
-
Use the following gist as a project: https://gist.github.com/imetallica/0dff42841a7273c61fd7149ea0e42e8d
Actual behavior
This is the exception it raises
Unexpected exception from provided type 'FSharp.Data.Sql.SqlDataProvider,DatabaseVendor="4",ConnectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCLPDB1.localdomain)));User Id=sys;Password=Oradoc_db1;DBA Privilege=SYSDBA;",UseOptionTypes="True"+dataContext+SYSSchema' member 'GetProperties': The type provider 'FSharp.Data.Sql.SqlTypeProvider' reported an error: GetMethodImpl. not support overloads, name = 'get_Col', methods - '[|Method get_Col; Method get_Col|]', callstack = '" at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
at System.Environment.get_StackTrace()
at ProviderImplementation.ProvidedTypes.ProvidedTypeDefinition.GetMethodImpl(String name, BindingFlags bindingFlags, Binder _binderBinder, CallingConventions _callConvention, Type[] _types, ParameterModifier[] _modifiers)
at System.Type.GetMethod(String name, BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers)
at ProviderImplementation.ProvidedTypes.ProvidedTypesContext.convMethodRefToTgt(MethodInfo m)
at ProviderImplementation.ProvidedTypes.Utils.PropertyInfo.get_IsStatic(PropertyInfo )
at <StartupCode$FSharp-Data-SqlProvider>.$ProvidedTypes.staticOrPublic@1501.Invoke(MemberInfo _arg4)
at Microsoft.FSharp.Collections.ArrayModule.Choose[T,TResult](FSharpFunc`2 chooser, T[] array)
at ProviderImplementation.ProvidedTypes.ProvidedTypeDefinition.GetProperties(BindingFlags bindingFlags)
at FSharp.Compiler.ExtensionTyping.ValidateProvidedTypeAfterStaticInstantiation@914-4.Invoke(ProvidedType st)
at FSharp.Compiler.Tainted`1.Protect[a](FSharpFunc`2 f, range range)
at FSharp.Compiler.Tainted`1.PApplyArray[U](FSharpFunc`2 f, String methodName, range range)
at FSharp.Compiler.ExtensionTyping.TryTypeMemberArray[a,b](Tainted`1 st, String fullName, String memberName, range m, FSharpFunc`2 f)
at FSharp.Compiler.ExtensionTyping.ValidateProvidedTypeAfterStaticInstantiation@911.GenerateNext(IEnumerable`1& next)
at Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1.MoveNextImpl()
at Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1.System-Collections-IEnumerator-MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at Microsoft.FSharp.Collections.SeqModule.ToArray[T](IEnumerable`1 source)
at FSharp.Compiler.ExtensionTyping.ValidateProvidedTypeAfterStaticInstantiation(range m, Tainted`1 st, String[] expectedPath, String expectedName)
at FSharp.Compiler.Import.ImportTypeRefData(ImportMap env, range m, ILScopeRef scoref, String[] path, String typeName)
at FSharp.Compiler.Import.ImportILTypeRefUncached(ImportMap env, range m, ILTypeRef tref)
at FSharp.Compiler.Import.ImportILTypeRef(ImportMap env, range m, ILTypeRef tref)
at FSharp.Compiler.Import.ImportProvidedNamedType(ImportMap env, range m, Tainted`1 st)
at FSharp.Compiler.Import.ImportProvidedType(ImportMap env, range m, Tainted`1 st)
at FSharp.Compiler.Infos.GetCompiledReturnTyOfProvidedMethodInfo(ImportMap amap, range m, Tainted`1 mi)
at FSharp.Compiler.Infos.MethInfo.GetCompiledReturnTy(ImportMap amap, range m, FSharpList`1 minst)
at FSharp.Compiler.MethodCalls.CalledMeth`1..ctor(InfoReader infoReader, FSharpOption`1 nameEnv, Boolean isCheckingAttributeCall, FSharpFunc`2 freshenMethInfo, range m, AccessorDomain ad, MethInfo minfo, FSharpList`1 calledTyArgs, FSharpList`1 callerTyArgs, FSharpOption`1 pinfoOpt, FSharpList`1 callerObjArgTys, FSharpList`1 curriedCallerArgs, Boolean allowParamArgs, Boolean allowOutAndOptArgs, FSharpOption`1 tyargsOpt)
at FSharp.Compiler.TypeChecker.makeOneCalledMeth@9781(Boolean isCheckingAttributeCall, cenv cenv, TcEnv env, FSharpOption`1 tyargsOpt, range mMethExpr, range mItem, FSharpOption`1 objTyOpt, AccessorDomain ad, FSharpList`1 callerObjArgTys, FSharpList`1 callerArgs, MethInfo tupledArg0, FSharpOption`1 tupledArg1, Boolean tupledArg2)
at FSharp.Compiler.TypeChecker.preArgumentTypeCheckingCalledMethGroup@9790.GenerateNext(IEnumerable`1& next)
at Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1.MoveNextImpl()
at Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1.System-Collections-IEnumerator-MoveNext()
at Microsoft.FSharp.Collections.SeqModule.ToList[T](IEnumerable`1 source)
at FSharp.Compiler.TypeChecker.TcMethodApplication(Boolean isCheckingAttributeCall, cenv cenv, TcEnv env, SyntacticUnscopedTyparEnv tpenv, FSharpOption`1 tyargsOpt, FSharpList`1 objArgs, range mMethExpr, range mItem, String methodName, FSharpOption`1 objTyOpt, AccessorDomain ad, Mutates mut, Boolean isProp, FSharpList`1 calledMethsAndProps, AfterResolution afterResolution, ValUseFlag isSuperInit, FSharpList`1 curriedCallerArgs, TType exprTy, FSharpList`1 delayed)
at FSharp.Compiler.TypeChecker.TcMethodApplicationThen(cenv cenv, TcEnv env, TType overallTy, FSharpOption`1 objTyOpt, SyntacticUnscopedTyparEnv tpenv, FSharpOption`1 callerTyArgs, FSharpList`1 objArgs, range m, range mItem, String methodName, AccessorDomain ad, Mutates mut, Boolean isProp, FSharpList`1 meths, AfterResolution afterResolution, ValUseFlag isSuperInit, FSharpList`1 args, ExprAtomicFlag atomicFlag, FSharpList`1 delayed)
at FSharp.Compiler.TypeChecker.TcExpr(cenv cenv, TType ty, TcEnv env, SyntacticUnscopedTyparEnv tpenv, SynExpr expr)
at FSharp.Compiler.TypeChecker.TcExprOfUnknownType(cenv cenv, TcEnv env, SyntacticUnscopedTyparEnv tpenv, SynExpr expr)
at FSharp.Compiler.TypeChecker.TcStmt(cenv cenv, TcEnv env, SyntacticUnscopedTyparEnv tpenv, SynExpr synExpr)
at FSharp.Compiler.TypeChecker.TcStmtThatCantBeCtorBody(cenv cenv, TcEnv env, SyntacticUnscopedTyparEnv tpenv, SynExpr expr)
at FSharp.Compiler.TypeChecker.TcLinearExprs(FSharpFunc`2 bodyChecker, cenv cenv, TcEnv env, TType overallTy, SyntacticUnscopedTyparEnv tpenv, Boolean isCompExpr, SynExpr expr, FSharpFunc`2 cont)
at FSharp.Compiler.TypeChecker.TcExpr(cenv cenv, TType ty, TcEnv env, SyntacticUnscopedTyparEnv tpenv, SynExpr expr)
at FSharp.Compiler.TypeChecker.TcIteratedLambdas(cenv cenv, Boolean isFirst, TcEnv env, TType overallTy, FSharpSet`1 takenNames, SyntacticUnscopedTyparEnv tpenv, SynExpr e)
at FSharp.Compiler.TypeChecker.TcIteratedLambdas(cenv cenv, Boolean isFirst, TcEnv env, TType overallTy, FSharpSet`1 takenNames, SyntacticUnscopedTyparEnv tpenv, SynExpr e)
at FSharp.Compiler.TypeChecker.TcExprUndelayed(cenv cenv, TType overallTy, TcEnv env, SyntacticUnscopedTyparEnv tpenv, SynExpr synExpr)
at FSharp.Compiler.TypeChecker.TcExpr(cenv cenv, TType ty, TcEnv env, SyntacticUnscopedTyparEnv tpenv, SynExpr expr)
at FSharp.Compiler.TypeChecker.TcExprThatCantBeCtorBody(cenv cenv, TType overallTy, TcEnv env, SyntacticUnscopedTyparEnv tpenv, SynExpr expr)
at FSharp.Compiler.TypeChecker.f@514-18(cenv cenv, FSharpOption`1 safeThisValOpt, SafeInitData safeInitInfo, SynExpr rhsExpr, TType overallExprTy, SyntacticUnscopedTyparEnv tpenv, TcEnv envinner, Boolean isCtor, Unit unitVar0)
at FSharp.Compiler.TypeChecker.TcNormalizedBinding(DeclKind declKind, cenv cenv, TcEnv env, SyntacticUnscopedTyparEnv tpenv, TType overallTy, FSharpOption`1 safeThisValOpt, SafeInitData safeInitInfo, FSharpList`1 enclosingDeclaredTypars, ExplicitTyparInfo _arg9, NormalizedBinding bind)
at FSharp.Compiler.TypeChecker.TcNonRecursiveBinding(DeclKind declKind, cenv cenv, TcEnv env, SyntacticUnscopedTyparEnv tpenv, TType ty, SynBinding b)
at FSharp.Compiler.TypeChecker.TcLetBinding@11098.Invoke(SyntacticUnscopedTyparEnv tpenv, SynBinding b)
at Microsoft.FSharp.Primitives.Basics.List.mapFold[TState,T,TResult](FSharpFunc`2 f, TState acc, FSharpList`1 xs)
at FSharp.Compiler.TypeChecker.TcLetBinding(cenv cenv, Boolean isUse, TcEnv env, ContainerInfo containerInfo, DeclKind declKind, SyntacticUnscopedTyparEnv tpenv, FSharpList`1 synBinds, range synBindsRange, range scopem)
at FSharp.Compiler.TypeChecker.TcLetBindings(cenv cenv, TcEnv env, ContainerInfo containerInfo, DeclKind declKind, SyntacticUnscopedTyparEnv tpenv, FSharpList`1 binds, range bindsm, range scopem)
at FSharp.Compiler.TypeChecker.TcModuleOrNamespaceElementNonMutRec@17085-1.Invoke(Unit unitVar)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.catch@912-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.catch@912-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.catch@912-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.catch@912-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.bind@903-1.Invoke(CompilationThreadToken ctok)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.loop@875-24[a,b](Int64 timeShareInMilliseconds, CancellationToken ct, FSharpFunc`2 runner, Stopwatch sw, CompilationThreadToken ctok, Eventually`1 ev2)
at FSharp.Compiler.AbstractIL.Internal.Library.EventuallyModule.loop@875-25.Invoke(CompilationThreadToken ctok, Eventually`1 ev2)
at FSharp.Compiler.SourceCodeServices.Parser.CheckOneFile@1731-22.Invoke(CompilationThreadToken ctok)
at <StartupCode$FSharp-Compiler-Private>.$Reactor.EnqueueAndAwaitOpAsync@174-2.Invoke(CompilationThreadToken ctok)
at <StartupCode$FSharp-Compiler-Private>.$Reactor.loop@70-113.Invoke(FSharpOption`1 _arg2)
at Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvokeNoHijackCheck[a,b](AsyncActivation`1 ctxt, FSharpFunc`2 userCode, b result1)
at <StartupCode$FSharp-Compiler-Private>.$Reactor.loop@57-111.Invoke(AsyncActivation`1 ctxt)
at <StartupCode$FSharp-Core>.$Mailbox.processFirstArrival@344-8.Invoke(AsyncActivation`1 ctxt)
at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction)
at Microsoft.FSharp.Control.TrampolineHolder.ExecuteWithTrampoline(FSharpFunc`2 firstAction)
at <StartupCode$FSharp-Core>.$Async.-ctor@167-1.Invoke(Object o)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()"'
Known workarounds
Not that I'm aware
Related information
- Oracle 12.2.0.1-slim Docker Image
- Windows 10
- 1.1.65
- .NET Core 2.2
- 主要语言
- F#
- 星标
- 627
- 派生
- 147
- 平均合并
- 2 小时 2 分钟
- 30 天内合并 PR
- 1
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
fsprojects/SQLProvider 的其他 Issue
-
enhancement
难度 3/5 1-2 天 新手友好度 55/100
fsprojects/SQLProvider#872 · 2 条评论 ·
-
Repo Assist? 未关闭enhancement
难度 5/5 一周以上 新手友好度 10/100
fsprojects/SQLProvider#870 · 1 条评论 ·
-
postgresql
难度 4/5 3-5 天 新手友好度 58/100
fsprojects/SQLProvider#869 · 2 条评论 ·
-
documentation
难度 2/5 1-3 小时 新手友好度 42/100
fsprojects/SQLProvider#868 · 2 条评论 ·
-
sql server
难度 4/5 3-5 天 新手友好度 45/100
fsprojects/SQLProvider#851 · 1 条评论 ·
查看 fsprojects/SQLProvider 的全部 Issue
相似的 Issue
-
难度 1/5 1 小时以内 新手友好度 75/100
-
bug
难度 2/5 1-3 小时 新手友好度 88/100
AstrBotDevs/AstrBot#10205 ·
-
难度 2/5 1-3 小时 新手友好度 72/100
-
难度 2/5 1-3 小时 新手友好度 70/100
OHDSI/Data2Evidence#3394 ·
-
难度 2/5 1-3 小时 新手友好度 84/100