From 2178c5b4a292012eab8d81db65a71765f8b97067 Mon Sep 17 00:00:00 2001
From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
Date: Tue, 22 Aug 2017 14:39:23 +0300
Subject: [PATCH] schema: fix errors in 1.8 schema

* upgrade handler for 1.8.2 must be set to auto instead of
  1.7.5;
* _trigger's first field has type string, but index on this field
  has type unsigned - it is conflict.

Needed for #2652
---
 src/box/bootstrap.snap  | Bin 1246 -> 1244 bytes
 src/box/lua/upgrade.lua |   8 ++++++--
 src/box/schema.cc       |   1 +
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/box/bootstrap.snap b/src/box/bootstrap.snap
index cf490ef8117a1ecae652989e28f868c4410dc07b..91f9a5c349d3c008ff40802e68040b518d61f5fe 100644
GIT binary patch
delta 829
zcmV-D1H$~?3ET;g8h<x6EoU`0WH2#fI50H|Np5p=VQyn(Iv{2<GC4LkH#RL}HeqBf
zG-5O~EjeN{HZ3tZGB;x}IX7WtIb{k~Lu_wjYdRo%F*+bHeF_TIx(m9^1YH2m0TrU2
zr2qf`001bpFZ}>er6K^<aj!)HbKLyD1^_@6C;_c;z^i}){C{uFz#au0{~rPWAA=-M
zrA>oNFA0}OSW@i-Sc-rucPo51bily^(>gQNf+|hSRMilXGMoUG0Hgq3^t#WKH3+kH
zxHF6AjUt|3-k~P9clk69l^fZ^BiXU4M&w%hQCUVyKH<Fzx8|K><q_3aDk&N?rJwTY
z#HU>H$gWj0HGk&DrMcJAZwJ&ZYLe%&wQ?=}Lu$;YyA*t4)obbhY#9lIA&=(^0b(D}
zM#4nd2Ew#$17Y5$eLPr{kpSVjliuXD%qvqV^^s8#k_xg35dJXfA!4aYX2;(4ymv44
zBy%nOVW@fUT&fBM*V6A-X6I5z2};dJ4#Bnb=P;Xesek$S(seJ#Ac-(Ji+y7rwo1*%
z?yTDZ70;yC3|vcpse7#Ane^RRvjQvL_F&nuYKOqJ^!uL46>od6J1b`Z%O!y0@$93x
z(k(10`P;f<)sX-wS(hY=Y?WQBZUA7;@!9c-i{OY)Eo6vI;MsR0E_p9CcqaX-li7!7
zrK&6YTz^Zy$qN=ORRp&#;hFR$B`G2)N3E)h<2lh(WY^MP%@mJ10x>G#Fzy5A!Q8>J
zTL-#zuBHE)Ha3pNLEE5d$Vjpb*V3QLFm$fYNaq5_0;j^Y^rtu!t_kKPVPs>DXf_cx
z5H=62nc`s`R5P`sY8qTizlH%dQ#`Vtp|@w%$bXsl6^i4N=3|RyY7EOYvfx_!1DVTM
z#A%+$!)aLPL*g(Hhy=nu9P+S`NEG5cACLq{HLnqhYBIVbdvby^p_S;6xJFz{f8ErW
zQ-ny}qVC@Ipo`_MrC$KeB+sSZ-lbO6wQbkZFJfs`U7Ki&x?@k9#>`>r4P}$aSDrSJ
z{4dC=HpI2`)7bj-;j>oIwe*(=!P1B#O(rW+cphB9$S9~5JsVe`<g!%i&~S;w0<%T~
Hm;nI_NF|5t

delta 830
zcmV-E1Ht^<3El~i8h<u3EoU?`IWsXeHe)ghNp5p=VQyn(Iv_VVF)}zZWH2pdF*0E-
zG&L||Ejc$fH7z-2HZ(FdGh{hqIWP)VLu_wjYdRo%F*+bHeF_TIx(m9^1YiKpNHzeP
zr2qf`001bpFZ}>ey&?eCF|bDfbDRKlRaI4$3X}=0aloq(2Y)bIj=&tj%hE3b{u_qu
zK2>h;WRjHMEvtc0djXaL=DHQK3v;v6gl~>osS5x9=5E&$Q%WhE0G9xy0H)}5AL=y-
zvvs)N#ebuS>GwO-<ThPCeM7~@dwC=~m(_^iTf6FGw0tV>R=71UN!O36vZb<`QB%s)
zr_!AIlSg(hn}4w}HZTpwxAr^0Zc&r`&({jRwGXi|pYBp}%4PAbUGq#Nkty`1P>Gj`
zxX+Yv-xkXLN2V+^`rh<`q>&)}OVUJnFBHqzT7P6zaNH15!UqV%q=(3@DgkJjy>0Tc
zd$A`Od}|Lw&CAZkrci)y?Pd$@Tx==9srkquz_<1fAAhA!&BvFn^d5#ug!vcCoq6~=
zH6OdwZU<QWN%La>-`Y>5nOXcvvrDa3V8z=ecy=!9A%Jh~X8Gibw@t81ZD#-rCV=NL
zEl07XTUb*5+q!dEP5_kGC#fP|XZNxj0GacgmN~^maLlO|GR!D2Eq7x+c`r2hlV+<V
z-wab*S$~*Tf^Y36E>^Ty5!{-DKWUPXq==>**0Qh;=;V_^!?$*eu6WoIh!P2xaUVDj
z=nmK2I@HaBZ|xYZv2{KiJ{vw7v=J=>zO}D33?9tG@m%Ow=v2VB_Em=hHUY&Xa5gAM
zvx%^Quz7IN6_4w{qN^QN(*WPvH4G}c;_;>oy?;#?jelOYR6M6NA73?NV^}cG0(@%^
z8s~9ei3k)Lfm|jUk+{s$M4>E$KA&kHXajvV(nt`CVx<$-q=ZZN!~|F3L&7rx6M=8-
zc4K4G5F&Pqy7aaQx?B$5+6B}n`JZ~5F4nTJZNs;Aky|Yb+ell~W%e{`d=6vr=uskX
zc`_PhGDnxaB7AF~v32UpskI?|YbOzcr%^?sOjMxoJhXW6C@L1EHmX4R^K|O?<P(_%
IvqJ-z0XwjKd;kCd

diff --git a/src/box/lua/upgrade.lua b/src/box/lua/upgrade.lua
index e0b5f15c26..ffc1c7d922 100644
--- a/src/box/lua/upgrade.lua
+++ b/src/box/lua/upgrade.lua
@@ -627,6 +627,10 @@ local function upgrade_to_1_7_5()
     update_existing_users_to_1_7_5()
 end
 
+--------------------------------------------------------------------------------
+-- Tarantool 1.8.2
+--------------------------------------------------------------------------------
+
 local function upgrade_to_1_8_2()
     local _space = box.space[box.schema.SPACE_ID]
     local _index = box.space[box.schema.INDEX_ID]
@@ -664,8 +668,8 @@ local function upgrade(options)
         {version = mkversion(1, 6, 8), func = upgrade_to_1_6_8, auto = false},
         {version = mkversion(1, 7, 1), func = upgrade_to_1_7_1, auto = false},
         {version = mkversion(1, 7, 2), func = upgrade_to_1_7_2, auto = false},
-        {version = mkversion(1, 7, 5), func = upgrade_to_1_7_5, auto = true},
-        {version = mkversion(1, 8, 2), func = upgrade_to_1_8_2, auto = false},
+        {version = mkversion(1, 7, 5), func = upgrade_to_1_7_5, auto = false},
+        {version = mkversion(1, 8, 2), func = upgrade_to_1_8_2, auto = true},
     }
 
     for _, handler in ipairs(handlers) do
diff --git a/src/box/schema.cc b/src/box/schema.cc
index f492dfdfce..22e128daa9 100644
--- a/src/box/schema.cc
+++ b/src/box/schema.cc
@@ -310,6 +310,7 @@ schema_init()
 			    &on_replace_cluster, NULL);
 
         /* _trigger - all existing SQL triggers */
+        key_def_set_part(key_def, 0, 0, FIELD_TYPE_STRING);
 	(void) sc_space_new(BOX_TRIGGER_ID, "_trigger", key_def, NULL, NULL);
 
 	free(key_def);
-- 
GitLab