Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Exasol] Maximum sqitch scripts reached #521

Closed
Nicqu opened this issue Jun 2, 2020 · 11 comments · Fixed by #525
Closed

[Exasol] Maximum sqitch scripts reached #521

Nicqu opened this issue Jun 2, 2020 · 11 comments · Fixed by #525
Assignees

Comments

@Nicqu
Copy link

Nicqu commented Jun 2, 2020

Hi,

I use sqitch for exasol in a docker environment.
Everything worked fine until I exceeded the 251 sqitch script count.
As soon as I had > 251 scripts, the following error message appeared:

docker run --network=*** --rm -e SQITCH_USERNAME=**** -e SQITCH_PASSWORD=**** -e SQITCH_TARGET=db:****://****db:8888/?Driver=Exasol -e SQITCH_ORIG_FULLNAME=*** -e SQITCH_ORIG_EMAIL=**@*** deploy --verify 
called with 251 bind variables when 501 are needed
Deploying changes to db:****://****db:8888/?Driver=Exasol
hudson.AbortException: script returned exit code 2

Is there a limit on the number of scripts that can be used?

The error also only occurs when sqitch restarts from change 1. If less than 251 scripts are added at once, no error occurs.

@theory
Copy link
Collaborator

theory commented Jun 7, 2020

No limit on the number of scripts, but there may be a limit on the number of tags. Can you post your (appropriately obfuscated) plan file, please?

@theory theory self-assigned this Jun 7, 2020
@Nicqu
Copy link
Author

Nicqu commented Jun 8, 2020

we don't use tags at all. In addition, we generate the plan based on the numbers because we run the plan separately for each feature branch in the repo. In my opinion, this should have no effect on the squitch behavior.

%syntax-version=1.0.0
%project=FEATURE_BRANCH_2_Exasol_Sqitch
%uri=FEATURE_BRANCH_2_Exasol_Sqitch

