# Miscellaneous edge case tests for the SQLTranslator, on a secondary tenant.

# Test dropped tables/databases work correctly.
exec-sql
CREATE DATABASE db;
CREATE TABLE db.t1();
CREATE TABLE db.t2();
ALTER TABLE db.t1 CONFIGURE ZONE USING gc.ttlseconds=1;
----

translate database=db
----
/Tenant/10/Table/10{6-7}                   ttl_seconds=1 rangefeed_enabled=true
/Tenant/10/Table/10{7-8}                   rangefeed_enabled=true

# Drop the table.
exec-sql
DROP TABLE db.t1;
----

# We should no longer see the dropped table's spans.
translate database=db
----
/Tenant/10/Table/10{7-8}                   rangefeed_enabled=true

# Same as above, except this time the translation starts from the table's ID.
translate id=56
----
/Tenant/10/Table/5{6-7}                    database system (tenant)

subtest offline-descriptors

exec-sql
ALTER DATABASE db CONFIGURE ZONE USING gc.ttlseconds=10;
----

# Mark the database as offline, we should still be able to generate a span
# configuration for it.
mark-database-offline database=db
----

translate database=db
----
/Tenant/10/Table/10{7-8}                   ttl_seconds=10 rangefeed_enabled=true

# Delete the bespoke zone config on db. t2 should fallback to the RANGE DEFAULT
# zone config even though all descriptors are offline.
exec-sql
DELETE FROM system.zones WHERE id = 104;
----

translate database=db
----
/Tenant/10/Table/10{7-8}                   rangefeed_enabled=true

translate database=db table=t2
----
/Tenant/10/Table/10{7-8}                   rangefeed_enabled=true

mark-database-public database=db
----

exec-sql
ALTER DATABASE db CONFIGURE ZONE USING gc.ttlseconds=11;
----

# Mark table db.t2 as offline, we should still be able to generate a span
# configuration for it.
mark-table-offline database=db table=t2
----

# Should work for both when we start from the table and when we start from the
# database.
translate database=db table=t2
----
/Tenant/10/Table/10{7-8}                   ttl_seconds=11 rangefeed_enabled=true

translate database=db
----
/Tenant/10/Table/10{7-8}                   ttl_seconds=11 rangefeed_enabled=true

# Mark the table as public again.
mark-table-public database=db table=t2
----

translate database=db table=t2
----
/Tenant/10/Table/10{7-8}                   ttl_seconds=11 rangefeed_enabled=true

subtest end

# Test schemas/types don't generate a span configuration.
exec-sql
CREATE SCHEMA db.sc;
CREATE TYPE db.typ AS ENUM();
----

translate database=db
----
/Tenant/10/Table/10{7-8}                   ttl_seconds=11 rangefeed_enabled=true

# Test that non-existent IDs do not generate span configurations either.
translate id=500
----
