Add various blob column types with size (#850)
This commit is contained in:
parent
1a3e8c456a
commit
65017bdc08
@ -2,7 +2,7 @@ use crate::{util::escape_rust_keyword, DateTimeCrate};
|
|||||||
use heck::{CamelCase, SnakeCase};
|
use heck::{CamelCase, SnakeCase};
|
||||||
use proc_macro2::{Ident, TokenStream};
|
use proc_macro2::{Ident, TokenStream};
|
||||||
use quote::{format_ident, quote};
|
use quote::{format_ident, quote};
|
||||||
use sea_query::{ColumnDef, ColumnSpec, ColumnType};
|
use sea_query::{BlobSize, ColumnDef, ColumnSpec, ColumnType};
|
||||||
use std::fmt::Write as FmtWrite;
|
use std::fmt::Write as FmtWrite;
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
@ -128,7 +128,10 @@ impl Column {
|
|||||||
}
|
}
|
||||||
ColumnType::Time(_) => quote! { ColumnType::Time.def() },
|
ColumnType::Time(_) => quote! { ColumnType::Time.def() },
|
||||||
ColumnType::Date => quote! { ColumnType::Date.def() },
|
ColumnType::Date => quote! { ColumnType::Date.def() },
|
||||||
ColumnType::Binary(_) => quote! { ColumnType::Binary.def() },
|
ColumnType::Binary(BlobSize::Blob(_)) => quote! { ColumnType::Binary.def() },
|
||||||
|
ColumnType::Binary(BlobSize::Tiny) => quote! { ColumnType::TinyBinary.def() },
|
||||||
|
ColumnType::Binary(BlobSize::Medium) => quote! { ColumnType::MediumBinary.def() },
|
||||||
|
ColumnType::Binary(BlobSize::Long) => quote! { ColumnType::LongBinary.def() },
|
||||||
ColumnType::Boolean => quote! { ColumnType::Boolean.def() },
|
ColumnType::Boolean => quote! { ColumnType::Boolean.def() },
|
||||||
ColumnType::Money(s) => match s {
|
ColumnType::Money(s) => match s {
|
||||||
Some((s1, s2)) => quote! { ColumnType::Money(Some((#s1, #s2))).def() },
|
Some((s1, s2)) => quote! { ColumnType::Money(Some((#s1, #s2))).def() },
|
||||||
|
@ -58,6 +58,12 @@ pub enum ColumnType {
|
|||||||
Date,
|
Date,
|
||||||
/// `BINARY` data types contain byte strings—a sequence of octets or bytes.
|
/// `BINARY` data types contain byte strings—a sequence of octets or bytes.
|
||||||
Binary,
|
Binary,
|
||||||
|
/// Tiny Binary
|
||||||
|
TinyBinary,
|
||||||
|
/// Medium Binary
|
||||||
|
MediumBinary,
|
||||||
|
/// Long Binary
|
||||||
|
LongBinary,
|
||||||
/// `BOOLEAN` is the result of a comparison operator
|
/// `BOOLEAN` is the result of a comparison operator
|
||||||
Boolean,
|
Boolean,
|
||||||
/// `MONEY` data type handles monetary data
|
/// `MONEY` data type handles monetary data
|
||||||
@ -383,6 +389,9 @@ impl From<ColumnType> for sea_query::ColumnType {
|
|||||||
ColumnType::Time => sea_query::ColumnType::Time(None),
|
ColumnType::Time => sea_query::ColumnType::Time(None),
|
||||||
ColumnType::Date => sea_query::ColumnType::Date,
|
ColumnType::Date => sea_query::ColumnType::Date,
|
||||||
ColumnType::Binary => sea_query::ColumnType::Binary(sea_query::BlobSize::Blob(None)),
|
ColumnType::Binary => sea_query::ColumnType::Binary(sea_query::BlobSize::Blob(None)),
|
||||||
|
ColumnType::TinyBinary => sea_query::ColumnType::Binary(sea_query::BlobSize::Tiny),
|
||||||
|
ColumnType::MediumBinary => sea_query::ColumnType::Binary(sea_query::BlobSize::Medium),
|
||||||
|
ColumnType::LongBinary => sea_query::ColumnType::Binary(sea_query::BlobSize::Long),
|
||||||
ColumnType::Boolean => sea_query::ColumnType::Boolean,
|
ColumnType::Boolean => sea_query::ColumnType::Boolean,
|
||||||
ColumnType::Money(s) => sea_query::ColumnType::Money(s),
|
ColumnType::Money(s) => sea_query::ColumnType::Money(s),
|
||||||
ColumnType::Json => sea_query::ColumnType::Json,
|
ColumnType::Json => sea_query::ColumnType::Json,
|
||||||
@ -419,7 +428,10 @@ impl From<sea_query::ColumnType> for ColumnType {
|
|||||||
sea_query::ColumnType::TimestampWithTimeZone(_) => Self::TimestampWithTimeZone,
|
sea_query::ColumnType::TimestampWithTimeZone(_) => Self::TimestampWithTimeZone,
|
||||||
sea_query::ColumnType::Time(_) => Self::Time,
|
sea_query::ColumnType::Time(_) => Self::Time,
|
||||||
sea_query::ColumnType::Date => Self::Date,
|
sea_query::ColumnType::Date => Self::Date,
|
||||||
sea_query::ColumnType::Binary(_) => Self::Binary,
|
sea_query::ColumnType::Binary(sea_query::BlobSize::Blob(_)) => Self::Binary,
|
||||||
|
sea_query::ColumnType::Binary(sea_query::BlobSize::Tiny) => Self::TinyBinary,
|
||||||
|
sea_query::ColumnType::Binary(sea_query::BlobSize::Medium) => Self::MediumBinary,
|
||||||
|
sea_query::ColumnType::Binary(sea_query::BlobSize::Long) => Self::LongBinary,
|
||||||
sea_query::ColumnType::Boolean => Self::Boolean,
|
sea_query::ColumnType::Boolean => Self::Boolean,
|
||||||
sea_query::ColumnType::Money(s) => Self::Money(s),
|
sea_query::ColumnType::Money(s) => Self::Money(s),
|
||||||
sea_query::ColumnType::Json => Self::Json,
|
sea_query::ColumnType::Json => Self::Json,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user