diff --git a/pkg/ccl/logictestccl/testdata/logic_test/crdb_internal b/pkg/ccl/logictestccl/testdata/logic_test/crdb_internal index 02074c148e72..280eec80d01b 100644 --- a/pkg/ccl/logictestccl/testdata/logic_test/crdb_internal +++ b/pkg/ccl/logictestccl/testdata/logic_test/crdb_internal @@ -72,6 +72,7 @@ SELECT zone_id, target FROM crdb_internal.zones ORDER BY 1 0 RANGE default 16 RANGE meta 17 RANGE system +18 RANGE timeseries 22 RANGE liveness 111 TABLE test.public.t4 111 INDEX test.public.t4@myt4index @@ -109,6 +110,8 @@ RANGE system ALTER RANGE system CONFIGURE ZONE USING num_replicas = 5, constraints = '[]', lease_preferences = '[]' +RANGE timeseries ALTER RANGE timeseries CONFIGURE ZONE USING + gc.ttlseconds = 14400 TABLE test.public.t4 ALTER TABLE test.public.t4 CONFIGURE ZONE USING num_replicas = 7 diff --git a/pkg/ccl/logictestccl/testdata/logic_test/zone b/pkg/ccl/logictestccl/testdata/logic_test/zone index 5ebf9e9520f9..e1ed1bbfa546 100644 --- a/pkg/ccl/logictestccl/testdata/logic_test/zone +++ b/pkg/ccl/logictestccl/testdata/logic_test/zone @@ -616,33 +616,34 @@ SELECT target, range_name, database_name, table_name, index_name, partition_name FROM crdb_internal.zones ORDER BY target ---- -DATABASE "my database" NULL my database NULL NULL NULL -DATABASE system NULL system NULL NULL NULL -INDEX "my database".public."my table"@"my index" NULL my database my table my index NULL -INDEX test.public.t36642@secondary NULL test t36642 secondary NULL -INDEX test.public.t36642@tertiary NULL test t36642 tertiary NULL -INDEX test.public.t36644@secondary NULL test t36644 secondary NULL -INDEX test.public.t36644@tertiary NULL test t36644 tertiary NULL -INDEX test.public.t@secondary NULL test t secondary NULL -INDEX test.public.t@tertiary NULL test t tertiary NULL -PARTITION "my partition" OF INDEX "my database".public."my table"@"my index" NULL my database my table my index my partition -PARTITION "my partition" OF INDEX "my database".public."my table"@"my table_pkey" NULL my database my table my table_pkey my partition -PARTITION x1_idx OF INDEX test.public.t38391@foo NULL test t38391 foo x1_idx -RANGE default default NULL NULL NULL NULL -RANGE liveness liveness NULL NULL NULL NULL -RANGE meta meta NULL NULL NULL NULL -RANGE system system NULL NULL NULL NULL -TABLE "my database".public."my table" NULL my database my table NULL NULL -TABLE system.public.lease NULL system lease NULL NULL -TABLE system.public.replication_constraint_stats NULL system replication_constraint_stats NULL NULL -TABLE system.public.replication_stats NULL system replication_stats NULL NULL -TABLE system.public.span_stats_tenant_boundaries NULL system span_stats_tenant_boundaries NULL NULL -TABLE system.public.statement_activity NULL system statement_activity NULL NULL -TABLE system.public.statement_statistics NULL system statement_statistics NULL NULL -TABLE system.public.tenant_usage NULL system tenant_usage NULL NULL -TABLE system.public.transaction_activity NULL system transaction_activity NULL NULL -TABLE system.public.transaction_statistics NULL system transaction_statistics NULL NULL -TABLE test.public.t NULL test t NULL NULL +DATABASE "my database" NULL my database NULL NULL NULL +DATABASE system NULL system NULL NULL NULL +INDEX "my database".public."my table"@"my index" NULL my database my table my index NULL +INDEX test.public.t36642@secondary NULL test t36642 secondary NULL +INDEX test.public.t36642@tertiary NULL test t36642 tertiary NULL +INDEX test.public.t36644@secondary NULL test t36644 secondary NULL +INDEX test.public.t36644@tertiary NULL test t36644 tertiary NULL +INDEX test.public.t@secondary NULL test t secondary NULL +INDEX test.public.t@tertiary NULL test t tertiary NULL +PARTITION "my partition" OF INDEX "my database".public."my table"@"my index" NULL my database my table my index my partition +PARTITION "my partition" OF INDEX "my database".public."my table"@"my table_pkey" NULL my database my table my table_pkey my partition +PARTITION x1_idx OF INDEX test.public.t38391@foo NULL test t38391 foo x1_idx +RANGE default default NULL NULL NULL NULL +RANGE liveness liveness NULL NULL NULL NULL +RANGE meta meta NULL NULL NULL NULL +RANGE system system NULL NULL NULL NULL +RANGE timeseries timeseries NULL NULL NULL NULL +TABLE "my database".public."my table" NULL my database my table NULL NULL +TABLE system.public.lease NULL system lease NULL NULL +TABLE system.public.replication_constraint_stats NULL system replication_constraint_stats NULL NULL +TABLE system.public.replication_stats NULL system replication_stats NULL NULL +TABLE system.public.span_stats_tenant_boundaries NULL system span_stats_tenant_boundaries NULL NULL +TABLE system.public.statement_activity NULL system statement_activity NULL NULL +TABLE system.public.statement_statistics NULL system statement_statistics NULL NULL +TABLE system.public.tenant_usage NULL system tenant_usage NULL NULL +TABLE system.public.transaction_activity NULL system transaction_activity NULL NULL +TABLE system.public.transaction_statistics NULL system transaction_statistics NULL NULL +TABLE test.public.t NULL test t NULL NULL # Test the zone information being displayed in SHOW CREATE statement ok diff --git a/pkg/ccl/spanconfigccl/spanconfigsqltranslatorccl/testdata/full_translate_named_zones_deleted b/pkg/ccl/spanconfigccl/spanconfigsqltranslatorccl/testdata/full_translate_named_zones_deleted index f6fccf3b144f..dc1446d9e896 100644 --- a/pkg/ccl/spanconfigccl/spanconfigsqltranslatorccl/testdata/full_translate_named_zones_deleted +++ b/pkg/ccl/spanconfigccl/spanconfigsqltranslatorccl/testdata/full_translate_named_zones_deleted @@ -12,6 +12,7 @@ SELECT id FROM system.zones 11 16 17 +18 22 25 27 diff --git a/pkg/ccl/spanconfigccl/spanconfigsqltranslatorccl/testdata/named_zones b/pkg/ccl/spanconfigccl/spanconfigsqltranslatorccl/testdata/named_zones index cd3ab2fb49f4..a971d9c64294 100644 --- a/pkg/ccl/spanconfigccl/spanconfigsqltranslatorccl/testdata/named_zones +++ b/pkg/ccl/spanconfigccl/spanconfigsqltranslatorccl/testdata/named_zones @@ -3,13 +3,12 @@ # RANGE DEFAULT is akin to a full reconciliation. -# ID 18 is for the time series range which is the only named zone that doesn't -# have an entry in `system.zones` at bootstrap. It should inherit from RANGE -# DEFAULT. +# ID 18 is for the time series range. At bootstrap, it has an explicit zone +# config which should inherit from RANGE DEFAULT. query-sql SELECT count(*) FROM system.zones WHERE id=18 ---- -0 +1 translate named-zone=timeseries ---- diff --git a/pkg/sql/catalog/bootstrap/metadata.go b/pkg/sql/catalog/bootstrap/metadata.go index 1d461a306985..5dd28f26e40d 100644 --- a/pkg/sql/catalog/bootstrap/metadata.go +++ b/pkg/sql/catalog/bootstrap/metadata.go @@ -511,6 +511,12 @@ func InitialZoneConfigKVs( metaRangeZoneConf := protoutil.Clone(defaultSystemZoneConfig).(*zonepb.ZoneConfig) livenessZoneConf := protoutil.Clone(defaultSystemZoneConfig).(*zonepb.ZoneConfig) + // The timeseries zone should inherit everything except for gc.ttlseconds from + // the default zone. We create it explicitly here so it's clearly visible + // when using SHOW ALL ZONE CONFIGURATIONS. + timeseriesZoneConf := zonepb.NewZoneConfig() + timeseriesZoneConf.GC = &zonepb.GCPolicy{TTLSeconds: defaultZoneConfig.GC.TTLSeconds} + // .meta zone config entry with a shorter GC time. metaRangeZoneConf.GC.TTLSeconds = 60 * 60 // 1h @@ -534,6 +540,7 @@ func InitialZoneConfigKVs( add(keys.MetaRangesID, metaRangeZoneConf) add(keys.LivenessRangesID, livenessZoneConf) add(keys.SystemRangesID, systemZoneConf) + add(keys.TimeseriesRangesID, timeseriesZoneConf) add(keys.SystemDatabaseID, systemZoneConf) add(keys.ReplicationConstraintStatsTableID, replicationConstraintStatsZoneConf) add(keys.ReplicationStatsTableID, replicationStatsZoneConf) diff --git a/pkg/sql/catalog/bootstrap/testdata/testdata b/pkg/sql/catalog/bootstrap/testdata/testdata index 061dabce425a..d93450d6fc95 100644 --- a/pkg/sql/catalog/bootstrap/testdata/testdata +++ b/pkg/sql/catalog/bootstrap/testdata/testdata @@ -1,4 +1,4 @@ -system hash=3d3210258c9ec86c5b1aa619be83379f5a23b5da269ec9f90fa68c5c6f87fc4f +system hash=6e9fc47c42475875a43765bbe4cff5d87f646b078e8d6bc69f239a8ae2dbb77b ---- [{"key":"8b"} ,{"key":"8b89898a89","value":"0312450a0673797374656d10011a250a0d0a0561646d696e1080101880100a0c0a04726f6f7410801018801012046e6f646518032200280140004a006a0a08d8843d100218002002"} @@ -65,6 +65,7 @@ system hash=3d3210258c9ec86c5b1aa619be83379f5a23b5da269ec9f90fa68c5c6f87fc4f ,{"key":"8d89938a89","value":"03220308d804500158017800"} ,{"key":"8d89988a89","value":"031080808040188080808002220308901c2805500058007801"} ,{"key":"8d89998a89","value":"031080808040188080808002220308c0702805500058007801"} +,{"key":"8d899a8a89","value":"03220308c070500058007800"} ,{"key":"8d899e8a89","value":"031080808040188080808002220308d8042805500058007801"} ,{"key":"8d89a18a89","value":"03220308d804500158017800"} ,{"key":"8d89a38a89","value":"03220308d804500158017800"} diff --git a/pkg/sql/catalog/internal/catkv/testdata/testdata_system b/pkg/sql/catalog/internal/catkv/testdata/testdata_system index 2dd11cd354bb..1ee37bf844bc 100644 --- a/pkg/sql/catalog/internal/catkv/testdata/testdata_system +++ b/pkg/sql/catalog/internal/catkv/testdata/testdata_system @@ -247,6 +247,8 @@ catalog: zone: gc.ttlseconds=3600 "017": zone: gc.ttlseconds=14400 + "018": + zone: gc.ttlseconds=14400 "019": descriptor: relation namespace: (1, 29, "web_sessions") diff --git a/pkg/sql/logictest/testdata/logic_test/crdb_internal b/pkg/sql/logictest/testdata/logic_test/crdb_internal index d03ac85717ea..e783e5847265 100644 --- a/pkg/sql/logictest/testdata/logic_test/crdb_internal +++ b/pkg/sql/logictest/testdata/logic_test/crdb_internal @@ -567,7 +567,6 @@ SELECT 'schema.bar'::regclass::int statement ok INSERT INTO system.zones (id, config) VALUES - (18, (SELECT raw_config_protobuf FROM crdb_internal.zones WHERE zone_id = 0)), ($testdb_id, (SELECT raw_config_protobuf FROM crdb_internal.zones WHERE zone_id = 0)), ($testdb_foo_id, (SELECT raw_config_protobuf FROM crdb_internal.zones WHERE zone_id = 0)), ($schema_bar_id, (SELECT raw_config_protobuf FROM crdb_internal.zones WHERE zone_id = 0)) diff --git a/pkg/sql/logictest/testdata/logic_test/zone_config_system_tenant b/pkg/sql/logictest/testdata/logic_test/zone_config_system_tenant index 46a1741cc038..87ef8a172e90 100644 --- a/pkg/sql/logictest/testdata/logic_test/zone_config_system_tenant +++ b/pkg/sql/logictest/testdata/logic_test/zone_config_system_tenant @@ -1,6 +1,15 @@ # LogicTest: !3node-tenant-default-configs # Zone config logic tests that are only meant to work for the system tenant. +# Verify that the timeseries range has a zone config after bootstrap. It should +# only specify gc.ttlseconds, and everything should be implicitly inherited +# from the default range zone config. +query TT +SELECT target, raw_config_sql FROM [SHOW ZONE CONFIGURATIONS] WHERE target = 'RANGE timeseries' +---- +RANGE timeseries ALTER RANGE timeseries CONFIGURE ZONE USING + gc.ttlseconds = 14400 + statement ok CREATE TABLE t(); @@ -29,6 +38,7 @@ SELECT zone_id, target FROM crdb_internal.zones ORDER BY 1 11 TABLE system.public.lease 16 RANGE meta 17 RANGE system +18 RANGE timeseries 22 RANGE liveness 25 TABLE system.public.replication_constraint_stats 27 TABLE system.public.replication_stats @@ -194,8 +204,8 @@ ORDER BY start_key /Table/106 14400 /Table/107 14400 /Table/110 90001 -/Table/111 1 -/Table/112 1 +/Table/111 90001 +/Table/112 14400 subtest transactional_schemachanges diff --git a/pkg/sql/tests/system_table_test.go b/pkg/sql/tests/system_table_test.go index 0d01db593701..075bff3b7677 100644 --- a/pkg/sql/tests/system_table_test.go +++ b/pkg/sql/tests/system_table_test.go @@ -53,7 +53,7 @@ func TestInitialKeys(t *testing.T) { var nonDescKeys int if systemTenant { codec = keys.SystemSQLCodec - nonDescKeys = 16 + nonDescKeys = 17 } else { codec = keys.MakeSQLCodec(roachpb.MustMakeTenantID(5)) nonDescKeys = 8 diff --git a/pkg/sql/tests/testdata/initial_keys b/pkg/sql/tests/testdata/initial_keys index e9ccf3e3a787..a7d1396c85eb 100644 --- a/pkg/sql/tests/testdata/initial_keys +++ b/pkg/sql/tests/testdata/initial_keys @@ -1,6 +1,6 @@ initial-keys tenant=system ---- -130 keys: +131 keys: /Table/3/1/1/2/1 /Table/3/1/3/2/1 /Table/3/1/4/2/1 @@ -63,6 +63,7 @@ initial-keys tenant=system /Table/5/1/11/2/1 /Table/5/1/16/2/1 /Table/5/1/17/2/1 + /Table/5/1/18/2/1 /Table/5/1/22/2/1 /Table/5/1/25/2/1 /Table/5/1/27/2/1