コンテンツにスキップ

11.3 SDK機能のサポート範囲

アプリケーションの要件に合うSDKを選択できるように、機能別のサポート状況とAPIエントリーポイントを 比較します。インストール、接続、関数、実行コードは各SDKページを参照してください。

初めてSDKを選ぶ場合は連携方式の選択を先に読み、 このページで必要な機能と正確なAPI経路を照合します。

Goの表にある「ネイティブ」は、確認基準がv1.8.4の旧machgo APIを指します。 Go SDKはv2のdatabase/sql APIを説明しており、v2では旧machgoは提供されません。 v1の確認済み機能や最小バージョンをv2へそのまま適用せず、以下のARRAY・選択列Appendなどの v2固有の確認基準と区別してください。

NULL許容性のメタデータ

MachbaseはSELECT結果列のNULL許容性をNO_NULLSNULLABLEUNKNOWNで区別します。 アプリケーションはNULLABLEUNKNOWNの両方をNULL処理の対象とします。

SDK取得方法
JDBCResultSetMetaData.isNullable()
Pythoncursor.description[i][6]
Goネイティブapi.Column.Nullability
Go database/sqlRows.ColumnTypeNullable()
Node.jsColumnMeta.nullable
.NETGetSchemaTable()AllowDBNull
SQLCLI・ODBCディスクリプターのnullable属性

式、集計、VIEW、JOINの結果はUNKNOWNになる場合があります。直接の列のスキーマ制約と 検索結果メタデータを同一と考えないでください。

PRIMARY KEYメタデータ

SDK結果列テーブルカタログ
JDBCODatabaseMetaData.getPrimaryKeys()
PythonOカタログSQL
GoネイティブOカタログSQL
Go database/sql標準APIなしカタログSQL
Node.jsOカタログSQL
.NETOカタログSQL
ODBC別の結果APIなしSQLPrimaryKeys()

式・集計・外部JOINのNULL補完側は、元の列のPK属性をそのまま伝達しない場合があります。

INSERT結果のROWID

Machbase 8.7.0 Standard Editionでは、成功した単一のINSERT ... VALUESが対応SDKにROWIDを 提供できます。

SDK・ツール確認方法値がない場合
machsqlSHOW LAST ROWIDNULL
Machbase SQLCLISQLGetGeneratedRowID()SQL_NO_DATA
標準ODBC専用の標準APIなし-
JDBCStatement.getGeneratedKeys()空のResultSet
Pythoncursor.lastrowidNone
.NETMachCommand.RowIdnull
Go database/sqlResult.LastInsertId()エラー
Goネイティブ非サポート-
Node.js実行結果のrowIdundefined

バッチ、executemany()、Append、loader、INSERT ... SELECT、UPSERTは単一のROWIDを返しません。 SQLの意味とテーブルごとの制約はROWIDを参照してください。

Append APIとテーブルタイプ

API経路LOGTAGLOOKUPVOLATILETRANSACTION基準
SQLCLI SQLAppend*拡張OOOOOTRANSACTIONはStandard
JDBC MachStatement.executeAppend*OOOOONFX cce422dのソース・テスト
Python 2.4 append*OOOOONFX cce422dのソース・テスト
.NET MachAppendWriterOOOOONFX cce422dのプロバイダー
Go v1.8.4ネイティブAppenderOOXXOTRANSACTIONはStandard
Go database/sql標準APIXXXXXsql.Conn.Raw()拡張はネイティブ仕様
NodeソースのappendBatch()OONFX cce422dのソースビルド
NodeソースのappendOpen()OO汎用native/fallback、テーブル別の検証が必要

標準クエリ接続とAppendハンドルのライフサイクルを区別し、close・flushの結果を確認します。 Oは該当ソース・テストで確認した範囲、は汎用経路だけがあり、テーブル別の回帰検証がさらに 必要な範囲です。Append拡張は標準ODBCやdatabase/sqlの機能ではありません。

ARRAYと選択列Append

