Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions src/backend/postgres/table.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,10 @@ impl TableBuilder for PostgresQueryBuilder {
},
ColumnType::Text => sql.write_str("text"),
ColumnType::TinyInteger | ColumnType::TinyUnsigned => sql.write_str("smallint"),
ColumnType::SmallInteger | ColumnType::SmallUnsigned => sql.write_str("smallint"),
ColumnType::Integer | ColumnType::Unsigned => sql.write_str("integer"),
ColumnType::BigInteger | ColumnType::BigUnsigned => sql.write_str("bigint"),
ColumnType::SmallInteger => sql.write_str("smallint"),
ColumnType::Integer | ColumnType::SmallUnsigned => sql.write_str("integer"),
ColumnType::BigInteger | ColumnType::Unsigned => sql.write_str("bigint"),
ColumnType::BigUnsigned => sql.write_str("numeric"),
ColumnType::Float => sql.write_str("real"),
ColumnType::Double => sql.write_str("double precision"),
ColumnType::Decimal(precision) => match precision {
Expand Down
6 changes: 3 additions & 3 deletions src/table/column.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ impl From<&mut ColumnDef> for ColumnDef {
/// | Integer | int | integer | integer |
/// | BigInteger | bigint | bigint | integer |
/// | TinyUnsigned | tinyint unsigned | smallint | tinyint |
/// | SmallUnsigned | smallint unsigned | smallint | smallint |
/// | Unsigned | int unsigned | integer | integer |
/// | BigUnsigned | bigint unsigned | bigint | integer |
/// | SmallUnsigned | smallint unsigned | integer | smallint |
/// | Unsigned | int unsigned | bigint | integer |
/// | BigUnsigned | bigint unsigned | numeric | integer |
/// | Float | float | real | float |
/// | Double | double | double precision | double |
/// | Decimal | decimal | decimal | real(A, B) |
Expand Down
8 changes: 4 additions & 4 deletions tests/postgres/table.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ fn create_3() {
r#""id" integer GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY,"#,
r#""font_size" integer NOT NULL,"#,
r#""character" varchar(255) NOT NULL,"#,
r#""size_w" integer NOT NULL,"#,
r#""size_h" integer NOT NULL,"#,
r#""size_w" bigint NOT NULL,"#,
r#""size_h" bigint NOT NULL,"#,
r#""font_id" integer DEFAULT NULL,"#,
r#"CONSTRAINT "FK_2e303c3a712662f1fc2a4d0aad6""#,
r#"FOREIGN KEY ("font_id") REFERENCES "font" ("id")"#,
Expand Down Expand Up @@ -731,8 +731,8 @@ fn create_19() {
r#""id" integer GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY,"#,
r#""font_size" integer NOT NULL,"#,
r#""character" varchar(255) NOT NULL,"#,
r#""size_w" integer NOT NULL,"#,
r#""size_h" integer NOT NULL,"#,
r#""size_w" bigint NOT NULL,"#,
r#""size_h" bigint NOT NULL,"#,
r#""font_id" integer DEFAULT NULL,"#,
r#"CONSTRAINT "idx-character-area" (("size_h" * "size_w"))"#,
r#")"#,
Expand Down
16 changes: 16 additions & 0 deletions tests/postgres/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -161,3 +161,19 @@ fn alter_6() {
r#"ALTER TYPE "schema"."font" RENAME TO "typeface""#
)
}

#[test]
fn unsigned_types() {
let query_builder = PostgresQueryBuilder {};

let column_to_string = |column_type| {
let mut out = String::new();
query_builder.prepare_column_type(column_type, &mut out);
out
};

assert_eq!(column_to_string(&ColumnType::TinyUnsigned), "smallint");
assert_eq!(column_to_string(&ColumnType::SmallUnsigned), "integer");
assert_eq!(column_to_string(&ColumnType::Unsigned), "bigint");
assert_eq!(column_to_string(&ColumnType::BigUnsigned), "numeric");
}
Loading