//===----------------------------------------------------------------------===//
//                         DuckDB
//
// function/scalar/variant_functions.hpp
//
//
//===----------------------------------------------------------------------===//
// This file is automatically generated by scripts/generate_functions.py
// Do not edit this file manually, your changes will be overwritten
//===----------------------------------------------------------------------===//

#pragma once

#include "duckdb/function/function_set.hpp"

namespace duckdb {

struct VariantExtractFun {
	static constexpr const char *Name = "variant_extract";
	static constexpr const char *Parameters = "input_variant::VARIANT,field::VARCHAR\001input_variant::VARIANT,index::UINTEGER";
	static constexpr const char *Description = "Returns the `field` from the `input_variant` if it's an OBJECT.\001Returns the entry at `index` from the `input_variant` if it's an ARRAY.";
	static constexpr const char *Example = "variant_extract({'a': 42, 'b': [1,2,3])::VARIANT, 'b')\001variant_extract([1,2,3])::VARIANT, 0)";
	static constexpr const char *Categories = "variant\001variant";

	static ScalarFunctionSet GetFunctions();
};

struct VariantNormalizeFun {
	static constexpr const char *Name = "variant_normalize";
	static constexpr const char *Parameters = "input_variant";
	static constexpr const char *Description = "Normalizes the `input_variant` to a canonical representation.";
	static constexpr const char *Example = "variant_normalize({'b': [1,2,3], 'a': 42})::VARIANT)";
	static constexpr const char *Categories = "variant";

	static ScalarFunction GetFunction();
};

struct VariantTypeofFun {
	static constexpr const char *Name = "variant_typeof";
	static constexpr const char *Parameters = "input_variant";
	static constexpr const char *Description = "Returns the internal type of the `input_variant`.";
	static constexpr const char *Example = "variant_typeof({'a': 42, 'b': [1,2,3]})::VARIANT)";
	static constexpr const char *Categories = "variant";

	static ScalarFunction GetFunction();
};

} // namespace duckdb