00001_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00011_*snip*-tables 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00012_*snip*-views 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00013_*snip*-create-tables 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00014_*snip*-create-tables 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00015_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00016_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00017_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00018_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00019_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00020_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00021_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00022_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00023_*snip*-tables-view 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00024_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00025_*snip*-tables 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00026_*snip*-scripts 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00027_*snip*-scripts 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00028_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00029_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00030_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00031_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00032_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00033_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00034_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00035_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00036_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00037_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00038_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00039_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00040_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00041_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00042_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00043_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00044_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00045_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00046_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00047_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00048_*snip*-views 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00049_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00050_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00051_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00052_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00053_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00054_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00055_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00056_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00060_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00061_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00062_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00063_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00064_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00065_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00066_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00070_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00071_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00072_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00073_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00074_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00075_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00076_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00077_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00078_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00079_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00080_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00081_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00090_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00091_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00092_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00093_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00094_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00101_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00102_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00103_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00104_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00105_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00106_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00107_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00108_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00115_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00116_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00117_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00118_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00119_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00120_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00121_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00122_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00123_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00125_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00126_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00127_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00128_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00129_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00130_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00131_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00132_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00133_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00134_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00135_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00136_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00137_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00138_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00139_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00140_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00141_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00142_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00143_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00144_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00145_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00146_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00147_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00148_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00149_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00150_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00151_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00152_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00153_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00154_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00155_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00156_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00157_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00158_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00159_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00160_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00161_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00162_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00163_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00164_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00165_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00166_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00167_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00168_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00169_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00170_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00171_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00172_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00173_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00174_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00175_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00176_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00177_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00178_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00179_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00180_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00181_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00182_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00183_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00184_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00185_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00186_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00187_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00188_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00189_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00190_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00191_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00192_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00193_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00194_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00195_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00196_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00197_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00198_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00199_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00200_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00201_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00202_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00203_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00204_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00205_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00206_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00207_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00208_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00209_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00210_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00211_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00212_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00213_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00214_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00215_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00216_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00217_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00218_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00219_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00220_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00221_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00223_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00224_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00225_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00226_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00227_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00228_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00229_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00230_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00231_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00232_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00233_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00234_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00235_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00236_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00237_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00238_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00239_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00240_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00241_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00242_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00243_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00244_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00245_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00246_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00247_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00248_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00249_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00250_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00251_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00252_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00253_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00254_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00255_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00257_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00258_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00259_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00260_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00261_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00262_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00263_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00264_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00265_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00266_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00267_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00268_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00269_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00270_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00271_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00272_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00273_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00274_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00275_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00276_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00277_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00278_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00279_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00280_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00281_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00282_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00283_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00284_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00285_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00286_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00287_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00288_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00289_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
00289_*snip* 1970-01-01T00:00:00Z Script <script@script.de> # Comment generated by generateSqitchPlan.sh
```

@theory
Copy link
Collaborator

theory commented Jun 9, 2020

Oh, I somehow spaced on the fact that it's Exasol. I just had a look at the code, and it does indeed limit a search to 250 changes here:

sub are_deployed_changes {
my $self = shift;
my @qs;
my $i = @_;
while ($i > 250) {
push @qs => 'change_id IN (' . join(', ' => ('?') x 250) . ')';
$i -= 250;
}
push @qs => 'change_id IN (' . join(', ' => ('?') x @_) . ')';
my $expr = join ' OR ', @qs;
@{ $self->dbh->selectcol_arrayref(
"SELECT change_id FROM changes WHERE $expr",
undef,
map { $_->id } @_,
) };
}

Looks like it was copied from the Oracle engine; @jwarlander do you see any reason why it should be limited thus?

Try commenting out that subroutine (or just prepend an underscore to it) and see if that fixes the problem. That would let the default SQL implementation run, instead, which looks like this:

sub are_deployed_changes {
my $self = shift;
my $qs = join ', ' => ('?') x @_;
@{ $self->dbh->selectcol_arrayref(
"SELECT change_id FROM changes WHERE change_id IN ($qs)",
undef,
map { $_->id } @_,
) };
}

@theory
Copy link
Collaborator

theory commented Jun 9, 2020

Actually, while that might do the trick, it looks like it could be an issue with the current implementation after all. I think this should fix it:

--- a/lib/App/Sqitch/Engine/exasol.pm
+++ b/lib/App/Sqitch/Engine/exasol.pm
@@ -299,7 +299,8 @@ sub are_deployed_changes {
         push @qs => 'change_id IN (' . join(', ' => ('?') x 250) . ')';
         $i -= 250;
     }
-    push @qs => 'change_id IN (' . join(', ' => ('?') x @_) . ')';
+    push @qs => 'change_id IN (' . join(', ' => ('?') x $i) . ')'
+        if $i > 0;
     my $expr = join ' OR ', @qs;
     @{ $self->dbh->selectcol_arrayref(
         "SELECT change_id FROM changes WHERE $expr",

Would you give that a try and let me know?

@Nicqu
Copy link
Author

Nicqu commented Jun 9, 2020

Thanks. That worked!

theory added a commit that referenced this issue Jun 9, 2020
On Oracle and Exasol. Resolves #521.
@jwarlander
Copy link
Contributor

Looks like it was copied from the Oracle engine; @jwarlander do you see any reason why it should be limited thus?

I don't think the actual limit for query size / length of the IN list is anywhere near.. well.. 250 :P So I don't see any good reason to limit it like this, for Exasol at least. Though I haven't tried with a prepared statement, so I can't say if that needs to be taken into consideration as well.

@jwarlander
Copy link
Contributor

Then I guess the original Oracle implementation would also fail with > 250 changes, as it still uses @_?

my $i = @_;
while ($i > 250) {
push @qs => 'change_id IN (' . join(', ' => ('?') x 250) . ')';
$i -= 250;
}
push @qs => 'change_id IN (' . join(', ' => ('?') x @_) . ')';

@theory
Copy link
Collaborator

theory commented Jun 10, 2020

Yeah, I also patched the Oracle engine in #525. If you could try commenting out are_deployed_changes(), we can see if the default implementation, which just puts all the values in a single WHERE clause, works for Exasol.

@theory theory added the patched Fixed in a branch but not yet merged. label Jun 13, 2020
@jwarlander
Copy link
Contributor

On our side we still have well below the batching limit of 250 changes, so it wouldn't be a great test I'm afraid :)

@Nicqu, would you be able to try out what @theory suggested above?

@Nicqu
Copy link
Author

Nicqu commented Jun 16, 2020

@jwarlander it also works if you comment out that part of the code.

theory added a commit that referenced this issue Jun 20, 2020
Let the default implementation handle it, since from feedback on issue #521,
it seems that the partitioning of the IN clause is not required on Exasol.
@theory
Copy link
Collaborator

theory commented Jun 20, 2020

Thanks @Nicqu. Based on that feedback, I've just removed the method in a81c0c4.

theory added a commit that referenced this issue Jun 20, 2020
Let the default implementation handle it, since from feedback on issue #521,
it seems that the partitioning of the IN clause is not required on Exasol.
@theory theory closed this as completed in e560f38 Jun 26, 2020
@theory theory removed the patched Fixed in a branch but not yet merged. label Nov 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants