chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 12:32:25 +08:00
commit e014feafe1
2285 changed files with 1131979 additions and 0 deletions
@@ -0,0 +1,331 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Abs(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "abs",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT abs( 0::int2 ) ;",
Expected: []sql.Row{{int16(0)}},
},
{
Query: "SELECT abs( -1::int2 ) ;",
Expected: []sql.Row{{int16(1)}},
},
{
Query: "SELECT abs( 1::int2 ) ;",
Expected: []sql.Row{{int16(1)}},
},
{
Query: "SELECT abs( 2::int2 ) ;",
Expected: []sql.Row{{int16(2)}},
},
{
Query: "SELECT abs( -2::int2 ) ;",
Expected: []sql.Row{{int16(2)}},
},
{
Query: "SELECT abs( 5::int2 ) ;",
Expected: []sql.Row{{int16(5)}},
},
{
Query: "SELECT abs( 10::int2 ) ;",
Expected: []sql.Row{{int16(10)}},
},
{
Query: "SELECT abs( -10::int2 ) ;",
Expected: []sql.Row{{int16(10)}},
},
{
Query: "SELECT abs( 100::int2 ) ;",
Expected: []sql.Row{{int16(100)}},
},
{
Query: "SELECT abs( 2105::int2 ) ;",
Expected: []sql.Row{{int16(2105)}},
},
{
Query: "SELECT abs( 10000::int2 ) ;",
Expected: []sql.Row{{int16(10000)}},
},
{
Query: "SELECT abs( -11842::int2 ) ;",
Expected: []sql.Row{{int16(11842)}},
},
{
Query: "SELECT abs( 25252::int2 ) ;",
Expected: []sql.Row{{int16(25252)}},
},
{
Query: "SELECT abs( -32768::int2 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT abs( 32767::int2 ) ;",
Expected: []sql.Row{{int16(32767)}},
},
{
Query: "SELECT abs( 0::int4 ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT abs( -1::int4 ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT abs( 1::int4 ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT abs( 2::int4 ) ;",
Expected: []sql.Row{{int32(2)}},
},
{
Query: "SELECT abs( -2::int4 ) ;",
Expected: []sql.Row{{int32(2)}},
},
{
Query: "SELECT abs( 5::int4 ) ;",
Expected: []sql.Row{{int32(5)}},
},
{
Query: "SELECT abs( 10::int4 ) ;",
Expected: []sql.Row{{int32(10)}},
},
{
Query: "SELECT abs( -10::int4 ) ;",
Expected: []sql.Row{{int32(10)}},
},
{
Query: "SELECT abs( 100::int4 ) ;",
Expected: []sql.Row{{int32(100)}},
},
{
Query: "SELECT abs( 21050::int4 ) ;",
Expected: []sql.Row{{int32(21050)}},
},
{
Query: "SELECT abs( 100000::int4 ) ;",
Expected: []sql.Row{{int32(100000)}},
},
{
Query: "SELECT abs( -1184280::int4 ) ;",
Expected: []sql.Row{{int32(1184280)}},
},
{
Query: "SELECT abs( 2525280::int4 ) ;",
Expected: []sql.Row{{int32(2525280)}},
},
{
Query: "SELECT abs( -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT abs( 2147483647::int4 ) ;",
Expected: []sql.Row{{int32(2147483647)}},
},
{
Query: "SELECT abs( 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT abs( -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT abs( 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT abs( 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT abs( -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT abs( 5::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT abs( 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT abs( -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT abs( 1000::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT abs( 2105076::int8 ) ;",
Expected: []sql.Row{{int64(2105076)}},
},
{
Query: "SELECT abs( 100000000::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT abs( -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(5184226581)}},
},
{
Query: "SELECT abs( 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT abs( -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT abs( 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(9223372036854775807)}},
},
{
Query: "SELECT abs( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT abs( -1::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT abs( 1::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT abs( 2::float8 ) ;",
Expected: []sql.Row{{float64(2.000000)}},
},
{
Query: "SELECT abs( -2::float8 ) ;",
Expected: []sql.Row{{float64(2.000000)}},
},
{
Query: "SELECT abs( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(5.250000)}},
},
{
Query: "SELECT abs( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(10.870000)}},
},
{
Query: "SELECT abs( -10::float8 ) ;",
Expected: []sql.Row{{float64(10.000000)}},
},
{
Query: "SELECT abs( 100::float8 ) ;",
Expected: []sql.Row{{float64(100.000000)}},
},
{
Query: "SELECT abs( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(21050.480000)}},
},
{
Query: "SELECT abs( 100000::float8 ) ;",
Expected: []sql.Row{{float64(100000.000000)}},
},
{
Query: "SELECT abs( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(1184280.000000)}},
},
{
Query: "SELECT abs( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(2525280.279000)}},
},
{
Query: "SELECT abs( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(2147483648.000000)}},
},
{
Query: "SELECT abs( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(2147483647.590240)}},
},
{
Query: "SELECT abs( 0::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT abs( -1::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT abs( 1::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT abs( 2::numeric ) ;",
Expected: []sql.Row{{Numeric("2")}},
},
{
Query: "SELECT abs( -2::numeric ) ;",
Expected: []sql.Row{{Numeric("2")}},
},
{
Query: "SELECT abs( 5::numeric ) ;",
Expected: []sql.Row{{Numeric("5")}},
},
{
Query: "SELECT abs( 10::numeric ) ;",
Expected: []sql.Row{{Numeric("10")}},
},
{
Query: "SELECT abs( -10::numeric ) ;",
Expected: []sql.Row{{Numeric("10")}},
},
{
Query: "SELECT abs( 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("1000")}},
},
{
Query: "SELECT abs( 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("2105076")}},
},
{
Query: "SELECT abs( 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("100000000.2345862323456346511423652312416532")}},
},
{
Query: "SELECT abs( -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("5184226581")}},
},
{
Query: "SELECT abs( 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("8525267290")}},
},
{
Query: "SELECT abs( -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("79223372036854775808")}},
},
{
Query: "SELECT abs( 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("79223372036854775807")}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Acos(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "acos",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT acos( 0::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT acos( -1::float8 ) ;",
Expected: []sql.Row{{float64(3.141593)}},
},
{
Query: "SELECT acos( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT acos( 2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acos( -2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acos( 5.25::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acos( 10.87::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acos( -10::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acos( 100::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acos( 21050.48::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acos( 100000::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acos( -1184280::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acos( 2525280.279::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acos( -2147483648::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acos( 2147483647.59024::float8 ) ;",
ExpectedErr: true,
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Acosd(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "acosd",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT acosd( 0::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT acosd( -1::float8 ) ;",
Expected: []sql.Row{{float64(180.000000)}},
},
{
Query: "SELECT acosd( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT acosd( 2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosd( -2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosd( 5.25::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosd( 10.87::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosd( -10::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosd( 100::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosd( 21050.48::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosd( 100000::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosd( -1184280::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosd( 2525280.279::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosd( -2147483648::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosd( 2147483647.59024::float8 ) ;",
ExpectedErr: true,
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Acosh(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "acosh",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT acosh( 0::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosh( -1::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosh( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT acosh( 2::float8 ) ;",
Expected: []sql.Row{{float64(1.316958)}},
},
{
Query: "SELECT acosh( -2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosh( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(2.342179)}},
},
{
Query: "SELECT acosh( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(3.077031)}},
},
{
Query: "SELECT acosh( -10::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosh( 100::float8 ) ;",
Expected: []sql.Row{{float64(5.298292)}},
},
{
Query: "SELECT acosh( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(10.647826)}},
},
{
Query: "SELECT acosh( 100000::float8 ) ;",
Expected: []sql.Row{{float64(12.206073)}},
},
{
Query: "SELECT acosh( -1184280::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosh( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(15.435010)}},
},
{
Query: "SELECT acosh( -2147483648::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT acosh( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(22.180710)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Ascii(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "ascii",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT ascii( '' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT ascii( ' ' ) ;",
Expected: []sql.Row{{int32(32)}},
},
{
Query: "SELECT ascii( '0' ) ;",
Expected: []sql.Row{{int32(48)}},
},
{
Query: "SELECT ascii( '1' ) ;",
Expected: []sql.Row{{int32(49)}},
},
{
Query: "SELECT ascii( 'a' ) ;",
Expected: []sql.Row{{int32(97)}},
},
{
Query: "SELECT ascii( 'abc' ) ;",
Expected: []sql.Row{{int32(97)}},
},
{
Query: "SELECT ascii( '123' ) ;",
Expected: []sql.Row{{int32(49)}},
},
{
Query: "SELECT ascii( 'value' ) ;",
Expected: []sql.Row{{int32(118)}},
},
{
Query: "SELECT ascii( '12345' ) ;",
Expected: []sql.Row{{int32(49)}},
},
{
Query: "SELECT ascii( 'something' ) ;",
Expected: []sql.Row{{int32(115)}},
},
{
Query: "SELECT ascii( ' something' ) ;",
Expected: []sql.Row{{int32(32)}},
},
{
Query: "SELECT ascii( 'something ' ) ;",
Expected: []sql.Row{{int32(115)}},
},
{
Query: "SELECT ascii( '123456789' ) ;",
Expected: []sql.Row{{int32(49)}},
},
{
Query: "SELECT ascii( 'a group of words' ) ;",
Expected: []sql.Row{{int32(97)}},
},
{
Query: "SELECT ascii( '1234567890123456' ) ;",
Expected: []sql.Row{{int32(49)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Asin(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "asin",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT asin( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT asin( -1::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT asin( 1::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT asin( 2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asin( -2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asin( 5.25::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asin( 10.87::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asin( -10::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asin( 100::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asin( 21050.48::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asin( 100000::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asin( -1184280::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asin( 2525280.279::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asin( -2147483648::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asin( 2147483647.59024::float8 ) ;",
ExpectedErr: true,
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Asind(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "asind",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT asind( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT asind( -1::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT asind( 1::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT asind( 2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asind( -2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asind( 5.25::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asind( 10.87::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asind( -10::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asind( 100::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asind( 21050.48::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asind( 100000::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asind( -1184280::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asind( 2525280.279::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asind( -2147483648::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT asind( 2147483647.59024::float8 ) ;",
ExpectedErr: true,
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Asinh(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "asinh",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT asinh( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT asinh( -1::float8 ) ;",
Expected: []sql.Row{{float64(-0.881374)}},
},
{
Query: "SELECT asinh( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.881374)}},
},
{
Query: "SELECT asinh( 2::float8 ) ;",
Expected: []sql.Row{{float64(1.443635)}},
},
{
Query: "SELECT asinh( -2::float8 ) ;",
Expected: []sql.Row{{float64(-1.443635)}},
},
{
Query: "SELECT asinh( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(2.360325)}},
},
{
Query: "SELECT asinh( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(3.081263)}},
},
{
Query: "SELECT asinh( -10::float8 ) ;",
Expected: []sql.Row{{float64(-2.998223)}},
},
{
Query: "SELECT asinh( 100::float8 ) ;",
Expected: []sql.Row{{float64(5.298342)}},
},
{
Query: "SELECT asinh( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(10.647826)}},
},
{
Query: "SELECT asinh( 100000::float8 ) ;",
Expected: []sql.Row{{float64(12.206073)}},
},
{
Query: "SELECT asinh( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-14.677793)}},
},
{
Query: "SELECT asinh( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(15.435010)}},
},
{
Query: "SELECT asinh( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-22.180710)}},
},
{
Query: "SELECT asinh( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(22.180710)}},
},
},
},
})
}
@@ -0,0 +1,931 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Atan2(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "atan2",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT atan2( 0::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( -1::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan2( 1::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( 2::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( -2::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan2( 5.25::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( 10.87::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( -10::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan2( 100::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( 100000::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( -1184280::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( 0::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(3.141593)}},
},
{
Query: "SELECT atan2( -1::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(-2.356194)}},
},
{
Query: "SELECT atan2( 1::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(2.356194)}},
},
{
Query: "SELECT atan2( 2::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(2.034444)}},
},
{
Query: "SELECT atan2( -2::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(-2.034444)}},
},
{
Query: "SELECT atan2( 5.25::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(1.759018)}},
},
{
Query: "SELECT atan2( 10.87::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(1.662534)}},
},
{
Query: "SELECT atan2( -10::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(-1.670465)}},
},
{
Query: "SELECT atan2( 100::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(1.580796)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(1.570844)}},
},
{
Query: "SELECT atan2( 100000::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(1.570806)}},
},
{
Query: "SELECT atan2( -1184280::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(-1.570797)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(1.570797)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( 0::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( -1::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(-0.785398)}},
},
{
Query: "SELECT atan2( 1::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(0.785398)}},
},
{
Query: "SELECT atan2( 2::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(1.107149)}},
},
{
Query: "SELECT atan2( -2::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(-1.107149)}},
},
{
Query: "SELECT atan2( 5.25::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(1.382575)}},
},
{
Query: "SELECT atan2( 10.87::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(1.479058)}},
},
{
Query: "SELECT atan2( -10::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(-1.471128)}},
},
{
Query: "SELECT atan2( 100::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(1.560797)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(1.570749)}},
},
{
Query: "SELECT atan2( 100000::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(1.570786)}},
},
{
Query: "SELECT atan2( -1184280::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(-1.570795)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( 0::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( -1::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(-0.463648)}},
},
{
Query: "SELECT atan2( 1::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(0.463648)}},
},
{
Query: "SELECT atan2( 2::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(0.785398)}},
},
{
Query: "SELECT atan2( -2::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(-0.785398)}},
},
{
Query: "SELECT atan2( 5.25::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(1.206817)}},
},
{
Query: "SELECT atan2( 10.87::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(1.388839)}},
},
{
Query: "SELECT atan2( -10::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(-1.373401)}},
},
{
Query: "SELECT atan2( 100::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(1.550799)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(1.570701)}},
},
{
Query: "SELECT atan2( 100000::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(1.570776)}},
},
{
Query: "SELECT atan2( -1184280::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(-1.570795)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( 0::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(3.141593)}},
},
{
Query: "SELECT atan2( -1::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(-2.677945)}},
},
{
Query: "SELECT atan2( 1::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(2.677945)}},
},
{
Query: "SELECT atan2( 2::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(2.356194)}},
},
{
Query: "SELECT atan2( -2::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(-2.356194)}},
},
{
Query: "SELECT atan2( 5.25::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(1.934775)}},
},
{
Query: "SELECT atan2( 10.87::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(1.752754)}},
},
{
Query: "SELECT atan2( -10::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(-1.768192)}},
},
{
Query: "SELECT atan2( 100::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(1.590794)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(1.570891)}},
},
{
Query: "SELECT atan2( 100000::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(1.570816)}},
},
{
Query: "SELECT atan2( -1184280::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(-1.570798)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(1.570797)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( 0::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( -1::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(-0.188222)}},
},
{
Query: "SELECT atan2( 1::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(0.188222)}},
},
{
Query: "SELECT atan2( 2::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(0.363979)}},
},
{
Query: "SELECT atan2( -2::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(-0.363979)}},
},
{
Query: "SELECT atan2( 5.25::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(0.785398)}},
},
{
Query: "SELECT atan2( 10.87::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(1.120857)}},
},
{
Query: "SELECT atan2( -10::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(-1.087349)}},
},
{
Query: "SELECT atan2( 100::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(1.518344)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(1.570547)}},
},
{
Query: "SELECT atan2( 100000::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(1.570744)}},
},
{
Query: "SELECT atan2( -1184280::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(-1.570792)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(1.570794)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( 0::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( -1::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(-0.091738)}},
},
{
Query: "SELECT atan2( 1::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(0.091738)}},
},
{
Query: "SELECT atan2( 2::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(0.181958)}},
},
{
Query: "SELECT atan2( -2::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(-0.181958)}},
},
{
Query: "SELECT atan2( 5.25::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(0.449940)}},
},
{
Query: "SELECT atan2( 10.87::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(0.785398)}},
},
{
Query: "SELECT atan2( -10::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(-0.743736)}},
},
{
Query: "SELECT atan2( 100::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(1.462521)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(1.570280)}},
},
{
Query: "SELECT atan2( 100000::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(1.570688)}},
},
{
Query: "SELECT atan2( -1184280::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(-1.570787)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(1.570792)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( 0::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(3.141593)}},
},
{
Query: "SELECT atan2( -1::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(-3.041924)}},
},
{
Query: "SELECT atan2( 1::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(3.041924)}},
},
{
Query: "SELECT atan2( 2::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(2.944197)}},
},
{
Query: "SELECT atan2( -2::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(-2.944197)}},
},
{
Query: "SELECT atan2( 5.25::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(2.658146)}},
},
{
Query: "SELECT atan2( 10.87::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(2.314532)}},
},
{
Query: "SELECT atan2( -10::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(-2.356194)}},
},
{
Query: "SELECT atan2( 100::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(1.670465)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(1.571271)}},
},
{
Query: "SELECT atan2( 100000::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(1.570896)}},
},
{
Query: "SELECT atan2( -1184280::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(-1.570805)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(1.570800)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( 0::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( -1::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(-0.010000)}},
},
{
Query: "SELECT atan2( 1::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(0.010000)}},
},
{
Query: "SELECT atan2( 2::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(0.019997)}},
},
{
Query: "SELECT atan2( -2::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(-0.019997)}},
},
{
Query: "SELECT atan2( 5.25::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(0.052452)}},
},
{
Query: "SELECT atan2( 10.87::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(0.108275)}},
},
{
Query: "SELECT atan2( -10::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(-0.099669)}},
},
{
Query: "SELECT atan2( 100::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(0.785398)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(1.566046)}},
},
{
Query: "SELECT atan2( 100000::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(1.569796)}},
},
{
Query: "SELECT atan2( -1184280::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(-1.570712)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(1.570757)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan2( 0::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( -1::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-0.000048)}},
},
{
Query: "SELECT atan2( 1::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.000048)}},
},
{
Query: "SELECT atan2( 2::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.000095)}},
},
{
Query: "SELECT atan2( -2::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-0.000095)}},
},
{
Query: "SELECT atan2( 5.25::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.000249)}},
},
{
Query: "SELECT atan2( 10.87::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.000516)}},
},
{
Query: "SELECT atan2( -10::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-0.000475)}},
},
{
Query: "SELECT atan2( 100::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.004750)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.785398)}},
},
{
Query: "SELECT atan2( 100000::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(1.363321)}},
},
{
Query: "SELECT atan2( -1184280::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-1.553023)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(1.562461)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-1.570787)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(1.570787)}},
},
{
Query: "SELECT atan2( 0::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( -1::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(-0.000010)}},
},
{
Query: "SELECT atan2( 1::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.000010)}},
},
{
Query: "SELECT atan2( 2::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.000020)}},
},
{
Query: "SELECT atan2( -2::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(-0.000020)}},
},
{
Query: "SELECT atan2( 5.25::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.000052)}},
},
{
Query: "SELECT atan2( 10.87::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.000109)}},
},
{
Query: "SELECT atan2( -10::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(-0.000100)}},
},
{
Query: "SELECT atan2( 100::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.001000)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.207476)}},
},
{
Query: "SELECT atan2( 100000::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.785398)}},
},
{
Query: "SELECT atan2( -1184280::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(-1.486557)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(1.531217)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(-1.570750)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(1.570750)}},
},
{
Query: "SELECT atan2( 0::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(3.141593)}},
},
{
Query: "SELECT atan2( -1::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-3.141592)}},
},
{
Query: "SELECT atan2( 1::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(3.141592)}},
},
{
Query: "SELECT atan2( 2::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(3.141591)}},
},
{
Query: "SELECT atan2( -2::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-3.141591)}},
},
{
Query: "SELECT atan2( 5.25::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(3.141588)}},
},
{
Query: "SELECT atan2( 10.87::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(3.141583)}},
},
{
Query: "SELECT atan2( -10::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-3.141584)}},
},
{
Query: "SELECT atan2( 100::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(3.141508)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(3.123820)}},
},
{
Query: "SELECT atan2( 100000::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(3.057353)}},
},
{
Query: "SELECT atan2( -1184280::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-2.356194)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(2.009313)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-1.571348)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(1.571348)}},
},
{
Query: "SELECT atan2( 0::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( -1::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-0.000000)}},
},
{
Query: "SELECT atan2( 1::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( 2::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.000001)}},
},
{
Query: "SELECT atan2( -2::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-0.000001)}},
},
{
Query: "SELECT atan2( 5.25::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.000002)}},
},
{
Query: "SELECT atan2( 10.87::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.000004)}},
},
{
Query: "SELECT atan2( -10::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-0.000004)}},
},
{
Query: "SELECT atan2( 100::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.000040)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.008336)}},
},
{
Query: "SELECT atan2( 100000::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.039579)}},
},
{
Query: "SELECT atan2( -1184280::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-0.438517)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.785398)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-1.569620)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(1.569620)}},
},
{
Query: "SELECT atan2( 0::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(3.141593)}},
},
{
Query: "SELECT atan2( -1::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-3.141593)}},
},
{
Query: "SELECT atan2( 1::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(3.141593)}},
},
{
Query: "SELECT atan2( 2::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(3.141593)}},
},
{
Query: "SELECT atan2( -2::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-3.141593)}},
},
{
Query: "SELECT atan2( 5.25::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(3.141593)}},
},
{
Query: "SELECT atan2( 10.87::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(3.141593)}},
},
{
Query: "SELECT atan2( -10::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-3.141593)}},
},
{
Query: "SELECT atan2( 100::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(3.141593)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(3.141583)}},
},
{
Query: "SELECT atan2( 100000::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(3.141546)}},
},
{
Query: "SELECT atan2( -1184280::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-3.141041)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(3.140417)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-2.356194)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(2.356194)}},
},
{
Query: "SELECT atan2( 0::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( -1::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-0.000000)}},
},
{
Query: "SELECT atan2( 1::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( 2::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( -2::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-0.000000)}},
},
{
Query: "SELECT atan2( 5.25::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( 10.87::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( -10::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-0.000000)}},
},
{
Query: "SELECT atan2( 100::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2( 21050.48::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000010)}},
},
{
Query: "SELECT atan2( 100000::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000047)}},
},
{
Query: "SELECT atan2( -1184280::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-0.000551)}},
},
{
Query: "SELECT atan2( 2525280.279::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.001176)}},
},
{
Query: "SELECT atan2( -2147483648::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-0.785398)}},
},
{
Query: "SELECT atan2( 2147483647.59024::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.785398)}},
},
},
},
})
}
@@ -0,0 +1,931 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Atan2d(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "atan2d",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT atan2d( 0::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT atan2d( 1::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( 2::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( -2::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( -10::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT atan2d( 100::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( 100000::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , 0::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( 0::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(180.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(-135.000000)}},
},
{
Query: "SELECT atan2d( 1::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(135.000000)}},
},
{
Query: "SELECT atan2d( 2::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(116.565051)}},
},
{
Query: "SELECT atan2d( -2::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(-116.565051)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(100.784298)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(95.256206)}},
},
{
Query: "SELECT atan2d( -10::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(-95.710593)}},
},
{
Query: "SELECT atan2d( 100::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(90.572939)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(90.002722)}},
},
{
Query: "SELECT atan2d( 100000::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(90.000573)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(-90.000048)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(90.000023)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , -1::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( 0::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(-45.000000)}},
},
{
Query: "SELECT atan2d( 1::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(45.000000)}},
},
{
Query: "SELECT atan2d( 2::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(63.434949)}},
},
{
Query: "SELECT atan2d( -2::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(-63.434949)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(79.215702)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(84.743794)}},
},
{
Query: "SELECT atan2d( -10::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(-84.289407)}},
},
{
Query: "SELECT atan2d( 100::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(89.427061)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(89.997278)}},
},
{
Query: "SELECT atan2d( 100000::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(89.999427)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(-89.999952)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(89.999977)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , 1::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( 0::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(-26.565051)}},
},
{
Query: "SELECT atan2d( 1::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(26.565051)}},
},
{
Query: "SELECT atan2d( 2::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(45.000000)}},
},
{
Query: "SELECT atan2d( -2::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(-45.000000)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(69.145542)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(79.574599)}},
},
{
Query: "SELECT atan2d( -10::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(-78.690068)}},
},
{
Query: "SELECT atan2d( 100::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(88.854237)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(89.994556)}},
},
{
Query: "SELECT atan2d( 100000::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(89.998854)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(-89.999903)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(89.999955)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , 2::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( 0::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(180.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(-153.434949)}},
},
{
Query: "SELECT atan2d( 1::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(153.434949)}},
},
{
Query: "SELECT atan2d( 2::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(135.000000)}},
},
{
Query: "SELECT atan2d( -2::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(-135.000000)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(110.854458)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(100.425401)}},
},
{
Query: "SELECT atan2d( -10::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(-101.309932)}},
},
{
Query: "SELECT atan2d( 100::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(91.145763)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(90.005444)}},
},
{
Query: "SELECT atan2d( 100000::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(90.001146)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(-90.000097)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(90.000045)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , -2::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( 0::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(-10.784298)}},
},
{
Query: "SELECT atan2d( 1::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(10.784298)}},
},
{
Query: "SELECT atan2d( 2::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(20.854458)}},
},
{
Query: "SELECT atan2d( -2::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(-20.854458)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(45.000000)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(64.220355)}},
},
{
Query: "SELECT atan2d( -10::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(-62.300527)}},
},
{
Query: "SELECT atan2d( 100::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(86.994731)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(89.985710)}},
},
{
Query: "SELECT atan2d( 100000::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(89.996992)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(-89.999746)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(89.999881)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , 5.25::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( 0::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(-5.256206)}},
},
{
Query: "SELECT atan2d( 1::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(5.256206)}},
},
{
Query: "SELECT atan2d( 2::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(10.425401)}},
},
{
Query: "SELECT atan2d( -2::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(-10.425401)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(25.779645)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(45.000000)}},
},
{
Query: "SELECT atan2d( -10::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(-42.612914)}},
},
{
Query: "SELECT atan2d( 100::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(83.796306)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(89.970414)}},
},
{
Query: "SELECT atan2d( 100000::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(89.993772)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(-89.999474)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(89.999753)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , 10.87::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( 0::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(180.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(-174.289407)}},
},
{
Query: "SELECT atan2d( 1::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(174.289407)}},
},
{
Query: "SELECT atan2d( 2::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(168.690068)}},
},
{
Query: "SELECT atan2d( -2::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(-168.690068)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(152.300527)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(132.612914)}},
},
{
Query: "SELECT atan2d( -10::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(-135.000000)}},
},
{
Query: "SELECT atan2d( 100::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(95.710593)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(90.027218)}},
},
{
Query: "SELECT atan2d( 100000::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(90.005730)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(-90.000484)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(90.000227)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , -10::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
{
Query: "SELECT atan2d( 0::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(-0.572939)}},
},
{
Query: "SELECT atan2d( 1::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(0.572939)}},
},
{
Query: "SELECT atan2d( 2::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(1.145763)}},
},
{
Query: "SELECT atan2d( -2::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(-1.145763)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(3.005269)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(6.203694)}},
},
{
Query: "SELECT atan2d( -10::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(-5.710593)}},
},
{
Query: "SELECT atan2d( 100::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(45.000000)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(89.727819)}},
},
{
Query: "SELECT atan2d( 100000::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(89.942704)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(-89.995162)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(89.997731)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(-89.999997)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , 100::float8 ) ;",
Expected: []sql.Row{{float64(89.999997)}},
},
{
Query: "SELECT atan2d( 0::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-0.002722)}},
},
{
Query: "SELECT atan2d( 1::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.002722)}},
},
{
Query: "SELECT atan2d( 2::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.005444)}},
},
{
Query: "SELECT atan2d( -2::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-0.005444)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.014290)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.029586)}},
},
{
Query: "SELECT atan2d( -10::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-0.027218)}},
},
{
Query: "SELECT atan2d( 100::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.272181)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(45.000000)}},
},
{
Query: "SELECT atan2d( 100000::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(78.112522)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-88.981679)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(89.522399)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-89.999438)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(89.999438)}},
},
{
Query: "SELECT atan2d( 0::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(-0.000573)}},
},
{
Query: "SELECT atan2d( 1::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.000573)}},
},
{
Query: "SELECT atan2d( 2::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.001146)}},
},
{
Query: "SELECT atan2d( -2::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(-0.001146)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.003008)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.006228)}},
},
{
Query: "SELECT atan2d( -10::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(-0.005730)}},
},
{
Query: "SELECT atan2d( 100::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.057296)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(11.887478)}},
},
{
Query: "SELECT atan2d( 100000::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(45.000000)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(-85.173423)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(87.732297)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(-89.997332)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , 100000::float8 ) ;",
Expected: []sql.Row{{float64(89.997332)}},
},
{
Query: "SELECT atan2d( 0::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(180.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-179.999952)}},
},
{
Query: "SELECT atan2d( 1::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(179.999952)}},
},
{
Query: "SELECT atan2d( 2::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(179.999903)}},
},
{
Query: "SELECT atan2d( -2::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-179.999903)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(179.999746)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(179.999474)}},
},
{
Query: "SELECT atan2d( -10::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-179.999516)}},
},
{
Query: "SELECT atan2d( 100::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(179.995162)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(178.981679)}},
},
{
Query: "SELECT atan2d( 100000::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(175.173423)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-135.000000)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(115.125155)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-90.031597)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , -1184280::float8 ) ;",
Expected: []sql.Row{{float64(90.031597)}},
},
{
Query: "SELECT atan2d( 0::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-0.000023)}},
},
{
Query: "SELECT atan2d( 1::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.000023)}},
},
{
Query: "SELECT atan2d( 2::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.000045)}},
},
{
Query: "SELECT atan2d( -2::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-0.000045)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.000119)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.000247)}},
},
{
Query: "SELECT atan2d( -10::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-0.000227)}},
},
{
Query: "SELECT atan2d( 100::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.002269)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.477601)}},
},
{
Query: "SELECT atan2d( 100000::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(2.267703)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-25.125155)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(45.000000)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-89.932624)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(89.932624)}},
},
{
Query: "SELECT atan2d( 0::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(180.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-180.000000)}},
},
{
Query: "SELECT atan2d( 1::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(180.000000)}},
},
{
Query: "SELECT atan2d( 2::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(180.000000)}},
},
{
Query: "SELECT atan2d( -2::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-180.000000)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(180.000000)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(180.000000)}},
},
{
Query: "SELECT atan2d( -10::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-180.000000)}},
},
{
Query: "SELECT atan2d( 100::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(179.999997)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(179.999438)}},
},
{
Query: "SELECT atan2d( 100000::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(179.997332)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-179.968403)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(179.932624)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-135.000000)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(135.000000)}},
},
{
Query: "SELECT atan2d( 0::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( -1::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-0.000000)}},
},
{
Query: "SELECT atan2d( 1::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( 2::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( -2::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-0.000000)}},
},
{
Query: "SELECT atan2d( 5.25::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( 10.87::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan2d( -10::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-0.000000)}},
},
{
Query: "SELECT atan2d( 100::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000003)}},
},
{
Query: "SELECT atan2d( 21050.48::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.000562)}},
},
{
Query: "SELECT atan2d( 100000::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.002668)}},
},
{
Query: "SELECT atan2d( -1184280::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-0.031597)}},
},
{
Query: "SELECT atan2d( 2525280.279::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.067376)}},
},
{
Query: "SELECT atan2d( -2147483648::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-45.000000)}},
},
{
Query: "SELECT atan2d( 2147483647.59024::float8 , 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(45.000000)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Atan(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "atan",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT atan( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atan( -1::float8 ) ;",
Expected: []sql.Row{{float64(-0.785398)}},
},
{
Query: "SELECT atan( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.785398)}},
},
{
Query: "SELECT atan( 2::float8 ) ;",
Expected: []sql.Row{{float64(1.107149)}},
},
{
Query: "SELECT atan( -2::float8 ) ;",
Expected: []sql.Row{{float64(-1.107149)}},
},
{
Query: "SELECT atan( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(1.382575)}},
},
{
Query: "SELECT atan( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(1.479058)}},
},
{
Query: "SELECT atan( -10::float8 ) ;",
Expected: []sql.Row{{float64(-1.471128)}},
},
{
Query: "SELECT atan( 100::float8 ) ;",
Expected: []sql.Row{{float64(1.560797)}},
},
{
Query: "SELECT atan( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(1.570749)}},
},
{
Query: "SELECT atan( 100000::float8 ) ;",
Expected: []sql.Row{{float64(1.570786)}},
},
{
Query: "SELECT atan( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-1.570795)}},
},
{
Query: "SELECT atan( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
{
Query: "SELECT atan( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-1.570796)}},
},
{
Query: "SELECT atan( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(1.570796)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Atand(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "atand",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT atand( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atand( -1::float8 ) ;",
Expected: []sql.Row{{float64(-45.000000)}},
},
{
Query: "SELECT atand( 1::float8 ) ;",
Expected: []sql.Row{{float64(45.000000)}},
},
{
Query: "SELECT atand( 2::float8 ) ;",
Expected: []sql.Row{{float64(63.434949)}},
},
{
Query: "SELECT atand( -2::float8 ) ;",
Expected: []sql.Row{{float64(-63.434949)}},
},
{
Query: "SELECT atand( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(79.215702)}},
},
{
Query: "SELECT atand( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(84.743794)}},
},
{
Query: "SELECT atand( -10::float8 ) ;",
Expected: []sql.Row{{float64(-84.289407)}},
},
{
Query: "SELECT atand( 100::float8 ) ;",
Expected: []sql.Row{{float64(89.427061)}},
},
{
Query: "SELECT atand( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(89.997278)}},
},
{
Query: "SELECT atand( 100000::float8 ) ;",
Expected: []sql.Row{{float64(89.999427)}},
},
{
Query: "SELECT atand( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-89.999952)}},
},
{
Query: "SELECT atand( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(89.999977)}},
},
{
Query: "SELECT atand( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-90.000000)}},
},
{
Query: "SELECT atand( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(90.000000)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Atanh(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "atanh",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT atanh( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT atanh( -1::float8 ) ;",
Expected: []sql.Row{{float64(-Inf)}},
},
{
Query: "SELECT atanh( 1::float8 ) ;",
Expected: []sql.Row{{float64(+Inf)}},
},
{
Query: "SELECT atanh( 2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT atanh( -2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT atanh( 5.25::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT atanh( 10.87::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT atanh( -10::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT atanh( 100::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT atanh( 21050.48::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT atanh( 100000::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT atanh( -1184280::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT atanh( 2525280.279::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT atanh( -2147483648::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT atanh( 2147483647.59024::float8 ) ;",
ExpectedErr: true,
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_BitLength(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "bit_length",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT bit_length( '' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT bit_length( ' ' ) ;",
Expected: []sql.Row{{int32(8)}},
},
{
Query: "SELECT bit_length( '0' ) ;",
Expected: []sql.Row{{int32(8)}},
},
{
Query: "SELECT bit_length( '1' ) ;",
Expected: []sql.Row{{int32(8)}},
},
{
Query: "SELECT bit_length( 'a' ) ;",
Expected: []sql.Row{{int32(8)}},
},
{
Query: "SELECT bit_length( 'abc' ) ;",
Expected: []sql.Row{{int32(24)}},
},
{
Query: "SELECT bit_length( '123' ) ;",
Expected: []sql.Row{{int32(24)}},
},
{
Query: "SELECT bit_length( 'value' ) ;",
Expected: []sql.Row{{int32(40)}},
},
{
Query: "SELECT bit_length( '12345' ) ;",
Expected: []sql.Row{{int32(40)}},
},
{
Query: "SELECT bit_length( 'something' ) ;",
Expected: []sql.Row{{int32(72)}},
},
{
Query: "SELECT bit_length( ' something' ) ;",
Expected: []sql.Row{{int32(80)}},
},
{
Query: "SELECT bit_length( 'something ' ) ;",
Expected: []sql.Row{{int32(80)}},
},
{
Query: "SELECT bit_length( '123456789' ) ;",
Expected: []sql.Row{{int32(72)}},
},
{
Query: "SELECT bit_length( 'a group of words' ) ;",
Expected: []sql.Row{{int32(128)}},
},
{
Query: "SELECT bit_length( '1234567890123456' ) ;",
Expected: []sql.Row{{int32(128)}},
},
},
},
})
}
@@ -0,0 +1,931 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Btrim(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "btrim",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT btrim( '' , '' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , '' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT btrim( '0' , '' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '1' , '' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT btrim( 'a' , '' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT btrim( 'abc' , '' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT btrim( '123' , '' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT btrim( 'value' , '' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT btrim( '12345' , '' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT btrim( 'something' , '' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT btrim( ' something' , '' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT btrim( 'something ' , '' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT btrim( '123456789' , '' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT btrim( 'a group of words' , '' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT btrim( '1234567890123456' , '' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT btrim( '' , ' ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , ' ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( '0' , ' ' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '1' , ' ' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT btrim( 'a' , ' ' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT btrim( 'abc' , ' ' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT btrim( '123' , ' ' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT btrim( 'value' , ' ' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT btrim( '12345' , ' ' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT btrim( 'something' , ' ' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT btrim( ' something' , ' ' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT btrim( 'something ' , ' ' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT btrim( '123456789' , ' ' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT btrim( 'a group of words' , ' ' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT btrim( '1234567890123456' , ' ' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT btrim( '' , '0' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , '0' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT btrim( '0' , '0' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( '1' , '0' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT btrim( 'a' , '0' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT btrim( 'abc' , '0' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT btrim( '123' , '0' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT btrim( 'value' , '0' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT btrim( '12345' , '0' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT btrim( 'something' , '0' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT btrim( ' something' , '0' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT btrim( 'something ' , '0' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT btrim( '123456789' , '0' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT btrim( 'a group of words' , '0' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT btrim( '1234567890123456' , '0' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT btrim( '' , '1' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , '1' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT btrim( '0' , '1' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '1' , '1' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'a' , '1' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT btrim( 'abc' , '1' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT btrim( '123' , '1' ) ;",
Expected: []sql.Row{{"23"}},
},
{
Query: "SELECT btrim( 'value' , '1' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT btrim( '12345' , '1' ) ;",
Expected: []sql.Row{{"2345"}},
},
{
Query: "SELECT btrim( 'something' , '1' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT btrim( ' something' , '1' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT btrim( 'something ' , '1' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT btrim( '123456789' , '1' ) ;",
Expected: []sql.Row{{"23456789"}},
},
{
Query: "SELECT btrim( 'a group of words' , '1' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT btrim( '1234567890123456' , '1' ) ;",
Expected: []sql.Row{{"234567890123456"}},
},
{
Query: "SELECT btrim( '' , 'a' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , 'a' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT btrim( '0' , 'a' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '1' , 'a' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT btrim( 'a' , 'a' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'abc' , 'a' ) ;",
Expected: []sql.Row{{"bc"}},
},
{
Query: "SELECT btrim( '123' , 'a' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT btrim( 'value' , 'a' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT btrim( '12345' , 'a' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT btrim( 'something' , 'a' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT btrim( ' something' , 'a' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT btrim( 'something ' , 'a' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT btrim( '123456789' , 'a' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT btrim( 'a group of words' , 'a' ) ;",
Expected: []sql.Row{{" group of words"}},
},
{
Query: "SELECT btrim( '1234567890123456' , 'a' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT btrim( '' , 'abc' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , 'abc' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT btrim( '0' , 'abc' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '1' , 'abc' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT btrim( 'a' , 'abc' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'abc' , 'abc' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( '123' , 'abc' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT btrim( 'value' , 'abc' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT btrim( '12345' , 'abc' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT btrim( 'something' , 'abc' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT btrim( ' something' , 'abc' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT btrim( 'something ' , 'abc' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT btrim( '123456789' , 'abc' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT btrim( 'a group of words' , 'abc' ) ;",
Expected: []sql.Row{{" group of words"}},
},
{
Query: "SELECT btrim( '1234567890123456' , 'abc' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT btrim( '' , '123' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , '123' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT btrim( '0' , '123' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '1' , '123' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'a' , '123' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT btrim( 'abc' , '123' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT btrim( '123' , '123' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'value' , '123' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT btrim( '12345' , '123' ) ;",
Expected: []sql.Row{{"45"}},
},
{
Query: "SELECT btrim( 'something' , '123' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT btrim( ' something' , '123' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT btrim( 'something ' , '123' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT btrim( '123456789' , '123' ) ;",
Expected: []sql.Row{{"456789"}},
},
{
Query: "SELECT btrim( 'a group of words' , '123' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT btrim( '1234567890123456' , '123' ) ;",
Expected: []sql.Row{{"4567890123456"}},
},
{
Query: "SELECT btrim( '' , 'value' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , 'value' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT btrim( '0' , 'value' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '1' , 'value' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT btrim( 'a' , 'value' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'abc' , 'value' ) ;",
Expected: []sql.Row{{"bc"}},
},
{
Query: "SELECT btrim( '123' , 'value' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT btrim( 'value' , 'value' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( '12345' , 'value' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT btrim( 'something' , 'value' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT btrim( ' something' , 'value' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT btrim( 'something ' , 'value' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT btrim( '123456789' , 'value' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT btrim( 'a group of words' , 'value' ) ;",
Expected: []sql.Row{{" group of words"}},
},
{
Query: "SELECT btrim( '1234567890123456' , 'value' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT btrim( '' , '12345' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , '12345' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT btrim( '0' , '12345' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '1' , '12345' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'a' , '12345' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT btrim( 'abc' , '12345' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT btrim( '123' , '12345' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'value' , '12345' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT btrim( '12345' , '12345' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'something' , '12345' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT btrim( ' something' , '12345' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT btrim( 'something ' , '12345' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT btrim( '123456789' , '12345' ) ;",
Expected: []sql.Row{{"6789"}},
},
{
Query: "SELECT btrim( 'a group of words' , '12345' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT btrim( '1234567890123456' , '12345' ) ;",
Expected: []sql.Row{{"67890123456"}},
},
{
Query: "SELECT btrim( '' , 'something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , 'something' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT btrim( '0' , 'something' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '1' , 'something' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT btrim( 'a' , 'something' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT btrim( 'abc' , 'something' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT btrim( '123' , 'something' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT btrim( 'value' , 'something' ) ;",
Expected: []sql.Row{{"valu"}},
},
{
Query: "SELECT btrim( '12345' , 'something' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT btrim( 'something' , 'something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' something' , 'something' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT btrim( 'something ' , 'something' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT btrim( '123456789' , 'something' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT btrim( 'a group of words' , 'something' ) ;",
Expected: []sql.Row{{"a group of word"}},
},
{
Query: "SELECT btrim( '1234567890123456' , 'something' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT btrim( '' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( '0' , ' something' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '1' , ' something' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT btrim( 'a' , ' something' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT btrim( 'abc' , ' something' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT btrim( '123' , ' something' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT btrim( 'value' , ' something' ) ;",
Expected: []sql.Row{{"valu"}},
},
{
Query: "SELECT btrim( '12345' , ' something' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT btrim( 'something' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' something' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'something ' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( '123456789' , ' something' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT btrim( 'a group of words' , ' something' ) ;",
Expected: []sql.Row{{"a group of word"}},
},
{
Query: "SELECT btrim( '1234567890123456' , ' something' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT btrim( '' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( '0' , 'something ' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '1' , 'something ' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT btrim( 'a' , 'something ' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT btrim( 'abc' , 'something ' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT btrim( '123' , 'something ' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT btrim( 'value' , 'something ' ) ;",
Expected: []sql.Row{{"valu"}},
},
{
Query: "SELECT btrim( '12345' , 'something ' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT btrim( 'something' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' something' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'something ' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( '123456789' , 'something ' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT btrim( 'a group of words' , 'something ' ) ;",
Expected: []sql.Row{{"a group of word"}},
},
{
Query: "SELECT btrim( '1234567890123456' , 'something ' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT btrim( '' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , '123456789' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT btrim( '0' , '123456789' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '1' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'a' , '123456789' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT btrim( 'abc' , '123456789' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT btrim( '123' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'value' , '123456789' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT btrim( '12345' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'something' , '123456789' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT btrim( ' something' , '123456789' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT btrim( 'something ' , '123456789' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT btrim( '123456789' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'a group of words' , '123456789' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT btrim( '1234567890123456' , '123456789' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '' , 'a group of words' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , 'a group of words' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( '0' , 'a group of words' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT btrim( '1' , 'a group of words' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT btrim( 'a' , 'a group of words' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'abc' , 'a group of words' ) ;",
Expected: []sql.Row{{"bc"}},
},
{
Query: "SELECT btrim( '123' , 'a group of words' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT btrim( 'value' , 'a group of words' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT btrim( '12345' , 'a group of words' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT btrim( 'something' , 'a group of words' ) ;",
Expected: []sql.Row{{"methin"}},
},
{
Query: "SELECT btrim( ' something' , 'a group of words' ) ;",
Expected: []sql.Row{{"methin"}},
},
{
Query: "SELECT btrim( 'something ' , 'a group of words' ) ;",
Expected: []sql.Row{{"methin"}},
},
{
Query: "SELECT btrim( '123456789' , 'a group of words' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT btrim( 'a group of words' , 'a group of words' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( '1234567890123456' , 'a group of words' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT btrim( '' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( ' ' , '1234567890123456' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT btrim( '0' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( '1' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'a' , '1234567890123456' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT btrim( 'abc' , '1234567890123456' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT btrim( '123' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'value' , '1234567890123456' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT btrim( '12345' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'something' , '1234567890123456' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT btrim( ' something' , '1234567890123456' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT btrim( 'something ' , '1234567890123456' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT btrim( '123456789' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT btrim( 'a group of words' , '1234567890123456' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT btrim( '1234567890123456' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Cbrt(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "cbrt",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT cbrt( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT cbrt( -1::float8 ) ;",
Expected: []sql.Row{{float64(-1.000000)}},
},
{
Query: "SELECT cbrt( 1::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT cbrt( 2::float8 ) ;",
Expected: []sql.Row{{float64(1.259921)}},
},
{
Query: "SELECT cbrt( -2::float8 ) ;",
Expected: []sql.Row{{float64(-1.259921)}},
},
{
Query: "SELECT cbrt( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(1.738013)}},
},
{
Query: "SELECT cbrt( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(2.215184)}},
},
{
Query: "SELECT cbrt( -10::float8 ) ;",
Expected: []sql.Row{{float64(-2.154435)}},
},
{
Query: "SELECT cbrt( 100::float8 ) ;",
Expected: []sql.Row{{float64(4.641589)}},
},
{
Query: "SELECT cbrt( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(27.611331)}},
},
{
Query: "SELECT cbrt( 100000::float8 ) ;",
Expected: []sql.Row{{float64(46.415888)}},
},
{
Query: "SELECT cbrt( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-105.799788)}},
},
{
Query: "SELECT cbrt( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(136.176822)}},
},
{
Query: "SELECT cbrt( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-1290.159155)}},
},
{
Query: "SELECT cbrt( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(1290.159155)}},
},
},
},
})
}
@@ -0,0 +1,151 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Ceil(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "ceil",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT ceil( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT ceil( -1::float8 ) ;",
Expected: []sql.Row{{float64(-1.000000)}},
},
{
Query: "SELECT ceil( 1::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT ceil( 2::float8 ) ;",
Expected: []sql.Row{{float64(2.000000)}},
},
{
Query: "SELECT ceil( -2::float8 ) ;",
Expected: []sql.Row{{float64(-2.000000)}},
},
{
Query: "SELECT ceil( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(6.000000)}},
},
{
Query: "SELECT ceil( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(11.000000)}},
},
{
Query: "SELECT ceil( -10::float8 ) ;",
Expected: []sql.Row{{float64(-10.000000)}},
},
{
Query: "SELECT ceil( 100::float8 ) ;",
Expected: []sql.Row{{float64(100.000000)}},
},
{
Query: "SELECT ceil( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(21051.000000)}},
},
{
Query: "SELECT ceil( 100000::float8 ) ;",
Expected: []sql.Row{{float64(100000.000000)}},
},
{
Query: "SELECT ceil( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-1184280.000000)}},
},
{
Query: "SELECT ceil( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(2525281.000000)}},
},
{
Query: "SELECT ceil( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-2147483648.000000)}},
},
{
Query: "SELECT ceil( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(2147483648.000000)}},
},
{
Query: "SELECT ceil( 0::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT ceil( -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT ceil( 1::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT ceil( 2::numeric ) ;",
Expected: []sql.Row{{Numeric("2")}},
},
{
Query: "SELECT ceil( -2::numeric ) ;",
Expected: []sql.Row{{Numeric("-2")}},
},
{
Query: "SELECT ceil( 5::numeric ) ;",
Expected: []sql.Row{{Numeric("5")}},
},
{
Query: "SELECT ceil( 10::numeric ) ;",
Expected: []sql.Row{{Numeric("10")}},
},
{
Query: "SELECT ceil( -10::numeric ) ;",
Expected: []sql.Row{{Numeric("-10")}},
},
{
Query: "SELECT ceil( 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("1000")}},
},
{
Query: "SELECT ceil( 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("2105076")}},
},
{
Query: "SELECT ceil( 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("100000001")}},
},
{
Query: "SELECT ceil( -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("-5184226581")}},
},
{
Query: "SELECT ceil( 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("8525267290")}},
},
{
Query: "SELECT ceil( -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("-79223372036854775808")}},
},
{
Query: "SELECT ceil( 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("79223372036854775807")}},
},
},
},
})
}
@@ -0,0 +1,151 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Ceiling(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "ceiling",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT ceiling( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT ceiling( -1::float8 ) ;",
Expected: []sql.Row{{float64(-1.000000)}},
},
{
Query: "SELECT ceiling( 1::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT ceiling( 2::float8 ) ;",
Expected: []sql.Row{{float64(2.000000)}},
},
{
Query: "SELECT ceiling( -2::float8 ) ;",
Expected: []sql.Row{{float64(-2.000000)}},
},
{
Query: "SELECT ceiling( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(6.000000)}},
},
{
Query: "SELECT ceiling( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(11.000000)}},
},
{
Query: "SELECT ceiling( -10::float8 ) ;",
Expected: []sql.Row{{float64(-10.000000)}},
},
{
Query: "SELECT ceiling( 100::float8 ) ;",
Expected: []sql.Row{{float64(100.000000)}},
},
{
Query: "SELECT ceiling( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(21051.000000)}},
},
{
Query: "SELECT ceiling( 100000::float8 ) ;",
Expected: []sql.Row{{float64(100000.000000)}},
},
{
Query: "SELECT ceiling( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-1184280.000000)}},
},
{
Query: "SELECT ceiling( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(2525281.000000)}},
},
{
Query: "SELECT ceiling( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-2147483648.000000)}},
},
{
Query: "SELECT ceiling( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(2147483648.000000)}},
},
{
Query: "SELECT ceiling( 0::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT ceiling( -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT ceiling( 1::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT ceiling( 2::numeric ) ;",
Expected: []sql.Row{{Numeric("2")}},
},
{
Query: "SELECT ceiling( -2::numeric ) ;",
Expected: []sql.Row{{Numeric("-2")}},
},
{
Query: "SELECT ceiling( 5::numeric ) ;",
Expected: []sql.Row{{Numeric("5")}},
},
{
Query: "SELECT ceiling( 10::numeric ) ;",
Expected: []sql.Row{{Numeric("10")}},
},
{
Query: "SELECT ceiling( -10::numeric ) ;",
Expected: []sql.Row{{Numeric("-10")}},
},
{
Query: "SELECT ceiling( 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("1000")}},
},
{
Query: "SELECT ceiling( 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("2105076")}},
},
{
Query: "SELECT ceiling( 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("100000001")}},
},
{
Query: "SELECT ceiling( -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("-5184226581")}},
},
{
Query: "SELECT ceiling( 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("8525267290")}},
},
{
Query: "SELECT ceiling( -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("-79223372036854775808")}},
},
{
Query: "SELECT ceiling( 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("79223372036854775807")}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_CharLength(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "char_length",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT char_length( '' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT char_length( ' ' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT char_length( '0' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT char_length( '1' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT char_length( 'a' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT char_length( 'abc' ) ;",
Expected: []sql.Row{{int32(3)}},
},
{
Query: "SELECT char_length( '123' ) ;",
Expected: []sql.Row{{int32(3)}},
},
{
Query: "SELECT char_length( 'value' ) ;",
Expected: []sql.Row{{int32(5)}},
},
{
Query: "SELECT char_length( '12345' ) ;",
Expected: []sql.Row{{int32(5)}},
},
{
Query: "SELECT char_length( 'something' ) ;",
Expected: []sql.Row{{int32(9)}},
},
{
Query: "SELECT char_length( ' something' ) ;",
Expected: []sql.Row{{int32(10)}},
},
{
Query: "SELECT char_length( 'something ' ) ;",
Expected: []sql.Row{{int32(10)}},
},
{
Query: "SELECT char_length( '123456789' ) ;",
Expected: []sql.Row{{int32(9)}},
},
{
Query: "SELECT char_length( 'a group of words' ) ;",
Expected: []sql.Row{{int32(16)}},
},
{
Query: "SELECT char_length( '1234567890123456' ) ;",
Expected: []sql.Row{{int32(16)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_CharacterLength(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "character_length",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT character_length( '' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT character_length( ' ' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT character_length( '0' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT character_length( '1' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT character_length( 'a' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT character_length( 'abc' ) ;",
Expected: []sql.Row{{int32(3)}},
},
{
Query: "SELECT character_length( '123' ) ;",
Expected: []sql.Row{{int32(3)}},
},
{
Query: "SELECT character_length( 'value' ) ;",
Expected: []sql.Row{{int32(5)}},
},
{
Query: "SELECT character_length( '12345' ) ;",
Expected: []sql.Row{{int32(5)}},
},
{
Query: "SELECT character_length( 'something' ) ;",
Expected: []sql.Row{{int32(9)}},
},
{
Query: "SELECT character_length( ' something' ) ;",
Expected: []sql.Row{{int32(10)}},
},
{
Query: "SELECT character_length( 'something ' ) ;",
Expected: []sql.Row{{int32(10)}},
},
{
Query: "SELECT character_length( '123456789' ) ;",
Expected: []sql.Row{{int32(9)}},
},
{
Query: "SELECT character_length( 'a group of words' ) ;",
Expected: []sql.Row{{int32(16)}},
},
{
Query: "SELECT character_length( '1234567890123456' ) ;",
Expected: []sql.Row{{int32(16)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Chr(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "chr",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT chr( 0::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT chr( -1::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT chr( 1::int4 ) ;",
Expected: []sql.Row{{"\x01"}},
},
{
Query: "SELECT chr( 2::int4 ) ;",
Expected: []sql.Row{{"\x02"}},
},
{
Query: "SELECT chr( -2::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT chr( 5::int4 ) ;",
Expected: []sql.Row{{"\x05"}},
},
{
Query: "SELECT chr( 10::int4 ) ;",
Expected: []sql.Row{{"\n"}},
},
{
Query: "SELECT chr( -10::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT chr( 100::int4 ) ;",
Expected: []sql.Row{{"d"}},
},
{
Query: "SELECT chr( 21050::int4 ) ;",
Expected: []sql.Row{{"刺"}},
},
{
Query: "SELECT chr( 100000::int4 ) ;",
Expected: []sql.Row{{"𘚠"}},
},
{
Query: "SELECT chr( -1184280::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT chr( 2525280::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT chr( -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT chr( 2147483647::int4 ) ;",
ExpectedErr: true,
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Cos(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "cos",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT cos( 0::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT cos( -1::float8 ) ;",
Expected: []sql.Row{{float64(0.540302)}},
},
{
Query: "SELECT cos( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.540302)}},
},
{
Query: "SELECT cos( 2::float8 ) ;",
Expected: []sql.Row{{float64(-0.416147)}},
},
{
Query: "SELECT cos( -2::float8 ) ;",
Expected: []sql.Row{{float64(-0.416147)}},
},
{
Query: "SELECT cos( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(0.512085)}},
},
{
Query: "SELECT cos( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(-0.125245)}},
},
{
Query: "SELECT cos( -10::float8 ) ;",
Expected: []sql.Row{{float64(-0.839072)}},
},
{
Query: "SELECT cos( 100::float8 ) ;",
Expected: []sql.Row{{float64(0.862319)}},
},
{
Query: "SELECT cos( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-0.236172)}},
},
{
Query: "SELECT cos( 100000::float8 ) ;",
Expected: []sql.Row{{float64(-0.999361)}},
},
{
Query: "SELECT cos( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(0.994948)}},
},
{
Query: "SELECT cos( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.531019)}},
},
{
Query: "SELECT cos( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(0.237816)}},
},
{
Query: "SELECT cos( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-0.168831)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Cosd(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "cosd",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT cosd( 0::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT cosd( -1::float8 ) ;",
Expected: []sql.Row{{float64(0.999848)}},
},
{
Query: "SELECT cosd( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.999848)}},
},
{
Query: "SELECT cosd( 2::float8 ) ;",
Expected: []sql.Row{{float64(0.999391)}},
},
{
Query: "SELECT cosd( -2::float8 ) ;",
Expected: []sql.Row{{float64(0.999391)}},
},
{
Query: "SELECT cosd( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(0.995805)}},
},
{
Query: "SELECT cosd( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(0.982058)}},
},
{
Query: "SELECT cosd( -10::float8 ) ;",
Expected: []sql.Row{{float64(0.984808)}},
},
{
Query: "SELECT cosd( 100::float8 ) ;",
Expected: []sql.Row{{float64(-0.173648)}},
},
{
Query: "SELECT cosd( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-0.986228)}},
},
{
Query: "SELECT cosd( 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.173648)}},
},
{
Query: "SELECT cosd( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-0.500000)}},
},
{
Query: "SELECT cosd( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-0.495777)}},
},
{
Query: "SELECT cosd( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-0.615661)}},
},
{
Query: "SELECT cosd( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-0.610010)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Cosh(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "cosh",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT cosh( 0::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT cosh( -1::float8 ) ;",
Expected: []sql.Row{{float64(1.543081)}},
},
{
Query: "SELECT cosh( 1::float8 ) ;",
Expected: []sql.Row{{float64(1.543081)}},
},
{
Query: "SELECT cosh( 2::float8 ) ;",
Expected: []sql.Row{{float64(3.762196)}},
},
{
Query: "SELECT cosh( -2::float8 ) ;",
Expected: []sql.Row{{float64(3.762196)}},
},
{
Query: "SELECT cosh( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(95.285758)}},
},
{
Query: "SELECT cosh( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(26287.605145)}},
},
{
Query: "SELECT cosh( -10::float8 ) ;",
Expected: []sql.Row{{float64(11013.232920)}},
},
{
Query: "SELECT cosh( 100::float8 ) ;",
Expected: []sql.Row{{float64(13440585709080678047126700217981451777343488.000000)}},
},
{
Query: "SELECT cosh( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(+Inf)}},
},
{
Query: "SELECT cosh( 100000::float8 ) ;",
Expected: []sql.Row{{float64(+Inf)}},
},
{
Query: "SELECT cosh( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(+Inf)}},
},
{
Query: "SELECT cosh( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(+Inf)}},
},
{
Query: "SELECT cosh( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(+Inf)}},
},
{
Query: "SELECT cosh( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(+Inf)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Cot(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "cot",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT cot( 0::float8 ) ;",
Expected: []sql.Row{{float64(+Inf)}},
},
{
Query: "SELECT cot( -1::float8 ) ;",
Expected: []sql.Row{{float64(-0.642093)}},
},
{
Query: "SELECT cot( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.642093)}},
},
{
Query: "SELECT cot( 2::float8 ) ;",
Expected: []sql.Row{{float64(-0.457658)}},
},
{
Query: "SELECT cot( -2::float8 ) ;",
Expected: []sql.Row{{float64(0.457658)}},
},
{
Query: "SELECT cot( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(-0.596187)}},
},
{
Query: "SELECT cot( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(0.126239)}},
},
{
Query: "SELECT cot( -10::float8 ) ;",
Expected: []sql.Row{{float64(-1.542351)}},
},
{
Query: "SELECT cot( 100::float8 ) ;",
Expected: []sql.Row{{float64(-1.702957)}},
},
{
Query: "SELECT cot( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-0.243048)}},
},
{
Query: "SELECT cot( 100000::float8 ) ;",
Expected: []sql.Row{{float64(-27.955088)}},
},
{
Query: "SELECT cot( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-9.910614)}},
},
{
Query: "SELECT cot( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-0.626674)}},
},
{
Query: "SELECT cot( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(0.244841)}},
},
{
Query: "SELECT cot( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.171289)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Cotd(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "cotd",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT cotd( 0::float8 ) ;",
Expected: []sql.Row{{float64(+Inf)}},
},
{
Query: "SELECT cotd( -1::float8 ) ;",
Expected: []sql.Row{{float64(-57.289962)}},
},
{
Query: "SELECT cotd( 1::float8 ) ;",
Expected: []sql.Row{{float64(57.289962)}},
},
{
Query: "SELECT cotd( 2::float8 ) ;",
Expected: []sql.Row{{float64(28.636253)}},
},
{
Query: "SELECT cotd( -2::float8 ) ;",
Expected: []sql.Row{{float64(-28.636253)}},
},
{
Query: "SELECT cotd( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(10.882921)}},
},
{
Query: "SELECT cotd( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(5.207610)}},
},
{
Query: "SELECT cotd( -10::float8 ) ;",
Expected: []sql.Row{{float64(-5.671282)}},
},
{
Query: "SELECT cotd( 100::float8 ) ;",
Expected: []sql.Row{{float64(-0.176327)}},
},
{
Query: "SELECT cotd( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-5.962977)}},
},
{
Query: "SELECT cotd( 100000::float8 ) ;",
Expected: []sql.Row{{float64(-0.176327)}},
},
{
Query: "SELECT cotd( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-0.577350)}},
},
{
Query: "SELECT cotd( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(0.570876)}},
},
{
Query: "SELECT cotd( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(0.781286)}},
},
{
Query: "SELECT cotd( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-0.769832)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Degrees(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "degrees",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT degrees( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT degrees( -1::float8 ) ;",
Expected: []sql.Row{{float64(-57.295780)}},
},
{
Query: "SELECT degrees( 1::float8 ) ;",
Expected: []sql.Row{{float64(57.295780)}},
},
{
Query: "SELECT degrees( 2::float8 ) ;",
Expected: []sql.Row{{float64(114.591559)}},
},
{
Query: "SELECT degrees( -2::float8 ) ;",
Expected: []sql.Row{{float64(-114.591559)}},
},
{
Query: "SELECT degrees( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(300.802842)}},
},
{
Query: "SELECT degrees( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(622.805123)}},
},
{
Query: "SELECT degrees( -10::float8 ) ;",
Expected: []sql.Row{{float64(-572.957795)}},
},
{
Query: "SELECT degrees( 100::float8 ) ;",
Expected: []sql.Row{{float64(5729.577951)}},
},
{
Query: "SELECT degrees( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(1206103.660725)}},
},
{
Query: "SELECT degrees( 100000::float8 ) ;",
Expected: []sql.Row{{float64(5729577.951308)}},
},
{
Query: "SELECT degrees( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-67854245.761753)}},
},
{
Query: "SELECT degrees( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(144687902.074319)}},
},
{
Query: "SELECT degrees( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-123041749603.757690)}},
},
{
Query: "SELECT degrees( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(123041749580.280167)}},
},
},
},
})
}
@@ -0,0 +1,932 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Div(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "div",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT div( 0::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( -1::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( 1::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( 2::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( -2::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( 5::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( 10::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( -10::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( 1000::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( 2105076::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( -5184226581::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( 8525267290::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( -79223372036854775808::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( 79223372036854775807::numeric , 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT div( 0::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT div( 1::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT div( 2::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-2")}},
},
{
Query: "SELECT div( -2::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("2")}},
},
{
Query: "SELECT div( 5::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-5")}},
},
{
Query: "SELECT div( 10::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-10")}},
},
{
Query: "SELECT div( -10::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("10")}},
},
{
Query: "SELECT div( 1000::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-1000")}},
},
{
Query: "SELECT div( 2105076::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-2105076")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-100000000")}},
},
{
Query: "SELECT div( -5184226581::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("5184226581")}},
},
{
Query: "SELECT div( 8525267290::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-8525267290")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("79223372036854775808")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-79223372036854775807")}},
},
{
Query: "SELECT div( 0::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT div( 1::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT div( 2::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("2")}},
},
{
Query: "SELECT div( -2::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("-2")}},
},
{
Query: "SELECT div( 5::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("5")}},
},
{
Query: "SELECT div( 10::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("10")}},
},
{
Query: "SELECT div( -10::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("-10")}},
},
{
Query: "SELECT div( 1000::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("1000")}},
},
{
Query: "SELECT div( 2105076::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("2105076")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("100000000")}},
},
{
Query: "SELECT div( -5184226581::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("-5184226581")}},
},
{
Query: "SELECT div( 8525267290::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("8525267290")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("-79223372036854775808")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , 1::numeric ) ;",
Expected: []sql.Row{{Numeric("79223372036854775807")}},
},
{
Query: "SELECT div( 0::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT div( -2::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT div( 5::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("2")}},
},
{
Query: "SELECT div( 10::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("5")}},
},
{
Query: "SELECT div( -10::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("-5")}},
},
{
Query: "SELECT div( 1000::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("500")}},
},
{
Query: "SELECT div( 2105076::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("1052538")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("50000000")}},
},
{
Query: "SELECT div( -5184226581::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("-2592113290")}},
},
{
Query: "SELECT div( 8525267290::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("4262633645")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("-39611686018427387904")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , 2::numeric ) ;",
Expected: []sql.Row{{Numeric("39611686018427387903")}},
},
{
Query: "SELECT div( 0::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT div( -2::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT div( 5::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("-2")}},
},
{
Query: "SELECT div( 10::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("-5")}},
},
{
Query: "SELECT div( -10::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("5")}},
},
{
Query: "SELECT div( 1000::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("-500")}},
},
{
Query: "SELECT div( 2105076::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("-1052538")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("-50000000")}},
},
{
Query: "SELECT div( -5184226581::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("2592113290")}},
},
{
Query: "SELECT div( 8525267290::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("-4262633645")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("39611686018427387904")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , -2::numeric ) ;",
Expected: []sql.Row{{Numeric("-39611686018427387903")}},
},
{
Query: "SELECT div( 0::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -2::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 5::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT div( 10::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("2")}},
},
{
Query: "SELECT div( -10::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("-2")}},
},
{
Query: "SELECT div( 1000::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("200")}},
},
{
Query: "SELECT div( 2105076::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("421015")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("20000000")}},
},
{
Query: "SELECT div( -5184226581::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("-1036845316")}},
},
{
Query: "SELECT div( 8525267290::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("1705053458")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("-15844674407370955161")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , 5::numeric ) ;",
Expected: []sql.Row{{Numeric("15844674407370955161")}},
},
{
Query: "SELECT div( 0::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -2::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 5::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 10::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT div( -10::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT div( 1000::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("100")}},
},
{
Query: "SELECT div( 2105076::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("210507")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("10000000")}},
},
{
Query: "SELECT div( -5184226581::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("-518422658")}},
},
{
Query: "SELECT div( 8525267290::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("852526729")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("-7922337203685477580")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , 10::numeric ) ;",
Expected: []sql.Row{{Numeric("7922337203685477580")}},
},
{
Query: "SELECT div( 0::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -2::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 5::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 10::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT div( -10::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT div( 1000::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("-100")}},
},
{
Query: "SELECT div( 2105076::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("-210507")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("-10000000")}},
},
{
Query: "SELECT div( -5184226581::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("518422658")}},
},
{
Query: "SELECT div( 8525267290::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("-852526729")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("7922337203685477580")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , -10::numeric ) ;",
Expected: []sql.Row{{Numeric("-7922337203685477580")}},
},
{
Query: "SELECT div( 0::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -2::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 5::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 10::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -10::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1000::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT div( 2105076::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("2105")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("100000")}},
},
{
Query: "SELECT div( -5184226581::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("-5184226")}},
},
{
Query: "SELECT div( 8525267290::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("8525267")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("-79223372036854775")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("79223372036854775")}},
},
{
Query: "SELECT div( 0::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -2::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 5::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 10::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -10::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1000::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2105076::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("47")}},
},
{
Query: "SELECT div( -5184226581::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("-2462")}},
},
{
Query: "SELECT div( 8525267290::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("4049")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("-37634447419881")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("37634447419881")}},
},
{
Query: "SELECT div( 0::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -2::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 5::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 10::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -10::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1000::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2105076::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT div( -5184226581::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("-51")}},
},
{
Query: "SELECT div( 8525267290::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("85")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("-792233718510")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("792233718510")}},
},
{
Query: "SELECT div( 0::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -2::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 5::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 10::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -10::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1000::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2105076::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -5184226581::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT div( 8525267290::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("15281618347")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("-15281618347")}},
},
{
Query: "SELECT div( 0::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -2::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 5::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 10::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -10::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1000::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2105076::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -5184226581::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 8525267290::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("-9292772806")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("9292772806")}},
},
{
Query: "SELECT div( 0::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -2::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 5::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 10::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -10::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1000::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2105076::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -5184226581::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 8525267290::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , -79223372036854775808::numeric ) ;",
Skip: true,
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 0::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -1::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -2::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 5::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 10::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -10::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 1000::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 2105076::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 100000000.2345862323456346511423652312416532::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -5184226581::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( 8525267290::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT div( -79223372036854775808::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT div( 79223372036854775807::numeric , 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
},
},
})
}
@@ -0,0 +1,151 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Floor(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "floor",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT floor( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT floor( -1::float8 ) ;",
Expected: []sql.Row{{float64(-1.000000)}},
},
{
Query: "SELECT floor( 1::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT floor( 2::float8 ) ;",
Expected: []sql.Row{{float64(2.000000)}},
},
{
Query: "SELECT floor( -2::float8 ) ;",
Expected: []sql.Row{{float64(-2.000000)}},
},
{
Query: "SELECT floor( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(5.000000)}},
},
{
Query: "SELECT floor( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(10.000000)}},
},
{
Query: "SELECT floor( -10::float8 ) ;",
Expected: []sql.Row{{float64(-10.000000)}},
},
{
Query: "SELECT floor( 100::float8 ) ;",
Expected: []sql.Row{{float64(100.000000)}},
},
{
Query: "SELECT floor( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(21050.000000)}},
},
{
Query: "SELECT floor( 100000::float8 ) ;",
Expected: []sql.Row{{float64(100000.000000)}},
},
{
Query: "SELECT floor( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-1184280.000000)}},
},
{
Query: "SELECT floor( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(2525280.000000)}},
},
{
Query: "SELECT floor( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-2147483648.000000)}},
},
{
Query: "SELECT floor( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(2147483647.000000)}},
},
{
Query: "SELECT floor( 0::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT floor( -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT floor( 1::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT floor( 2::numeric ) ;",
Expected: []sql.Row{{Numeric("2")}},
},
{
Query: "SELECT floor( -2::numeric ) ;",
Expected: []sql.Row{{Numeric("-2")}},
},
{
Query: "SELECT floor( 5::numeric ) ;",
Expected: []sql.Row{{Numeric("5")}},
},
{
Query: "SELECT floor( 10::numeric ) ;",
Expected: []sql.Row{{Numeric("10")}},
},
{
Query: "SELECT floor( -10::numeric ) ;",
Expected: []sql.Row{{Numeric("-10")}},
},
{
Query: "SELECT floor( 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("1000")}},
},
{
Query: "SELECT floor( 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("2105076")}},
},
{
Query: "SELECT floor( 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("100000000")}},
},
{
Query: "SELECT floor( -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("-5184226581")}},
},
{
Query: "SELECT floor( 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("8525267290")}},
},
{
Query: "SELECT floor( -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("-79223372036854775808")}},
},
{
Query: "SELECT floor( 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("79223372036854775807")}},
},
},
},
})
}
@@ -0,0 +1,322 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"context"
"errors"
"fmt"
"math"
"os"
"reflect"
"strconv"
"testing"
"time"
"github.com/cockroachdb/apd/v3"
"github.com/dolthub/dolt/go/libraries/utils/svcs"
"github.com/dolthub/go-mysql-server/sql"
"github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgtype"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
dserver "github.com/dolthub/doltgresql/server"
pgtypes "github.com/dolthub/doltgresql/server/types"
"github.com/dolthub/doltgresql/servercfg"
"github.com/dolthub/doltgresql/servercfg/cfgdetails"
"github.com/dolthub/doltgresql/utils"
)
var (
// Inf represent positive infinity as a float64
Inf = math.Inf(0)
// EquivalenceThresholdFloat64 represents the allowable delta for values to be considered equivalent.
// For now, we do not expect all non-integer values to be exactly equivalent due to small computational differences
// between Go and C/C++, so this threshold allows us to check that non-integer values are close enough. Over time,
// we may reduce or remove this value as we become more accurate.
EquivalenceThresholdFloat64 = 0.001
)
// ScriptTest defines a consistent structure for testing queries.
type ScriptTest struct {
// Name of the script.
Name string
// The database to create and use. If not provided, then it defaults to "postgres".
Database string
// The SQL statements to execute as setup, in order. Results are not checked, but statements must not error.
SetUpScript []string
// The set of assertions to make after setup, in order
Assertions []ScriptTestAssertion
// When using RunScripts, setting this on one (or more) tests causes RunScripts to ignore all tests that have this
// set to false (which is the default value). This allows a developer to easily "focus" on a specific test without
// having to comment out other tests, pull it into a different function, etc. In addition, CI ensures that this is
// false before passing, meaning this prevents the commented-out situation where the developer forgets to uncomment
// their code.
Focus bool
// Skip is used to completely skip a test including setup
Skip bool
}
// ScriptTestAssertion are the assertions upon which the script executes its main "testing" logic.
type ScriptTestAssertion struct {
Query string
Expected []sql.Row
ExpectedErr bool
// Skip is used to completely skip a test, not execute its query at all, and record it as a skipped test
// in the test suite results.
Skip bool
}
// RunScript runs the given script.
func RunScript(t *testing.T, script ScriptTest) {
scriptDatabase := script.Database
if len(scriptDatabase) == 0 {
scriptDatabase = "postgres"
}
ctx, conn, controller := CreateServer(t, scriptDatabase)
defer func() {
conn.Close(ctx)
controller.Stop()
err := controller.WaitForStop()
require.NoError(t, err)
}()
t.Run(script.Name, func(t *testing.T) {
runScript(t, script, conn, ctx)
})
}
// runScript runs the script given on the postgres connection provided
func runScript(t *testing.T, script ScriptTest, conn *pgx.Conn, ctx context.Context) {
if script.Skip {
t.Skip("Skip has been set in the script")
}
// Run the setup
for _, query := range script.SetUpScript {
_, err := conn.Exec(ctx, query)
require.NoError(t, err)
}
// Run the assertions
for _, assertion := range script.Assertions {
t.Run(assertion.Query, func(t *testing.T) {
if assertion.Skip {
t.Skip("Skip has been set in the assertion")
}
// If we're skipping the results check, then we call Execute, as it uses a simplified message model.
if assertion.ExpectedErr {
_, err := conn.Exec(ctx, assertion.Query)
if assertion.ExpectedErr {
require.Error(t, err)
} else {
require.NoError(t, err)
}
} else {
rows, err := conn.Query(ctx, assertion.Query)
require.NoError(t, err)
readRows, _, err := ReadRows(rows)
require.NoError(t, err)
if !CompareResults(t, assertion.Expected, readRows) {
// We know it will fail, but this will print a prettier message
assert.Equal(t, assertion.Expected, readRows)
}
}
})
}
}
// RunScripts runs the given collection of scripts.
func RunScripts(t *testing.T, scripts []ScriptTest) {
// First, we'll run through the scripts to check for the Focus variable. If it's true, then append it to the new slice.
focusScripts := make([]ScriptTest, 0, len(scripts))
for _, script := range scripts {
if script.Focus {
// If this is running in GitHub Actions, then we'll panic, because someone forgot to disable it before committing
if _, ok := os.LookupEnv("GITHUB_ACTION"); ok {
panic(fmt.Sprintf("The script `%s` has Focus set to `true`. GitHub Actions requires that "+
"all tests are run, which Focus circumvents, leading to this error. Please disable Focus on "+
"all tests.", script.Name))
}
focusScripts = append(focusScripts, script)
}
}
// If we have scripts with Focus set, then we replace the normal script slice with the new slice.
if len(focusScripts) > 0 {
scripts = focusScripts
}
for _, script := range scripts {
RunScript(t, script)
}
}
func ptr[T any](val T) *T {
return &val
}
// CreateServer creates a server with the given database, returning a connection to the server. The server will close
// when the connection is closed (or loses its connection to the server). The accompanying WaitGroup may be used to wait
// until the server has closed.
func CreateServer(t *testing.T, database string) (context.Context, *pgx.Conn, *svcs.Controller) {
require.NotEmpty(t, database)
port, err := sql.GetEmptyPort()
require.NoError(t, err)
controller, err := dserver.RunInMemory(&servercfg.DoltgresConfig{
DoltgresConfig: cfgdetails.DoltgresConfig{
ListenerConfig: &cfgdetails.DoltgresListenerConfig{
PortNumber: &port,
HostStr: ptr("127.0.0.1"),
},
},
}, dserver.NewListener)
require.NoError(t, err)
ctx := context.Background()
err = func() error {
// The connection attempt may be made before the server has grabbed the port, so we'll retry the first
// connection a few times.
var conn *pgx.Conn
var err error
for i := 0; i < 3; i++ {
conn, err = pgx.Connect(ctx, fmt.Sprintf("postgres://postgres:password@127.0.0.1:%d/", port))
if err == nil {
break
} else {
time.Sleep(time.Second)
}
}
if err != nil {
return err
}
defer conn.Close(ctx)
if database != "postgres" {
_, err = conn.Exec(ctx, fmt.Sprintf("CREATE DATABASE %s;", database))
return err
}
return nil
}()
require.NoError(t, err)
conn, err := pgx.Connect(ctx, fmt.Sprintf("postgres://postgres:password@127.0.0.1:%d/%s", port, database))
require.NoError(t, err)
return ctx, conn, controller
}
// ReadRows reads all of the given rows into a slice, then closes the rows.
func ReadRows(rows pgx.Rows) (readRows []sql.Row, oids []uint32, err error) {
for _, desc := range rows.FieldDescriptions() {
oids = append(oids, desc.DataTypeOID)
}
defer func() {
err = errors.Join(err, rows.Err())
}()
for rows.Next() {
row, err := rows.Values()
if err != nil {
return nil, nil, err
}
readRows = append(readRows, row)
}
return readRows, oids, nil
}
// Numeric creates a numeric value from a string.
func Numeric(str string) pgtype.Numeric {
numeric := pgtype.Numeric{}
if err := numeric.Scan(str); err != nil {
panic(err)
}
return numeric
}
// NumericToDecimal converts a pgtype.Numeric value to a apd.Decimal value.
func NumericToDecimal(val pgtype.Numeric) *apd.Decimal {
if val.NaN {
return pgtypes.NumericNaN
} else if val.InfinityModifier == pgtype.Infinity {
return pgtypes.NumericInf
} else if val.InfinityModifier == pgtype.NegativeInfinity {
return pgtypes.NumericNegInf
}
return apd.New(val.Int.Int64(), val.Exp)
}
// CompareResults compares two sets of results, taking the equivalence thresholds into account when making the
// comparisons.
func CompareResults(t *testing.T, a []sql.Row, b []sql.Row) bool {
if len(a) != len(b) {
return false
}
for i := range a {
if !CompareRows(t, a[i], b[i]) {
return false
}
}
return true
}
// CompareRows compares two rows, taking the equivalence thresholds into account when making the comparisons.
func CompareRows(t *testing.T, a sql.Row, b sql.Row) bool {
if len(a) != len(b) {
return false
}
for i := range a {
aVal := a[i]
bVal := b[i]
if aVal != bVal {
if reflect.TypeOf(aVal) != reflect.TypeOf(bVal) {
return false
}
switch aVal.(type) {
case float32:
if utils.Abs(aVal.(float32)-bVal.(float32)) > float32(EquivalenceThresholdFloat64) {
return false
}
case float64:
if utils.Abs(aVal.(float64)-bVal.(float64)) > EquivalenceThresholdFloat64 {
return false
}
case pgtype.Numeric:
aDec := NumericToDecimal(aVal.(pgtype.Numeric))
bDec := NumericToDecimal(bVal.(pgtype.Numeric))
p := aDec.NumDigits()
if p2 := bDec.NumDigits(); p < p2 {
p = p2
}
res := new(apd.Decimal)
_, err := sql.DecimalCtx.WithPrecision(uint32(p)).Sub(res, aDec, bDec)
if err != nil {
return false
}
// EquivalenceThresholdNumeric represents the allowable delta for values to be considered equivalent.
// This is computed using the float64 variant so that they're equivalent.
EquivalenceThresholdNumeric, _, _ := apd.NewFromString(strconv.FormatFloat(EquivalenceThresholdFloat64, 'f', -1, 64))
if res.Abs(res).Cmp(EquivalenceThresholdNumeric) == 1 {
return false
}
default:
return false
}
t.Log("values are not equal but fall within equivalence threshold")
}
}
return true
}
@@ -0,0 +1,931 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Gcd(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "gcd",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT gcd( 0::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT gcd( -1::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -2::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 5::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT gcd( 10::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -10::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( 1000::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT gcd( 2105076::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(2105076)}},
},
{
Query: "SELECT gcd( 100000000::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(5184226581)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , 0::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(9223372036854775807)}},
},
{
Query: "SELECT gcd( 0::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -1::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -2::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 5::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 10::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -10::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1000::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2105076::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 100000000::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , -1::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 0::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -1::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -2::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 5::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 10::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -10::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1000::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2105076::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 100000000::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , 1::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 0::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -1::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -2::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 5::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 10::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -10::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 1000::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 2105076::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 100000000::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , 2::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 0::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -1::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -2::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 5::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 10::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -10::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 1000::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 2105076::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 100000000::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , -2::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 0::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT gcd( -1::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -2::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 5::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT gcd( 10::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT gcd( -10::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT gcd( 1000::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT gcd( 2105076::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 100000000::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , 5::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 0::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -1::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -2::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 5::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT gcd( 10::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -10::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( 1000::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( 2105076::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 100000000::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , 10::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 0::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -1::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -2::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 5::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT gcd( 10::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -10::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( 1000::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( 2105076::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 100000000::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , -10::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 0::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT gcd( -1::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -2::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 5::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT gcd( 10::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -10::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( 1000::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT gcd( 2105076::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(4)}},
},
{
Query: "SELECT gcd( 100000000::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , 1000::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 0::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(2105076)}},
},
{
Query: "SELECT gcd( -1::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -2::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 5::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 10::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -10::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 1000::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(4)}},
},
{
Query: "SELECT gcd( 2105076::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(2105076)}},
},
{
Query: "SELECT gcd( 100000000::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(4)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(3)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , 2105076::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 0::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT gcd( -1::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -2::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 5::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT gcd( 10::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -10::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( 1000::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT gcd( 2105076::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(4)}},
},
{
Query: "SELECT gcd( 100000000::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , 100000000::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 0::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(5184226581)}},
},
{
Query: "SELECT gcd( -1::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -2::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 5::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 10::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -10::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1000::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2105076::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(3)}},
},
{
Query: "SELECT gcd( 100000000::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(5184226581)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , -5184226581::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 0::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT gcd( -1::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( -2::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 5::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT gcd( 10::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -10::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( 1000::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( 2105076::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT gcd( 100000000::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , 8525267290::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 0::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( -1::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 1::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 2::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( -2::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 5::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 10::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( -10::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 1000::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 2105076::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 100000000::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( -5184226581::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 8525267290::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 0::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(9223372036854775807)}},
},
{
Query: "SELECT gcd( -1::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -2::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 5::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 10::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -10::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 1000::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 2105076::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 100000000::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -5184226581::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( 8525267290::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT gcd( -9223372036854775808::int8 , 9223372036854775807::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT gcd( 9223372036854775807::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(9223372036854775807)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Initcap(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "initcap",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT initcap( '' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT initcap( ' ' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT initcap( '0' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT initcap( '1' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT initcap( 'a' ) ;",
Expected: []sql.Row{{"A"}},
},
{
Query: "SELECT initcap( 'abc' ) ;",
Expected: []sql.Row{{"Abc"}},
},
{
Query: "SELECT initcap( '123' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT initcap( 'value' ) ;",
Expected: []sql.Row{{"Value"}},
},
{
Query: "SELECT initcap( '12345' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT initcap( 'something' ) ;",
Expected: []sql.Row{{"Something"}},
},
{
Query: "SELECT initcap( ' something' ) ;",
Expected: []sql.Row{{" Something"}},
},
{
Query: "SELECT initcap( 'something ' ) ;",
Expected: []sql.Row{{"Something "}},
},
{
Query: "SELECT initcap( '123456789' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT initcap( 'a group of words' ) ;",
Expected: []sql.Row{{"A Group Of Words"}},
},
{
Query: "SELECT initcap( '1234567890123456' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
},
},
})
}
@@ -0,0 +1,931 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Lcm(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "lcm",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT lcm( 0::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( 1::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( 2::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -2::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( 5::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( 10::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -10::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( 1000::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( 2105076::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( 100000000::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -5184226581::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( 8525267290::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , 0::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , 0::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( 0::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT lcm( 1::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT lcm( 2::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT lcm( -2::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT lcm( 5::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT lcm( 10::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( -10::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 1000::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( 2105076::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(2105076)}},
},
{
Query: "SELECT lcm( 100000000::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( -5184226581::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(5184226581)}},
},
{
Query: "SELECT lcm( 8525267290::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , -1::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , -1::int8 ) ;",
Expected: []sql.Row{{int64(9223372036854775807)}},
},
{
Query: "SELECT lcm( 0::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT lcm( 1::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1)}},
},
{
Query: "SELECT lcm( 2::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT lcm( -2::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT lcm( 5::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT lcm( 10::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( -10::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 1000::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( 2105076::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(2105076)}},
},
{
Query: "SELECT lcm( 100000000::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( -5184226581::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(5184226581)}},
},
{
Query: "SELECT lcm( 8525267290::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , 1::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , 1::int8 ) ;",
Expected: []sql.Row{{int64(9223372036854775807)}},
},
{
Query: "SELECT lcm( 0::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT lcm( 1::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT lcm( 2::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT lcm( -2::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT lcm( 5::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 10::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( -10::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 1000::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( 2105076::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(2105076)}},
},
{
Query: "SELECT lcm( 100000000::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( -5184226581::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(10368453162)}},
},
{
Query: "SELECT lcm( 8525267290::int8 , 2::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , 2::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , 2::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 0::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT lcm( 1::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT lcm( 2::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT lcm( -2::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2)}},
},
{
Query: "SELECT lcm( 5::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 10::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( -10::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 1000::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( 2105076::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(2105076)}},
},
{
Query: "SELECT lcm( 100000000::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( -5184226581::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(10368453162)}},
},
{
Query: "SELECT lcm( 8525267290::int8 , -2::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , -2::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , -2::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 0::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT lcm( 1::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT lcm( 2::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( -2::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 5::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(5)}},
},
{
Query: "SELECT lcm( 10::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( -10::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 1000::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( 2105076::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(10525380)}},
},
{
Query: "SELECT lcm( 100000000::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( -5184226581::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(25921132905)}},
},
{
Query: "SELECT lcm( 8525267290::int8 , 5::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , 5::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , 5::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 0::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 1::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 2::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( -2::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 5::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 10::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( -10::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 1000::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( 2105076::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(10525380)}},
},
{
Query: "SELECT lcm( 100000000::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( -5184226581::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(51842265810)}},
},
{
Query: "SELECT lcm( 8525267290::int8 , 10::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , 10::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , 10::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 0::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 1::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 2::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( -2::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 5::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 10::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( -10::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10)}},
},
{
Query: "SELECT lcm( 1000::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( 2105076::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(10525380)}},
},
{
Query: "SELECT lcm( 100000000::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( -5184226581::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(51842265810)}},
},
{
Query: "SELECT lcm( 8525267290::int8 , -10::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , -10::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , -10::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 0::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( 1::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( 2::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( -2::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( 5::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( 10::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( -10::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( 1000::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(1000)}},
},
{
Query: "SELECT lcm( 2105076::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(526269000)}},
},
{
Query: "SELECT lcm( 100000000::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( -5184226581::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(5184226581000)}},
},
{
Query: "SELECT lcm( 8525267290::int8 , 1000::int8 ) ;",
Expected: []sql.Row{{int64(852526729000)}},
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , 1000::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , 1000::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 0::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(2105076)}},
},
{
Query: "SELECT lcm( 1::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(2105076)}},
},
{
Query: "SELECT lcm( 2::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(2105076)}},
},
{
Query: "SELECT lcm( -2::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(2105076)}},
},
{
Query: "SELECT lcm( 5::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(10525380)}},
},
{
Query: "SELECT lcm( 10::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(10525380)}},
},
{
Query: "SELECT lcm( -10::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(10525380)}},
},
{
Query: "SELECT lcm( 1000::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(526269000)}},
},
{
Query: "SELECT lcm( 2105076::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(2105076)}},
},
{
Query: "SELECT lcm( 100000000::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(52626900000000)}},
},
{
Query: "SELECT lcm( -5184226581::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(3637730318075052)}},
},
{
Query: "SELECT lcm( 8525267290::int8 , 2105076::int8 ) ;",
Expected: []sql.Row{{int64(8973167782882020)}},
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , 2105076::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , 2105076::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 0::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( 1::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( 2::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( -2::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( 5::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( 10::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( -10::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( 1000::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( 2105076::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(52626900000000)}},
},
{
Query: "SELECT lcm( 100000000::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(100000000)}},
},
{
Query: "SELECT lcm( -5184226581::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(518422658100000000)}},
},
{
Query: "SELECT lcm( 8525267290::int8 , 100000000::int8 ) ;",
Expected: []sql.Row{{int64(85252672900000000)}},
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , 100000000::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , 100000000::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 0::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(5184226581)}},
},
{
Query: "SELECT lcm( 1::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(5184226581)}},
},
{
Query: "SELECT lcm( 2::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(10368453162)}},
},
{
Query: "SELECT lcm( -2::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(10368453162)}},
},
{
Query: "SELECT lcm( 5::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(25921132905)}},
},
{
Query: "SELECT lcm( 10::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(51842265810)}},
},
{
Query: "SELECT lcm( -10::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(51842265810)}},
},
{
Query: "SELECT lcm( 1000::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(5184226581000)}},
},
{
Query: "SELECT lcm( 2105076::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(3637730318075052)}},
},
{
Query: "SELECT lcm( 100000000::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(518422658100000000)}},
},
{
Query: "SELECT lcm( -5184226581::int8 , -5184226581::int8 ) ;",
Expected: []sql.Row{{int64(5184226581)}},
},
{
Query: "SELECT lcm( 8525267290::int8 , -5184226581::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , -5184226581::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , -5184226581::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 0::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( 1::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( 2::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( -2::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( 5::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( 10::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( -10::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( 1000::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(852526729000)}},
},
{
Query: "SELECT lcm( 2105076::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(8973167782882020)}},
},
{
Query: "SELECT lcm( 100000000::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(85252672900000000)}},
},
{
Query: "SELECT lcm( -5184226581::int8 , 8525267290::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 8525267290::int8 , 8525267290::int8 ) ;",
Expected: []sql.Row{{int64(8525267290)}},
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , 8525267290::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , 8525267290::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 0::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( -1::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 1::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 2::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( -2::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 5::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 10::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( -10::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 1000::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 2105076::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 100000000::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( -5184226581::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 8525267290::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 0::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(0)}},
},
{
Query: "SELECT lcm( -1::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(9223372036854775807)}},
},
{
Query: "SELECT lcm( 1::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(9223372036854775807)}},
},
{
Query: "SELECT lcm( 2::int8 , 9223372036854775807::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( -2::int8 , 9223372036854775807::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 5::int8 , 9223372036854775807::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 10::int8 , 9223372036854775807::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( -10::int8 , 9223372036854775807::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 1000::int8 , 9223372036854775807::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 2105076::int8 , 9223372036854775807::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 100000000::int8 , 9223372036854775807::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( -5184226581::int8 , 9223372036854775807::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 8525267290::int8 , 9223372036854775807::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( -9223372036854775808::int8 , 9223372036854775807::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT lcm( 9223372036854775807::int8 , 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{int64(9223372036854775807)}},
},
},
},
})
}
@@ -0,0 +1,931 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Left(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "left",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT left( '' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '0' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '1' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'a' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'abc' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '123' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'value' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '12345' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'something' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' something' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'something ' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '123456789' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'a group of words' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '1234567890123456' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '' , -1::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , -1::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '0' , -1::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '1' , -1::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'a' , -1::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'abc' , -1::int4 ) ;",
Expected: []sql.Row{{"ab"}},
},
{
Query: "SELECT left( '123' , -1::int4 ) ;",
Expected: []sql.Row{{"12"}},
},
{
Query: "SELECT left( 'value' , -1::int4 ) ;",
Expected: []sql.Row{{"valu"}},
},
{
Query: "SELECT left( '12345' , -1::int4 ) ;",
Expected: []sql.Row{{"1234"}},
},
{
Query: "SELECT left( 'something' , -1::int4 ) ;",
Expected: []sql.Row{{"somethin"}},
},
{
Query: "SELECT left( ' something' , -1::int4 ) ;",
Expected: []sql.Row{{" somethin"}},
},
{
Query: "SELECT left( 'something ' , -1::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT left( '123456789' , -1::int4 ) ;",
Expected: []sql.Row{{"12345678"}},
},
{
Query: "SELECT left( 'a group of words' , -1::int4 ) ;",
Expected: []sql.Row{{"a group of word"}},
},
{
Query: "SELECT left( '1234567890123456' , -1::int4 ) ;",
Expected: []sql.Row{{"123456789012345"}},
},
{
Query: "SELECT left( '' , 1::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , 1::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT left( '0' , 1::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT left( '1' , 1::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( 'a' , 1::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT left( 'abc' , 1::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT left( '123' , 1::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( 'value' , 1::int4 ) ;",
Expected: []sql.Row{{"v"}},
},
{
Query: "SELECT left( '12345' , 1::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( 'something' , 1::int4 ) ;",
Expected: []sql.Row{{"s"}},
},
{
Query: "SELECT left( ' something' , 1::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT left( 'something ' , 1::int4 ) ;",
Expected: []sql.Row{{"s"}},
},
{
Query: "SELECT left( '123456789' , 1::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( 'a group of words' , 1::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT left( '1234567890123456' , 1::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( '' , 2::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , 2::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT left( '0' , 2::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT left( '1' , 2::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( 'a' , 2::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT left( 'abc' , 2::int4 ) ;",
Expected: []sql.Row{{"ab"}},
},
{
Query: "SELECT left( '123' , 2::int4 ) ;",
Expected: []sql.Row{{"12"}},
},
{
Query: "SELECT left( 'value' , 2::int4 ) ;",
Expected: []sql.Row{{"va"}},
},
{
Query: "SELECT left( '12345' , 2::int4 ) ;",
Expected: []sql.Row{{"12"}},
},
{
Query: "SELECT left( 'something' , 2::int4 ) ;",
Expected: []sql.Row{{"so"}},
},
{
Query: "SELECT left( ' something' , 2::int4 ) ;",
Expected: []sql.Row{{" s"}},
},
{
Query: "SELECT left( 'something ' , 2::int4 ) ;",
Expected: []sql.Row{{"so"}},
},
{
Query: "SELECT left( '123456789' , 2::int4 ) ;",
Expected: []sql.Row{{"12"}},
},
{
Query: "SELECT left( 'a group of words' , 2::int4 ) ;",
Expected: []sql.Row{{"a "}},
},
{
Query: "SELECT left( '1234567890123456' , 2::int4 ) ;",
Expected: []sql.Row{{"12"}},
},
{
Query: "SELECT left( '' , -2::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , -2::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '0' , -2::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '1' , -2::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'a' , -2::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'abc' , -2::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT left( '123' , -2::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( 'value' , -2::int4 ) ;",
Expected: []sql.Row{{"val"}},
},
{
Query: "SELECT left( '12345' , -2::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT left( 'something' , -2::int4 ) ;",
Expected: []sql.Row{{"somethi"}},
},
{
Query: "SELECT left( ' something' , -2::int4 ) ;",
Expected: []sql.Row{{" somethi"}},
},
{
Query: "SELECT left( 'something ' , -2::int4 ) ;",
Expected: []sql.Row{{"somethin"}},
},
{
Query: "SELECT left( '123456789' , -2::int4 ) ;",
Expected: []sql.Row{{"1234567"}},
},
{
Query: "SELECT left( 'a group of words' , -2::int4 ) ;",
Expected: []sql.Row{{"a group of wor"}},
},
{
Query: "SELECT left( '1234567890123456' , -2::int4 ) ;",
Expected: []sql.Row{{"12345678901234"}},
},
{
Query: "SELECT left( '' , 5::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , 5::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT left( '0' , 5::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT left( '1' , 5::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( 'a' , 5::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT left( 'abc' , 5::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT left( '123' , 5::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT left( 'value' , 5::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT left( '12345' , 5::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT left( 'something' , 5::int4 ) ;",
Expected: []sql.Row{{"somet"}},
},
{
Query: "SELECT left( ' something' , 5::int4 ) ;",
Expected: []sql.Row{{" some"}},
},
{
Query: "SELECT left( 'something ' , 5::int4 ) ;",
Expected: []sql.Row{{"somet"}},
},
{
Query: "SELECT left( '123456789' , 5::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT left( 'a group of words' , 5::int4 ) ;",
Expected: []sql.Row{{"a gro"}},
},
{
Query: "SELECT left( '1234567890123456' , 5::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT left( '' , 10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , 10::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT left( '0' , 10::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT left( '1' , 10::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( 'a' , 10::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT left( 'abc' , 10::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT left( '123' , 10::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT left( 'value' , 10::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT left( '12345' , 10::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT left( 'something' , 10::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT left( ' something' , 10::int4 ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT left( 'something ' , 10::int4 ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT left( '123456789' , 10::int4 ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT left( 'a group of words' , 10::int4 ) ;",
Expected: []sql.Row{{"a group of"}},
},
{
Query: "SELECT left( '1234567890123456' , 10::int4 ) ;",
Expected: []sql.Row{{"1234567890"}},
},
{
Query: "SELECT left( '' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '0' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '1' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'a' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'abc' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '123' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'value' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '12345' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'something' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' something' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'something ' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '123456789' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'a group of words' , -10::int4 ) ;",
Expected: []sql.Row{{"a grou"}},
},
{
Query: "SELECT left( '1234567890123456' , -10::int4 ) ;",
Expected: []sql.Row{{"123456"}},
},
{
Query: "SELECT left( '' , 100::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , 100::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT left( '0' , 100::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT left( '1' , 100::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( 'a' , 100::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT left( 'abc' , 100::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT left( '123' , 100::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT left( 'value' , 100::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT left( '12345' , 100::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT left( 'something' , 100::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT left( ' something' , 100::int4 ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT left( 'something ' , 100::int4 ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT left( '123456789' , 100::int4 ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT left( 'a group of words' , 100::int4 ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT left( '1234567890123456' , 100::int4 ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT left( '' , 21050::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , 21050::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT left( '0' , 21050::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT left( '1' , 21050::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( 'a' , 21050::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT left( 'abc' , 21050::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT left( '123' , 21050::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT left( 'value' , 21050::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT left( '12345' , 21050::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT left( 'something' , 21050::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT left( ' something' , 21050::int4 ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT left( 'something ' , 21050::int4 ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT left( '123456789' , 21050::int4 ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT left( 'a group of words' , 21050::int4 ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT left( '1234567890123456' , 21050::int4 ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT left( '' , 100000::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , 100000::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT left( '0' , 100000::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT left( '1' , 100000::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( 'a' , 100000::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT left( 'abc' , 100000::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT left( '123' , 100000::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT left( 'value' , 100000::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT left( '12345' , 100000::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT left( 'something' , 100000::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT left( ' something' , 100000::int4 ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT left( 'something ' , 100000::int4 ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT left( '123456789' , 100000::int4 ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT left( 'a group of words' , 100000::int4 ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT left( '1234567890123456' , 100000::int4 ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT left( '' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '0' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '1' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'a' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'abc' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '123' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'value' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '12345' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'something' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' something' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'something ' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '123456789' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( 'a group of words' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '1234567890123456' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( '' , 2525280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , 2525280::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT left( '0' , 2525280::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT left( '1' , 2525280::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( 'a' , 2525280::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT left( 'abc' , 2525280::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT left( '123' , 2525280::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT left( 'value' , 2525280::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT left( '12345' , 2525280::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT left( 'something' , 2525280::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT left( ' something' , 2525280::int4 ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT left( 'something ' , 2525280::int4 ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT left( '123456789' , 2525280::int4 ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT left( 'a group of words' , 2525280::int4 ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT left( '1234567890123456' , 2525280::int4 ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT left( '' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( ' ' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( '0' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( '1' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( 'a' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( 'abc' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( '123' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( 'value' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( '12345' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( 'something' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( ' something' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( 'something ' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( '123456789' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( 'a group of words' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( '1234567890123456' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT left( '' , 2147483647::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT left( ' ' , 2147483647::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT left( '0' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT left( '1' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT left( 'a' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT left( 'abc' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT left( '123' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT left( 'value' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT left( '12345' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT left( 'something' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT left( ' something' , 2147483647::int4 ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT left( 'something ' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT left( '123456789' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT left( 'a group of words' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT left( '1234567890123456' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Length(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "length",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT length( '' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT length( ' ' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT length( '0' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT length( '1' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT length( 'a' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT length( 'abc' ) ;",
Expected: []sql.Row{{int32(3)}},
},
{
Query: "SELECT length( '123' ) ;",
Expected: []sql.Row{{int32(3)}},
},
{
Query: "SELECT length( 'value' ) ;",
Expected: []sql.Row{{int32(5)}},
},
{
Query: "SELECT length( '12345' ) ;",
Expected: []sql.Row{{int32(5)}},
},
{
Query: "SELECT length( 'something' ) ;",
Expected: []sql.Row{{int32(9)}},
},
{
Query: "SELECT length( ' something' ) ;",
Expected: []sql.Row{{int32(10)}},
},
{
Query: "SELECT length( 'something ' ) ;",
Expected: []sql.Row{{int32(10)}},
},
{
Query: "SELECT length( '123456789' ) ;",
Expected: []sql.Row{{int32(9)}},
},
{
Query: "SELECT length( 'a group of words' ) ;",
Expected: []sql.Row{{int32(16)}},
},
{
Query: "SELECT length( '1234567890123456' ) ;",
Expected: []sql.Row{{int32(16)}},
},
},
},
})
}
@@ -0,0 +1,151 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Ln(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "ln",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT ln( 0::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT ln( -1::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT ln( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT ln( 2::float8 ) ;",
Expected: []sql.Row{{float64(0.693147)}},
},
{
Query: "SELECT ln( -2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT ln( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(1.658228)}},
},
{
Query: "SELECT ln( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(2.386007)}},
},
{
Query: "SELECT ln( -10::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT ln( 100::float8 ) ;",
Expected: []sql.Row{{float64(4.605170)}},
},
{
Query: "SELECT ln( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(9.954679)}},
},
{
Query: "SELECT ln( 100000::float8 ) ;",
Expected: []sql.Row{{float64(11.512925)}},
},
{
Query: "SELECT ln( -1184280::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT ln( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(14.741863)}},
},
{
Query: "SELECT ln( -2147483648::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT ln( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(21.487563)}},
},
{
Query: "SELECT ln( 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT ln( -1::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT ln( 1::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT ln( 2::numeric ) ;",
Expected: []sql.Row{{Numeric("0.6931471805599453")}},
},
{
Query: "SELECT ln( -2::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT ln( 5::numeric ) ;",
Expected: []sql.Row{{Numeric("1.6094379124341004")}},
},
{
Query: "SELECT ln( 10::numeric ) ;",
Expected: []sql.Row{{Numeric("2.3025850929940457")}},
},
{
Query: "SELECT ln( -10::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT ln( 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("6.9077552789821371")}},
},
{
Query: "SELECT ln( 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("14.559862128959931")}},
},
{
Query: "SELECT ln( 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("18.4206807462982277928487431328957099")}},
},
{
Query: "SELECT ln( -5184226581::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT ln( 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("22.866300213290165")}},
},
{
Query: "SELECT ln( -79223372036854775808::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT ln( 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("45.818803030654766")}},
},
},
},
})
}
@@ -0,0 +1,151 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Log10(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "log10",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT log10( 0::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT log10( -1::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT log10( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT log10( 2::float8 ) ;",
Expected: []sql.Row{{float64(0.301030)}},
},
{
Query: "SELECT log10( -2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT log10( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(0.720159)}},
},
{
Query: "SELECT log10( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(1.036230)}},
},
{
Query: "SELECT log10( -10::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT log10( 100::float8 ) ;",
Expected: []sql.Row{{float64(2.000000)}},
},
{
Query: "SELECT log10( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(4.323262)}},
},
{
Query: "SELECT log10( 100000::float8 ) ;",
Expected: []sql.Row{{float64(5.000000)}},
},
{
Query: "SELECT log10( -1184280::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT log10( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(6.402310)}},
},
{
Query: "SELECT log10( -2147483648::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT log10( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(9.331930)}},
},
{
Query: "SELECT log10( 0::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT log10( -1::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT log10( 1::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT log10( 2::numeric ) ;",
Expected: []sql.Row{{Numeric("0.3010299956639812")}},
},
{
Query: "SELECT log10( -2::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT log10( 5::numeric ) ;",
Expected: []sql.Row{{Numeric("0.6989700043360188")}},
},
{
Query: "SELECT log10( 10::numeric ) ;",
Expected: []sql.Row{{Numeric("1.0000000000000000")}},
},
{
Query: "SELECT log10( -10::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT log10( 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("3.0000000000000000")}},
},
{
Query: "SELECT log10( 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("6.323267779879430")}},
},
{
Query: "SELECT log10( 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("8.0000000010187950611868560912011483")}},
},
{
Query: "SELECT log10( -5184226581::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT log10( 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("9.930708004175069")}},
},
{
Query: "SELECT log10( -79223372036854775808::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT log10( 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("19.898853323625356")}},
},
},
},
})
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Lower(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "lower",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT lower( '' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT lower( ' ' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT lower( '0' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT lower( '1' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT lower( 'a' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT lower( 'abc' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT lower( '123' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT lower( 'value' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT lower( '12345' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT lower( 'something' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT lower( ' something' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT lower( 'something ' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT lower( '123456789' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT lower( 'a group of words' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT lower( '1234567890123456' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
},
},
})
}
@@ -0,0 +1,991 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Ltrim(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "ltrim",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT ltrim( '' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( '0' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT ltrim( 'a' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT ltrim( 'abc' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT ltrim( '123' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT ltrim( 'value' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT ltrim( 'something' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( ' something' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( 'something ' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT ltrim( '123456789' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT ltrim( 'a group of words' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT ltrim( '' , '' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , '' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT ltrim( '0' , '' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' , '' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT ltrim( 'a' , '' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT ltrim( 'abc' , '' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT ltrim( '123' , '' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT ltrim( 'value' , '' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , '' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT ltrim( 'something' , '' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( ' something' , '' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT ltrim( 'something ' , '' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT ltrim( '123456789' , '' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT ltrim( 'a group of words' , '' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , '' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT ltrim( '' , ' ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , ' ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( '0' , ' ' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' , ' ' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT ltrim( 'a' , ' ' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT ltrim( 'abc' , ' ' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT ltrim( '123' , ' ' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT ltrim( 'value' , ' ' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , ' ' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT ltrim( 'something' , ' ' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( ' something' , ' ' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( 'something ' , ' ' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT ltrim( '123456789' , ' ' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT ltrim( 'a group of words' , ' ' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , ' ' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT ltrim( '' , '0' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , '0' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT ltrim( '0' , '0' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( '1' , '0' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT ltrim( 'a' , '0' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT ltrim( 'abc' , '0' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT ltrim( '123' , '0' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT ltrim( 'value' , '0' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , '0' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT ltrim( 'something' , '0' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( ' something' , '0' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT ltrim( 'something ' , '0' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT ltrim( '123456789' , '0' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT ltrim( 'a group of words' , '0' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , '0' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT ltrim( '' , '1' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , '1' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT ltrim( '0' , '1' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' , '1' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'a' , '1' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT ltrim( 'abc' , '1' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT ltrim( '123' , '1' ) ;",
Expected: []sql.Row{{"23"}},
},
{
Query: "SELECT ltrim( 'value' , '1' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , '1' ) ;",
Expected: []sql.Row{{"2345"}},
},
{
Query: "SELECT ltrim( 'something' , '1' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( ' something' , '1' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT ltrim( 'something ' , '1' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT ltrim( '123456789' , '1' ) ;",
Expected: []sql.Row{{"23456789"}},
},
{
Query: "SELECT ltrim( 'a group of words' , '1' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , '1' ) ;",
Expected: []sql.Row{{"234567890123456"}},
},
{
Query: "SELECT ltrim( '' , 'a' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , 'a' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT ltrim( '0' , 'a' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' , 'a' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT ltrim( 'a' , 'a' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'abc' , 'a' ) ;",
Expected: []sql.Row{{"bc"}},
},
{
Query: "SELECT ltrim( '123' , 'a' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT ltrim( 'value' , 'a' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , 'a' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT ltrim( 'something' , 'a' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( ' something' , 'a' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT ltrim( 'something ' , 'a' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT ltrim( '123456789' , 'a' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT ltrim( 'a group of words' , 'a' ) ;",
Expected: []sql.Row{{" group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , 'a' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT ltrim( '' , 'abc' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , 'abc' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT ltrim( '0' , 'abc' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' , 'abc' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT ltrim( 'a' , 'abc' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'abc' , 'abc' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( '123' , 'abc' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT ltrim( 'value' , 'abc' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , 'abc' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT ltrim( 'something' , 'abc' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( ' something' , 'abc' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT ltrim( 'something ' , 'abc' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT ltrim( '123456789' , 'abc' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT ltrim( 'a group of words' , 'abc' ) ;",
Expected: []sql.Row{{" group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , 'abc' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT ltrim( '' , '123' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , '123' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT ltrim( '0' , '123' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' , '123' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'a' , '123' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT ltrim( 'abc' , '123' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT ltrim( '123' , '123' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'value' , '123' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , '123' ) ;",
Expected: []sql.Row{{"45"}},
},
{
Query: "SELECT ltrim( 'something' , '123' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( ' something' , '123' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT ltrim( 'something ' , '123' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT ltrim( '123456789' , '123' ) ;",
Expected: []sql.Row{{"456789"}},
},
{
Query: "SELECT ltrim( 'a group of words' , '123' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , '123' ) ;",
Expected: []sql.Row{{"4567890123456"}},
},
{
Query: "SELECT ltrim( '' , 'value' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , 'value' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT ltrim( '0' , 'value' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' , 'value' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT ltrim( 'a' , 'value' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'abc' , 'value' ) ;",
Expected: []sql.Row{{"bc"}},
},
{
Query: "SELECT ltrim( '123' , 'value' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT ltrim( 'value' , 'value' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( '12345' , 'value' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT ltrim( 'something' , 'value' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( ' something' , 'value' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT ltrim( 'something ' , 'value' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT ltrim( '123456789' , 'value' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT ltrim( 'a group of words' , 'value' ) ;",
Expected: []sql.Row{{" group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , 'value' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT ltrim( '' , '12345' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , '12345' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT ltrim( '0' , '12345' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' , '12345' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'a' , '12345' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT ltrim( 'abc' , '12345' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT ltrim( '123' , '12345' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'value' , '12345' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , '12345' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'something' , '12345' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( ' something' , '12345' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT ltrim( 'something ' , '12345' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT ltrim( '123456789' , '12345' ) ;",
Expected: []sql.Row{{"6789"}},
},
{
Query: "SELECT ltrim( 'a group of words' , '12345' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , '12345' ) ;",
Expected: []sql.Row{{"67890123456"}},
},
{
Query: "SELECT ltrim( '' , 'something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , 'something' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT ltrim( '0' , 'something' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' , 'something' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT ltrim( 'a' , 'something' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT ltrim( 'abc' , 'something' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT ltrim( '123' , 'something' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT ltrim( 'value' , 'something' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , 'something' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT ltrim( 'something' , 'something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' something' , 'something' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT ltrim( 'something ' , 'something' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT ltrim( '123456789' , 'something' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT ltrim( 'a group of words' , 'something' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , 'something' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT ltrim( '' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( '0' , ' something' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' , ' something' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT ltrim( 'a' , ' something' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT ltrim( 'abc' , ' something' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT ltrim( '123' , ' something' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT ltrim( 'value' , ' something' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , ' something' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT ltrim( 'something' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' something' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'something ' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( '123456789' , ' something' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT ltrim( 'a group of words' , ' something' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , ' something' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT ltrim( '' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( '0' , 'something ' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' , 'something ' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT ltrim( 'a' , 'something ' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT ltrim( 'abc' , 'something ' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT ltrim( '123' , 'something ' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT ltrim( 'value' , 'something ' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , 'something ' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT ltrim( 'something' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' something' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'something ' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( '123456789' , 'something ' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT ltrim( 'a group of words' , 'something ' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , 'something ' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT ltrim( '' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , '123456789' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT ltrim( '0' , '123456789' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'a' , '123456789' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT ltrim( 'abc' , '123456789' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT ltrim( '123' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'value' , '123456789' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'something' , '123456789' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( ' something' , '123456789' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT ltrim( 'something ' , '123456789' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT ltrim( '123456789' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'a group of words' , '123456789' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , '123456789' ) ;",
Expected: []sql.Row{{"0123456"}},
},
{
Query: "SELECT ltrim( '' , 'a group of words' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , 'a group of words' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( '0' , 'a group of words' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT ltrim( '1' , 'a group of words' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT ltrim( 'a' , 'a group of words' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'abc' , 'a group of words' ) ;",
Expected: []sql.Row{{"bc"}},
},
{
Query: "SELECT ltrim( '123' , 'a group of words' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT ltrim( 'value' , 'a group of words' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , 'a group of words' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT ltrim( 'something' , 'a group of words' ) ;",
Expected: []sql.Row{{"mething"}},
},
{
Query: "SELECT ltrim( ' something' , 'a group of words' ) ;",
Expected: []sql.Row{{"mething"}},
},
{
Query: "SELECT ltrim( 'something ' , 'a group of words' ) ;",
Expected: []sql.Row{{"mething "}},
},
{
Query: "SELECT ltrim( '123456789' , 'a group of words' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT ltrim( 'a group of words' , 'a group of words' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( '1234567890123456' , 'a group of words' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT ltrim( '' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( ' ' , '1234567890123456' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT ltrim( '0' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( '1' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'a' , '1234567890123456' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT ltrim( 'abc' , '1234567890123456' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT ltrim( '123' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'value' , '1234567890123456' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT ltrim( '12345' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'something' , '1234567890123456' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT ltrim( ' something' , '1234567890123456' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT ltrim( 'something ' , '1234567890123456' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT ltrim( '123456789' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT ltrim( 'a group of words' , '1234567890123456' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT ltrim( '1234567890123456' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Md5(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "md5",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT md5( '' ) ;",
Expected: []sql.Row{{"d41d8cd98f00b204e9800998ecf8427e"}},
},
{
Query: "SELECT md5( ' ' ) ;",
Expected: []sql.Row{{"7215ee9c7d9dc229d2921a40e899ec5f"}},
},
{
Query: "SELECT md5( '0' ) ;",
Expected: []sql.Row{{"cfcd208495d565ef66e7dff9f98764da"}},
},
{
Query: "SELECT md5( '1' ) ;",
Expected: []sql.Row{{"c4ca4238a0b923820dcc509a6f75849b"}},
},
{
Query: "SELECT md5( 'a' ) ;",
Expected: []sql.Row{{"0cc175b9c0f1b6a831c399e269772661"}},
},
{
Query: "SELECT md5( 'abc' ) ;",
Expected: []sql.Row{{"900150983cd24fb0d6963f7d28e17f72"}},
},
{
Query: "SELECT md5( '123' ) ;",
Expected: []sql.Row{{"202cb962ac59075b964b07152d234b70"}},
},
{
Query: "SELECT md5( 'value' ) ;",
Expected: []sql.Row{{"2063c1608d6e0baf80249c42e2be5804"}},
},
{
Query: "SELECT md5( '12345' ) ;",
Expected: []sql.Row{{"827ccb0eea8a706c4c34a16891f84e7b"}},
},
{
Query: "SELECT md5( 'something' ) ;",
Expected: []sql.Row{{"437b930db84b8079c2dd804a71936b5f"}},
},
{
Query: "SELECT md5( ' something' ) ;",
Expected: []sql.Row{{"b0103a16a3cc4ee062a2d0ccf61f9617"}},
},
{
Query: "SELECT md5( 'something ' ) ;",
Expected: []sql.Row{{"d23a679e329e8d6c028bbc6692b41dd8"}},
},
{
Query: "SELECT md5( '123456789' ) ;",
Expected: []sql.Row{{"25f9e794323b453885f5181f1b624d0b"}},
},
{
Query: "SELECT md5( 'a group of words' ) ;",
Expected: []sql.Row{{"231d49f0f13a285a2e6c24e0bb47a860"}},
},
{
Query: "SELECT md5( '1234567890123456' ) ;",
Expected: []sql.Row{{"abeac07d3c28c1bef9e730002c753ed4"}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_MinScale(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "min_scale",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT min_scale( 0::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT min_scale( -1::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT min_scale( 1::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT min_scale( 2::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT min_scale( -2::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT min_scale( 5::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT min_scale( 10::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT min_scale( -10::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT min_scale( 1000::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT min_scale( 2105076::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT min_scale( 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{int32(34)}},
},
{
Query: "SELECT min_scale( -5184226581::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT min_scale( 8525267290::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT min_scale( -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT min_scale( 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
},
},
})
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_OctetLength(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "octet_length",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT octet_length( '' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT octet_length( ' ' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT octet_length( '0' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT octet_length( '1' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT octet_length( 'a' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT octet_length( 'abc' ) ;",
Expected: []sql.Row{{int32(3)}},
},
{
Query: "SELECT octet_length( '123' ) ;",
Expected: []sql.Row{{int32(3)}},
},
{
Query: "SELECT octet_length( 'value' ) ;",
Expected: []sql.Row{{int32(5)}},
},
{
Query: "SELECT octet_length( '12345' ) ;",
Expected: []sql.Row{{int32(5)}},
},
{
Query: "SELECT octet_length( 'something' ) ;",
Expected: []sql.Row{{int32(9)}},
},
{
Query: "SELECT octet_length( ' something' ) ;",
Expected: []sql.Row{{int32(10)}},
},
{
Query: "SELECT octet_length( 'something ' ) ;",
Expected: []sql.Row{{int32(10)}},
},
{
Query: "SELECT octet_length( '123456789' ) ;",
Expected: []sql.Row{{int32(9)}},
},
{
Query: "SELECT octet_length( 'a group of words' ) ;",
Expected: []sql.Row{{int32(16)}},
},
{
Query: "SELECT octet_length( '1234567890123456' ) ;",
Expected: []sql.Row{{int32(16)}},
},
},
},
})
}
@@ -0,0 +1,35 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Pi(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "pi",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT pi( ) ;",
Expected: []sql.Row{{float64(3.141593)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Radians(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "radians",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT radians( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT radians( -1::float8 ) ;",
Expected: []sql.Row{{float64(-0.017453)}},
},
{
Query: "SELECT radians( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.017453)}},
},
{
Query: "SELECT radians( 2::float8 ) ;",
Expected: []sql.Row{{float64(0.034907)}},
},
{
Query: "SELECT radians( -2::float8 ) ;",
Expected: []sql.Row{{float64(-0.034907)}},
},
{
Query: "SELECT radians( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(0.091630)}},
},
{
Query: "SELECT radians( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(0.189717)}},
},
{
Query: "SELECT radians( -10::float8 ) ;",
Expected: []sql.Row{{float64(-0.174533)}},
},
{
Query: "SELECT radians( 100::float8 ) ;",
Expected: []sql.Row{{float64(1.745329)}},
},
{
Query: "SELECT radians( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(367.400185)}},
},
{
Query: "SELECT radians( 100000::float8 ) ;",
Expected: []sql.Row{{float64(1745.329252)}},
},
{
Query: "SELECT radians( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-20669.585266)}},
},
{
Query: "SELECT radians( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(44074.455404)}},
},
{
Query: "SELECT radians( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-37480660.290339)}},
},
{
Query: "SELECT radians( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(37480660.283187)}},
},
},
},
})
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Reverse(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "reverse",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT reverse( '' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT reverse( ' ' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT reverse( '0' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT reverse( '1' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT reverse( 'a' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT reverse( 'abc' ) ;",
Expected: []sql.Row{{"cba"}},
},
{
Query: "SELECT reverse( '123' ) ;",
Expected: []sql.Row{{"321"}},
},
{
Query: "SELECT reverse( 'value' ) ;",
Expected: []sql.Row{{"eulav"}},
},
{
Query: "SELECT reverse( '12345' ) ;",
Expected: []sql.Row{{"54321"}},
},
{
Query: "SELECT reverse( 'something' ) ;",
Expected: []sql.Row{{"gnihtemos"}},
},
{
Query: "SELECT reverse( ' something' ) ;",
Expected: []sql.Row{{"gnihtemos "}},
},
{
Query: "SELECT reverse( 'something ' ) ;",
Expected: []sql.Row{{" gnihtemos"}},
},
{
Query: "SELECT reverse( '123456789' ) ;",
Expected: []sql.Row{{"987654321"}},
},
{
Query: "SELECT reverse( 'a group of words' ) ;",
Expected: []sql.Row{{"sdrow fo puorg a"}},
},
{
Query: "SELECT reverse( '1234567890123456' ) ;",
Expected: []sql.Row{{"6543210987654321"}},
},
},
},
})
}
@@ -0,0 +1,931 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Right(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "right",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT right( '' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '0' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '1' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'a' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'abc' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '123' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'value' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '12345' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'something' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' something' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'something ' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '123456789' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'a group of words' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '1234567890123456' , 0::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '' , -1::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , -1::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '0' , -1::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '1' , -1::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'a' , -1::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'abc' , -1::int4 ) ;",
Expected: []sql.Row{{"bc"}},
},
{
Query: "SELECT right( '123' , -1::int4 ) ;",
Expected: []sql.Row{{"23"}},
},
{
Query: "SELECT right( 'value' , -1::int4 ) ;",
Expected: []sql.Row{{"alue"}},
},
{
Query: "SELECT right( '12345' , -1::int4 ) ;",
Expected: []sql.Row{{"2345"}},
},
{
Query: "SELECT right( 'something' , -1::int4 ) ;",
Expected: []sql.Row{{"omething"}},
},
{
Query: "SELECT right( ' something' , -1::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT right( 'something ' , -1::int4 ) ;",
Expected: []sql.Row{{"omething "}},
},
{
Query: "SELECT right( '123456789' , -1::int4 ) ;",
Expected: []sql.Row{{"23456789"}},
},
{
Query: "SELECT right( 'a group of words' , -1::int4 ) ;",
Expected: []sql.Row{{" group of words"}},
},
{
Query: "SELECT right( '1234567890123456' , -1::int4 ) ;",
Expected: []sql.Row{{"234567890123456"}},
},
{
Query: "SELECT right( '' , 1::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , 1::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT right( '0' , 1::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT right( '1' , 1::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT right( 'a' , 1::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT right( 'abc' , 1::int4 ) ;",
Expected: []sql.Row{{"c"}},
},
{
Query: "SELECT right( '123' , 1::int4 ) ;",
Expected: []sql.Row{{"3"}},
},
{
Query: "SELECT right( 'value' , 1::int4 ) ;",
Expected: []sql.Row{{"e"}},
},
{
Query: "SELECT right( '12345' , 1::int4 ) ;",
Expected: []sql.Row{{"5"}},
},
{
Query: "SELECT right( 'something' , 1::int4 ) ;",
Expected: []sql.Row{{"g"}},
},
{
Query: "SELECT right( ' something' , 1::int4 ) ;",
Expected: []sql.Row{{"g"}},
},
{
Query: "SELECT right( 'something ' , 1::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT right( '123456789' , 1::int4 ) ;",
Expected: []sql.Row{{"9"}},
},
{
Query: "SELECT right( 'a group of words' , 1::int4 ) ;",
Expected: []sql.Row{{"s"}},
},
{
Query: "SELECT right( '1234567890123456' , 1::int4 ) ;",
Expected: []sql.Row{{"6"}},
},
{
Query: "SELECT right( '' , 2::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , 2::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT right( '0' , 2::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT right( '1' , 2::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT right( 'a' , 2::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT right( 'abc' , 2::int4 ) ;",
Expected: []sql.Row{{"bc"}},
},
{
Query: "SELECT right( '123' , 2::int4 ) ;",
Expected: []sql.Row{{"23"}},
},
{
Query: "SELECT right( 'value' , 2::int4 ) ;",
Expected: []sql.Row{{"ue"}},
},
{
Query: "SELECT right( '12345' , 2::int4 ) ;",
Expected: []sql.Row{{"45"}},
},
{
Query: "SELECT right( 'something' , 2::int4 ) ;",
Expected: []sql.Row{{"ng"}},
},
{
Query: "SELECT right( ' something' , 2::int4 ) ;",
Expected: []sql.Row{{"ng"}},
},
{
Query: "SELECT right( 'something ' , 2::int4 ) ;",
Expected: []sql.Row{{"g "}},
},
{
Query: "SELECT right( '123456789' , 2::int4 ) ;",
Expected: []sql.Row{{"89"}},
},
{
Query: "SELECT right( 'a group of words' , 2::int4 ) ;",
Expected: []sql.Row{{"ds"}},
},
{
Query: "SELECT right( '1234567890123456' , 2::int4 ) ;",
Expected: []sql.Row{{"56"}},
},
{
Query: "SELECT right( '' , -2::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , -2::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '0' , -2::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '1' , -2::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'a' , -2::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'abc' , -2::int4 ) ;",
Expected: []sql.Row{{"c"}},
},
{
Query: "SELECT right( '123' , -2::int4 ) ;",
Expected: []sql.Row{{"3"}},
},
{
Query: "SELECT right( 'value' , -2::int4 ) ;",
Expected: []sql.Row{{"lue"}},
},
{
Query: "SELECT right( '12345' , -2::int4 ) ;",
Expected: []sql.Row{{"345"}},
},
{
Query: "SELECT right( 'something' , -2::int4 ) ;",
Expected: []sql.Row{{"mething"}},
},
{
Query: "SELECT right( ' something' , -2::int4 ) ;",
Expected: []sql.Row{{"omething"}},
},
{
Query: "SELECT right( 'something ' , -2::int4 ) ;",
Expected: []sql.Row{{"mething "}},
},
{
Query: "SELECT right( '123456789' , -2::int4 ) ;",
Expected: []sql.Row{{"3456789"}},
},
{
Query: "SELECT right( 'a group of words' , -2::int4 ) ;",
Expected: []sql.Row{{"group of words"}},
},
{
Query: "SELECT right( '1234567890123456' , -2::int4 ) ;",
Expected: []sql.Row{{"34567890123456"}},
},
{
Query: "SELECT right( '' , 5::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , 5::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT right( '0' , 5::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT right( '1' , 5::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT right( 'a' , 5::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT right( 'abc' , 5::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT right( '123' , 5::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT right( 'value' , 5::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT right( '12345' , 5::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT right( 'something' , 5::int4 ) ;",
Expected: []sql.Row{{"thing"}},
},
{
Query: "SELECT right( ' something' , 5::int4 ) ;",
Expected: []sql.Row{{"thing"}},
},
{
Query: "SELECT right( 'something ' , 5::int4 ) ;",
Expected: []sql.Row{{"hing "}},
},
{
Query: "SELECT right( '123456789' , 5::int4 ) ;",
Expected: []sql.Row{{"56789"}},
},
{
Query: "SELECT right( 'a group of words' , 5::int4 ) ;",
Expected: []sql.Row{{"words"}},
},
{
Query: "SELECT right( '1234567890123456' , 5::int4 ) ;",
Expected: []sql.Row{{"23456"}},
},
{
Query: "SELECT right( '' , 10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , 10::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT right( '0' , 10::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT right( '1' , 10::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT right( 'a' , 10::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT right( 'abc' , 10::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT right( '123' , 10::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT right( 'value' , 10::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT right( '12345' , 10::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT right( 'something' , 10::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT right( ' something' , 10::int4 ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT right( 'something ' , 10::int4 ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT right( '123456789' , 10::int4 ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT right( 'a group of words' , 10::int4 ) ;",
Expected: []sql.Row{{"p of words"}},
},
{
Query: "SELECT right( '1234567890123456' , 10::int4 ) ;",
Expected: []sql.Row{{"7890123456"}},
},
{
Query: "SELECT right( '' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '0' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '1' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'a' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'abc' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '123' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'value' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '12345' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'something' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' something' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'something ' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '123456789' , -10::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'a group of words' , -10::int4 ) ;",
Expected: []sql.Row{{" words"}},
},
{
Query: "SELECT right( '1234567890123456' , -10::int4 ) ;",
Expected: []sql.Row{{"123456"}},
},
{
Query: "SELECT right( '' , 100::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , 100::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT right( '0' , 100::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT right( '1' , 100::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT right( 'a' , 100::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT right( 'abc' , 100::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT right( '123' , 100::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT right( 'value' , 100::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT right( '12345' , 100::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT right( 'something' , 100::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT right( ' something' , 100::int4 ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT right( 'something ' , 100::int4 ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT right( '123456789' , 100::int4 ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT right( 'a group of words' , 100::int4 ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT right( '1234567890123456' , 100::int4 ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT right( '' , 21050::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , 21050::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT right( '0' , 21050::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT right( '1' , 21050::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT right( 'a' , 21050::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT right( 'abc' , 21050::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT right( '123' , 21050::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT right( 'value' , 21050::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT right( '12345' , 21050::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT right( 'something' , 21050::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT right( ' something' , 21050::int4 ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT right( 'something ' , 21050::int4 ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT right( '123456789' , 21050::int4 ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT right( 'a group of words' , 21050::int4 ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT right( '1234567890123456' , 21050::int4 ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT right( '' , 100000::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , 100000::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT right( '0' , 100000::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT right( '1' , 100000::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT right( 'a' , 100000::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT right( 'abc' , 100000::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT right( '123' , 100000::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT right( 'value' , 100000::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT right( '12345' , 100000::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT right( 'something' , 100000::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT right( ' something' , 100000::int4 ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT right( 'something ' , 100000::int4 ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT right( '123456789' , 100000::int4 ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT right( 'a group of words' , 100000::int4 ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT right( '1234567890123456' , 100000::int4 ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT right( '' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '0' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '1' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'a' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'abc' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '123' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'value' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '12345' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'something' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' something' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'something ' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '123456789' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( 'a group of words' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '1234567890123456' , -1184280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( '' , 2525280::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , 2525280::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT right( '0' , 2525280::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT right( '1' , 2525280::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT right( 'a' , 2525280::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT right( 'abc' , 2525280::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT right( '123' , 2525280::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT right( 'value' , 2525280::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT right( '12345' , 2525280::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT right( 'something' , 2525280::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT right( ' something' , 2525280::int4 ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT right( 'something ' , 2525280::int4 ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT right( '123456789' , 2525280::int4 ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT right( 'a group of words' , 2525280::int4 ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT right( '1234567890123456' , 2525280::int4 ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT right( '' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( ' ' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( '0' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( '1' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( 'a' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( 'abc' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( '123' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( 'value' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( '12345' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( 'something' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( ' something' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( 'something ' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( '123456789' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( 'a group of words' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( '1234567890123456' , -2147483648::int4 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT right( '' , 2147483647::int4 ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT right( ' ' , 2147483647::int4 ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT right( '0' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT right( '1' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT right( 'a' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT right( 'abc' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT right( '123' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT right( 'value' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT right( '12345' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT right( 'something' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT right( ' something' , 2147483647::int4 ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT right( 'something ' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT right( '123456789' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT right( 'a group of words' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT right( '1234567890123456' , 2147483647::int4 ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
},
},
})
}
@@ -0,0 +1,991 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Rtrim(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "rtrim",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT rtrim( '' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( '0' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT rtrim( 'a' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT rtrim( 'abc' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT rtrim( 'value' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT rtrim( '12345' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT rtrim( 'something' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( ' something' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT rtrim( 'something ' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( '123456789' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT rtrim( '1234567890123456' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , '' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , '' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT rtrim( '0' , '' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' , '' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT rtrim( 'a' , '' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT rtrim( 'abc' , '' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , '' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT rtrim( 'value' , '' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT rtrim( '12345' , '' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT rtrim( 'something' , '' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( ' something' , '' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT rtrim( 'something ' , '' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT rtrim( '123456789' , '' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' , '' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , '' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , ' ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , ' ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( '0' , ' ' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' , ' ' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT rtrim( 'a' , ' ' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT rtrim( 'abc' , ' ' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , ' ' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT rtrim( 'value' , ' ' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT rtrim( '12345' , ' ' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT rtrim( 'something' , ' ' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( ' something' , ' ' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT rtrim( 'something ' , ' ' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( '123456789' , ' ' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' , ' ' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , ' ' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , '0' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , '0' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT rtrim( '0' , '0' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( '1' , '0' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT rtrim( 'a' , '0' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT rtrim( 'abc' , '0' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , '0' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT rtrim( 'value' , '0' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT rtrim( '12345' , '0' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT rtrim( 'something' , '0' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( ' something' , '0' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT rtrim( 'something ' , '0' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT rtrim( '123456789' , '0' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' , '0' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , '0' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , '1' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , '1' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT rtrim( '0' , '1' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' , '1' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'a' , '1' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT rtrim( 'abc' , '1' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , '1' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT rtrim( 'value' , '1' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT rtrim( '12345' , '1' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT rtrim( 'something' , '1' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( ' something' , '1' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT rtrim( 'something ' , '1' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT rtrim( '123456789' , '1' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' , '1' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , '1' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , 'a' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , 'a' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT rtrim( '0' , 'a' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' , 'a' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT rtrim( 'a' , 'a' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'abc' , 'a' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , 'a' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT rtrim( 'value' , 'a' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT rtrim( '12345' , 'a' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT rtrim( 'something' , 'a' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( ' something' , 'a' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT rtrim( 'something ' , 'a' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT rtrim( '123456789' , 'a' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' , 'a' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , 'a' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , 'abc' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , 'abc' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT rtrim( '0' , 'abc' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' , 'abc' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT rtrim( 'a' , 'abc' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'abc' , 'abc' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( '123' , 'abc' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT rtrim( 'value' , 'abc' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT rtrim( '12345' , 'abc' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT rtrim( 'something' , 'abc' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( ' something' , 'abc' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT rtrim( 'something ' , 'abc' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT rtrim( '123456789' , 'abc' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' , 'abc' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , 'abc' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , '123' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , '123' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT rtrim( '0' , '123' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' , '123' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'a' , '123' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT rtrim( 'abc' , '123' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , '123' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'value' , '123' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT rtrim( '12345' , '123' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT rtrim( 'something' , '123' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( ' something' , '123' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT rtrim( 'something ' , '123' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT rtrim( '123456789' , '123' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' , '123' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , '123' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , 'value' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , 'value' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT rtrim( '0' , 'value' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' , 'value' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT rtrim( 'a' , 'value' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'abc' , 'value' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , 'value' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT rtrim( 'value' , 'value' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( '12345' , 'value' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT rtrim( 'something' , 'value' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( ' something' , 'value' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT rtrim( 'something ' , 'value' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT rtrim( '123456789' , 'value' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' , 'value' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , 'value' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , '12345' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , '12345' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT rtrim( '0' , '12345' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' , '12345' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'a' , '12345' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT rtrim( 'abc' , '12345' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , '12345' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'value' , '12345' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT rtrim( '12345' , '12345' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'something' , '12345' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( ' something' , '12345' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT rtrim( 'something ' , '12345' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT rtrim( '123456789' , '12345' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' , '12345' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , '12345' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , 'something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , 'something' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT rtrim( '0' , 'something' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' , 'something' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT rtrim( 'a' , 'something' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT rtrim( 'abc' , 'something' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , 'something' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT rtrim( 'value' , 'something' ) ;",
Expected: []sql.Row{{"valu"}},
},
{
Query: "SELECT rtrim( '12345' , 'something' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT rtrim( 'something' , 'something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' something' , 'something' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT rtrim( 'something ' , 'something' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT rtrim( '123456789' , 'something' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' , 'something' ) ;",
Expected: []sql.Row{{"a group of word"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , 'something' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( '0' , ' something' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' , ' something' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT rtrim( 'a' , ' something' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT rtrim( 'abc' , ' something' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , ' something' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT rtrim( 'value' , ' something' ) ;",
Expected: []sql.Row{{"valu"}},
},
{
Query: "SELECT rtrim( '12345' , ' something' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT rtrim( 'something' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' something' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'something ' , ' something' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( '123456789' , ' something' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' , ' something' ) ;",
Expected: []sql.Row{{"a group of word"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , ' something' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( '0' , 'something ' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' , 'something ' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT rtrim( 'a' , 'something ' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT rtrim( 'abc' , 'something ' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , 'something ' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT rtrim( 'value' , 'something ' ) ;",
Expected: []sql.Row{{"valu"}},
},
{
Query: "SELECT rtrim( '12345' , 'something ' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT rtrim( 'something' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' something' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'something ' , 'something ' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( '123456789' , 'something ' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' , 'something ' ) ;",
Expected: []sql.Row{{"a group of word"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , 'something ' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , '123456789' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT rtrim( '0' , '123456789' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'a' , '123456789' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT rtrim( 'abc' , '123456789' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'value' , '123456789' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT rtrim( '12345' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'something' , '123456789' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( ' something' , '123456789' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT rtrim( 'something ' , '123456789' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT rtrim( '123456789' , '123456789' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'a group of words' , '123456789' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , '123456789' ) ;",
Expected: []sql.Row{{"1234567890"}},
},
{
Query: "SELECT rtrim( '' , 'a group of words' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , 'a group of words' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( '0' , 'a group of words' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT rtrim( '1' , 'a group of words' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT rtrim( 'a' , 'a group of words' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'abc' , 'a group of words' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , 'a group of words' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT rtrim( 'value' , 'a group of words' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT rtrim( '12345' , 'a group of words' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT rtrim( 'something' , 'a group of words' ) ;",
Expected: []sql.Row{{"somethin"}},
},
{
Query: "SELECT rtrim( ' something' , 'a group of words' ) ;",
Expected: []sql.Row{{" somethin"}},
},
{
Query: "SELECT rtrim( 'something ' , 'a group of words' ) ;",
Expected: []sql.Row{{"somethin"}},
},
{
Query: "SELECT rtrim( '123456789' , 'a group of words' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT rtrim( 'a group of words' , 'a group of words' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( '1234567890123456' , 'a group of words' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
{
Query: "SELECT rtrim( '' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( ' ' , '1234567890123456' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT rtrim( '0' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( '1' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'a' , '1234567890123456' ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT rtrim( 'abc' , '1234567890123456' ) ;",
Expected: []sql.Row{{"abc"}},
},
{
Query: "SELECT rtrim( '123' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'value' , '1234567890123456' ) ;",
Expected: []sql.Row{{"value"}},
},
{
Query: "SELECT rtrim( '12345' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'something' , '1234567890123456' ) ;",
Expected: []sql.Row{{"something"}},
},
{
Query: "SELECT rtrim( ' something' , '1234567890123456' ) ;",
Expected: []sql.Row{{" something"}},
},
{
Query: "SELECT rtrim( 'something ' , '1234567890123456' ) ;",
Expected: []sql.Row{{"something "}},
},
{
Query: "SELECT rtrim( '123456789' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT rtrim( 'a group of words' , '1234567890123456' ) ;",
Expected: []sql.Row{{"a group of words"}},
},
{
Query: "SELECT rtrim( '1234567890123456' , '1234567890123456' ) ;",
Expected: []sql.Row{{""}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Scale(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "scale",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT scale( 0::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT scale( -1::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT scale( 1::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT scale( 2::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT scale( -2::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT scale( 5::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT scale( 10::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT scale( -10::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT scale( 1000::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT scale( 2105076::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT scale( 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{int32(34)}},
},
{
Query: "SELECT scale( -5184226581::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT scale( 8525267290::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT scale( -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT scale( 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{int32(0)}},
},
},
},
})
}
@@ -0,0 +1,85 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_SetConfig(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "set_config",
Assertions: []ScriptTestAssertion{
{
// non-namespaced, non-system settings result in an error: "unrecognized configuration parameter"
Query: "SELECT set_config('doesnotexist', '42', false);",
ExpectedErr: true,
},
{
Query: "SELECT set_config('', 'bar', false);",
ExpectedErr: true,
},
{
Query: "SELECT set_config(NULL, 'bar', false);",
ExpectedErr: true,
},
{
// Set a system config setting
Query: "SELECT set_config('search_path', '123', false);",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT current_setting('search_path');",
Expected: []sql.Row{{"123"}},
},
{
// Set a user config setting in a custom namespace
Query: "SELECT set_config('mynamespace.var', 'bar', false);",
Expected: []sql.Row{{"bar"}},
},
{
Query: "SELECT current_setting('mynamespace.var');",
Expected: []sql.Row{{"bar"}},
},
{
// Only text values are supported
Query: "SELECT set_config('myvars.boo', 3.14159, false);",
ExpectedErr: true,
},
{
// All settings must be text
Query: "SELECT set_config('myvars.boo', 3.14159::text, false);",
Expected: []sql.Row{{"3.14159"}},
},
{
Query: "SELECT current_setting('myvars.boo');",
Expected: []sql.Row{{"3.14159"}},
},
{
// A NULL value is turned into the empty string
Query: "SELECT set_config('myvars.nullval', NULL, false);",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT current_setting('myvars.nullval');",
Expected: []sql.Row{{""}},
},
},
},
})
}
@@ -0,0 +1,151 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Sign(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "sign",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT sign( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT sign( -1::float8 ) ;",
Expected: []sql.Row{{float64(-1.000000)}},
},
{
Query: "SELECT sign( 1::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT sign( 2::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT sign( -2::float8 ) ;",
Expected: []sql.Row{{float64(-1.000000)}},
},
{
Query: "SELECT sign( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT sign( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT sign( -10::float8 ) ;",
Expected: []sql.Row{{float64(-1.000000)}},
},
{
Query: "SELECT sign( 100::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT sign( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT sign( 100000::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT sign( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-1.000000)}},
},
{
Query: "SELECT sign( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT sign( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-1.000000)}},
},
{
Query: "SELECT sign( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT sign( 0::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT sign( -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT sign( 1::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT sign( 2::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT sign( -2::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT sign( 5::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT sign( 10::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT sign( -10::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT sign( 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT sign( 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT sign( 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT sign( -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT sign( 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT sign( -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT sign( 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Sin(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "sin",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT sin( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT sin( -1::float8 ) ;",
Expected: []sql.Row{{float64(-0.841471)}},
},
{
Query: "SELECT sin( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.841471)}},
},
{
Query: "SELECT sin( 2::float8 ) ;",
Expected: []sql.Row{{float64(0.909297)}},
},
{
Query: "SELECT sin( -2::float8 ) ;",
Expected: []sql.Row{{float64(-0.909297)}},
},
{
Query: "SELECT sin( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(-0.858934)}},
},
{
Query: "SELECT sin( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(-0.992126)}},
},
{
Query: "SELECT sin( -10::float8 ) ;",
Expected: []sql.Row{{float64(0.544021)}},
},
{
Query: "SELECT sin( 100::float8 ) ;",
Expected: []sql.Row{{float64(-0.506366)}},
},
{
Query: "SELECT sin( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.971711)}},
},
{
Query: "SELECT sin( 100000::float8 ) ;",
Expected: []sql.Row{{float64(0.035749)}},
},
{
Query: "SELECT sin( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-0.100392)}},
},
{
Query: "SELECT sin( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-0.847360)}},
},
{
Query: "SELECT sin( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(0.971310)}},
},
{
Query: "SELECT sin( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-0.985645)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Sind(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "sind",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT sind( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT sind( -1::float8 ) ;",
Expected: []sql.Row{{float64(-0.017452)}},
},
{
Query: "SELECT sind( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.017452)}},
},
{
Query: "SELECT sind( 2::float8 ) ;",
Expected: []sql.Row{{float64(0.034899)}},
},
{
Query: "SELECT sind( -2::float8 ) ;",
Expected: []sql.Row{{float64(-0.034899)}},
},
{
Query: "SELECT sind( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(0.091502)}},
},
{
Query: "SELECT sind( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(0.188581)}},
},
{
Query: "SELECT sind( -10::float8 ) ;",
Expected: []sql.Row{{float64(-0.173648)}},
},
{
Query: "SELECT sind( 100::float8 ) ;",
Expected: []sql.Row{{float64(0.984808)}},
},
{
Query: "SELECT sind( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(0.165392)}},
},
{
Query: "SELECT sind( 100000::float8 ) ;",
Expected: []sql.Row{{float64(-0.984808)}},
},
{
Query: "SELECT sind( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(0.866025)}},
},
{
Query: "SELECT sind( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-0.868450)}},
},
{
Query: "SELECT sind( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-0.788011)}},
},
{
Query: "SELECT sind( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(0.792394)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Sinh(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "sinh",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT sinh( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT sinh( -1::float8 ) ;",
Expected: []sql.Row{{float64(-1.175201)}},
},
{
Query: "SELECT sinh( 1::float8 ) ;",
Expected: []sql.Row{{float64(1.175201)}},
},
{
Query: "SELECT sinh( 2::float8 ) ;",
Expected: []sql.Row{{float64(3.626860)}},
},
{
Query: "SELECT sinh( -2::float8 ) ;",
Expected: []sql.Row{{float64(-3.626860)}},
},
{
Query: "SELECT sinh( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(95.280510)}},
},
{
Query: "SELECT sinh( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(26287.605126)}},
},
{
Query: "SELECT sinh( -10::float8 ) ;",
Expected: []sql.Row{{float64(-11013.232875)}},
},
{
Query: "SELECT sinh( 100::float8 ) ;",
Expected: []sql.Row{{float64(13440585709080678047126700217981451777343488.000000)}},
},
{
Query: "SELECT sinh( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(+Inf)}},
},
{
Query: "SELECT sinh( 100000::float8 ) ;",
Expected: []sql.Row{{float64(+Inf)}},
},
{
Query: "SELECT sinh( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-Inf)}},
},
{
Query: "SELECT sinh( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(+Inf)}},
},
{
Query: "SELECT sinh( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-Inf)}},
},
{
Query: "SELECT sinh( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(+Inf)}},
},
},
},
})
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,151 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Sqrt(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "sqrt",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT sqrt( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT sqrt( -1::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT sqrt( 1::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT sqrt( 2::float8 ) ;",
Expected: []sql.Row{{float64(1.414214)}},
},
{
Query: "SELECT sqrt( -2::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT sqrt( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(2.291288)}},
},
{
Query: "SELECT sqrt( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(3.296968)}},
},
{
Query: "SELECT sqrt( -10::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT sqrt( 100::float8 ) ;",
Expected: []sql.Row{{float64(10.000000)}},
},
{
Query: "SELECT sqrt( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(145.087835)}},
},
{
Query: "SELECT sqrt( 100000::float8 ) ;",
Expected: []sql.Row{{float64(316.227766)}},
},
{
Query: "SELECT sqrt( -1184280::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT sqrt( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(1589.113048)}},
},
{
Query: "SELECT sqrt( -2147483648::float8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT sqrt( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(46340.950007)}},
},
{
Query: "SELECT sqrt( 0::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT sqrt( -1::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT sqrt( 1::numeric ) ;",
Expected: []sql.Row{{Numeric("1.000000000000000")}},
},
{
Query: "SELECT sqrt( 2::numeric ) ;",
Expected: []sql.Row{{Numeric("1.414213562373095")}},
},
{
Query: "SELECT sqrt( -2::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT sqrt( 5::numeric ) ;",
Expected: []sql.Row{{Numeric("2.236067977499790")}},
},
{
Query: "SELECT sqrt( 10::numeric ) ;",
Expected: []sql.Row{{Numeric("3.162277660168379")}},
},
{
Query: "SELECT sqrt( -10::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT sqrt( 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("31.622776601683793")}},
},
{
Query: "SELECT sqrt( 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("1450.8880039479271")}},
},
{
Query: "SELECT sqrt( 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("10000.0000117293116104028950144216538400")}},
},
{
Query: "SELECT sqrt( -5184226581::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT sqrt( 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("92332.37400825346")}},
},
{
Query: "SELECT sqrt( -79223372036854775808::numeric ) ;",
ExpectedErr: true,
},
{
Query: "SELECT sqrt( 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("8900751206.3226874")}},
},
},
},
})
}
@@ -0,0 +1,931 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Strpos(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "strpos",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT strpos( '' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( ' ' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '0' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '1' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'a' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'abc' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '123' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'value' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '12345' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'something' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( ' something' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'something ' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '123456789' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'a group of words' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '1234567890123456' , '' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '' , ' ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , ' ' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '0' , ' ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1' , ' ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a' , ' ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'abc' , ' ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123' , ' ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'value' , ' ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '12345' , ' ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something' , ' ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' something' , ' ' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'something ' , ' ' ) ;",
Expected: []sql.Row{{int32(10)}},
},
{
Query: "SELECT strpos( '123456789' , ' ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a group of words' , ' ' ) ;",
Expected: []sql.Row{{int32(2)}},
},
{
Query: "SELECT strpos( '1234567890123456' , ' ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '' , '0' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , '0' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '0' , '0' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '1' , '0' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a' , '0' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'abc' , '0' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123' , '0' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'value' , '0' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '12345' , '0' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something' , '0' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' something' , '0' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something ' , '0' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123456789' , '0' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a group of words' , '0' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1234567890123456' , '0' ) ;",
Expected: []sql.Row{{int32(10)}},
},
{
Query: "SELECT strpos( '' , '1' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , '1' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '0' , '1' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1' , '1' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'a' , '1' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'abc' , '1' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123' , '1' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'value' , '1' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '12345' , '1' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'something' , '1' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' something' , '1' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something ' , '1' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123456789' , '1' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'a group of words' , '1' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1234567890123456' , '1' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '' , 'a' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , 'a' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '0' , 'a' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1' , 'a' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a' , 'a' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'abc' , 'a' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '123' , 'a' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'value' , 'a' ) ;",
Expected: []sql.Row{{int32(2)}},
},
{
Query: "SELECT strpos( '12345' , 'a' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something' , 'a' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' something' , 'a' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something ' , 'a' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123456789' , 'a' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a group of words' , 'a' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '1234567890123456' , 'a' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '0' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'abc' , 'abc' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '123' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'value' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '12345' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' something' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something ' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123456789' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a group of words' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1234567890123456' , 'abc' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '' , '123' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , '123' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '0' , '123' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1' , '123' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a' , '123' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'abc' , '123' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123' , '123' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'value' , '123' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '12345' , '123' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'something' , '123' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' something' , '123' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something ' , '123' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123456789' , '123' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'a group of words' , '123' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1234567890123456' , '123' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '0' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'abc' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'value' , 'value' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '12345' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' something' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something ' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123456789' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a group of words' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1234567890123456' , 'value' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '' , '12345' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , '12345' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '0' , '12345' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1' , '12345' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a' , '12345' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'abc' , '12345' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123' , '12345' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'value' , '12345' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '12345' , '12345' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'something' , '12345' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' something' , '12345' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something ' , '12345' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123456789' , '12345' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'a group of words' , '12345' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1234567890123456' , '12345' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '' , 'something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , 'something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '0' , 'something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1' , 'something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a' , 'something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'abc' , 'something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123' , 'something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'value' , 'something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '12345' , 'something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something' , 'something' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( ' something' , 'something' ) ;",
Expected: []sql.Row{{int32(2)}},
},
{
Query: "SELECT strpos( 'something ' , 'something' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '123456789' , 'something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a group of words' , 'something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1234567890123456' , 'something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '0' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'abc' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'value' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '12345' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' something' , ' something' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'something ' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123456789' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a group of words' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1234567890123456' , ' something' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '0' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'abc' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'value' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '12345' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' something' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something ' , 'something ' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '123456789' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a group of words' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1234567890123456' , 'something ' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '' , '123456789' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , '123456789' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '0' , '123456789' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1' , '123456789' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a' , '123456789' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'abc' , '123456789' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123' , '123456789' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'value' , '123456789' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '12345' , '123456789' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something' , '123456789' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' something' , '123456789' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something ' , '123456789' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123456789' , '123456789' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( 'a group of words' , '123456789' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1234567890123456' , '123456789' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '0' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'abc' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'value' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '12345' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' something' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something ' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123456789' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a group of words' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(1)}},
},
{
Query: "SELECT strpos( '1234567890123456' , 'a group of words' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' ' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '0' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'abc' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'value' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '12345' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( ' something' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'something ' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '123456789' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( 'a group of words' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(0)}},
},
{
Query: "SELECT strpos( '1234567890123456' , '1234567890123456' ) ;",
Expected: []sql.Row{{int32(1)}},
},
},
},
})
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Tan(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "tan",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT tan( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT tan( -1::float8 ) ;",
Expected: []sql.Row{{float64(-1.557408)}},
},
{
Query: "SELECT tan( 1::float8 ) ;",
Expected: []sql.Row{{float64(1.557408)}},
},
{
Query: "SELECT tan( 2::float8 ) ;",
Expected: []sql.Row{{float64(-2.185040)}},
},
{
Query: "SELECT tan( -2::float8 ) ;",
Expected: []sql.Row{{float64(2.185040)}},
},
{
Query: "SELECT tan( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(-1.677326)}},
},
{
Query: "SELECT tan( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(7.921512)}},
},
{
Query: "SELECT tan( -10::float8 ) ;",
Expected: []sql.Row{{float64(-0.648361)}},
},
{
Query: "SELECT tan( 100::float8 ) ;",
Expected: []sql.Row{{float64(-0.587214)}},
},
{
Query: "SELECT tan( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-4.114420)}},
},
{
Query: "SELECT tan( 100000::float8 ) ;",
Expected: []sql.Row{{float64(-0.035772)}},
},
{
Query: "SELECT tan( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-0.100902)}},
},
{
Query: "SELECT tan( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(-1.595725)}},
},
{
Query: "SELECT tan( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(4.084289)}},
},
{
Query: "SELECT tan( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(5.838073)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Tand(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "tand",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT tand( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT tand( -1::float8 ) ;",
Expected: []sql.Row{{float64(-0.017455)}},
},
{
Query: "SELECT tand( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.017455)}},
},
{
Query: "SELECT tand( 2::float8 ) ;",
Expected: []sql.Row{{float64(0.034921)}},
},
{
Query: "SELECT tand( -2::float8 ) ;",
Expected: []sql.Row{{float64(-0.034921)}},
},
{
Query: "SELECT tand( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(0.091887)}},
},
{
Query: "SELECT tand( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(0.192027)}},
},
{
Query: "SELECT tand( -10::float8 ) ;",
Expected: []sql.Row{{float64(-0.176327)}},
},
{
Query: "SELECT tand( 100::float8 ) ;",
Expected: []sql.Row{{float64(-5.671282)}},
},
{
Query: "SELECT tand( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(-0.167701)}},
},
{
Query: "SELECT tand( 100000::float8 ) ;",
Expected: []sql.Row{{float64(-5.671282)}},
},
{
Query: "SELECT tand( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-1.732051)}},
},
{
Query: "SELECT tand( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(1.751695)}},
},
{
Query: "SELECT tand( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(1.279942)}},
},
{
Query: "SELECT tand( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(-1.298984)}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Tanh(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "tanh",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT tanh( 0::float8 ) ;",
Expected: []sql.Row{{float64(0.000000)}},
},
{
Query: "SELECT tanh( -1::float8 ) ;",
Expected: []sql.Row{{float64(-0.761594)}},
},
{
Query: "SELECT tanh( 1::float8 ) ;",
Expected: []sql.Row{{float64(0.761594)}},
},
{
Query: "SELECT tanh( 2::float8 ) ;",
Expected: []sql.Row{{float64(0.964028)}},
},
{
Query: "SELECT tanh( -2::float8 ) ;",
Expected: []sql.Row{{float64(-0.964028)}},
},
{
Query: "SELECT tanh( 5.25::float8 ) ;",
Expected: []sql.Row{{float64(0.999945)}},
},
{
Query: "SELECT tanh( 10.87::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT tanh( -10::float8 ) ;",
Expected: []sql.Row{{float64(-1.000000)}},
},
{
Query: "SELECT tanh( 100::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT tanh( 21050.48::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT tanh( 100000::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT tanh( -1184280::float8 ) ;",
Expected: []sql.Row{{float64(-1.000000)}},
},
{
Query: "SELECT tanh( 2525280.279::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
{
Query: "SELECT tanh( -2147483648::float8 ) ;",
Expected: []sql.Row{{float64(-1.000000)}},
},
{
Query: "SELECT tanh( 2147483647.59024::float8 ) ;",
Expected: []sql.Row{{float64(1.000000)}},
},
},
},
})
}
@@ -0,0 +1,37 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_ToChar(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "to_char",
Assertions: []ScriptTestAssertion{
{
Query: `SELECT to_char(timestamp '2021-09-15 21:43:56.123456789', 'YYYY-MM-DD HH24:MI:SS.MS');`,
Expected: []sql.Row{
{"2021-09-15 21:43:56.123"},
},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_ToHex(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "to_hex",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT to_hex( 0::int8 ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT to_hex( -1::int8 ) ;",
Expected: []sql.Row{{"ffffffffffffffff"}},
},
{
Query: "SELECT to_hex( 1::int8 ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT to_hex( 2::int8 ) ;",
Expected: []sql.Row{{"2"}},
},
{
Query: "SELECT to_hex( -2::int8 ) ;",
Expected: []sql.Row{{"fffffffffffffffe"}},
},
{
Query: "SELECT to_hex( 5::int8 ) ;",
Expected: []sql.Row{{"5"}},
},
{
Query: "SELECT to_hex( 10::int8 ) ;",
Expected: []sql.Row{{"a"}},
},
{
Query: "SELECT to_hex( -10::int8 ) ;",
Expected: []sql.Row{{"fffffffffffffff6"}},
},
{
Query: "SELECT to_hex( 1000::int8 ) ;",
Expected: []sql.Row{{"3e8"}},
},
{
Query: "SELECT to_hex( 2105076::int8 ) ;",
Expected: []sql.Row{{"201ef4"}},
},
{
Query: "SELECT to_hex( 100000000::int8 ) ;",
Expected: []sql.Row{{"5f5e100"}},
},
{
Query: "SELECT to_hex( -5184226581::int8 ) ;",
Expected: []sql.Row{{"fffffffecafefaeb"}},
},
{
Query: "SELECT to_hex( 8525267290::int8 ) ;",
Expected: []sql.Row{{"1fc25415a"}},
},
{
Query: "SELECT to_hex( -9223372036854775808::int8 ) ;",
ExpectedErr: true,
},
{
Query: "SELECT to_hex( 9223372036854775807::int8 ) ;",
Expected: []sql.Row{{"7fffffffffffffff"}},
},
},
},
})
}
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_TrimScale(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "trim_scale",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT trim_scale( 0::numeric ) ;",
Expected: []sql.Row{{Numeric("0")}},
},
{
Query: "SELECT trim_scale( -1::numeric ) ;",
Expected: []sql.Row{{Numeric("-1")}},
},
{
Query: "SELECT trim_scale( 1::numeric ) ;",
Expected: []sql.Row{{Numeric("1")}},
},
{
Query: "SELECT trim_scale( 2::numeric ) ;",
Expected: []sql.Row{{Numeric("2")}},
},
{
Query: "SELECT trim_scale( -2::numeric ) ;",
Expected: []sql.Row{{Numeric("-2")}},
},
{
Query: "SELECT trim_scale( 5::numeric ) ;",
Expected: []sql.Row{{Numeric("5")}},
},
{
Query: "SELECT trim_scale( 10::numeric ) ;",
Expected: []sql.Row{{Numeric("10")}},
},
{
Query: "SELECT trim_scale( -10::numeric ) ;",
Expected: []sql.Row{{Numeric("-10")}},
},
{
Query: "SELECT trim_scale( 1000::numeric ) ;",
Expected: []sql.Row{{Numeric("1000")}},
},
{
Query: "SELECT trim_scale( 2105076::numeric ) ;",
Expected: []sql.Row{{Numeric("2105076")}},
},
{
Query: "SELECT trim_scale( 100000000.2345862323456346511423652312416532::numeric ) ;",
Expected: []sql.Row{{Numeric("100000000.2345862323456346511423652312416532")}},
},
{
Query: "SELECT trim_scale( -5184226581::numeric ) ;",
Expected: []sql.Row{{Numeric("-5184226581")}},
},
{
Query: "SELECT trim_scale( 8525267290::numeric ) ;",
Expected: []sql.Row{{Numeric("8525267290")}},
},
{
Query: "SELECT trim_scale( -79223372036854775808::numeric ) ;",
Expected: []sql.Row{{Numeric("-79223372036854775808")}},
},
{
Query: "SELECT trim_scale( 79223372036854775807::numeric ) ;",
Expected: []sql.Row{{Numeric("79223372036854775807")}},
},
},
},
})
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,91 @@
// Copyright 2024 Dolthub, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package output
import (
"testing"
"github.com/dolthub/go-mysql-server/sql"
)
func Test_Upper(t *testing.T) {
RunScripts(t, []ScriptTest{
{
Name: "upper",
Assertions: []ScriptTestAssertion{
{
Query: "SELECT upper( '' ) ;",
Expected: []sql.Row{{""}},
},
{
Query: "SELECT upper( ' ' ) ;",
Expected: []sql.Row{{" "}},
},
{
Query: "SELECT upper( '0' ) ;",
Expected: []sql.Row{{"0"}},
},
{
Query: "SELECT upper( '1' ) ;",
Expected: []sql.Row{{"1"}},
},
{
Query: "SELECT upper( 'a' ) ;",
Expected: []sql.Row{{"A"}},
},
{
Query: "SELECT upper( 'abc' ) ;",
Expected: []sql.Row{{"ABC"}},
},
{
Query: "SELECT upper( '123' ) ;",
Expected: []sql.Row{{"123"}},
},
{
Query: "SELECT upper( 'value' ) ;",
Expected: []sql.Row{{"VALUE"}},
},
{
Query: "SELECT upper( '12345' ) ;",
Expected: []sql.Row{{"12345"}},
},
{
Query: "SELECT upper( 'something' ) ;",
Expected: []sql.Row{{"SOMETHING"}},
},
{
Query: "SELECT upper( ' something' ) ;",
Expected: []sql.Row{{" SOMETHING"}},
},
{
Query: "SELECT upper( 'something ' ) ;",
Expected: []sql.Row{{"SOMETHING "}},
},
{
Query: "SELECT upper( '123456789' ) ;",
Expected: []sql.Row{{"123456789"}},
},
{
Query: "SELECT upper( 'a group of words' ) ;",
Expected: []sql.Row{{"A GROUP OF WORDS"}},
},
{
Query: "SELECT upper( '1234567890123456' ) ;",
Expected: []sql.Row{{"1234567890123456"}},
},
},
},
})
}
File diff suppressed because it is too large Load Diff