CREATE TABLE decimal_table(num decimal(5, 2));

prepst#!#INSERT INTO decimal_table(num) VALUES(@a) #!#decimal|-|a|-|3|-|5|-|2
prepst#!#exec#!#decimal|-|a|-|123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a|-|123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a|-|123|-|5|-|2
prepst#!#exec#!#decimal|-|a|-|123.45|-|5|-|2
prepst#!#exec#!#decimal|-|a|-|<NULL>|-|5|-|2
prepst#!#exec#!#decimal|-|a|-|-123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a|-|-123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a|-|-123|-|5|-|2
#prepst#!#exec#!#decimal|-|a|-|0|-|5|-|2
prepst#!#exec#!#decimal|-|a|-|-1|-|3|-|2
prepst#!#exec#!#decimal|-|a|-|-123|-|9|-|2

SELECT * FROM decimal_table;

DROP TABLE decimal_table;

CREATE TABLE decimal_table(num decimal(38, 3));

prepst#!#INSERT INTO decimal_table(num) VALUES(@a1) #!#decimal|-|a1|-|3|-|5|-|2
prepst#!#exec#!#decimal|-|a1|-|123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a1|-|123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a1|-|123|-|5|-|2
prepst#!#exec#!#decimal|-|a1|-|123.45|-|5|-|2
prepst#!#exec#!#decimal|-|a1|-|<NULL>|-|5|-|2
prepst#!#exec#!#decimal|-|a1|-|-123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a1|-|-123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a1|-|-123|-|5|-|2
#prepst#!#exec#!#decimal|-|a1|-|0|-|5|-|2
prepst#!#exec#!#decimal|-|a1|-|-1|-|3|-|2
prepst#!#exec#!#decimal|-|a1|-|-123|-|9|-|2

# Should generate "Error converting data type numeric to decimal" (BABEL-510)
#prepst#!#exec#!#decimal|-|a1|-|2147483647|-|10|-|0
#prepst#!#exec#!#decimal|-|a1|-|-2147483647|-|10|-|0
#prepst#!#exec#!#decimal|-|a1|-|2147483646|-|10|-|0
#prepst#!#exec#!#decimal|-|a1|-|-2147483646|-|10|-|0
#prepst#!#exec#!#decimal|-|a1|-|2147483648|-|10|-|0
#prepst#!#exec#!#decimal|-|a1|-|-2147483648|-|10|-|0

SELECT * FROM decimal_table;

DROP TABLE decimal_table;

# JIRA 507, WORKING FOR BABEL
#CREATE TABLE decimal_table(num decimal(39, 20));

CREATE TABLE decimal_table(num decimal(38, 20));

prepst#!#INSERT INTO decimal_table(num) VALUES(@a2) #!#decimal|-|a2|-|3|-|5|-|2
prepst#!#exec#!#decimal|-|a2|-|123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a2|-|123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a2|-|123|-|5|-|2
prepst#!#exec#!#decimal|-|a2|-|123.45|-|5|-|2
prepst#!#exec#!#decimal|-|a2|-|<NULL>|-|5|-|2
prepst#!#exec#!#decimal|-|a2|-|-123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a2|-|-123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a2|-|-123|-|5|-|2
#prepst#!#exec#!#decimal|-|a2|-|0|-|5|-|2
prepst#!#exec#!#decimal|-|a2|-|-1|-|3|-|2
prepst#!#exec#!#decimal|-|a2|-|-123|-|9|-|2
#prepst#!#exec#!#decimal|-|a2|-| 2147483647|-|10|-|0
SELECT * FROM decimal_table;

DROP TABLE decimal_table;

CREATE TABLE decimal_table(num decimal(38, 20));
prepst#!#INSERT INTO decimal_table(num) VALUES(@a3) #!#decimal|-|a3|-|3|-|5|-|2
prepst#!#exec#!#decimal|-|a3|-|123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a3|-|123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a3|-|123|-|5|-|2
prepst#!#exec#!#decimal|-|a3|-|123.45|-|5|-|2
prepst#!#exec#!#decimal|-|a3|-|<NULL>|-|5|-|2
prepst#!#exec#!#decimal|-|a3|-|-123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a3|-|-123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a3|-|-123|-|5|-|2
#prepst#!#exec#!#decimal|-|a3|-|0|-|5|-|2
prepst#!#exec#!#decimal|-|a3|-|-1|-|3|-|2
prepst#!#exec#!#decimal|-|a3|-|-123|-|9|-|2
#prepst#!#exec#!#decimal|-|a3|-| 2147483647|-|10|-|0
SELECT * FROM decimal_table;

DROP TABLE decimal_table;

CREATE TABLE decimal_table(num decimal(38, 21));
prepst#!#INSERT INTO decimal_table(num) VALUES(@a4) #!#decimal|-|a4|-|3|-|5|-|2
prepst#!#exec#!#decimal|-|a4|-|123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a4|-|123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a4|-|123|-|5|-|2
prepst#!#exec#!#decimal|-|a4|-|123.45|-|5|-|2
prepst#!#exec#!#decimal|-|a4|-|<NULL>|-|5|-|2
prepst#!#exec#!#decimal|-|a4|-|-123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a4|-|-123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a4|-|-123|-|5|-|2
#prepst#!#exec#!#decimal|-|a4|-|0|-|5|-|2
prepst#!#exec#!#decimal|-|a4|-|-1|-|3|-|2
prepst#!#exec#!#decimal|-|a4|-|-123|-|9|-|2
#prepst#!#exec#!#decimal|-|a4|-| 2147483647|-|10|-|0
SELECT * FROM decimal_table;

DROP TABLE decimal_table;

CREATE TABLE decimal_table(num decimal(38, 22));
prepst#!#INSERT INTO decimal_table(num) VALUES(@a5) #!#decimal|-|a5|-|3|-|5|-|2
prepst#!#exec#!#decimal|-|a5|-|123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a5|-|123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a5|-|123|-|5|-|2
prepst#!#exec#!#decimal|-|a5|-|123.45|-|5|-|2
prepst#!#exec#!#decimal|-|a5|-|<NULL>|-|5|-|2
prepst#!#exec#!#decimal|-|a5|-|-123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a5|-|-123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a5|-|-123|-|5|-|2
#prepst#!#exec#!#decimal|-|a5|-|0|-|5|-|2
prepst#!#exec#!#decimal|-|a5|-|-1|-|3|-|2
prepst#!#exec#!#decimal|-|a5|-|-123|-|9|-|2
#prepst#!#exec#!#decimal|-|a5|-| 2147483647|-|10|-|0
SELECT * FROM decimal_table;

DROP TABLE decimal_table;

CREATE TABLE decimal_table(num decimal(38, 23));
prepst#!#INSERT INTO decimal_table(num) VALUES(@a6) #!#decimal|-|a6|-|3|-|5|-|2
prepst#!#exec#!#decimal|-|a6|-|123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a6|-|123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a6|-|123|-|5|-|2
prepst#!#exec#!#decimal|-|a6|-|123.45|-|5|-|2
prepst#!#exec#!#decimal|-|a6|-|<NULL>|-|5|-|2
prepst#!#exec#!#decimal|-|a6|-|-123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a6|-|-123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a6|-|-123|-|5|-|2
#prepst#!#exec#!#decimal|-|a6|-|0|-|5|-|2
prepst#!#exec#!#decimal|-|a6|-|-1|-|3|-|2
prepst#!#exec#!#decimal|-|a6|-|-123|-|9|-|2
#prepst#!#exec#!#decimal|-|a6|-| 2147483647|-|10|-|0
SELECT * FROM decimal_table;

DROP TABLE decimal_table;

CREATE TABLE decimal_table(num decimal(38, 25));
prepst#!#INSERT INTO decimal_table(num) VALUES(@a7) #!#decimal|-|a7|-|3|-|5|-|2
prepst#!#exec#!#decimal|-|a7|-|123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a7|-|123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a7|-|123|-|5|-|2
prepst#!#exec#!#decimal|-|a7|-|123.45|-|5|-|2
prepst#!#exec#!#decimal|-|a7|-|<NULL>|-|5|-|2
prepst#!#exec#!#decimal|-|a7|-|-123.456|-|5|-|2
prepst#!#exec#!#decimal|-|a7|-|-123.4|-|5|-|2
prepst#!#exec#!#decimal|-|a7|-|-123|-|5|-|2
#prepst#!#exec#!#decimal|-|a7|-|0|-|5|-|2
prepst#!#exec#!#decimal|-|a7|-|-1|-|3|-|2
prepst#!#exec#!#decimal|-|a7|-|-123|-|9|-|2
#prepst#!#exec#!#decimal|-|a7|-| 247483647|-|10|-|0
#prepst#!#exec#!#decimal|-|a7|-|-247483647|-|10|-|0
SELECT * FROM decimal_table;

DROP TABLE decimal_table;
