# LogicTest: local !metamorphic-batch-sizes
# We must turn off metamorphic variables because some are included in
# EXPLAIN (OPT, ENV) output.

statement ok
CREATE TABLE x (
  a INT PRIMARY KEY,
  b INT,
  INDEX (b),
  FAMILY "primary" (a, b)
)

statement ok
ALTER TABLE x INJECT STATISTICS '[
  {
    "id": 1,
    "columns": ["a"],
    "created_at": "2018-01-01 1:00:00.00000+00:00",
    "row_count": 123123,
    "distinct_count": 100,
    "histo_col_type": ""
  },
  {
    "id": 2,
    "columns": ["b"],
    "created_at": "2018-01-01 1:00:00.00000+00:00",
    "row_count": 123123,
    "distinct_count": 123123,
    "histo_col_type": ""
  }
]'

statement ok
CREATE TABLE y (
  u INT PRIMARY KEY,
  v INT REFERENCES x,
  INDEX (v),
  FAMILY "primary" (u, v)
)

query T
EXPLAIN (OPT, ENV) SELECT * FROM x WHERE b = 3
----
https://cockroachdb.github.io/text/decode.html#eJy0U9GOm0YUfd75iitebFcGg61IEdZKJWQ2pXXwCkiaaLUaDcPQjIKZDTO4uFWlfIR_pT_QT9kvqQZvbFclidI0PCDN5dxz7j2csW14yRslZO1DKNnbRlL25ukT4B1neSuqgjegudKwPaAQsm1IcQYF1TSnisMljAxgtER9WSit3lVwCbIslwC2DQUvaVtp2NKq5T7QVsseKuqCd6ThTG42vC6oFrJWhNc0r3jxCQIzhOkPVy_SDCdmmiyKn4F6VzmsKXIias2bmlaONlSkkb8SpakWSgumHKqILIkWm3502_vrTzUa1LE9V31U6AGrnNPCI1mWw0zHlYeYzGjKMZAN1YIRJquKM2OGc_JiVNJK8WF23bT8v7BvRG18OTikjMijYYFHrvsZ_lI2nFGl1f83stopzTek_4WKmAUO9S8QQGGCgwxDFjxZ4T7Fzl2bV4I5HYzRBYUozh5DvM4gfrFaTdFF_lA5nMJ1nGZJEMUZdOTuLd_BdRI9D5LX8BN-DWMKQRpOpugiip_iV9CRnIiig3He19FkiVCwMrsNyUfxjzjMIM2CLEqzKExhdIMAAH7v3-ax6PYXosRv3PLBnZ7KTFbtplaWDzfH4gFvHc-35_iGU80LQrXlgzV3vce269muB67nu67vutYZ2KRZ1EwTJtvaNHjuufYbobQ0GSJ6d2cGs86bRWEazgp1W1VHpnMecyWPCvOFN1_03_6Yfq0H-TfxoJ_wy2yYf40N6Ha0_ER6dya97b_Su_1YencD6W0_pPcfuC0pDfJqneDoWXxAbieQ4Cuc4DjEKXxI8Jieom_6-uhvPx_93WD0-33xq-tVEMUwXl9nU8DxywmkeGWw38FVsn4OHfz8A04w5HAJiyWybdtGitEauu8fbh-C-_3-fv_-fv8emKyVbqiotQ-z-czz4Wa2ABtmi1v0dwAAAP__GYf9hw==


statement error pq: at or near "EOF": syntax error: the ENV flag can only be used with OPT
EXPLAIN (ENV) SELECT * FROM x WHERE b = 3

#
# Multiple Tables.
#

query T
EXPLAIN (OPT, ENV) SELECT * FROM x, y WHERE b = 3
----
https://cockroachdb.github.io/text/decode.html#eJy0VFGO2zYQ_V6eYuAf24XplWwECGQsUMfhpmodeSEpaYLFgqAoqmEjkxuRcq0WBYKewZ-9Ri_Qo-xJCsob20WUBGkafxjg8M17M8-Pxhiei8pIrQJYaP660oy_evwIxFbwrJZlLiqwwljY7FEIYQwJSSFnlmXMCLiAvgP0Z6gtS2PNmxIuQBfFDABjyEXB6tLChpW1CIDVVrdQqXKxpZXger0WKmdWamWoUCwrRf4RAjeE618snyUpid00aRg9AfOmHPMqz6hUVlSKlWPrqGilf6HGMiuNldyMmaG6oFau29Gx__dfpt-pg33PfFDoHmvGx4X7uii6mQ4rdzG50czYQdbMSk65LkvBnRnjoxf9gpVGdLPbqhb_hX0tlfNl75BxIg-6BR543if4C10Jzow1_9_IpjFWrGn7ExrqFtjXP0MALWIyTwmk80dL0qZ4fFtnpeTjLQzQGYMwSh9CtEoherZcjtBZdl_ZnxarKEnjeRilsKW3r0UDV3H4dB6_hB_ISxgwmCeL4QidhdFj8gK2NKMy38Iga-toOENovnS7dcmH0fdkkUKSztMwScNFAv1rBADwW_vtPj22-Yka-avoBeCNjmWuy3qtTC-A60Nxj-8dzjen-EowK3LKbC-A3sTzH2LPx54Pnh94XuB5vROwS7NU3FKua-UafO9U-5U0VrsMUdvcusF6p80ydw0nBVWX5YHplMc9yYPCZOpPpu3d76Mv9SD7Kh60E36eDZMvsQHd9GcfSW_j0lu_l97Nh9LbdKS3fpfef-E2tHDIy1VMwifRHrkZQkwuSUyiBUngXYIH7Bh919dGf_Pp6Ded0W_3JS-ulvMwgsHqKh0BiZ4PISFLh_0GLuPVU9iOoIEfvyMxgQwuYDpDGGOMpFKiwj9rqWDAK23MEMHd7s-73du73VswnClo3qtsv71_sO7mD-f63W53D-BaGVsxqWwA55NzP4Dr8ylgOJ_eoBNYIUsrKgMD92czRP8EAAD__w3UIZ8=

