diff --git a/Makefile b/Makefile index f0853b1ec..8cc31f4d3 100644 --- a/Makefile +++ b/Makefile @@ -413,13 +413,26 @@ pending: ## What DIALECT has not recorded yet, in both suites. $(if $(wildcard $(SYNTAX_ROOT)),$(GATE_DIR)/syntax-coverage missing --root $(SYNTAX_ROOT) $(SYNTAX_EVIDENCE),@echo "pending: $(DIALECT) has no syntax suite yet") $(if $(filter snowflake,$(DIALECT)),cargo run --profile $(VERIFY_PROFILE) --locked -p sqlquack -- pending $(call convert_paths,$(DIALECT)),@echo "pending: $(DIALECT) has no translation suite; Snowflake is the only source dialect today") +# Every receipted case the parser contradicts must be in the root's receipt-disagreements.toml, +# which only shrinks: an entry the target branch (EVIDENCE_BASE) does not have fails, as does one +# the parser now agrees with. +DISAGREEMENTS := receipt-disagreements.toml +DISAGREEMENTS_BASE_FILE = target/receipt-disagreements-base-$(DIALECT).toml check-syntax: ## Rerun DIALECT's parser against its recorded syntax evidence, offline. $(suite_dialect) @test -d $(SYNTAX_ROOT) || { echo "check-syntax: $(DIALECT) has no recorded syntax evidence yet" >&2; exit 2; } @test "$(REQUIRE_BASELINE)" != 1 || test -f $(SYNTAX_ROOT)/baseline.json || { \ echo "check-syntax: $(SYNTAX_ROOT)/baseline.json is missing, so nothing would catch a lost form or obligation" >&2; exit 2; } $(MAKE) --no-print-directory gate-build - $(GATE_DIR)/syntax-coverage $(if $(wildcard $(SYNTAX_ROOT)/baseline.json),diff --root $(SYNTAX_ROOT) $(SYNTAX_ROOT)/baseline.json,summary --root $(SYNTAX_ROOT)) $(SYNTAX_EVIDENCE) + @if test ! -f $(SYNTAX_ROOT)/baseline.json; then \ + $(GATE_DIR)/syntax-coverage summary --root $(SYNTAX_ROOT) $(SYNTAX_EVIDENCE); \ + elif ! git rev-parse --verify --quiet '$(EVIDENCE_BASE)^{commit}' > /dev/null; then \ + echo "check-syntax: EVIDENCE_BASE $(EVIDENCE_BASE) is not a commit here" >&2; exit 2; \ + elif mkdir -p target && git show $(EVIDENCE_BASE):$(SYNTAX_ROOT)/$(DISAGREEMENTS) > $(DISAGREEMENTS_BASE_FILE) 2>/dev/null; then \ + $(GATE_DIR)/syntax-coverage diff --root $(SYNTAX_ROOT) $(SYNTAX_ROOT)/baseline.json \ + --disagreements-against $(DISAGREEMENTS_BASE_FILE) $(SYNTAX_EVIDENCE); \ + else echo "check-syntax: $(EVIDENCE_BASE) has no $(SYNTAX_ROOT)/$(DISAGREEMENTS); checking the committed one only"; \ + $(GATE_DIR)/syntax-coverage diff --root $(SYNTAX_ROOT) $(SYNTAX_ROOT)/baseline.json $(SYNTAX_EVIDENCE); fi record-syntax: ## Record DIALECT's syntax receipts on its engine; options in RECORD_ARGS. $(suite_dialect) diff --git a/coverage/syntax-duckdb/receipt-disagreements.toml b/coverage/syntax-duckdb/receipt-disagreements.toml new file mode 100644 index 000000000..13ed498e7 --- /dev/null +++ b/coverage/syntax-duckdb/receipt-disagreements.toml @@ -0,0 +1,22 @@ +# DuckDB receipts the parser contradicts today, which the syntax gate tolerates until fixed. +# +# `make check-syntax` fails on any receipted case the parser contradicts that this file does +# not list, whatever the case's mark or expectation: a syntax error the parser accepts, or a +# statement the engine parsed that the parser rejects. It also fails on an entry the parser +# now agrees with, and on an entry the target branch's copy does not have, so the file only +# shrinks: each grammar fix deletes its own entries. Case keys are listed under their form; +# other_receipts_contradicted lists receipts no obligation judges by their full id. + +other_receipts_contradicted = [ +] + +[syntax_errors_accepted] + +[parsed_cases_refused] +"dd.ddl.alter-table.drop-constraint" = ["k3ee2a4180944"] +"dd.ddl.comment-on.schema-or-database" = [ + "k4dc462f3c100", + "k5a53cf247d5d", +] +"dd.transaction_session.set.reset" = ["k57b1dfd6657a"] +"dd.transaction_session.set.set-to" = ["k773cc02e3ae7"] diff --git a/coverage/syntax-sqlite/receipt-disagreements.toml b/coverage/syntax-sqlite/receipt-disagreements.toml new file mode 100644 index 000000000..57ba48b61 --- /dev/null +++ b/coverage/syntax-sqlite/receipt-disagreements.toml @@ -0,0 +1,841 @@ +# SQLite receipts the parser contradicts today, which the syntax gate tolerates until fixed. +# +# `make check-syntax` fails on any receipted case the parser contradicts that this file does +# not list, whatever the case's mark or expectation: a syntax error the parser accepts, or a +# statement the engine parsed that the parser rejects. It also fails on an entry the parser +# now agrees with, and on an entry the target branch's copy does not have, so the file only +# shrinks: each grammar fix deletes its own entries. Case keys are listed under their form; +# other_receipts_contradicted lists receipts no obligation judges by their full id. + +other_receipts_contradicted = [ +] + +[syntax_errors_accepted] +"sl.ddl.alter-table-stmt.add-check" = [ + "k14b6e2cf45f6", + "k20c9b31f2adb", + "k41911f90c651", + "k57e3e745963a", + "k71de385fb646", + "k7f19ed97b0bf", + "k8e6bb01ba5f8", + "k9ab86b522521", + "kac9e5b189d28", + "kbc276073d457", + "kbd3033ff77bf", + "kc76f990b9db9", +] +"sl.ddl.alter-table-stmt.add-column" = [ + "k0c2af22fefb7", + "k51c39e576599", + "k6259414114d4", + "k651a8714b5be", + "k7117f9fba44d", + "kb20de077fe8c", + "kb35e40e34563", +] +"sl.ddl.alter-table-stmt.drop-column" = [ + "k02661180ec7a", + "k13dd437482d5", + "k1d90e7d984e3", + "k2c30a4f5054e", + "k3d2c6dd00b15", + "ka530c53dd251", + "kb747e2c1dfb1", + "kd69835f8fb46", +] +"sl.ddl.alter-table-stmt.drop-constraint" = [ + "k15a4736a07d7", + "k52f2f097fe68", + "k548254a66830", + "k76559f74502a", + "ka3b38d63d702", + "kd5a8491828f4", + "kd7dde0d5d821", + "kfd885056e3d9", +] +"sl.ddl.alter-table-stmt.drop-not-null" = [ + "k146e08e5dfa9", + "k1770b7dfdec9", + "k2a481c615d74", + "k2c97e9c3e1f9", + "k3b5db1ded5f7", + "k574b269d1501", + "k6b253bc03acb", + "k8a478792d015", + "k8ef3dc229a03", + "kb089ab0b8075", + "kca53e64439b8", +] +"sl.ddl.alter-table-stmt.rename-column" = [ + "k026da27079de", + "k086c05e58efa", + "k1e7d114ff06f", + "k4f1e7826e6e8", + "k54a68b02ed2b", + "k6791a762027f", + "k78e6df04c67c", + "k91a74fb93e68", + "kbd2e27751128", + "kcfc69797dd87", + "ked72ad0ddd04", +] +"sl.ddl.alter-table-stmt.rename-table" = [ + "k3f01502750be", + "k545aa86f443c", + "k669913a87a8a", + "k66d4bc264190", + "k8d2cb89d1dbf", + "kba38ec47b27f", + "kbadef3697d5a", + "kd55810b33449", + "kfaac31f637cc", +] +"sl.ddl.alter-table-stmt.set-not-null" = [ + "k02c0c86d986d", + "k49c8f0e9be4e", + "k637f01dbdc61", + "k8ddae39d3b43", + "kb41378d1fe63", + "kc14af7528958", + "kc4f121c1c006", + "kd15f7f3ce35d", + "kd7572e80dedd", + "kf96f975c116c", +] +"sl.ddl.column-constraint.check" = [ + "k007a0f50f6ec", + "k46a95454a6d8", + "k4c284a8689b4", + "k4c506693a0ab", + "k628fc31703d8", + "kb604ad271e28", + "kd9d41eed6150", + "ke4cad0e54a8f", +] +"sl.ddl.column-constraint.collate" = [ + "k38260df516ff", + "k51e4b4cb6ad9", + "k568596ed9e1b", + "kde789c71de80", +] +"sl.ddl.column-constraint.default" = [ + "k16e6daa35d8a", + "k3bb2fc3adc21", + "k4d916ab83efc", + "k51b385a5db7b", + "k6ec0492793e1", + "k9b2fe2714e7d", +] +"sl.ddl.column-constraint.foreign-key" = [ + "k431df3ea1f8a", + "kdec63c6356de", +] +"sl.ddl.column-constraint.generated" = [ + "k13a949de0831", + "k55c84584c9fc", + "k5a88213d2610", + "k946e987d1f68", + "k9a0a5e6135fb", + "ka5c65916683f", + "kb2f3f68cb717", + "kb2f61038355c", + "ke2941f1a6ea6", + "keaf5a5a6dd91", +] +"sl.ddl.column-constraint.not-null" = [ + "k4d2d05015b95", + "k79b521ba5f7b", + "kebf20cf11db9", +] +"sl.ddl.column-constraint.primary-key" = [ + "k337aa94b919d", + "k5e6b0e905412", + "k9be7817a56fb", + "ka3623558858e", + "kc3cded77d690", + "kd341c4ca712b", +] +"sl.ddl.column-constraint.unique" = [ + "k07c352f147b3", + "k41d6e65712bf", + "k92222a399def", +] +"sl.ddl.column-def" = [ + "k55a8e84daf71", + "k96767473c2aa", +] +"sl.ddl.column-name-list" = [ + "k01023264923b", + "k219e7a101d5e", + "k2b94bc772813", + "kb52b3d964662", +] +"sl.ddl.conflict-clause" = [ + "k0390590685d5", + "k1b3d4c03cd9b", +] +"sl.ddl.create-index-stmt" = [ + "k01fe96ce628f", + "k14cf7c840618", + "k14f486ca16f8", + "k17631ba86bdf", + "k3d5ee292b9ff", + "k55dc98db76fd", + "k65d1be0603de", + "ka6bd2617ceff", + "kac666033f75c", + "kb7c4c7bfcc05", + "kc3d5d1efff28", + "kc4ca5e3f61e2", + "kcb251bdc0aee", + "ke3daefe658cb", +] +"sl.ddl.create-table-stmt.as-select" = [ + "k1bc2eaf8c63d", + "k1f946dea411f", + "k38602fb96619", + "k3daac776fdc1", + "k67f3ecabd6d7", + "k8edc2cbf7047", + "k954e42eece92", + "k98fc3c1612dd", + "kc131897ac5e8", + "kd232aebfad1c", + "kf79f4e095aba", +] +"sl.ddl.create-table-stmt.columns" = [ + "k124043465723", + "k3543ed4bcaf5", + "k48c2dbaa9fc9", + "k5764a0d5c273", + "k7466beb83eb1", + "k7eb319c93c3d", + "k881e9939743c", + "k90a84273b49b", + "k9843373d26a4", + "ka4ca709d3014", + "ke16e9f4c0474", + "kf58086b18af8", + "kfd86647a9c53", +] +"sl.ddl.create-trigger-stmt" = [ + "k122a13f5e51f", + "k1231eae1212b", + "k16fd9981fc1d", + "k1d90a4ed01e0", + "k20672aaf1051", + "k2460c4019a60", + "k2bf6ee2b1aef", + "k586ddee797ef", + "k5a6d5bdba3a4", + "k5c1abba314b6", + "k5f9abed98457", + "k62fc41f6f878", + "k7fc8fd853219", + "k82429930c3f8", + "k84a64763ba7e", + "k8e975347704a", + "k8eaa6338167f", + "ka041df365b9b", + "ka809df9d3a04", + "kb0243caac2a6", + "kb191490abc9b", + "kb54359809717", + "kc82eb31169f2", + "kcecba98ab079", + "kd2b5e47055b0", + "kdbaf16b6c1fc", + "kdd2980df65e3", + "kf1e13e6f65b4", + "kf502500022d9", +] +"sl.ddl.create-view-stmt" = [ + "k088cc9b16bed", + "k2bbd48c61998", + "k555aa844e42f", + "k88ef1a6f385e", + "k8eb5c8f2447c", + "k96df0f683b94", + "ka1b76b60414e", + "ka2b81b6da309", + "ka92c2b6eb753", + "kcbf7a200322a", + "kcf697949d6de", + "kdbbf832c831a", + "ke1e32fb7f996", + "ke7f0674cdd3f", +] +"sl.ddl.create-virtual-table-stmt" = [ + "k11153fdf1ced", + "k43f925c66d3c", + "k495b2cb7217d", + "k5e5baf6ea40e", + "k6b868c9397b1", + "k6fb50031716b", + "k9615f7fddbb2", + "k9be1a6647de1", + "ka51eeb31d741", + "kb185e14f9cf2", + "kcaf3e36ef50d", + "ked80c7b4b431", +] +"sl.ddl.createtrigger.temp-on-qualified-table" = [ + "k088b35371267", + "k262a79cc7e4a", + "k3e926ed195a4", + "k4fe9edab4a98", + "k6a52d00f99e6", + "k8dadf4dcbe9f", + "k8e030bd36e03", + "k9667733ca09f", + "ka7ff7ace534e", + "kb340c40092fb", + "kba3908018379", + "kc45f83b02f0f", + "kc473e4b64caa", + "kcaefb1de490b", + "kd2956607540e", + "kdd3a4513c781", + "kdd94fe883dc6", + "keae1c2379d53", + "kf0ac5d5d7e94", + "kf45bb461d348", + "kf738b094194e", + "kfbc58883b5c9", +] +"sl.ddl.drop-index-stmt" = [ + "k67a55dbc8c32", + "k6c6c16a4e806", + "k8c6b57585624", + "k8e0070b55293", + "kaa23f8ada216", + "kb994a5c3ee5d", +] +"sl.ddl.drop-table-stmt" = [ + "k515e7280b63c", + "k59db4b46f165", + "k6283169e002f", + "ka2a7b5222e44", + "kc77c37a24553", + "ke4ec51937f58", +] +"sl.ddl.drop-trigger-stmt" = [ + "k75ed5996390a", + "k76ca3de69686", + "k86a7348a9618", + "kbd10064d3fd2", + "kd4017406a585", + "kd8588cccc506", +] +"sl.ddl.drop-view-stmt" = [ + "k1645c037c654", + "k2da523abc44f", + "k3fc6e5072144", + "k8fb6de26dc4f", + "k9421d94c1e6b", + "k9fc35e28358d", +] +"sl.ddl.foreign-key-clause" = [ + "k09e27a33c5a2", + "ka3c68274c2fd", + "kae99f88d2157", + "kb2b4bce55e28", + "kb2b6bf7c09d4", + "kc97df38ed488", + "kd83f33aa9a8a", + "ke10a99e3e683", +] +"sl.ddl.indexed-column" = [ + "k47081a2c84a6", + "k856ee3c94192", + "k9bf177183587", +] +"sl.ddl.stricttables.strict-column-types" = [ + "k05d52e102c4b", + "k32d6aa9c3168", + "k474719c8c8fc", + "k4fc1f9126071", + "k6bb337b7e726", + "k9a351e27b51a", + "k9c0fd17eb919", + "ka433576dc5a3", +] +"sl.ddl.table-constraint.check" = [ + "k2db7ec4c28af", + "k4f3f2285c085", + "k57eb8f6c8a72", + "k6edcd7e5764e", + "k8b75db84a909", + "k9647b15ea664", + "ka5590a613fab", +] +"sl.ddl.table-constraint.foreign-key" = [ + "k030af03cb81f", + "k0a68720b624a", + "k227e4ba14bba", + "k30f64ad306c4", + "k431c4b13849e", + "k797006a463fb", + "ka2bd62abf717", + "ka9826d5ea197", + "kad9d6b53976e", + "kb57648e4621c", + "kb5a3eb114090", +] +"sl.ddl.table-constraint.primary-key-autoincrement" = [ + "k1ab3d8e16885", + "k243da0509ffe", + "k2c2a223538da", + "k4ad288258c77", + "k547857da0529", + "k80e90ff987a2", + "k9d9da430fc64", + "ka3502d41a29b", +] +"sl.ddl.table-constraint.primary-key-or-unique" = [ + "k0ae1fa369f4e", + "k0d89a5d5e0ae", + "k5410cc9d7718", + "k586bb80bb1de", + "k648619824506", + "k6b7b789e93a9", + "kb137ba90873a", + "kbfce8ed7797a", + "kc63146562c4f", + "kf62777f9f693", +] +"sl.ddl.table-options" = [ + "k2386429f2af3", + "k78dff5915928", + "k83c211a65fce", + "ka7b86a11e645", +] +"sl.dml.delete-stmt" = [ + "k9ed8bb9692af", + "kc628fd25ab43", + "kd0d4492964db", + "ke364d98c2276", +] +"sl.dml.insert-stmt.default-values" = [ + "k0f2a23321ebe", + "k231f64d3e916", + "k2606f5d0ba65", + "k53a9279d144c", + "k596fa88d08a5", + "k6acc7054f988", + "k711b9514f8bf", + "k77ae10f93cc8", + "k78ad2b06fcdb", + "ka3231089a570", + "kb8c58c6cbc05", + "ke4fcba85284c", + "kf5b2ce484b9e", +] +"sl.dml.insert-stmt.select" = [ + "k2143eb4fe0d0", + "k2fb7e8e4df71", + "k32f88d38a310", + "k3af38c8c4982", + "k526d37518bfe", + "k55ca5d263ccd", + "k65ace5338b82", + "k767aa0ff19fe", + "kaea2d15e32e6", + "kbd0741d1d673", + "kbe486f61f2a3", + "kc6efd6250481", + "keae607fe8a6e", +] +"sl.dml.insert-stmt.values" = [ + "k0dabe74ed72a", + "k114f76a206b1", + "k161338d9ffdf", + "k1839f06a9992", + "k24bd24d36dbf", + "k2c308774a920", + "k35eed5603279", + "k729d4080eb23", + "k879dba055a5e", + "k9be7a940dedf", + "ka27df2194ee0", + "kbdfc29ff4056", + "kc01716140302", + "kcb005daa0dcb", + "kdc80d54292ae", +] +"sl.dml.qualified-table-name" = [ + "k216f2f2423a2", + "k4647ee99b1fd", + "k4f069dff203b", + "k8196563146e3", + "k92b771beb830", + "k98a556740331", + "k9e94a61b5436", + "kaec44e8fdf97", + "kc53d565a6dff", + "kfc87857712a7", +] +"sl.dml.returning-clause" = [ + "k184b5f734d87", + "kce9bea9ee425", +] +"sl.dml.update-stmt" = [ + "k0220cf191051", + "k148e849fe9bd", + "k268788611851", + "k54a7e7d10939", + "k7fecf8b07438", + "k882bd0865b5f", + "k940a33d1181b", + "kab6e1e540b85", + "kcfc05519fdca", + "kdac6d10052a5", +] +"sl.dml.upsert-clause" = [ + "k232acd014bd0", + "k29a1575705cf", + "k2d3aecb4d610", + "k3d1ca583edab", + "k542aab30b503", + "k8050b5c1845d", + "k9324f723d49b", + "k9e3ad386139b", + "kadf873f6d998", + "kbb176a501714", + "kc60392c8a2eb", + "kd985275be32e", + "kdb02f558a641", + "ke176aa3ac49f", + "kf82faac2646b", +] +"sl.expressions.expr.raise" = ["k19b368e52b7c"] +"sl.expressions.keywords.quoted-names" = ["k1b8bf0a58667"] +"sl.expressions.raise-function" = [ + "k7f266e44e9db", + "kb4bac7993179", + "kba09f7200d28", + "kbf0f9edb7f4a", +] +"sl.transaction_session.release-stmt" = [ + "kcdb88be95868", + "kf3630456707b", +] +"sl.transaction_session.rollback-stmt" = [ + "k69012053d2be", + "k8f49420d4636", +] +"sl.transaction_session.savepoint-stmt" = [ + "k7e4dde5bf4d7", + "kaca066a71fbf", +] +"sl.utility.analyze-stmt" = [ + "k51275ee26e36", + "k6761090b4158", + "kb276a96558f6", + "kfa3f39b4e0e3", +] +"sl.utility.attach-stmt" = [ + "k8cf8b016248a", + "k9b51d50b8376", + "ka639f8724c97", + "ka833a3f7ad46", +] +"sl.utility.detach-stmt" = [ + "k02035e813785", + "k1181f2f8602d", +] +"sl.utility.pragma-stmt" = [ + "k33c53105f21a", + "k363b9aed0b74", + "k3c997de2bdf4", + "k72f8c6bcfed5", + "kad575d142511", + "kd21f4787bc61", + "kf62dc6f26a94", +] +"sl.utility.pragma-value" = ["k3384ba81a797"] +"sl.utility.pragma.analysis-limit" = [ + "k9b8ff05b68a5", + "kefbcd905714e", +] +"sl.utility.pragma.application-id" = [ + "k33adeff80aaf", + "k46fe309601c0", + "k569855fd4d1e", + "k99a305e8c580", +] +"sl.utility.pragma.auto-vacuum" = [ + "k4d2cef430e81", + "k566584376228", + "k5f17d2ea9459", + "k667dc6d51ff7", + "kb2fd0c8054c6", +] +"sl.utility.pragma.automatic-index" = ["k8336afa80bad"] +"sl.utility.pragma.busy-timeout" = [ + "k35d0a6082174", + "kecae495097aa", +] +"sl.utility.pragma.cache-size" = [ + "k2e118dd6e02e", + "k2ece469e7348", + "k30f8ca610747", + "k75bd9046ec80", + "k9052f7577308", + "k945af734b219", + "kcc73c55ca37d", +] +"sl.utility.pragma.cache-spill" = [ + "k1c23e5003d81", + "k4b18a9540d30", + "k9c6f45717ef9", +] +"sl.utility.pragma.case-sensitive-like" = ["k7bdcef3dbb7d"] +"sl.utility.pragma.cell-size-check" = ["k6e290d50e091"] +"sl.utility.pragma.checkpoint-fullfsync" = ["k8b39526c2f4a"] +"sl.utility.pragma.count-changes" = ["k6221dc450529"] +"sl.utility.pragma.data-version" = [ + "k4434d6a585c6", + "k522b0b19fd1b", +] +"sl.utility.pragma.default-cache-size" = [ + "k3aab5130b2b6", + "k62cb41a310d7", + "k70ada23d8ad3", + "kda3cd097d82a", +] +"sl.utility.pragma.defer-foreign-keys" = ["ka4225a4ec91f"] +"sl.utility.pragma.empty-result-callbacks" = ["k42934b2c5358"] +"sl.utility.pragma.encoding" = [ + "k4567989b09cd", + "k7fbf684668ce", + "kecbe47b9a745", + "kfc06492a5628", +] +"sl.utility.pragma.foreign-key-check" = [ + "k491c5145ecb0", + "k4e3a649a7823", + "k812a0a927df8", + "k93a7edb7b4b6", + "kb621e1da7018", + "ke7c044829fbf", + "kf0d86c7b73d2", + "kfc731d709ac8", +] +"sl.utility.pragma.foreign-key-list" = [ + "k3a592749043b", + "k678761efa4b0", + "k7a592ef0931f", + "k8bee7f20b918", +] +"sl.utility.pragma.foreign-keys" = ["k90f9e1709794"] +"sl.utility.pragma.freelist-count" = [ + "k4cc0072d87a0", + "kc7a027e567d5", +] +"sl.utility.pragma.full-column-names" = ["k6c66c0006ca0"] +"sl.utility.pragma.fullfsync" = ["k1e436d5ab053"] +"sl.utility.pragma.hard-heap-limit" = ["k0ff852faeba9"] +"sl.utility.pragma.ignore-check-constraints" = ["kb73055d9c755"] +"sl.utility.pragma.incremental-vacuum" = [ + "k14f43024c10a", + "k2dc74626a475", + "k74d4ad7e6d09", + "k96630b105284", + "ka215bd7fc14a", + "ka5351a3d0777", + "kac5fa51ed171", +] +"sl.utility.pragma.index-info" = [ + "k048ab5d13632", + "k333960c9179a", + "k50c2cb3dda30", + "k6519065d7e88", + "k6ca40e18302f", + "ka042726532d3", + "kca545401ed68", +] +"sl.utility.pragma.index-list" = [ + "k44aaaf1032b5", + "k465f8a8d144a", + "k54d43c8e2aa3", + "k5e49f668b2b8", + "kab528da6ee79", + "kce596c3f7fea", +] +"sl.utility.pragma.index-xinfo" = [ + "k2adc8b238bae", + "k3f31425950cc", + "k6d8f05e2819f", + "keab817178301", + "kee29410985d1", + "kee75632cfbd8", +] +"sl.utility.pragma.integrity-check" = [ + "k5415b46bd101", + "k6c147a06a65d", + "k7538f424449e", + "k7d4fc64a2cb6", + "k822109e2a35e", + "k990509862d32", + "kba96fb0c069e", + "kf42622ca5738", +] +"sl.utility.pragma.journal-mode" = [ + "k36e906b7174f", + "k9ec99c5d1885", + "kb32624d2dcfa", + "kde9e2034c804", + "kfa07e581ec57", +] +"sl.utility.pragma.journal-size-limit" = [ + "k0543a5119e75", + "k351033a4e382", + "k602ea541cde8", + "k891b9bd4fe0b", +] +"sl.utility.pragma.legacy-alter-table" = ["kfe8998a05570"] +"sl.utility.pragma.locking-mode" = [ + "k24b9ae20545f", + "k2c33ff8bda3f", + "k6b9be9fd9548", + "kebb9e6418f78", + "kfe28ab89786a", +] +"sl.utility.pragma.max-page-count" = [ + "k4342879e6b55", + "k439c521c9859", + "kb275dd83b090", + "kbb7a699f7fa3", +] +"sl.utility.pragma.mmap-size" = [ + "k1d777c1c825c", + "k4f74d2f36c8e", + "k58b061ca0f80", + "ka1e457370365", +] +"sl.utility.pragma.optimize" = [ + "k4002bd23a6e9", + "k488a1f8adf18", + "k59af072c261c", + "k704b5cfe01b9", + "k8daae37a239a", + "k96d7f0547f29", +] +"sl.utility.pragma.page-count" = [ + "k9bc0e474298e", + "kb8d1e748048f", +] +"sl.utility.pragma.page-size" = [ + "k2dc33fb4cc3a", + "k4c9940cea852", + "k53d78bef4539", + "k8cabde463786", + "kaf0876b9a4eb", +] +"sl.utility.pragma.query-only" = ["k74dd0fd733d5"] +"sl.utility.pragma.quick-check" = [ + "k50b44be12847", + "k612751eabebb", + "k76d7c3c3595c", + "k9c68b084bdfc", + "kd837a976fb2a", + "ke3ceab0831ee", + "kf0152095c825", + "kf487746c4838", +] +"sl.utility.pragma.read-uncommitted" = ["kd5954b6a17f5"] +"sl.utility.pragma.recursive-triggers" = ["k511cec1059bd"] +"sl.utility.pragma.reverse-unordered-selects" = ["k113e60968cf6"] +"sl.utility.pragma.schema-version" = [ + "k5cf7c5a1323b", + "k87b267d50508", + "k8dd5aa4642ea", + "k9b28bf8ac8bb", +] +"sl.utility.pragma.secure-delete" = [ + "k4ca9dbc160d8", + "k55a42a7e1178", + "k8bfa0d89f093", + "kc530f6da24e5", +] +"sl.utility.pragma.short-column-names" = ["k57d083b3f978"] +"sl.utility.pragma.soft-heap-limit" = ["k55d48f4639bb"] +"sl.utility.pragma.synchronous" = [ + "k1a294dc5da9c", + "ka963fbd5474e", + "kaff883dc851a", + "kcbdf0f323307", +] +"sl.utility.pragma.table-info" = [ + "k08ddc6b86b44", + "k764000a6754e", + "k8d68d28e2160", + "k8f8b42537b46", + "keaa5115799b3", + "kfab888d3128e", +] +"sl.utility.pragma.table-list" = [ + "k0bb670debb36", + "k79b9c171a539", + "k9bc2216887bc", + "kc12cd06ecffc", + "kfa2319360314", + "kfffddfc6c8a2", +] +"sl.utility.pragma.table-xinfo" = [ + "k04404a9d3e77", + "k611044434ada", + "k87a664b83350", + "kb7f8e615fdb7", + "ke5953e478564", + "keb4504b44a1e", +] +"sl.utility.pragma.temp-store" = ["k4795fa9c5140"] +"sl.utility.pragma.temp-store-directory" = [ + "k98f23980b3c4", + "k9b03eee45342", +] +"sl.utility.pragma.threads" = ["k369db5c65935"] +"sl.utility.pragma.trusted-schema" = ["k3cb7ff329f78"] +"sl.utility.pragma.user-version" = [ + "k22ca938fbf62", + "k333df247c5b8", + "k82a0ff7c6310", + "kbd584738e838", +] +"sl.utility.pragma.wal-autocheckpoint" = ["kfbd9407ef75b"] +"sl.utility.pragma.wal-checkpoint" = [ + "k2fabed59d18b", + "k55cc633cab67", + "k6b3ea2d33dce", + "k809b97dc4075", + "k90a0fd3138b1", + "k9a806646e854", + "k9ca1d60967b0", + "ka0fd7222d8cc", + "ka4840f43837e", + "ka79b3a676e51", + "kca550e8c5d4d", + "kd1c136dc569c", + "kf0765a3e4f4e", + "kf24df4ebfc0b", + "kfedf18036815", +] +"sl.utility.pragma.writable-schema" = [ + "k0868d898400b", + "k1758b79a53d1", +] +"sl.utility.reindex-stmt" = [ + "k0174163e1ee9", + "k39d0485a8a1a", + "k86bb73e27d84", +] +"sl.utility.sql-stmt" = ["kf5d6c42a2615"] +"sl.utility.vacuum-stmt" = [ + "k00d49f472e79", + "k977646f4fd88", +] + +[parsed_cases_refused] diff --git a/coverage/syntax/baseline.json b/coverage/syntax/baseline.json index 853ea575b..d1609bc69 100644 --- a/coverage/syntax/baseline.json +++ b/coverage/syntax/baseline.json @@ -45171,6 +45171,7 @@ "sf.expressions.bind-variables.o008", "sf.expressions.bind-variables.o009", "sf.expressions.bind-variables.o010", + "sf.expressions.bind-variables.o014", "sf.expressions.commands-model-function.model-default-version.o001", "sf.expressions.commands-model-function.model-default-version.o002", "sf.expressions.commands-model-function.model-default-version.o003", @@ -90084,6 +90085,7 @@ "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.k753cf0a03450", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.k7726d38c6671", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.k7e720739ab61", + "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.k806fe7b31588", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.k80c2110f1d1c", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.k81b971029e2e", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.k848ecb907a95", @@ -90146,6 +90148,7 @@ "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kd630e4dd8e50", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kd679f3ca1b11", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kda19e569dfcf", + "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kdc01f9aab91b", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kdc162be9b8ba", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kdea013521fc8", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kdf4d8a562771", @@ -90167,6 +90170,7 @@ "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k00669fddd144", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k04bdc8e66b6d", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k05509c4b3a2d", + "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k08c71203f32e", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k0ae90e808846", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k0e19ad9068f2", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k0e1b1b03dda2", @@ -90274,6 +90278,7 @@ "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kb5e791d5b444", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kb642604f5adb", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kb64789d823ee", + "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kb687ff6c6e8a", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kb8fd09ff4741", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kbaae3bb348f6", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kbbcbc51ff34f", @@ -91554,6 +91559,7 @@ "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k54e567950afa", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k569bb8720d07", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k599af4385ffa", + "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k5cd0dd212be2", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k614c8c87c4ee", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k6447ed047bbe", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k813f96858bda", @@ -91566,6 +91572,7 @@ "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k98fcf5a0a78a", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k9cd865f3f9c3", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.ka22f75438dfd", + "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kba68af4f6b28", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kbd8fe4a43b47", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kbfb5033498c6", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kc6052505d8b4", @@ -92028,6 +92035,7 @@ "sf.ddl.create-model-monitor.version-function-source-warehouse.kfbaa79f6c2cc", "sf.ddl.create-model.internalstage.k1d42e16e76d5", "sf.ddl.create-model.internalstage.k294eb2b20343", + "sf.ddl.create-model.internalstage.k29e1ea401b04", "sf.ddl.create-model.internalstage.k2c1c8ef2af97", "sf.ddl.create-model.internalstage.k5a3cf3d4bf91", "sf.ddl.create-model.internalstage.k5bf5f33dc528", @@ -92040,6 +92048,7 @@ "sf.ddl.create-model.internalstage.k8127973f7225", "sf.ddl.create-model.internalstage.k8350773d9e61", "sf.ddl.create-model.internalstage.k858ecc1fda46", + "sf.ddl.create-model.internalstage.k8a1e5cdd7649", "sf.ddl.create-model.internalstage.k8b5af4683bd8", "sf.ddl.create-model.internalstage.k8bab2c7bb306", "sf.ddl.create-model.internalstage.k8d8518080b1b", @@ -92055,6 +92064,7 @@ "sf.ddl.create-model.internalstage.ke964885a3a5d", "sf.ddl.create-model.internalstage.kf0d1785a032b", "sf.ddl.create-model.internalstage.kf6fa8ab5044b", + "sf.ddl.create-model.internalstage.kf860894628ea", "sf.ddl.create-model.model.k1182e6c40225", "sf.ddl.create-model.model.k4ce9f50d7955", "sf.ddl.create-model.model.k5b88945c8ea3", @@ -97888,6 +97898,7 @@ "sf.dml.copy-into-location.kdc7f22e2341f", "sf.dml.copy-into-location.kdd1c13e33298", "sf.dml.copy-into-location.kddad112916ae", + "sf.dml.copy-into-location.kddec9dc1bed3", "sf.dml.copy-into-location.ke0035973f59f", "sf.dml.copy-into-location.ke056e162f6b7", "sf.dml.copy-into-location.ke18ed99b4ad5", @@ -97997,6 +98008,7 @@ "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k51bf7ba74f25", "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k526b8451a05e", "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k52ea9e6ea3d3", + "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k558b48e7668f", "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k559a6d0469ff", "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k55d0b52e2f66", "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k5ae72d819d82", @@ -98277,6 +98289,7 @@ "sf.dml.copy-into-table.select-from-internalstage-externalstage.k53887febf371", "sf.dml.copy-into-table.select-from-internalstage-externalstage.k538ef3f96e05", "sf.dml.copy-into-table.select-from-internalstage-externalstage.k5620ba313c73", + "sf.dml.copy-into-table.select-from-internalstage-externalstage.k57aa3568c45c", "sf.dml.copy-into-table.select-from-internalstage-externalstage.k57abbefaa884", "sf.dml.copy-into-table.select-from-internalstage-externalstage.k57f75180d042", "sf.dml.copy-into-table.select-from-internalstage-externalstage.k581f9d76fbb9", @@ -99403,6 +99416,8 @@ "sf.functions.case.end.syntax.k256ffbccb2a7", "sf.functions.case.end.syntax.k434df23f016b", "sf.functions.case.end.syntax.ked8b12251b2f", + "sf.functions.cast.cast-as.k2fe12ee57005", + "sf.functions.cast.cast-as.k47ffa46f62a6", "sf.functions.cast.cast-as.k6af2ed512f43", "sf.functions.cast.cast-as.kf37ed54cdbfe", "sf.functions.cast.double-colon.k18b68c5445bb", @@ -102758,6 +102773,7 @@ "sf.query.select.select.kdfa544dea31c", "sf.query.select.select.ked57c50fb0ae", "sf.query.select.select.selecting-specific-columns.k03dd1bf504d6", + "sf.query.select.select.selecting-specific-columns.k182d9ed5aea5", "sf.query.select.select.selecting-specific-columns.k2520796c372f", "sf.query.select.select.selecting-specific-columns.k2a347e252f14", "sf.query.select.select.selecting-specific-columns.k3c45b49b5ab8", @@ -104096,6 +104112,9 @@ "sf.security_admin.alter-organization-account.set-resource-monitor.kb7139194c9f1", "sf.security_admin.alter-organization-account.set-tag.k965913368318", "sf.security_admin.alter-organization-account.set-tag.ke4f67d4d8253", + "sf.security_admin.alter-organization-account.set.k17b7fd233892", + "sf.security_admin.alter-organization-account.set.k6f68795247c0", + "sf.security_admin.alter-organization-account.set.ka99c224318fc", "sf.security_admin.alter-organization-account.unset-password-session-policy.k2bb9a0c93ea1", "sf.security_admin.alter-organization-account.unset-password-session-policy.k53e02403e223", "sf.security_admin.alter-organization-account.unset-tag.kb532e5e75bbe", @@ -115152,14 +115171,12 @@ "sf.ddl.alter-materialized-view.unset-data-metric-schedule.k6c6e1d0a1818", "sf.ddl.alter-materialized-view.unset-data-metric-schedule.k98ab0a59cfc7", "sf.ddl.alter-materialized-view.unset-data-metric-schedule.kd4d3664f7f6d", - "sf.ddl.alter-model-add-version.internalstage.k0f7091ee32a3", "sf.ddl.alter-model-add-version.internalstage.k1da7b65e1682", "sf.ddl.alter-model-add-version.internalstage.k45726d0d2f4d", "sf.ddl.alter-model-add-version.internalstage.k4d4e87f300e5", "sf.ddl.alter-model-add-version.internalstage.k7bb5e0d2ff64", "sf.ddl.alter-model-add-version.internalstage.k81b3ec32ef07", "sf.ddl.alter-model-add-version.internalstage.k846a0948b200", - "sf.ddl.alter-model-add-version.internalstage.k88e5d4da4a45", "sf.ddl.alter-model-add-version.internalstage.k9383b8977c30", "sf.ddl.alter-model-add-version.internalstage.k95e9142d228a", "sf.ddl.alter-model-add-version.internalstage.kaee6e6e7cf22", @@ -115168,7 +115185,6 @@ "sf.ddl.alter-model-add-version.internalstage.kcd12f55728f1", "sf.ddl.alter-model-add-version.internalstage.kce3c6c0383b0", "sf.ddl.alter-model-add-version.internalstage.kec49bb8256db", - "sf.ddl.alter-model-add-version.internalstage.kee358b7efaff", "sf.ddl.alter-model-add-version.internalstage.kf536f380c602", "sf.ddl.alter-model-add-version.internalstage.kf91a47281305", "sf.ddl.alter-model-add-version.model.k00e616dd07db", @@ -115206,6 +115222,7 @@ "sf.ddl.alter-model-modify-version.k4046cb02685f", "sf.ddl.alter-model-modify-version.k7c4ad08fc3c6", "sf.ddl.alter-model-modify-version.k99da9e673c5a", + "sf.ddl.alter-model-modify-version.ka045b23e0a15", "sf.ddl.alter-model-modify-version.kbb3fcd9f4c54", "sf.ddl.alter-model-modify-version.kc2c7675340e7", "sf.ddl.alter-model-modify-version.kdc359eede618", @@ -115295,6 +115312,7 @@ "sf.ddl.alter-model.version-set-alias.k003c58b74340", "sf.ddl.alter-model.version-set-alias.k0d3c9427d721", "sf.ddl.alter-model.version-set-alias.k1679423bbe76", + "sf.ddl.alter-model.version-set-alias.k496721a8f35f", "sf.ddl.alter-model.version-set-alias.k6903deb51055", "sf.ddl.alter-model.version-set-alias.k6b1c1af81ad3", "sf.ddl.alter-model.version-set-alias.k6e59b5551d4e", @@ -119130,7 +119148,6 @@ "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kb05cf35b6ff6", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kb0aa3500bae4", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kb2a2ccee204a", - "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kb5233f398e93", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kb6a7dc9e267a", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kb7f07ac1cc4f", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kc12be3eac4ad", @@ -119143,7 +119160,6 @@ "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kca9723891c42", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kccabf3990a07", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kd107045a2c7d", - "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kd3d829059009", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kdf8473efd250", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.ke2a66a185456", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.ke3721d5771f3", @@ -119161,7 +119177,6 @@ "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kf705c441afdf", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kfbea6ddfd01e", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k0075bd0a3794", - "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k00b406d426b6", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k01811b0e6063", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k04d672e07ded", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k0c91654b131b", @@ -119275,7 +119290,6 @@ "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kf85c3a933e0e", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kf9123e2ad856", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kfaed3fffc6f0", - "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kfbd01554f919", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kfd37a44e6c42", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kfd9bdaf24f1b", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kfe7c14235ea8", @@ -120514,7 +120528,6 @@ "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k72cc67bc7c19", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k79407d0fc544", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k7c2f61e7b338", - "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k7ca67e8d509c", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k7cfd5fd26e76", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k813c980ce74a", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k8248f41292a1", @@ -120552,7 +120565,6 @@ "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kc07d468e0920", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kc1bc6cd904c8", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kc34f04b85cee", - "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kc6baec2753ad", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kcaf63f9edbd6", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kcafbae1af795", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kcb58f6e6f340", @@ -120630,9 +120642,7 @@ "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k07465411cf50", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k0bedfe4ce83c", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k0de9c64075c3", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k0e3560c167a6", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k0e98f31579c3", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k137ac2487c9b", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k14ded43c308b", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k1560e977a920", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k163b4308dade", @@ -120642,9 +120652,7 @@ "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k2b55c93b758b", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k343d1188135f", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k3856566e14ca", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k38d2ede4b72e", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k3d20fc08a333", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k3ee9c3303030", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k40a32906b1ad", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k40dff713b163", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k45f72c0e71d8", @@ -120654,14 +120662,11 @@ "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k4d9032778fb1", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k5eedaf28bf82", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k60a9c48d5c67", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k61ab4894c557", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k72c534a7a303", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k77a9113ce006", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k7b1c979db46d", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k96a3cc026262", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k96c52e63293a", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k97c92a5930eb", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k99f8e39993ac", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k9bc30905bdea", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.ka188418407c7", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.ka54f80f9caff", @@ -120669,7 +120674,6 @@ "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.kaf8e571b9993", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.kafaed5cb2047", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.kb7560c299bf6", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.kb8d964c8574d", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.kb9a5cb920ec5", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.kbb744efc244a", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.kbe1de1ae5fbb", @@ -122192,7 +122196,6 @@ "sf.ddl.create-semantic-view.create-or-alter-semantic.k325c07eea011", "sf.ddl.create-semantic-view.create-or-alter-semantic.k341368b7ce29", "sf.ddl.create-semantic-view.create-or-alter-semantic.k358d373085a0", - "sf.ddl.create-semantic-view.create-or-alter-semantic.k35939a212e99", "sf.ddl.create-semantic-view.create-or-alter-semantic.k36befb5c4126", "sf.ddl.create-semantic-view.create-or-alter-semantic.k37caba06d7b6", "sf.ddl.create-semantic-view.create-or-alter-semantic.k38c29af77900", @@ -122258,7 +122261,6 @@ "sf.ddl.create-semantic-view.create-or-alter-semantic.k809193497a6d", "sf.ddl.create-semantic-view.create-or-alter-semantic.k82e3eac2ecdb", "sf.ddl.create-semantic-view.create-or-alter-semantic.k832e1293e1ef", - "sf.ddl.create-semantic-view.create-or-alter-semantic.k846ee1e37b27", "sf.ddl.create-semantic-view.create-or-alter-semantic.k847adcca8897", "sf.ddl.create-semantic-view.create-or-alter-semantic.k85e293851d1d", "sf.ddl.create-semantic-view.create-or-alter-semantic.k885f2c9b4ab8", @@ -122279,7 +122281,6 @@ "sf.ddl.create-semantic-view.create-or-alter-semantic.k9b0ae6aea8d1", "sf.ddl.create-semantic-view.create-or-alter-semantic.k9b130e952b96", "sf.ddl.create-semantic-view.create-or-alter-semantic.k9b3e64b05cb3", - "sf.ddl.create-semantic-view.create-or-alter-semantic.k9e4266a7b22b", "sf.ddl.create-semantic-view.create-or-alter-semantic.k9f33b0a090a6", "sf.ddl.create-semantic-view.create-or-alter-semantic.k9f4d6f52816c", "sf.ddl.create-semantic-view.create-or-alter-semantic.ka07a19ff0b4f", @@ -122292,13 +122293,10 @@ "sf.ddl.create-semantic-view.create-or-alter-semantic.ka99e0f8c6cd7", "sf.ddl.create-semantic-view.create-or-alter-semantic.kaa82d01c7a3c", "sf.ddl.create-semantic-view.create-or-alter-semantic.kac09b364beb2", - "sf.ddl.create-semantic-view.create-or-alter-semantic.kac6b44ba54a6", "sf.ddl.create-semantic-view.create-or-alter-semantic.kad4e199436e2", "sf.ddl.create-semantic-view.create-or-alter-semantic.kadb6c2311c49", "sf.ddl.create-semantic-view.create-or-alter-semantic.kb3363411b77a", - "sf.ddl.create-semantic-view.create-or-alter-semantic.kb6f96db81738", "sf.ddl.create-semantic-view.create-or-alter-semantic.kb7cebed72563", - "sf.ddl.create-semantic-view.create-or-alter-semantic.kb9f528a26d0f", "sf.ddl.create-semantic-view.create-or-alter-semantic.kba24e9207cea", "sf.ddl.create-semantic-view.create-or-alter-semantic.kbc4dc430c6b4", "sf.ddl.create-semantic-view.create-or-alter-semantic.kbcdde7baef76", @@ -122413,7 +122411,6 @@ "sf.ddl.create-semantic-view.create-semantic-view-tables.k4e370270900f", "sf.ddl.create-semantic-view.create-semantic-view-tables.k5029dba128ee", "sf.ddl.create-semantic-view.create-semantic-view-tables.k510f4ca2c6ad", - "sf.ddl.create-semantic-view.create-semantic-view-tables.k514264d43657", "sf.ddl.create-semantic-view.create-semantic-view-tables.k52b700d82f3d", "sf.ddl.create-semantic-view.create-semantic-view-tables.k53458ae72cbb", "sf.ddl.create-semantic-view.create-semantic-view-tables.k5348ecc47ebf", @@ -122427,7 +122424,6 @@ "sf.ddl.create-semantic-view.create-semantic-view-tables.k637a53c9bd91", "sf.ddl.create-semantic-view.create-semantic-view-tables.k64b70662a5bc", "sf.ddl.create-semantic-view.create-semantic-view-tables.k652cfbf3fe77", - "sf.ddl.create-semantic-view.create-semantic-view-tables.k65320331f191", "sf.ddl.create-semantic-view.create-semantic-view-tables.k6595bc8e34dd", "sf.ddl.create-semantic-view.create-semantic-view-tables.k69264ffae57d", "sf.ddl.create-semantic-view.create-semantic-view-tables.k69d019810f77", @@ -122448,7 +122444,6 @@ "sf.ddl.create-semantic-view.create-semantic-view-tables.k7dff173e3133", "sf.ddl.create-semantic-view.create-semantic-view-tables.k7e7cec1663fc", "sf.ddl.create-semantic-view.create-semantic-view-tables.k7eb0d8182028", - "sf.ddl.create-semantic-view.create-semantic-view-tables.k85b47a106293", "sf.ddl.create-semantic-view.create-semantic-view-tables.k8609758f8a8e", "sf.ddl.create-semantic-view.create-semantic-view-tables.k8610a7ca2be8", "sf.ddl.create-semantic-view.create-semantic-view-tables.k887420b74cd0", @@ -122484,7 +122479,6 @@ "sf.ddl.create-semantic-view.create-semantic-view-tables.kacddd3dfa42a", "sf.ddl.create-semantic-view.create-semantic-view-tables.kad23ffbef1b6", "sf.ddl.create-semantic-view.create-semantic-view-tables.kb08e595f9dd8", - "sf.ddl.create-semantic-view.create-semantic-view-tables.kb23a86447144", "sf.ddl.create-semantic-view.create-semantic-view-tables.kb38d5d0aa0f0", "sf.ddl.create-semantic-view.create-semantic-view-tables.kb434fd87d287", "sf.ddl.create-semantic-view.create-semantic-view-tables.kb461fd47c4f5", @@ -122509,7 +122503,6 @@ "sf.ddl.create-semantic-view.create-semantic-view-tables.kc7d7dc7490b3", "sf.ddl.create-semantic-view.create-semantic-view-tables.kc8302bda9d4d", "sf.ddl.create-semantic-view.create-semantic-view-tables.kc91d4897a4fd", - "sf.ddl.create-semantic-view.create-semantic-view-tables.kc946cff65c82", "sf.ddl.create-semantic-view.create-semantic-view-tables.kc95996d4fb1f", "sf.ddl.create-semantic-view.create-semantic-view-tables.kc9a724c010d5", "sf.ddl.create-semantic-view.create-semantic-view-tables.kcb0a08c5eeae", @@ -122550,7 +122543,6 @@ "sf.ddl.create-semantic-view.create-semantic-view-tables.kf002d47dc433", "sf.ddl.create-semantic-view.create-semantic-view-tables.kf0645f57cc68", "sf.ddl.create-semantic-view.create-semantic-view-tables.kf2653730a5ad", - "sf.ddl.create-semantic-view.create-semantic-view-tables.kf2ff450727f8", "sf.ddl.create-semantic-view.create-semantic-view-tables.kf72def63bcd5", "sf.ddl.create-semantic-view.create-semantic-view-tables.kf867ca6869f4", "sf.ddl.create-semantic-view.create-semantic-view-tables.kf9550fd72b39", @@ -122560,7 +122552,7 @@ "sf.ddl.create-semantic-view.create-semantic-view-tables.kffe4287aed56", "sf.ddl.create-semantic-view.define-semantic-view.k00b2beebb24a", "sf.ddl.create-semantic-view.define-semantic-view.k02feb0e787c3", - "sf.ddl.create-semantic-view.define-semantic-view.k033454da05eb", + "sf.ddl.create-semantic-view.define-semantic-view.k0505d25adf5b", "sf.ddl.create-semantic-view.define-semantic-view.k051542eb5c0b", "sf.ddl.create-semantic-view.define-semantic-view.k066326031550", "sf.ddl.create-semantic-view.define-semantic-view.k087a69845788", @@ -122571,7 +122563,6 @@ "sf.ddl.create-semantic-view.define-semantic-view.k0f467e3a66bf", "sf.ddl.create-semantic-view.define-semantic-view.k1079f9527c99", "sf.ddl.create-semantic-view.define-semantic-view.k10f80445d431", - "sf.ddl.create-semantic-view.define-semantic-view.k16be82d48ebb", "sf.ddl.create-semantic-view.define-semantic-view.k19a83cfd0d1f", "sf.ddl.create-semantic-view.define-semantic-view.k1a3bf229d3cf", "sf.ddl.create-semantic-view.define-semantic-view.k1d7e45a89f38", @@ -122602,6 +122593,7 @@ "sf.ddl.create-semantic-view.define-semantic-view.k3e9ce807c829", "sf.ddl.create-semantic-view.define-semantic-view.k40ca423973d8", "sf.ddl.create-semantic-view.define-semantic-view.k4164f0127bd5", + "sf.ddl.create-semantic-view.define-semantic-view.k42cf90e31b74", "sf.ddl.create-semantic-view.define-semantic-view.k42f4292b31b3", "sf.ddl.create-semantic-view.define-semantic-view.k433d590466af", "sf.ddl.create-semantic-view.define-semantic-view.k45e99c3c80da", @@ -122619,7 +122611,6 @@ "sf.ddl.create-semantic-view.define-semantic-view.k52256933e353", "sf.ddl.create-semantic-view.define-semantic-view.k527a520d749e", "sf.ddl.create-semantic-view.define-semantic-view.k52d8eb05cb34", - "sf.ddl.create-semantic-view.define-semantic-view.k52d8fcfdc93c", "sf.ddl.create-semantic-view.define-semantic-view.k5466d7311dd6", "sf.ddl.create-semantic-view.define-semantic-view.k551067218637", "sf.ddl.create-semantic-view.define-semantic-view.k5518577c8eae", @@ -122636,14 +122627,12 @@ "sf.ddl.create-semantic-view.define-semantic-view.k6583774d5444", "sf.ddl.create-semantic-view.define-semantic-view.k67ad56140bc9", "sf.ddl.create-semantic-view.define-semantic-view.k6c5239eddad2", - "sf.ddl.create-semantic-view.define-semantic-view.k6d7e5803f1af", "sf.ddl.create-semantic-view.define-semantic-view.k6e0eda90fa75", "sf.ddl.create-semantic-view.define-semantic-view.k6fa0ff512456", "sf.ddl.create-semantic-view.define-semantic-view.k6fd42041aa28", - "sf.ddl.create-semantic-view.define-semantic-view.k7118a64845f3", "sf.ddl.create-semantic-view.define-semantic-view.k71578233dcc1", + "sf.ddl.create-semantic-view.define-semantic-view.k72552038b947", "sf.ddl.create-semantic-view.define-semantic-view.k750f00895fc6", - "sf.ddl.create-semantic-view.define-semantic-view.k781ed6371e99", "sf.ddl.create-semantic-view.define-semantic-view.k784fe1153168", "sf.ddl.create-semantic-view.define-semantic-view.k78b042b4234c", "sf.ddl.create-semantic-view.define-semantic-view.k7a07e1020c2c", @@ -122661,7 +122650,6 @@ "sf.ddl.create-semantic-view.define-semantic-view.k876aaef01074", "sf.ddl.create-semantic-view.define-semantic-view.k88a404386184", "sf.ddl.create-semantic-view.define-semantic-view.k8b6ed8b7cf11", - "sf.ddl.create-semantic-view.define-semantic-view.k8c4eb9f33500", "sf.ddl.create-semantic-view.define-semantic-view.k8dd7796f6435", "sf.ddl.create-semantic-view.define-semantic-view.k8e7cb0f05f77", "sf.ddl.create-semantic-view.define-semantic-view.k9172e1af7f14", @@ -122682,12 +122670,14 @@ "sf.ddl.create-semantic-view.define-semantic-view.k9c5bbb2254a2", "sf.ddl.create-semantic-view.define-semantic-view.k9ddafcebd133", "sf.ddl.create-semantic-view.define-semantic-view.k9e308b192281", + "sf.ddl.create-semantic-view.define-semantic-view.k9ef4aceaf1f3", "sf.ddl.create-semantic-view.define-semantic-view.k9f2d5811dc42", "sf.ddl.create-semantic-view.define-semantic-view.ka147bf296c4b", "sf.ddl.create-semantic-view.define-semantic-view.ka32867c7e109", "sf.ddl.create-semantic-view.define-semantic-view.ka83fad0a418f", "sf.ddl.create-semantic-view.define-semantic-view.ka84c1ddc8e48", "sf.ddl.create-semantic-view.define-semantic-view.kad0f76da58c2", + "sf.ddl.create-semantic-view.define-semantic-view.kada6ff388a97", "sf.ddl.create-semantic-view.define-semantic-view.kaf41c4cb426f", "sf.ddl.create-semantic-view.define-semantic-view.kb1504de8258f", "sf.ddl.create-semantic-view.define-semantic-view.kb154fdfb043f", @@ -122705,6 +122695,7 @@ "sf.ddl.create-semantic-view.define-semantic-view.kc3cd4bac356a", "sf.ddl.create-semantic-view.define-semantic-view.kc42d18b9800d", "sf.ddl.create-semantic-view.define-semantic-view.kc4be60679b05", + "sf.ddl.create-semantic-view.define-semantic-view.kc556d3d0342e", "sf.ddl.create-semantic-view.define-semantic-view.kc65ca4a34c61", "sf.ddl.create-semantic-view.define-semantic-view.kc69ea718328a", "sf.ddl.create-semantic-view.define-semantic-view.kc9d99f1db0f2", @@ -122753,6 +122744,7 @@ "sf.ddl.create-semantic-view.define-semantic-view.kf5483f11a1b1", "sf.ddl.create-semantic-view.define-semantic-view.kf58857075b21", "sf.ddl.create-semantic-view.define-semantic-view.kf7d591dc7e82", + "sf.ddl.create-semantic-view.define-semantic-view.kf7e8c3a49d89", "sf.ddl.create-semantic-view.define-semantic-view.kf8216dbb6b72", "sf.ddl.create-semantic-view.define-semantic-view.kf86d05aeddd6", "sf.ddl.create-semantic-view.define-semantic-view.kf90cc4985443", @@ -124227,6 +124219,7 @@ "sf.ddl.create-table.create-table-from-archive.k0c7beac766b4", "sf.ddl.create-table.create-table-from-archive.k2853343b5796", "sf.ddl.create-table.create-table-from-archive.k2f194a1d0ad5", + "sf.ddl.create-table.create-table-from-archive.k3beac591b849", "sf.ddl.create-table.create-table-from-archive.k47232bd28cd9", "sf.ddl.create-table.create-table-from-archive.k68a5c6c807ef", "sf.ddl.create-table.create-table-from-archive.k6afa591234d2", @@ -126545,18 +126538,24 @@ "sf.ddl.show-sequences.ke3e7e2abbd43", "sf.ddl.show-sequences.ke9fae52677ae", "sf.ddl.show-sequences.kf24a55d6c1f7", + "sf.ddl.show-service-containers-in-service.k0b3208246c0f", + "sf.ddl.show-service-containers-in-service.k0d7585bbc9e6", "sf.ddl.show-service-containers-in-service.k5405f2ea85a1", "sf.ddl.show-service-containers-in-service.k94f5e0882830", "sf.ddl.show-service-containers-in-service.kb4804fab5adf", "sf.ddl.show-service-containers-in-service.kce919ad39bee", "sf.ddl.show-service-containers-in-service.kd98f9ed0378b", + "sf.ddl.show-service-instances-in-service.k281832eec14a", "sf.ddl.show-service-instances-in-service.k2f5fe5c7afb3", + "sf.ddl.show-service-instances-in-service.k406e9c60d81c", "sf.ddl.show-service-instances-in-service.kae842ee2db47", "sf.ddl.show-service-instances-in-service.ke8abaf8fe2c4", "sf.ddl.show-service-instances-in-service.kf01905e18db2", "sf.ddl.show-service-volumes-in-service.k00ec6ef0c83e", + "sf.ddl.show-service-volumes-in-service.k8bcbcc06f002", "sf.ddl.show-service-volumes-in-service.kb17f8e56d240", "sf.ddl.show-service-volumes-in-service.kb6cc208b2fd0", + "sf.ddl.show-service-volumes-in-service.kce1bcd7dfd8b", "sf.ddl.show-services.k06ce1e64aef7", "sf.ddl.show-services.k11babac015e9", "sf.ddl.show-services.k14bc89214563", @@ -126911,8 +126910,6 @@ "sf.ddl.undrop-variable.k5d702ade4076", "sf.ddl.undrop-variable.k6f4bdebc3517", "sf.ddl.undrop-variable.kbfdaf4fdb025", - "sf.dml.copy-files.from-select-from.k000bfe7b2770", - "sf.dml.copy-files.from-select-from.k115e2f6e996c", "sf.dml.copy-files.from-select-from.k13ed711d0a2a", "sf.dml.copy-files.from-select-from.k200aa97742fe", "sf.dml.copy-files.from-select-from.k5678636c26ed", @@ -126929,8 +126926,6 @@ "sf.dml.copy-files.from.k32fc95f01274", "sf.dml.copy-files.from.k444ef1403029", "sf.dml.copy-files.from.k70668625c8f1", - "sf.dml.copy-files.from.k730fe88084b4", - "sf.dml.copy-files.from.k7bbb4d4130c5", "sf.dml.copy-files.from.k81dfb1420864", "sf.dml.copy-files.from.ka54d003e773d", "sf.dml.copy-files.from.kc4cfd5341b4c", @@ -127008,12 +127003,10 @@ "sf.dml.copy-into-location.k917a50138faf", "sf.dml.copy-into-location.k97c97cac3007", "sf.dml.copy-into-location.k99e03a88698c", - "sf.dml.copy-into-location.k9f835e9bec49", "sf.dml.copy-into-location.ka30d9a5dadf2", "sf.dml.copy-into-location.ka8d9e248d67d", "sf.dml.copy-into-location.ka9f21d92224d", "sf.dml.copy-into-location.kac0d649497ad", - "sf.dml.copy-into-location.kad25d1767527", "sf.dml.copy-into-location.kb142b719713e", "sf.dml.copy-into-location.kb5899643c307", "sf.dml.copy-into-location.kb7e20026e78c", @@ -127027,7 +127020,6 @@ "sf.dml.copy-into-location.kc49615fb3e17", "sf.dml.copy-into-location.kc4c1c734db2d", "sf.dml.copy-into-location.kc4d6bdd5c3db", - "sf.dml.copy-into-location.kc69193b2a173", "sf.dml.copy-into-location.kc802072b7a02", "sf.dml.copy-into-location.kc9eb9201f4cb", "sf.dml.copy-into-location.kcaa10d09b9c0", @@ -127079,7 +127071,6 @@ "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k24bf077327f0", "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k255605c910f3", "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k2759da008c21", - "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k27691ceff23b", "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k27f2c80e7c6a", "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k2c05f5457c3f", "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k3282b4cc57d4", @@ -127315,7 +127306,6 @@ "sf.dml.copy-into-table.select-from-internalstage-externalstage.kf6a374db17f4", "sf.dml.copy-into-table.select-from-internalstage-externalstage.kf7181da27ad9", "sf.dml.copy-into-table.select-from-internalstage-externalstage.kf92d2aed50cc", - "sf.dml.copy-into-table.select-from-internalstage-externalstage.kfde231d61223", "sf.dml.copy-into-table.select-from-internalstage-externalstage.kfe0e0a2fbc55", "sf.dml.copy-into-table.select-from-internalstage-externalstage.kfe235386d527", "sf.dml.copy-into-table.select-from-internalstage-externalstage.kffd0d9cbf044", @@ -127556,12 +127546,14 @@ "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k0e50425068e0", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k172845559319", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k1e6f2252ccaf", + "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k2d3bcf6abdad", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k3fa1e29153cb", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k412daa3e1871", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k615f32f12f48", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k796c1927ae0f", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k80bd5c6cb355", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k895ddd619e4e", + "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k8cfc52258f82", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k92735d490bc7", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k94a43ebac13d", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k99add337eec0", @@ -127572,6 +127564,7 @@ "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.kc0f8fba35602", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.kc1536449cb1d", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.kc7916590f304", + "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.kc7ae19b55dde", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.kc8224f65e773", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.kcb37ef473740", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.kce879de7e2d1", @@ -128492,13 +128485,11 @@ "sf.functions.case.end.syntax.k6a52c58122ab", "sf.functions.case.end.syntax.kc973bd3e2236", "sf.functions.case.end.syntax.kec62561d14be", - "sf.functions.cast.cast-as.k28124ee3d309", "sf.functions.cast.cast-as.k53b8bf1f74f3", "sf.functions.cast.cast-as.k7c6b892535ac", "sf.functions.cast.cast-as.k93e3dd3d5c2f", "sf.functions.cast.cast-as.kbcba00c12a0d", "sf.functions.cast.cast-as.kd060c16ff369", - "sf.functions.cast.cast-as.ke781ca0e7651", "sf.functions.cast.cast-as.kfbe6a4a335bc", "sf.functions.cast.double-colon.k938abf5b45d4", "sf.functions.cast.double-colon.kab5eacd150a2", @@ -133707,7 +133698,6 @@ "sf.query.select.select.kf8a78cb14ff6", "sf.query.select.select.kfe24dc5601b1", "sf.query.select.select.selecting-specific-columns.k341645897417", - "sf.query.select.select.selecting-specific-columns.k5104b489b079", "sf.query.select.select.selecting-specific-columns.k899f1e6801cd", "sf.query.select.select.selecting-specific-columns.k969798f2f534", "sf.query.select.select.selecting-specific-columns.kb0cc74593d72", @@ -135440,7 +135430,6 @@ "sf.security_admin.alter-organization-account.set-tag.kefc1a8765c2d", "sf.security_admin.alter-organization-account.set.k095ae88eb2ff", "sf.security_admin.alter-organization-account.set.k47aee2629bdc", - "sf.security_admin.alter-organization-account.set.kbfa499e73ea7", "sf.security_admin.alter-organization-account.set.ke032a783ee0e", "sf.security_admin.alter-organization-account.unset-password-session-policy.k0e61d1152dfb", "sf.security_admin.alter-organization-account.unset-password-session-policy.k632f7f763515", @@ -141297,6 +141286,7 @@ "sf.security_admin.show-listings-in-failover-group.k6bedcbb1db75", "sf.security_admin.show-listings-in-failover-group.k920c116e34c0", "sf.security_admin.show-listings-in-failover-group.kdd6b870ef2d8", + "sf.security_admin.show-listings-in-failover-group.ke43760e6b747", "sf.security_admin.show-maintenance-policies.k043d03185a67", "sf.security_admin.show-maintenance-policies.k193df6c29723", "sf.security_admin.show-maintenance-policies.k35959c6e458b", @@ -141387,6 +141377,7 @@ "sf.security_admin.show-organization-accounts.k4bd4c2912104", "sf.security_admin.show-organization-accounts.kdee12ffd6075", "sf.security_admin.show-organization-contracts.kbbbea1f84589", + "sf.security_admin.show-organization-profiles.k829f1501cc89", "sf.security_admin.show-organization-user-groups.k1d188d272746", "sf.security_admin.show-organization-user-groups.k33c42f293a58", "sf.security_admin.show-organization-user-groups.kfdebdd83ce24", @@ -142232,12 +142223,13 @@ "sf.utility.execute-dcm-project.test-all.kb469bb623288", "sf.utility.execute-dcm-project.test-all.kf6ef66b31604", "sf.utility.execute-immediate-from.kdcaf1575b582", + "sf.utility.execute-immediate.immediate-2.k81fd79784b4a", + "sf.utility.execute-immediate.immediate.kbcd9a6dfb1fd", "sf.utility.execute-immediate.immediate.syntax.kdb533353cc4a", "sf.utility.execute-inference-job-service.k034cc7ef7e72", "sf.utility.execute-inference-job-service.k0380a4777088", "sf.utility.execute-inference-job-service.k0d2b80a05490", "sf.utility.execute-inference-job-service.k1bc02309d369", - "sf.utility.execute-inference-job-service.k22050907e446", "sf.utility.execute-inference-job-service.k29c9c681eb1a", "sf.utility.execute-inference-job-service.k2dbb76ad4c32", "sf.utility.execute-inference-job-service.k316caebc5c85", @@ -142261,7 +142253,6 @@ "sf.utility.execute-inference-job-service.kac4074c78793", "sf.utility.execute-inference-job-service.kacc8a7ecbb5c", "sf.utility.execute-inference-job-service.kaf1c33817fd4", - "sf.utility.execute-inference-job-service.kbc7f660eadd0", "sf.utility.execute-inference-job-service.kbe0b0e2635c7", "sf.utility.execute-inference-job-service.ke81e91b5b7ca", "sf.utility.execute-inference-job-service.ke8ac2b9e034e", @@ -143065,6 +143056,7 @@ "sf.ddl.alter-warehouse.add-tables.k03a3c4082fff", "sf.ddl.alter-warehouse.add-tables.k0add3b7ab01d", "sf.ddl.alter-warehouse.add-tables.k0d8380a5561d", + "sf.ddl.alter-warehouse.add-tables.k22a4a06e0b15", "sf.ddl.alter-warehouse.add-tables.k42168bc94c03", "sf.ddl.alter-warehouse.add-tables.k4fbb9449c1ee", "sf.ddl.alter-warehouse.add-tables.k82c79cc80548", @@ -143073,6 +143065,7 @@ "sf.ddl.alter-warehouse.add-tables.kd23873c7924c", "sf.ddl.alter-warehouse.add-tables.kf94a691897f9", "sf.ddl.alter-warehouse.drop-tables.k0467ae54bde3", + "sf.ddl.alter-warehouse.drop-tables.k18cd7b807795", "sf.ddl.alter-warehouse.drop-tables.k6b1cdba72b9f", "sf.ddl.alter-warehouse.drop-tables.k75b39332a334", "sf.ddl.alter-warehouse.drop-tables.k83d39159180e", @@ -144058,12 +144051,9 @@ "sf.ddl.create-model-monitor.version-function-source-warehouse.kf72a505d3bd7", "sf.ddl.create-model-monitor.version-function-source-warehouse.kff9ec81a3779", "sf.ddl.create-model.internalstage.k118c56d121f3", - "sf.ddl.create-model.internalstage.k89f9105f15ba", "sf.ddl.create-model.internalstage.k968befeeed72", - "sf.ddl.create-model.internalstage.ka7cd6e5074b5", "sf.ddl.create-model.internalstage.kbfdd16a6754e", "sf.ddl.create-model.internalstage.kdecdca528b66", - "sf.ddl.create-model.internalstage.ke73c5b998055", "sf.ddl.create-notebook-project.from.k04157e0cae3b", "sf.ddl.create-notebook-project.from.k3bd37bb0d8aa", "sf.ddl.create-notebook-project.from.k470aedeb20d7", @@ -144532,7 +144522,6 @@ "sf.functions.system-explain-plan-json.k34b4a27a76b5", "sf.functions.to-query.k52f4b25a2004", "sf.functions.to-query.kdfe11763c33e", - "sf.query.from.kbd5234cefead", "sf.security_admin.alter-account.set-maintenance-policy-for.kd79fe523c612", "sf.security_admin.alter-role.rename-to.k01e92a574b6c", "sf.security_admin.alter-role.rename-to.k1b3916360f17", @@ -144729,8 +144718,6 @@ "sf.utility.execute-immediate-from.k18372c75ec13", "sf.utility.execute-immediate-from.k21f6cd921934", "sf.utility.execute-immediate-from.k45ef82b9bd00", - "sf.utility.execute-immediate-from.k5b10bdd44337", - "sf.utility.execute-immediate-from.k5cf33c603af2", "sf.utility.execute-immediate-from.k78796a33bcf1", "sf.utility.execute-immediate-from.k795ed8aa638a", "sf.utility.execute-immediate-from.kb470f7b8b69e", @@ -144740,7 +144727,6 @@ "sf.utility.execute-immediate-from.kd06bbf769d46", "sf.utility.execute-immediate-from.ke3db3c0b0b5d", "sf.utility.execute-immediate-from.ked3b2561e78b", - "sf.utility.execute-immediate-from.kf80841edd58a", "sf.utility.execute-immediate.immediate-2.k14a1b7ee8df3", "sf.utility.execute-immediate.immediate-2.k7ee894923594", "sf.utility.execute-immediate.immediate-2.k91e4178007ca", @@ -144754,6 +144740,8 @@ "sf.utility.execute-immediate.immediate.syntax.k530cabaf0366", "sf.utility.execute-immediate.immediate.syntax.k885f7952cc09", "sf.utility.execute-immediate.immediate.syntax.kbd4d30ef365a", + "sf.utility.execute-inference-job-service.kd484841cc87f", + "sf.utility.execute-inference-job-service.kfa70a352f258", "sf.utility.execute-task-graph.graph.k4c95c7ca1c5a" ], "documented_cases": [ @@ -144844,9 +144832,9 @@ "sf.ddl.alter-materialized-view.rename-to-cluster-by.k9db5c848402f", "sf.ddl.alter-materialized-view.rename-to-cluster-by.kddd9a5fd5f1e", "sf.ddl.alter-materialized-view.rename-to-cluster-by.kf55a6eb23487", - "sf.ddl.alter-model-add-version.internalstage.k0f7091ee32a3", - "sf.ddl.alter-model-add-version.internalstage.k88e5d4da4a45", - "sf.ddl.alter-model-add-version.internalstage.kee358b7efaff", + "sf.ddl.alter-model-add-version.internalstage.k0c1f72751420", + "sf.ddl.alter-model-add-version.internalstage.k50f474d9432f", + "sf.ddl.alter-model-add-version.internalstage.kfeb02a29e9f1", "sf.ddl.alter-restricted-session-scope.add-as.k25a791e4e3a0", "sf.ddl.alter-restricted-session-scope.add-as.k63479cc5e1e6", "sf.ddl.alter-restricted-session-scope.add-as.k6bef65b61b2b", @@ -145033,13 +145021,13 @@ "sf.ddl.create-external-agent.k6854f0d0eca1", "sf.ddl.create-external-agent.ke5461079151e", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.k7cf8cf7691b8", + "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.k806fe7b31588", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.k8aa06eef2183", - "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kb5233f398e93", - "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kd3d829059009", - "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k00b406d426b6", + "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kdc01f9aab91b", + "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k08c71203f32e", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k8e9d14ae7559", + "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kb687ff6c6e8a", "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kce8533aa4c43", - "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kfbd01554f919", "sf.ddl.create-file-format.define-file-format.k06c4ef24b229", "sf.ddl.create-file-format.define-file-format.k3bc7372317c1", "sf.ddl.create-file-format.define-file-format.k4ecd2ac5d585", @@ -145063,24 +145051,16 @@ "sf.ddl.create-iceberg-table-rest.table-masking-policy-as.k5735e519737e", "sf.ddl.create-iceberg-table-rest.table-masking-policy-as.kd148c15fde28", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k5749f220f6b0", + "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k5cd0dd212be2", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k656d4111d435", - "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k7ca67e8d509c", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k84ad512408b9", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.ka97b566067ea", - "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kc6baec2753ad", + "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kba68af4f6b28", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.ke33081f8d786", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.ke6621b0d6820", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.ked94f155c689", "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kefbdb1e13dab", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k0e3560c167a6", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k137ac2487c9b", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k38d2ede4b72e", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k3ee9c3303030", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k47f3ca197f82", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k61ab4894c557", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k97c92a5930eb", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k99f8e39993ac", - "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.kb8d964c8574d", "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.ke76e03514474", "sf.ddl.create-iceberg-table.table.k195ae88fa257", "sf.ddl.create-iceberg-table.table.k26af5049c022", @@ -145122,9 +145102,9 @@ "sf.ddl.create-materialized-view.ke50f4c8cd906", "sf.ddl.create-materialized-view.kf4afc40d9de3", "sf.ddl.create-materialized-view.kfeaa6de4532f", - "sf.ddl.create-model.internalstage.k89f9105f15ba", - "sf.ddl.create-model.internalstage.ka7cd6e5074b5", - "sf.ddl.create-model.internalstage.ke73c5b998055", + "sf.ddl.create-model.internalstage.k29e1ea401b04", + "sf.ddl.create-model.internalstage.k8a1e5cdd7649", + "sf.ddl.create-model.internalstage.kf860894628ea", "sf.ddl.create-procedure.create-procedure-returns-table-2.k13b8cfe6ca69", "sf.ddl.create-procedure.create-procedure-returns-table-2.k5ed8bfc19a06", "sf.ddl.create-procedure.create-procedure-returns-table-2.k716ccafa6317", @@ -145207,31 +145187,29 @@ "sf.ddl.create-procedure.define-procedure.kf870e4e9418e", "sf.ddl.create-procedure.define-procedure.kfaddaeceeb18", "sf.ddl.create-semantic-view.create-or-alter-semantic.k07ad7b7d8f4a", - "sf.ddl.create-semantic-view.create-or-alter-semantic.k35939a212e99", - "sf.ddl.create-semantic-view.create-or-alter-semantic.k846ee1e37b27", - "sf.ddl.create-semantic-view.create-or-alter-semantic.k9e4266a7b22b", - "sf.ddl.create-semantic-view.create-or-alter-semantic.kac6b44ba54a6", - "sf.ddl.create-semantic-view.create-or-alter-semantic.kb6f96db81738", - "sf.ddl.create-semantic-view.create-or-alter-semantic.kb9f528a26d0f", + "sf.ddl.create-semantic-view.create-or-alter-semantic.k2b0f5cf1960d", + "sf.ddl.create-semantic-view.create-or-alter-semantic.k57c3f8890714", + "sf.ddl.create-semantic-view.create-or-alter-semantic.k6169147f7882", + "sf.ddl.create-semantic-view.create-or-alter-semantic.k9c84f92f05fc", "sf.ddl.create-semantic-view.create-or-alter-semantic.kde5a57ccc35a", + "sf.ddl.create-semantic-view.create-or-alter-semantic.ke2a3e783d5f5", "sf.ddl.create-semantic-view.create-or-alter-semantic.kefb62be2c0f0", - "sf.ddl.create-semantic-view.create-semantic-view-tables.k514264d43657", - "sf.ddl.create-semantic-view.create-semantic-view-tables.k65320331f191", - "sf.ddl.create-semantic-view.create-semantic-view-tables.k85b47a106293", - "sf.ddl.create-semantic-view.create-semantic-view-tables.kb23a86447144", + "sf.ddl.create-semantic-view.create-semantic-view-tables.k3f56d2f950f3", + "sf.ddl.create-semantic-view.create-semantic-view-tables.k63f5e1dc83e0", + "sf.ddl.create-semantic-view.create-semantic-view-tables.k94f3c7268343", + "sf.ddl.create-semantic-view.create-semantic-view-tables.kb6b8caa8db23", "sf.ddl.create-semantic-view.create-semantic-view-tables.kbb6fd67a8421", - "sf.ddl.create-semantic-view.create-semantic-view-tables.kc946cff65c82", + "sf.ddl.create-semantic-view.create-semantic-view-tables.ke0627bd43447", "sf.ddl.create-semantic-view.create-semantic-view-tables.ke1748b4d3fbf", "sf.ddl.create-semantic-view.create-semantic-view-tables.kf0a8b4db490a", - "sf.ddl.create-semantic-view.create-semantic-view-tables.kf2ff450727f8", - "sf.ddl.create-semantic-view.define-semantic-view.k033454da05eb", - "sf.ddl.create-semantic-view.define-semantic-view.k16be82d48ebb", - "sf.ddl.create-semantic-view.define-semantic-view.k52d8fcfdc93c", - "sf.ddl.create-semantic-view.define-semantic-view.k6d7e5803f1af", - "sf.ddl.create-semantic-view.define-semantic-view.k7118a64845f3", - "sf.ddl.create-semantic-view.define-semantic-view.k781ed6371e99", - "sf.ddl.create-semantic-view.define-semantic-view.k8c4eb9f33500", + "sf.ddl.create-semantic-view.define-semantic-view.k0505d25adf5b", + "sf.ddl.create-semantic-view.define-semantic-view.k42cf90e31b74", + "sf.ddl.create-semantic-view.define-semantic-view.k72552038b947", + "sf.ddl.create-semantic-view.define-semantic-view.k9ef4aceaf1f3", + "sf.ddl.create-semantic-view.define-semantic-view.kada6ff388a97", + "sf.ddl.create-semantic-view.define-semantic-view.kc556d3d0342e", "sf.ddl.create-semantic-view.define-semantic-view.kee5fd2d30d78", + "sf.ddl.create-semantic-view.define-semantic-view.kf7e8c3a49d89", "sf.ddl.create-service.k13d6f6b21ce2", "sf.ddl.create-table-constraint.alter-table-add-column.k55d901d48654", "sf.ddl.create-table-constraint.alter-table-add-column.k8b50f3339685", @@ -145324,29 +145302,24 @@ "sf.ddl.truncate-materialized-view.k74b2fac3d472", "sf.ddl.truncate-materialized-view.k927f0c927a61", "sf.ddl.truncate-materialized-view.kd0dbb877527d", - "sf.dml.copy-files.from-select-from.k000bfe7b2770", - "sf.dml.copy-files.from-select-from.k115e2f6e996c", - "sf.dml.copy-files.from.k730fe88084b4", - "sf.dml.copy-files.from.k7bbb4d4130c5", - "sf.dml.copy-into-location.k9f835e9bec49", - "sf.dml.copy-into-location.kad25d1767527", - "sf.dml.copy-into-location.kc69193b2a173", - "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k27691ceff23b", + "sf.dml.copy-files.from-select-from.k2232400063c1", + "sf.dml.copy-files.from-select-from.ke02b3a7190c8", + "sf.dml.copy-files.from.k10c897cca12a", + "sf.dml.copy-files.from.k5df6587b8f13", + "sf.dml.copy-into-location.k3decf982dfdd", + "sf.dml.copy-into-location.kddec9dc1bed3", + "sf.dml.copy-into-location.ke84dfd53053b", + "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k558b48e7668f", "sf.dml.copy-into-table.select-from-internalstage-externalstage.k01122963f880", - "sf.dml.copy-into-table.select-from-internalstage-externalstage.k053ec8bd4f8a", - "sf.dml.copy-into-table.select-from-internalstage-externalstage.k129fe16a88c0", - "sf.dml.copy-into-table.select-from-internalstage-externalstage.kfde231d61223", - "sf.expressions.bind-variables.k314997207f27", + "sf.dml.copy-into-table.select-from-internalstage-externalstage.k57aa3568c45c", "sf.expressions.bind-variables.k6625575c0718", - "sf.expressions.bind-variables.k94f833ee8305", "sf.expressions.data-types-datetime.interval-yearmonthqualifier-daytimequalifier.k80bd5c6cb355", "sf.expressions.data-types-datetime.interval.k304133ec4984", "sf.expressions.data-types-datetime.interval.k4cfb41b80945", "sf.expressions.data-types-datetime.interval.k589987585aea", - "sf.expressions.session-variables.ka6236ae06564", "sf.functions.accumulate.kdf85f4560af2", - "sf.functions.cast.cast-as.k28124ee3d309", - "sf.functions.cast.cast-as.ke781ca0e7651", + "sf.functions.cast.cast-as.k2fe12ee57005", + "sf.functions.cast.cast-as.k47ffa46f62a6", "sf.functions.date-part.date-part-from.k10b598e047b5", "sf.functions.dbt-project-execution-history.k017faee21386", "sf.functions.extract.extract-from.kd267b35258f9", @@ -145365,9 +145338,9 @@ "sf.query.connect-by.kf319e16a66c9", "sf.query.connect-by.kf4ac1afd4e11", "sf.query.connect-by.kfca4d0122195", - "sf.query.from.kbd5234cefead", + "sf.query.from.k6198154838c3", "sf.query.from.kea7efb415c3b", - "sf.query.select.select.selecting-specific-columns.k5104b489b079", + "sf.query.select.select.selecting-specific-columns.k182d9ed5aea5", "sf.security_admin.alter-authentication-policy.unset.keb54dc30b8b1", "sf.security_admin.alter-connection.enable-failover-to-accounts.kb7057966b961", "sf.security_admin.alter-external-access-integration.set.k7f2068ff85b6", @@ -145385,7 +145358,9 @@ "sf.security_admin.alter-organization-account.set-tag.k89728337fa35", "sf.security_admin.alter-organization-account.set-tag.ka29dbf5e7d42", "sf.security_admin.alter-organization-account.set-tag.kefc1a8765c2d", - "sf.security_admin.alter-organization-account.set.kbfa499e73ea7", + "sf.security_admin.alter-organization-account.set.k17b7fd233892", + "sf.security_admin.alter-organization-account.set.k6f68795247c0", + "sf.security_admin.alter-organization-account.set.ka99c224318fc", "sf.security_admin.alter-organization-account.unset-password-session-policy.k632f7f763515", "sf.security_admin.alter-organization-account.unset-password-session-policy.kd135e3930646", "sf.security_admin.alter-organization-account.unset-tag.k05c853e6e984", @@ -145461,11 +145436,11 @@ "sf.utility.execute-dcm-project.plan-fromsource-fromdeployment.k86f6644baf3a", "sf.utility.execute-dcm-project.plan-fromsource-fromdeployment.kdfc5b93e69fc", "sf.utility.execute-dcm-project.plan-fromsource-fromdeployment.ked48e93667e8", - "sf.utility.execute-immediate-from.k5b10bdd44337", - "sf.utility.execute-immediate-from.k5cf33c603af2", - "sf.utility.execute-immediate-from.kf80841edd58a", - "sf.utility.execute-inference-job-service.k22050907e446", - "sf.utility.execute-inference-job-service.kbc7f660eadd0" + "sf.utility.execute-immediate-from.k4887699b0098", + "sf.utility.execute-immediate-from.kd2b2dee1a470", + "sf.utility.execute-immediate-from.kea3e07c355cb", + "sf.utility.execute-inference-job-service.kd484841cc87f", + "sf.utility.execute-inference-job-service.kfa70a352f258" ], "receipt_contradictions": [ "06a15e852d3e-0", @@ -146374,6 +146349,7 @@ "sf.ddl.alter-warehouse.add-tables.k03a3c4082fff", "sf.ddl.alter-warehouse.add-tables.k0add3b7ab01d", "sf.ddl.alter-warehouse.add-tables.k0d8380a5561d", + "sf.ddl.alter-warehouse.add-tables.k22a4a06e0b15", "sf.ddl.alter-warehouse.add-tables.k42168bc94c03", "sf.ddl.alter-warehouse.add-tables.k4fbb9449c1ee", "sf.ddl.alter-warehouse.add-tables.k82c79cc80548", @@ -146382,6 +146358,7 @@ "sf.ddl.alter-warehouse.add-tables.kd23873c7924c", "sf.ddl.alter-warehouse.add-tables.kf94a691897f9", "sf.ddl.alter-warehouse.drop-tables.k0467ae54bde3", + "sf.ddl.alter-warehouse.drop-tables.k18cd7b807795", "sf.ddl.alter-warehouse.drop-tables.k6b1cdba72b9f", "sf.ddl.alter-warehouse.drop-tables.k75b39332a334", "sf.ddl.alter-warehouse.drop-tables.k83d39159180e", @@ -147455,12 +147432,9 @@ "sf.ddl.create-model-monitor.version-function-source-warehouse.kf72a505d3bd7", "sf.ddl.create-model-monitor.version-function-source-warehouse.kff9ec81a3779", "sf.ddl.create-model.internalstage.k118c56d121f3", - "sf.ddl.create-model.internalstage.k89f9105f15ba", "sf.ddl.create-model.internalstage.k968befeeed72", - "sf.ddl.create-model.internalstage.ka7cd6e5074b5", "sf.ddl.create-model.internalstage.kbfdd16a6754e", "sf.ddl.create-model.internalstage.kdecdca528b66", - "sf.ddl.create-model.internalstage.ke73c5b998055", "sf.ddl.create-notebook-project.from.k04157e0cae3b", "sf.ddl.create-notebook-project.from.k3bd37bb0d8aa", "sf.ddl.create-notebook-project.from.k470aedeb20d7", @@ -148291,7 +148265,6 @@ "sf.query.at-before.iceberg-version.k7b5a4bb05e5f", "sf.query.at-before.iceberg-version.k7ebd7095f3c3", "sf.query.at-before.iceberg-version.k85af61357785", - "sf.query.from.kbd5234cefead", "sf.query.into.k516f956ab430", "sf.query.join-lateral.ke73a564a4f59", "sf.query.limit.fetch.k80465529ad6b", @@ -148630,8 +148603,6 @@ "sf.utility.execute-immediate-from.k18372c75ec13", "sf.utility.execute-immediate-from.k21f6cd921934", "sf.utility.execute-immediate-from.k45ef82b9bd00", - "sf.utility.execute-immediate-from.k5b10bdd44337", - "sf.utility.execute-immediate-from.k5cf33c603af2", "sf.utility.execute-immediate-from.k78796a33bcf1", "sf.utility.execute-immediate-from.k795ed8aa638a", "sf.utility.execute-immediate-from.kb470f7b8b69e", @@ -148641,7 +148612,6 @@ "sf.utility.execute-immediate-from.kd06bbf769d46", "sf.utility.execute-immediate-from.ke3db3c0b0b5d", "sf.utility.execute-immediate-from.ked3b2561e78b", - "sf.utility.execute-immediate-from.kf80841edd58a", "sf.utility.execute-immediate.immediate-2.k14a1b7ee8df3", "sf.utility.execute-immediate.immediate-2.k7ee894923594", "sf.utility.execute-immediate.immediate-2.k91e4178007ca", @@ -148666,10 +148636,51 @@ "sf.utility.execute-immediate.immediate.syntax.kda0824c75af0", "sf.utility.execute-immediate.immediate.syntax.kec53303b088a", "sf.utility.execute-immediate.immediate.syntax.kefb9dd2ba59e", + "sf.utility.execute-inference-job-service.kd484841cc87f", + "sf.utility.execute-inference-job-service.kfa70a352f258", "sf.utility.execute-task-graph.graph.k4c95c7ca1c5a" ], "unjudged_receipts": [ + "sf.ddl.alter-model-add-version.internalstage.k0f7091ee32a3", + "sf.ddl.alter-model-add-version.internalstage.k88e5d4da4a45", + "sf.ddl.alter-model-add-version.internalstage.kee358b7efaff", + "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kb5233f398e93", + "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-file-format.kd3d829059009", + "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.k00b406d426b6", + "sf.ddl.create-external-table.cloudproviderparams-location-externalstage-partition-type.kfbd01554f919", + "sf.ddl.create-iceberg-table.table-base-location.parquet-files.k7ca67e8d509c", + "sf.ddl.create-iceberg-table.table-base-location.parquet-files.kc6baec2753ad", + "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k0e3560c167a6", + "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k137ac2487c9b", + "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k38d2ede4b72e", + "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k3ee9c3303030", + "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k61ab4894c557", + "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k97c92a5930eb", + "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.k99f8e39993ac", + "sf.ddl.create-iceberg-table.table.iceberg-rest-in-a-catalog-linked-database.kb8d964c8574d", + "sf.ddl.create-model.internalstage.k89f9105f15ba", + "sf.ddl.create-model.internalstage.ka7cd6e5074b5", + "sf.ddl.create-model.internalstage.ke73c5b998055", + "sf.ddl.create-semantic-view.create-or-alter-semantic.k35939a212e99", + "sf.ddl.create-semantic-view.create-or-alter-semantic.k846ee1e37b27", + "sf.ddl.create-semantic-view.create-or-alter-semantic.k9e4266a7b22b", + "sf.ddl.create-semantic-view.create-or-alter-semantic.kac6b44ba54a6", + "sf.ddl.create-semantic-view.create-or-alter-semantic.kb6f96db81738", + "sf.ddl.create-semantic-view.create-or-alter-semantic.kb9f528a26d0f", + "sf.ddl.create-semantic-view.create-semantic-view-tables.k514264d43657", + "sf.ddl.create-semantic-view.create-semantic-view-tables.k65320331f191", + "sf.ddl.create-semantic-view.create-semantic-view-tables.k85b47a106293", + "sf.ddl.create-semantic-view.create-semantic-view-tables.kb23a86447144", + "sf.ddl.create-semantic-view.create-semantic-view-tables.kc946cff65c82", + "sf.ddl.create-semantic-view.create-semantic-view-tables.kf2ff450727f8", + "sf.ddl.create-semantic-view.define-semantic-view.k033454da05eb", + "sf.ddl.create-semantic-view.define-semantic-view.k16be82d48ebb", "sf.ddl.create-semantic-view.define-semantic-view.k3f4a549add5d", + "sf.ddl.create-semantic-view.define-semantic-view.k52d8fcfdc93c", + "sf.ddl.create-semantic-view.define-semantic-view.k6d7e5803f1af", + "sf.ddl.create-semantic-view.define-semantic-view.k7118a64845f3", + "sf.ddl.create-semantic-view.define-semantic-view.k781ed6371e99", + "sf.ddl.create-semantic-view.define-semantic-view.k8c4eb9f33500", "sf.ddl.create-semantic-view.define-semantic-view.kc8badad756f2", "sf.ddl.create-semantic-view.define-semantic-view.ke82d57e535a4", "sf.ddl.create-task.define-task.k00505d8d8e57", @@ -148699,6 +148710,20 @@ "sf.ddl.create-task.define-task.ke474e998ee63", "sf.ddl.create-task.define-task.keeeb6ab8d05e", "sf.ddl.create-task.define-task.kf52f318dcaf5", + "sf.dml.copy-files.from-select-from.k000bfe7b2770", + "sf.dml.copy-files.from-select-from.k115e2f6e996c", + "sf.dml.copy-files.from.k730fe88084b4", + "sf.dml.copy-files.from.k7bbb4d4130c5", + "sf.dml.copy-into-location.k9f835e9bec49", + "sf.dml.copy-into-location.kad25d1767527", + "sf.dml.copy-into-location.kc69193b2a173", + "sf.dml.copy-into-table.internalstage-externalstage-externallocation.k27691ceff23b", + "sf.dml.copy-into-table.select-from-internalstage-externalstage.kfde231d61223", + "sf.functions.cast.cast-as.k28124ee3d309", + "sf.functions.cast.cast-as.ke781ca0e7651", + "sf.query.from.kbd5234cefead", + "sf.query.select.select.selecting-specific-columns.k5104b489b079", + "sf.security_admin.alter-organization-account.set.kbfa499e73ea7", "sf.utility.execute-dcm-project.deploy-fromsource-fromdeployment.k1dd16087e6d4", "sf.utility.execute-dcm-project.deploy-fromsource-fromdeployment.k29f9ca681e18", "sf.utility.execute-dcm-project.deploy-fromsource-fromdeployment.k43791c150065", @@ -148710,6 +148735,11 @@ "sf.utility.execute-dcm-project.preview-using-configuration-from.ka0896a79e15c", "sf.utility.execute-dcm-project.preview-using-configuration-from.kb31d256e6417", "sf.utility.execute-dcm-project.preview-using-configuration-from.kdc0fa0693627", - "sf.utility.execute-dcm-project.preview-using-configuration-from.ke66c93a1fd8b" + "sf.utility.execute-dcm-project.preview-using-configuration-from.ke66c93a1fd8b", + "sf.utility.execute-immediate-from.k5b10bdd44337", + "sf.utility.execute-immediate-from.k5cf33c603af2", + "sf.utility.execute-immediate-from.kf80841edd58a", + "sf.utility.execute-inference-job-service.k22050907e446", + "sf.utility.execute-inference-job-service.kbc7f660eadd0" ] } diff --git a/coverage/syntax/limits.toml b/coverage/syntax/limits.toml index b1b3cc49d..5f106f5cb 100644 --- a/coverage/syntax/limits.toml +++ b/coverage/syntax/limits.toml @@ -3720,7 +3720,6 @@ note = "a double-quoted session variable name, observed" anchor = "doc.session-variables / Using variables in SQL" sql = "SELECT $\"v1 Q\" ;" expect = "observe" -documented = true context = "raw" [[limit]] @@ -10575,7 +10574,7 @@ kind = "boundary_below" target = "MAX_STALENESS = " note = "MAX_STALENESS = 119 against the documented minimum of 120" anchor = "doc.sql.create-semantic-view / Parameters" -sql = "CREATE OR ALTER SEMANTIC VIEW v1 TABLES ( v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 119 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) ;" +sql = "CREATE OR ALTER SEMANTIC VIEW v1 TABLES ( v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 119 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) ;" expect = "observe" documented = true context = "raw" @@ -10587,7 +10586,7 @@ kind = "boundary_at" target = "MAX_STALENESS = " note = "MAX_STALENESS = 120 against the documented minimum of 120, observed" anchor = "doc.sql.create-semantic-view / Parameters" -sql = "CREATE OR ALTER SEMANTIC VIEW v1 TABLES ( v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 120 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) ;" +sql = "CREATE OR ALTER SEMANTIC VIEW v1 TABLES ( v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 120 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) ;" expect = "observe" documented = true context = "raw" @@ -10599,7 +10598,7 @@ kind = "boundary_above" target = "MAX_STALENESS = " note = "MAX_STALENESS = 121 against the documented minimum of 120, observed" anchor = "doc.sql.create-semantic-view / Parameters" -sql = "CREATE OR ALTER SEMANTIC VIEW v1 TABLES ( v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 121 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) ;" +sql = "CREATE OR ALTER SEMANTIC VIEW v1 TABLES ( v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 121 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) ;" expect = "observe" documented = true context = "raw" @@ -10611,7 +10610,7 @@ kind = "boundary_below" target = "MAX_STALENESS = " note = "MAX_STALENESS = 119 against the documented minimum of 120" anchor = "doc.sql.create-semantic-view / Parameters" -sql = "CREATE OR REPLACE SEMANTIC VIEW IF NOT EXISTS v1 TABLES ( v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 119 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COPY GRANTS ;" +sql = "CREATE OR REPLACE SEMANTIC VIEW IF NOT EXISTS v1 TABLES ( v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 119 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COPY GRANTS ;" expect = "observe" documented = true context = "raw" @@ -10623,7 +10622,7 @@ kind = "boundary_at" target = "MAX_STALENESS = " note = "MAX_STALENESS = 120 against the documented minimum of 120, observed" anchor = "doc.sql.create-semantic-view / Parameters" -sql = "CREATE OR REPLACE SEMANTIC VIEW IF NOT EXISTS v1 TABLES ( v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 120 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COPY GRANTS ;" +sql = "CREATE OR REPLACE SEMANTIC VIEW IF NOT EXISTS v1 TABLES ( v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 120 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COPY GRANTS ;" expect = "observe" documented = true context = "raw" @@ -10635,7 +10634,7 @@ kind = "boundary_above" target = "MAX_STALENESS = " note = "MAX_STALENESS = 121 against the documented minimum of 120, observed" anchor = "doc.sql.create-semantic-view / Parameters" -sql = "CREATE OR REPLACE SEMANTIC VIEW IF NOT EXISTS v1 TABLES ( v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 121 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COPY GRANTS ;" +sql = "CREATE OR REPLACE SEMANTIC VIEW IF NOT EXISTS v1 TABLES ( v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 121 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COPY GRANTS ;" expect = "observe" documented = true context = "raw" @@ -15741,7 +15740,7 @@ kind = "boundary_below" target = "MAX_STALENESS = " note = "MAX_STALENESS = 119 against the documented minimum of 120" anchor = "doc.sql.create-semantic-view / Parameters" -sql = "DEFINE SEMANTIC VIEW d1.s1.v1 TABLES ( v1 AS d1.s1.v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS d1.s1.v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 119 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) ;" +sql = "DEFINE SEMANTIC VIEW d1.s1.v1 TABLES ( v1 AS d1.s1.v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS d1.s1.v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 119 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) ;" expect = "observe" documented = true context = "raw" @@ -15753,7 +15752,7 @@ kind = "boundary_at" target = "MAX_STALENESS = " note = "MAX_STALENESS = 120 against the documented minimum of 120, observed" anchor = "doc.sql.create-semantic-view / Parameters" -sql = "DEFINE SEMANTIC VIEW d1.s1.v1 TABLES ( v1 AS d1.s1.v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS d1.s1.v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 120 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) ;" +sql = "DEFINE SEMANTIC VIEW d1.s1.v1 TABLES ( v1 AS d1.s1.v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS d1.s1.v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 120 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) ;" expect = "observe" documented = true context = "raw" @@ -15765,7 +15764,7 @@ kind = "boundary_above" target = "MAX_STALENESS = " note = "MAX_STALENESS = 121 against the documented minimum of 120, observed" anchor = "doc.sql.create-semantic-view / Parameters" -sql = "DEFINE SEMANTIC VIEW d1.s1.v1 TABLES ( v1 AS d1.s1.v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS d1.s1.v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 121 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT CURRENT_TIMESTAMP ( ) ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) ;" +sql = "DEFINE SEMANTIC VIEW d1.s1.v1 TABLES ( v1 AS d1.s1.v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) , v1 AS d1.s1.v1 PRIMARY KEY ( v1 , v1 ) UNIQUE ( v1 , v1 ) CONSTRAINT v1 DISTINCT RANGE BETWEEN v1 AND v1 EXCLUSIVE WITH SYNONYMS = ( 'm' , 'm' ) COMMENT = 'm' WITH TAG ( v1 = 'm' , v1 = 'm' ) ) RELATIONSHIPS ( v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) , v1 AS v1 ( v1 , v1 ) REFERENCES v1 ( ASOF v1 , v1 ) ) FACTS ( PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) DIMENSIONS ( PUBLIC v1 . v1 LABELS = ( FILTER ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' WITH CORTEX SEARCH SERVICE v1 USING v1 , v1 ) METRICS ( PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' , PRIVATE v1 . v1 USING ( v1 , v1 ) NON ADDITIVE BY ( v1 ASC NULLS FIRST , v1 ASC NULLS FIRST ) AS 1 WITH SYNONYMS = ( 'm' , 'm' ) WITH TAG ( v1 = 'm' , v1 = 'm' ) COMMENT = 'm' ) COMMENT = 'm' MAX_STALENESS = 121 AI_SQL_GENERATION 'm' AI_QUESTION_CATEGORIZATION 'm' AI_VERIFIED_QUERIES ( v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) , v1 AS ( QUESTION 'm' VERIFIED_AT 1700000000 ONBOARDING_QUESTION TRUE VERIFIED_BY '( p1 = c1 )' SQL 'm' ) ) ;" expect = "observe" documented = true context = "raw" @@ -22275,10 +22274,8 @@ note = "reserved: a reserved keyword, unquoted (expected rejection) and double-q anchor = "doc.sql.copy-into-table / Syntax" sql = "COPY INTO v1 FROM ( SELECT $SELECT FROM @s1 ) ;" expect = "observe" -documented = true also_sql = "COPY INTO v1 FROM ( SELECT $\"SELECT\" FROM @s1 ) ;" also_expect = "observe" -also_documented = true context = "raw" [[suppress]] @@ -24254,10 +24251,8 @@ note = "reserved: a reserved keyword, unquoted (expected rejection) and double-q anchor = "doc.bind-variables / Overview of bind variables" sql = "SELECT :SELECT ;" expect = "observe" -documented = true also_sql = "SELECT :\"SELECT\" ;" also_expect = "observe" -also_documented = true context = "raw" [[suppress]] @@ -35793,7 +35788,7 @@ kind = "identifier_class" target = "" note = "quoted: a double-quoted identifier with blanks and mixed case, observed" anchor = "doc.sql.alter-model-add-version / Variant Syntax" -sql = "ALTER MODEL v1 ADD VERSION v1 FROM @\"s1 Q\" ;" +sql = "ALTER MODEL v1 ADD VERSION v1 FROM '@\"s1 Q\"' ;" expect = "observe" documented = true context = "raw" @@ -35811,7 +35806,7 @@ kind = "identifier_class" target = "" note = "quoted: a double-quoted identifier with blanks and mixed case, observed" anchor = "doc.sql.alter-model-add-version / Variant Syntax" -sql = "ALTER MODEL v1 ADD VERSION v1 FROM @\"v1 Q\".s1 ;" +sql = "ALTER MODEL v1 ADD VERSION v1 FROM '@\"v1 Q\".s1' ;" expect = "observe" documented = true context = "raw" @@ -35829,7 +35824,7 @@ kind = "identifier_class" target = "" note = "quoted: a double-quoted identifier with blanks and mixed case, observed" anchor = "doc.sql.alter-model-add-version / Variant Syntax" -sql = "ALTER MODEL v1 ADD VERSION v1 FROM @%\"v1 Q\" ;" +sql = "ALTER MODEL v1 ADD VERSION v1 FROM '@%\"v1 Q\"' ;" expect = "observe" documented = true context = "raw" @@ -40785,7 +40780,7 @@ kind = "option_present" target = "[ PARTITION BY ( [ , ... ] ) ]" note = "option present [ PARTITION BY ( [ , ... ] ) ], observed" anchor = "doc.sql.create-iceberg-table / Syntax / External Iceberg catalog / Parquet files" -sql = "CREATE ICEBERG TABLE v1 PARTITION BY ( v1 ) BASE_LOCATION = 'm' ;" +sql = "CREATE ICEBERG TABLE v1 ( v1 INT ) PARTITION BY ( v1 ) BASE_LOCATION = 'm' ;" expect = "observe" documented = true context = "raw" @@ -40803,7 +40798,7 @@ kind = "operand_type_class" target = " in [ PARTITION BY ( [ , ... ] ) ]" note = "a valid identifier, observed" anchor = "doc.sql.create-iceberg-table / Syntax / External Iceberg catalog / Parquet files" -sql = "CREATE ICEBERG TABLE v1 PARTITION BY ( v1 ) BASE_LOCATION = 'm' ;" +sql = "CREATE ICEBERG TABLE v1 ( v1 INT ) PARTITION BY ( v1 ) BASE_LOCATION = 'm' ;" expect = "observe" documented = true context = "raw" @@ -40820,7 +40815,7 @@ kind = "option_absent" target = "[ , ... ]" note = "option absent [ , ... ], observed" anchor = "doc.sql.create-iceberg-table / Syntax / External Iceberg catalog / Parquet files" -sql = "CREATE ICEBERG TABLE v1 PARTITION BY ( v1 ) BASE_LOCATION = 'm' ;" +sql = "CREATE ICEBERG TABLE v1 ( v1 INT ) PARTITION BY ( v1 ) BASE_LOCATION = 'm' ;" expect = "observe" documented = true context = "raw" @@ -40854,7 +40849,7 @@ kind = "option_present" target = "[ PARTITION BY ( { | BUCKET ( , ) | TRUNCATE ( , ) | YEAR (…" note = "option present [ PARTITION BY ( { | BUCKET ( , ) | TRUNCATE ( , ) | YEAR ( Result Option { let verdicts: BTreeSet> = statement_receipts .iter() .filter(|receipt| receipt.measure.is_none()) .map(|receipt| match (receipt.phase, receipt.errno) { _ if receipt.is_engine() => engine_syntax(receipt), - (Phase::SyntaxError, Some(errno)) - if errno == SYNTAX_ERRNO || errno == SYNTAX_ERRNO_42601 => - { - Some(SnowflakeSyntax::Refused) - } - (Phase::SyntaxError, _) => None, + (Phase::SyntaxError, _) => Some(SnowflakeSyntax::Refused), (_, Some(errno)) if errno == SYNTAX_ERRNO => None, _ => Some(SnowflakeSyntax::Parsed), }) diff --git a/tools/sqlquack-coverage-check/src/check/models.rs b/tools/sqlquack-coverage-check/src/check/models.rs index b32247d35..dffd6b49a 100644 --- a/tools/sqlquack-coverage-check/src/check/models.rs +++ b/tools/sqlquack-coverage-check/src/check/models.rs @@ -84,7 +84,7 @@ pub enum Reason { pub enum SnowflakeSyntax { /// Every receipt stopped after parsing or succeeded, with an errno other than 1003. Parsed, - /// Every receipt is a syntax error: errno 1003 with a parse position, or errno 921. + /// Every receipt's recorded phase is a syntax error, whatever its errno. Refused, } diff --git a/tools/sqlquack-coverage-check/src/cli/_helpers/commands.rs b/tools/sqlquack-coverage-check/src/cli/_helpers/commands.rs index 7c2a8732b..245a18bf1 100644 --- a/tools/sqlquack-coverage-check/src/cli/_helpers/commands.rs +++ b/tools/sqlquack-coverage-check/src/cli/_helpers/commands.rs @@ -19,7 +19,7 @@ use crate::cli::_helpers::output::{print, say}; use crate::cli::_helpers::worker::Worker; use crate::cli::models::{Common, TranslationArguments}; use crate::depth::main::analysis_verdict::analysis_verdict; -use crate::formats::constants::{SNAPSHOT_FORMAT, SNOWFLAKE_DIALECT}; +use crate::formats::constants::{DISAGREEMENTS_FILE, SNAPSHOT_FORMAT, SNOWFLAKE_DIALECT}; use crate::formats::main::current_dialect::current_dialect; use crate::formats::main::load_coverage::load_coverage; use crate::formats::main::load_focus::load_focus; @@ -27,12 +27,15 @@ use crate::formats::main::obligation_form::obligation_form; use crate::formats::models::{ FocusFile, LocalParser, Obligation, ObligationKind, Review, SyntaxCoverage, }; +use crate::report::main::diff_fails::diff_fails; use crate::report::main::diff_snapshots::diff_snapshots; use crate::report::main::focus_report::focus_report; use crate::report::main::snapshot::snapshot; use crate::report::main::summarize::summarize; use crate::report::main::tally_by::tally_by; -use crate::report::models::{FocusReport, FocusedSummary, Snapshot, SnapshotDiff, Summary}; +use crate::report::models::{ + FocusReport, FocusedSummary, ReceiptDisagreements, Snapshot, SnapshotDiff, Summary, +}; use crate::translation::constants::TRANSLATION_DIR; use crate::translation::main::load_translation_files::load_translation_files; use crate::translation::main::measure_translation::measure_translation; @@ -430,9 +433,45 @@ fn read_snapshot(path: &Path) -> Result { Ok(parsed) } +/// The disagreements file at `path`; none listed when it does not exist. +fn read_disagreements(path: &Path) -> Result { + match std::fs::read_to_string(path) { + Err(error) if error.kind() == std::io::ErrorKind::NotFound => { + Ok(ReceiptDisagreements::default()) + } + read => read + .map_err(|error| error.to_string()) + .and_then(|text| toml::from_str(&text).map_err(|error| error.to_string())) + .map_err(|problem| { + say(&format!("FAILED, {}: {problem}", path.display())); + ExitCode::FAILURE + }), + } +} + /// Lines naming each non-empty list of the diff. fn diff_lines(diff: &SnapshotDiff) -> Vec { - let lists: [(&str, &Vec); 12] = [ + let lists: [(&str, &Vec); 17] = [ + ( + "REGRESSION Snowflake syntax errors the parser accepts, documented or not, that receipt-disagreements.toml does not list", + &diff.unlisted_syntax_errors_accepted, + ), + ( + "REGRESSION Snowflake-parsed cases the parser rejects that receipt-disagreements.toml does not list", + &diff.unlisted_parsed_cases_refused, + ), + ( + "REGRESSION other receipts the parser contradicts that receipt-disagreements.toml does not list", + &diff.unlisted_receipts_contradicted, + ), + ( + "RESOLVED disagreements the parser now agrees with; delete their entries from receipt-disagreements.toml", + &diff.disagreements_resolved, + ), + ( + "ADDED disagreements the target branch did not list; receipt-disagreements.toml only shrinks", + &diff.disagreements_added, + ), ("REGRESSION forms lost", &diff.forms_lost), ( "REGRESSION receipts the parser now contradicts, cited by a form or not", @@ -468,7 +507,7 @@ fn diff_lines(diff: &SnapshotDiff) -> Vec { .collect(); let counted: [(&str, usize); 2] = [ ( - "receipts the parser already contradicted, not failing", + "receipts the parser already contradicted, each listed or failing above", diff.receipts_still_contradicted.len(), ), ( @@ -487,11 +526,15 @@ fn diff_lines(diff: &SnapshotDiff) -> Vec { /// BASE against HEAD, or against the current tree; fails on a regression or catalogue change. pub(crate) fn diff( - base: &Path, - head: Option<&Path>, + (base, head): (&Path, Option<&Path>), + target_disagreements: Option<&Path>, common: &Common, ) -> Result { let base: Snapshot = read_snapshot(base)?; + let disagreements: ReceiptDisagreements = + read_disagreements(&common.root.join(DISAGREEMENTS_FILE))?; + let target_disagreements: Option = + target_disagreements.map(read_disagreements).transpose()?; let head: Snapshot = match head { Some(path) => read_snapshot(path)?, None => { @@ -503,19 +546,9 @@ pub(crate) fn diff( snapshot(&check, &coverage, &base.catalogue_commit) } }; - let diff: SnapshotDiff = diff_snapshots(&base, &head); - let failing: bool = [ - &diff.forms_lost, - &diff.obligations_lost, - &diff.receipts_contradicted, - &diff.parsed_cases_refused, - &diff.syntax_error_cases_accepted, - &diff.catalogue_files_changed, - &diff.forms_added, - &diff.forms_removed, - ] - .iter() - .any(|ids| !ids.is_empty()); + let diff: SnapshotDiff = + diff_snapshots(&base, &head, &disagreements, target_disagreements.as_ref()); + let failing: bool = diff_fails(&diff); let mut text: Vec = diff_lines(&diff); if text.is_empty() { text.push(format!( diff --git a/tools/sqlquack-coverage-check/src/cli/main/run_cli.rs b/tools/sqlquack-coverage-check/src/cli/main/run_cli.rs index 304518753..e27af11f5 100644 --- a/tools/sqlquack-coverage-check/src/cli/main/run_cli.rs +++ b/tools/sqlquack-coverage-check/src/cli/main/run_cli.rs @@ -45,7 +45,16 @@ pub fn run_cli() -> ExitCode { (write_baseline, report.as_deref(), against.as_deref()), &common, ), - Command::Diff { base, head, common } => diff(&base, head.as_deref(), &common), + Command::Diff { + base, + head, + disagreements_against, + common, + } => diff( + (&base, head.as_deref()), + disagreements_against.as_deref(), + &common, + ), Command::ParseWorker { parser, thread_stack, diff --git a/tools/sqlquack-coverage-check/src/cli/models.rs b/tools/sqlquack-coverage-check/src/cli/models.rs index 5c9061c27..358a38ffe 100644 --- a/tools/sqlquack-coverage-check/src/cli/models.rs +++ b/tools/sqlquack-coverage-check/src/cli/models.rs @@ -193,11 +193,14 @@ pub enum Command { #[command(flatten)] common: Common, }, - /// A snapshot against a later one or the current tree; fails on any regression. + /// A snapshot against a later one or the current tree; fails on any regression or unlisted disagreement. Diff { base: PathBuf, /// A later snapshot; the current tree when omitted. head: Option, + /// The target branch's disagreements file: fail on any entry it does not have. + #[arg(long)] + disagreements_against: Option, #[command(flatten)] common: Common, }, diff --git a/tools/sqlquack-coverage-check/src/formats/constants.rs b/tools/sqlquack-coverage-check/src/formats/constants.rs index 120092dae..5153b88a6 100644 --- a/tools/sqlquack-coverage-check/src/formats/constants.rs +++ b/tools/sqlquack-coverage-check/src/formats/constants.rs @@ -26,6 +26,8 @@ pub const MARKS_DIR: &str = "marks"; pub const MARK_DOCUMENTED: &str = "documented"; /// Every mark a case can carry. pub const MARKS: [&str; 3] = [MARK_DOCUMENTED, "settled accept", "settled reject"]; +/// Receipted cases the parser contradicts today, by form; optional while there are none. +pub const DISAGREEMENTS_FILE: &str = "receipt-disagreements.toml"; /// Hand-added limits, suppressions and grammar readings; the checker loads the readings. pub const LIMITS_FILE: &str = "limits.toml"; /// Every family, each with a catalogue, an obligation and a case file. @@ -121,6 +123,3 @@ pub const DCM_POSITION: &str = " at position "; /// Snowflake's errno for a syntax error; with a parse position it is a refusal by the parser. pub const SYNTAX_ERRNO: i64 = 1003; - -/// Snowflake's errno 921, SQLSTATE 42601, reviewed as a syntax refusal. -pub const SYNTAX_ERRNO_42601: i64 = 921; diff --git a/tools/sqlquack-coverage-check/src/report/main/diff_fails.rs b/tools/sqlquack-coverage-check/src/report/main/diff_fails.rs new file mode 100644 index 000000000..687adfc81 --- /dev/null +++ b/tools/sqlquack-coverage-check/src/report/main/diff_fails.rs @@ -0,0 +1,24 @@ +//! `diff_fails`: whether a diff fails the gate. + +use crate::report::models::SnapshotDiff; + +/// A regression, an unlisted receipt disagreement, a stale or added entry, or a catalogue change. +pub fn diff_fails(diff: &SnapshotDiff) -> bool { + [ + &diff.unlisted_syntax_errors_accepted, + &diff.unlisted_parsed_cases_refused, + &diff.unlisted_receipts_contradicted, + &diff.disagreements_resolved, + &diff.disagreements_added, + &diff.forms_lost, + &diff.obligations_lost, + &diff.receipts_contradicted, + &diff.parsed_cases_refused, + &diff.syntax_error_cases_accepted, + &diff.catalogue_files_changed, + &diff.forms_added, + &diff.forms_removed, + ] + .iter() + .any(|ids| !ids.is_empty()) +} diff --git a/tools/sqlquack-coverage-check/src/report/main/diff_snapshots.rs b/tools/sqlquack-coverage-check/src/report/main/diff_snapshots.rs index fdd36711e..6a98ee7fb 100644 --- a/tools/sqlquack-coverage-check/src/report/main/diff_snapshots.rs +++ b/tools/sqlquack-coverage-check/src/report/main/diff_snapshots.rs @@ -1,17 +1,48 @@ //! `diff_snapshots`: what changed between two snapshots, regressions apart from gains. -use std::collections::BTreeSet; +use std::collections::{BTreeMap, BTreeSet}; use crate::check::models::FormState; use crate::report::_helpers::obligation_order::sorted_obligations; -use crate::report::models::{Snapshot, SnapshotDiff}; +use crate::report::models::{ReceiptDisagreements, Snapshot, SnapshotDiff}; /// A state the checker claims: verified, or excluded by a current review. fn claimed(state: Option<&FormState>) -> bool { matches!(state, Some(FormState::Verified | FormState::Excluded)) } -pub fn diff_snapshots(base: &Snapshot, head: &Snapshot) -> SnapshotDiff { +/// Every case id one side of `disagreements` lists: each form's keys under the form. +fn listed(by_form: &BTreeMap>) -> BTreeSet { + let mut ids: BTreeSet = BTreeSet::new(); + for (form, keys) in by_form { + for key in keys { + ids.insert(format!("{form}.{key}")); + } + } + ids +} + +/// `head` against `base`, and its receipt disagreements against those listed now and on the target. +pub fn diff_snapshots( + base: &Snapshot, + head: &Snapshot, + disagreements: &ReceiptDisagreements, + target_disagreements: Option<&ReceiptDisagreements>, +) -> SnapshotDiff { + let accepted: BTreeSet = listed(&disagreements.syntax_errors_accepted); + let refused: BTreeSet = listed(&disagreements.parsed_cases_refused); + let other: &BTreeSet = &disagreements.other_receipts_contradicted; + let added: Vec = match target_disagreements { + Some(target) => { + let mut target_ids: BTreeSet = listed(&target.syntax_errors_accepted); + target_ids.extend(listed(&target.parsed_cases_refused)); + target_ids.extend(target.other_receipts_contradicted.iter().cloned()); + let mut ids: BTreeSet = accepted.union(&refused).cloned().collect(); + ids.extend(other.iter().cloned()); + ids.difference(&target_ids).cloned().collect() + } + None => Vec::new(), + }; let paths: BTreeSet<&String> = base .catalogue_files .keys() @@ -28,6 +59,17 @@ pub fn diff_snapshots(base: &Snapshot, head: &Snapshot) -> SnapshotDiff { let empty: BTreeSet = BTreeSet::new(); let head_contradicted: &BTreeSet = head.receipt_contradictions.as_ref().unwrap_or(&empty); + let judged_other: &BTreeSet = match head.receipt_contradictions { + Some(_) => other, + None => &empty, + }; + let head_other: BTreeSet = head_contradicted + .iter() + .filter(|id| { + !head.syntax_error_cases_accepted.contains(*id) && !head.refused_cases.contains(*id) + }) + .cloned() + .collect(); let new_contradictions: Vec = match &base.receipt_contradictions { Some(base_contradicted) => head_contradicted .difference(base_contradicted) @@ -99,5 +141,19 @@ pub fn diff_snapshots(base: &Snapshot, head: &Snapshot) -> SnapshotDiff { .into_iter() .filter(|id| head.documented_cases.contains(id)) .collect(), + unlisted_syntax_errors_accepted: head + .syntax_error_cases_accepted + .difference(&accepted) + .cloned() + .collect(), + unlisted_parsed_cases_refused: head.refused_cases.difference(&refused).cloned().collect(), + unlisted_receipts_contradicted: head_other.difference(other).cloned().collect(), + disagreements_resolved: accepted + .difference(&head.syntax_error_cases_accepted) + .chain(refused.difference(&head.refused_cases)) + .chain(judged_other.difference(&head_other)) + .cloned() + .collect(), + disagreements_added: added, } } diff --git a/tools/sqlquack-coverage-check/src/report/main/mod.rs b/tools/sqlquack-coverage-check/src/report/main/mod.rs index a3504477d..c1fe59678 100644 --- a/tools/sqlquack-coverage-check/src/report/main/mod.rs +++ b/tools/sqlquack-coverage-check/src/report/main/mod.rs @@ -1,5 +1,6 @@ //! Entry points. +pub mod diff_fails; pub mod diff_snapshots; pub mod focus_report; pub mod snapshot; diff --git a/tools/sqlquack-coverage-check/src/report/models.rs b/tools/sqlquack-coverage-check/src/report/models.rs index 3f3ac3db6..bf69619b2 100644 --- a/tools/sqlquack-coverage-check/src/report/models.rs +++ b/tools/sqlquack-coverage-check/src/report/models.rs @@ -81,6 +81,21 @@ pub struct Snapshot { pub unjudged_receipts: Option>, } +/// `receipt-disagreements.toml`: receipted cases the parser contradicts today, case keys by form. +#[derive(Clone, Debug, Default, PartialEq, Eq, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] +pub struct ReceiptDisagreements { + /// Cases Snowflake refused as syntax that the parser accepts, documented or not. + #[serde(default)] + pub syntax_errors_accepted: BTreeMap>, + /// Cases Snowflake parsed that the parser rejects. + #[serde(default)] + pub parsed_cases_refused: BTreeMap>, + /// Other receipt case ids the parser contradicts: retired cases, run reports, unjudged cases. + #[serde(default)] + pub other_receipts_contradicted: BTreeSet, +} + /// One snapshot against a later one; coverage and catalogue changes kept apart. #[derive(Clone, Debug, Default, PartialEq, Eq, Serialize)] pub struct SnapshotDiff { @@ -109,6 +124,16 @@ pub struct SnapshotDiff { pub receipts_still_contradicted: Vec, /// Receipts the head cannot judge because no case or run report gives their SQL. pub unjudged_receipts: Vec, + /// Syntax-error cases the head accepts, documented or not, that the file does not list. + pub unlisted_syntax_errors_accepted: Vec, + /// Cases Snowflake parsed that the head rejects and the file does not list. + pub unlisted_parsed_cases_refused: Vec, + /// Other receipts the head contradicts that the file does not list. + pub unlisted_receipts_contradicted: Vec, + /// Listed cases the head no longer contradicts, or that have no such receipt: delete their entries. + pub disagreements_resolved: Vec, + /// Listed cases the target branch's disagreements file did not list: the list only shrinks. + pub disagreements_added: Vec, } /// One focus form: its uses and how far it is. diff --git a/tools/sqlquack-coverage-check/src/report/tests/helpers.rs b/tools/sqlquack-coverage-check/src/report/tests/helpers.rs index fcb3eb96d..c46b62761 100644 --- a/tools/sqlquack-coverage-check/src/report/tests/helpers.rs +++ b/tools/sqlquack-coverage-check/src/report/tests/helpers.rs @@ -10,7 +10,7 @@ use crate::formats::main::load_coverage::load_coverage; use crate::report::main::snapshot::snapshot; use crate::formats::constants::SNAPSHOT_FORMAT; -use crate::report::models::Snapshot; +use crate::report::models::{ReceiptDisagreements, Snapshot}; pub(crate) fn ids(list: &[&str]) -> Vec { list.iter().map(|id| (*id).to_owned()).collect() @@ -39,6 +39,47 @@ pub(crate) fn base() -> Snapshot { } } +/// What `base()` contradicts today: its one Snowflake-parsed case the parser refuses. +pub(crate) fn listed_today() -> ReceiptDisagreements { + ReceiptDisagreements { + parsed_cases_refused: BTreeMap::from([( + "sf.query.with".to_owned(), + BTreeSet::from(["k2".to_owned()]), + )]), + ..ReceiptDisagreements::default() + } +} + +/// `base()` with `sf.query.select.k4`, a documented case, accepted against its syntax error. +pub(crate) fn documented_false_accept(mut snapshot: Snapshot) -> Snapshot { + snapshot + .syntax_error_cases_accepted + .insert("sf.query.select.k4".to_owned()); + snapshot + .documented_cases + .insert("sf.query.select.k4".to_owned()); + snapshot +} + +/// `listed_today()` with `sf.query.select.k4` listed as an accepted syntax error. +pub(crate) fn listing_k4() -> ReceiptDisagreements { + ReceiptDisagreements { + syntax_errors_accepted: BTreeMap::from([( + "sf.query.select".to_owned(), + BTreeSet::from(["k4".to_owned()]), + )]), + ..listed_today() + } +} + +/// `listed_today()` with `retired-1`, a receipt no obligation judges, listed. +pub(crate) fn listing_retired() -> ReceiptDisagreements { + ReceiptDisagreements { + other_receipts_contradicted: BTreeSet::from(["retired-1".to_owned()]), + ..listed_today() + } +} + /// Makes `select-17` an observe case whose receipt records `phase` and `errno`. pub(crate) fn observed_select_17(root: &Path, phase: &str, errno: i64) { rewrite_select_17( diff --git a/tools/sqlquack-coverage-check/src/report/tests/test_diff_snapshots.rs b/tools/sqlquack-coverage-check/src/report/tests/test_diff_snapshots.rs index 3d8c8271c..d868910c5 100644 --- a/tools/sqlquack-coverage-check/src/report/tests/test_diff_snapshots.rs +++ b/tools/sqlquack-coverage-check/src/report/tests/test_diff_snapshots.rs @@ -2,9 +2,11 @@ use std::collections::BTreeSet; use crate::check::models::FormState; use crate::report::main::diff_snapshots::diff_snapshots; -use crate::report::models::{Snapshot, SnapshotDiff}; -use crate::report::tests::helpers::{base, ids}; -use crate::report::tests::test_types::{BaseDiffTestCase, DiffTestCase}; +use crate::report::models::{ReceiptDisagreements, Snapshot, SnapshotDiff}; +use crate::report::tests::helpers::{ + base, documented_false_accept, ids, listed_today, listing_k4, listing_retired, +}; +use crate::report::tests::test_types::{BaseDiffTestCase, DiffTestCase, DisagreementTestCase}; #[test] fn given_a_later_snapshot_when_diffing_then_regressions_and_catalogue_changes_are_named() { @@ -94,18 +96,22 @@ fn given_a_later_snapshot_when_diffing_then_regressions_and_catalogue_changes_ar }, expected_diff: SnapshotDiff { parsed_cases_refused: ids(&["sf.query.select.k1"]), + unlisted_parsed_cases_refused: ids(&["sf.query.select.k1"]), ..SnapshotDiff::default() }, }, DiffTestCase { - description: "a refused case now parsing, or one leaving the receipts, is no regression", + description: "a refused case now parsing, or one leaving the receipts, is no regression but resolves its entry", head: |mut head| { head.refused_cases.remove("sf.query.with.k2"); head.parsed_cases.insert("sf.query.with.k2".to_owned()); head.parsed_cases.remove("sf.query.select.k1"); head }, - expected_diff: SnapshotDiff::default(), + expected_diff: SnapshotDiff { + disagreements_resolved: ids(&["sf.query.with.k2"]), + ..SnapshotDiff::default() + }, }, DiffTestCase { description: "a receipt the head newly contradicts, cited by a form or not, is a regression", @@ -115,6 +121,7 @@ fn given_a_later_snapshot_when_diffing_then_regressions_and_catalogue_changes_ar }, expected_diff: SnapshotDiff { receipts_contradicted: ids(&["retired-1"]), + unlisted_receipts_contradicted: ids(&["retired-1"]), ..SnapshotDiff::default() }, }, @@ -129,6 +136,7 @@ fn given_a_later_snapshot_when_diffing_then_regressions_and_catalogue_changes_ar }, expected_diff: SnapshotDiff { documented_receipts_contradicted: ids(&["sf.query.select.k3"]), + unlisted_receipts_contradicted: ids(&["sf.query.select.k3"]), ..SnapshotDiff::default() }, }, @@ -157,7 +165,12 @@ fn given_a_later_snapshot_when_diffing_then_regressions_and_catalogue_changes_ar }, ]; for test_case in test_cases { - let diff: SnapshotDiff = diff_snapshots(&base(), &(test_case.head)(base())); + let diff: SnapshotDiff = diff_snapshots( + &base(), + &(test_case.head)(base()), + &listed_today(), + Some(&listed_today()), + ); assert_eq!(diff, test_case.expected_diff, "{}", test_case.description); } } @@ -177,6 +190,7 @@ fn given_a_base_without_receipt_verdicts_when_diffing_then_no_contradiction_is_n }, expected_diff: SnapshotDiff { receipts_still_contradicted: ids(&["retired-1"]), + unlisted_receipts_contradicted: ids(&["retired-1"]), ..SnapshotDiff::default() }, }, @@ -192,8 +206,120 @@ fn given_a_base_without_receipt_verdicts_when_diffing_then_no_contradiction_is_n }, ]; for test_case in test_cases { - let diff: SnapshotDiff = - diff_snapshots(&(test_case.base)(base()), &(test_case.head)(base())); + let diff: SnapshotDiff = diff_snapshots( + &(test_case.base)(base()), + &(test_case.head)(base()), + &listed_today(), + Some(&listed_today()), + ); + assert_eq!(diff, test_case.expected_diff, "{}", test_case.description); + } +} + +#[test] +fn given_receipts_the_parser_contradicts_when_diffing_then_only_listed_ones_pass_and_the_list_only_shrinks() + { + let test_cases = [ + DisagreementTestCase { + description: "a documented case accepted against its syntax error, before and now, unlisted", + both: documented_false_accept, + listed: listed_today, + target: listed_today, + expected_diff: SnapshotDiff { + unlisted_syntax_errors_accepted: ids(&["sf.query.select.k4"]), + ..SnapshotDiff::default() + }, + }, + DisagreementTestCase { + description: "the same case listed, here and on the target branch", + both: documented_false_accept, + listed: listing_k4, + target: listing_k4, + expected_diff: SnapshotDiff::default(), + }, + DisagreementTestCase { + description: "the same case listed here but not on the target branch", + both: documented_false_accept, + listed: listing_k4, + target: listed_today, + expected_diff: SnapshotDiff { + disagreements_added: ids(&["sf.query.select.k4"]), + ..SnapshotDiff::default() + }, + }, + DisagreementTestCase { + description: "a refused case no obligation judges any more, listed as another receipt", + both: |mut snapshot| { + snapshot.refused_cases.clear(); + snapshot.receipt_contradictions = + Some(BTreeSet::from(["sf.query.with.k2".to_owned()])); + snapshot + }, + listed: || ReceiptDisagreements { + other_receipts_contradicted: BTreeSet::from(["sf.query.with.k2".to_owned()]), + ..ReceiptDisagreements::default() + }, + target: listed_today, + expected_diff: SnapshotDiff { + receipts_still_contradicted: ids(&["sf.query.with.k2"]), + ..SnapshotDiff::default() + }, + }, + DisagreementTestCase { + description: "a listed case the parser now rejects, as Snowflake did", + both: |snapshot| snapshot, + listed: listing_k4, + target: listing_k4, + expected_diff: SnapshotDiff { + disagreements_resolved: ids(&["sf.query.select.k4"]), + ..SnapshotDiff::default() + }, + }, + DisagreementTestCase { + description: "a case Snowflake parsed, refused before and now, unlisted", + both: |snapshot| snapshot, + listed: ReceiptDisagreements::default, + target: listed_today, + expected_diff: SnapshotDiff { + unlisted_parsed_cases_refused: ids(&["sf.query.with.k2"]), + ..SnapshotDiff::default() + }, + }, + DisagreementTestCase { + description: "a receipt no obligation judges, contradicted before and now, unlisted", + both: |snapshot| Snapshot { + receipt_contradictions: Some(BTreeSet::from(["retired-1".to_owned()])), + ..snapshot + }, + listed: listed_today, + target: listed_today, + expected_diff: SnapshotDiff { + unlisted_receipts_contradicted: ids(&["retired-1"]), + receipts_still_contradicted: ids(&["retired-1"]), + ..SnapshotDiff::default() + }, + }, + DisagreementTestCase { + description: "the same receipt listed", + both: |snapshot| Snapshot { + receipt_contradictions: Some(BTreeSet::from(["retired-1".to_owned()])), + ..snapshot + }, + listed: listing_retired, + target: listing_retired, + expected_diff: SnapshotDiff { + receipts_still_contradicted: ids(&["retired-1"]), + ..SnapshotDiff::default() + }, + }, + ]; + for test_case in test_cases { + let diff: SnapshotDiff = diff_snapshots( + &(test_case.both)(base()), + &(test_case.both)(base()), + &(test_case.listed)(), + Some(&(test_case.target)()), + ); assert_eq!(diff, test_case.expected_diff, "{}", test_case.description); } } diff --git a/tools/sqlquack-coverage-check/src/report/tests/test_parser_changes.rs b/tools/sqlquack-coverage-check/src/report/tests/test_parser_changes.rs index 0988c19b4..4723634e6 100644 --- a/tools/sqlquack-coverage-check/src/report/tests/test_parser_changes.rs +++ b/tools/sqlquack-coverage-check/src/report/tests/test_parser_changes.rs @@ -3,12 +3,13 @@ use crate::check::tests::helpers::{ verified_tree, with_fields, }; use crate::formats::constants::MARK_DOCUMENTED; +use crate::report::main::diff_fails::diff_fails; use crate::report::main::diff_snapshots::diff_snapshots; -use crate::report::models::SnapshotDiff; +use crate::report::models::{ReceiptDisagreements, SnapshotDiff}; use crate::report::tests::helpers::{ ids, mark_select_from, observed_select_17, observed_select_from, snapshot_with, }; -use crate::report::tests::test_types::ParserChangeTestCase; +use crate::report::tests::test_types::{GateTestCase, ParserChangeTestCase}; /// The shapes of the four regressions #55 brought on observe rows (audit 38bed222), and controls. #[test] @@ -60,6 +61,15 @@ fn given_receipted_cases_of_any_expectation_when_the_parser_changes_then_the_dif expected_syntax_error_cases_accepted: vec!["select-from"], expected_documented_cases_accepted: Vec::new(), }, + ParserChangeTestCase { + description: "an observe case the importer placed as a syntax error with 1002, now accepted", + mutate: |root| observed_select_from(root, 1002), + base: structural, + head: opaque, + expected_parsed_cases_refused: Vec::new(), + expected_syntax_error_cases_accepted: vec!["select-from"], + expected_documented_cases_accepted: Vec::new(), + }, ParserChangeTestCase { description: "a case marked documented, refused with 1003 and now accepted, is listed apart", mutate: |root| { @@ -129,6 +139,8 @@ fn given_receipted_cases_of_any_expectation_when_the_parser_changes_then_the_dif let diff: SnapshotDiff = diff_snapshots( &snapshot_with(directory.path(), test_case.base), &snapshot_with(directory.path(), test_case.head), + &ReceiptDisagreements::default(), + None, ); assert_eq!( ( @@ -146,3 +158,46 @@ fn given_receipted_cases_of_any_expectation_when_the_parser_changes_then_the_dif ); } } + +/// The gap that let three view cases through: a documented case accepted against a syntax error. +#[test] +fn given_a_documented_case_snowflake_refused_as_syntax_when_the_parser_accepts_it_then_the_diff_fails() + { + let test_cases = [ + GateTestCase { + description: "the parser accepts it, so the diff fails", + head: opaque, + expected_unlisted_syntax_errors_accepted: vec!["select-from"], + expected_fails: true, + }, + GateTestCase { + description: "the parser rejects it, as Snowflake did", + head: structural, + expected_unlisted_syntax_errors_accepted: Vec::new(), + expected_fails: false, + }, + ]; + for test_case in test_cases { + let directory = tempfile::tempdir().expect("temporary directory"); + verified_tree(directory.path()); + observed_select_from(directory.path(), 1003); + mark_select_from(directory.path(), MARK_DOCUMENTED); + let head = snapshot_with(directory.path(), test_case.head); + let diff: SnapshotDiff = + diff_snapshots(&head, &head, &ReceiptDisagreements::default(), None); + assert_eq!( + ( + diff_fails(&diff), + diff.unlisted_syntax_errors_accepted, + diff.unlisted_receipts_contradicted + ), + ( + test_case.expected_fails, + ids(&test_case.expected_unlisted_syntax_errors_accepted), + Vec::new() + ), + "{}", + test_case.description + ); + } +} diff --git a/tools/sqlquack-coverage-check/src/report/tests/test_types.rs b/tools/sqlquack-coverage-check/src/report/tests/test_types.rs index 842e7491b..a9649a7cc 100644 --- a/tools/sqlquack-coverage-check/src/report/tests/test_types.rs +++ b/tools/sqlquack-coverage-check/src/report/tests/test_types.rs @@ -1,7 +1,7 @@ use std::path::Path; use crate::check::models::LocalVerdict; -use crate::report::models::{Snapshot, SnapshotDiff}; +use crate::report::models::{ReceiptDisagreements, Snapshot, SnapshotDiff}; /// A change from the base snapshot, and the diff it must produce. pub(crate) struct DiffTestCase { @@ -28,3 +28,20 @@ pub(crate) struct ParserChangeTestCase { pub(crate) expected_syntax_error_cases_accepted: Vec<&'static str>, pub(crate) expected_documented_cases_accepted: Vec<&'static str>, } + +/// Claims set on both snapshots, the disagreements listed now and on the target branch, and the diff. +pub(crate) struct DisagreementTestCase { + pub(crate) description: &'static str, + pub(crate) both: fn(Snapshot) -> Snapshot, + pub(crate) listed: fn() -> ReceiptDisagreements, + pub(crate) target: fn() -> ReceiptDisagreements, + pub(crate) expected_diff: SnapshotDiff, +} + +/// A head parser on a documented syntax-error case, and whether the gate must fail. +pub(crate) struct GateTestCase { + pub(crate) description: &'static str, + pub(crate) head: fn(&str) -> LocalVerdict, + pub(crate) expected_unlisted_syntax_errors_accepted: Vec<&'static str>, + pub(crate) expected_fails: bool, +}