project-tsurugi / tsubakuro Goto Github PK
View Code? Open in Web Editor NEWjava communication library for tsurugidb
License: Apache License 2.0
java communication library for tsurugidb
License: Apache License 2.0
https://github.com/project-tsurugi/tsubakuro/blob/master/modules/session/src/main/java/com/tsurugidb/tsubakuro/datastore/Backup.java
を廃止し、
https://github.com/project-tsurugi/tsubakuro/blob/master/modules/session/src/main/java/com/tsurugidb/tsubakuro/datastore/BackupDetail.java
に統一する。
https://github.com/project-tsurugi/belayer
の対応が必要
Tsubakuroの実行時に、以下のワーニングが表示されます。今のところ実動作上は問題になっていません。
[WARN] SqlServiceCode - unknown code mapping: com.tsurugidb.jogasaki.proto.StatusProtos$Status.UNRECOGNIZED
SqlServiceException thrown when call loadBuilder.build(sqlClient).await() with Style.OVERWRITE.
Caused by: com.tsurugidb.tsubakuro.sql.SqlServiceException: SQL--0003: parsing statement failed: mismatched input 'OR' expecting IDENTIFIER (<input>:1:7)
at com.tsurugidb.tsubakuro.sql.impl.SqlServiceStub$StatementPrepareProcessor.process(SqlServiceStub.java:192) ~[tsubakuro-session-0.0.1-SNAPSHOT.jar!/:na]
at com.tsurugidb.tsubakuro.sql.impl.SqlServiceStub$StatementPrepareProcessor.process(SqlServiceStub.java:180) ~[tsubakuro-session-0.0.1-SNAPSHOT.jar!/:na]
at com.tsurugidb.tsubakuro.channel.common.connection.wire.MainResponseProcessor$1.process(MainResponseProcessor.java:45) ~[tsubakuro-common-0.0.1-SNAPSHOT.jar!/:na]
at com.tsurugidb.tsubakuro.channel.common.connection.ForegroundFutureResponse.processResult(ForegroundFutureResponse.java:108) ~[tsubakuro-common-0.0.1-SNAPSHOT.jar!/:na]
at com.tsurugidb.tsubakuro.channel.common.connection.ForegroundFutureResponse.get(ForegroundFutureResponse.java:57) ~[tsubakuro-common-0.0.1-SNAPSHOT.jar!/:na]
at com.tsurugidb.tsubakuro.util.MappedFutureResponse.get(MappedFutureResponse.java:52) ~[tsubakuro-common-0.0.1-SNAPSHOT.jar!/:na]
at com.tsurugidb.tsubakuro.util.FutureResponse.await(FutureResponse.java:93) ~[tsubakuro-common-0.0.1-SNAPSHOT.jar!/:na]
at com.tsurugidb.belayer.webapi.service.tsubakuro.TsubakuroServiceImpl.loadFile(TsubakuroServiceImpl.java:320) ~[classes!/:na]
The generated query by LoadBuilder#buildQuery is below.
UPDATE OR INSERT INTO demo (pk, col2, col3, col4, col5, cal6, col7) VALUES (:p0_pk, :p1_col2, :p2_col3, :p3_col4, :p4_col5, :p5_cal6, :p6_col7)
The parquet file that used in this case is attached here. demo.zip
This file is created by dump API Transaction#executeDump()
in Tsubakuro.
The specified table demo
is created by this DDL.
create table demo(pk int primary key, col2 bigint, col3 float, col4 double, col5 char(4), cal6 varchar(10), col7 varchar(3))
foregournd処理がFutureに対してget()しに行ったときにresponseメッセージを取りに行くようにして、受信スレッドを廃止する。
from https://nautilus-technologies.app.box.com/file/1041826174057
・PKをupdateすると1レコードに全件分の更新がかかる
DbUpdateTest.updatePK()
tateyama-serverがクラッシュした時などで永遠と待ってしまい、CIとして実行する際にはCIジョブがハングアップみたいな動きになってしまうので、timeoutをしかけてCIジョブ自体は完走させたい。
from https://nautilus-technologies.app.box.com/file/1041826174057
・PKをnullにしてinsertしてもエラーにならない
DbInsertErrorTest.insertNullToPK()
SqlServiceException thrown when call loadBuilder.build(sqlClient).await() with Style.ERROR(Simply INSERT mode).
I0927 01:17:11.386144 783 service.cpp:834] load processing file: /usr/lib/tsurugi-webapp/storage/user1/load2/demo.parquet
Caused by: com.tsurugidb.tsubakuro.sql.SqlServiceException: SQL--0010: load failed with the statement position:0 status:err_illegal_operation with message ""
at com.tsurugidb.tsubakuro.sql.impl.SqlServiceStub$LoadProcessor.process(SqlServiceStub.java:524) ~[tsubakuro-session-0.0.1-SNAPSHOT.jar!/:na]
at com.tsurugidb.tsubakuro.sql.impl.SqlServiceStub$LoadProcessor.process(SqlServiceStub.java:512) ~[tsubakuro-session-0.0.1-SNAPSHOT.jar!/:na]
at com.tsurugidb.tsubakuro.channel.common.connection.wire.MainResponseProcessor$1.process(MainResponseProcessor.java:45) ~[tsubakuro-common-0.0.1-SNAPSHOT.jar!/:na]
at com.tsurugidb.tsubakuro.channel.common.connection.ForegroundFutureResponse.processResult(ForegroundFutureResponse.java:108) ~[tsubakuro-common-0.0.1-SNAPSHOT.jar!/:na]
at com.tsurugidb.tsubakuro.channel.common.connection.ForegroundFutureResponse.get(ForegroundFutureResponse.java:57) ~[tsubakuro-common-0.0.1-SNAPSHOT.jar!/:na]
at com.tsurugidb.tsubakuro.util.FutureResponse.await(FutureResponse.java:93) ~[tsubakuro-common-0.0.1-SNAPSHOT.jar!/:na]
at com.tsurugidb.belayer.webapi.service.tsubakuro.TsubakuroServiceImpl.loadFile(TsubakuroServiceImpl.java:321) ~[classes!/:na]
The generated query by LoadBuilder#buildQuery is below.
INSERT INTO demo (pk, col2, col3, col4, col5, cal6, col7) VALUES (:p0_pk, :p1_col2, :p2_col3, :p3_col4, :p4_col5, :p5_cal6, :p6_col7)
The parquet file that used in this case is attached here. demo.zip
This file is created by dump API Transaction#executeDump()
in Tsubakuro.
The specified table demo
is created by this DDL.
create table demo(pk int primary key, col2 bigint, col3 float, col4 double, col5 char(4), cal6 varchar(10), col7 varchar(3))
03cba0447ff8
ghcr.io/project-tsurugi/tsurugi:latest ad5716e4335f
oltp start
実行後、なにかテストケースを実行した後に oltp shutdown
を実行すると、以下メッセージが表示されコマンドが失敗(Exit Codeに 1
が変える)します。
failed to shutdown, the server may still be alive
The following dependency description (in build.gradle
) should be api
instead of compileOnly
.
compileOnly 'com.google.code.findbugs:jsr305:3.0.2'
It will be used in annotation processors via reflection.
from https://nautilus-technologies.app.box.com/file/1041826174057
・PKをnullにupdateできてしまう
DbUpdateErrorTest.updatePKNull()
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.