Azure synapse sql support (MSSQL provider)
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
調査の方向性
src/SQLProvider.Runtime/Providers.MsSqlServer.fs の 622 行目付近にある GetColumns から始め、MSSQL コネクタを使用して Azure Synapse SQL プールに対する型推論を再現します。失敗するメタデータクエリを、issue にリンクされている Synapse の互換性リファレンスと比較します。Synapse 接続が COLUMNPROPERTY エラーなしで列名とプロパティ型を読み込めれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Describe the bug
when trying to connect SQLProvider to a Synapse azure sql pool instance via MSSQL connector (synapse provides a compatible TSQL api / dialect) we currently get such errors .
e.g. MSSQL EF core provider supports both MSSQL server and synapse as well
here code in EF to support synapse behind the same interface
Microsoft.Data.SqlClient.SqlException (0x80131904): 'COLUMNPROPERTY' is not a recognized built-in function name.
at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, SqlCommand command, Boolean callerHasConnectionLock, Boolean asyncClose)
at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at Microsoft.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
at Microsoft.Data.SqlClient.SqlDataReader.get_MetaData()
at Microsoft.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean isAsync, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String method)
at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader()
at FSharp.Data.Sql.Providers.MSSqlServerProvider.FSharp.Data.Sql.Common.ISqlProvider.GetColumns(IDbConnection con, Table table) in zC:\git\SQLProvider\src\SQLProvider.Runtime\Providers.MsSqlServer.fs:line 622
at [FSharp.Data.Sql.QueryExpression.QueryExpressionTransformer.convertExpression@913.Invoke](mailto:FSharp.Data.Sql.QueryExpression.QueryExpressionTransformer.convertExpression@913.Invoke)(Table table)
Tried on azure synapse sql should be compatible with TSQL mssql but rows do not display property types correctly
To Reproduce
Steps to reproduce the behavior:
- Make a synapse sql pool instance on Azure cloud
- Connect the type provider using MSSQL SQLProvider with synapse connection string
- See error when running or trying to infer types
Try with azure synapse sql pool on azure
Expected behavior
Have an option for Azure Synapse or a way to use MSSQL provider to load az synapse db connections and types correctly
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):
- Database: [e.g. SQLite]
- Nuget Package and version: [e.g. SQLProvider.SQLite 1.5.0]
- OS: [e.g. iOS]
- Dotnet or .NET Framework and version [e.g. dotnet 8]
Additional context
Data warehous on azure, Synapse SQL is the current Azure Cloud solution for data warehouse / big data parallel distributed sql, so it would be great to have this when working with Azure
- 主要言語
- F#
- スター
- 627
- フォーク
- 147
- 平均マージ
- 2時間 2分
- マージ済み PR(30日)
- 1
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
fsprojects/SQLProvider のほかの issue
-
enhancement
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
fsprojects/SQLProvider#872 · コメント 2 件 ·
-
Repo Assist? オープンenhancement
難易度 5/5 1週間以上 初心者へのやさしさ 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 件 ·
-
enhancement
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
fsprojects/SQLProvider#845 · コメント 6 件 · リアクション 1 件 ·
fsprojects/SQLProvider の issue をすべて見る
似ている issue
-
[6.x]: "Cannot use object of type stdClass as array" loading Users index (regression of #19182) オープン
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
community-scripts/ProxmoxVE#17396 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
BasedHardware/omi#15274 · コメント 3 件 ·
-
bug: AI Gateway client filter lists "Unknown" twice when NULL and literal Unknown clients coexist オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100