diff --git a/pkg/ccl/changefeedccl/bench_test.go b/pkg/ccl/changefeedccl/bench_test.go index 9e1294c29051..4b90f35b800f 100644 --- a/pkg/ccl/changefeedccl/bench_test.go +++ b/pkg/ccl/changefeedccl/bench_test.go @@ -46,7 +46,7 @@ func BenchmarkChangefeedTicks(b *testing.B) { defer s.Stopper().Stop(ctx) sqlDB := sqlutils.MakeSQLRunner(sqlDBRaw) sqlDB.Exec(b, `CREATE DATABASE d`) - sqlDB.Exec(b, `SET CLUSTER SETTING changefeed.experimental_poll_interval = '0ns'`) + sqlDB.Exec(b, `SET CLUSTER SETTING changefeed.experimental_poll_interval = '0ms'`) numRows := 1000 if testing.Short() { diff --git a/pkg/sql/logictest/testdata/logic_test/as_of b/pkg/sql/logictest/testdata/logic_test/as_of index aac3c0ca40dc..003558687b0d 100644 --- a/pkg/sql/logictest/testdata/logic_test/as_of +++ b/pkg/sql/logictest/testdata/logic_test/as_of @@ -20,7 +20,7 @@ SELECT * FROM t AS OF SYSTEM TIME INTERVAL '-1us' # Verify that we can use computed expressions. query I -SELECT * FROM t AS OF SYSTEM TIME -( ('1000' || 'ns')::INTERVAL ) +SELECT * FROM t AS OF SYSTEM TIME -( ('1000' || 'us')::INTERVAL ) ---- 2 @@ -55,8 +55,8 @@ SELECT * FROM (SELECT now()) AS OF SYSTEM TIME '2018-01-01' # Verify that zero intervals indistinguishable from zero cause an error. -statement error pq: AS OF SYSTEM TIME: interval value '100ns' too small, must be <= -1µs -SELECT * FROM t AS OF SYSTEM TIME '100ns' +statement error pq: AS OF SYSTEM TIME: interval value '0.1us' too small, must be <= -1µs +SELECT * FROM t AS OF SYSTEM TIME '0.1us' statement error pq: AS OF SYSTEM TIME: interval value '0,0' too small, must be <= -1µs SELECT * FROM t AS OF SYSTEM TIME '0,0' @@ -64,8 +64,8 @@ SELECT * FROM t AS OF SYSTEM TIME '0,0' statement error pq: AS OF SYSTEM TIME: interval value '0.000000000,0' too small, must be <= -1µs SELECT * FROM t AS OF SYSTEM TIME '0.000000000,0' -statement error pq: AS OF SYSTEM TIME: interval value '-100ns' too small, must be <= -1µs -SELECT * FROM t AS OF SYSTEM TIME '-100ns' +statement error pq: AS OF SYSTEM TIME: interval value '-0.1us' too small, must be <= -1µs +SELECT * FROM t AS OF SYSTEM TIME '-0.1us' statement error pq: AS OF SYSTEM TIME: zero timestamp is invalid SELECT * FROM t AS OF SYSTEM TIME '0' diff --git a/pkg/sql/logictest/testdata/logic_test/datetime b/pkg/sql/logictest/testdata/logic_test/datetime index 64a1c34056c2..024fa9b63d60 100644 --- a/pkg/sql/logictest/testdata/logic_test/datetime +++ b/pkg/sql/logictest/testdata/logic_test/datetime @@ -439,6 +439,12 @@ SELECT k, extract(element, input::timestamp) = extract_result, extract(element, query error extract\(\): unsupported timespan: nansecond SELECT extract(nansecond from '2001-04-10 12:04:59.34565423'::timestamp) +query error unknown unit "nanosecond" +SELECT INTERVAL '1 nanosecond'; + +query error unknown unit "ns" +SELECT INTERVAL '1 ns'; + query IBI SELECT k, extract(element, input::timestamptz) = extract_result, extract(element, input::timestamptz) FROM ex ORDER BY k ---- diff --git a/pkg/sql/opt/optbuilder/testdata/select b/pkg/sql/opt/optbuilder/testdata/select index 7f764f6e7184..fed015708190 100644 --- a/pkg/sql/opt/optbuilder/testdata/select +++ b/pkg/sql/opt/optbuilder/testdata/select @@ -1125,7 +1125,7 @@ select # This is slightly funky, because the AS OF SYSTEM TIME timestamp only gets # interpreted by the executor, which obviously is not at play in these tests. build -SELECT * FROM a AS OF SYSTEM TIME '-1000ns' +SELECT * FROM a AS OF SYSTEM TIME '-1000ms' ---- error (42601): AS OF SYSTEM TIME must be provided on a top-level statement diff --git a/pkg/sql/sem/tree/interval.go b/pkg/sql/sem/tree/interval.go index 5d4391a321b5..1192f9e0fa1b 100644 --- a/pkg/sql/sem/tree/interval.go +++ b/pkg/sql/sem/tree/interval.go @@ -395,7 +395,6 @@ var unitMap = func( }(map[string]duration.Duration{ // Use DecodeDuration here because ns is the only unit for which we do not // want to round nanoseconds since it is only used for multiplication. - "nanosecond": duration.DecodeDuration(0, 0, time.Nanosecond.Nanoseconds()), "microsecond": duration.MakeDuration(time.Microsecond.Nanoseconds(), 0, 0), "millisecond": duration.MakeDuration(time.Millisecond.Nanoseconds(), 0, 0), "second": duration.MakeDuration(time.Second.Nanoseconds(), 0, 0), @@ -406,7 +405,6 @@ var unitMap = func( "month": duration.MakeDuration(0, 0, 1), "year": duration.MakeDuration(0, 0, 12), }, map[string][]string{ - "nanosecond": {"ns", "nsec", "nsecs", "nsecond", "nseconds"}, // Include PostgreSQL's unit keywords for compatibility; see // https://github.com/postgres/postgres/blob/a01d0fa1d889cc2003e1941e8b98707c4d701ba9/src/backend/utils/adt/datetime.c#L175-L240 // diff --git a/pkg/sql/sem/tree/interval_test.go b/pkg/sql/sem/tree/interval_test.go index 9889a608f81e..e4bbfe04172f 100644 --- a/pkg/sql/sem/tree/interval_test.go +++ b/pkg/sql/sem/tree/interval_test.go @@ -179,13 +179,11 @@ func TestPGIntervalSyntax(t *testing.T) { {`123`, ``, `interval: missing unit at position 3: "123"`}, {`123blah`, ``, `interval: unknown unit "blah" in duration "123blah"`}, + {`500nanoseconds`, ``, `interval: unknown unit "nanoseconds" in duration "500nanoseconds"`}, + {`500ns`, ``, `interval: unknown unit "ns" in duration "500ns"`}, + // ns/us boundary - {`499ns`, `00:00:00`, ``}, - {`500ns`, `00:00:00.000001`, ``}, - {`.499us`, `00:00:00`, ``}, {`.5us`, `00:00:00.000001`, ``}, - {`-499ns`, `00:00:00`, ``}, - {`-500ns`, `-00:00:00.000001`, ``}, {`-0.499us`, `00:00:00`, ``}, {`-0.5us`, `-00:00:00.000001`, ``}, {`0.000000499s`, `00:00:00`, ``}, @@ -193,18 +191,6 @@ func TestPGIntervalSyntax(t *testing.T) { {`-0.000000499s`, `00:00:00`, ``}, {`-0.0000005s`, `-00:00:00.000001`, ``}, - {`1.2 nanosecond`, `00:00:00`, ``}, - {`1.2 nanoseconds`, `00:00:00`, ``}, - {`1.2 ns`, `00:00:00`, ``}, - {` 1.2 ns `, `00:00:00`, ``}, - {`-1.2ns`, `00:00:00`, ``}, - {`-1.2nsec`, `00:00:00`, ``}, - {`-1.2nsecs`, `00:00:00`, ``}, - {`-1.2nsecond`, `00:00:00`, ``}, - {`-1.2nseconds`, `00:00:00`, ``}, - {`-9223372036854775808ns`, `-2562047:47:16.854775`, ``}, - {`9223372036854775807ns`, `2562047:47:16.854775`, ``}, - {`1.2 microsecond`, `00:00:00.000001`, ``}, {`1.2microseconds`, `00:00:00.000001`, ``}, {`1.2us`, `00:00:00.000001`, ``}, @@ -220,9 +206,6 @@ func TestPGIntervalSyntax(t *testing.T) { {`-0.23us`, `00:00:00`, ``}, {`0.2346us`, `00:00:00`, ``}, {`-1.2us`, `-00:00:00.000001`, ``}, - {`1.2us 3ns`, `00:00:00.000001`, ``}, - {` 1.2us 3ns `, `00:00:00.000001`, ``}, - {`3ns 1.2us`, `00:00:00.000001`, ``}, {`1.2millisecond`, `00:00:00.0012`, ``}, {`1.2milliseconds`, `00:00:00.0012`, ``}, @@ -233,7 +216,6 @@ func TestPGIntervalSyntax(t *testing.T) { {`1.2mseconds`, `00:00:00.0012`, ``}, {`0.2304506ms`, `00:00:00.00023`, ``}, {`0.0002304506ms`, `00:00:00`, ``}, - {`1 ms 1us 1ns`, `00:00:00.001001`, ``}, {`1.2second`, `00:00:01.2`, ``}, {`1.2seconds`, `00:00:01.2`, ``}, @@ -246,14 +228,14 @@ func TestPGIntervalSyntax(t *testing.T) { {`75.5s`, `00:01:15.5`, ``}, {`3675.5s`, `01:01:15.5`, ``}, {`86475.5s`, `24:01:15.5`, ``}, - {`86400s -60000ms 100us -1ns`, `23:59:00.0001`, ``}, + {`86400s -60000ms 100us`, `23:59:00.0001`, ``}, {`1.2minute`, `00:01:12`, ``}, {`1.2minutes`, `00:01:12`, ``}, {`1.2m`, `00:01:12`, ``}, {`1.2min`, `00:01:12`, ``}, {`1.2mins`, `00:01:12`, ``}, - {`1.2m 8s 20ns`, `00:01:20`, ``}, + {`1.2m 8s`, `00:01:20`, ``}, {`0.5m`, `00:00:30`, ``}, {`120.5m`, `02:00:30`, ``}, {`0.23045067089m`, `00:00:13.82704`, ``}, @@ -264,7 +246,7 @@ func TestPGIntervalSyntax(t *testing.T) { {`1.2h`, `01:12:00`, ``}, {`1.2hr`, `01:12:00`, ``}, {`1.2hrs`, `01:12:00`, ``}, - {`1.2h 8m 20ns`, `01:20:00`, ``}, + {`1.2h 8m`, `01:20:00`, ``}, {`0.5h`, `00:30:00`, ``}, {`25.5h`, `25:30:00`, ``}, {`0.23045067089h`, `00:13:49.622415`, ``}, diff --git a/pkg/sql/sem/tree/testdata/eval/cast b/pkg/sql/sem/tree/testdata/eval/cast index f8364d793630..c5b2920b127a 100644 --- a/pkg/sql/sem/tree/testdata/eval/cast +++ b/pkg/sql/sem/tree/testdata/eval/cast @@ -721,17 +721,17 @@ eval 9 eval -'2h3s4us5ns'::interval::int +'2h3s4us'::interval::int ---- 7203 eval -'2h3s4us5ns'::interval::int::interval +'2h3s4us'::interval::int::interval ---- '02:00:03' eval -'-2h-3s-4us-5ns'::interval::int::interval +'-2h-3s-4us'::interval::int::interval ---- '-02:00:03' @@ -795,7 +795,7 @@ eval 9 eval -'2h3s4us5ns'::interval::decimal +'2h3s4us'::interval::decimal ---- 7203.000004000 @@ -805,22 +805,22 @@ eval '02:00:03.000004' eval -'2h3s4us5ns'::interval::decimal::interval +'2h3s4us'::interval::decimal::interval ---- '02:00:03.000004' eval -'-2h-3s-4us-5ns'::interval::decimal::interval +'-2h-3s-4us'::interval::decimal::interval ---- '-02:00:03.000004' eval -'1mon2d3h4s5us6ns'::interval::decimal +'1mon2d3h4s5us'::interval::decimal ---- 2775604.000005000 eval -'1mon2d3h4s5us6ns'::interval::decimal::interval +'1mon2d3h4s5us'::interval::decimal::interval ---- '1 mon 2 days 03:00:04.000005' @@ -830,7 +830,7 @@ eval '-1 mons -2 days -03:00:04.000005' eval -'-1mon-2d-3h-4s-5us-6ns'::interval::decimal::interval +'-1mon-2d-3h-4s-5us'::interval::decimal::interval ---- '-1 mons -2 days -03:00:04.000005' @@ -848,13 +848,13 @@ eval # MaxInt64 eval -'296533308798y20d15h30m7s1ns'::interval::decimal::interval +'296533308798y20d15h30m7s'::interval::decimal::interval ---- '296533308798 years 20 days 15:30:07' # MinInt64 eval -'-296533308798y-20d-15h-30m-8s-1ns'::interval::decimal::interval +'-296533308798y-20d-15h-30m-8s'::interval::decimal::interval ---- '-296533308798 years -20 days -15:30:08' @@ -874,12 +874,12 @@ eval 9.0 eval -'2h3s4us5ns'::interval::float +'2h3s4us'::interval::float ---- 7203.000004 eval -'2h3s4us5ns'::interval::float::interval +'2h3s4us'::interval::float::interval ---- '02:00:03.000004' @@ -899,7 +899,7 @@ eval '-1 mons -2 days -03:00:04.000005' eval -'-1mon-2d-3h-4s-5us-6ns'::interval::float::interval +'-1mon-2d-3h-4s-5us'::interval::float::interval ---- '-1 mons -2 days -03:00:04.000005' diff --git a/pkg/sql/sem/tree/testdata/eval/extract b/pkg/sql/sem/tree/testdata/eval/extract index f8de96592d91..cfa80a451664 100644 --- a/pkg/sql/sem/tree/testdata/eval/extract +++ b/pkg/sql/sem/tree/testdata/eval/extract @@ -165,8 +165,3 @@ eval extract_duration(millisecond from '20s30ms40µs'::interval) ---- 20030 - -eval -extract_duration(microsecond from '12345ns'::interval) ----- -12