#
# Same table twice should only show up once.
#

query T
EXPLAIN (OPT, ENV) SELECT * FROM x one, x two
----
https://cockroachdb.github.io/text/decode.html#eJy0VNFu2zYUfQ6_4kIvtgdLkFwUKGzkQVWZQpsrB5JatAgCgqKolatMpiLlyBsG9CP8uN_YD-xT8iUD5dT2MKVFl9UPhnXvuefce3xs14U3vNFCyTlEin1oFGXvXzwH3nFWtKIueQOGawObPQoh14UM51BSQwuqOZzDyAJGC9SXhTb6Yw3noKpqAeC6UPKKtrWBDa1bPgfaGtVDhSx5RxrO1HrNZUmNUFITLmlR8_ILBHYJOx8tX2c5Tu02eZy8BP2x9lhTFkRIwxtJa89YKtKoW6INNUIbwbRHNVEVMWLdr-4Gf_2pR4M6buDrB4Xusdo7HjxSVTXMdDh5iMmupj0LWVMjGGGqrjmzZnhHL0YVrTUfZjdNy_8L-1pI68veIW1Fng4LPPX9r_BXquGMaqP_v5X1Vhu-Jv1XqIk9YF__BgEUpTjMMeTh8yXuU-zdtEUtmNfBGJ1RiJP8GSSrHJLXy-UUnRX3lf1TtEqyPA3jJIeO3HzgW7hM41dh-g5-wu9gTCHMoskUncXJC_wWOlIQUXYwLvo6miwQCpf2tiH5OPkRRzlkeZjHWR5HGYyuEADAb_27fTl08zPR4lfuzMGfHstM1e1aamcOV4fiHu8cnq9P8Q2nhpeEGmcOzswPnrl-4PoB-MHc9-e-75yAbZqFZIYw1Uo7EPin2u-FNspmiJjtjV3MOR0WpR04Kci2rg9Mpzz2J3lQmD0JZk_63u_Tx3pQfBcP-g2_zYbZY2xA16PFF9K7telt_5XezUPp3Q6kt_2c3n_gNqSyyItViuOXyR65mUCKL3CKkwhn8DnBY3qMvp3ro7_5evS3g9Hv78VvL5dhnMB4dZlPASdvJpDhpcX-ABfp6hV0EGagJJ_uP5lbtUCu67pISMkb9xclJIxZo7SeILjb_XG3-3S3-wSaUQkdXFF9riS_fqBlblXf2t23KlEb3mgY27-SCfo7AAD__5L6Fgo=

#
# Set a relevant session variable to a non-default value and ensure it shows up
# in the environment dump.
#

statement ok
SET reorder_joins_limit = 63

query T
EXPLAIN (OPT, ENV) SELECT * FROM y WHERE u = 3
----
https://cockroachdb.github.io/text/decode.html#eJy0U91u2zYUvg6f4sA3dgZLkWJ0CGTkQlWZTpsrB5LatQgCgqKolatEpiLlWRsG9CHyKnuBPUqeZKDc2h6mtui6-cKAjr-fcz5_chx4wVstlAwgUuxNqyh7_eQx8C1nRSfqkrdguDaw2aEQchzIcA4lNbSgmsMlTC1gukTDWGij39ZwCaqqlgCOAyWvaFcb2NC64wHQzqgBKmTJt6TlTDUNlyU1QklNuKRFzctPCCg50Fuu2pK35GclpCa1aISBS_h2Mcq5QAMnWj3PcpzaA_I4eQr6be2ytiyIkIa3ktause6kVb8QbagR2gimXaqJqogRzXCt4__5h56O2ji-pz9q9B6r3UNGU1VV40r7lMaU7GratZCGGsEIU3XNmc3PPcQ3rWit-bi6aTv-b9QbIW0uu4S0NXk0bvDI8z6jX6mWM6qN_u9W1r02vCHDX6iJPWA3_wIDFKU4zDHk4eMVHorv3nVFLZi7hRk6oRAn-QUk6xyS56vVHJ0U7ye7p2idZHkaxkkOW3L3hvdwncbPwvQV_IBfwYxCmEWnc3QSJ0_wS9iSgohyC7NimKPTJULhyt42Zh8n3-MohywP8zjL4yiD6Q0CAPht-LafCd38RLT4lU8C8OaHMVN110g9CeBmP9zhJ_vn22N8y6nhJaFmEsDk3PMvHM93PB88P_C8wPMmR2DbZiGZIUx10hJ879j7tdBG2Q4R09_ZxSbHZFFawtFAdnW9VzrWsa_k3uF84Z8vht9-n39tBsX_ksGw4ZfFcP41MaDb6fIT7e1te7t_tHfzsfb2I-3tPrT3b7gNqSzyap3i-GmyQ25OIcVXOMVJhDP40OAZPVTf8obqbz5f_X60-sO9-OX1KowTmK2v8zng5MUpZHhlsd_AVbp-Bj38-B1OMXRwCYslchzHQZpRCT2Ch_v7h_t3D_fvgCmpTUuFNAGc-QHcnC3AgbPFLforAAD__0aGCsU=

# Make sure it shows up correctly even if it matches the cluster setting.
statement ok
SET CLUSTER SETTING sql.defaults.reorder_joins_limit = 63


