update.err 117 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332
  1. <sql-statement>
  2. --
  3. -- UPDATE syntax tests
  4. --
  5. CREATE TABLE update_test (
  6. a INT DEFAULT 10,
  7. b INT,
  8. c TEXT
  9. );
  10. </sql-statement>
  11. <sql-statement>
  12. CREATE TABLE upsert_test (
  13. a INT PRIMARY KEY,
  14. b TEXT
  15. );
  16. </sql-statement>
  17. <sql-statement>
  18. INSERT INTO update_test VALUES (5, 10, 'foo');
  19. </sql-statement>
  20. <sql-statement>
  21. INSERT INTO update_test(b, a) VALUES (15, 10);
  22. </sql-statement>
  23. <sql-statement>
  24. SELECT * FROM update_test;
  25. </sql-statement>
  26. <sql-statement>
  27. UPDATE update_test SET a = DEFAULT, b = DEFAULT;
  28. </sql-statement>
  29. -stdin-:<main>: Error: Parse Sql
  30. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 148
  31. UPDATE update_test SET a = DEFAULT, b = DEFAULT;
  32. ^
  33. <sql-statement>
  34. SELECT * FROM update_test;
  35. </sql-statement>
  36. <sql-statement>
  37. -- aliases for the UPDATE target table
  38. UPDATE update_test AS t SET b = 10 WHERE t.a = 10;
  39. </sql-statement>
  40. -stdin-:<main>: Error: Parse Sql
  41. -stdin-:<main>:1:1: Error: alias is not supported
  42. -- aliases for the UPDATE target table
  43. ^
  44. <sql-statement>
  45. SELECT * FROM update_test;
  46. </sql-statement>
  47. <sql-statement>
  48. UPDATE update_test t SET b = t.b + 10 WHERE t.a = 10;
  49. </sql-statement>
  50. -stdin-:<main>: Error: Parse Sql
  51. -stdin-:<main>:1:1: Error: alias is not supported
  52. UPDATE update_test t SET b = t.b + 10 WHERE t.a = 10;
  53. ^
  54. <sql-statement>
  55. SELECT * FROM update_test;
  56. </sql-statement>
  57. <sql-statement>
  58. --
  59. -- Test VALUES in FROM
  60. --
  61. UPDATE update_test SET a=v.i FROM (VALUES(100, 20)) AS v(i, j)
  62. WHERE update_test.b = v.j;
  63. </sql-statement>
  64. -stdin-:<main>: Fatal: Pre type annotation
  65. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  66. <sql-statement>
  67. SELECT * FROM update_test;
  68. </sql-statement>
  69. <sql-statement>
  70. -- fail, wrong data type:
  71. UPDATE update_test SET a = v.* FROM (VALUES(100, 20)) AS v(i, j)
  72. WHERE update_test.b = v.j;
  73. </sql-statement>
  74. -stdin-:<main>: Fatal: Pre type annotation
  75. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  76. <sql-statement>
  77. --
  78. -- Test multiple-set-clause syntax
  79. --
  80. INSERT INTO update_test SELECT a,b+1,c FROM update_test;
  81. </sql-statement>
  82. <sql-statement>
  83. SELECT * FROM update_test;
  84. </sql-statement>
  85. <sql-statement>
  86. UPDATE update_test SET (c,b,a) = ('bugle', b+11, DEFAULT) WHERE c = 'foo';
  87. </sql-statement>
  88. -stdin-:<main>: Error: Parse Sql
  89. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 363
  90. UPDATE update_test SET (c,b,a) = ('bugle', b+11, DEFAULT) WHERE c = 'foo';
  91. ^
  92. <sql-statement>
  93. SELECT * FROM update_test;
  94. </sql-statement>
  95. <sql-statement>
  96. UPDATE update_test SET (c,b) = ('car', a+b), a = a + 1 WHERE a = 10;
  97. </sql-statement>
  98. -stdin-:<main>: Error: Parse Sql
  99. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 363
  100. UPDATE update_test SET (c,b) = ('car', a+b), a = a + 1 WHERE a = 10;
  101. ^
  102. <sql-statement>
  103. SELECT * FROM update_test;
  104. </sql-statement>
  105. <sql-statement>
  106. -- fail, multi assignment to same column:
  107. UPDATE update_test SET (c,b) = ('car', a+b), b = a + 1 WHERE a = 10;
  108. </sql-statement>
  109. -stdin-:<main>: Error: Parse Sql
  110. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 363
  111. -- fail, multi assignment to same column:
  112. ^
  113. <sql-statement>
  114. -- uncorrelated sub-select:
  115. UPDATE update_test
  116. SET (b,a) = (select a,b from update_test where b = 41 and c = 'car')
  117. WHERE a = 100 AND b = 20;
  118. </sql-statement>
  119. -stdin-:<main>: Error: Parse Sql
  120. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 363
  121. -- uncorrelated sub-select:
  122. ^
  123. <sql-statement>
  124. SELECT * FROM update_test;
  125. </sql-statement>
  126. <sql-statement>
  127. -- correlated sub-select:
  128. UPDATE update_test o
  129. SET (b,a) = (select a+1,b from update_test i
  130. where i.a=o.a and i.b=o.b and i.c is not distinct from o.c);
  131. </sql-statement>
  132. -stdin-:<main>: Error: Parse Sql
  133. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 363
  134. -- correlated sub-select:
  135. ^
  136. <sql-statement>
  137. SELECT * FROM update_test;
  138. </sql-statement>
  139. <sql-statement>
  140. -- fail, multiple rows supplied:
  141. UPDATE update_test SET (b,a) = (select a+1,b from update_test);
  142. </sql-statement>
  143. -stdin-:<main>: Error: Parse Sql
  144. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 363
  145. -- fail, multiple rows supplied:
  146. ^
  147. <sql-statement>
  148. -- set to null if no rows supplied:
  149. UPDATE update_test SET (b,a) = (select a+1,b from update_test where a = 1000)
  150. WHERE a = 11;
  151. </sql-statement>
  152. -stdin-:<main>: Error: Parse Sql
  153. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 363
  154. -- set to null if no rows supplied:
  155. ^
  156. <sql-statement>
  157. SELECT * FROM update_test;
  158. </sql-statement>
  159. <sql-statement>
  160. -- *-expansion should work in this context:
  161. UPDATE update_test SET (a,b) = ROW(v.*) FROM (VALUES(21, 100)) AS v(i, j)
  162. WHERE update_test.a = v.i;
  163. </sql-statement>
  164. -stdin-:<main>: Error: Parse Sql
  165. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 363
  166. -- *-expansion should work in this context:
  167. ^
  168. <sql-statement>
  169. -- you might expect this to work, but syntactically it's not a RowExpr:
  170. UPDATE update_test SET (a,b) = (v.*) FROM (VALUES(21, 101)) AS v(i, j)
  171. WHERE update_test.a = v.i;
  172. </sql-statement>
  173. -stdin-:<main>: Error: Parse Sql
  174. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 363
  175. -- you might expect this to work, but syntactically it's not a RowExpr:
  176. ^
  177. <sql-statement>
  178. -- if an alias for the target table is specified, don't allow references
  179. -- to the original table name
  180. UPDATE update_test AS t SET b = update_test.b + 10 WHERE t.a = 10;
  181. </sql-statement>
  182. -stdin-:<main>: Error: Parse Sql
  183. -stdin-:<main>:1:1: Error: alias is not supported
  184. -- if an alias for the target table is specified, don't allow references
  185. ^
  186. <sql-statement>
  187. -- Make sure that we can update to a TOASTed value.
  188. UPDATE update_test SET c = repeat('x', 10000) WHERE c = 'car';
  189. </sql-statement>
  190. -stdin-:<main>: Fatal: Pre type annotation
  191. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  192. <sql-statement>
  193. SELECT a, b, char_length(c) FROM update_test;
  194. </sql-statement>
  195. <sql-statement>
  196. -- Check multi-assignment with a Result node to handle a one-time filter.
  197. EXPLAIN (VERBOSE, COSTS OFF)
  198. UPDATE update_test t
  199. SET (a, b) = (SELECT b, a FROM update_test s WHERE s.a = t.a)
  200. WHERE CURRENT_USER = SESSION_USER;
  201. </sql-statement>
  202. -stdin-:<main>: Error: Parse Sql
  203. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 276
  204. -- Check multi-assignment with a Result node to handle a one-time filter.
  205. ^
  206. <sql-statement>
  207. UPDATE update_test t
  208. SET (a, b) = (SELECT b, a FROM update_test s WHERE s.a = t.a)
  209. WHERE CURRENT_USER = SESSION_USER;
  210. </sql-statement>
  211. -stdin-:<main>: Error: Parse Sql
  212. -stdin-:<main>:3:24: Error: Usupported SQLValueFunction: 12
  213. WHERE CURRENT_USER = SESSION_USER;
  214. ^
  215. <sql-statement>
  216. SELECT a, b, char_length(c) FROM update_test;
  217. </sql-statement>
  218. <sql-statement>
  219. -- Test ON CONFLICT DO UPDATE
  220. INSERT INTO upsert_test VALUES(1, 'Boo'), (3, 'Zoo');
  221. </sql-statement>
  222. <sql-statement>
  223. -- uncorrelated sub-select:
  224. WITH aaa AS (SELECT 1 AS a, 'Foo' AS b) INSERT INTO upsert_test
  225. VALUES (1, 'Bar') ON CONFLICT(a)
  226. DO UPDATE SET (b, a) = (SELECT b, a FROM aaa) RETURNING *;
  227. </sql-statement>
  228. -stdin-:<main>: Error: Parse Sql
  229. -stdin-:<main>:1:1: Error: InsertStmt: not supported onConflictClause
  230. -- uncorrelated sub-select:
  231. ^
  232. <sql-statement>
  233. -- correlated sub-select:
  234. INSERT INTO upsert_test VALUES (1, 'Baz'), (3, 'Zaz') ON CONFLICT(a)
  235. DO UPDATE SET (b, a) = (SELECT b || ', Correlated', a from upsert_test i WHERE i.a = upsert_test.a)
  236. RETURNING *;
  237. </sql-statement>
  238. -stdin-:<main>: Error: Parse Sql
  239. -stdin-:<main>:1:1: Error: InsertStmt: not supported onConflictClause
  240. -- correlated sub-select:
  241. ^
  242. <sql-statement>
  243. -- correlated sub-select (EXCLUDED.* alias):
  244. INSERT INTO upsert_test VALUES (1, 'Bat'), (3, 'Zot') ON CONFLICT(a)
  245. DO UPDATE SET (b, a) = (SELECT b || ', Excluded', a from upsert_test i WHERE i.a = excluded.a)
  246. RETURNING *;
  247. </sql-statement>
  248. -stdin-:<main>: Error: Parse Sql
  249. -stdin-:<main>:1:1: Error: InsertStmt: not supported onConflictClause
  250. -- correlated sub-select (EXCLUDED.* alias):
  251. ^
  252. <sql-statement>
  253. -- ON CONFLICT using system attributes in RETURNING, testing both the
  254. -- inserting and updating paths. See bug report at:
  255. -- https://www.postgresql.org/message-id/73436355-6432-49B1-92ED-1FE4F7E7E100%40finefun.com.au
  256. INSERT INTO upsert_test VALUES (2, 'Beeble') ON CONFLICT(a)
  257. DO UPDATE SET (b, a) = (SELECT b || ', Excluded', a from upsert_test i WHERE i.a = excluded.a)
  258. RETURNING tableoid::regclass, xmin = pg_current_xact_id()::xid AS xmin_correct, xmax = 0 AS xmax_correct;
  259. </sql-statement>
  260. -stdin-:<main>: Error: Parse Sql
  261. -stdin-:<main>:1:1: Error: InsertStmt: not supported onConflictClause
  262. -- ON CONFLICT using system attributes in RETURNING, testing both the
  263. ^
  264. <sql-statement>
  265. -- currently xmax is set after a conflict - that's probably not good,
  266. -- but it seems worthwhile to have to be explicit if that changes.
  267. INSERT INTO upsert_test VALUES (2, 'Brox') ON CONFLICT(a)
  268. DO UPDATE SET (b, a) = (SELECT b || ', Excluded', a from upsert_test i WHERE i.a = excluded.a)
  269. RETURNING tableoid::regclass, xmin = pg_current_xact_id()::xid AS xmin_correct, xmax = pg_current_xact_id()::xid AS xmax_correct;
  270. </sql-statement>
  271. -stdin-:<main>: Error: Parse Sql
  272. -stdin-:<main>:1:1: Error: InsertStmt: not supported onConflictClause
  273. -- currently xmax is set after a conflict - that's probably not good,
  274. ^
  275. <sql-statement>
  276. DROP TABLE update_test;
  277. </sql-statement>
  278. <sql-statement>
  279. DROP TABLE upsert_test;
  280. </sql-statement>
  281. <sql-statement>
  282. -- Test ON CONFLICT DO UPDATE with partitioned table and non-identical children
  283. CREATE TABLE upsert_test (
  284. a INT PRIMARY KEY,
  285. b TEXT
  286. ) PARTITION BY LIST (a);
  287. </sql-statement>
  288. -stdin-:<main>: Error: Parse Sql
  289. -stdin-:<main>:1:1: Error: PARTITION BY clause not supported
  290. -- Test ON CONFLICT DO UPDATE with partitioned table and non-identical children
  291. ^
  292. <sql-statement>
  293. CREATE TABLE upsert_test_1 PARTITION OF upsert_test FOR VALUES IN (1);
  294. </sql-statement>
  295. -stdin-:<main>: Error: Parse Sql
  296. -stdin-:<main>:1:1: Error: table inheritance not supported
  297. CREATE TABLE upsert_test_1 PARTITION OF upsert_test FOR VALUES IN (1);
  298. ^
  299. <sql-statement>
  300. CREATE TABLE upsert_test_2 (b TEXT, a INT PRIMARY KEY);
  301. </sql-statement>
  302. <sql-statement>
  303. ALTER TABLE upsert_test ATTACH PARTITION upsert_test_2 FOR VALUES IN (2);
  304. </sql-statement>
  305. -stdin-:<main>: Error: Parse Sql
  306. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  307. ALTER TABLE upsert_test ATTACH PARTITION upsert_test_2 FOR VALUES IN (2);
  308. ^
  309. <sql-statement>
  310. INSERT INTO upsert_test VALUES(1, 'Boo'), (2, 'Zoo');
  311. </sql-statement>
  312. -stdin-:<main>: Fatal: Table metadata loading
  313. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.upsert_test
  314. <sql-statement>
  315. -- uncorrelated sub-select:
  316. WITH aaa AS (SELECT 1 AS a, 'Foo' AS b) INSERT INTO upsert_test
  317. VALUES (1, 'Bar') ON CONFLICT(a)
  318. DO UPDATE SET (b, a) = (SELECT b, a FROM aaa) RETURNING *;
  319. </sql-statement>
  320. -stdin-:<main>: Error: Parse Sql
  321. -stdin-:<main>:1:1: Error: InsertStmt: not supported onConflictClause
  322. -- uncorrelated sub-select:
  323. ^
  324. <sql-statement>
  325. -- correlated sub-select:
  326. WITH aaa AS (SELECT 1 AS ctea, ' Foo' AS cteb) INSERT INTO upsert_test
  327. VALUES (1, 'Bar'), (2, 'Baz') ON CONFLICT(a)
  328. DO UPDATE SET (b, a) = (SELECT upsert_test.b||cteb, upsert_test.a FROM aaa) RETURNING *;
  329. </sql-statement>
  330. -stdin-:<main>: Error: Parse Sql
  331. -stdin-:<main>:1:1: Error: InsertStmt: not supported onConflictClause
  332. -- correlated sub-select:
  333. ^
  334. <sql-statement>
  335. DROP TABLE upsert_test;
  336. </sql-statement>
  337. <sql-statement>
  338. ---------------------------
  339. -- UPDATE with row movement
  340. ---------------------------
  341. -- When a partitioned table receives an UPDATE to the partitioned key and the
  342. -- new values no longer meet the partition's bound, the row must be moved to
  343. -- the correct partition for the new partition key (if one exists). We must
  344. -- also ensure that updatable views on partitioned tables properly enforce any
  345. -- WITH CHECK OPTION that is defined. The situation with triggers in this case
  346. -- also requires thorough testing as partition key updates causing row
  347. -- movement convert UPDATEs into DELETE+INSERT.
  348. CREATE TABLE range_parted (
  349. a text,
  350. b bigint,
  351. c numeric,
  352. d int,
  353. e varchar
  354. ) PARTITION BY RANGE (a, b);
  355. </sql-statement>
  356. -stdin-:<main>: Error: Parse Sql
  357. -stdin-:<main>:1:1: Error: PARTITION BY clause not supported
  358. ---------------------------
  359. ^
  360. <sql-statement>
  361. -- Create partitions intentionally in descending bound order, so as to test
  362. -- that update-row-movement works with the leaf partitions not in bound order.
  363. CREATE TABLE part_b_20_b_30 (e varchar, c numeric, a text, b bigint, d int);
  364. </sql-statement>
  365. <sql-statement>
  366. ALTER TABLE range_parted ATTACH PARTITION part_b_20_b_30 FOR VALUES FROM ('b', 20) TO ('b', 30);
  367. </sql-statement>
  368. -stdin-:<main>: Error: Parse Sql
  369. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  370. ALTER TABLE range_parted ATTACH PARTITION part_b_20_b_30 FOR VALUES FROM ('b', 20) TO ('b', 30);
  371. ^
  372. <sql-statement>
  373. CREATE TABLE part_b_10_b_20 (e varchar, c numeric, a text, b bigint, d int) PARTITION BY RANGE (c);
  374. </sql-statement>
  375. -stdin-:<main>: Error: Parse Sql
  376. -stdin-:<main>:1:1: Error: PARTITION BY clause not supported
  377. CREATE TABLE part_b_10_b_20 (e varchar, c numeric, a text, b bigint, d int) PARTITION BY RANGE (c);
  378. ^
  379. <sql-statement>
  380. CREATE TABLE part_b_1_b_10 PARTITION OF range_parted FOR VALUES FROM ('b', 1) TO ('b', 10);
  381. </sql-statement>
  382. -stdin-:<main>: Error: Parse Sql
  383. -stdin-:<main>:1:1: Error: table inheritance not supported
  384. CREATE TABLE part_b_1_b_10 PARTITION OF range_parted FOR VALUES FROM ('b', 1) TO ('b', 10);
  385. ^
  386. <sql-statement>
  387. ALTER TABLE range_parted ATTACH PARTITION part_b_10_b_20 FOR VALUES FROM ('b', 10) TO ('b', 20);
  388. </sql-statement>
  389. -stdin-:<main>: Error: Parse Sql
  390. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  391. ALTER TABLE range_parted ATTACH PARTITION part_b_10_b_20 FOR VALUES FROM ('b', 10) TO ('b', 20);
  392. ^
  393. <sql-statement>
  394. CREATE TABLE part_a_10_a_20 PARTITION OF range_parted FOR VALUES FROM ('a', 10) TO ('a', 20);
  395. </sql-statement>
  396. -stdin-:<main>: Error: Parse Sql
  397. -stdin-:<main>:1:1: Error: table inheritance not supported
  398. CREATE TABLE part_a_10_a_20 PARTITION OF range_parted FOR VALUES FROM ('a', 10) TO ('a', 20);
  399. ^
  400. <sql-statement>
  401. CREATE TABLE part_a_1_a_10 PARTITION OF range_parted FOR VALUES FROM ('a', 1) TO ('a', 10);
  402. </sql-statement>
  403. -stdin-:<main>: Error: Parse Sql
  404. -stdin-:<main>:1:1: Error: table inheritance not supported
  405. CREATE TABLE part_a_1_a_10 PARTITION OF range_parted FOR VALUES FROM ('a', 1) TO ('a', 10);
  406. ^
  407. <sql-statement>
  408. -- Check that partition-key UPDATE works sanely on a partitioned table that
  409. -- does not have any child partitions.
  410. UPDATE part_b_10_b_20 set b = b - 6;
  411. </sql-statement>
  412. -stdin-:<main>: Fatal: Pre type annotation
  413. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  414. <sql-statement>
  415. -- Create some more partitions following the above pattern of descending bound
  416. -- order, but let's make the situation a bit more complex by having the
  417. -- attribute numbers of the columns vary from their parent partition.
  418. CREATE TABLE part_c_100_200 (e varchar, c numeric, a text, b bigint, d int) PARTITION BY range (abs(d));
  419. </sql-statement>
  420. -stdin-:<main>: Error: Parse Sql
  421. -stdin-:<main>:1:1: Error: PARTITION BY clause not supported
  422. -- Create some more partitions following the above pattern of descending bound
  423. ^
  424. <sql-statement>
  425. ALTER TABLE part_c_100_200 DROP COLUMN e, DROP COLUMN c, DROP COLUMN a;
  426. </sql-statement>
  427. -stdin-:<main>: Error: Parse Sql
  428. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  429. ALTER TABLE part_c_100_200 DROP COLUMN e, DROP COLUMN c, DROP COLUMN a;
  430. ^
  431. <sql-statement>
  432. ALTER TABLE part_c_100_200 ADD COLUMN c numeric, ADD COLUMN e varchar, ADD COLUMN a text;
  433. </sql-statement>
  434. -stdin-:<main>: Error: Parse Sql
  435. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  436. ALTER TABLE part_c_100_200 ADD COLUMN c numeric, ADD COLUMN e varchar, ADD COLUMN a text;
  437. ^
  438. <sql-statement>
  439. ALTER TABLE part_c_100_200 DROP COLUMN b;
  440. </sql-statement>
  441. -stdin-:<main>: Error: Parse Sql
  442. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  443. ALTER TABLE part_c_100_200 DROP COLUMN b;
  444. ^
  445. <sql-statement>
  446. ALTER TABLE part_c_100_200 ADD COLUMN b bigint;
  447. </sql-statement>
  448. -stdin-:<main>: Error: Parse Sql
  449. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  450. ALTER TABLE part_c_100_200 ADD COLUMN b bigint;
  451. ^
  452. <sql-statement>
  453. CREATE TABLE part_d_1_15 PARTITION OF part_c_100_200 FOR VALUES FROM (1) TO (15);
  454. </sql-statement>
  455. -stdin-:<main>: Error: Parse Sql
  456. -stdin-:<main>:1:1: Error: table inheritance not supported
  457. CREATE TABLE part_d_1_15 PARTITION OF part_c_100_200 FOR VALUES FROM (1) TO (15);
  458. ^
  459. <sql-statement>
  460. CREATE TABLE part_d_15_20 PARTITION OF part_c_100_200 FOR VALUES FROM (15) TO (20);
  461. </sql-statement>
  462. -stdin-:<main>: Error: Parse Sql
  463. -stdin-:<main>:1:1: Error: table inheritance not supported
  464. CREATE TABLE part_d_15_20 PARTITION OF part_c_100_200 FOR VALUES FROM (15) TO (20);
  465. ^
  466. <sql-statement>
  467. ALTER TABLE part_b_10_b_20 ATTACH PARTITION part_c_100_200 FOR VALUES FROM (100) TO (200);
  468. </sql-statement>
  469. -stdin-:<main>: Error: Parse Sql
  470. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  471. ALTER TABLE part_b_10_b_20 ATTACH PARTITION part_c_100_200 FOR VALUES FROM (100) TO (200);
  472. ^
  473. <sql-statement>
  474. CREATE TABLE part_c_1_100 (e varchar, d int, c numeric, b bigint, a text);
  475. </sql-statement>
  476. <sql-statement>
  477. ALTER TABLE part_b_10_b_20 ATTACH PARTITION part_c_1_100 FOR VALUES FROM (1) TO (100);
  478. </sql-statement>
  479. -stdin-:<main>: Error: Parse Sql
  480. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  481. ALTER TABLE part_b_10_b_20 ATTACH PARTITION part_c_1_100 FOR VALUES FROM (1) TO (100);
  482. ^
  483. <sql-statement>
  484. \set init_range_parted 'truncate range_parted; insert into range_parted VALUES (''a'', 1, 1, 1), (''a'', 10, 200, 1), (''b'', 12, 96, 1), (''b'', 13, 97, 2), (''b'', 15, 105, 16), (''b'', 17, 105, 19)'
  485. </sql-statement>
  486. Metacommand \set init_range_parted 'truncate range_parted; insert into range_parted VALUES (''a'', 1, 1, 1), (''a'', 10, 200, 1), (''b'', 12, 96, 1), (''b'', 13, 97, 2), (''b'', 15, 105, 16), (''b'', 17, 105, 19)' is not supported
  487. <sql-statement>
  488. \set show_data 'select tableoid::regclass::text COLLATE "C" partname, * from range_parted ORDER BY 1, 2, 3, 4, 5, 6'
  489. </sql-statement>
  490. Metacommand \set show_data 'select tableoid::regclass::text COLLATE "C" partname, * from range_parted ORDER BY 1, 2, 3, 4, 5, 6' is not supported
  491. <sql-statement>
  492. :init_range_parted;
  493. </sql-statement>
  494. -stdin-:<main>: Error: Parse Sql
  495. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  496. :init_range_parted;
  497. ^
  498. <sql-statement>
  499. :show_data;
  500. </sql-statement>
  501. -stdin-:<main>: Error: Parse Sql
  502. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  503. :show_data;
  504. ^
  505. <sql-statement>
  506. -- The order of subplans should be in bound order
  507. EXPLAIN (costs off) UPDATE range_parted set c = c - 50 WHERE c > 97;
  508. </sql-statement>
  509. -stdin-:<main>: Error: Parse Sql
  510. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 276
  511. -- The order of subplans should be in bound order
  512. ^
  513. <sql-statement>
  514. -- fail, row movement happens only within the partition subtree.
  515. UPDATE part_c_100_200 set c = c - 20, d = c WHERE c = 105;
  516. </sql-statement>
  517. -stdin-:<main>: Fatal: Pre type annotation
  518. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  519. <sql-statement>
  520. -- fail, no partition key update, so no attempt to move tuple,
  521. -- but "a = 'a'" violates partition constraint enforced by root partition)
  522. UPDATE part_b_10_b_20 set a = 'a';
  523. </sql-statement>
  524. -stdin-:<main>: Fatal: Pre type annotation
  525. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  526. <sql-statement>
  527. -- ok, partition key update, no constraint violation
  528. UPDATE range_parted set d = d - 10 WHERE d > 10;
  529. </sql-statement>
  530. -stdin-:<main>: Fatal: Pre type annotation
  531. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  532. <sql-statement>
  533. -- ok, no partition key update, no constraint violation
  534. UPDATE range_parted set e = d;
  535. </sql-statement>
  536. -stdin-:<main>: Fatal: Pre type annotation
  537. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  538. <sql-statement>
  539. -- No row found
  540. UPDATE part_c_1_100 set c = c + 20 WHERE c = 98;
  541. </sql-statement>
  542. -stdin-:<main>: Fatal: Pre type annotation
  543. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  544. <sql-statement>
  545. -- ok, row movement
  546. UPDATE part_b_10_b_20 set c = c + 20 returning c, b, a;
  547. </sql-statement>
  548. -stdin-:<main>: Fatal: Pre type annotation
  549. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  550. <sql-statement>
  551. :show_data;
  552. </sql-statement>
  553. -stdin-:<main>: Error: Parse Sql
  554. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  555. :show_data;
  556. ^
  557. <sql-statement>
  558. -- fail, row movement happens only within the partition subtree.
  559. UPDATE part_b_10_b_20 set b = b - 6 WHERE c > 116 returning *;
  560. </sql-statement>
  561. -stdin-:<main>: Fatal: Pre type annotation
  562. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  563. <sql-statement>
  564. -- ok, row movement, with subset of rows moved into different partition.
  565. UPDATE range_parted set b = b - 6 WHERE c > 116 returning a, b + c;
  566. </sql-statement>
  567. -stdin-:<main>: Error: Parse Sql
  568. -stdin-:<main>:1:1: Error: ResTarget: alternative is not implemented yet : 353
  569. -- ok, row movement, with subset of rows moved into different partition.
  570. ^
  571. <sql-statement>
  572. :show_data;
  573. </sql-statement>
  574. -stdin-:<main>: Error: Parse Sql
  575. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  576. :show_data;
  577. ^
  578. <sql-statement>
  579. -- Common table needed for multiple test scenarios.
  580. CREATE TABLE mintab(c1 int);
  581. </sql-statement>
  582. <sql-statement>
  583. INSERT into mintab VALUES (120);
  584. </sql-statement>
  585. <sql-statement>
  586. -- update partition key using updatable view.
  587. CREATE VIEW upview AS SELECT * FROM range_parted WHERE (select c > c1 FROM mintab) WITH CHECK OPTION;
  588. </sql-statement>
  589. -stdin-:<main>: Error: Parse Sql
  590. -stdin-:<main>:1:1: Error: expected at least one target column
  591. -- update partition key using updatable view.
  592. ^
  593. <sql-statement>
  594. -- ok
  595. UPDATE upview set c = 199 WHERE b = 4;
  596. </sql-statement>
  597. -stdin-:<main>: Fatal: Pre type annotation
  598. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  599. <sql-statement>
  600. -- fail, check option violation
  601. UPDATE upview set c = 120 WHERE b = 4;
  602. </sql-statement>
  603. -stdin-:<main>: Fatal: Pre type annotation
  604. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  605. <sql-statement>
  606. -- fail, row movement with check option violation
  607. UPDATE upview set a = 'b', b = 15, c = 120 WHERE b = 4;
  608. </sql-statement>
  609. -stdin-:<main>: Fatal: Pre type annotation
  610. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  611. <sql-statement>
  612. -- ok, row movement, check option passes
  613. UPDATE upview set a = 'b', b = 15 WHERE b = 4;
  614. </sql-statement>
  615. -stdin-:<main>: Fatal: Pre type annotation
  616. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  617. <sql-statement>
  618. :show_data;
  619. </sql-statement>
  620. -stdin-:<main>: Error: Parse Sql
  621. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  622. :show_data;
  623. ^
  624. <sql-statement>
  625. -- cleanup
  626. DROP VIEW upview;
  627. </sql-statement>
  628. -stdin-:<main>: Error: Parse Sql
  629. -stdin-:<main>:1:1: Error: View not found: 'upview'
  630. -- cleanup
  631. ^
  632. <sql-statement>
  633. -- RETURNING having whole-row vars.
  634. :init_range_parted;
  635. </sql-statement>
  636. -stdin-:<main>: Error: Parse Sql
  637. -stdin-:<main>:2:1: Error: ERROR: syntax error at or near ":"
  638. :init_range_parted;
  639. ^
  640. <sql-statement>
  641. UPDATE range_parted set c = 95 WHERE a = 'b' and b > 10 and c > 100 returning (range_parted), *;
  642. </sql-statement>
  643. -stdin-:<main>: Fatal: Pre type annotation
  644. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  645. <sql-statement>
  646. :show_data;
  647. </sql-statement>
  648. -stdin-:<main>: Error: Parse Sql
  649. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  650. :show_data;
  651. ^
  652. <sql-statement>
  653. -- Transition tables with update row movement
  654. :init_range_parted;
  655. </sql-statement>
  656. -stdin-:<main>: Error: Parse Sql
  657. -stdin-:<main>:2:1: Error: ERROR: syntax error at or near ":"
  658. :init_range_parted;
  659. ^
  660. <sql-statement>
  661. CREATE FUNCTION trans_updatetrigfunc() RETURNS trigger LANGUAGE plpgsql AS
  662. $$
  663. begin
  664. raise notice 'trigger = %, old table = %, new table = %',
  665. TG_NAME,
  666. (select string_agg(old_table::text, ', ' ORDER BY a) FROM old_table),
  667. (select string_agg(new_table::text, ', ' ORDER BY a) FROM new_table);
  668. return null;
  669. end;
  670. $$;
  671. </sql-statement>
  672. -stdin-:<main>: Error: Parse Sql
  673. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 261
  674. CREATE FUNCTION trans_updatetrigfunc() RETURNS trigger LANGUAGE plpgsql AS
  675. ^
  676. <sql-statement>
  677. CREATE TRIGGER trans_updatetrig
  678. AFTER UPDATE ON range_parted REFERENCING OLD TABLE AS old_table NEW TABLE AS new_table
  679. FOR EACH STATEMENT EXECUTE PROCEDURE trans_updatetrigfunc();
  680. </sql-statement>
  681. -stdin-:<main>: Error: Parse Sql
  682. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  683. CREATE TRIGGER trans_updatetrig
  684. ^
  685. <sql-statement>
  686. UPDATE range_parted set c = (case when c = 96 then 110 else c + 1 end ) WHERE a = 'b' and b > 10 and c >= 96;
  687. </sql-statement>
  688. -stdin-:<main>: Fatal: Pre type annotation
  689. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  690. <sql-statement>
  691. :show_data;
  692. </sql-statement>
  693. -stdin-:<main>: Error: Parse Sql
  694. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  695. :show_data;
  696. ^
  697. <sql-statement>
  698. :init_range_parted;
  699. </sql-statement>
  700. -stdin-:<main>: Error: Parse Sql
  701. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  702. :init_range_parted;
  703. ^
  704. <sql-statement>
  705. -- Enabling OLD TABLE capture for both DELETE as well as UPDATE stmt triggers
  706. -- should not cause DELETEd rows to be captured twice. Similar thing for
  707. -- INSERT triggers and inserted rows.
  708. CREATE TRIGGER trans_deletetrig
  709. AFTER DELETE ON range_parted REFERENCING OLD TABLE AS old_table
  710. FOR EACH STATEMENT EXECUTE PROCEDURE trans_updatetrigfunc();
  711. </sql-statement>
  712. -stdin-:<main>: Error: Parse Sql
  713. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  714. -- Enabling OLD TABLE capture for both DELETE as well as UPDATE stmt triggers
  715. ^
  716. <sql-statement>
  717. CREATE TRIGGER trans_inserttrig
  718. AFTER INSERT ON range_parted REFERENCING NEW TABLE AS new_table
  719. FOR EACH STATEMENT EXECUTE PROCEDURE trans_updatetrigfunc();
  720. </sql-statement>
  721. -stdin-:<main>: Error: Parse Sql
  722. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  723. CREATE TRIGGER trans_inserttrig
  724. ^
  725. <sql-statement>
  726. UPDATE range_parted set c = c + 50 WHERE a = 'b' and b > 10 and c >= 96;
  727. </sql-statement>
  728. -stdin-:<main>: Fatal: Pre type annotation
  729. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  730. <sql-statement>
  731. :show_data;
  732. </sql-statement>
  733. -stdin-:<main>: Error: Parse Sql
  734. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  735. :show_data;
  736. ^
  737. <sql-statement>
  738. DROP TRIGGER trans_deletetrig ON range_parted;
  739. </sql-statement>
  740. -stdin-:<main>: Error: Parse Sql
  741. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  742. DROP TRIGGER trans_deletetrig ON range_parted;
  743. ^
  744. <sql-statement>
  745. DROP TRIGGER trans_inserttrig ON range_parted;
  746. </sql-statement>
  747. -stdin-:<main>: Error: Parse Sql
  748. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  749. DROP TRIGGER trans_inserttrig ON range_parted;
  750. ^
  751. <sql-statement>
  752. -- Don't drop trans_updatetrig yet. It is required below.
  753. -- Test with transition tuple conversion happening for rows moved into the
  754. -- new partition. This requires a trigger that references transition table
  755. -- (we already have trans_updatetrig). For inserted rows, the conversion
  756. -- is not usually needed, because the original tuple is already compatible with
  757. -- the desired transition tuple format. But conversion happens when there is a
  758. -- BR trigger because the trigger can change the inserted row. So install a
  759. -- BR triggers on those child partitions where the rows will be moved.
  760. CREATE FUNCTION func_parted_mod_b() RETURNS trigger AS $$
  761. BEGIN
  762. NEW.b = NEW.b + 1;
  763. return NEW;
  764. END $$ language plpgsql;
  765. </sql-statement>
  766. -stdin-:<main>: Error: Parse Sql
  767. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 261
  768. -- Don't drop trans_updatetrig yet. It is required below.
  769. ^
  770. <sql-statement>
  771. CREATE TRIGGER trig_c1_100 BEFORE UPDATE OR INSERT ON part_c_1_100
  772. FOR EACH ROW EXECUTE PROCEDURE func_parted_mod_b();
  773. </sql-statement>
  774. -stdin-:<main>: Error: Parse Sql
  775. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  776. CREATE TRIGGER trig_c1_100 BEFORE UPDATE OR INSERT ON part_c_1_100
  777. ^
  778. <sql-statement>
  779. CREATE TRIGGER trig_d1_15 BEFORE UPDATE OR INSERT ON part_d_1_15
  780. FOR EACH ROW EXECUTE PROCEDURE func_parted_mod_b();
  781. </sql-statement>
  782. -stdin-:<main>: Error: Parse Sql
  783. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  784. CREATE TRIGGER trig_d1_15 BEFORE UPDATE OR INSERT ON part_d_1_15
  785. ^
  786. <sql-statement>
  787. CREATE TRIGGER trig_d15_20 BEFORE UPDATE OR INSERT ON part_d_15_20
  788. FOR EACH ROW EXECUTE PROCEDURE func_parted_mod_b();
  789. </sql-statement>
  790. -stdin-:<main>: Error: Parse Sql
  791. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  792. CREATE TRIGGER trig_d15_20 BEFORE UPDATE OR INSERT ON part_d_15_20
  793. ^
  794. <sql-statement>
  795. :init_range_parted;
  796. </sql-statement>
  797. -stdin-:<main>: Error: Parse Sql
  798. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  799. :init_range_parted;
  800. ^
  801. <sql-statement>
  802. UPDATE range_parted set c = (case when c = 96 then 110 else c + 1 end) WHERE a = 'b' and b > 10 and c >= 96;
  803. </sql-statement>
  804. -stdin-:<main>: Fatal: Pre type annotation
  805. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  806. <sql-statement>
  807. :show_data;
  808. </sql-statement>
  809. -stdin-:<main>: Error: Parse Sql
  810. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  811. :show_data;
  812. ^
  813. <sql-statement>
  814. :init_range_parted;
  815. </sql-statement>
  816. -stdin-:<main>: Error: Parse Sql
  817. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  818. :init_range_parted;
  819. ^
  820. <sql-statement>
  821. UPDATE range_parted set c = c + 50 WHERE a = 'b' and b > 10 and c >= 96;
  822. </sql-statement>
  823. -stdin-:<main>: Fatal: Pre type annotation
  824. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  825. <sql-statement>
  826. :show_data;
  827. </sql-statement>
  828. -stdin-:<main>: Error: Parse Sql
  829. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  830. :show_data;
  831. ^
  832. <sql-statement>
  833. -- Case where per-partition tuple conversion map array is allocated, but the
  834. -- map is not required for the particular tuple that is routed, thanks to
  835. -- matching table attributes of the partition and the target table.
  836. :init_range_parted;
  837. </sql-statement>
  838. -stdin-:<main>: Error: Parse Sql
  839. -stdin-:<main>:4:1: Error: ERROR: syntax error at or near ":"
  840. :init_range_parted;
  841. ^
  842. <sql-statement>
  843. UPDATE range_parted set b = 15 WHERE b = 1;
  844. </sql-statement>
  845. -stdin-:<main>: Fatal: Pre type annotation
  846. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  847. <sql-statement>
  848. :show_data;
  849. </sql-statement>
  850. -stdin-:<main>: Error: Parse Sql
  851. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  852. :show_data;
  853. ^
  854. <sql-statement>
  855. DROP TRIGGER trans_updatetrig ON range_parted;
  856. </sql-statement>
  857. -stdin-:<main>: Error: Parse Sql
  858. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  859. DROP TRIGGER trans_updatetrig ON range_parted;
  860. ^
  861. <sql-statement>
  862. DROP TRIGGER trig_c1_100 ON part_c_1_100;
  863. </sql-statement>
  864. -stdin-:<main>: Error: Parse Sql
  865. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  866. DROP TRIGGER trig_c1_100 ON part_c_1_100;
  867. ^
  868. <sql-statement>
  869. DROP TRIGGER trig_d1_15 ON part_d_1_15;
  870. </sql-statement>
  871. -stdin-:<main>: Error: Parse Sql
  872. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  873. DROP TRIGGER trig_d1_15 ON part_d_1_15;
  874. ^
  875. <sql-statement>
  876. DROP TRIGGER trig_d15_20 ON part_d_15_20;
  877. </sql-statement>
  878. -stdin-:<main>: Error: Parse Sql
  879. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  880. DROP TRIGGER trig_d15_20 ON part_d_15_20;
  881. ^
  882. <sql-statement>
  883. DROP FUNCTION func_parted_mod_b();
  884. </sql-statement>
  885. -stdin-:<main>: Error: Parse Sql
  886. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 386
  887. DROP FUNCTION func_parted_mod_b();
  888. ^
  889. <sql-statement>
  890. -- RLS policies with update-row-movement
  891. -----------------------------------------
  892. ALTER TABLE range_parted ENABLE ROW LEVEL SECURITY;
  893. </sql-statement>
  894. -stdin-:<main>: Error: Parse Sql
  895. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  896. -- RLS policies with update-row-movement
  897. ^
  898. <sql-statement>
  899. CREATE USER regress_range_parted_user;
  900. </sql-statement>
  901. -stdin-:<main>: Error: Parse Sql
  902. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 285
  903. CREATE USER regress_range_parted_user;
  904. ^
  905. <sql-statement>
  906. GRANT ALL ON range_parted, mintab TO regress_range_parted_user;
  907. </sql-statement>
  908. -stdin-:<main>: Error: Parse Sql
  909. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 248
  910. GRANT ALL ON range_parted, mintab TO regress_range_parted_user;
  911. ^
  912. <sql-statement>
  913. CREATE POLICY seeall ON range_parted AS PERMISSIVE FOR SELECT USING (true);
  914. </sql-statement>
  915. -stdin-:<main>: Error: Parse Sql
  916. -stdin-:<main>:1:42: Error: ERROR: unrecognized row security option "PERMISSIVE"
  917. CREATE POLICY seeall ON range_parted AS PERMISSIVE FOR SELECT USING (true);
  918. ^
  919. <sql-statement>
  920. CREATE POLICY policy_range_parted ON range_parted for UPDATE USING (true) WITH CHECK (c % 2 = 0);
  921. </sql-statement>
  922. -stdin-:<main>: Error: Parse Sql
  923. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 340
  924. CREATE POLICY policy_range_parted ON range_parted for UPDATE USING (true) WITH CHECK (c % 2 = 0);
  925. ^
  926. <sql-statement>
  927. :init_range_parted;
  928. </sql-statement>
  929. -stdin-:<main>: Error: Parse Sql
  930. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  931. :init_range_parted;
  932. ^
  933. <sql-statement>
  934. SET SESSION AUTHORIZATION regress_range_parted_user;
  935. </sql-statement>
  936. -stdin-:<main>: Error: Parse Sql
  937. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: session_authorization
  938. SET SESSION AUTHORIZATION regress_range_parted_user;
  939. ^
  940. <sql-statement>
  941. -- This should fail with RLS violation error while moving row from
  942. -- part_a_10_a_20 to part_d_1_15, because we are setting 'c' to an odd number.
  943. UPDATE range_parted set a = 'b', c = 151 WHERE a = 'a' and c = 200;
  944. </sql-statement>
  945. -stdin-:<main>: Fatal: Pre type annotation
  946. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  947. <sql-statement>
  948. RESET SESSION AUTHORIZATION;
  949. </sql-statement>
  950. -stdin-:<main>: Error: Parse Sql
  951. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported kind: 4
  952. RESET SESSION AUTHORIZATION;
  953. ^
  954. <sql-statement>
  955. -- Create a trigger on part_d_1_15
  956. CREATE FUNCTION func_d_1_15() RETURNS trigger AS $$
  957. BEGIN
  958. NEW.c = NEW.c + 1; -- Make even numbers odd, or vice versa
  959. return NEW;
  960. END $$ LANGUAGE plpgsql;
  961. </sql-statement>
  962. -stdin-:<main>: Error: Parse Sql
  963. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 261
  964. -- Create a trigger on part_d_1_15
  965. ^
  966. <sql-statement>
  967. CREATE TRIGGER trig_d_1_15 BEFORE INSERT ON part_d_1_15
  968. FOR EACH ROW EXECUTE PROCEDURE func_d_1_15();
  969. </sql-statement>
  970. -stdin-:<main>: Error: Parse Sql
  971. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  972. CREATE TRIGGER trig_d_1_15 BEFORE INSERT ON part_d_1_15
  973. ^
  974. <sql-statement>
  975. :init_range_parted;
  976. </sql-statement>
  977. -stdin-:<main>: Error: Parse Sql
  978. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  979. :init_range_parted;
  980. ^
  981. <sql-statement>
  982. SET SESSION AUTHORIZATION regress_range_parted_user;
  983. </sql-statement>
  984. -stdin-:<main>: Error: Parse Sql
  985. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: session_authorization
  986. SET SESSION AUTHORIZATION regress_range_parted_user;
  987. ^
  988. <sql-statement>
  989. -- Here, RLS checks should succeed while moving row from part_a_10_a_20 to
  990. -- part_d_1_15. Even though the UPDATE is setting 'c' to an odd number, the
  991. -- trigger at the destination partition again makes it an even number.
  992. UPDATE range_parted set a = 'b', c = 151 WHERE a = 'a' and c = 200;
  993. </sql-statement>
  994. -stdin-:<main>: Fatal: Pre type annotation
  995. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  996. <sql-statement>
  997. RESET SESSION AUTHORIZATION;
  998. </sql-statement>
  999. -stdin-:<main>: Error: Parse Sql
  1000. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported kind: 4
  1001. RESET SESSION AUTHORIZATION;
  1002. ^
  1003. <sql-statement>
  1004. :init_range_parted;
  1005. </sql-statement>
  1006. -stdin-:<main>: Error: Parse Sql
  1007. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  1008. :init_range_parted;
  1009. ^
  1010. <sql-statement>
  1011. SET SESSION AUTHORIZATION regress_range_parted_user;
  1012. </sql-statement>
  1013. -stdin-:<main>: Error: Parse Sql
  1014. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: session_authorization
  1015. SET SESSION AUTHORIZATION regress_range_parted_user;
  1016. ^
  1017. <sql-statement>
  1018. -- This should fail with RLS violation error. Even though the UPDATE is setting
  1019. -- 'c' to an even number, the trigger at the destination partition again makes
  1020. -- it an odd number.
  1021. UPDATE range_parted set a = 'b', c = 150 WHERE a = 'a' and c = 200;
  1022. </sql-statement>
  1023. -stdin-:<main>: Fatal: Pre type annotation
  1024. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1025. <sql-statement>
  1026. -- Cleanup
  1027. RESET SESSION AUTHORIZATION;
  1028. </sql-statement>
  1029. -stdin-:<main>: Error: Parse Sql
  1030. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported kind: 4
  1031. -- Cleanup
  1032. ^
  1033. <sql-statement>
  1034. DROP TRIGGER trig_d_1_15 ON part_d_1_15;
  1035. </sql-statement>
  1036. -stdin-:<main>: Error: Parse Sql
  1037. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1038. DROP TRIGGER trig_d_1_15 ON part_d_1_15;
  1039. ^
  1040. <sql-statement>
  1041. DROP FUNCTION func_d_1_15();
  1042. </sql-statement>
  1043. -stdin-:<main>: Error: Parse Sql
  1044. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 386
  1045. DROP FUNCTION func_d_1_15();
  1046. ^
  1047. <sql-statement>
  1048. -- Policy expression contains SubPlan
  1049. RESET SESSION AUTHORIZATION;
  1050. </sql-statement>
  1051. -stdin-:<main>: Error: Parse Sql
  1052. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported kind: 4
  1053. -- Policy expression contains SubPlan
  1054. ^
  1055. <sql-statement>
  1056. :init_range_parted;
  1057. </sql-statement>
  1058. -stdin-:<main>: Error: Parse Sql
  1059. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  1060. :init_range_parted;
  1061. ^
  1062. <sql-statement>
  1063. CREATE POLICY policy_range_parted_subplan on range_parted
  1064. AS RESTRICTIVE for UPDATE USING (true)
  1065. WITH CHECK ((SELECT range_parted.c <= c1 FROM mintab));
  1066. </sql-statement>
  1067. -stdin-:<main>: Error: Parse Sql
  1068. -stdin-:<main>:2:8: Error: ERROR: unrecognized row security option "RESTRICTIVE"
  1069. AS RESTRICTIVE for UPDATE USING (true)
  1070. ^
  1071. <sql-statement>
  1072. SET SESSION AUTHORIZATION regress_range_parted_user;
  1073. </sql-statement>
  1074. -stdin-:<main>: Error: Parse Sql
  1075. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: session_authorization
  1076. SET SESSION AUTHORIZATION regress_range_parted_user;
  1077. ^
  1078. <sql-statement>
  1079. -- fail, mintab has row with c1 = 120
  1080. UPDATE range_parted set a = 'b', c = 122 WHERE a = 'a' and c = 200;
  1081. </sql-statement>
  1082. -stdin-:<main>: Fatal: Pre type annotation
  1083. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1084. <sql-statement>
  1085. -- ok
  1086. UPDATE range_parted set a = 'b', c = 120 WHERE a = 'a' and c = 200;
  1087. </sql-statement>
  1088. -stdin-:<main>: Fatal: Pre type annotation
  1089. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1090. <sql-statement>
  1091. -- RLS policy expression contains whole row.
  1092. RESET SESSION AUTHORIZATION;
  1093. </sql-statement>
  1094. -stdin-:<main>: Error: Parse Sql
  1095. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported kind: 4
  1096. -- RLS policy expression contains whole row.
  1097. ^
  1098. <sql-statement>
  1099. :init_range_parted;
  1100. </sql-statement>
  1101. -stdin-:<main>: Error: Parse Sql
  1102. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  1103. :init_range_parted;
  1104. ^
  1105. <sql-statement>
  1106. CREATE POLICY policy_range_parted_wholerow on range_parted AS RESTRICTIVE for UPDATE USING (true)
  1107. WITH CHECK (range_parted = row('b', 10, 112, 1, NULL)::range_parted);
  1108. </sql-statement>
  1109. -stdin-:<main>: Error: Parse Sql
  1110. -stdin-:<main>:1:64: Error: ERROR: unrecognized row security option "RESTRICTIVE"
  1111. CREATE POLICY policy_range_parted_wholerow on range_parted AS RESTRICTIVE for UPDATE USING (true)
  1112. ^
  1113. <sql-statement>
  1114. SET SESSION AUTHORIZATION regress_range_parted_user;
  1115. </sql-statement>
  1116. -stdin-:<main>: Error: Parse Sql
  1117. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: session_authorization
  1118. SET SESSION AUTHORIZATION regress_range_parted_user;
  1119. ^
  1120. <sql-statement>
  1121. -- ok, should pass the RLS check
  1122. UPDATE range_parted set a = 'b', c = 112 WHERE a = 'a' and c = 200;
  1123. </sql-statement>
  1124. -stdin-:<main>: Fatal: Pre type annotation
  1125. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1126. <sql-statement>
  1127. RESET SESSION AUTHORIZATION;
  1128. </sql-statement>
  1129. -stdin-:<main>: Error: Parse Sql
  1130. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported kind: 4
  1131. RESET SESSION AUTHORIZATION;
  1132. ^
  1133. <sql-statement>
  1134. :init_range_parted;
  1135. </sql-statement>
  1136. -stdin-:<main>: Error: Parse Sql
  1137. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  1138. :init_range_parted;
  1139. ^
  1140. <sql-statement>
  1141. SET SESSION AUTHORIZATION regress_range_parted_user;
  1142. </sql-statement>
  1143. -stdin-:<main>: Error: Parse Sql
  1144. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: session_authorization
  1145. SET SESSION AUTHORIZATION regress_range_parted_user;
  1146. ^
  1147. <sql-statement>
  1148. -- fail, the whole row RLS check should fail
  1149. UPDATE range_parted set a = 'b', c = 116 WHERE a = 'a' and c = 200;
  1150. </sql-statement>
  1151. -stdin-:<main>: Fatal: Pre type annotation
  1152. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1153. <sql-statement>
  1154. -- Cleanup
  1155. RESET SESSION AUTHORIZATION;
  1156. </sql-statement>
  1157. -stdin-:<main>: Error: Parse Sql
  1158. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported kind: 4
  1159. -- Cleanup
  1160. ^
  1161. <sql-statement>
  1162. DROP POLICY policy_range_parted ON range_parted;
  1163. </sql-statement>
  1164. -stdin-:<main>: Error: Parse Sql
  1165. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1166. DROP POLICY policy_range_parted ON range_parted;
  1167. ^
  1168. <sql-statement>
  1169. DROP POLICY policy_range_parted_subplan ON range_parted;
  1170. </sql-statement>
  1171. -stdin-:<main>: Error: Parse Sql
  1172. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1173. DROP POLICY policy_range_parted_subplan ON range_parted;
  1174. ^
  1175. <sql-statement>
  1176. DROP POLICY policy_range_parted_wholerow ON range_parted;
  1177. </sql-statement>
  1178. -stdin-:<main>: Error: Parse Sql
  1179. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1180. DROP POLICY policy_range_parted_wholerow ON range_parted;
  1181. ^
  1182. <sql-statement>
  1183. REVOKE ALL ON range_parted, mintab FROM regress_range_parted_user;
  1184. </sql-statement>
  1185. -stdin-:<main>: Error: Parse Sql
  1186. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 248
  1187. REVOKE ALL ON range_parted, mintab FROM regress_range_parted_user;
  1188. ^
  1189. <sql-statement>
  1190. DROP USER regress_range_parted_user;
  1191. </sql-statement>
  1192. -stdin-:<main>: Error: Parse Sql
  1193. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 287
  1194. DROP USER regress_range_parted_user;
  1195. ^
  1196. <sql-statement>
  1197. DROP TABLE mintab;
  1198. </sql-statement>
  1199. <sql-statement>
  1200. -- statement triggers with update row movement
  1201. ---------------------------------------------------
  1202. :init_range_parted;
  1203. </sql-statement>
  1204. -stdin-:<main>: Error: Parse Sql
  1205. -stdin-:<main>:3:1: Error: ERROR: syntax error at or near ":"
  1206. :init_range_parted;
  1207. ^
  1208. <sql-statement>
  1209. CREATE FUNCTION trigfunc() returns trigger language plpgsql as
  1210. $$
  1211. begin
  1212. raise notice 'trigger = % fired on table % during %',
  1213. TG_NAME, TG_TABLE_NAME, TG_OP;
  1214. return null;
  1215. end;
  1216. $$;
  1217. </sql-statement>
  1218. -stdin-:<main>: Error: Parse Sql
  1219. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 261
  1220. CREATE FUNCTION trigfunc() returns trigger language plpgsql as
  1221. ^
  1222. <sql-statement>
  1223. -- Triggers on root partition
  1224. CREATE TRIGGER parent_delete_trig
  1225. AFTER DELETE ON range_parted for each statement execute procedure trigfunc();
  1226. </sql-statement>
  1227. -stdin-:<main>: Error: Parse Sql
  1228. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1229. -- Triggers on root partition
  1230. ^
  1231. <sql-statement>
  1232. CREATE TRIGGER parent_update_trig
  1233. AFTER UPDATE ON range_parted for each statement execute procedure trigfunc();
  1234. </sql-statement>
  1235. -stdin-:<main>: Error: Parse Sql
  1236. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1237. CREATE TRIGGER parent_update_trig
  1238. ^
  1239. <sql-statement>
  1240. CREATE TRIGGER parent_insert_trig
  1241. AFTER INSERT ON range_parted for each statement execute procedure trigfunc();
  1242. </sql-statement>
  1243. -stdin-:<main>: Error: Parse Sql
  1244. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1245. CREATE TRIGGER parent_insert_trig
  1246. ^
  1247. <sql-statement>
  1248. -- Triggers on leaf partition part_c_1_100
  1249. CREATE TRIGGER c1_delete_trig
  1250. AFTER DELETE ON part_c_1_100 for each statement execute procedure trigfunc();
  1251. </sql-statement>
  1252. -stdin-:<main>: Error: Parse Sql
  1253. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1254. -- Triggers on leaf partition part_c_1_100
  1255. ^
  1256. <sql-statement>
  1257. CREATE TRIGGER c1_update_trig
  1258. AFTER UPDATE ON part_c_1_100 for each statement execute procedure trigfunc();
  1259. </sql-statement>
  1260. -stdin-:<main>: Error: Parse Sql
  1261. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1262. CREATE TRIGGER c1_update_trig
  1263. ^
  1264. <sql-statement>
  1265. CREATE TRIGGER c1_insert_trig
  1266. AFTER INSERT ON part_c_1_100 for each statement execute procedure trigfunc();
  1267. </sql-statement>
  1268. -stdin-:<main>: Error: Parse Sql
  1269. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1270. CREATE TRIGGER c1_insert_trig
  1271. ^
  1272. <sql-statement>
  1273. -- Triggers on leaf partition part_d_1_15
  1274. CREATE TRIGGER d1_delete_trig
  1275. AFTER DELETE ON part_d_1_15 for each statement execute procedure trigfunc();
  1276. </sql-statement>
  1277. -stdin-:<main>: Error: Parse Sql
  1278. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1279. -- Triggers on leaf partition part_d_1_15
  1280. ^
  1281. <sql-statement>
  1282. CREATE TRIGGER d1_update_trig
  1283. AFTER UPDATE ON part_d_1_15 for each statement execute procedure trigfunc();
  1284. </sql-statement>
  1285. -stdin-:<main>: Error: Parse Sql
  1286. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1287. CREATE TRIGGER d1_update_trig
  1288. ^
  1289. <sql-statement>
  1290. CREATE TRIGGER d1_insert_trig
  1291. AFTER INSERT ON part_d_1_15 for each statement execute procedure trigfunc();
  1292. </sql-statement>
  1293. -stdin-:<main>: Error: Parse Sql
  1294. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1295. CREATE TRIGGER d1_insert_trig
  1296. ^
  1297. <sql-statement>
  1298. -- Triggers on leaf partition part_d_15_20
  1299. CREATE TRIGGER d15_delete_trig
  1300. AFTER DELETE ON part_d_15_20 for each statement execute procedure trigfunc();
  1301. </sql-statement>
  1302. -stdin-:<main>: Error: Parse Sql
  1303. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1304. -- Triggers on leaf partition part_d_15_20
  1305. ^
  1306. <sql-statement>
  1307. CREATE TRIGGER d15_update_trig
  1308. AFTER UPDATE ON part_d_15_20 for each statement execute procedure trigfunc();
  1309. </sql-statement>
  1310. -stdin-:<main>: Error: Parse Sql
  1311. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1312. CREATE TRIGGER d15_update_trig
  1313. ^
  1314. <sql-statement>
  1315. CREATE TRIGGER d15_insert_trig
  1316. AFTER INSERT ON part_d_15_20 for each statement execute procedure trigfunc();
  1317. </sql-statement>
  1318. -stdin-:<main>: Error: Parse Sql
  1319. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1320. CREATE TRIGGER d15_insert_trig
  1321. ^
  1322. <sql-statement>
  1323. -- Move all rows from part_c_100_200 to part_c_1_100. None of the delete or
  1324. -- insert statement triggers should be fired.
  1325. UPDATE range_parted set c = c - 50 WHERE c > 97;
  1326. </sql-statement>
  1327. -stdin-:<main>: Fatal: Pre type annotation
  1328. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1329. <sql-statement>
  1330. :show_data;
  1331. </sql-statement>
  1332. -stdin-:<main>: Error: Parse Sql
  1333. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  1334. :show_data;
  1335. ^
  1336. <sql-statement>
  1337. DROP TRIGGER parent_delete_trig ON range_parted;
  1338. </sql-statement>
  1339. -stdin-:<main>: Error: Parse Sql
  1340. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1341. DROP TRIGGER parent_delete_trig ON range_parted;
  1342. ^
  1343. <sql-statement>
  1344. DROP TRIGGER parent_update_trig ON range_parted;
  1345. </sql-statement>
  1346. -stdin-:<main>: Error: Parse Sql
  1347. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1348. DROP TRIGGER parent_update_trig ON range_parted;
  1349. ^
  1350. <sql-statement>
  1351. DROP TRIGGER parent_insert_trig ON range_parted;
  1352. </sql-statement>
  1353. -stdin-:<main>: Error: Parse Sql
  1354. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1355. DROP TRIGGER parent_insert_trig ON range_parted;
  1356. ^
  1357. <sql-statement>
  1358. DROP TRIGGER c1_delete_trig ON part_c_1_100;
  1359. </sql-statement>
  1360. -stdin-:<main>: Error: Parse Sql
  1361. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1362. DROP TRIGGER c1_delete_trig ON part_c_1_100;
  1363. ^
  1364. <sql-statement>
  1365. DROP TRIGGER c1_update_trig ON part_c_1_100;
  1366. </sql-statement>
  1367. -stdin-:<main>: Error: Parse Sql
  1368. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1369. DROP TRIGGER c1_update_trig ON part_c_1_100;
  1370. ^
  1371. <sql-statement>
  1372. DROP TRIGGER c1_insert_trig ON part_c_1_100;
  1373. </sql-statement>
  1374. -stdin-:<main>: Error: Parse Sql
  1375. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1376. DROP TRIGGER c1_insert_trig ON part_c_1_100;
  1377. ^
  1378. <sql-statement>
  1379. DROP TRIGGER d1_delete_trig ON part_d_1_15;
  1380. </sql-statement>
  1381. -stdin-:<main>: Error: Parse Sql
  1382. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1383. DROP TRIGGER d1_delete_trig ON part_d_1_15;
  1384. ^
  1385. <sql-statement>
  1386. DROP TRIGGER d1_update_trig ON part_d_1_15;
  1387. </sql-statement>
  1388. -stdin-:<main>: Error: Parse Sql
  1389. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1390. DROP TRIGGER d1_update_trig ON part_d_1_15;
  1391. ^
  1392. <sql-statement>
  1393. DROP TRIGGER d1_insert_trig ON part_d_1_15;
  1394. </sql-statement>
  1395. -stdin-:<main>: Error: Parse Sql
  1396. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1397. DROP TRIGGER d1_insert_trig ON part_d_1_15;
  1398. ^
  1399. <sql-statement>
  1400. DROP TRIGGER d15_delete_trig ON part_d_15_20;
  1401. </sql-statement>
  1402. -stdin-:<main>: Error: Parse Sql
  1403. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1404. DROP TRIGGER d15_delete_trig ON part_d_15_20;
  1405. ^
  1406. <sql-statement>
  1407. DROP TRIGGER d15_update_trig ON part_d_15_20;
  1408. </sql-statement>
  1409. -stdin-:<main>: Error: Parse Sql
  1410. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1411. DROP TRIGGER d15_update_trig ON part_d_15_20;
  1412. ^
  1413. <sql-statement>
  1414. DROP TRIGGER d15_insert_trig ON part_d_15_20;
  1415. </sql-statement>
  1416. -stdin-:<main>: Error: Parse Sql
  1417. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1418. DROP TRIGGER d15_insert_trig ON part_d_15_20;
  1419. ^
  1420. <sql-statement>
  1421. -- Creating default partition for range
  1422. :init_range_parted;
  1423. </sql-statement>
  1424. -stdin-:<main>: Error: Parse Sql
  1425. -stdin-:<main>:2:1: Error: ERROR: syntax error at or near ":"
  1426. :init_range_parted;
  1427. ^
  1428. <sql-statement>
  1429. create table part_def partition of range_parted default;
  1430. </sql-statement>
  1431. -stdin-:<main>: Error: Parse Sql
  1432. -stdin-:<main>:1:1: Error: table inheritance not supported
  1433. create table part_def partition of range_parted default;
  1434. ^
  1435. <sql-statement>
  1436. \d+ part_def
  1437. </sql-statement>
  1438. Metacommand \d+ part_def is not supported
  1439. <sql-statement>
  1440. insert into range_parted values ('c', 9);
  1441. </sql-statement>
  1442. -stdin-:<main>: Fatal: Table metadata loading
  1443. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.range_parted
  1444. <sql-statement>
  1445. -- ok
  1446. update part_def set a = 'd' where a = 'c';
  1447. </sql-statement>
  1448. -stdin-:<main>: Fatal: Pre type annotation
  1449. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1450. <sql-statement>
  1451. -- fail
  1452. update part_def set a = 'a' where a = 'd';
  1453. </sql-statement>
  1454. -stdin-:<main>: Fatal: Pre type annotation
  1455. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1456. <sql-statement>
  1457. :show_data;
  1458. </sql-statement>
  1459. -stdin-:<main>: Error: Parse Sql
  1460. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  1461. :show_data;
  1462. ^
  1463. <sql-statement>
  1464. -- Update row movement from non-default to default partition.
  1465. -- fail, default partition is not under part_a_10_a_20;
  1466. UPDATE part_a_10_a_20 set a = 'ad' WHERE a = 'a';
  1467. </sql-statement>
  1468. -stdin-:<main>: Fatal: Pre type annotation
  1469. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1470. <sql-statement>
  1471. -- ok
  1472. UPDATE range_parted set a = 'ad' WHERE a = 'a';
  1473. </sql-statement>
  1474. -stdin-:<main>: Fatal: Pre type annotation
  1475. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1476. <sql-statement>
  1477. UPDATE range_parted set a = 'bd' WHERE a = 'b';
  1478. </sql-statement>
  1479. -stdin-:<main>: Fatal: Pre type annotation
  1480. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1481. <sql-statement>
  1482. :show_data;
  1483. </sql-statement>
  1484. -stdin-:<main>: Error: Parse Sql
  1485. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  1486. :show_data;
  1487. ^
  1488. <sql-statement>
  1489. -- Update row movement from default to non-default partitions.
  1490. -- ok
  1491. UPDATE range_parted set a = 'a' WHERE a = 'ad';
  1492. </sql-statement>
  1493. -stdin-:<main>: Fatal: Pre type annotation
  1494. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1495. <sql-statement>
  1496. UPDATE range_parted set a = 'b' WHERE a = 'bd';
  1497. </sql-statement>
  1498. -stdin-:<main>: Fatal: Pre type annotation
  1499. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1500. <sql-statement>
  1501. :show_data;
  1502. </sql-statement>
  1503. -stdin-:<main>: Error: Parse Sql
  1504. -stdin-:<main>:1:2: Error: ERROR: syntax error at or near ":"
  1505. :show_data;
  1506. ^
  1507. <sql-statement>
  1508. -- Cleanup: range_parted no longer needed.
  1509. DROP TABLE range_parted;
  1510. </sql-statement>
  1511. <sql-statement>
  1512. CREATE TABLE list_parted (
  1513. a text,
  1514. b int
  1515. ) PARTITION BY list (a);
  1516. </sql-statement>
  1517. -stdin-:<main>: Error: Parse Sql
  1518. -stdin-:<main>:1:1: Error: PARTITION BY clause not supported
  1519. CREATE TABLE list_parted (
  1520. ^
  1521. <sql-statement>
  1522. CREATE TABLE list_part1 PARTITION OF list_parted for VALUES in ('a', 'b');
  1523. </sql-statement>
  1524. -stdin-:<main>: Error: Parse Sql
  1525. -stdin-:<main>:1:1: Error: table inheritance not supported
  1526. CREATE TABLE list_part1 PARTITION OF list_parted for VALUES in ('a', 'b');
  1527. ^
  1528. <sql-statement>
  1529. CREATE TABLE list_default PARTITION OF list_parted default;
  1530. </sql-statement>
  1531. -stdin-:<main>: Error: Parse Sql
  1532. -stdin-:<main>:1:1: Error: table inheritance not supported
  1533. CREATE TABLE list_default PARTITION OF list_parted default;
  1534. ^
  1535. <sql-statement>
  1536. INSERT into list_part1 VALUES ('a', 1);
  1537. </sql-statement>
  1538. -stdin-:<main>: Fatal: Table metadata loading
  1539. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.list_part1
  1540. <sql-statement>
  1541. INSERT into list_default VALUES ('d', 10);
  1542. </sql-statement>
  1543. -stdin-:<main>: Fatal: Table metadata loading
  1544. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.list_default
  1545. <sql-statement>
  1546. -- fail
  1547. UPDATE list_default set a = 'a' WHERE a = 'd';
  1548. </sql-statement>
  1549. -stdin-:<main>: Fatal: Pre type annotation
  1550. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1551. <sql-statement>
  1552. -- ok
  1553. UPDATE list_default set a = 'x' WHERE a = 'd';
  1554. </sql-statement>
  1555. -stdin-:<main>: Fatal: Pre type annotation
  1556. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1557. <sql-statement>
  1558. DROP TABLE list_parted;
  1559. </sql-statement>
  1560. <sql-statement>
  1561. -- Test retrieval of system columns with non-consistent partition row types.
  1562. -- This is only partially supported, as seen in the results.
  1563. create table utrtest (a int, b text) partition by list (a);
  1564. </sql-statement>
  1565. -stdin-:<main>: Error: Parse Sql
  1566. -stdin-:<main>:1:1: Error: PARTITION BY clause not supported
  1567. -- Test retrieval of system columns with non-consistent partition row types.
  1568. ^
  1569. <sql-statement>
  1570. create table utr1 (a int check (a in (1)), q text, b text);
  1571. </sql-statement>
  1572. -stdin-:<main>: Error: Parse Sql
  1573. -stdin-:<main>:1:1: Error: column constraint not supported
  1574. create table utr1 (a int check (a in (1)), q text, b text);
  1575. ^
  1576. <sql-statement>
  1577. create table utr2 (a int check (a in (2)), b text);
  1578. </sql-statement>
  1579. -stdin-:<main>: Error: Parse Sql
  1580. -stdin-:<main>:1:1: Error: column constraint not supported
  1581. create table utr2 (a int check (a in (2)), b text);
  1582. ^
  1583. <sql-statement>
  1584. alter table utr1 drop column q;
  1585. </sql-statement>
  1586. -stdin-:<main>: Error: Parse Sql
  1587. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  1588. alter table utr1 drop column q;
  1589. ^
  1590. <sql-statement>
  1591. alter table utrtest attach partition utr1 for values in (1);
  1592. </sql-statement>
  1593. -stdin-:<main>: Error: Parse Sql
  1594. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  1595. alter table utrtest attach partition utr1 for values in (1);
  1596. ^
  1597. <sql-statement>
  1598. alter table utrtest attach partition utr2 for values in (2);
  1599. </sql-statement>
  1600. -stdin-:<main>: Error: Parse Sql
  1601. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  1602. alter table utrtest attach partition utr2 for values in (2);
  1603. ^
  1604. <sql-statement>
  1605. insert into utrtest values (1, 'foo')
  1606. returning *, tableoid::regclass, xmin = pg_current_xact_id()::xid as xmin_ok;
  1607. </sql-statement>
  1608. -stdin-:<main>: Error: Parse Sql
  1609. -stdin-:<main>:1:1: Error: ResTarget: alternative is not implemented yet : 364
  1610. insert into utrtest values (1, 'foo')
  1611. ^
  1612. <sql-statement>
  1613. insert into utrtest values (2, 'bar')
  1614. returning *, tableoid::regclass, xmin = pg_current_xact_id()::xid as xmin_ok; -- fails
  1615. </sql-statement>
  1616. -stdin-:<main>: Error: Parse Sql
  1617. -stdin-:<main>:1:1: Error: ResTarget: alternative is not implemented yet : 364
  1618. insert into utrtest values (2, 'bar')
  1619. ^
  1620. <sql-statement>
  1621. insert into utrtest values (2, 'bar')
  1622. returning *, tableoid::regclass;
  1623. </sql-statement>
  1624. -stdin-:<main>: Error: Parse Sql
  1625. -stdin-:<main>:1:1: Error: ResTarget: alternative is not implemented yet : 364
  1626. insert into utrtest values (2, 'bar')
  1627. ^
  1628. <sql-statement>
  1629. update utrtest set b = b || b from (values (1), (2)) s(x) where a = s.x
  1630. returning *, tableoid::regclass, xmin = pg_current_xact_id()::xid as xmin_ok;
  1631. </sql-statement>
  1632. -stdin-:<main>: Error: Parse Sql
  1633. -stdin-:<main>:1:1: Error: ResTarget: alternative is not implemented yet : 364
  1634. update utrtest set b = b || b from (values (1), (2)) s(x) where a = s.x
  1635. ^
  1636. <sql-statement>
  1637. update utrtest set a = 3 - a from (values (1), (2)) s(x) where a = s.x
  1638. returning *, tableoid::regclass, xmin = pg_current_xact_id()::xid as xmin_ok; -- fails
  1639. </sql-statement>
  1640. -stdin-:<main>: Error: Parse Sql
  1641. -stdin-:<main>:1:1: Error: ResTarget: alternative is not implemented yet : 364
  1642. update utrtest set a = 3 - a from (values (1), (2)) s(x) where a = s.x
  1643. ^
  1644. <sql-statement>
  1645. update utrtest set a = 3 - a from (values (1), (2)) s(x) where a = s.x
  1646. returning *, tableoid::regclass;
  1647. </sql-statement>
  1648. -stdin-:<main>: Error: Parse Sql
  1649. -stdin-:<main>:1:1: Error: ResTarget: alternative is not implemented yet : 364
  1650. update utrtest set a = 3 - a from (values (1), (2)) s(x) where a = s.x
  1651. ^
  1652. <sql-statement>
  1653. delete from utrtest
  1654. returning *, tableoid::regclass, xmax = pg_current_xact_id()::xid as xmax_ok;
  1655. </sql-statement>
  1656. -stdin-:<main>: Error: Parse Sql
  1657. -stdin-:<main>:1:1: Error: ResTarget: alternative is not implemented yet : 364
  1658. delete from utrtest
  1659. ^
  1660. <sql-statement>
  1661. drop table utrtest;
  1662. </sql-statement>
  1663. <sql-statement>
  1664. --------------
  1665. -- Some more update-partition-key test scenarios below. This time use list
  1666. -- partitions.
  1667. --------------
  1668. -- Setup for list partitions
  1669. CREATE TABLE list_parted (a numeric, b int, c int8) PARTITION BY list (a);
  1670. </sql-statement>
  1671. -stdin-:<main>: Error: Parse Sql
  1672. -stdin-:<main>:1:1: Error: PARTITION BY clause not supported
  1673. --------------
  1674. ^
  1675. <sql-statement>
  1676. CREATE TABLE sub_parted PARTITION OF list_parted for VALUES in (1) PARTITION BY list (b);
  1677. </sql-statement>
  1678. -stdin-:<main>: Error: Parse Sql
  1679. -stdin-:<main>:1:1: Error: table inheritance not supported
  1680. CREATE TABLE sub_parted PARTITION OF list_parted for VALUES in (1) PARTITION BY list (b);
  1681. ^
  1682. <sql-statement>
  1683. CREATE TABLE sub_part1(b int, c int8, a numeric);
  1684. </sql-statement>
  1685. <sql-statement>
  1686. ALTER TABLE sub_parted ATTACH PARTITION sub_part1 for VALUES in (1);
  1687. </sql-statement>
  1688. -stdin-:<main>: Error: Parse Sql
  1689. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  1690. ALTER TABLE sub_parted ATTACH PARTITION sub_part1 for VALUES in (1);
  1691. ^
  1692. <sql-statement>
  1693. CREATE TABLE sub_part2(b int, c int8, a numeric);
  1694. </sql-statement>
  1695. <sql-statement>
  1696. ALTER TABLE sub_parted ATTACH PARTITION sub_part2 for VALUES in (2);
  1697. </sql-statement>
  1698. -stdin-:<main>: Error: Parse Sql
  1699. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  1700. ALTER TABLE sub_parted ATTACH PARTITION sub_part2 for VALUES in (2);
  1701. ^
  1702. <sql-statement>
  1703. CREATE TABLE list_part1(a numeric, b int, c int8);
  1704. </sql-statement>
  1705. <sql-statement>
  1706. ALTER TABLE list_parted ATTACH PARTITION list_part1 for VALUES in (2,3);
  1707. </sql-statement>
  1708. -stdin-:<main>: Error: Parse Sql
  1709. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 245
  1710. ALTER TABLE list_parted ATTACH PARTITION list_part1 for VALUES in (2,3);
  1711. ^
  1712. <sql-statement>
  1713. INSERT into list_parted VALUES (2,5,50);
  1714. </sql-statement>
  1715. -stdin-:<main>: Fatal: Table metadata loading
  1716. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.list_parted
  1717. <sql-statement>
  1718. INSERT into list_parted VALUES (3,6,60);
  1719. </sql-statement>
  1720. -stdin-:<main>: Fatal: Table metadata loading
  1721. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.list_parted
  1722. <sql-statement>
  1723. INSERT into sub_parted VALUES (1,1,60);
  1724. </sql-statement>
  1725. -stdin-:<main>: Fatal: Table metadata loading
  1726. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.sub_parted
  1727. <sql-statement>
  1728. INSERT into sub_parted VALUES (1,2,10);
  1729. </sql-statement>
  1730. -stdin-:<main>: Fatal: Table metadata loading
  1731. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.sub_parted
  1732. <sql-statement>
  1733. -- Test partition constraint violation when intermediate ancestor is used and
  1734. -- constraint is inherited from upper root.
  1735. UPDATE sub_parted set a = 2 WHERE c = 10;
  1736. </sql-statement>
  1737. -stdin-:<main>: Fatal: Pre type annotation
  1738. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1739. <sql-statement>
  1740. -- Test update-partition-key, where the unpruned partitions do not have their
  1741. -- partition keys updated.
  1742. SELECT tableoid::regclass::text, * FROM list_parted WHERE a = 2 ORDER BY 1;
  1743. </sql-statement>
  1744. -stdin-:<main>: Fatal: Table metadata loading
  1745. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.list_parted
  1746. <sql-statement>
  1747. UPDATE list_parted set b = c + a WHERE a = 2;
  1748. </sql-statement>
  1749. -stdin-:<main>: Fatal: Pre type annotation
  1750. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1751. <sql-statement>
  1752. SELECT tableoid::regclass::text, * FROM list_parted WHERE a = 2 ORDER BY 1;
  1753. </sql-statement>
  1754. -stdin-:<main>: Fatal: Table metadata loading
  1755. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.list_parted
  1756. <sql-statement>
  1757. -- Test the case where BR UPDATE triggers change the partition key.
  1758. CREATE FUNCTION func_parted_mod_b() returns trigger as $$
  1759. BEGIN
  1760. NEW.b = 2; -- This is changing partition key column.
  1761. return NEW;
  1762. END $$ LANGUAGE plpgsql;
  1763. </sql-statement>
  1764. -stdin-:<main>: Error: Parse Sql
  1765. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 261
  1766. -- Test the case where BR UPDATE triggers change the partition key.
  1767. ^
  1768. <sql-statement>
  1769. CREATE TRIGGER parted_mod_b before update on sub_part1
  1770. for each row execute procedure func_parted_mod_b();
  1771. </sql-statement>
  1772. -stdin-:<main>: Error: Parse Sql
  1773. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1774. CREATE TRIGGER parted_mod_b before update on sub_part1
  1775. ^
  1776. <sql-statement>
  1777. SELECT tableoid::regclass::text, * FROM list_parted ORDER BY 1, 2, 3, 4;
  1778. </sql-statement>
  1779. -stdin-:<main>: Fatal: Table metadata loading
  1780. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.list_parted
  1781. <sql-statement>
  1782. -- This should do the tuple routing even though there is no explicit
  1783. -- partition-key update, because there is a trigger on sub_part1.
  1784. UPDATE list_parted set c = 70 WHERE b = 1;
  1785. </sql-statement>
  1786. -stdin-:<main>: Fatal: Pre type annotation
  1787. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1788. <sql-statement>
  1789. SELECT tableoid::regclass::text, * FROM list_parted ORDER BY 1, 2, 3, 4;
  1790. </sql-statement>
  1791. -stdin-:<main>: Fatal: Table metadata loading
  1792. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.list_parted
  1793. <sql-statement>
  1794. DROP TRIGGER parted_mod_b ON sub_part1;
  1795. </sql-statement>
  1796. -stdin-:<main>: Error: Parse Sql
  1797. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1798. DROP TRIGGER parted_mod_b ON sub_part1;
  1799. ^
  1800. <sql-statement>
  1801. -- If BR DELETE trigger prevented DELETE from happening, we should also skip
  1802. -- the INSERT if that delete is part of UPDATE=>DELETE+INSERT.
  1803. CREATE OR REPLACE FUNCTION func_parted_mod_b() returns trigger as $$
  1804. BEGIN
  1805. raise notice 'Trigger: Got OLD row %, but returning NULL', OLD;
  1806. return NULL;
  1807. END $$ LANGUAGE plpgsql;
  1808. </sql-statement>
  1809. -stdin-:<main>: Error: Parse Sql
  1810. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 261
  1811. -- If BR DELETE trigger prevented DELETE from happening, we should also skip
  1812. ^
  1813. <sql-statement>
  1814. CREATE TRIGGER trig_skip_delete before delete on sub_part2
  1815. for each row execute procedure func_parted_mod_b();
  1816. </sql-statement>
  1817. -stdin-:<main>: Error: Parse Sql
  1818. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 283
  1819. CREATE TRIGGER trig_skip_delete before delete on sub_part2
  1820. ^
  1821. <sql-statement>
  1822. UPDATE list_parted set b = 1 WHERE c = 70;
  1823. </sql-statement>
  1824. -stdin-:<main>: Fatal: Pre type annotation
  1825. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1826. <sql-statement>
  1827. SELECT tableoid::regclass::text, * FROM list_parted ORDER BY 1, 2, 3, 4;
  1828. </sql-statement>
  1829. -stdin-:<main>: Fatal: Table metadata loading
  1830. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.list_parted
  1831. <sql-statement>
  1832. -- Drop the trigger. Now the row should be moved.
  1833. DROP TRIGGER trig_skip_delete ON sub_part2;
  1834. </sql-statement>
  1835. -stdin-:<main>: Error: Parse Sql
  1836. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1837. -- Drop the trigger. Now the row should be moved.
  1838. ^
  1839. <sql-statement>
  1840. UPDATE list_parted set b = 1 WHERE c = 70;
  1841. </sql-statement>
  1842. -stdin-:<main>: Fatal: Pre type annotation
  1843. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1844. <sql-statement>
  1845. SELECT tableoid::regclass::text, * FROM list_parted ORDER BY 1, 2, 3, 4;
  1846. </sql-statement>
  1847. -stdin-:<main>: Fatal: Table metadata loading
  1848. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.list_parted
  1849. <sql-statement>
  1850. DROP FUNCTION func_parted_mod_b();
  1851. </sql-statement>
  1852. -stdin-:<main>: Error: Parse Sql
  1853. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 386
  1854. DROP FUNCTION func_parted_mod_b();
  1855. ^
  1856. <sql-statement>
  1857. -- UPDATE partition-key with FROM clause. If join produces multiple output
  1858. -- rows for the same row to be modified, we should tuple-route the row only
  1859. -- once. There should not be any rows inserted.
  1860. CREATE TABLE non_parted (id int);
  1861. </sql-statement>
  1862. <sql-statement>
  1863. INSERT into non_parted VALUES (1), (1), (1), (2), (2), (2), (3), (3), (3);
  1864. </sql-statement>
  1865. <sql-statement>
  1866. UPDATE list_parted t1 set a = 2 FROM non_parted t2 WHERE t1.a = t2.id and a = 1;
  1867. </sql-statement>
  1868. -stdin-:<main>: Error: Parse Sql
  1869. -stdin-:<main>:1:1: Error: alias is not supported
  1870. UPDATE list_parted t1 set a = 2 FROM non_parted t2 WHERE t1.a = t2.id and a = 1;
  1871. ^
  1872. <sql-statement>
  1873. SELECT tableoid::regclass::text, * FROM list_parted ORDER BY 1, 2, 3, 4;
  1874. </sql-statement>
  1875. -stdin-:<main>: Fatal: Table metadata loading
  1876. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.list_parted
  1877. <sql-statement>
  1878. DROP TABLE non_parted;
  1879. </sql-statement>
  1880. <sql-statement>
  1881. -- Cleanup: list_parted no longer needed.
  1882. DROP TABLE list_parted;
  1883. </sql-statement>
  1884. <sql-statement>
  1885. -- create custom operator class and hash function, for the same reason
  1886. -- explained in alter_table.sql
  1887. create or replace function dummy_hashint4(a int4, seed int8) returns int8 as
  1888. $$ begin return (a + seed); end; $$ language 'plpgsql' immutable;
  1889. </sql-statement>
  1890. -stdin-:<main>: Error: Parse Sql
  1891. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 261
  1892. -- create custom operator class and hash function, for the same reason
  1893. ^
  1894. <sql-statement>
  1895. create operator class custom_opclass for type int4 using hash as
  1896. operator 1 = , function 2 dummy_hashint4(int4, int8);
  1897. </sql-statement>
  1898. -stdin-:<main>: Error: Parse Sql
  1899. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 298
  1900. create operator class custom_opclass for type int4 using hash as
  1901. ^
  1902. <sql-statement>
  1903. create table hash_parted (
  1904. a int,
  1905. b int
  1906. ) partition by hash (a custom_opclass, b custom_opclass);
  1907. </sql-statement>
  1908. -stdin-:<main>: Error: Parse Sql
  1909. -stdin-:<main>:1:1: Error: PARTITION BY clause not supported
  1910. create table hash_parted (
  1911. ^
  1912. <sql-statement>
  1913. create table hpart1 partition of hash_parted for values with (modulus 2, remainder 1);
  1914. </sql-statement>
  1915. -stdin-:<main>: Error: Parse Sql
  1916. -stdin-:<main>:1:1: Error: table inheritance not supported
  1917. create table hpart1 partition of hash_parted for values with (modulus 2, remainder 1);
  1918. ^
  1919. <sql-statement>
  1920. create table hpart2 partition of hash_parted for values with (modulus 4, remainder 2);
  1921. </sql-statement>
  1922. -stdin-:<main>: Error: Parse Sql
  1923. -stdin-:<main>:1:1: Error: table inheritance not supported
  1924. create table hpart2 partition of hash_parted for values with (modulus 4, remainder 2);
  1925. ^
  1926. <sql-statement>
  1927. create table hpart3 partition of hash_parted for values with (modulus 8, remainder 0);
  1928. </sql-statement>
  1929. -stdin-:<main>: Error: Parse Sql
  1930. -stdin-:<main>:1:1: Error: table inheritance not supported
  1931. create table hpart3 partition of hash_parted for values with (modulus 8, remainder 0);
  1932. ^
  1933. <sql-statement>
  1934. create table hpart4 partition of hash_parted for values with (modulus 8, remainder 4);
  1935. </sql-statement>
  1936. -stdin-:<main>: Error: Parse Sql
  1937. -stdin-:<main>:1:1: Error: table inheritance not supported
  1938. create table hpart4 partition of hash_parted for values with (modulus 8, remainder 4);
  1939. ^
  1940. <sql-statement>
  1941. insert into hpart1 values (1, 1);
  1942. </sql-statement>
  1943. -stdin-:<main>: Fatal: Table metadata loading
  1944. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.hpart1
  1945. <sql-statement>
  1946. insert into hpart2 values (2, 5);
  1947. </sql-statement>
  1948. -stdin-:<main>: Fatal: Table metadata loading
  1949. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.hpart2
  1950. <sql-statement>
  1951. insert into hpart4 values (3, 4);
  1952. </sql-statement>
  1953. -stdin-:<main>: Fatal: Table metadata loading
  1954. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.hpart4
  1955. <sql-statement>
  1956. -- fail
  1957. update hpart1 set a = 3, b=4 where a = 1;
  1958. </sql-statement>
  1959. -stdin-:<main>: Fatal: Pre type annotation
  1960. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1961. <sql-statement>
  1962. -- ok, row movement
  1963. update hash_parted set b = b - 1 where b = 1;
  1964. </sql-statement>
  1965. -stdin-:<main>: Fatal: Pre type annotation
  1966. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1967. <sql-statement>
  1968. -- ok
  1969. update hash_parted set b = b + 8 where b = 1;
  1970. </sql-statement>
  1971. -stdin-:<main>: Fatal: Pre type annotation
  1972. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  1973. <sql-statement>
  1974. -- cleanup
  1975. drop table hash_parted;
  1976. </sql-statement>
  1977. <sql-statement>
  1978. drop operator class custom_opclass using hash;
  1979. </sql-statement>
  1980. -stdin-:<main>: Error: Parse Sql
  1981. -stdin-:<main>:1:1: Error: Not supported object type for DROP
  1982. drop operator class custom_opclass using hash;
  1983. ^
  1984. <sql-statement>
  1985. drop function dummy_hashint4(a int4, seed int8);
  1986. </sql-statement>
  1987. -stdin-:<main>: Error: Parse Sql
  1988. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 386
  1989. drop function dummy_hashint4(a int4, seed int8);
  1990. ^