From cc43f257bfe318a5f93ca336728c13443aba6c7f Mon Sep 17 00:00:00 2001 From: Jakub Martin Date: Sat, 15 Oct 2022 12:02:10 +0200 Subject: [PATCH] Add boolean to int conversion function. --- functions/functions.go | 12 ++++++++++++ tests/scenarios/functions/conversions.err | 0 tests/scenarios/functions/conversions.in | 1 + tests/scenarios/functions/conversions.out | 5 +++++ 4 files changed, 18 insertions(+) create mode 100644 tests/scenarios/functions/conversions.err create mode 100644 tests/scenarios/functions/conversions.in create mode 100644 tests/scenarios/functions/conversions.out diff --git a/functions/functions.go b/functions/functions.go index 5480b2fe..fa70d728 100644 --- a/functions/functions.go +++ b/functions/functions.go @@ -910,6 +910,18 @@ func FunctionMap() map[string]physical.FunctionDetails { return values[0], nil }, }, + { + ArgumentTypes: []octosql.Type{octosql.Boolean}, + OutputType: octosql.Int, + Strict: true, + Function: func(values []octosql.Value) (octosql.Value, error) { + if values[0].Boolean { + return octosql.NewInt(1), nil + } else { + return octosql.NewInt(0), nil + } + }, + }, { ArgumentTypes: []octosql.Type{octosql.Float}, OutputType: octosql.Int, diff --git a/tests/scenarios/functions/conversions.err b/tests/scenarios/functions/conversions.err new file mode 100644 index 00000000..e69de29b diff --git a/tests/scenarios/functions/conversions.in b/tests/scenarios/functions/conversions.in new file mode 100644 index 00000000..47aa8189 --- /dev/null +++ b/tests/scenarios/functions/conversions.in @@ -0,0 +1 @@ +octosql "SELECT int(true), int(false)" diff --git a/tests/scenarios/functions/conversions.out b/tests/scenarios/functions/conversions.out new file mode 100644 index 00000000..1535499d --- /dev/null +++ b/tests/scenarios/functions/conversions.out @@ -0,0 +1,5 @@ ++-------+-------+ +| col_0 | col_1 | ++-------+-------+ +| 1 | 0 | ++-------+-------+