Machbase DBMS 8.7.0のARRAYのサポート範囲は次のとおりです。

SDK密なARRAYの検索・入力スパースARRAY選択列Append
SQLCLI・C++OOO
Machbase ODBC拡張OOO
JDBCOOO
PythonOOO
Node.jsOOO
.NET full/legacyプロバイダーOOO
Gov2 mainソースv2 mainソースv2 mainソース

Machbase DBMS 8.7.0サーバーとARRAY機能を含むSDKビルドを合わせて使用します。ARRAYのSQL要素位置と Machbase専用SDKの位置は0始まりのインデックスです。既存の全行スカラーAppend APIは維持されます。 Node.jsのprepared代替経路もSparseArrayをサポートします。Goは neo-client PR #17以降のv2 mainソースを 使用する必要があり、公開v2リリースが指定されるまでは公開モジュールのバージョンだけでサポートを 判断しません。入力方式とAPIの詳細は Sparse ARRAYと選択列Append APIを参照してください。

AUTH KEY

SDK・ツールサポート
machsql、Machbase SQLCLI、ODBC、JDBCO
Goネイティブ、Go database/sqlO(neo-client v1.5.0+)
Python、Node.js、.NETX

鍵の生成・登録・交換はAUTH KEY認証、 接続オプションは対応SDKページを参照してください。

トランザクション、prepare、bind

SDKトランザクションAPIサーバー側prepare名前付きbind API
JDBCOO△(Machbase拡張)
PythonXOO
GoネイティブOO
Go database/sqlOOO
.NETXX
Node.jsXOO
SQLCLIOO
ODBCO位置指定bind

プリペアドステートメントとパラメーターバインディングはトランザクションのサポートとは別です。 プレースホルダーの構文は Named Bind Parameterを参照してください。

Machbase 8.7.0 Standard EditionのTAGデータUPDATEは、各SDKの既存の位置指定・名前付きAPIで NAMEとBASETIMEの条件値をバインドできます。NFX #4127の回帰テストはC/C++ SQLCLI、 Go database/sql、JDBC、Node.js、Python、.NETの経路を検証します。ODBCは個別のSDK回帰 マトリクスには含まれず、?または名前付きSQLのプレースホルダーを標準SQLBindParameter()の 位置番号でバインドします。TAG UPDATEの条件仕様は TAGデータUPDATEのバインドを 参照してください。

トランザクション列のは、専用オブジェクトの代わりに同じ接続でトランザクションSQLを直接実行する 経路です。名前付きbind列のは、標準の名前付きバインディングAPIではなく、ドライバー拡張、または クライアントが値をSQLリテラルに変換する経路を表します。

最小確認バージョンと出所

SDK本ドキュメントの確認基準
SQLCLI・JDBC・PythonNFX cce422d2972、Pythonパッケージ2.4
Node.jsNFX cce422d2972のソースビルド(package.json 1.0.1)
.NETUni 8.0.55、limited 3.1.3、full 3.2.2
Go公開済みneo-client v1.8.4、AUTH KEYはv1.5.0+、データベース選択はv1.8.3+

NFX cce422dのNode機能の一部は、公開npm 1.0.1の配布後に追加されました。レジストリパッケージの バージョン文字列だけで同じ機能を想定せず、配布成果物のコミット出所を確認するか、NFXソースビルドを 使用します。

ARRAYと選択列Appendの確認基準は、NFX 655d1333870313c4951698b89c9a3c9ada11d630とマージコミット f756986c4836982723e2aa7727ec05b7e05e9707です。サーバーはMachbase DBMS 8.7.0、クライアントは 該当変更以降の検証済みSDK成果物を基準に判断します。

SDKリファレンス

SDK詳細ドキュメント
Machbase SQLCLI・ODBCSQLCLIとODBC
JDBCJDBC
PythonPython
Node.js / TypeScriptNode.js / TypeScript
.NET Connector.NET Connector
GoGo
最終更新日