query T
EXPLAIN (OPT, ENV) SELECT * FROM y WHERE u = 3
----
https://cockroachdb.github.io/text/decode.html#eJy0U91u2zYUvg6f4sA3dgbLkWK0CGTkQlWZTpsrB5LatQgCgqKolatEpiLlWRsG9CHyKnuBPUqeZKDc2h6mpOiy-sKAjr4fnk8fHQde80YLJX0IFXvfKMrePX8GfMNZ3oqq4A0Yrg2styiEHAdSnEFBDc2p5nAOYwsYL1A_FtroDxWcgyrLBYDjQMFL2lYG1rRquQ-0NaqHClnwDWk4U3XNZUGNUFITLmle8eIBASV7esNVU_CG_KKE1KQStTBwDk_ng5wz1HPC5as0w4ldIIviF6A_VDPWFDkR0vBG0mpmrDtp1K9EG2qENoLpGdVElcSIut_W8f76U48HbRzP1fcafcLq2T6jsSrLYaVdSg8qDWcwfjofFj27V9Euq2fWtKZGMMJUVXFmv8hs_0HGJa00H5Y2Tcv_i3otpE16m7m2Jk-GDZ647hf0S9VwRrXR_9-RdacNr0lfCk3sAtv5VxigMMFBhiELni1xf5VmN21eCTbbwAQdUYji7AziVQbxq-Vyio7yT5PtU7iK0ywJojiDDbl5zzu4TKKXQfIWfsRvYUIhSMPjKTqK4uf4DWxITkSxgUnez9HxAqFgaXcbso_iH3CYQZoFWZRmUZjC-AoBAPze_9vfiK5_Jlr8xkc-uNP9mKmqraUe-XC1G27xo93z9SG-4dTwglAz8mF06npnjus5rgeu57uu77qjA7C9H0IyQ5hqpSV47qH3O6GNsh0ipruxBxsdkkVhCQcD2VbVTulQx17yncPp3Dud9-_-mD42g_ybZNCf8OtiOH1MDOh6vHigvZ1tb_uv9q7va2830N72c3v_gVuT0iIvVgmOXsRb5PoYEnyBExyHOIXPDZ7QffUtr6_--svV7war3--L31wugyiGyeoymwKOXx9DipcW-x1cJKuX0MFP3-MEQwvnMF8gx3EcpBmV0CG4u729u_14d_sRmJLaNFRI48OJ58PVyRwcOJlfo78DAAD__yWPJS8=

statement ok
SET enable_zigzag_join = true

query T
EXPLAIN (OPT, ENV) SELECT * FROM y WHERE u = 3
----
https://cockroachdb.github.io/text/decode.html#eJy0U91u2zYUvg6f4sA3dgbLkWK0CGTkwnWZTpsrB5LatQgCgqKolKtEpiLlWRkG9CHyKnuBPUqeZCDdOh6mpOi6-sKAjr4fnk8fPQ9e80YLJUNYKPa-UZS9e_4M-IazvBVVwRswXBtYb1EIeR6kOIOCGppTzeEUhhYwnCE3FtroDxWcgirLGYDnQcFL2lYG1rRqeQi0NcpBuaR5xcmNuLqhV-RXJaRlyV6SKkvHEbLgG9Jwpuqay4IaoaQmW6XiEVMlHb3hqil448w0qUQtDJzC02kv5wQ5zmL5Ks1wYpfOovgF6A_VhDVFToQ0vJG0mhi3R6N-I9pQI7QRTE-oJqokRtQuIS_460897LXxAl8_aPQJqyf3uQ5VWfYr7ZJ9VKk_g-HTab_oyYOKdlk9saY1NYIRpqqKM_tFJvcfZFjSSvN-adO0_L-o10LapLeZa2vypN_gie9_Qb9UDWdUG_3_HVl32vCauFJoYhfYzr_CAC0SPM8wZPNnS-yu3-S6zSvBJhsYoQMKUZydQLzKIH61XI7RQf5psn1arOI0S-ZRnMGGXL_nHZwn0ct58hZ-xm9hRGGeLg7H6CCKn-M3sCE5EcUGRrmbo8MZQvOl3a3PPop_wosM0myeRWkWLVIYXiAAgN_dv_0N6PqKaHHDByH44_sxU1VbSz0I4WI33OIHu-fLfXzDqeEFoWYQwuDYD048P_D8APwg9P3Q9wd7YHs_hGSGMNVKSwj8fe93QhtlO0RMd20PNtgni8IS9gayraqd0r6OveQ7h-NpcDx17_4Yf2sG-XfJwJ3w62I4_pYY0OVw9kh7O9ve9l_tXT_U3q6nve3n9v4DtyalRZ6tEhy9iLfI9SEk-AwnOF7gFD43eETvq295rvrrL1e_662-2xe_OV_OoxhGq_NsDDh-fQgpXlrsD3CWrF5CB7_8iBMMLZzCdIY8z_OQZlRCh-Du9vbu9uPd7UdgSmrTUCFNCEdBCBdHU_DgaHqJ_g4AAP__-_g2rA==

statement ok
SET optimizer_use_histograms = false

