create schema db_cast;
set current_schema to 'db_cast';
select cast('$2'::money as unsigned);
 uint8 
-------
 2
(1 row)

select cast(cast('$2'::money as unsigned) as money);
 money 
-------
 $2.00
(1 row)

select current_timestamp;
  current_timestamp  
---------------------
--?.*
(1 row)

select cast('2022-11-10 18:03:20'::timestamp as unsigned);
     uint8      
----------------
 20221111020320
(1 row)

select cast(current_timestamp::timestamp as unsigned);
 current_timestamp 
-------------------
--?.*
(1 row)

select cast(cast('2022-11-10 18:03:20'::timestamp as unsigned) as timestamp);
      timestamptz       
------------------------
 2022-11-11 02:03:20-08
(1 row)

SELECT CAST('test' AS CHAR CHARACTER SET utf8);
 varchar 
---------
 test
(1 row)

SELECT CAST('test' AS CHAR CHARACTER SET not_exist);
WARNING:  not_exist is not a valid encoding name. default value set
 varchar 
---------
 test
(1 row)

SELECT CAST('test' AS nchar CHARACTER SET not_exist);
WARNING:  not_exist is not a valid encoding name. default value set
 varchar 
---------
 test
(1 row)

select 2.5::float::int16;
 int16 
-------
     3
(1 row)

select 2.4::float::int16;
 int16 
-------
     2
(1 row)

select 2.4::double::int16;
 int16 
-------
     2
(1 row)

select 2.5::double::int16;
 int16 
-------
     3
(1 row)

set dolphin.b_compatibility_mode to on;
select CAST(9/2 as char);
      varchar       
--------------------
 4.5000000000000000
(1 row)

select CAST('0.12000' AS CHAR);
 varchar 
---------
 0.12000
(1 row)

select CAST('1.203010' AS CHAR);
 varchar  
----------
 1.203010
(1 row)

select CAST('-0.20' AS CHAR);
 varchar 
---------
 -0.20
(1 row)

select CAST(2.090 AS char);
 varchar 
---------
 2.090
(1 row)

select CAST('2.090'::float AS char);
 varchar 
---------
 2.09
(1 row)

select CAST('4.100000'::double precision AS char);
 varchar 
---------
 4.1
(1 row)

select CAST(-6.40100 as char);
 varchar  
----------
 -6.40100
(1 row)

select 0+CAST(9/2 as char);
 ?column? 
----------
      4.5
(1 row)

SELECT 0+CAST('0.12000' AS CHAR),0+CAST('1.203010' AS CHAR),0+CAST('-0.20' AS CHAR);
 ?column? | ?column? | ?column? 
----------+----------+----------
     0.12 |  1.20301 |     -0.2
(1 row)

SELECT (0 + CAST(2.090 AS char))/2;
 ?column? 
----------
    1.045
(1 row)

SELECT (0 + CAST('2.090'::float AS char))/2;
 ?column? 
----------
    1.045
(1 row)

SELECT (0 + CAST('4.100000'::double precision AS char))/2;
 ?column? 
----------
     2.05
(1 row)

select 0+CAST(-6.40100 as char) as res;
  res   
--------
 -6.401
(1 row)

CREATE TABLE data_bytea( c1 bytea);
INSERT INTO data_bytea values('a'::varchar);
INSERT INTO data_bytea values(null::varchar);
set bytea_output=hex;
select * from data_bytea;
  c1  
------
 \x61
 
(2 rows)

set bytea_output=escape;
select * from data_bytea;
 c1 
----
 a
 
(2 rows)

drop table data_bytea;
drop schema db_cast cascade;
reset current_schema;