doquedb.client package
Submodules
doquedb.client.connection module
connection.py – クライアントコネクション
- class doquedb.client.connection.Connection(datasource: DataSource, port: Port)
Bases:
Object
クライアントコネクションクラス.
サーバとのコネクションを管理する. サーバ側にはこのクライアントコネクション1つごとにスレッドが存在している.
- begin_connection() Connection
新しいコネクションを得る.
- Returns:
新しいコネクション
- Return type:
- begin_worker() Port
ワーカを起動する.
- Returns:
接続ポート
- Return type:
- Raises:
UnexpectedError – データソースから持ってきたポートが開放されていなかった場合
Notes
ポートプールにポートがない場合、slaveID=ANYとしてDoqueDBから返ってくるポートを使用する.
- cancel_worker(worker_id: int) None
ワーカをキャンセルする.
- Parameters:
worker_id (int) – キャンセルするワーカのID
- close() None
クローズする.
Notes
このメソッドは例外を送出しない.
- disconnect_port(slave_id: List[IntegerData]) None
使用しない通信ポートを切断する.
- Parameters:
slave_id (List[int]) – 切断するポートのスレーブIDのリスト
- is_database_available() bool
任意のデータベースの利用可能性を得る.
- Returns:
データベースが利用可能な場合はTrue , 利用不可能な場合はFalse
- Return type:
bool
- is_serever_available() bool
サーバの利用可能性を得る.
- Returns:
サーバが利用可能な場合はTrue, 利用不可能な場合はFalse
- Return type:
bool
doquedb.client.constants module
constants.py – 定数を管理するモジュール.
- class doquedb.client.constants.ProtocolVersion(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
IntEnum
プロトコルバージョン管理用の列挙型クラス
- CURRENT_PROTOCOL_VERSION = 4
- PROTOCOL_VERSION1 = 0
- PROTOCOL_VERSION2 = 1
- PROTOCOL_VERSION3 = 2
- PROTOCOL_VERSION4 = 3
- PROTOCOL_VERSION5 = 4
doquedb.client.datasource module
datasource.py – クライアントのデータソース
- class doquedb.client.datasource.DataSource(hostname: str, portnum: int)
Bases:
Object
データソースクラス.
クライアント側のデータソースをあらわすクラス. 接続に必要な情報を保持する.
- Parameters:
hostname (str) – 接続先のホスト名
portnum (int) – ポート番号
- __connection_list
コネクションのリスト
- Type:
list
- __connection_element
最近返したコネクションの要素番号
- Type:
int
- __portmap
ポートのハッシュマップ(辞書)
- Type:
dict
- __expunge_port
クライアントが廃棄したポート
- Type:
list
- __hostname
接続先のホスト名
- Type:
str
- __portnumber
ポート番号
- Type:
int
- __protocol_ver
プロトコルバージョン
- Type:
int
- __sessionmap
セッションのハッシュマップ(辞書)
- Type:
dict
- __is_closed
クローズしたかどうか
- Type:
bool
- __masterID
マスターID(=プロトコルバージョン)
- Type:
int
- __authorization
認証方式
- Type:
int
- CHECK_CONNECTION_POOL_PERIOD = 60000
- CONNECTION_THRESHOLD = 20
- DATABASE_ALL = 4294967295
- MAXIMUM_CONNECTION_POOL_COUNT = 100
- TIME_UNIT = 500
- property authorization: int
認証方式のゲッター.
- close() None
データソースをクローズする.
- create_session(dbname: str, username: str | None = None, password: str | None = None) Session
新しくセッションを作成する.
- Parameters:
dbname (str) – データベース名
username (Optional[str]) – ユーザー名
password (Optional[str]) – パスワード
- Raises:
UnexpectedError – クライアントコネクションが取得できなかった場合
- get_client_connection() Connection | None
コネクション管理クラスを得る.
ラウンドロビン方式でコネクション管理クラスを入手する.
- Returns:
コネクション管理クラス
- Return type:
- is_database_available() bool
任意のデータベースの利用可能性を得る.
- Returns:
データベースが利用可能な場合はTrue , 利用不可能な場合はFalse
- Return type:
bool
- is_server_available() bool
サーバの利用可能性を得る.
- Returns:
サーバが利用可能な場合はTrue, 利用不可能な場合はFalse
- Return type:
bool
- property master_id: int
マスターIDのゲッター
- new_client_connection() None
セッション数がCONNECTION_THRESHOLDを越えた場合に、 新しいクライアントコネクションを作成する.
- new_port(slave_id: int) Port
新しいポートのインスタンスを得る
- Parameters:
slave_id (int) – スレーブID
- Returns:
新しいポートインスタンス
- Return type:
- open(protocol_ver: int) None
データソースをオープンする.
- Parameters:
protocol_ver (int) – プロトコルバージョン
- remove_session(id: int) None
セッションを削除する.
- session_exist() bool
セッションが存在しているかどうか
- Returns:
存在している場合True, それ以外はFalse
- Return type:
bool
- shutdown(username: str | None = None, password: str | None = None) None
サーバを停止する.
doquedb.client.object module
object.py – doquedb.clientパッケージ共通の基底クラスの実装モジュール
doquedb.client.port module
port.py – クライアントポート
- class doquedb.client.port.Port(hostname: str, portnum: int, protocol_ver: int, slave_id: int)
Bases:
Object
クライアントポートクラス.
- Parameters:
hostname (str) – ホスト名
portnum (int) – ポート番号
protocol_ver (int) – プロトコルバージョン(=マスターID)
slave_id (int) – スレーブID
- __connection (
obj: port.Connection): コネクション
- __worker_id
ワーカのID
- Type:
int
- __reuse
エラー時に再利用可能かどうか
- Type:
bool
- property authorization: int
認証方式のゲッター.
- close() None
ポートのクローズ.
port.Connectionのクローズ.
- flush() None
出力をflushする.
- property is_reuse: bool
- property master_id: int
マスターIDのゲッター.
- open() None
ポートのオープン.
port.Connectionのオープン.
- read_integerdata() IntegerData
IntegerDataを読込む.
- Returns:
読込んだIntegerData
- Return type:
- Raises:
OperationalError – 読込んだObjectがIntegerDataではなかった場合
- read_object(data: Serializable | None = None) Serializable | None
オブジェクトを読み込む.
- Parameters:
data (Serializable) – データを格納するSerializableクラス
- Returns:
読み込んだオブジェクト
- Return type:
- Raises:
DataBaseError – データベース側が例外を返してきた場合
- read_status() int
Statusを読込む.
- Returns:
読込んだStatusのタイプ
- Return type:
int
- Raises:
OperationalError – 読込んだObjectがStatusではなかった場合
- read_stringdata() StringData
StringDataを読込む.
- Returns:
読込んだStringData
- Return type:
- Raises:
OperationalError – 読込んだObjectがStringDataではなかった場合
- reset()
再利用するためにリセットする.
- property slave_id: int
スレーブIDのゲッター.
- property worker_id: int
ワーカIDのゲッター
- write_object(object_: Serializable | None = None) None
オブジェクトを書き出す.
- Parameters:
object (Serializable) – 書き出すオブジェクト
doquedb.client.prepare_statement module
prepare_statement.py – クライアントのプリペアステートメント
- class doquedb.client.prepare_statement.PrepareStatement(prepare_id: int)
Bases:
Object
プリペアステートメントクラス
- Parameters:
prepare_id – プリペアID
- static create(session: Session, statement: str) PrepareStatement
プリペアステートメントを作成する.
- Parameters:
session (Session) – セッション
statement (str) – SQL文
- Returns:
作成したプリペアステートメント
- Return type:
- execute(session: Session, parameter: DataArrayData | None = None) ResultSet
プリペアードステートメントの実行
- Parameters:
parameter (Optional[DataArrayData]) – パラメータ
- Returns:
リザルトセット
- Return type:
- property prepare_id: int
プリペアIDのゲッター
doquedb.client.resultset module
resultset.py – クライアントリザルトセット
- class doquedb.client.resultset.ResultSet(datasource: DataSource, port: Port)
Bases:
Object
リザルトセットクラス.
- Parameters:
( (port) – obj: DataSource): データソース
( – obj: Port): 通信ポート
- __datasource (
obj: DataSource): データソース
- __port (
obj: Port): 通信ポート
- __status
通信のステータス
- __metadata (
obj: ResultSetMetaData): リザルトセットのメタデータ
- __tupledata (
obj: DataArrayData): 一行のデータ
- __status
現在のステータス
- Type:
int
- __row (
obj: DataArrayData): リザルトセットの現在の行データ
- __rowcount
現在の行番号
- Type:
int
- __is_closed
クローズフラグ
- Type:
bool
- cancel() None
実行をキャンセルする.
- close() None
リザルトセットのクローズ.
Notes
ゴミが残らないよう, 実行ステータスを得るまで結果を取得.
- get_next_tuple(tuple_: DataArrayData | None = None) int
次のタプルデータを読む.
- Parameters:
tuple (Optional[[DataArrayData]) – 読み込んだタプルデータ
- Returns:
実行ステータス
- Return type:
int
- get_row_as_tuple() tuple | None
行データをリストに変換して取得する
- get_status(skip_all: bool | None = True) int
実行ステータスを得る.
- Parameters:
skipAll (bool) – True 複文の全ての結果を読み捨てる False 複文の1文の結果のみ読み捨てる
Notes
実行ステータスのみを返す。サーバからデータを受け取っても読み捨てる。
- property last_status: int
最後に取得した実行ステータスを得る
- property metadata: ResultSetMetaData | None
メタデータのゲッター
- next() bool
リザルトセットを1行読込み、カーソルを1行下に移動する.
- Returns:
- True 成功
False 失敗
- Return type:
bool
- Raises:
ClassNotFound – Class定義が見つからなかった場合
ConnectionRanOut – 通信でエラーが発生した場合
Notes
カーソルは初期状態では最初の行の前に位置する.呼び出しによって、最初の行が現在の行になる. 2 番目の呼び出しによって 2 行目が現在の行になり、以降同様に続く.
- property row: DataArrayData | None
行データのゲッター
- property rowcount: int
行データのゲッター
doquedb.client.session module
session.py – クライアントセッション
- class doquedb.client.session.Session(datasource: DataSource, dbname: str, session_id: int, username: str | None = None)
Bases:
Object
セッションクラス.
コネクションに対してセッションを作成する。
- Parameters:
( (datasource) – obj: DataSource): データソース
dbname (str) – データベース名
username (Optional[str]) – ユーザー名
session_id (int) – セッションID
- __datasource (
obj: DataSource): データソース
- __dbname
データベース名
- Type:
str
- __username
ユーザー名
- Type:
str
- __session_id
セッションID
- Type:
int
- close()
セッションのクローズ.
- close_internal() int
クローズする.
- Returns:
セッションID
- Return type:
int
Notes
このメソッドは例外を送出しない.
- close_prepare()
プリペアステートメントのクローズ
- create_prepare_statement(statement: str) PrepareStatement
新しくプリペアステートメントを作成する.
- Parameters:
statement (str) – SQL文
- Raises:
ClassNotFound – 指定したIDを持つクラスがない
DatabaseError – DoqueDBから返却されたエラー
Exception – その他IOErrorなどpythonのシステムエラー
- Returns:
新しく作成したプリペアステートメント
- Return type:
- property datasource: DataSource
データソースのゲッター
- property dbname: str
データベース名のゲッター
- erase_prepare_statement(prepare_id: int) None
プリペアステートメントを削除する
- Parameters:
prepare_id (int) – プリペアステートメントID
- Raises:
ClassNotFound – 指定したIDを持つクラスがない
DatabaseError – DoqueDBから返却されたエラー
Exception – その他IOErrorなどpythonのシステムエラー
- execute(statement: str, parameters: DataArrayData | None = None) ResultSet
オペレーションを実行する.
- Parameters:
operation (str) – 実行するSQL文.
param_sets (list) – SQL文に埋め込むパラメータのシーケンスのシーケンス.
- Returns:
resultset
- Raises:
Exception – IOErrorなどpythonのシステムエラー
- execute_prepare(prepare: PrepareStatement, parameter: DataArrayData | None = None) ResultSet
プリペアしたSQL文を実行する.
- Parameters:
prepare (PrepareStatement) – プリぺステートメント
parameter (DataArrayData) – パラメータ
- Raises:
Exception – IOErrorなどpythonのシステムエラー
- Returns:
リザルトセット
- Return type:
- get_database_product_ver() str
データベース製品のバージョンを取得する.
- Returns:
データベースのバージョン
- Return type:
str
- property id_: int
セッションIDのゲッター
- property is_valid: bool
セッションが有効かどうか
- property prepared_map: Dict[str, PrepareStatement]
プリペアステートメントのマップのゲッター
- property username: str | None
ユーザー名のゲッター
Module contents
client – クライアント機能パッケージ