query T
EXPLAIN (OPT, ENV) SELECT * FROM y WHERE u = 3
----
https://cockroachdb.github.io/text/decode.html#eJy0VN1u2zYUvg6f4sA3cgbLkWK0CGTkwnWZTpsrB5LatQgCgpKolKtEpiLlWRkG9CHyKnuBPUqeZCDd2h6mJOiy-sKAjr8f8juf7LrwljWKSxHAXOYfG0nzDy9fAFuzPGt5VbAGNFMaVhsUQq4LCU6hoJpmVDE4BccAnCmyY660-lTBKciynAK4LhSspG2lYUWrlgVAWy0tlAmaVYzc8KsbekV-lVwYluglybK0HC4KtiYNy2VdM1FQzaVQZKNUPGAqhaXLa81rfsMa0ipGPnCl5VVDa_U4s2GyKVhjj6lIxWuu4RSeT3o5J8hy5os3SYpjE1caRq9AfarGeVNkhAvNGkGrsbYJNPI3ojTVXGmeqzFVRJZE89pm6_p__amcXhvX99S9Rl-warzbiCPLsl9pu5MHlfozcJ5P-kVP7lU0l1VjY1pTzXOSy6piudnleLdKp6SVYv3SumnZf1GvuTBJbzI3W3ee9Rs887xH9EvZsJwqrf6_I6tOaVYTWwpFzAU2828wQPMYz1IM6ezFAtsXd3zdZhXPx2sYogMKYZSeQLRMIXqzWIzQQfZlsnmaL6MkjWdhlMKaXH9kHZzH4etZ_B5-xu9hSGGWzA9H6CCMXuJ3sCYZ4cUahpmdo8MpQrOFuVuffRj9hOcpJOksDZM0nCfgXCAAgN_tt_kM6OqKKH7DBgF4o904l1VbCzUI4GI73OAH2-fLfXzDqGYFoXoQwODY809cz3c9Hzw_8LzA8wZ7YPN-cJFrkstWGILv7XvbPwnTIaK7a3OwwT6ZF4awNxBtVW2V9nXMS751OJ74xxP72x-jp2aQfZcM7Am_LYbjp8SALp3pA-3tTHvbf7V3dV97u572tl_b-w_cipQGebaMcfgq2iBXhxDjMxzjaI4T-NrgId1V3_Bs9VePV7_rrb69L353vpiFEQyX5-kIcPT2EBK8MNgf4CxevoYOfvkRxxhaOIXJFLmu6yKVUwEdgrvb27vbz3e3nyGXQumGcqEDOPIDuDiagAtHk0v0dwAAAP__2mdK9w==

statement ok
SET optimizer_use_multicol_stats = false

query T
EXPLAIN (OPT, ENV) SELECT * FROM y WHERE u = 3
----
https://cockroachdb.github.io/text/decode.html#eJy0VF9u2zYcfq5O8YNf5AyWI8VoEcjIg-synTZXDiS1axEEBEVRKVeKTEXKszMM6CFylV1gR8lJBtKt42FKuqybHwzw5-8P-fGjgwDesFZzJWOYK_qhVYS-f_Ec2JrRsuOiYi0Ypg2stijPCwLIUQEVMaQkmsEJ-BbgTz035trojwJOQNX1FCAIoGI16YSBFREdi4F0Rjkok6QUDF_zy2tyiX9WXFqW7CWpunYcLiu2xi2jqmmYrIjhSmq8VaoeMFXS0dWV4Q2_Zi3uNMPvuTbqsiWNfiyz6YThVAmsDTH_gN0y1VasdYfUWPCGGziBZ5NezrHnOPPF67xAmQ27SNKXoD-KMW2rEnNpWCuJGBuXX6t-cdvg2nCqx0RjVWPDG3czQfTH79rvtQmiUN9r9Bmrx3f36au67lfa3eiDSv0Z-M8m_aLH9yq6zMfWtCGGU0yVEIzaJozviuDXRGjWL23ajv0b9YZLm_Q2c3vr_tN-g6dh-BX9WrWMEm30f7dlvdGGNdiVQmN7gO38EQbePEOzAkExe75A7tmPr7pScDpew9B7QiBJi2NIlwWkrxeLkfek_DzZrubLNC-yWZIWsMZXH9gGzrLk1Sx7Bz-idzAkMMvnByPvSZK-QG9hjUvMqzUMSzf3DqaeN1vYs_XZJ-kPaF5AXsyKJC-SeQ7-uQcA8Kv7tp8BWV1iza_ZIIZwdDemSnSN1IMYznfDLX6wW1_s41tGDKswMYMYBkdhdByEURBGEEZxGMZhONgD2_fBJTWYqk5aQhTue7u_GNshbDZXdmODfTKvLGFvIDshdkr7OvaR7xyOJtHRxP322-hbMyj_lwzcDh8Xw9G3xOBd-NMH2rux7e3-1t7Vfe3d9LS3-9Lev-BWuLbI02WGkpfpFrk6gAydogylc5TDlwYPyV31Lc9Vf_X16m96q-_Oi96eLWZJCsPlWTEClL45gBwtLPY7OM2Wr2ADP32PMgQdnMBk6gVBEHiaEgkbD25vbm5vPt3efAKqpDYt4dLEcBjFcH44gQAOJxfenwEAAP__xxFg-A==

statement ok
RESET reorder_joins_limit

statement ok
RESET enable_zigzag_join

statement ok
RESET optimizer_use_histograms

statement ok
RESET optimizer_use_multicol_stats

#
# Test sequences.
#

statement ok
CREATE SEQUENCE seq

query T
EXPLAIN (OPT, ENV) SELECT * FROM seq
----
https://cockroachdb.github.io/text/decode.html#eJysks2O0zAUhfd5irsLIBz1h_4wVRclGFSpzQxtWs3Ocp0bYXBs6usMw4PxAjwZcoqYTWYQiF10c-53cs4NY3BET9rZK8id-uydVB_fvgG8R3VqtanQQ0AKcHdRJQljsOclVDLIkySEJaRRkC6Sbqwp0NnAElxdLwAYgwpr2ZoAd9K0eAWyDa6TalvhvfCoXNOgrWTQzpJAK08GqycAznbrHp2v0ItPTlsSRjc6wBKm496dedLt5JvDvuS7GKBcF--BziZTvjoJbQN6K00Worvw7qugIIOmoBVlkoSrRdBNl5YNf3yntNeGDQf0qNEvLWUPHaWurvtJv1t6ktTfQTod90PnjxJjWMqiaSODVkI5Y1DFi2QPB0lraQj70cG3-C_0RtvY9KVziiaTfoPJYPAHfu08KkmB_t8n0zcK2IjupyARA1zmf2GQ5Du-Kjns-YcDL3IOX9qT0SojPMN2XRxXmwOHIWxXt5fH16PReDwbDcbT-eTVbDaZD2awLvId3_KihCHsy9WuhOEiSfjtzWa1LuDZ9U35EnhxfA57vuF5CS_g3e56C4TnRcIYYwnhuUWrkBHG4uOb5GcAAAD__9nMSQE=

