From be506a1d6013585bac6582c35c8fd36631ea27e7 Mon Sep 17 00:00:00 2001 From: Nicholas Orlowsky Date: Tue, 8 Aug 2023 16:08:07 -0500 Subject: [PATCH] add file --- squirrel-server/src/table/table_definition.rs | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 squirrel-server/src/table/table_definition.rs diff --git a/squirrel-server/src/table/table_definition.rs b/squirrel-server/src/table/table_definition.rs new file mode 100644 index 0000000..463aa96 --- /dev/null +++ b/squirrel-server/src/table/table_definition.rs @@ -0,0 +1,31 @@ +use crate::Datatype; + +#[derive(Debug, Eq, PartialEq)] +pub struct ColumnDefinition { + pub name: String, + pub data_type: Datatype, + pub length: usize, // used for char(n), varchar(n) +} + +#[derive(Debug, Eq, PartialEq)] +pub struct TableDefinition { + pub name: String, + pub column_defs: Vec, +} + +impl TableDefinition { + pub fn get_byte_size(&self) -> usize { + let mut sum: usize = 0; + for col_def in self.column_defs.iter() { + // TODO HACK FIXME + // We should keep track of length + // even for built-in datatypes. + sum += if col_def.length > 0 { + col_def.length + } else { + 1 + }; + } + sum + } +}