diff --git a/src/datatypes/src/vectors/decimal.rs b/src/datatypes/src/vectors/decimal.rs index acdf0aadd734..cce26e3e3e14 100644 --- a/src/datatypes/src/vectors/decimal.rs +++ b/src/datatypes/src/vectors/decimal.rs @@ -387,6 +387,43 @@ impl Decimal128VectorBuilder { vectors::impl_try_from_arrow_array_for_vector!(Decimal128Array, Decimal128Vector); +pub(crate) fn replicate_decimal128( + vector: &Decimal128Vector, + offsets: &[usize], +) -> Decimal128Vector { + assert_eq!(offsets.len(), vector.len()); + + if offsets.is_empty() { + return vector.get_slice(0, 0); + } + + // Safety: safe to unwrap because we the vector ensures precision and scale are valid. + let mut builder = Decimal128VectorBuilder::with_capacity(*offsets.last().unwrap()) + .with_precision_and_scale(vector.precision(), vector.scale()) + .unwrap(); + + let mut previous_offset = 0; + + for (offset, value) in offsets.iter().zip(vector.array.iter()) { + let repeat_times = *offset - previous_offset; + match value { + Some(data) => { + unsafe { + // Safety: std::iter::Repeat and std::iter::Take implement TrustedLen. + builder + .mutable_array + .append_trusted_len_iter(std::iter::repeat(data).take(repeat_times)); + } + } + None => { + builder.mutable_array.append_nulls(repeat_times); + } + } + previous_offset = *offset; + } + builder.finish() +} + #[cfg(test)] pub mod tests { use arrow_array::Decimal128Array; diff --git a/src/datatypes/src/vectors/operations.rs b/src/datatypes/src/vectors/operations.rs index 418dd2c14c72..ce0e48b317e3 100644 --- a/src/datatypes/src/vectors/operations.rs +++ b/src/datatypes/src/vectors/operations.rs @@ -114,13 +114,30 @@ macro_rules! impl_scalar_vector_op { )+}; } -impl_scalar_vector_op!( - BinaryVector, - BooleanVector, - ListVector, - StringVector, - Decimal128Vector -); +impl_scalar_vector_op!(BinaryVector, BooleanVector, ListVector, StringVector); + +impl VectorOp for Decimal128Vector { + fn replicate(&self, offsets: &[usize]) -> VectorRef { + std::sync::Arc::new(replicate::replicate_decimal128(self, offsets)) + } + + fn find_unique(&self, selected: &mut BitVec, prev_vector: Option<&dyn Vector>) { + let prev_vector = prev_vector.and_then(|pv| pv.as_any().downcast_ref::()); + find_unique::find_unique_scalar(self, selected, prev_vector); + } + + fn filter(&self, filter: &BooleanVector) -> Result { + filter::filter_non_constant!(self, Decimal128Vector, filter) + } + + fn cast(&self, to_type: &ConcreteDataType) -> Result { + cast::cast_non_constant!(self, to_type) + } + + fn take(&self, indices: &UInt32Vector) -> Result { + take::take_indices!(self, Decimal128Vector, indices) + } +} impl VectorOp for PrimitiveVector { fn replicate(&self, offsets: &[usize]) -> VectorRef { diff --git a/src/datatypes/src/vectors/operations/replicate.rs b/src/datatypes/src/vectors/operations/replicate.rs index e10923f34919..bc8937e34a06 100644 --- a/src/datatypes/src/vectors/operations/replicate.rs +++ b/src/datatypes/src/vectors/operations/replicate.rs @@ -13,6 +13,7 @@ // limitations under the License. use crate::prelude::*; +pub(crate) use crate::vectors::decimal::replicate_decimal128; pub(crate) use crate::vectors::null::replicate_null; pub(crate) use crate::vectors::primitive::replicate_primitive; @@ -45,7 +46,7 @@ mod tests { use super::*; use crate::vectors::constant::ConstantVector; - use crate::vectors::{Int32Vector, NullVector, StringVector, VectorOp}; + use crate::vectors::{Decimal128Vector, Int32Vector, NullVector, StringVector, VectorOp}; #[test] fn test_replicate_primitive() { @@ -167,4 +168,23 @@ mod tests { impl_replicate_timestamp_test!(Microsecond); impl_replicate_timestamp_test!(Nanosecond); } + + #[test] + fn test_replicate_decimal() { + let data = vec![100]; + // create a decimal vector + let v = Decimal128Vector::from_values(data.clone()) + .with_precision_and_scale(10, 2) + .unwrap(); + let offsets = [5]; + let v = v.replicate(&offsets); + assert_eq!(5, v.len()); + + let expect: VectorRef = Arc::new( + Decimal128Vector::from_values(vec![100; 5]) + .with_precision_and_scale(10, 2) + .unwrap(), + ); + assert_eq!(expect, v); + } } diff --git a/tests/cases/standalone/common/types/decimal/decimal_table.result b/tests/cases/standalone/common/types/decimal/decimal_table.result index 03f04182a003..321451b8ac8c 100644 --- a/tests/cases/standalone/common/types/decimal/decimal_table.result +++ b/tests/cases/standalone/common/types/decimal/decimal_table.result @@ -58,3 +58,385 @@ DROP TABLE decimals; Affected Rows: 0 +CREATE TABLE IF NOT EXISTS `all_types` ( + `c_serial` DECIMAL(20,0) NOT NULL, + `c_bit` TINYINT NOT NULL, + `b1` INT NULL, + `c_tinyint` SMALLINT NOT NULL, + `c_tinyint_u` INT NOT NULL, + `c_tinyint_z` INT NOT NULL, + `c_tinyint_u_z` INT NOT NULL, + `c_tinyint_n` SMALLINT NOT NULL, + `c_tinyint_n_n` INT NOT NULL, + `c_tinyint_n_z` INT NOT NULL, + `c_tinyint_n_u_z` INT NOT NULL, + `c_bool` SMALLINT NOT NULL, + `c_boolean` SMALLINT NOT NULL, + `c_smallint` SMALLINT NOT NULL, + `c_smallint_u` INT NOT NULL, + `c_smallint_z` INT NOT NULL, + `c_smallint_u_z` INT NOT NULL, + `c_smallint_n` SMALLINT NOT NULL, + `c_smallint_n_n` INT NOT NULL, + `c_smallint_n_z` INT NOT NULL, + `c_smallint_n_u_z` INT NOT NULL, + `c_mediumint` INT NOT NULL, + `c_mediumint_u` BIGINT NOT NULL, + `c_mediumint_z` BIGINT NOT NULL, + `c_mediumint_u_z` BIGINT NOT NULL, + `c_mediumint_n` INT NOT NULL, + `c_mediumint_n_n` BIGINT NOT NULL, + `c_mediumint_n_z` BIGINT NOT NULL, + `c_mediumint_n_u_z` BIGINT NOT NULL, + `c_int` INT NOT NULL, + `c_int_u` BIGINT NOT NULL, + `c_int_z` BIGINT NULL, + `c_int_u_z` BIGINT NULL, + `c_int_n` INT NOT NULL, + `c_int_n_n` BIGINT NOT NULL, + `c_int_n_z` BIGINT NULL, + `c_int_n_u_z` BIGINT NULL, + `c_integer` INT NOT NULL, + `c_integer_u` BIGINT NOT NULL, + `c_integer_z` BIGINT NULL, + `c_integer_u_z` BIGINT NULL, + `c_integer_n` INT NOT NULL, + `c_integer_n_n` BIGINT NOT NULL, + `c_integer_n_z` BIGINT NULL, + `c_integer_n_u_z` BIGINT NULL, + `c_bigint` BIGINT NOT NULL, + `c_bigint_u` DECIMAL(20,0) NOT NULL, + `c_bigint_z` DECIMAL(20,0) NULL, + `c_bigint_u_z` DECIMAL(20,0) NULL, + `c_bigint_n` BIGINT NOT NULL, + `c_bigint_n_n` DECIMAL(20,0) NOT NULL, + `c_bigint_n_z` DECIMAL(20,0) NULL, + `c_bigint_n_u_z` DECIMAL(20,0) NULL, + `c_decimal` DECIMAL(10,0) NOT NULL, + `c_decimal_u` DECIMAL(10,0) NOT NULL, + `c_decimal_z` DECIMAL(10,0) NULL, + `c_decimal_u_z` DECIMAL(10,0) NULL, + `c_decimal_n` DECIMAL(10,0) NOT NULL, + `c_decimal_n_u` DECIMAL(10,0) NOT NULL, + `c_decimal_n_z` DECIMAL(10,0) NOT NULL, + `c_decimal_n_u_z` DECIMAL(10,0) NULL, + `c_decimal_n_n` DECIMAL(10,3) NOT NULL, + `c_decimal_n_n_u` DECIMAL(10,3) NOT NULL, + `c_decimal_n_n_z` DECIMAL(10,3) NULL, + `c_decimal_n_n_u_z` DECIMAL(10,3) NULL, + `c_dec` DECIMAL(10,0) NOT NULL, + `c_dec_u` DECIMAL(10,0) NOT NULL, + `c_dec_z` DECIMAL(10,0) NULL, + `c_dec_u_z` DECIMAL(10,0) NULL, + `c_dec_n` DECIMAL(10,0) NOT NULL, + `c_dec_n_u` DECIMAL(10,0) NOT NULL, + `c_dec_n_z` DECIMAL(10,0) NULL, + `c_dec_n_u_z` DECIMAL(10,0) NULL, + `c_dec_n_n` DECIMAL(10,3) NOT NULL, + `c_dec_n_n_u` DECIMAL(10,3) NOT NULL, + `c_dec_n_n_z` DECIMAL(10,3) NULL, + `c_dec_n_n_u_z` DECIMAL(10,3) NULL, + `c_numeric` DECIMAL(10,0) NOT NULL, + `c_numeric_u` DECIMAL(10,0) NOT NULL, + `c_numeric_z` DECIMAL(10,0) NULL, + `c_numeric_u_z` DECIMAL(10,0) NULL, + `c_numeric_n` DECIMAL(10,0) NOT NULL, + `c_numeric_n_u` DECIMAL(10,0) NOT NULL, + `c_numeric_n_z` DECIMAL(10,0) NULL, + `c_numeric_n_u_z` DECIMAL(10,0) NULL, + `c_numeric_n_n` DECIMAL(10,3) NOT NULL, + `c_numeric_n_n_u` DECIMAL(10,3) NOT NULL, + `c_numeric_n_n_z` DECIMAL(10,3) NULL, + `c_numeric_n_n_u_z` DECIMAL(10,3) NULL, + `c_fixed` DECIMAL(10,0) NOT NULL, + `c_fixed_u` DECIMAL(10,0) NOT NULL, + `c_fixed_z` DECIMAL(10,0) NULL, + `c_fixed_u_z` DECIMAL(10,0) NULL, + `c_fixed_n` DECIMAL(10,0) NOT NULL, + `c_fixed_n_u` DECIMAL(10,0) NOT NULL, + `c_fixed_n_z` DECIMAL(10,0) NULL, + `c_fixed_n_u_z` DECIMAL(10,0) NULL, + `c_fixed_n_n` DECIMAL(10,3) NOT NULL, + `c_fixed_n_n_u` DECIMAL(10,3) NOT NULL, + `c_fixed_n_n_z` DECIMAL(10,3) NULL, + `c_fixed_n_n_u_z` DECIMAL(10,3) NULL, + `c_float` DECIMAL(12,0) NOT NULL, + `c_float_u` DECIMAL(12,0) NOT NULL, + `c_float_z` DECIMAL(12,0) NULL, + `c_float_u_z` DECIMAL(12,0) NULL, + `c_float_n` DECIMAL(12,0) NOT NULL, + `c_float_n_u` DECIMAL(12,0) NOT NULL, + `c_float_n_z` DECIMAL(12,0) NULL, + `c_float_n_u_z` DECIMAL(12,0) NULL, + `c_float_n_n` DECIMAL(12,0) NOT NULL, + `c_float_n_n_u` DECIMAL(12,0) NOT NULL, + `c_float_n_n_z` DECIMAL(12,0) NULL, + `c_float_n_n_u_z` DECIMAL(12,0) NULL, + `c_double` DECIMAL(22,0) NOT NULL, + `c_double_u` DECIMAL(22,0) NOT NULL, + `c_double_z` DECIMAL(22,0) NULL, + `c_double_u_z` DECIMAL(22,0) NULL, + `c_double_n_n` DECIMAL(22,0) NOT NULL, + `c_double_n_n_u` DECIMAL(22,0) NOT NULL, + `c_double_n_n_z` DECIMAL(22,0) NULL, + `c_double_n_n_u_z` DECIMAL(22,0) NULL, + `c_double_precision` DECIMAL(22,0) NOT NULL, + `c_double_precision_u` DECIMAL(22,0) NOT NULL, + `c_double_precision_z` DECIMAL(22,0) NULL, + `c_double_precision_u_z` DECIMAL(22,0) NULL, + `c_double_precision_n_n` DECIMAL(22,0) NOT NULL, + `c_double_precision_n_n_u` DECIMAL(22,0) NOT NULL, + `c_double_precision_n_n_z` DECIMAL(22,0) NULL, + `c_double_precision_n_n_u_z` DECIMAL(22,0) NULL, + `c_real` DECIMAL(22,0) NOT NULL, + `c_real_u` DECIMAL(22,0) NOT NULL, + `c_real_z` DECIMAL(22,0) NULL, + `c_real_u_z` DECIMAL(22,0) NULL, + `c_real_n_n` DECIMAL(22,0) NOT NULL, + `c_real_n_n_u` DECIMAL(22,0) NOT NULL, + `c_real_n_n_z` DECIMAL(22,0) NULL, + `c_real_n_n_u_z` DECIMAL(22,0) NULL, + `c_date` DATE NOT NULL, + `c_datetime` DATETIME NOT NULL, + `c_datetime_n` DATETIME NOT NULL, + `c_timestamp` DATETIME NOT NULL, + `c_timestamp_n` DATETIME NULL, + `c_time` STRING NOT NULL, + `c_time_n` STRING NOT NULL, + `c_year` INT NOT NULL, + `c_year_n` INT NOT NULL, + `c_char` STRING NOT NULL, + `c_char_n` STRING NOT NULL, + `c_character` STRING NOT NULL, + `c_character_n` STRING NOT NULL, + `c_nchar` STRING NOT NULL, + `c_nchar_n` STRING NOT NULL, + `c_national_char` STRING NOT NULL, + `c_national_char_n` STRING NOT NULL, + `c_varchar` STRING NOT NULL, + `c_character_varying` STRING NOT NULL, + `c_long_varchar` STRING NOT NULL, + `c_nvarchar` STRING NOT NULL, + `c_national_varchar` STRING NOT NULL, + `c_national_character_varying` STRING NOT NULL, + `c_tinytext` STRING NOT NULL, + `c_text` STRING NOT NULL, + `c_text_n` STRING NOT NULL, + `c_mediumtext` STRING NOT NULL, + `c_longtext` STRING NOT NULL, + `c_long` STRING NOT NULL, + `c_enum` STRING NULL, + `c_set` STRING NULL, + `c_bit1` TINYINT NULL, + `a1` STRING NULL, + `m1` TIMESTAMP(3) NOT NULL, + TIME INDEX (`m1`), + PRIMARY KEY (`c_serial`) +); + +Affected Rows: 0 + +INSERT INTO all_types VALUES ( + 123456.987654431, + 1, + 100, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1.123, + 1.123, + 1.123, + 1.123, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1.123, + 1.123, + 1.123, + 1.123, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1.123, + 1.123, + 1.123, + 1.123, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1.123, + 1.123, + 1.123, + 1.123, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + '2024-01-01', + '2024-01-01 12:00:00', + '2024-01-01 12:00:00', + '2024-01-01 12:00:00', + '2024-01-01 12:00:00', + '12:00:00', + '12:00:00', + 2024, + 2024, + 'A', + 'A', + 'A', + 'A', + 'A', + 'A', + 'A', + 'A', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'value1', + 'value1', + 1, + 'ABC', + '2024-01-01 12:00:00.000' +); + +Affected Rows: 1 + +SELECT * FROM public."all_types" ORDER BY m1 DESC LIMIT 100; + ++----------+-------+-----+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+--------+-----------+------------+--------------+--------------+----------------+--------------+----------------+----------------+------------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+-------+---------+---------+-----------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+----------+------------+------------+--------------+------------+--------------+--------------+----------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+-------+---------+---------+-----------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+----------+------------+------------+--------------+--------------+----------------+----------------+------------------+--------------------+----------------------+----------------------+------------------------+------------------------+--------------------------+--------------------------+----------------------------+--------+----------+----------+------------+------------+--------------+--------------+----------------+------------+---------------------+---------------------+---------------------+---------------------+----------+----------+--------+----------+--------+----------+-------------+---------------+---------+-----------+-----------------+-------------------+-----------+---------------------+----------------+------------+--------------------+------------------------------+------------+--------+----------+--------------+------------+--------+--------+--------+--------+-----+---------------------+ +| c_serial | c_bit | b1 | c_tinyint | c_tinyint_u | c_tinyint_z | c_tinyint_u_z | c_tinyint_n | c_tinyint_n_n | c_tinyint_n_z | c_tinyint_n_u_z | c_bool | c_boolean | c_smallint | c_smallint_u | c_smallint_z | c_smallint_u_z | c_smallint_n | c_smallint_n_n | c_smallint_n_z | c_smallint_n_u_z | c_mediumint | c_mediumint_u | c_mediumint_z | c_mediumint_u_z | c_mediumint_n | c_mediumint_n_n | c_mediumint_n_z | c_mediumint_n_u_z | c_int | c_int_u | c_int_z | c_int_u_z | c_int_n | c_int_n_n | c_int_n_z | c_int_n_u_z | c_integer | c_integer_u | c_integer_z | c_integer_u_z | c_integer_n | c_integer_n_n | c_integer_n_z | c_integer_n_u_z | c_bigint | c_bigint_u | c_bigint_z | c_bigint_u_z | c_bigint_n | c_bigint_n_n | c_bigint_n_z | c_bigint_n_u_z | c_decimal | c_decimal_u | c_decimal_z | c_decimal_u_z | c_decimal_n | c_decimal_n_u | c_decimal_n_z | c_decimal_n_u_z | c_decimal_n_n | c_decimal_n_n_u | c_decimal_n_n_z | c_decimal_n_n_u_z | c_dec | c_dec_u | c_dec_z | c_dec_u_z | c_dec_n | c_dec_n_u | c_dec_n_z | c_dec_n_u_z | c_dec_n_n | c_dec_n_n_u | c_dec_n_n_z | c_dec_n_n_u_z | c_numeric | c_numeric_u | c_numeric_z | c_numeric_u_z | c_numeric_n | c_numeric_n_u | c_numeric_n_z | c_numeric_n_u_z | c_numeric_n_n | c_numeric_n_n_u | c_numeric_n_n_z | c_numeric_n_n_u_z | c_fixed | c_fixed_u | c_fixed_z | c_fixed_u_z | c_fixed_n | c_fixed_n_u | c_fixed_n_z | c_fixed_n_u_z | c_fixed_n_n | c_fixed_n_n_u | c_fixed_n_n_z | c_fixed_n_n_u_z | c_float | c_float_u | c_float_z | c_float_u_z | c_float_n | c_float_n_u | c_float_n_z | c_float_n_u_z | c_float_n_n | c_float_n_n_u | c_float_n_n_z | c_float_n_n_u_z | c_double | c_double_u | c_double_z | c_double_u_z | c_double_n_n | c_double_n_n_u | c_double_n_n_z | c_double_n_n_u_z | c_double_precision | c_double_precision_u | c_double_precision_z | c_double_precision_u_z | c_double_precision_n_n | c_double_precision_n_n_u | c_double_precision_n_n_z | c_double_precision_n_n_u_z | c_real | c_real_u | c_real_z | c_real_u_z | c_real_n_n | c_real_n_n_u | c_real_n_n_z | c_real_n_n_u_z | c_date | c_datetime | c_datetime_n | c_timestamp | c_timestamp_n | c_time | c_time_n | c_year | c_year_n | c_char | c_char_n | c_character | c_character_n | c_nchar | c_nchar_n | c_national_char | c_national_char_n | c_varchar | c_character_varying | c_long_varchar | c_nvarchar | c_national_varchar | c_national_character_varying | c_tinytext | c_text | c_text_n | c_mediumtext | c_longtext | c_long | c_enum | c_set | c_bit1 | a1 | m1 | ++----------+-------+-----+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+--------+-----------+------------+--------------+--------------+----------------+--------------+----------------+----------------+------------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+-------+---------+---------+-----------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+----------+------------+------------+--------------+------------+--------------+--------------+----------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+-------+---------+---------+-----------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+----------+------------+------------+--------------+--------------+----------------+----------------+------------------+--------------------+----------------------+----------------------+------------------------+------------------------+--------------------------+--------------------------+----------------------------+--------+----------+----------+------------+------------+--------------+--------------+----------------+------------+---------------------+---------------------+---------------------+---------------------+----------+----------+--------+----------+--------+----------+-------------+---------------+---------+-----------+-----------------+-------------------+-----------+---------------------+----------------+------------+--------------------+------------------------------+------------+--------+----------+--------------+------------+--------+--------+--------+--------+-----+---------------------+ +| 123457 | 1 | 100 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1.123 | 1.123 | 1.123 | 1.123 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1.123 | 1.123 | 1.123 | 1.123 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1.123 | 1.123 | 1.123 | 1.123 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1.123 | 1.123 | 1.123 | 1.123 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2024-01-01 | 2024-01-01T12:00:00 | 2024-01-01T12:00:00 | 2024-01-01T12:00:00 | 2024-01-01T12:00:00 | 12:00:00 | 12:00:00 | 2024 | 2024 | A | A | A | A | A | A | A | A | ABC | ABC | ABC | ABC | ABC | ABC | ABC | ABC | ABC | ABC | ABC | ABC | value1 | value1 | 1 | ABC | 2024-01-01T12:00:00 | ++----------+-------+-----+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+--------+-----------+------------+--------------+--------------+----------------+--------------+----------------+----------------+------------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+-------+---------+---------+-----------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+----------+------------+------------+--------------+------------+--------------+--------------+----------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+-------+---------+---------+-----------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+----------+------------+------------+--------------+--------------+----------------+----------------+------------------+--------------------+----------------------+----------------------+------------------------+------------------------+--------------------------+--------------------------+----------------------------+--------+----------+----------+------------+------------+--------------+--------------+----------------+------------+---------------------+---------------------+---------------------+---------------------+----------+----------+--------+----------+--------+----------+-------------+---------------+---------+-----------+-----------------+-------------------+-----------+---------------------+----------------+------------+--------------------+------------------------------+------------+--------+----------+--------------+------------+--------+--------+--------+--------+-----+---------------------+ + +ADMIN flush_table('all_types'); + ++--------------------------------+ +| ADMIN flush_table('all_types') | ++--------------------------------+ +| 0 | ++--------------------------------+ + +SELECT * FROM public."all_types" ORDER BY m1 DESC LIMIT 100; + ++----------+-------+-----+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+--------+-----------+------------+--------------+--------------+----------------+--------------+----------------+----------------+------------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+-------+---------+---------+-----------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+----------+------------+------------+--------------+------------+--------------+--------------+----------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+-------+---------+---------+-----------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+----------+------------+------------+--------------+--------------+----------------+----------------+------------------+--------------------+----------------------+----------------------+------------------------+------------------------+--------------------------+--------------------------+----------------------------+--------+----------+----------+------------+------------+--------------+--------------+----------------+------------+---------------------+---------------------+---------------------+---------------------+----------+----------+--------+----------+--------+----------+-------------+---------------+---------+-----------+-----------------+-------------------+-----------+---------------------+----------------+------------+--------------------+------------------------------+------------+--------+----------+--------------+------------+--------+--------+--------+--------+-----+---------------------+ +| c_serial | c_bit | b1 | c_tinyint | c_tinyint_u | c_tinyint_z | c_tinyint_u_z | c_tinyint_n | c_tinyint_n_n | c_tinyint_n_z | c_tinyint_n_u_z | c_bool | c_boolean | c_smallint | c_smallint_u | c_smallint_z | c_smallint_u_z | c_smallint_n | c_smallint_n_n | c_smallint_n_z | c_smallint_n_u_z | c_mediumint | c_mediumint_u | c_mediumint_z | c_mediumint_u_z | c_mediumint_n | c_mediumint_n_n | c_mediumint_n_z | c_mediumint_n_u_z | c_int | c_int_u | c_int_z | c_int_u_z | c_int_n | c_int_n_n | c_int_n_z | c_int_n_u_z | c_integer | c_integer_u | c_integer_z | c_integer_u_z | c_integer_n | c_integer_n_n | c_integer_n_z | c_integer_n_u_z | c_bigint | c_bigint_u | c_bigint_z | c_bigint_u_z | c_bigint_n | c_bigint_n_n | c_bigint_n_z | c_bigint_n_u_z | c_decimal | c_decimal_u | c_decimal_z | c_decimal_u_z | c_decimal_n | c_decimal_n_u | c_decimal_n_z | c_decimal_n_u_z | c_decimal_n_n | c_decimal_n_n_u | c_decimal_n_n_z | c_decimal_n_n_u_z | c_dec | c_dec_u | c_dec_z | c_dec_u_z | c_dec_n | c_dec_n_u | c_dec_n_z | c_dec_n_u_z | c_dec_n_n | c_dec_n_n_u | c_dec_n_n_z | c_dec_n_n_u_z | c_numeric | c_numeric_u | c_numeric_z | c_numeric_u_z | c_numeric_n | c_numeric_n_u | c_numeric_n_z | c_numeric_n_u_z | c_numeric_n_n | c_numeric_n_n_u | c_numeric_n_n_z | c_numeric_n_n_u_z | c_fixed | c_fixed_u | c_fixed_z | c_fixed_u_z | c_fixed_n | c_fixed_n_u | c_fixed_n_z | c_fixed_n_u_z | c_fixed_n_n | c_fixed_n_n_u | c_fixed_n_n_z | c_fixed_n_n_u_z | c_float | c_float_u | c_float_z | c_float_u_z | c_float_n | c_float_n_u | c_float_n_z | c_float_n_u_z | c_float_n_n | c_float_n_n_u | c_float_n_n_z | c_float_n_n_u_z | c_double | c_double_u | c_double_z | c_double_u_z | c_double_n_n | c_double_n_n_u | c_double_n_n_z | c_double_n_n_u_z | c_double_precision | c_double_precision_u | c_double_precision_z | c_double_precision_u_z | c_double_precision_n_n | c_double_precision_n_n_u | c_double_precision_n_n_z | c_double_precision_n_n_u_z | c_real | c_real_u | c_real_z | c_real_u_z | c_real_n_n | c_real_n_n_u | c_real_n_n_z | c_real_n_n_u_z | c_date | c_datetime | c_datetime_n | c_timestamp | c_timestamp_n | c_time | c_time_n | c_year | c_year_n | c_char | c_char_n | c_character | c_character_n | c_nchar | c_nchar_n | c_national_char | c_national_char_n | c_varchar | c_character_varying | c_long_varchar | c_nvarchar | c_national_varchar | c_national_character_varying | c_tinytext | c_text | c_text_n | c_mediumtext | c_longtext | c_long | c_enum | c_set | c_bit1 | a1 | m1 | ++----------+-------+-----+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+--------+-----------+------------+--------------+--------------+----------------+--------------+----------------+----------------+------------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+-------+---------+---------+-----------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+----------+------------+------------+--------------+------------+--------------+--------------+----------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+-------+---------+---------+-----------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+----------+------------+------------+--------------+--------------+----------------+----------------+------------------+--------------------+----------------------+----------------------+------------------------+------------------------+--------------------------+--------------------------+----------------------------+--------+----------+----------+------------+------------+--------------+--------------+----------------+------------+---------------------+---------------------+---------------------+---------------------+----------+----------+--------+----------+--------+----------+-------------+---------------+---------+-----------+-----------------+-------------------+-----------+---------------------+----------------+------------+--------------------+------------------------------+------------+--------+----------+--------------+------------+--------+--------+--------+--------+-----+---------------------+ +| 123457 | 1 | 100 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1.123 | 1.123 | 1.123 | 1.123 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1.123 | 1.123 | 1.123 | 1.123 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1.123 | 1.123 | 1.123 | 1.123 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1.123 | 1.123 | 1.123 | 1.123 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2024-01-01 | 2024-01-01T00:00:00 | 2024-01-01T00:00:00 | 2024-01-01T00:00:00 | 2024-01-01T00:00:00 | 12:00:00 | 12:00:00 | 2024 | 2024 | A | A | A | A | A | A | A | A | ABC | ABC | ABC | ABC | ABC | ABC | ABC | ABC | ABC | ABC | ABC | ABC | value1 | value1 | 1 | ABC | 2024-01-01T12:00:00 | ++----------+-------+-----+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+--------+-----------+------------+--------------+--------------+----------------+--------------+----------------+----------------+------------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+-------+---------+---------+-----------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+----------+------------+------------+--------------+------------+--------------+--------------+----------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+-------+---------+---------+-----------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------------+-----------------+-----------------+-------------------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+---------+-----------+-----------+-------------+-----------+-------------+-------------+---------------+-------------+---------------+---------------+-----------------+----------+------------+------------+--------------+--------------+----------------+----------------+------------------+--------------------+----------------------+----------------------+------------------------+------------------------+--------------------------+--------------------------+----------------------------+--------+----------+----------+------------+------------+--------------+--------------+----------------+------------+---------------------+---------------------+---------------------+---------------------+----------+----------+--------+----------+--------+----------+-------------+---------------+---------+-----------+-----------------+-------------------+-----------+---------------------+----------------+------------+--------------------+------------------------------+------------+--------+----------+--------------+------------+--------+--------+--------+--------+-----+---------------------+ + +DROP TABLE all_types; + +Affected Rows: 0 + diff --git a/tests/cases/standalone/common/types/decimal/decimal_table.sql b/tests/cases/standalone/common/types/decimal/decimal_table.sql index 6d854d4e1991..60400e3bcd6f 100644 --- a/tests/cases/standalone/common/types/decimal/decimal_table.sql +++ b/tests/cases/standalone/common/types/decimal/decimal_table.sql @@ -15,3 +15,361 @@ SELECT 1 * d FROM decimals; SELECT 2 * d FROM decimals; DROP TABLE decimals; + +CREATE TABLE IF NOT EXISTS `all_types` ( + `c_serial` DECIMAL(20,0) NOT NULL, + `c_bit` TINYINT NOT NULL, + `b1` INT NULL, + `c_tinyint` SMALLINT NOT NULL, + `c_tinyint_u` INT NOT NULL, + `c_tinyint_z` INT NOT NULL, + `c_tinyint_u_z` INT NOT NULL, + `c_tinyint_n` SMALLINT NOT NULL, + `c_tinyint_n_n` INT NOT NULL, + `c_tinyint_n_z` INT NOT NULL, + `c_tinyint_n_u_z` INT NOT NULL, + `c_bool` SMALLINT NOT NULL, + `c_boolean` SMALLINT NOT NULL, + `c_smallint` SMALLINT NOT NULL, + `c_smallint_u` INT NOT NULL, + `c_smallint_z` INT NOT NULL, + `c_smallint_u_z` INT NOT NULL, + `c_smallint_n` SMALLINT NOT NULL, + `c_smallint_n_n` INT NOT NULL, + `c_smallint_n_z` INT NOT NULL, + `c_smallint_n_u_z` INT NOT NULL, + `c_mediumint` INT NOT NULL, + `c_mediumint_u` BIGINT NOT NULL, + `c_mediumint_z` BIGINT NOT NULL, + `c_mediumint_u_z` BIGINT NOT NULL, + `c_mediumint_n` INT NOT NULL, + `c_mediumint_n_n` BIGINT NOT NULL, + `c_mediumint_n_z` BIGINT NOT NULL, + `c_mediumint_n_u_z` BIGINT NOT NULL, + `c_int` INT NOT NULL, + `c_int_u` BIGINT NOT NULL, + `c_int_z` BIGINT NULL, + `c_int_u_z` BIGINT NULL, + `c_int_n` INT NOT NULL, + `c_int_n_n` BIGINT NOT NULL, + `c_int_n_z` BIGINT NULL, + `c_int_n_u_z` BIGINT NULL, + `c_integer` INT NOT NULL, + `c_integer_u` BIGINT NOT NULL, + `c_integer_z` BIGINT NULL, + `c_integer_u_z` BIGINT NULL, + `c_integer_n` INT NOT NULL, + `c_integer_n_n` BIGINT NOT NULL, + `c_integer_n_z` BIGINT NULL, + `c_integer_n_u_z` BIGINT NULL, + `c_bigint` BIGINT NOT NULL, + `c_bigint_u` DECIMAL(20,0) NOT NULL, + `c_bigint_z` DECIMAL(20,0) NULL, + `c_bigint_u_z` DECIMAL(20,0) NULL, + `c_bigint_n` BIGINT NOT NULL, + `c_bigint_n_n` DECIMAL(20,0) NOT NULL, + `c_bigint_n_z` DECIMAL(20,0) NULL, + `c_bigint_n_u_z` DECIMAL(20,0) NULL, + `c_decimal` DECIMAL(10,0) NOT NULL, + `c_decimal_u` DECIMAL(10,0) NOT NULL, + `c_decimal_z` DECIMAL(10,0) NULL, + `c_decimal_u_z` DECIMAL(10,0) NULL, + `c_decimal_n` DECIMAL(10,0) NOT NULL, + `c_decimal_n_u` DECIMAL(10,0) NOT NULL, + `c_decimal_n_z` DECIMAL(10,0) NOT NULL, + `c_decimal_n_u_z` DECIMAL(10,0) NULL, + `c_decimal_n_n` DECIMAL(10,3) NOT NULL, + `c_decimal_n_n_u` DECIMAL(10,3) NOT NULL, + `c_decimal_n_n_z` DECIMAL(10,3) NULL, + `c_decimal_n_n_u_z` DECIMAL(10,3) NULL, + `c_dec` DECIMAL(10,0) NOT NULL, + `c_dec_u` DECIMAL(10,0) NOT NULL, + `c_dec_z` DECIMAL(10,0) NULL, + `c_dec_u_z` DECIMAL(10,0) NULL, + `c_dec_n` DECIMAL(10,0) NOT NULL, + `c_dec_n_u` DECIMAL(10,0) NOT NULL, + `c_dec_n_z` DECIMAL(10,0) NULL, + `c_dec_n_u_z` DECIMAL(10,0) NULL, + `c_dec_n_n` DECIMAL(10,3) NOT NULL, + `c_dec_n_n_u` DECIMAL(10,3) NOT NULL, + `c_dec_n_n_z` DECIMAL(10,3) NULL, + `c_dec_n_n_u_z` DECIMAL(10,3) NULL, + `c_numeric` DECIMAL(10,0) NOT NULL, + `c_numeric_u` DECIMAL(10,0) NOT NULL, + `c_numeric_z` DECIMAL(10,0) NULL, + `c_numeric_u_z` DECIMAL(10,0) NULL, + `c_numeric_n` DECIMAL(10,0) NOT NULL, + `c_numeric_n_u` DECIMAL(10,0) NOT NULL, + `c_numeric_n_z` DECIMAL(10,0) NULL, + `c_numeric_n_u_z` DECIMAL(10,0) NULL, + `c_numeric_n_n` DECIMAL(10,3) NOT NULL, + `c_numeric_n_n_u` DECIMAL(10,3) NOT NULL, + `c_numeric_n_n_z` DECIMAL(10,3) NULL, + `c_numeric_n_n_u_z` DECIMAL(10,3) NULL, + `c_fixed` DECIMAL(10,0) NOT NULL, + `c_fixed_u` DECIMAL(10,0) NOT NULL, + `c_fixed_z` DECIMAL(10,0) NULL, + `c_fixed_u_z` DECIMAL(10,0) NULL, + `c_fixed_n` DECIMAL(10,0) NOT NULL, + `c_fixed_n_u` DECIMAL(10,0) NOT NULL, + `c_fixed_n_z` DECIMAL(10,0) NULL, + `c_fixed_n_u_z` DECIMAL(10,0) NULL, + `c_fixed_n_n` DECIMAL(10,3) NOT NULL, + `c_fixed_n_n_u` DECIMAL(10,3) NOT NULL, + `c_fixed_n_n_z` DECIMAL(10,3) NULL, + `c_fixed_n_n_u_z` DECIMAL(10,3) NULL, + `c_float` DECIMAL(12,0) NOT NULL, + `c_float_u` DECIMAL(12,0) NOT NULL, + `c_float_z` DECIMAL(12,0) NULL, + `c_float_u_z` DECIMAL(12,0) NULL, + `c_float_n` DECIMAL(12,0) NOT NULL, + `c_float_n_u` DECIMAL(12,0) NOT NULL, + `c_float_n_z` DECIMAL(12,0) NULL, + `c_float_n_u_z` DECIMAL(12,0) NULL, + `c_float_n_n` DECIMAL(12,0) NOT NULL, + `c_float_n_n_u` DECIMAL(12,0) NOT NULL, + `c_float_n_n_z` DECIMAL(12,0) NULL, + `c_float_n_n_u_z` DECIMAL(12,0) NULL, + `c_double` DECIMAL(22,0) NOT NULL, + `c_double_u` DECIMAL(22,0) NOT NULL, + `c_double_z` DECIMAL(22,0) NULL, + `c_double_u_z` DECIMAL(22,0) NULL, + `c_double_n_n` DECIMAL(22,0) NOT NULL, + `c_double_n_n_u` DECIMAL(22,0) NOT NULL, + `c_double_n_n_z` DECIMAL(22,0) NULL, + `c_double_n_n_u_z` DECIMAL(22,0) NULL, + `c_double_precision` DECIMAL(22,0) NOT NULL, + `c_double_precision_u` DECIMAL(22,0) NOT NULL, + `c_double_precision_z` DECIMAL(22,0) NULL, + `c_double_precision_u_z` DECIMAL(22,0) NULL, + `c_double_precision_n_n` DECIMAL(22,0) NOT NULL, + `c_double_precision_n_n_u` DECIMAL(22,0) NOT NULL, + `c_double_precision_n_n_z` DECIMAL(22,0) NULL, + `c_double_precision_n_n_u_z` DECIMAL(22,0) NULL, + `c_real` DECIMAL(22,0) NOT NULL, + `c_real_u` DECIMAL(22,0) NOT NULL, + `c_real_z` DECIMAL(22,0) NULL, + `c_real_u_z` DECIMAL(22,0) NULL, + `c_real_n_n` DECIMAL(22,0) NOT NULL, + `c_real_n_n_u` DECIMAL(22,0) NOT NULL, + `c_real_n_n_z` DECIMAL(22,0) NULL, + `c_real_n_n_u_z` DECIMAL(22,0) NULL, + `c_date` DATE NOT NULL, + `c_datetime` DATETIME NOT NULL, + `c_datetime_n` DATETIME NOT NULL, + `c_timestamp` DATETIME NOT NULL, + `c_timestamp_n` DATETIME NULL, + `c_time` STRING NOT NULL, + `c_time_n` STRING NOT NULL, + `c_year` INT NOT NULL, + `c_year_n` INT NOT NULL, + `c_char` STRING NOT NULL, + `c_char_n` STRING NOT NULL, + `c_character` STRING NOT NULL, + `c_character_n` STRING NOT NULL, + `c_nchar` STRING NOT NULL, + `c_nchar_n` STRING NOT NULL, + `c_national_char` STRING NOT NULL, + `c_national_char_n` STRING NOT NULL, + `c_varchar` STRING NOT NULL, + `c_character_varying` STRING NOT NULL, + `c_long_varchar` STRING NOT NULL, + `c_nvarchar` STRING NOT NULL, + `c_national_varchar` STRING NOT NULL, + `c_national_character_varying` STRING NOT NULL, + `c_tinytext` STRING NOT NULL, + `c_text` STRING NOT NULL, + `c_text_n` STRING NOT NULL, + `c_mediumtext` STRING NOT NULL, + `c_longtext` STRING NOT NULL, + `c_long` STRING NOT NULL, + `c_enum` STRING NULL, + `c_set` STRING NULL, + `c_bit1` TINYINT NULL, + `a1` STRING NULL, + `m1` TIMESTAMP(3) NOT NULL, + TIME INDEX (`m1`), + PRIMARY KEY (`c_serial`) +); + +INSERT INTO all_types VALUES ( + 123456.987654431, + 1, + 100, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1.123, + 1.123, + 1.123, + 1.123, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1.123, + 1.123, + 1.123, + 1.123, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1.123, + 1.123, + 1.123, + 1.123, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1.123, + 1.123, + 1.123, + 1.123, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + '2024-01-01', + '2024-01-01 12:00:00', + '2024-01-01 12:00:00', + '2024-01-01 12:00:00', + '2024-01-01 12:00:00', + '12:00:00', + '12:00:00', + 2024, + 2024, + 'A', + 'A', + 'A', + 'A', + 'A', + 'A', + 'A', + 'A', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'ABC', + 'value1', + 'value1', + 1, + 'ABC', + '2024-01-01 12:00:00.000' +); + +SELECT * FROM public."all_types" ORDER BY m1 DESC LIMIT 100; + +ADMIN flush_table('all_types'); + +SELECT * FROM public."all_types" ORDER BY m1 DESC LIMIT 100; + +DROP TABLE all_types;