#
# Test views.
#

statement ok
CREATE VIEW v AS SELECT a, b, u, v FROM x, y WHERE b = 3

query T
EXPLAIN (OPT, ENV) SELECT * FROM v
----
https://cockroachdb.github.io/text/decode.html#eJy0VNFu2zYUfQ6_4sIvtgfJkWy0CGQEmOoynTZXDiQ1bREEBCVRK1eZTEVKszcMKPYNftxv7Af2KfmSgXJiu6uSosvmBwO6Ovcc3cNzadtwwSrFpfBgJrP3laTZu-fPgK1Ylta8zFkFmikNzRaFkG1DjBPIqaYpVQxOoW8A_Slqy1xp9aGEU5BFMQWwbchZQetSQ0PLmnlAay1bKBc5W5GKZXK5ZCKnmkuhCBM0LVn-AIEUbXvFZJWzivwkuVCk5Euu4RSeTjp7TlDbM5u_ihMcmQGSIHwB6kM5yqo8JVxoVglajrRRJ5X8mShNNVeaZ2pEFZEF0XzZTmu7f_2p-p0ytuuoe4VusWq096gvi6KbaefSg0zdHvSfTrpJT-5lNMOqkRFdUs0zksmyZJk5kdH-QPoFLRXrptZVzf4N-5IL4_TWc2VEnnQLPHGcL_AXsmIZVVr9d5-s1kqzJWlDoYgZYFv_CgE0i7CfYEj8Z3PcrtLouk5Lno1WMEBHFIIwOYFwkUD4aj630FF6W9k-zRZhnER-ECawItfv2RrOo-ClH72FH_BbGFDw49nQQkdB-By_gRVJCc9XMEjbOhpOEfLnZrYu-SD8Hs8SiBM_CeIkmMXQv0QAAL-2_-bXo82PRPFfWM8Dx9qXM1nWS6F6Hlzuilt8b_d8dYivGNUsJ1T3POiNHffEdlzbccFxPcfxHKd3ADb7wUWmSSZrYRpc51D7HVdamgwRvb42H9Y7bOa5aTgoiLosd0yHPGbJdwrjiTuetO9-sx7rQfq_eNB-4dfZMH6MDeiqP30gvWuT3vqz9Db3pXfdkd76Lr2f4BpSGOTZIsLBi3CLbIYQ4TMc4XCGY7hL8IDuo2_62ug3X47-ujP6h_NeBPj1nUzT7qnZTAsd1WZGNAQ_hhjPDQe1ILWgtqCBs2jx8tMds_6h-_o7HGFI4RQmU4Twm_O5H4QwWJwnFuDwYnhH-s2Wq5ki27ZtxIVglW1ueRhklVRqiOBm88fN5uPN5iOojApYf1ZZfXt7HZg3v5szvdlsbgGZFEpXlAvtwfH42PXg8ngCNhxPrtABrOClZpWCgbnKhujvAAAA___ibmah

#
# Test tables in user-defined schemas.
#

statement ok
CREATE SCHEMA s;
CREATE TABLE s.t (a int primary key)

query T
EXPLAIN (OPT, ENV) SELECT * FROM s.t;
----
https://cockroachdb.github.io/text/decode.html#eJysk9Fq20wQha-zTzF3in-ywiEkmBhfKPrVolaRjbQJDaUsa2lEt5G0zc44TR6sL9AnK5JLA0VJaentcuY7c85IUsI1erKuP4fYVbfemerj_xeAD1htd7at0QMjMdzvVUJICWWioDZstoYQVhAMgmApxmdLTHctrMA1zRJASqixMbuW4d60OzwHs2M3Sm1f44P2WLmuw742bF1PGnuzbbF-AeD6cdyj8zV6_cnZnnRrO8uwgrOTyZmFGGfi7KpUSTEEUGn-GuiuDStfb7XtGX1v2pAHd-3dF01s2BLbikJD2jWabTemlcffvlIwaSOP5_Ss0Q8thU8dBa5ppkk_W3qRNN1BcHYyDV08SxzCUjiYdoZtpSvXtlgNFwmfDhI0piWcRrPf4d_QO9sPTe87p8HkdNrgdD7_Db9xHitDTP9uZXokxk6PHwXpIcD-_Q8MRFwkkUpARRdZMv5KIYUMh-LAQJqrBeRrBflVlh2Jg3idl6qI0lwB68-3-AibIr2Miht4m9zAoYGojGdithQiyoaFf2Gm-ZskVlCqSKWlSuMSgvcfgqUQybtNFqU5HK436giS_HoGZZIN2v_gVbG-BAp5KaSUUlBlemDxPQAA__-R_U-F

#
# Test default_transaction_quality_of_service settings.
#

statement ok
SET default_transaction_quality_of_service=background

