Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
8 changes: 5 additions & 3 deletions src/backend/postgres/table.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,11 @@ 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 | ColumnType::BigUnsigned => {
sql.write_str("bigint")
}
ColumnType::Float => sql.write_str("real"),
ColumnType::Double => sql.write_str("double precision"),
ColumnType::Decimal(precision) => match precision {
Expand Down
4 changes: 2 additions & 2 deletions src/table/column.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ 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 |
/// | SmallUnsigned | smallint unsigned | integer | smallint |
/// | Unsigned | int unsigned | bigint | integer |
/// | BigUnsigned | bigint unsigned | bigint | integer |
/// | Float | float | real | float |
/// | Double | double | double precision | double |
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), "bigint");
}
Loading