sqitchers / sqitch

Sensible database change management
https://sqitch.org
MIT License
2.76k stars 214 forks source link

[Exasol] Maximum sqitch scripts reached #521

Closed Nicqu closed 4 years ago

Nicqu commented 4 years ago

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 commented 4 years ago

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?

Nicqu commented 4 years ago

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 commented 4 years ago

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:

https://github.com/sqitchers/sqitch/blob/f5129f2dc1fa9ec15afa7b1fc1b363696340984a/lib/App/Sqitch/Engine/exasol.pm#L294-L309

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:

https://github.com/sqitchers/sqitch/blob/f5129f2dc1fa9ec15afa7b1fc1b363696340984a/lib/App/Sqitch/Role/DBIEngine.pm#L408-L416

theory commented 4 years ago

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 commented 4 years ago

Thanks. That worked!

jwarlander commented 4 years ago

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 commented 4 years ago

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

https://github.com/sqitchers/sqitch/blob/f5129f2dc1fa9ec15afa7b1fc1b363696340984a/lib/App/Sqitch/Engine/oracle.pm#L427-L432

theory commented 4 years ago

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.

jwarlander commented 4 years ago

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 commented 4 years ago

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

theory commented 4 years ago

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