query T
EXPLAIN (OPT, ENV) VALUES(1);
----
https://cockroachdb.github.io/text/decode.html#eJyskkFu2zwQhfc6xexkA6FgI0gQxPAif36hCGC4Qe0Y3REjapSyoUiYM3KTXQ7hq_QCPYpPUlBum42SokW3xHvfEz9RKdhQZBv8JVwH8xADmk___wf0SKbqrKspghAL7I6pLFMKVuUaahSskAnmkKdAPsv6Y2qwc6Ilomc0YoPX2w6dlScdGs0Ud9akUoXm4T6GztczAKV-FmGHrqNLiHTfOYxHpmXhrYM5hKYZTGMnoY9aX9OjjmRC25KvMe2zJo-Vo_oNQPB9PVKINUX9OVjP2tnWCszh_HSwc5H1nevF3WpdfkhS1jfLd8BbV5hYV9p6oejRFZLWdQxfNAuKZbGGC-TkQ2zbG1TTb185H5xR0wm_OvQjy8WLozw0zTDpl6U3ScMO8vPTYejFq8R0WS7SaItijTbBOepfRPHyQ_IGHdMwWmJHf0NvrU-mj845jZwND5xNJr_hNyGSQRb-d5_MTyzU6v5RsE4XOJ7_wUBWfrxdXN0sYfT-dn0C5XIzhs3V4q5cwWg6nmVKKZX1Bc7gsN8f9s-H_TOMpifj7HsAAAD__yAgUKM=

statement ok
SET default_transaction_quality_of_service=critical

query T
EXPLAIN (OPT, ENV) VALUES(1);
----
https://cockroachdb.github.io/text/decode.html#eJyskkFqGzEUhvc6xduNDdFgExJCjBdpakrAuKF2THfiWfOmVauRsN4bN9nlEL5KL9Cj-CRF47bZTFJashX___2jb6Q1rCmxi-ESrqP9miLaz2_fAN2T3bTOV5RAiAV2x5RSWsNytoIKBTfIBFMocqCYqO6Yamy9GEkYGK24GMy2Re_kwcTaMKWds7lkkxNn0U8AtP5dgx36li4h0afWYzoSHQtvPUwh1nVvGluJXdSFiu5NIhubhkKFeZ0NBdx4ql4AxNDVE8VUUTJfogtsvGucwBTOT3s7F6rrXM_vlqvZh6xkdbN4B7z1pU3VxrgglAL6UvK6SfGbYUFxLM5yiZxtiGs6f3r84zsXvTN6POJnh35luXxyVMS67if9sfQiqd9BcX7aD714lpgvy2UebVCcNTZ6T917KJ9-SFGjZ-pHS2rpf-iNC9n00TnnkbP-gbPR6C_8OiayyMKv98n8wEKN6R4Fm3yB4_k_DKjZx9v51c0CBu9vVycwW6yHsL6a382WMBgPJ0prrVVXYAWH_f6wfzzsH2EwPhmqnwEAAP__6QxPzg==

#
# Test recursive table references from foreign keys.
#

statement ok
CREATE TABLE z (
  pk INT PRIMARY KEY,
  ref INT,
  CONSTRAINT fk FOREIGN KEY (ref) REFERENCES y(u),
  FAMILY "primary" (pk, ref)
)

query T
EXPLAIN (OPT, ENV) SELECT * FROM z;
----
https://cockroachdb.github.io/text/decode.html#eJy0U9GO2jgUfR5_xRUvMCuCwoxajUDzQKmnyi4NoyStWlWV5ThO68XYjO2whNV-1v7AftnKoQNUDVTd2fKA5Mu55_gcjoMA3nJjhVYjmGq2MJqyzy9fAN9wlldCFtyA49bBeodCKAggxRkU1NGcWg630PWA7hg1Y17SSjriDFWWMie0Ig8VlcLVRJfEcrMWzC8xI5xgVI4BguBxDdZUVnwEhn-qJDU7RmGdfZBwC7osW9G0crqBClXwDTGc6eWSq4J6dUu4ornkxRkCrZp1w7UpuCG_a6EskWIpHNzC8-vWnRvU7Exnb9IMJz6SLIpfgX2QA2aKnAjluFFUDpxXJ0b_QayjTlgnmB1Q69NwYtnkFwz_-dt2W2WCYWhPCn3B2sEho64uy3amfUpnmdoz6D6_bie9OcnozdqBF11SJxhhWkre9GFw-EO6JZWWt1M7U_H_wr4Uyie9y9x6kWftAs_C8Dv8pTacUevs_3dlW1vHl6QphSXewG7-AwJomuBJhiGbvJjh5nEOVlUuBRtsoIcuKERxdgPxPIP4zWzWRxf5l8nuNJ3HaZZMojiDDVkteA33SfR6kryH3_B76FGYpNPLPrqI4pf4HWxITkSxgV7ezNHlGKHJzHtrk4_iX_E0gzSbZFGaRdMUuh8QAMCfzbf_dOj6E7FiyzsjCPuHMdOyWirbGcGH_XCH7-zPH4_xhlPHC0JdZwSdq3B4E4TDIBxCOByF4SgMO0dg_z6EYo4wXSm_MAyPtT8L67TvEHH1yl-sc7wsCr9wNFCVlHumYx7_yPcKV9fDq-vmt7_6T80g_ykZNDf8sRiunhID-tgdn2lv7dtbfdPe9an21i3trR7b-xVuTUqPvJsnOHoV75DrS0jwHU5wPMUpPDa4Rw_V93tN9dffr37dWv3zfrfe72rxjWHDy1OWty2WV4sWz-Xia7eGl21-61513tf2tC_87n42iWLoze-zPuD47SWkeOaxv8BdMn8N2zEKgiBAllEFW_RvAAAA__-HkG80

