Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Error with Oracle

オープン
#624 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
28/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
docker, fsharp, sql
領域
databases

調査の方向性

まず、Oracle Docker image とリンクされた gist を使って問題を再現します。FSharp.Data.Sql.SqlDataProvider、SqlTypeProvider、および報告された GetProperties/get_Col の失敗を調査し、重複したメンバーを引き起こす Oracle スキーマを特定します。同じ単純なクエリが provided-type exception なしでコンパイルでき、リポジトリに該当するテスト場所がある場合は回帰テストも追加されていれば完了です。

索引モデルが issue の本文から書いたものです。

説明

Oracle
Description

When doing simple queries on some oracle tables, the TP raises an exception

Repro steps
  1. Use Oracle Docker Image

  2. 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分
マージ済み PR(30日)
1

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

fsprojects/SQLProvider のほかの issue

fsprojects/SQLProvider の issue をすべて見る

似ている issue

Databases の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。