query T
EXPLAIN (OPT, ENV) SELECT * FROM y;
----
https://cockroachdb.github.io/text/decode.html#eJy0U9GO2jgUfR5_xRUvMCuCwoxajUDzQKmnyi4NoyStWlWV5ThO68XYjO1kyaz2s_YH9stWDh2GqoGqO1sekHw59xyfw3EQwFturNBqAnPNVkZT9vnlC-BbzvJKyIIbcNw6qHcohIIAUpxBQR3NqeVwDX0P6E9RO-YlraQjzlBlKXNCK3JXUSlcQ3RJLDe1YH6JGeEEo3IKEAQPa1BTWfEJGP6pktTsGIV19k7CNeiy7ETTyukWKlTBt8Rwptdrrgrq1S3hiuaSFycItGrXDdem4Ib8roWyRIq1cHANzy87d65QuzNfvEkznPhIsih-BfZOjpgpciKU40ZROXJenRj9B7GOOmGdYHZErU_DiXWbXzD-52_b75QJxqE9KvQFa0ePGfV1WXYz7VM6ydSdQf_5ZTfp1VFGb9aOvOiaOsEI01Lytg-jxz-kX1JpeTe1MxX_L-xroXzSu8ytF3nWLfAsDL_DX2rDGbXO_n9Xto11fE3aUljiDezmPyCA5gmeZRiy2YsFbh_naFPlUrDRFgbojEIUZ1cQLzOI3ywWQ3SWf5nsTvNlnGbJLIoz2JLNijdwm0SvZ8l7-A2_hwGFWTo_H6KzKH6J38GW5EQUWxjk7RydTxGaLby3Lvko_hXPM0izWRalWTRPof8BAQD82X77T4_Wn4gV97w3gXD4OGZaVmtlexP4sB_u8L39-eMh3nDqeEGo602gdxGOr4JwHIRjCMeTMJyEYe8A7N-HUMwRpivlF8bhofZnYZ32HSKu2fiL9Q6XReEXDgaqknLPdMjjH_le4eJyfHHZ_vbX8KkZ5D8lg_aGPxbDxVNiQB_70xPtbXx7q2_aWx9rb9PR3uqhvV_halJ65M0ywdGreIeszyHBNzjB8Ryn8NDgAX2svt9rq19_v_pNZ_VP-733fjerbwwbXh6zfN9hebPq8FyuvnZreNnltxlUp33dH_eF390uZlEMg-VtNgQcvz2HFC889he4SZavoZmiIAgCZBlV0KB_AwAA__-Hf28y

query T
EXPLAIN (OPT, ENV) SELECT * FROM x;
----
https://cockroachdb.github.io/text/decode.html#eJy0U9GO2jgUfR5_xRUvMCuCwoxajUDzQKmnyi4NoyStWlWV5ThO68XYjO2wyaz2s_YH9stWDh2GqoGqO1sekHw59xyfw3EQwFturNBqAnPNVkZT9vnlC-A1Z3klZMENOG4dbHcohIIAUpxBQR3NqeVwDX0P6E9RO-YlraQjzlBlKXNCK3JXUSlcQ3RJLDdbwfwSM8IJRuUUIAge1mBLZcUnYPinSlKzYxTW2TsJ16DLshNNK6dbqFAFr4nhTK_XXBXUq1vCFc0lL04QaNWuG65NwQ35XQtliRRr4eAanl927lyhdme-eJNmOPGRZFH8CuydHDFT5EQox42icuS8OjH6D2IddcI6weyIWp-GE-s2v2D8z9-23ykTjEN7VOgL1o4eM-rrsuxm2qd0kqk7g_7zy27Sq6OM3qwdedE1dYIRpqXkbR9Gj39Iv6TS8m5qZyr-X9jXQvmkd5lbL_KsW-BZGH6Hv9SGM2qd_f-ubBvr-Jq0pbDEG9jNf0AAzRM8yzBksxcL3D7O0abKpWCjGgbojEIUZ1cQLzOI3ywWQ3SWf5nsTvNlnGbJLIozqMlmxRu4TaLXs-Q9_Ibfw4DCLJ2fD9FZFL_E76AmORFFDYO8naPzKUKzhffWJR_Fv-J5Bmk2y6I0i-Yp9D8gAIA_22__6dHtJ2LFPe9NIBw-jpmW1VrZ3gQ-7Ic7fG9__niIN5w6XhDqehPoXYTjqyAcB-EYwvEkDCdh2DsA-_chFHOE6Ur5hXF4qP1ZWKd9h4hrNv5ivcNlUfiFg4GqpNwzHfL4R75XuLgcX1y2v_01fGoG-U_JoL3hj8Vw8ZQY0Mf-9ER7G9_e6pv2bo-1t-lob_XQ3q9wW1J65M0ywdGreIfcnkOCb3CC4zlO4aHBA_pYfb_XVn_7_eo3ndU_7ffe-92svjFseHnM8n2H5c2qw3O5-tqt4WWX32ZQnfZ1f9wXfne7mEUxDJa32RBw_PYcUrzw2F_gJlm-hnqKgiAIkGVUQY3-DQAA__-Hbm8w

# A foreign key cycle shouldn't cause infinite recursion.
statement ok
ALTER TABLE y ADD CONSTRAINT fk FOREIGN KEY (v) REFERENCES z (pk);

query T
EXPLAIN (OPT, ENV) SELECT * FROM y;
----
https://cockroachdb.github.io/text/decode.html#eJy0VNGO2jgUfR5_xRUvMCuCwoxajUDzQKmnyi4NoyStWlWV5ThO68XYjO2whNV-1v7AftnKYQqsGhh1Z5cHpFzOPcfncOIggPfcWKHVCKaaLYym7OvrV8A3nOWVkAU34Lh1sN6hEAoCSHEGBXU0p5bDLXQ9oDtGzZiXtJKOOEOVpcwJrchDRaVwNdElsdysBfNLzAgnGJVjgCD4tgZrKis-AsO_VJKaHaOwzj5IuAVdlq1oWjndQIUq-IYYzvRyyVVBvbolXNFc8uIMgVbNuuHaFNyQX7VQlkixFA5u4eV1684Nanams3dphhMfSRbFb8A-yAEzRU6EctwoKgfOqxOjfyPWUSesE8wOqPVpOLFs8guGf_1pu60ywTC0J4UesXZwyKiry7KdaZ_SWab2DLovr9tJb04yerN24EWX1AlGmJaSN30YHP6Qbkml5e3UzlT837AvhfJJ7zK3XuRFu8CLMHyCv9SGM2qd_e-ObGvr-JI0pbDEG9jNf0AATRM8yTBkk1cz3Lycg1WVS8EGG-ihCwpRnN1APM8gfjeb9dFF_jjZPU3ncZolkyjOYENWC17DfRK9nSQf4Rf8EXoUJun0so8uovg1_gAbkhNRbKCXN3N0OUZoMvPe2uSj-Gc8zSDNJlmUZtE0he4nBADwe_PtPx26_kKs2PLOCML-Ycy0rJbKdkbwaT_c4Tv758_HeMOp4wWhrjOCzlU4vAnCYRAOIRyOwnAUhp0jsH8_hGKOMF0pvzAMj7W_Cuu07xBx9cofrHO8LAq_cDRQlZR7pmMe_5LvFa6uh1fXzW9_9J-bQf6_ZNCc8MdiuHpODOhzd3ymvVvf3tXiu_oaXp4q8LalwKvFtwYfAcsF3M0THL2JdyDDy0tI8B1OcDzFKTweoe5V5yu-ba34eV-191V9Z2t9ylTdYqpq8VSTNSk98h_O1m2-Nj36RCCta9veanG4CrxecxWsn74K6tM54Q_3s0kUQ29-n_UBx-8vIcUzj_0J7pL5W6jHKAiCAFlGFdTo7wAAAP__7cp-9g==

# Check that we remove histograms from statistics correctly.

statement ok
CREATE TABLE b (
  b BOOL NOT NULL,
  INDEX (b)
)

statement ok
ALTER TABLE b INJECT STATISTICS '[
      {
          "id": 1,
          "avg_size": 1,
          "columns": [
              "b"
          ],
          "created_at": "2022-12-02 18:34:29.574932",
          "distinct_count": 2,
          "histo_buckets": [
              {
                  "distinct_range": 0,
                  "num_eq": 1000,
                  "num_range": 0,
                  "upper_bound": "false"
              },
              {
                  "distinct_range": 0,
                  "num_eq": 100,
                  "num_range": 0,
                  "upper_bound": "true"
              }
          ],
          "histo_col_type": "BOOL",
          "histo_version": 2,
          "name": "__auto__",
          "null_count": 0,
          "row_count": 1100
      },
      {
          "id": 2,
          "avg_size": 0,
          "columns": [
              "rowid"
          ],
          "created_at": "2022-12-02 18:34:29.574932",
          "distinct_count": 0,
          "histo_col_type": "",
          "name": "__auto__",
          "null_count": 0,
          "row_count": 0
      }
]'

query T
EXPLAIN (OPT, ENV) SELECT * FROM b
----
https://cockroachdb.github.io/text/decode.html#eJy0lN1u2zYUx6_DpzjwjZzBEmSl6VIbuVAcddCmyoGlBC2KgqAoquVKkQlJpcmGPdZeYE82kG4cY1CzdWh9YcCH_w_qR8phCFdMG67kAlaKftSK0A_nZ8DuGG0GLlqmwTJj4XarQigMocpqaIklDTEMTiFwgmCJ_Jh1ZBAWW02kIdRyJfHNQAS391h12DB9y6kzUc0tp0QsAcLwwQa3RAxsAZq9HwTR20RurLkRcAqq60bVZLDKS7ls2R3WjKq-Z7Ilrt1gJkkjWPtEgJLerpnSLdP4V8WlwYL33MIpPD8a9Zwg71kVl1WdbRySOi9_AnMjIqrbBnNpmZZERNa1Y60-YWOJ5cZyaiJiHA3Le88vnP_1pwlGa8J5bL5Y9FlrokdGgeq68aQdpSeTxhkEz4_GQ0--mOge1kSutCeWU0yVEMzfh-jxQIKOCMPGo60e2P9J77l0pLfMjSs5Hi84juN_ye-UZpQYa77dls29sazH_lIY7B5gO_-KArTaZGmdQZ2eFZl_OaProRGcRg1M0UEDZ-t1AeW6hvKyKGboQKtPvIW8rE_89Cqvcud8UMB59jK9LGoYJL8ZPDbeTg9n6GC1Lqt6k-ZlDQ2-_sju4WKTv0o3b-CX7A1Mt7lptXLavDzPXkODG8zbO5g2fo4OlwilhUMxttu8_Dlb1VDVaZ1Xdb6qIHiLAAB-99_uMyG377Hhv7HJAuazxzFVYuilmSzg7W7oF5rJ7ve7fb1mxLIWEztZwCSJkyScJ2GcwPxkcfRskbyIjn989uIomex53FvFJbWYqkE6X7K3-IEbq9y9w_b-2u1usm_l7T_2K0nvRdifOcb7YjkIseuI9xbcn8bDfD6PY7_yx-wJRPF_QeTP7Ttiir8OU_ItMX1mhN4FS4Sy1xdFmpcwXV_UM8jKq0OossJduR_g5Wb9CpolCsMwRIYSCQ36OwAA__8hCA7K
