From 9bbbd361c991954eed79aa258efcd11b0cd371a9 Mon Sep 17 00:00:00 2001 From: Erik Grinaker Date: Tue, 18 Jun 2024 22:33:36 +0200 Subject: [PATCH] wip sql: clean up schema [rebase before Local engine cleanup] --- src/sql/engine/local.rs | 10 +- src/sql/parser/lexer.rs | 10 + src/sql/parser/mod.rs | 17 +- src/sql/plan/optimizer.rs | 4 +- src/sql/plan/planner.rs | 52 +-- src/sql/types/schema.rs | 403 +++++++++--------- src/sql/types/value.rs | 2 +- tests/e2e/client.rs | 28 +- tests/sql/query/agg_boolean | 14 +- tests/sql/query/agg_boolean_null | 14 +- tests/sql/query/agg_const_from | 14 +- tests/sql/query/agg_count_star | 44 +- tests/sql/query/agg_expr | 44 +- tests/sql/query/agg_float | 14 +- tests/sql/query/agg_float_null | 14 +- tests/sql/query/agg_integer | 14 +- tests/sql/query/agg_integer_null | 14 +- tests/sql/query/agg_norows | 44 +- tests/sql/query/agg_norows_group | 44 +- tests/sql/query/agg_string | 14 +- tests/sql/query/agg_string_null | 14 +- tests/sql/query/all | 44 +- tests/sql/query/as_ | 44 +- tests/sql/query/expr_mixed | 44 +- tests/sql/query/field_aliased | 58 +-- tests/sql/query/field_multi | 44 +- tests/sql/query/field_qualified | 44 +- tests/sql/query/field_qualified_multi | 58 +-- tests/sql/query/field_single | 44 +- tests/sql/query/from_multiple | 72 ++-- tests/sql/query/group_expr | 44 +- tests/sql/query/group_expr_aggr | 44 +- tests/sql/query/group_expr_aggr_selfref | 44 +- tests/sql/query/group_expr_aliased | 44 +- tests/sql/query/group_expr_both | 44 +- tests/sql/query/group_expr_multigroup | 44 +- tests/sql/query/group_expr_select | 44 +- tests/sql/query/group_join | 64 ++- tests/sql/query/group_noaggregate | 44 +- tests/sql/query/group_noselect | 44 +- tests/sql/query/group_simple | 44 +- tests/sql/query/having | 44 +- tests/sql/query/having_aggr | 44 +- tests/sql/query/having_aggr_expr | 44 +- tests/sql/query/having_noaggr | 44 +- tests/sql/query/having_nogroup | 44 +- tests/sql/query/having_noselect | 44 +- tests/sql/query/join_cross | 58 +-- tests/sql/query/join_cross_alias | 72 ++-- tests/sql/query/join_cross_multi | 92 ++-- tests/sql/query/join_inner | 58 +-- tests/sql/query/join_inner_implicit | 58 +-- tests/sql/query/join_inner_index_transverse | 58 +-- .../query/join_inner_index_transverse_where | 58 +-- tests/sql/query/join_inner_multi | 78 ++-- tests/sql/query/join_inner_multi_index | 78 ++-- tests/sql/query/join_inner_multi_same | 122 ++---- tests/sql/query/join_inner_on_aliased | 58 +-- tests/sql/query/join_inner_on_false | 58 +-- tests/sql/query/join_inner_on_multi | 58 +-- tests/sql/query/join_inner_on_true | 58 +-- tests/sql/query/join_inner_on_where | 58 +-- tests/sql/query/join_left | 58 +-- tests/sql/query/join_left_all | 58 +-- tests/sql/query/join_left_outer | 58 +-- tests/sql/query/join_left_truncate | 58 +-- tests/sql/query/join_right | 58 +-- tests/sql/query/join_right_all | 58 +-- tests/sql/query/join_right_outer | 58 +-- tests/sql/query/join_right_truncate | 58 +-- tests/sql/query/limit | 44 +- tests/sql/query/limit_expr | 44 +- tests/sql/query/limit_large | 44 +- tests/sql/query/limit_offset | 44 +- tests/sql/query/limit_zero | 44 +- tests/sql/query/offset | 44 +- tests/sql/query/offset_expr | 44 +- tests/sql/query/offset_large | 44 +- tests/sql/query/offset_zero | 44 +- tests/sql/query/order | 44 +- tests/sql/query/order_aggregate | 44 +- tests/sql/query/order_aggregate_noselect | 44 +- tests/sql/query/order_asc | 44 +- tests/sql/query/order_asc_lowercase | 44 +- tests/sql/query/order_boolean_asc | 14 +- tests/sql/query/order_boolean_desc | 14 +- tests/sql/query/order_desc | 44 +- tests/sql/query/order_desc_lowercase | 44 +- tests/sql/query/order_expr | 44 +- tests/sql/query/order_field_aliased | 58 +-- tests/sql/query/order_field_qualified | 58 +-- tests/sql/query/order_float_asc | 14 +- tests/sql/query/order_float_desc | 14 +- tests/sql/query/order_group_by_noselect | 44 +- tests/sql/query/order_integer_asc | 14 +- tests/sql/query/order_integer_desc | 14 +- tests/sql/query/order_multi | 44 +- tests/sql/query/order_noselect | 44 +- tests/sql/query/order_string_asc | 14 +- tests/sql/query/order_string_desc | 14 +- tests/sql/query/where_expr | 44 +- tests/sql/query/where_false | 44 +- tests/sql/query/where_field_aliased_table | 58 +-- tests/sql/query/where_field_qualified | 58 +-- tests/sql/query/where_float | 44 +- tests/sql/query/where_index | 44 +- tests/sql/query/where_index_or | 44 +- tests/sql/query/where_index_or_partial | 44 +- tests/sql/query/where_integer | 44 +- tests/sql/query/where_join_inner | 58 +-- tests/sql/query/where_null | 44 +- tests/sql/query/where_pk | 44 +- tests/sql/query/where_pk_or | 44 +- tests/sql/query/where_pk_or_partial | 44 +- tests/sql/query/where_string | 44 +- tests/sql/query/where_true | 44 +- .../sql/schema/create_table_default_conflict | 2 +- ...reate_table_default_conflict_float_integer | 2 +- ...reate_table_default_conflict_integer_float | 2 +- .../sql/schema/create_table_default_null_not | 2 +- tests/sql/schema/create_table_pk_missing | 2 +- tests/sql/schema/create_table_pk_multiple | 2 +- tests/sql/schema/create_table_ref | 4 +- tests/sql/schema/create_table_ref_missing | 2 +- tests/sql/schema/create_table_ref_multiple | 12 +- tests/sql/schema/create_table_ref_self | 4 +- tests/sql/schema/create_table_ref_self_type | 2 +- tests/sql/schema/create_table_ref_type | 2 +- tests/sql/schema/create_table_unique | 4 +- tests/sql/schema/create_table_unique_default | 4 +- tests/sql/schema/create_table_unique_not_null | 4 +- tests/sql/schema/create_table_unique_null | 4 +- tests/sql/schema/delete_ref_conflict | 7 +- tests/sql/schema/delete_ref_noref | 7 +- tests/sql/schema/delete_ref_self | 6 +- tests/sql/schema/delete_ref_self_all | 7 +- tests/sql/schema/delete_ref_self_conflict | 7 +- tests/sql/schema/delete_ref_source | 6 +- tests/sql/schema/drop_table_ref_self | 4 +- tests/sql/schema/drop_table_ref_source | 4 +- tests/sql/schema/drop_table_ref_target | 8 +- tests/sql/schema/insert_ref_boolean | 5 +- tests/sql/schema/insert_ref_boolean_missing | 4 +- tests/sql/schema/insert_ref_boolean_null | 5 +- tests/sql/schema/insert_ref_float | 5 +- tests/sql/schema/insert_ref_float_missing | 4 +- tests/sql/schema/insert_ref_float_null | 5 +- tests/sql/schema/insert_ref_integer | 5 +- tests/sql/schema/insert_ref_integer_missing | 4 +- tests/sql/schema/insert_ref_integer_null | 5 +- tests/sql/schema/insert_ref_self | 7 +- tests/sql/schema/insert_ref_self_missing | 7 +- tests/sql/schema/insert_ref_self_null | 7 +- tests/sql/schema/insert_ref_self_self | 8 +- tests/sql/schema/insert_ref_string | 5 +- tests/sql/schema/insert_ref_string_case | 4 +- tests/sql/schema/insert_ref_string_missing | 4 +- tests/sql/schema/insert_ref_string_null | 5 +- tests/sql/schema/insert_unique_boolean | 25 +- .../schema/insert_unique_boolean_duplicate | 24 +- tests/sql/schema/insert_unique_float | 25 +- .../sql/schema/insert_unique_float_duplicate | 24 +- tests/sql/schema/insert_unique_integer | 25 +- .../schema/insert_unique_integer_duplicate | 24 +- tests/sql/schema/insert_unique_nulls | 24 +- tests/sql/schema/insert_unique_string | 25 +- tests/sql/schema/insert_unique_string_case | 25 +- .../sql/schema/insert_unique_string_duplicate | 24 +- tests/sql/schema/update_ref_pk | 7 +- tests/sql/schema/update_ref_pk_noref | 7 +- tests/sql/schema/update_ref_self_pk | 7 +- tests/sql/schema/update_ref_self_pk_noref | 7 +- tests/sql/schema/update_ref_self_self | 8 +- tests/sql/schema/update_ref_self_value | 7 +- tests/sql/schema/update_ref_source | 6 +- tests/sql/schema/update_ref_source_missing | 7 +- tests/sql/schema/update_ref_source_null | 6 +- tests/sql/schema/update_ref_value | 7 +- tests/sql/schema/update_unique_boolean | 24 +- .../schema/update_unique_boolean_duplicate | 24 +- tests/sql/schema/update_unique_boolean_same | 24 +- tests/sql/schema/update_unique_nulls | 20 +- 182 files changed, 2565 insertions(+), 3428 deletions(-) diff --git a/src/sql/engine/local.rs b/src/sql/engine/local.rs index 963b1b0c8..ef94200bf 100644 --- a/src/sql/engine/local.rs +++ b/src/sql/engine/local.rs @@ -140,6 +140,8 @@ impl super::Transaction for Transaction { } fn delete(&self, table: &str, ids: &[Value]) -> Result<()> { + // Check for foreign key referenes. + // TODO: try to be more clever than simply iterating over each ID. for id in ids { let table = self.must_get_table(table)?; @@ -153,7 +155,7 @@ impl super::Transaction for Transaction { while let Some(row) = scan.next().transpose()? { for (i, c) in &cs { if &row[*i] == id - && (table.name != t.name || id != &table.get_row_key(&row)?) + && (table.name != t.name || id != table.get_row_key(&row)?) { return errinput!( "primary key {id} referenced by table {} column {c}", @@ -199,7 +201,7 @@ impl super::Transaction for Transaction { if !self.get(&table.name, &[id.clone()])?.is_empty() { return errinput!("primary key {id} already exists for table {}", table.name); } - self.txn.set(&Key::Row((&table.name).into(), (&id).into()).encode(), row.encode())?; + self.txn.set(&Key::Row((&table.name).into(), id.into()).encode(), row.encode())?; // Update indexes for (i, column) in table.columns.iter().enumerate().filter(|(_, c)| c.index) { @@ -276,7 +278,7 @@ impl super::Transaction for Transaction { // TODO: be more clever than just iterating here. for (id, row) in rows { // If the primary key changes we do a delete and create, otherwise we replace the row - if id != table.get_row_key(&row)? { + if id != *table.get_row_key(&row)? { self.delete(&table.name, &[id.clone()])?; self.insert(&table.name, vec![row])?; return Ok(()); @@ -331,7 +333,7 @@ impl Catalog for Transaction { } let mut scan = self.scan(&table.name, None)?; while let Some(row) = scan.next().transpose()? { - self.delete(&table.name, &[table.get_row_key(&row)?])? + self.delete(&table.name, &[table.get_row_key(&row)?.clone()])? } self.txn.delete(&Key::Table(table.name.into()).encode())?; Ok(true) diff --git a/src/sql/parser/lexer.rs b/src/sql/parser/lexer.rs index b94e26862..a11852d67 100644 --- a/src/sql/parser/lexer.rs +++ b/src/sql/parser/lexer.rs @@ -484,3 +484,13 @@ impl<'a> Lexer<'a> { while self.next_if(|c| c.is_whitespace()).is_some() {} } } + +/// Returns true if the entire given string is a single valid identifier. +pub fn is_ident(ident: &str) -> bool { + let mut lexer = Lexer::new(ident); + let token = lexer.next(); + if lexer.next().is_some() { + return false; // multiple tokens, so not an identifier + } + matches!(token, Some(Ok(Token::Ident(_)))) +} diff --git a/src/sql/parser/mod.rs b/src/sql/parser/mod.rs index d49a9010e..79dc10862 100644 --- a/src/sql/parser/mod.rs +++ b/src/sql/parser/mod.rs @@ -2,20 +2,5 @@ pub mod ast; mod lexer; mod parser; -pub use lexer::{Keyword, Lexer, Token}; +pub use lexer::{is_ident, Keyword, Lexer, Token}; pub use parser::Parser; - -use regex::Regex; - -// Formats an identifier by quoting it as appropriate. -// TODO: move this elsewhere. -pub(super) fn format_ident(ident: &str) -> String { - static RE_IDENT: std::sync::OnceLock = std::sync::OnceLock::new(); - let re_ident = RE_IDENT.get_or_init(|| Regex::new(r#"^\w[\w_]*$"#).unwrap()); - - if re_ident.is_match(ident) && Keyword::try_from(ident.to_lowercase().as_str()).is_err() { - ident.to_string() - } else { - format!("\"{}\"", ident.replace('\"', "\"\"")) - } -} diff --git a/src/sql/plan/optimizer.rs b/src/sql/plan/optimizer.rs index ae34377c2..178d87e16 100644 --- a/src/sql/plan/optimizer.rs +++ b/src/sql/plan/optimizer.rs @@ -174,14 +174,12 @@ impl Optimizer for IndexLookup { fn optimize(&self, node: Node) -> Result { node.transform(&Ok, &|n| match n { Node::Scan { table, alias, filter: Some(filter) } => { - let pk = table.columns.iter().position(|c| c.primary_key).unwrap(); - // Convert the filter into conjunctive normal form, and try to convert each // sub-expression into a lookup. If a lookup is found, return a lookup node and then // apply the remaining conjunctions as a filter node, if any. let mut cnf = filter.clone().into_cnf_vec(); for i in 0..cnf.len() { - if let Some(keys) = cnf[i].as_lookup(pk) { + if let Some(keys) = cnf[i].as_lookup(table.primary_key) { cnf.remove(i); return Ok(self.wrap_cnf(Node::KeyLookup { table, alias, keys }, cnf)); } diff --git a/src/sql/plan/planner.rs b/src/sql/plan/planner.rs index 1ebd1606b..628ab88db 100644 --- a/src/sql/plan/planner.rs +++ b/src/sql/plan/planner.rs @@ -36,32 +36,35 @@ impl<'a, C: Catalog> Planner<'a, C> { ast::Statement::Explain(_) => panic!("unexpected explain statement"), // DDL statements (schema changes). - ast::Statement::CreateTable { name, columns } => Plan::CreateTable { - schema: Table::new( - name, - columns - .into_iter() - .map(|c| { - let nullable = c.nullable.unwrap_or(!c.primary_key); - let default = match c.default { + ast::Statement::CreateTable { name, columns } => { + let Some(primary_key) = columns.iter().position(|c| c.primary_key) else { + return errinput!("no primary key for table {name}"); + }; + if columns.iter().filter(|c| c.primary_key).count() > 1 { + return errinput!("multiple primary keys for table {name}"); + } + let columns = columns + .into_iter() + .map(|c| { + let nullable = c.nullable.unwrap_or(!c.primary_key); + Ok(Column { + name: c.name, + datatype: c.datatype, + nullable, + default: match c.default { Some(expr) => Some(self.evaluate_constant(expr)?), None if nullable => Some(Value::Null), None => None, - }; - Ok(Column { - name: c.name, - datatype: c.datatype, - primary_key: c.primary_key, - nullable, - default, - index: c.index && !c.primary_key, - unique: c.unique || c.primary_key, - references: c.references, - }) + }, + unique: c.unique || c.primary_key, + index: (c.index || c.unique || c.references.is_some()) + && !c.primary_key, + references: c.references, }) - .collect::>()?, - )?, - }, + }) + .collect::>()?; + Plan::CreateTable { schema: Table { name, primary_key, columns } } + } ast::Statement::DropTable { name, if_exists } => { Plan::DropTable { table: name, if_exists } @@ -73,7 +76,7 @@ impl<'a, C: Catalog> Planner<'a, C> { let scope = &mut Scope::from_table(table.clone())?; Plan::Delete { table: table.name.clone(), - key_index: table.get_row_key_index()?, + key_index: table.primary_key, source: Node::Scan { table, alias: None, @@ -101,11 +104,10 @@ impl<'a, C: Catalog> Planner<'a, C> { ast::Statement::Update { table, set, r#where } => { let table = self.catalog.must_get_table(&table)?; - let key_index = table.get_row_key_index()?; let scope = &mut Scope::from_table(table.clone())?; Plan::Update { table: table.name.clone(), - key_index, + key_index: table.primary_key, source: Node::Scan { table, alias: None, diff --git a/src/sql/types/schema.rs b/src/sql/types/schema.rs index 9b5862416..9b32096a0 100644 --- a/src/sql/types/schema.rs +++ b/src/sql/types/schema.rs @@ -1,31 +1,91 @@ -use super::{DataType, Value}; +use super::value::{DataType, Value}; use crate::encoding; -use crate::errinput; use crate::error::Result; -use crate::sql::engine::Catalog; -use crate::sql::engine::Transaction; -use crate::sql::parser::format_ident; +use crate::sql::engine::{Catalog, Transaction}; +use crate::{errdata, errinput}; use serde::{Deserialize, Serialize}; -use std::fmt::{self, Display}; +use std::borrow::Cow; -/// A table schema +/// A table schema, which specifies the structure and constraints of its data. +/// +/// Tables can't change after they are created. There is no ALTER TABLE nor +/// CREATE/DROP INDEX -- only CREATE TABLE and DROP TABLE. #[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] pub struct Table { + /// The table name. Can't be empty. pub name: String, + /// The primary key column index. A table must have a primary key, and it + /// can only be a single column. + pub primary_key: usize, + /// The table's columns. Must have at least one. pub columns: Vec, } impl encoding::Value for Table {} -impl Table { - /// Creates a new table schema - pub fn new(name: String, columns: Vec) -> Result { - let table = Self { name, columns }; - Ok(table) +/// A table column. +#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +pub struct Column { + /// Column name. Can't be empty. + pub name: String, + /// Column datatype. + pub datatype: DataType, + /// Whether the column allows null values. Not legal for primary keys. + pub nullable: bool, + /// The column's default value. If None, the user must specify an explicit + /// value. Must match the column datatype. Nullable columns require a + /// default (often Null), and Null is only a valid default when nullable. + pub default: Option, + /// Whether the column should only allow unique values. Must be true for a + /// primary key column. + pub unique: bool, + /// Whether the column should have a secondary index. Never set for primary + /// keys, which have an implicit primary index. + pub index: bool, + /// If set, this column is a foreign key reference to the given table's + /// primary key. Must be of the same type as the target primary key. + /// TODO: enforce an index for foreign keys. + pub references: Option, +} + +impl std::fmt::Display for Table { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + writeln!(f, "CREATE TABLE {} (", format_ident(&self.name))?; + for (i, column) in self.columns.iter().enumerate() { + write!(f, " {} {}", format_ident(&column.name), column.datatype)?; + if i == self.primary_key { + write!(f, " PRIMARY KEY")?; + } else if !column.nullable { + write!(f, " NOT NULL")?; + } + if let Some(default) = &column.default { + write!(f, " DEFAULT {default}")?; + } + if i != self.primary_key { + if column.unique { + write!(f, " UNIQUE")?; + } + if column.index { + write!(f, " INDEX")?; + } + } + if let Some(reference) = &column.references { + write!(f, " REFERENCES {reference}")?; + } + if i < self.columns.len() - 1 { + write!(f, ",")?; + } + writeln!(f)?; + } + write!(f, ")") } +} - /// Fetches a column by name +impl Table { + /// Fetches a column by name. + /// + /// TODO: consider getting rid of all these helpers. pub fn get_column(&self, name: &str) -> Result<&Column> { self.columns .iter() @@ -41,231 +101,160 @@ impl Table { .ok_or(errinput!("column {name} not found in table {}", self.name)) } - /// Returns the primary key column of the table - pub fn get_primary_key(&self) -> Result<&Column> { - self.columns - .iter() - .find(|c| c.primary_key) - .ok_or(errinput!("primary key not found in table {}", self.name)) - } - - /// Returns the primary key value of a row - pub fn get_row_key(&self, row: &[Value]) -> Result { - self.get_row_key_at(row, self.get_row_key_index()?) + /// Returns the primary key value of a row. + pub fn get_row_key<'a>(&self, row: &'a [Value]) -> Result<&'a Value> { + row.get(self.primary_key).ok_or(errdata!("no primary key in row {row:?}")) } - /// Returns the primary key value at the given index. - pub fn get_row_key_at(&self, row: &[Value], index: usize) -> Result { - row.get(index).cloned().ok_or(errinput!("primary key value not found for row")) - } - - /// Returns the index of the primary key field. - pub fn get_row_key_index(&self) -> Result { - self.columns.iter().position(|c| c.primary_key).ok_or(errinput!("primary key not found")) - } - - /// Validates the table schema - pub fn validate(&self, catalog: &dyn Catalog) -> Result<()> { + /// Validates the table schema. + pub fn validate(&self, catalog: &impl Catalog) -> Result<()> { + if self.name.is_empty() { + return errinput!("table name can't be empty"); + } if self.columns.is_empty() { - return errinput!("table {} has no columns", self.name); + return errinput!("table has no columns"); } - match self.columns.iter().filter(|c| c.primary_key).count() { - 1 => {} - 0 => return errinput!("no primary key in table {}", self.name), - _ => return errinput!("multiple primary keys in table {}", self.name), - }; - for column in &self.columns { - column.validate(self, catalog)?; + if self.columns.get(self.primary_key).is_none() { + return errinput!("invalid primary key index"); } - Ok(()) - } - /// Validates a row - pub fn validate_row(&self, row: &[Value], txn: &dyn Transaction) -> Result<()> { - if row.len() != self.columns.len() { - return errinput!("invalid row size for table {}", self.name); - } - let pk = self.get_row_key(row)?; - for (column, value) in self.columns.iter().zip(row.iter()) { - column.validate_value(self, &pk, value, txn)?; - } - Ok(()) - } -} + for (i, column) in self.columns.iter().enumerate() { + if column.name.is_empty() { + return errinput!("column name can't be empty"); + } + let cname = &column.name; // for formatting convenience -impl Display for Table { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!( - f, - "CREATE TABLE {} (\n{}\n)", - format_ident(&self.name), - self.columns.iter().map(|c| format!(" {}", c)).collect::>().join(",\n") - ) - } -} + // Validate primary key. + let is_primary_key = i == self.primary_key; + if is_primary_key { + if column.nullable { + return errinput!("primary key {cname} cannot be nullable"); + } + if !column.unique { + return errinput!("primary key {cname} must be unique"); + } + if column.index { + return errinput!("primary key {cname} can't have an index"); + } + } -/// A table column schema -#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] -pub struct Column { - /// Column name - pub name: String, - /// Column datatype - pub datatype: DataType, - /// Whether the column is a primary key - pub primary_key: bool, - /// Whether the column allows null values - pub nullable: bool, - /// The default value of the column - pub default: Option, - /// Whether the column should only take unique values - pub unique: bool, - /// The table which is referenced by this foreign key - pub references: Option, - /// Whether the column should be indexed - pub index: bool, -} + // Validate default value. + match &column.default { + Some(Value::Null) if !column.nullable => { + return errinput!("invalid NULL default for non-nullable column {cname}") + } + Some(Value::Null) => {} + Some(value) if value.datatype().as_ref() != Some(&column.datatype) => { + let (ctype, vtype) = (&column.datatype, value.datatype().unwrap()); + return errinput!("invalid datatype {vtype} for {ctype} column {cname}",); + } + Some(_) => {} + None if column.nullable => { + return errinput!("nullable column {cname} must have a default value") + } + None => {} + } -impl Column { - /// Validates the column schema - pub fn validate(&self, table: &Table, catalog: &dyn Catalog) -> Result<()> { - // Validate primary key - if self.primary_key && self.nullable { - return errinput!("primary key {} cannot be nullable", self.name); - } - if self.primary_key && !self.unique { - return errinput!("primary key {} must be unique", self.name); - } + // Validate unique index. + if column.unique && !column.index && !is_primary_key { + return errinput!("unique column {cname} must have a secondary index"); + } - // Validate default value - if let Some(default) = &self.default { - if let Some(datatype) = default.datatype() { - if datatype != self.datatype { + // Validate references. + if let Some(reference) = &column.references { + if !column.index && !is_primary_key { + return errinput!("reference column {cname} must have a secondary index"); + } + let target_type = if reference == &self.name { + self.columns[self.primary_key].datatype + } else if let Some(target) = catalog.get_table(reference)? { + target.columns[target.primary_key].datatype + } else { + return errinput!("unknown table {reference} referenced by column {cname}"); + }; + if column.datatype != target_type { return errinput!( - "default value for column {} has datatype {datatype}, must be {}", - self.name, - self.datatype + "can't reference {target_type} primary key of {reference} from {} column {cname}", + column.datatype, ); } - } else if !self.nullable { - return errinput!( - "can't use NULL as default value for non-nullable column {}", - self.name - ); - } - } else if self.nullable { - return errinput!("nullable column {} must have a default value", self.name); - } - - // Validate references - if let Some(reference) = &self.references { - let target = if reference == &table.name { - table.clone() - } else if let Some(table) = catalog.get_table(reference)? { - table - } else { - return errinput!( - "table {reference} referenced by column {} does not exist", - self.name - ); - }; - if self.datatype != target.get_primary_key()?.datatype { - return errinput!( - "can't reference {} primary key of table {} from {} column {}", - target.get_primary_key()?.datatype, - target.name, - self.datatype, - self.name - ); } } - Ok(()) } - /// Validates a column value - pub fn validate_value( - &self, - table: &Table, - pk: &Value, - value: &Value, - txn: &dyn Transaction, - ) -> Result<()> { - // Validate datatype - match value.datatype() { - None if self.nullable => Ok(()), - None => errinput!("NULL value not allowed for column {}", self.name), - Some(ref datatype) if datatype != &self.datatype => errinput!( - "invalid datatype {} for {} column {}", - datatype, - self.datatype, - self.name - ), - _ => Ok(()), - }?; - - // Validate value - match value { - Value::String(s) if s.len() > 1024 => { - errinput!("strings cannot be more than 1024 bytes") + /// Validates a row. + /// + /// TODO: clean this up together with the Local engine. Who should be + /// responsible for non-local validation (i.e. primary/unique conflicts and + /// reference integrity)? + pub fn validate_row(&self, row: &[Value], txn: &impl Transaction) -> Result<()> { + if row.len() != self.columns.len() { + return errinput!("invalid row size for table {}", self.name); + } + let pk = self.get_row_key(row)?; + for (i, (column, value)) in self.columns.iter().zip(row.iter()).enumerate() { + // Validate datatype. + match value.datatype() { + None if column.nullable => {} + None => return errinput!("NULL value not allowed for column {}", column.name), + Some(ref datatype) if datatype != &column.datatype => { + return errinput!( + "invalid datatype {} for {} column {}", + datatype, + column.datatype, + column.name + ) + } + _ => {} } - _ => Ok(()), - }?; - // Validate outgoing references - if let Some(target) = &self.references { + // Validate value match value { - Value::Null => Ok(()), - Value::Float(f) if f.is_nan() => Ok(()), - v if target == &table.name && v == pk => Ok(()), - v if txn.get(target, &[v.clone()])?.is_empty() => { - errinput!("referenced primary key {v} in table {target} does not exist",) + Value::String(s) if s.len() > 1024 => { + errinput!("strings cannot be more than 1024 bytes") } _ => Ok(()), }?; - } - // Validate uniqueness constraints - if self.unique && !self.primary_key && value != &Value::Null { - let index = table.get_column_index(&self.name)?; - let mut scan = txn.scan(&table.name, None)?; - while let Some(row) = scan.next().transpose()? { - if row.get(index).unwrap_or(&Value::Null) == value - && &table.get_row_key(&row)? != pk - { - return errinput!( - "unique value {value} already exists for column {}", - self.name - ); + // Validate outgoing references + if let Some(target) = &column.references { + match value { + Value::Null => Ok(()), + Value::Float(f) if f.is_nan() => Ok(()), + v if target == &self.name && v == pk => Ok(()), + v if txn.get(target, &[v.clone()])?.is_empty() => { + errinput!("referenced primary key {v} in table {target} does not exist",) + } + _ => Ok(()), + }?; + } + + // Validate uniqueness constraints. + // TODO: this needs an index lookup. + if column.unique && i != self.primary_key && value != &Value::Null { + let index = self.get_column_index(&column.name)?; + let mut scan = txn.scan(&self.name, None)?; + while let Some(row) = scan.next().transpose()? { + if row.get(index).unwrap_or(&Value::Null) == value + && self.get_row_key(&row)? != pk + { + return errinput!( + "unique value {value} already exists for column {}", + column.name + ); + } } } } - Ok(()) } } -impl Display for Column { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let mut sql = format_ident(&self.name); - sql += &format!(" {}", self.datatype); - if self.primary_key { - sql += " PRIMARY KEY"; - } - if !self.nullable && !self.primary_key { - sql += " NOT NULL"; - } - if let Some(default) = &self.default { - sql += &format!(" DEFAULT {}", default); - } - if self.unique && !self.primary_key { - sql += " UNIQUE"; - } - if let Some(reference) = &self.references { - sql += &format!(" REFERENCES {}", reference); - } - if self.index { - sql += " INDEX"; - } - write!(f, "{}", sql) +/// Formats an identifier as valid SQL, quoting it if necessary. +fn format_ident(ident: &str) -> Cow { + if crate::sql::parser::is_ident(ident) { + return ident.into(); } + format!("\"{}\"", ident.replace('\"', "\"\"")).into() } diff --git a/src/sql/types/value.rs b/src/sql/types/value.rs index d068d7d49..a6cb5a389 100644 --- a/src/sql/types/value.rs +++ b/src/sql/types/value.rs @@ -5,7 +5,7 @@ use crate::error::{Error, Result}; use serde::{Deserialize, Serialize}; /// A primitive data type. -#[derive(Clone, Debug, Hash, PartialEq, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, Hash, PartialEq, Serialize, Deserialize)] pub enum DataType { /// A boolean: true or false. Boolean, diff --git a/tests/e2e/client.rs b/tests/e2e/client.rs index da6ff4ec3..8aa7ea5cf 100644 --- a/tests/e2e/client.rs +++ b/tests/e2e/client.rs @@ -26,11 +26,11 @@ fn get_table() -> Result<()> { c.get_table("movies")?, schema::Table { name: "movies".into(), + primary_key: 0, columns: vec![ schema::Column { name: "id".into(), datatype: DataType::Integer, - primary_key: true, nullable: false, default: None, unique: true, @@ -40,7 +40,6 @@ fn get_table() -> Result<()> { schema::Column { name: "title".into(), datatype: DataType::String, - primary_key: false, nullable: false, default: None, unique: false, @@ -50,27 +49,24 @@ fn get_table() -> Result<()> { schema::Column { name: "studio_id".into(), datatype: DataType::Integer, - primary_key: false, nullable: false, default: None, unique: false, - index: false, + index: true, references: Some("studios".into()), }, schema::Column { name: "genre_id".into(), datatype: DataType::Integer, - primary_key: false, nullable: false, default: None, unique: false, - index: false, + index: true, references: Some("genres".into()), }, schema::Column { name: "released".into(), datatype: DataType::Integer, - primary_key: false, nullable: false, default: None, unique: false, @@ -80,7 +76,6 @@ fn get_table() -> Result<()> { schema::Column { name: "rating".into(), datatype: DataType::Float, - primary_key: false, nullable: true, default: Some(Value::Null), unique: false, @@ -90,7 +85,6 @@ fn get_table() -> Result<()> { schema::Column { name: "ultrahd".into(), datatype: DataType::Boolean, - primary_key: false, nullable: true, default: Some(Value::Null), unique: false, @@ -132,9 +126,9 @@ fn status() -> Result<()> { storage: storage::engine::Status { name: "bitcask".to_string(), keys: 13, - size: 962, - total_disk_size: 1176, - live_disk_size: 1066, + size: 952, + total_disk_size: 1166, + live_disk_size: 1056, garbage_disk_size: 110, }, }, @@ -143,11 +137,11 @@ fn status() -> Result<()> { active_txns: 0, storage: engine::Status { name: "bitcask".to_string(), - keys: 26, - size: 1630, - total_disk_size: 4156, - live_disk_size: 1838, - garbage_disk_size: 2318 + keys: 36, + size: 2177, + total_disk_size: 7601, + live_disk_size: 2465, + garbage_disk_size: 5136, }, } }, diff --git a/tests/sql/query/agg_boolean b/tests/sql/query/agg_boolean index b4631b1cb..816db859e 100644 --- a/tests/sql/query/agg_boolean +++ b/tests/sql/query/agg_boolean @@ -107,28 +107,27 @@ Plan: Select( source: Scan { table: Table { name: "booleans", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "b", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -267,28 +266,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "booleans", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "b", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/agg_boolean_null b/tests/sql/query/agg_boolean_null index e42c535ad..76518744d 100644 --- a/tests/sql/query/agg_boolean_null +++ b/tests/sql/query/agg_boolean_null @@ -93,28 +93,27 @@ Plan: Select( source: Scan { table: Table { name: "booleans", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "b", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -239,28 +238,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "booleans", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "b", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/agg_const_from b/tests/sql/query/agg_const_from index 51022318b..5fb72f74b 100644 --- a/tests/sql/query/agg_const_from +++ b/tests/sql/query/agg_const_from @@ -98,26 +98,25 @@ Plan: Select( source: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -222,26 +221,25 @@ Optimized plan: Select( source: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/agg_count_star b/tests/sql/query/agg_count_star index 20b07257e..93846a8d1 100644 --- a/tests/sql/query/agg_count_star +++ b/tests/sql/query/agg_count_star @@ -46,84 +46,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -164,84 +158,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/agg_expr b/tests/sql/query/agg_expr index bf7ba37ba..0c7d3c98a 100644 --- a/tests/sql/query/agg_expr +++ b/tests/sql/query/agg_expr @@ -68,84 +68,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -212,84 +206,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/agg_float b/tests/sql/query/agg_float index bb4d94003..6e480c3ec 100644 --- a/tests/sql/query/agg_float +++ b/tests/sql/query/agg_float @@ -107,28 +107,27 @@ Plan: Select( source: Scan { table: Table { name: "floats", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "f", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -267,28 +266,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "floats", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "f", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/agg_float_null b/tests/sql/query/agg_float_null index d7e0b47cb..c61e9eda3 100644 --- a/tests/sql/query/agg_float_null +++ b/tests/sql/query/agg_float_null @@ -93,28 +93,27 @@ Plan: Select( source: Scan { table: Table { name: "floats", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "f", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -239,28 +238,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "floats", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "f", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/agg_integer b/tests/sql/query/agg_integer index 5aa3da5b4..ce5925715 100644 --- a/tests/sql/query/agg_integer +++ b/tests/sql/query/agg_integer @@ -107,28 +107,27 @@ Plan: Select( source: Scan { table: Table { name: "integers", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "i", datatype: Integer, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -267,28 +266,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "integers", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "i", datatype: Integer, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/agg_integer_null b/tests/sql/query/agg_integer_null index 0301abe80..787cd28f2 100644 --- a/tests/sql/query/agg_integer_null +++ b/tests/sql/query/agg_integer_null @@ -93,28 +93,27 @@ Plan: Select( source: Scan { table: Table { name: "integers", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "i", datatype: Integer, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -239,28 +238,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "integers", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "i", datatype: Integer, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/agg_norows b/tests/sql/query/agg_norows index 5f81dcf2b..194ea057c 100644 --- a/tests/sql/query/agg_norows +++ b/tests/sql/query/agg_norows @@ -100,84 +100,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -308,84 +302,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/agg_norows_group b/tests/sql/query/agg_norows_group index 193de840b..0d4186438 100644 --- a/tests/sql/query/agg_norows_group +++ b/tests/sql/query/agg_norows_group @@ -104,84 +104,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -324,84 +318,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/agg_string b/tests/sql/query/agg_string index 9ece3b589..3b2b579da 100644 --- a/tests/sql/query/agg_string +++ b/tests/sql/query/agg_string @@ -107,28 +107,27 @@ Plan: Select( source: Scan { table: Table { name: "strings", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "s", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -267,28 +266,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "strings", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "s", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/agg_string_null b/tests/sql/query/agg_string_null index a99bf3786..0cb0e0c21 100644 --- a/tests/sql/query/agg_string_null +++ b/tests/sql/query/agg_string_null @@ -93,28 +93,27 @@ Plan: Select( source: Scan { table: Table { name: "strings", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "s", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -239,28 +238,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "strings", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "s", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/all b/tests/sql/query/all index d4eb329a9..36c8f9f54 100644 --- a/tests/sql/query/all +++ b/tests/sql/query/all @@ -35,84 +35,78 @@ Plan: Select( Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -125,84 +119,78 @@ Optimized plan: Select( Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/as_ b/tests/sql/query/as_ index f1a832cc0..e7ce499e2 100644 --- a/tests/sql/query/as_ +++ b/tests/sql/query/as_ @@ -85,84 +85,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -231,84 +225,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/expr_mixed b/tests/sql/query/expr_mixed index 38392ec94..ecb963a19 100644 --- a/tests/sql/query/expr_mixed +++ b/tests/sql/query/expr_mixed @@ -82,84 +82,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -219,84 +213,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/field_aliased b/tests/sql/query/field_aliased index a074e648b..24343a5c8 100644 --- a/tests/sql/query/field_aliased +++ b/tests/sql/query/field_aliased @@ -87,84 +87,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -177,26 +171,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -247,84 +240,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -337,26 +324,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/field_multi b/tests/sql/query/field_multi index 02cb3090d..69ea8a53a 100644 --- a/tests/sql/query/field_multi +++ b/tests/sql/query/field_multi @@ -52,84 +52,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -170,84 +164,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/field_qualified b/tests/sql/query/field_qualified index d3422f8bc..fefd108ff 100644 --- a/tests/sql/query/field_qualified +++ b/tests/sql/query/field_qualified @@ -47,84 +47,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -155,84 +149,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/field_qualified_multi b/tests/sql/query/field_qualified_multi index 3de4c9f93..25dc0f006 100644 --- a/tests/sql/query/field_qualified_multi +++ b/tests/sql/query/field_qualified_multi @@ -83,84 +83,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -171,26 +165,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -239,84 +232,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -327,26 +314,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/field_single b/tests/sql/query/field_single index 866b150f2..d99a852ad 100644 --- a/tests/sql/query/field_single +++ b/tests/sql/query/field_single @@ -45,84 +45,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -151,84 +145,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/from_multiple b/tests/sql/query/from_multiple index c8e0e8cbe..bb438c3c3 100644 --- a/tests/sql/query/from_multiple +++ b/tests/sql/query/from_multiple @@ -129,84 +129,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -217,26 +211,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -250,26 +243,25 @@ Plan: Select( right: Scan { table: Table { name: "countries", + primary_key: 0, columns: [ Column { name: "id", datatype: String, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -287,84 +279,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -375,26 +361,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -408,26 +393,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "countries", + primary_key: 0, columns: [ Column { name: "id", datatype: String, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/group_expr b/tests/sql/query/group_expr index 8f92357e3..4df7b4ff8 100644 --- a/tests/sql/query/group_expr +++ b/tests/sql/query/group_expr @@ -74,84 +74,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -233,84 +227,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/group_expr_aggr b/tests/sql/query/group_expr_aggr index 89808950f..82c3ce245 100644 --- a/tests/sql/query/group_expr_aggr +++ b/tests/sql/query/group_expr_aggr @@ -93,84 +93,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -281,84 +275,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/group_expr_aggr_selfref b/tests/sql/query/group_expr_aggr_selfref index 6a924437c..51943a86a 100644 --- a/tests/sql/query/group_expr_aggr_selfref +++ b/tests/sql/query/group_expr_aggr_selfref @@ -101,84 +101,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -300,84 +294,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/group_expr_aliased b/tests/sql/query/group_expr_aliased index ba5895d6b..61aef8e4f 100644 --- a/tests/sql/query/group_expr_aliased +++ b/tests/sql/query/group_expr_aliased @@ -81,84 +81,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -254,84 +248,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/group_expr_both b/tests/sql/query/group_expr_both index 9c26d0e19..fa5a3b557 100644 --- a/tests/sql/query/group_expr_both +++ b/tests/sql/query/group_expr_both @@ -90,84 +90,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -256,84 +250,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/group_expr_multigroup b/tests/sql/query/group_expr_multigroup index b4ca9c218..ffb9ad65e 100644 --- a/tests/sql/query/group_expr_multigroup +++ b/tests/sql/query/group_expr_multigroup @@ -96,84 +96,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -297,84 +291,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/group_expr_select b/tests/sql/query/group_expr_select index d3637d62f..482fbddc5 100644 --- a/tests/sql/query/group_expr_select +++ b/tests/sql/query/group_expr_select @@ -81,84 +81,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -252,84 +246,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/group_join b/tests/sql/query/group_join index f7b4d68f1..e45e9c1b7 100644 --- a/tests/sql/query/group_join +++ b/tests/sql/query/group_join @@ -109,84 +109,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -199,40 +193,38 @@ Plan: Select( right: Scan { table: Table { name: "studios", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "country_id", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, + index: true, references: Some( "countries", ), - index: true, }, ], }, @@ -350,84 +342,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -450,40 +436,38 @@ Optimized plan: Select( right: Scan { table: Table { name: "studios", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "country_id", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, + index: true, references: Some( "countries", ), - index: true, }, ], }, diff --git a/tests/sql/query/group_noaggregate b/tests/sql/query/group_noaggregate index 890e566d1..b6276ea7f 100644 --- a/tests/sql/query/group_noaggregate +++ b/tests/sql/query/group_noaggregate @@ -64,84 +64,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -209,84 +203,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/group_noselect b/tests/sql/query/group_noselect index 4e0d4c01d..fe305bdb1 100644 --- a/tests/sql/query/group_noselect +++ b/tests/sql/query/group_noselect @@ -65,84 +65,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -217,84 +211,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/group_simple b/tests/sql/query/group_simple index b965b80a1..aecfb0bea 100644 --- a/tests/sql/query/group_simple +++ b/tests/sql/query/group_simple @@ -70,84 +70,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -236,84 +230,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/having b/tests/sql/query/having index 17c99ba81..3e97b5af9 100644 --- a/tests/sql/query/having +++ b/tests/sql/query/having @@ -86,84 +86,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -272,84 +266,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/having_aggr b/tests/sql/query/having_aggr index e238dd294..ebb4c335d 100644 --- a/tests/sql/query/having_aggr +++ b/tests/sql/query/having_aggr @@ -92,84 +92,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -309,84 +303,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/having_aggr_expr b/tests/sql/query/having_aggr_expr index 96bc16821..5a6690592 100644 --- a/tests/sql/query/having_aggr_expr +++ b/tests/sql/query/having_aggr_expr @@ -105,84 +105,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -348,84 +342,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/having_noaggr b/tests/sql/query/having_noaggr index af40bb090..4dbe00b13 100644 --- a/tests/sql/query/having_noaggr +++ b/tests/sql/query/having_noaggr @@ -88,84 +88,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -326,84 +320,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/having_nogroup b/tests/sql/query/having_nogroup index 89ff3b5b8..41a0de8b7 100644 --- a/tests/sql/query/having_nogroup +++ b/tests/sql/query/having_nogroup @@ -74,84 +74,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -260,84 +254,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/having_noselect b/tests/sql/query/having_noselect index edc4fabf1..ee450fc12 100644 --- a/tests/sql/query/having_noselect +++ b/tests/sql/query/having_noselect @@ -79,84 +79,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -269,84 +263,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_cross b/tests/sql/query/join_cross index b25f97ee6..a27fac7bc 100644 --- a/tests/sql/query/join_cross +++ b/tests/sql/query/join_cross @@ -66,84 +66,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -154,26 +148,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -190,84 +183,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -278,26 +265,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_cross_alias b/tests/sql/query/join_cross_alias index bc9d01d06..afa4b91ec 100644 --- a/tests/sql/query/join_cross_alias +++ b/tests/sql/query/join_cross_alias @@ -185,84 +185,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -275,26 +269,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -310,26 +303,25 @@ Plan: Select( right: Scan { table: Table { name: "countries", + primary_key: 0, columns: [ Column { name: "id", datatype: String, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -518,84 +510,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -647,26 +633,25 @@ Optimized plan: Select( right: KeyLookup { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -686,26 +671,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "countries", + primary_key: 0, columns: [ Column { name: "id", datatype: String, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_cross_multi b/tests/sql/query/join_cross_multi index 237ae1255..e8477f2d2 100644 --- a/tests/sql/query/join_cross_multi +++ b/tests/sql/query/join_cross_multi @@ -418,84 +418,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -506,26 +500,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -539,26 +532,25 @@ Plan: Select( right: Scan { table: Table { name: "countries", + primary_key: 0, columns: [ Column { name: "id", datatype: String, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -572,40 +564,38 @@ Plan: Select( right: Scan { table: Table { name: "studios", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "country_id", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, + index: true, references: Some( "countries", ), - index: true, }, ], }, @@ -624,84 +614,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -712,26 +696,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -745,26 +728,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "countries", + primary_key: 0, columns: [ Column { name: "id", datatype: String, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -778,40 +760,38 @@ Optimized plan: Select( right: Scan { table: Table { name: "studios", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "country_id", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, + index: true, references: Some( "countries", ), - index: true, }, ], }, diff --git a/tests/sql/query/join_inner b/tests/sql/query/join_inner index 27b61034e..cffec2cfb 100644 --- a/tests/sql/query/join_inner +++ b/tests/sql/query/join_inner @@ -63,84 +63,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -151,26 +145,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -212,84 +205,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -310,26 +297,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_inner_implicit b/tests/sql/query/join_inner_implicit index 131c0733a..b7b93b261 100644 --- a/tests/sql/query/join_inner_implicit +++ b/tests/sql/query/join_inner_implicit @@ -63,84 +63,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -151,26 +145,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -212,84 +205,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -310,26 +297,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_inner_index_transverse b/tests/sql/query/join_inner_index_transverse index 9e0347a3a..316e1e028 100644 --- a/tests/sql/query/join_inner_index_transverse +++ b/tests/sql/query/join_inner_index_transverse @@ -76,84 +76,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -166,26 +160,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -249,84 +242,78 @@ Optimized plan: Select( left: IndexLookup { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -354,26 +341,25 @@ Optimized plan: Select( right: KeyLookup { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_inner_index_transverse_where b/tests/sql/query/join_inner_index_transverse_where index 2c0274c81..e6c339037 100644 --- a/tests/sql/query/join_inner_index_transverse_where +++ b/tests/sql/query/join_inner_index_transverse_where @@ -74,84 +74,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -164,26 +158,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -246,84 +239,78 @@ Optimized plan: Select( left: IndexLookup { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -351,26 +338,25 @@ Optimized plan: Select( right: KeyLookup { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_inner_multi b/tests/sql/query/join_inner_multi index 73cf74311..c258f3fac 100644 --- a/tests/sql/query/join_inner_multi +++ b/tests/sql/query/join_inner_multi @@ -129,84 +129,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -217,26 +211,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -275,40 +268,38 @@ Plan: Select( right: Scan { table: Table { name: "studios", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "country_id", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, + index: true, references: Some( "countries", ), - index: true, }, ], }, @@ -401,84 +392,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -499,26 +484,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -552,40 +536,38 @@ Optimized plan: Select( right: Scan { table: Table { name: "studios", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "country_id", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, + index: true, references: Some( "countries", ), - index: true, }, ], }, diff --git a/tests/sql/query/join_inner_multi_index b/tests/sql/query/join_inner_multi_index index ef6a13258..a7aa524a5 100644 --- a/tests/sql/query/join_inner_multi_index +++ b/tests/sql/query/join_inner_multi_index @@ -180,84 +180,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -270,26 +264,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -350,40 +343,38 @@ Plan: Select( right: Scan { table: Table { name: "studios", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "country_id", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, + index: true, references: Some( "countries", ), - index: true, }, ], }, @@ -517,84 +508,78 @@ Optimized plan: Select( source: IndexLookup { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -641,26 +626,25 @@ Optimized plan: Select( right: KeyLookup { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -700,40 +684,38 @@ Optimized plan: Select( right: KeyLookup { table: Table { name: "studios", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "country_id", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, + index: true, references: Some( "countries", ), - index: true, }, ], }, diff --git a/tests/sql/query/join_inner_multi_same b/tests/sql/query/join_inner_multi_same index ced48e5f2..fb26a2112 100644 --- a/tests/sql/query/join_inner_multi_same +++ b/tests/sql/query/join_inner_multi_same @@ -229,84 +229,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -319,26 +313,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -380,40 +373,38 @@ Plan: Select( left: Scan { table: Table { name: "studios", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "country_id", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, + index: true, references: Some( "countries", ), - index: true, }, ], }, @@ -426,84 +417,78 @@ Plan: Select( right: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -793,84 +778,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -893,26 +872,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -949,40 +927,38 @@ Optimized plan: Select( left: Scan { table: Table { name: "studios", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "country_id", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, + index: true, references: Some( "countries", ), - index: true, }, ], }, @@ -1005,84 +981,78 @@ Optimized plan: Select( right: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_inner_on_aliased b/tests/sql/query/join_inner_on_aliased index 1a3ca6e99..7e9e7bd3d 100644 --- a/tests/sql/query/join_inner_on_aliased +++ b/tests/sql/query/join_inner_on_aliased @@ -67,84 +67,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -157,26 +151,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -220,84 +213,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -320,26 +307,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_inner_on_false b/tests/sql/query/join_inner_on_false index 22d909a37..966614b47 100644 --- a/tests/sql/query/join_inner_on_false +++ b/tests/sql/query/join_inner_on_false @@ -42,84 +42,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -130,26 +124,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -172,84 +165,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -266,26 +253,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_inner_on_multi b/tests/sql/query/join_inner_on_multi index 965395911..4d2aaf6ad 100644 --- a/tests/sql/query/join_inner_on_multi +++ b/tests/sql/query/join_inner_on_multi @@ -75,84 +75,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -163,26 +157,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -250,84 +243,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -338,26 +325,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_inner_on_true b/tests/sql/query/join_inner_on_true index ae45b7877..4e21a5b9b 100644 --- a/tests/sql/query/join_inner_on_true +++ b/tests/sql/query/join_inner_on_true @@ -72,84 +72,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -160,26 +154,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -202,84 +195,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -296,26 +283,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_inner_on_where b/tests/sql/query/join_inner_on_where index f1eab10c7..0df23f066 100644 --- a/tests/sql/query/join_inner_on_where +++ b/tests/sql/query/join_inner_on_where @@ -78,84 +78,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -166,26 +160,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -266,84 +259,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -403,26 +390,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_left b/tests/sql/query/join_left index df10e9189..d41d583d5 100644 --- a/tests/sql/query/join_left +++ b/tests/sql/query/join_left @@ -92,84 +92,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -182,26 +176,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -281,84 +274,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -381,26 +368,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_left_all b/tests/sql/query/join_left_all index 0c2931a62..f452714a4 100644 --- a/tests/sql/query/join_left_all +++ b/tests/sql/query/join_left_all @@ -67,84 +67,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -157,26 +151,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -220,84 +213,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -320,26 +307,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_left_outer b/tests/sql/query/join_left_outer index d943f7a51..ed436b1ac 100644 --- a/tests/sql/query/join_left_outer +++ b/tests/sql/query/join_left_outer @@ -92,84 +92,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -182,26 +176,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -281,84 +274,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -381,26 +368,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_left_truncate b/tests/sql/query/join_left_truncate index f0a121a59..614fb90f9 100644 --- a/tests/sql/query/join_left_truncate +++ b/tests/sql/query/join_left_truncate @@ -85,26 +85,25 @@ Plan: Select( left: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -117,84 +116,78 @@ Plan: Select( right: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -274,26 +267,25 @@ Optimized plan: Select( left: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -316,84 +308,78 @@ Optimized plan: Select( right: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_right b/tests/sql/query/join_right index 601d2cf8b..6a5df162b 100644 --- a/tests/sql/query/join_right +++ b/tests/sql/query/join_right @@ -94,84 +94,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -184,26 +178,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -413,84 +406,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -513,26 +500,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_right_all b/tests/sql/query/join_right_all index 763cd7a1d..5c8a1319d 100644 --- a/tests/sql/query/join_right_all +++ b/tests/sql/query/join_right_all @@ -69,84 +69,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -159,26 +153,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -352,84 +345,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -452,26 +439,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_right_outer b/tests/sql/query/join_right_outer index e7b0ec6a7..810b51dbd 100644 --- a/tests/sql/query/join_right_outer +++ b/tests/sql/query/join_right_outer @@ -94,84 +94,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -184,26 +178,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -413,84 +406,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -513,26 +500,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/join_right_truncate b/tests/sql/query/join_right_truncate index d307b964d..12c5df4fe 100644 --- a/tests/sql/query/join_right_truncate +++ b/tests/sql/query/join_right_truncate @@ -87,26 +87,25 @@ Plan: Select( left: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -119,84 +118,78 @@ Plan: Select( right: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -406,26 +399,25 @@ Optimized plan: Select( left: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -448,84 +440,78 @@ Optimized plan: Select( right: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/limit b/tests/sql/query/limit index c6b3d94bc..64a6871af 100644 --- a/tests/sql/query/limit +++ b/tests/sql/query/limit @@ -36,84 +36,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -129,84 +123,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/limit_expr b/tests/sql/query/limit_expr index 078e235a2..d2358b321 100644 --- a/tests/sql/query/limit_expr +++ b/tests/sql/query/limit_expr @@ -45,84 +45,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -138,84 +132,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/limit_large b/tests/sql/query/limit_large index 65aeaee25..9614bc2fc 100644 --- a/tests/sql/query/limit_large +++ b/tests/sql/query/limit_large @@ -43,84 +43,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -136,84 +130,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/limit_offset b/tests/sql/query/limit_offset index c37dc7e71..39a44ab1d 100644 --- a/tests/sql/query/limit_offset +++ b/tests/sql/query/limit_offset @@ -43,84 +43,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -139,84 +133,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/limit_zero b/tests/sql/query/limit_zero index e43cf9eb7..b313c4736 100644 --- a/tests/sql/query/limit_zero +++ b/tests/sql/query/limit_zero @@ -33,84 +33,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -126,84 +120,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/offset b/tests/sql/query/offset index 013a54444..9a18a23b7 100644 --- a/tests/sql/query/offset +++ b/tests/sql/query/offset @@ -40,84 +40,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -133,84 +127,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/offset_expr b/tests/sql/query/offset_expr index a0a8bce7d..b00c18c71 100644 --- a/tests/sql/query/offset_expr +++ b/tests/sql/query/offset_expr @@ -49,84 +49,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -142,84 +136,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/offset_large b/tests/sql/query/offset_large index edd19e0dd..e2069cbbd 100644 --- a/tests/sql/query/offset_large +++ b/tests/sql/query/offset_large @@ -33,84 +33,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -126,84 +120,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/offset_zero b/tests/sql/query/offset_zero index 143db3981..dfad98dfd 100644 --- a/tests/sql/query/offset_zero +++ b/tests/sql/query/offset_zero @@ -43,84 +43,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -136,84 +130,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order b/tests/sql/query/order index 1bfa67978..99c9274e0 100644 --- a/tests/sql/query/order +++ b/tests/sql/query/order @@ -45,84 +45,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -151,84 +145,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_aggregate b/tests/sql/query/order_aggregate index 7b9582522..3288d4b2b 100644 --- a/tests/sql/query/order_aggregate +++ b/tests/sql/query/order_aggregate @@ -75,84 +75,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -234,84 +228,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_aggregate_noselect b/tests/sql/query/order_aggregate_noselect index 3650ac690..01e071db8 100644 --- a/tests/sql/query/order_aggregate_noselect +++ b/tests/sql/query/order_aggregate_noselect @@ -77,84 +77,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -274,84 +268,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_asc b/tests/sql/query/order_asc index 9c45b858c..75510ef2a 100644 --- a/tests/sql/query/order_asc +++ b/tests/sql/query/order_asc @@ -45,84 +45,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -151,84 +145,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_asc_lowercase b/tests/sql/query/order_asc_lowercase index 4bd3c6ae1..b5fd2c328 100644 --- a/tests/sql/query/order_asc_lowercase +++ b/tests/sql/query/order_asc_lowercase @@ -45,84 +45,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -151,84 +145,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_boolean_asc b/tests/sql/query/order_boolean_asc index b9cdb8838..e4fe26b49 100644 --- a/tests/sql/query/order_boolean_asc +++ b/tests/sql/query/order_boolean_asc @@ -38,28 +38,27 @@ Plan: Select( source: Scan { table: Table { name: "booleans", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -88,28 +87,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "booleans", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_boolean_desc b/tests/sql/query/order_boolean_desc index 88b951aa4..3c61f1a76 100644 --- a/tests/sql/query/order_boolean_desc +++ b/tests/sql/query/order_boolean_desc @@ -38,28 +38,27 @@ Plan: Select( source: Scan { table: Table { name: "booleans", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -88,28 +87,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "booleans", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_desc b/tests/sql/query/order_desc index 69c34b087..6b2a0882a 100644 --- a/tests/sql/query/order_desc +++ b/tests/sql/query/order_desc @@ -45,84 +45,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -151,84 +145,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_desc_lowercase b/tests/sql/query/order_desc_lowercase index 3fa3ec5cc..887bf4214 100644 --- a/tests/sql/query/order_desc_lowercase +++ b/tests/sql/query/order_desc_lowercase @@ -45,84 +45,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -151,84 +145,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_expr b/tests/sql/query/order_expr index 30546205b..e48e88d3c 100644 --- a/tests/sql/query/order_expr +++ b/tests/sql/query/order_expr @@ -96,84 +96,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -263,84 +257,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_field_aliased b/tests/sql/query/order_field_aliased index 79d7657e4..39662c071 100644 --- a/tests/sql/query/order_field_aliased +++ b/tests/sql/query/order_field_aliased @@ -107,84 +107,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -195,26 +189,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -332,84 +325,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -430,26 +417,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_field_qualified b/tests/sql/query/order_field_qualified index 593f01b08..4aa8b69b4 100644 --- a/tests/sql/query/order_field_qualified +++ b/tests/sql/query/order_field_qualified @@ -109,84 +109,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -197,26 +191,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -385,84 +378,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -483,26 +470,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_float_asc b/tests/sql/query/order_float_asc index 9d71a8d80..fab6437bb 100644 --- a/tests/sql/query/order_float_asc +++ b/tests/sql/query/order_float_asc @@ -40,28 +40,27 @@ Plan: Select( source: Scan { table: Table { name: "floats", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -90,28 +89,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "floats", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_float_desc b/tests/sql/query/order_float_desc index b101ea0e4..edb4c39fe 100644 --- a/tests/sql/query/order_float_desc +++ b/tests/sql/query/order_float_desc @@ -40,28 +40,27 @@ Plan: Select( source: Scan { table: Table { name: "floats", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -90,28 +89,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "floats", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_group_by_noselect b/tests/sql/query/order_group_by_noselect index 456d0e249..e7b568d38 100644 --- a/tests/sql/query/order_group_by_noselect +++ b/tests/sql/query/order_group_by_noselect @@ -65,84 +65,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -242,84 +236,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_integer_asc b/tests/sql/query/order_integer_asc index 29c4e282b..02ad58d41 100644 --- a/tests/sql/query/order_integer_asc +++ b/tests/sql/query/order_integer_asc @@ -40,28 +40,27 @@ Plan: Select( source: Scan { table: Table { name: "integers", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: Integer, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -90,28 +89,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "integers", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: Integer, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_integer_desc b/tests/sql/query/order_integer_desc index b13a327b6..4641a45f8 100644 --- a/tests/sql/query/order_integer_desc +++ b/tests/sql/query/order_integer_desc @@ -40,28 +40,27 @@ Plan: Select( source: Scan { table: Table { name: "integers", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: Integer, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -90,28 +89,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "integers", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: Integer, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_multi b/tests/sql/query/order_multi index d01fe8288..00225f22a 100644 --- a/tests/sql/query/order_multi +++ b/tests/sql/query/order_multi @@ -52,84 +52,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -170,84 +164,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_noselect b/tests/sql/query/order_noselect index 7ec269e05..e2c79eb7a 100644 --- a/tests/sql/query/order_noselect +++ b/tests/sql/query/order_noselect @@ -64,84 +64,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -230,84 +224,78 @@ Optimized plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_string_asc b/tests/sql/query/order_string_asc index 914970eee..1696019d7 100644 --- a/tests/sql/query/order_string_asc +++ b/tests/sql/query/order_string_asc @@ -43,28 +43,27 @@ Plan: Select( source: Scan { table: Table { name: "strings", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -93,28 +92,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "strings", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/order_string_desc b/tests/sql/query/order_string_desc index e13a297b2..b65ac23ad 100644 --- a/tests/sql/query/order_string_desc +++ b/tests/sql/query/order_string_desc @@ -43,28 +43,27 @@ Plan: Select( source: Scan { table: Table { name: "strings", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -93,28 +92,27 @@ Optimized plan: Select( source: Scan { table: Table { name: "strings", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "value", datatype: String, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_expr b/tests/sql/query/where_expr index c9180e6cb..7b5334fd6 100644 --- a/tests/sql/query/where_expr +++ b/tests/sql/query/where_expr @@ -53,84 +53,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -189,84 +183,78 @@ Optimized plan: Select( Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_false b/tests/sql/query/where_false index 127c035f3..67b17ae6d 100644 --- a/tests/sql/query/where_false +++ b/tests/sql/query/where_false @@ -32,84 +32,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -128,84 +122,78 @@ Optimized plan: Select( Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_field_aliased_table b/tests/sql/query/where_field_aliased_table index 669497b8f..f24dc7a56 100644 --- a/tests/sql/query/where_field_aliased_table +++ b/tests/sql/query/where_field_aliased_table @@ -101,84 +101,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -191,26 +185,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -320,84 +313,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -449,26 +436,25 @@ Optimized plan: Select( right: KeyLookup { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_field_qualified b/tests/sql/query/where_field_qualified index 9fb6faa0b..4789fbca2 100644 --- a/tests/sql/query/where_field_qualified +++ b/tests/sql/query/where_field_qualified @@ -97,84 +97,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -185,26 +179,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -312,84 +305,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -439,26 +426,25 @@ Optimized plan: Select( right: KeyLookup { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_float b/tests/sql/query/where_float index 21fd122a3..d9355a221 100644 --- a/tests/sql/query/where_float +++ b/tests/sql/query/where_float @@ -32,84 +32,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -128,84 +122,78 @@ Optimized plan: Select( Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_index b/tests/sql/query/where_index index f02538ce0..9506839b2 100644 --- a/tests/sql/query/where_index +++ b/tests/sql/query/where_index @@ -52,84 +52,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -175,84 +169,78 @@ Optimized plan: Select( source: IndexLookup { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_index_or b/tests/sql/query/where_index_or index 0ea527861..101b47e42 100644 --- a/tests/sql/query/where_index_or +++ b/tests/sql/query/where_index_or @@ -105,84 +105,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -282,84 +276,78 @@ Optimized plan: Select( source: IndexLookup { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_index_or_partial b/tests/sql/query/where_index_or_partial index 4a410fad3..f43368ce0 100644 --- a/tests/sql/query/where_index_or_partial +++ b/tests/sql/query/where_index_or_partial @@ -87,84 +87,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -247,84 +241,78 @@ Optimized plan: Select( source: IndexLookup { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_integer b/tests/sql/query/where_integer index 71b04d411..0039534b3 100644 --- a/tests/sql/query/where_integer +++ b/tests/sql/query/where_integer @@ -32,84 +32,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -128,84 +122,78 @@ Optimized plan: Select( Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_join_inner b/tests/sql/query/where_join_inner index ca0fbdbbf..bad1e5554 100644 --- a/tests/sql/query/where_join_inner +++ b/tests/sql/query/where_join_inner @@ -60,84 +60,78 @@ Plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -148,26 +142,25 @@ Plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, @@ -209,84 +202,78 @@ Optimized plan: Select( left: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -307,26 +294,25 @@ Optimized plan: Select( right: Scan { table: Table { name: "genres", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "name", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_null b/tests/sql/query/where_null index 8208a0660..34c69f9c7 100644 --- a/tests/sql/query/where_null +++ b/tests/sql/query/where_null @@ -30,84 +30,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -124,84 +118,78 @@ Optimized plan: Select( Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_pk b/tests/sql/query/where_pk index 0da079dd8..5d82532b4 100644 --- a/tests/sql/query/where_pk +++ b/tests/sql/query/where_pk @@ -41,84 +41,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -148,84 +142,78 @@ Optimized plan: Select( KeyLookup { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_pk_or b/tests/sql/query/where_pk_or index cc5be5dc2..3d4dcec50 100644 --- a/tests/sql/query/where_pk_or +++ b/tests/sql/query/where_pk_or @@ -77,84 +77,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -220,84 +214,78 @@ Optimized plan: Select( KeyLookup { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_pk_or_partial b/tests/sql/query/where_pk_or_partial index 9bc99aff4..ae467da0f 100644 --- a/tests/sql/query/where_pk_or_partial +++ b/tests/sql/query/where_pk_or_partial @@ -111,84 +111,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -291,84 +285,78 @@ Optimized plan: Select( source: KeyLookup { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_string b/tests/sql/query/where_string index 9e5da9b1e..b442dfe6f 100644 --- a/tests/sql/query/where_string +++ b/tests/sql/query/where_string @@ -32,84 +32,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -128,84 +122,78 @@ Optimized plan: Select( Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/query/where_true b/tests/sql/query/where_true index 4c7b7e678..daf6fc339 100644 --- a/tests/sql/query/where_true +++ b/tests/sql/query/where_true @@ -42,84 +42,78 @@ Plan: Select( source: Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, @@ -138,84 +132,78 @@ Optimized plan: Select( Scan { table: Table { name: "movies", + primary_key: 0, columns: [ Column { name: "id", datatype: Integer, - primary_key: true, nullable: false, default: None, unique: true, - references: None, index: false, + references: None, }, Column { name: "title", datatype: String, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "studio_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "studios", ), - index: true, }, Column { name: "genre_id", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, + index: true, references: Some( "genres", ), - index: true, }, Column { name: "released", datatype: Integer, - primary_key: false, nullable: false, default: None, unique: false, - references: None, index: false, + references: None, }, Column { name: "rating", datatype: Float, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, Column { name: "ultrahd", datatype: Boolean, - primary_key: false, nullable: true, default: Some( Null, ), unique: false, - references: None, index: false, + references: None, }, ], }, diff --git a/tests/sql/schema/create_table_default_conflict b/tests/sql/schema/create_table_default_conflict index 22d4dae28..a9e03db19 100644 --- a/tests/sql/schema/create_table_default_conflict +++ b/tests/sql/schema/create_table_default_conflict @@ -1,4 +1,4 @@ Query: CREATE TABLE name (id INTEGER PRIMARY KEY, value STRING DEFAULT 7) -Error: InvalidInput("default value for column value has datatype INTEGER, must be STRING") +Error: InvalidInput("invalid datatype INTEGER for STRING column value") Storage: \ No newline at end of file diff --git a/tests/sql/schema/create_table_default_conflict_float_integer b/tests/sql/schema/create_table_default_conflict_float_integer index 49f4106fd..832db30c4 100644 --- a/tests/sql/schema/create_table_default_conflict_float_integer +++ b/tests/sql/schema/create_table_default_conflict_float_integer @@ -1,4 +1,4 @@ Query: CREATE TABLE name (id INTEGER PRIMARY KEY, value FLOAT DEFAULT 7) -Error: InvalidInput("default value for column value has datatype INTEGER, must be FLOAT") +Error: InvalidInput("invalid datatype INTEGER for FLOAT column value") Storage: \ No newline at end of file diff --git a/tests/sql/schema/create_table_default_conflict_integer_float b/tests/sql/schema/create_table_default_conflict_integer_float index fec3cf142..f0867d6d5 100644 --- a/tests/sql/schema/create_table_default_conflict_integer_float +++ b/tests/sql/schema/create_table_default_conflict_integer_float @@ -1,4 +1,4 @@ Query: CREATE TABLE name (id INTEGER PRIMARY KEY, value INTEGER DEFAULT 3.14) -Error: InvalidInput("default value for column value has datatype FLOAT, must be INTEGER") +Error: InvalidInput("invalid datatype FLOAT for INTEGER column value") Storage: \ No newline at end of file diff --git a/tests/sql/schema/create_table_default_null_not b/tests/sql/schema/create_table_default_null_not index dab9b4d86..3e4c24187 100644 --- a/tests/sql/schema/create_table_default_null_not +++ b/tests/sql/schema/create_table_default_null_not @@ -1,4 +1,4 @@ Query: CREATE TABLE name (id INTEGER PRIMARY KEY, value STRING NOT NULL DEFAULT NULL) -Error: InvalidInput("can't use NULL as default value for non-nullable column value") +Error: InvalidInput("invalid NULL default for non-nullable column value") Storage: \ No newline at end of file diff --git a/tests/sql/schema/create_table_pk_missing b/tests/sql/schema/create_table_pk_missing index 9241329b0..0511f2c8d 100644 --- a/tests/sql/schema/create_table_pk_missing +++ b/tests/sql/schema/create_table_pk_missing @@ -1,4 +1,4 @@ Query: CREATE TABLE name (id INTEGER) -Error: InvalidInput("no primary key in table name") +Error: InvalidInput("no primary key for table name") Storage: \ No newline at end of file diff --git a/tests/sql/schema/create_table_pk_multiple b/tests/sql/schema/create_table_pk_multiple index bdb48c668..a20c9ccf2 100644 --- a/tests/sql/schema/create_table_pk_multiple +++ b/tests/sql/schema/create_table_pk_multiple @@ -1,4 +1,4 @@ Query: CREATE TABLE name (id INTEGER PRIMARY KEY, name STRING PRIMARY KEY) -Error: InvalidInput("multiple primary keys in table name") +Error: InvalidInput("multiple primary keys for table name") Storage: \ No newline at end of file diff --git a/tests/sql/schema/create_table_ref b/tests/sql/schema/create_table_ref index e39df8a32..a36775230 100644 --- a/tests/sql/schema/create_table_ref +++ b/tests/sql/schema/create_table_ref @@ -4,9 +4,11 @@ Result: CreateTable { name: "other" } Storage: CREATE TABLE other ( id INTEGER PRIMARY KEY, - test_id INTEGER DEFAULT NULL REFERENCES test + test_id INTEGER DEFAULT NULL INDEX REFERENCES test ) +Index other.test_id + CREATE TABLE test ( id INTEGER PRIMARY KEY ) diff --git a/tests/sql/schema/create_table_ref_missing b/tests/sql/schema/create_table_ref_missing index 6e50621bb..65ddecb1c 100644 --- a/tests/sql/schema/create_table_ref_missing +++ b/tests/sql/schema/create_table_ref_missing @@ -1,5 +1,5 @@ Query: CREATE TABLE other (id INTEGER PRIMARY KEY, missing_id INTEGER REFERENCES missing) -Error: InvalidInput("table missing referenced by column missing_id does not exist") +Error: InvalidInput("unknown table missing referenced by column missing_id") Storage: CREATE TABLE test ( diff --git a/tests/sql/schema/create_table_ref_multiple b/tests/sql/schema/create_table_ref_multiple index 6255f9120..01f446411 100644 --- a/tests/sql/schema/create_table_ref_multiple +++ b/tests/sql/schema/create_table_ref_multiple @@ -9,11 +9,17 @@ Result: CreateTable { name: "other" } Storage: CREATE TABLE other ( id INTEGER PRIMARY KEY, - test_id_a INTEGER DEFAULT NULL REFERENCES test, - test_id_b INTEGER DEFAULT NULL REFERENCES test, - test_id_c INTEGER DEFAULT NULL REFERENCES test + test_id_a INTEGER DEFAULT NULL INDEX REFERENCES test, + test_id_b INTEGER DEFAULT NULL INDEX REFERENCES test, + test_id_c INTEGER DEFAULT NULL INDEX REFERENCES test ) +Index other.test_id_a + +Index other.test_id_b + +Index other.test_id_c + CREATE TABLE test ( id INTEGER PRIMARY KEY ) diff --git a/tests/sql/schema/create_table_ref_self b/tests/sql/schema/create_table_ref_self index 0612a2f6f..06d9ac9fa 100644 --- a/tests/sql/schema/create_table_ref_self +++ b/tests/sql/schema/create_table_ref_self @@ -4,9 +4,11 @@ Result: CreateTable { name: "other" } Storage: CREATE TABLE other ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES other + self_id INTEGER DEFAULT NULL INDEX REFERENCES other ) +Index other.self_id + CREATE TABLE test ( id INTEGER PRIMARY KEY ) diff --git a/tests/sql/schema/create_table_ref_self_type b/tests/sql/schema/create_table_ref_self_type index f608832f1..8affab646 100644 --- a/tests/sql/schema/create_table_ref_self_type +++ b/tests/sql/schema/create_table_ref_self_type @@ -1,5 +1,5 @@ Query: CREATE TABLE other (id INTEGER PRIMARY KEY, self_id STRING REFERENCES other) -Error: InvalidInput("can't reference INTEGER primary key of table other from STRING column self_id") +Error: InvalidInput("can't reference INTEGER primary key of other from STRING column self_id") Storage: CREATE TABLE test ( diff --git a/tests/sql/schema/create_table_ref_type b/tests/sql/schema/create_table_ref_type index 62eba61c3..d60634d55 100644 --- a/tests/sql/schema/create_table_ref_type +++ b/tests/sql/schema/create_table_ref_type @@ -1,5 +1,5 @@ Query: CREATE TABLE other (id INTEGER PRIMARY KEY, test_id STRING REFERENCES test) -Error: InvalidInput("can't reference INTEGER primary key of table test from STRING column test_id") +Error: InvalidInput("can't reference INTEGER primary key of test from STRING column test_id") Storage: CREATE TABLE test ( diff --git a/tests/sql/schema/create_table_unique b/tests/sql/schema/create_table_unique index 0e8a304b3..716e35d6d 100644 --- a/tests/sql/schema/create_table_unique +++ b/tests/sql/schema/create_table_unique @@ -4,5 +4,7 @@ Result: CreateTable { name: "name" } Storage: CREATE TABLE name ( id INTEGER PRIMARY KEY, - value STRING DEFAULT NULL UNIQUE + value STRING DEFAULT NULL UNIQUE INDEX ) + +Index name.value diff --git a/tests/sql/schema/create_table_unique_default b/tests/sql/schema/create_table_unique_default index 995143355..2c42084da 100644 --- a/tests/sql/schema/create_table_unique_default +++ b/tests/sql/schema/create_table_unique_default @@ -4,5 +4,7 @@ Result: CreateTable { name: "name" } Storage: CREATE TABLE name ( id INTEGER PRIMARY KEY, - value STRING DEFAULT foo UNIQUE + value STRING DEFAULT foo UNIQUE INDEX ) + +Index name.value diff --git a/tests/sql/schema/create_table_unique_not_null b/tests/sql/schema/create_table_unique_not_null index 4dc72d98e..bbe3bb700 100644 --- a/tests/sql/schema/create_table_unique_not_null +++ b/tests/sql/schema/create_table_unique_not_null @@ -4,5 +4,7 @@ Result: CreateTable { name: "name" } Storage: CREATE TABLE name ( id INTEGER PRIMARY KEY, - value STRING NOT NULL UNIQUE + value STRING NOT NULL UNIQUE INDEX ) + +Index name.value diff --git a/tests/sql/schema/create_table_unique_null b/tests/sql/schema/create_table_unique_null index edfba56ad..475ee223e 100644 --- a/tests/sql/schema/create_table_unique_null +++ b/tests/sql/schema/create_table_unique_null @@ -4,5 +4,7 @@ Result: CreateTable { name: "name" } Storage: CREATE TABLE name ( id INTEGER PRIMARY KEY, - value STRING DEFAULT NULL UNIQUE + value STRING DEFAULT NULL UNIQUE INDEX ) + +Index name.value diff --git a/tests/sql/schema/delete_ref_conflict b/tests/sql/schema/delete_ref_conflict index 3a8450e05..6734a1328 100644 --- a/tests/sql/schema/delete_ref_conflict +++ b/tests/sql/schema/delete_ref_conflict @@ -4,12 +4,17 @@ Error: InvalidInput("primary key 1 referenced by table source column target_id") Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Integer(1)] [Integer(2), Integer(2)] [Integer(4), Null] +Index source.target_id +Null => [Integer(4)] +Integer(1) => [Integer(1)] +Integer(2) => [Integer(2)] + CREATE TABLE target ( id INTEGER PRIMARY KEY, value STRING DEFAULT NULL diff --git a/tests/sql/schema/delete_ref_noref b/tests/sql/schema/delete_ref_noref index a8c518d37..c2effd836 100644 --- a/tests/sql/schema/delete_ref_noref +++ b/tests/sql/schema/delete_ref_noref @@ -4,12 +4,17 @@ Result: Delete { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Integer(1)] [Integer(2), Integer(2)] [Integer(4), Null] +Index source.target_id +Null => [Integer(4)] +Integer(1) => [Integer(1)] +Integer(2) => [Integer(2)] + CREATE TABLE target ( id INTEGER PRIMARY KEY, value STRING DEFAULT NULL diff --git a/tests/sql/schema/delete_ref_self b/tests/sql/schema/delete_ref_self index 18452a24e..11c0e2282 100644 --- a/tests/sql/schema/delete_ref_self +++ b/tests/sql/schema/delete_ref_self @@ -4,9 +4,13 @@ Result: Delete { count: 1 } Storage: CREATE TABLE self ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES self, + self_id INTEGER DEFAULT NULL INDEX REFERENCES self, value STRING DEFAULT NULL ) [Integer(1), Integer(1), String("a")] [Integer(2), Integer(1), String("b")] [Integer(4), Null, String("d")] + +Index self.self_id +Null => [Integer(4)] +Integer(1) => [Integer(1), Integer(2)] diff --git a/tests/sql/schema/delete_ref_self_all b/tests/sql/schema/delete_ref_self_all index d3bee57c5..0798d66b3 100644 --- a/tests/sql/schema/delete_ref_self_all +++ b/tests/sql/schema/delete_ref_self_all @@ -4,10 +4,15 @@ Error: InvalidInput("primary key 1 referenced by table self column self_id") Storage: CREATE TABLE self ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES self, + self_id INTEGER DEFAULT NULL INDEX REFERENCES self, value STRING DEFAULT NULL ) [Integer(1), Integer(1), String("a")] [Integer(2), Integer(1), String("b")] [Integer(3), Integer(3), String("c")] [Integer(4), Null, String("d")] + +Index self.self_id +Null => [Integer(4)] +Integer(1) => [Integer(1), Integer(2)] +Integer(3) => [Integer(3)] diff --git a/tests/sql/schema/delete_ref_self_conflict b/tests/sql/schema/delete_ref_self_conflict index 85ec43dde..ec7306368 100644 --- a/tests/sql/schema/delete_ref_self_conflict +++ b/tests/sql/schema/delete_ref_self_conflict @@ -4,10 +4,15 @@ Error: InvalidInput("primary key 1 referenced by table self column self_id") Storage: CREATE TABLE self ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES self, + self_id INTEGER DEFAULT NULL INDEX REFERENCES self, value STRING DEFAULT NULL ) [Integer(1), Integer(1), String("a")] [Integer(2), Integer(1), String("b")] [Integer(3), Integer(3), String("c")] [Integer(4), Null, String("d")] + +Index self.self_id +Null => [Integer(4)] +Integer(1) => [Integer(1), Integer(2)] +Integer(3) => [Integer(3)] diff --git a/tests/sql/schema/delete_ref_source b/tests/sql/schema/delete_ref_source index da31eed3d..e2f266c4c 100644 --- a/tests/sql/schema/delete_ref_source +++ b/tests/sql/schema/delete_ref_source @@ -4,11 +4,15 @@ Result: Delete { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) [Integer(2), Integer(2)] [Integer(4), Null] +Index source.target_id +Null => [Integer(4)] +Integer(2) => [Integer(2)] + CREATE TABLE target ( id INTEGER PRIMARY KEY, value STRING DEFAULT NULL diff --git a/tests/sql/schema/drop_table_ref_self b/tests/sql/schema/drop_table_ref_self index 7423f71e4..0db611453 100644 --- a/tests/sql/schema/drop_table_ref_self +++ b/tests/sql/schema/drop_table_ref_self @@ -4,9 +4,11 @@ Result: DropTable { name: "self", existed: true } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) +Index source.target_id + CREATE TABLE target ( id INTEGER PRIMARY KEY ) diff --git a/tests/sql/schema/drop_table_ref_source b/tests/sql/schema/drop_table_ref_source index 40a555e90..050a54ff9 100644 --- a/tests/sql/schema/drop_table_ref_source +++ b/tests/sql/schema/drop_table_ref_source @@ -4,9 +4,11 @@ Result: DropTable { name: "source", existed: true } Storage: CREATE TABLE self ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES self + self_id INTEGER DEFAULT NULL INDEX REFERENCES self ) +Index self.self_id + CREATE TABLE target ( id INTEGER PRIMARY KEY ) diff --git a/tests/sql/schema/drop_table_ref_target b/tests/sql/schema/drop_table_ref_target index 187a6881c..6dd8b39b6 100644 --- a/tests/sql/schema/drop_table_ref_target +++ b/tests/sql/schema/drop_table_ref_target @@ -4,14 +4,18 @@ Error: InvalidInput("table target is referenced by table source column target_id Storage: CREATE TABLE self ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES self + self_id INTEGER DEFAULT NULL INDEX REFERENCES self ) +Index self.self_id + CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) +Index source.target_id + CREATE TABLE target ( id INTEGER PRIMARY KEY ) diff --git a/tests/sql/schema/insert_ref_boolean b/tests/sql/schema/insert_ref_boolean index acebb13fd..8b7237060 100644 --- a/tests/sql/schema/insert_ref_boolean +++ b/tests/sql/schema/insert_ref_boolean @@ -4,10 +4,13 @@ Result: Create { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id BOOLEAN DEFAULT NULL REFERENCES target + target_id BOOLEAN DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Boolean(true)] +Index source.target_id +Boolean(true) => [Integer(1)] + CREATE TABLE target ( id BOOLEAN PRIMARY KEY ) diff --git a/tests/sql/schema/insert_ref_boolean_missing b/tests/sql/schema/insert_ref_boolean_missing index 92f834ce1..f022db4bb 100644 --- a/tests/sql/schema/insert_ref_boolean_missing +++ b/tests/sql/schema/insert_ref_boolean_missing @@ -4,9 +4,11 @@ Error: InvalidInput("referenced primary key FALSE in table target does not exist Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id BOOLEAN DEFAULT NULL REFERENCES target + target_id BOOLEAN DEFAULT NULL INDEX REFERENCES target ) +Index source.target_id + CREATE TABLE target ( id BOOLEAN PRIMARY KEY ) diff --git a/tests/sql/schema/insert_ref_boolean_null b/tests/sql/schema/insert_ref_boolean_null index 5021a5951..edbbfd007 100644 --- a/tests/sql/schema/insert_ref_boolean_null +++ b/tests/sql/schema/insert_ref_boolean_null @@ -4,10 +4,13 @@ Result: Create { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id BOOLEAN DEFAULT NULL REFERENCES target + target_id BOOLEAN DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Null] +Index source.target_id +Null => [Integer(1)] + CREATE TABLE target ( id BOOLEAN PRIMARY KEY ) diff --git a/tests/sql/schema/insert_ref_float b/tests/sql/schema/insert_ref_float index 0ca648985..b3ff2a724 100644 --- a/tests/sql/schema/insert_ref_float +++ b/tests/sql/schema/insert_ref_float @@ -4,10 +4,13 @@ Result: Create { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id FLOAT DEFAULT NULL REFERENCES target + target_id FLOAT DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Float(3.14)] +Index source.target_id +Float(3.14) => [Integer(1)] + CREATE TABLE target ( id FLOAT PRIMARY KEY ) diff --git a/tests/sql/schema/insert_ref_float_missing b/tests/sql/schema/insert_ref_float_missing index 91c21b1f1..d11077084 100644 --- a/tests/sql/schema/insert_ref_float_missing +++ b/tests/sql/schema/insert_ref_float_missing @@ -4,9 +4,11 @@ Error: InvalidInput("referenced primary key 1.618 in table target does not exist Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id FLOAT DEFAULT NULL REFERENCES target + target_id FLOAT DEFAULT NULL INDEX REFERENCES target ) +Index source.target_id + CREATE TABLE target ( id FLOAT PRIMARY KEY ) diff --git a/tests/sql/schema/insert_ref_float_null b/tests/sql/schema/insert_ref_float_null index c97db5a24..0143a2421 100644 --- a/tests/sql/schema/insert_ref_float_null +++ b/tests/sql/schema/insert_ref_float_null @@ -4,10 +4,13 @@ Result: Create { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id FLOAT DEFAULT NULL REFERENCES target + target_id FLOAT DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Null] +Index source.target_id +Null => [Integer(1)] + CREATE TABLE target ( id FLOAT PRIMARY KEY ) diff --git a/tests/sql/schema/insert_ref_integer b/tests/sql/schema/insert_ref_integer index e686d7ba7..b3dbce2a3 100644 --- a/tests/sql/schema/insert_ref_integer +++ b/tests/sql/schema/insert_ref_integer @@ -4,10 +4,13 @@ Result: Create { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Integer(1)] +Index source.target_id +Integer(1) => [Integer(1)] + CREATE TABLE target ( id INTEGER PRIMARY KEY ) diff --git a/tests/sql/schema/insert_ref_integer_missing b/tests/sql/schema/insert_ref_integer_missing index fb6f14a24..146888841 100644 --- a/tests/sql/schema/insert_ref_integer_missing +++ b/tests/sql/schema/insert_ref_integer_missing @@ -4,9 +4,11 @@ Error: InvalidInput("referenced primary key 7 in table target does not exist") Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) +Index source.target_id + CREATE TABLE target ( id INTEGER PRIMARY KEY ) diff --git a/tests/sql/schema/insert_ref_integer_null b/tests/sql/schema/insert_ref_integer_null index ae1045336..2e35fa860 100644 --- a/tests/sql/schema/insert_ref_integer_null +++ b/tests/sql/schema/insert_ref_integer_null @@ -4,10 +4,13 @@ Result: Create { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Null] +Index source.target_id +Null => [Integer(1)] + CREATE TABLE target ( id INTEGER PRIMARY KEY ) diff --git a/tests/sql/schema/insert_ref_self b/tests/sql/schema/insert_ref_self index 25d51eb7b..2d6dcce98 100644 --- a/tests/sql/schema/insert_ref_self +++ b/tests/sql/schema/insert_ref_self @@ -4,7 +4,7 @@ Result: Create { count: 1 } Storage: CREATE TABLE self ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES self, + self_id INTEGER DEFAULT NULL INDEX REFERENCES self, value STRING DEFAULT NULL ) [Integer(1), Integer(1), String("a")] @@ -12,3 +12,8 @@ CREATE TABLE self ( [Integer(3), Integer(3), String("c")] [Integer(4), Null, String("d")] [Integer(5), Integer(1), String("e")] + +Index self.self_id +Null => [Integer(4)] +Integer(1) => [Integer(1), Integer(2), Integer(5)] +Integer(3) => [Integer(3)] diff --git a/tests/sql/schema/insert_ref_self_missing b/tests/sql/schema/insert_ref_self_missing index d34659b95..46199e6d0 100644 --- a/tests/sql/schema/insert_ref_self_missing +++ b/tests/sql/schema/insert_ref_self_missing @@ -4,10 +4,15 @@ Error: InvalidInput("referenced primary key 9 in table self does not exist") Storage: CREATE TABLE self ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES self, + self_id INTEGER DEFAULT NULL INDEX REFERENCES self, value STRING DEFAULT NULL ) [Integer(1), Integer(1), String("a")] [Integer(2), Integer(1), String("b")] [Integer(3), Integer(3), String("c")] [Integer(4), Null, String("d")] + +Index self.self_id +Null => [Integer(4)] +Integer(1) => [Integer(1), Integer(2)] +Integer(3) => [Integer(3)] diff --git a/tests/sql/schema/insert_ref_self_null b/tests/sql/schema/insert_ref_self_null index e4819c80a..830b67b9d 100644 --- a/tests/sql/schema/insert_ref_self_null +++ b/tests/sql/schema/insert_ref_self_null @@ -4,7 +4,7 @@ Result: Create { count: 1 } Storage: CREATE TABLE self ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES self, + self_id INTEGER DEFAULT NULL INDEX REFERENCES self, value STRING DEFAULT NULL ) [Integer(1), Integer(1), String("a")] @@ -12,3 +12,8 @@ CREATE TABLE self ( [Integer(3), Integer(3), String("c")] [Integer(4), Null, String("d")] [Integer(5), Null, String("e")] + +Index self.self_id +Null => [Integer(4), Integer(5)] +Integer(1) => [Integer(1), Integer(2)] +Integer(3) => [Integer(3)] diff --git a/tests/sql/schema/insert_ref_self_self b/tests/sql/schema/insert_ref_self_self index fed86621f..21ce2abb7 100644 --- a/tests/sql/schema/insert_ref_self_self +++ b/tests/sql/schema/insert_ref_self_self @@ -4,7 +4,7 @@ Result: Create { count: 1 } Storage: CREATE TABLE self ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES self, + self_id INTEGER DEFAULT NULL INDEX REFERENCES self, value STRING DEFAULT NULL ) [Integer(1), Integer(1), String("a")] @@ -12,3 +12,9 @@ CREATE TABLE self ( [Integer(3), Integer(3), String("c")] [Integer(4), Null, String("d")] [Integer(5), Integer(5), String("e")] + +Index self.self_id +Null => [Integer(4)] +Integer(1) => [Integer(1), Integer(2)] +Integer(3) => [Integer(3)] +Integer(5) => [Integer(5)] diff --git a/tests/sql/schema/insert_ref_string b/tests/sql/schema/insert_ref_string index af8d8d959..60b0a9b54 100644 --- a/tests/sql/schema/insert_ref_string +++ b/tests/sql/schema/insert_ref_string @@ -4,10 +4,13 @@ Result: Create { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id STRING DEFAULT NULL REFERENCES target + target_id STRING DEFAULT NULL INDEX REFERENCES target ) [Integer(1), String("foo")] +Index source.target_id +String("foo") => [Integer(1)] + CREATE TABLE target ( id STRING PRIMARY KEY ) diff --git a/tests/sql/schema/insert_ref_string_case b/tests/sql/schema/insert_ref_string_case index 2c37f396e..f89b309f3 100644 --- a/tests/sql/schema/insert_ref_string_case +++ b/tests/sql/schema/insert_ref_string_case @@ -4,9 +4,11 @@ Error: InvalidInput("referenced primary key Foo in table target does not exist") Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id STRING DEFAULT NULL REFERENCES target + target_id STRING DEFAULT NULL INDEX REFERENCES target ) +Index source.target_id + CREATE TABLE target ( id STRING PRIMARY KEY ) diff --git a/tests/sql/schema/insert_ref_string_missing b/tests/sql/schema/insert_ref_string_missing index 07c75e543..a0df28c2b 100644 --- a/tests/sql/schema/insert_ref_string_missing +++ b/tests/sql/schema/insert_ref_string_missing @@ -4,9 +4,11 @@ Error: InvalidInput("referenced primary key baz in table target does not exist") Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id STRING DEFAULT NULL REFERENCES target + target_id STRING DEFAULT NULL INDEX REFERENCES target ) +Index source.target_id + CREATE TABLE target ( id STRING PRIMARY KEY ) diff --git a/tests/sql/schema/insert_ref_string_null b/tests/sql/schema/insert_ref_string_null index 32e2cf620..7bab22f5e 100644 --- a/tests/sql/schema/insert_ref_string_null +++ b/tests/sql/schema/insert_ref_string_null @@ -4,10 +4,13 @@ Result: Create { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id STRING DEFAULT NULL REFERENCES target + target_id STRING DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Null] +Index source.target_id +Null => [Integer(1)] + CREATE TABLE target ( id STRING PRIMARY KEY ) diff --git a/tests/sql/schema/insert_unique_boolean b/tests/sql/schema/insert_unique_boolean index af279e4ba..3d48125e4 100644 --- a/tests/sql/schema/insert_unique_boolean +++ b/tests/sql/schema/insert_unique_boolean @@ -4,11 +4,28 @@ Result: Create { count: 1 } Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Null, Null, Null, Null] [Integer(1), Boolean(true), Float(3.14), Integer(7), String("foo")] [Integer(2), Boolean(false), Null, Null, Null] + +Index unique.boolean +Null => [Integer(0)] +Boolean(false) => [Integer(2)] +Boolean(true) => [Integer(1)] + +Index unique.float +Null => [Integer(0), Integer(2)] +Float(3.14) => [Integer(1)] + +Index unique.integer +Null => [Integer(0), Integer(2)] +Integer(7) => [Integer(1)] + +Index unique.string +Null => [Integer(0), Integer(2)] +String("foo") => [Integer(1)] diff --git a/tests/sql/schema/insert_unique_boolean_duplicate b/tests/sql/schema/insert_unique_boolean_duplicate index a4b81643c..7dadb0487 100644 --- a/tests/sql/schema/insert_unique_boolean_duplicate +++ b/tests/sql/schema/insert_unique_boolean_duplicate @@ -4,10 +4,26 @@ Error: InvalidInput("unique value TRUE already exists for column boolean") Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Null, Null, Null, Null] [Integer(1), Boolean(true), Float(3.14), Integer(7), String("foo")] + +Index unique.boolean +Null => [Integer(0)] +Boolean(true) => [Integer(1)] + +Index unique.float +Null => [Integer(0)] +Float(3.14) => [Integer(1)] + +Index unique.integer +Null => [Integer(0)] +Integer(7) => [Integer(1)] + +Index unique.string +Null => [Integer(0)] +String("foo") => [Integer(1)] diff --git a/tests/sql/schema/insert_unique_float b/tests/sql/schema/insert_unique_float index 0a77caacb..2f16cba85 100644 --- a/tests/sql/schema/insert_unique_float +++ b/tests/sql/schema/insert_unique_float @@ -4,11 +4,28 @@ Result: Create { count: 1 } Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Null, Null, Null, Null] [Integer(1), Boolean(true), Float(3.14), Integer(7), String("foo")] [Integer(2), Null, Float(2.718), Null, Null] + +Index unique.boolean +Null => [Integer(0), Integer(2)] +Boolean(true) => [Integer(1)] + +Index unique.float +Null => [Integer(0)] +Float(2.718) => [Integer(2)] +Float(3.14) => [Integer(1)] + +Index unique.integer +Null => [Integer(0), Integer(2)] +Integer(7) => [Integer(1)] + +Index unique.string +Null => [Integer(0), Integer(2)] +String("foo") => [Integer(1)] diff --git a/tests/sql/schema/insert_unique_float_duplicate b/tests/sql/schema/insert_unique_float_duplicate index 8a6c2eaed..d78f48b3b 100644 --- a/tests/sql/schema/insert_unique_float_duplicate +++ b/tests/sql/schema/insert_unique_float_duplicate @@ -4,10 +4,26 @@ Error: InvalidInput("unique value 3.14 already exists for column float") Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Null, Null, Null, Null] [Integer(1), Boolean(true), Float(3.14), Integer(7), String("foo")] + +Index unique.boolean +Null => [Integer(0)] +Boolean(true) => [Integer(1)] + +Index unique.float +Null => [Integer(0)] +Float(3.14) => [Integer(1)] + +Index unique.integer +Null => [Integer(0)] +Integer(7) => [Integer(1)] + +Index unique.string +Null => [Integer(0)] +String("foo") => [Integer(1)] diff --git a/tests/sql/schema/insert_unique_integer b/tests/sql/schema/insert_unique_integer index 0c3b7c3a3..14c4d2254 100644 --- a/tests/sql/schema/insert_unique_integer +++ b/tests/sql/schema/insert_unique_integer @@ -4,11 +4,28 @@ Result: Create { count: 1 } Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Null, Null, Null, Null] [Integer(1), Boolean(true), Float(3.14), Integer(7), String("foo")] [Integer(2), Null, Null, Integer(3), Null] + +Index unique.boolean +Null => [Integer(0), Integer(2)] +Boolean(true) => [Integer(1)] + +Index unique.float +Null => [Integer(0), Integer(2)] +Float(3.14) => [Integer(1)] + +Index unique.integer +Null => [Integer(0)] +Integer(3) => [Integer(2)] +Integer(7) => [Integer(1)] + +Index unique.string +Null => [Integer(0), Integer(2)] +String("foo") => [Integer(1)] diff --git a/tests/sql/schema/insert_unique_integer_duplicate b/tests/sql/schema/insert_unique_integer_duplicate index 261122461..661af93c3 100644 --- a/tests/sql/schema/insert_unique_integer_duplicate +++ b/tests/sql/schema/insert_unique_integer_duplicate @@ -4,10 +4,26 @@ Error: InvalidInput("unique value 7 already exists for column integer") Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Null, Null, Null, Null] [Integer(1), Boolean(true), Float(3.14), Integer(7), String("foo")] + +Index unique.boolean +Null => [Integer(0)] +Boolean(true) => [Integer(1)] + +Index unique.float +Null => [Integer(0)] +Float(3.14) => [Integer(1)] + +Index unique.integer +Null => [Integer(0)] +Integer(7) => [Integer(1)] + +Index unique.string +Null => [Integer(0)] +String("foo") => [Integer(1)] diff --git a/tests/sql/schema/insert_unique_nulls b/tests/sql/schema/insert_unique_nulls index 8183484f5..64a124319 100644 --- a/tests/sql/schema/insert_unique_nulls +++ b/tests/sql/schema/insert_unique_nulls @@ -4,11 +4,27 @@ Result: Create { count: 1 } Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Null, Null, Null, Null] [Integer(1), Boolean(true), Float(3.14), Integer(7), String("foo")] [Integer(2), Null, Null, Null, Null] + +Index unique.boolean +Null => [Integer(0), Integer(2)] +Boolean(true) => [Integer(1)] + +Index unique.float +Null => [Integer(0), Integer(2)] +Float(3.14) => [Integer(1)] + +Index unique.integer +Null => [Integer(0), Integer(2)] +Integer(7) => [Integer(1)] + +Index unique.string +Null => [Integer(0), Integer(2)] +String("foo") => [Integer(1)] diff --git a/tests/sql/schema/insert_unique_string b/tests/sql/schema/insert_unique_string index 882c3fc9c..c9af789e1 100644 --- a/tests/sql/schema/insert_unique_string +++ b/tests/sql/schema/insert_unique_string @@ -4,11 +4,28 @@ Result: Create { count: 1 } Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Null, Null, Null, Null] [Integer(1), Boolean(true), Float(3.14), Integer(7), String("foo")] [Integer(2), Null, Null, Null, String("bar")] + +Index unique.boolean +Null => [Integer(0), Integer(2)] +Boolean(true) => [Integer(1)] + +Index unique.float +Null => [Integer(0), Integer(2)] +Float(3.14) => [Integer(1)] + +Index unique.integer +Null => [Integer(0), Integer(2)] +Integer(7) => [Integer(1)] + +Index unique.string +Null => [Integer(0)] +String("bar") => [Integer(2)] +String("foo") => [Integer(1)] diff --git a/tests/sql/schema/insert_unique_string_case b/tests/sql/schema/insert_unique_string_case index c40c83bc8..6adf0e3a3 100644 --- a/tests/sql/schema/insert_unique_string_case +++ b/tests/sql/schema/insert_unique_string_case @@ -4,11 +4,28 @@ Result: Create { count: 1 } Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Null, Null, Null, Null] [Integer(1), Boolean(true), Float(3.14), Integer(7), String("foo")] [Integer(2), Null, Null, Null, String("Foo")] + +Index unique.boolean +Null => [Integer(0), Integer(2)] +Boolean(true) => [Integer(1)] + +Index unique.float +Null => [Integer(0), Integer(2)] +Float(3.14) => [Integer(1)] + +Index unique.integer +Null => [Integer(0), Integer(2)] +Integer(7) => [Integer(1)] + +Index unique.string +Null => [Integer(0)] +String("Foo") => [Integer(2)] +String("foo") => [Integer(1)] diff --git a/tests/sql/schema/insert_unique_string_duplicate b/tests/sql/schema/insert_unique_string_duplicate index c0c464761..f64b9d8a8 100644 --- a/tests/sql/schema/insert_unique_string_duplicate +++ b/tests/sql/schema/insert_unique_string_duplicate @@ -4,10 +4,26 @@ Error: InvalidInput("unique value foo already exists for column string") Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Null, Null, Null, Null] [Integer(1), Boolean(true), Float(3.14), Integer(7), String("foo")] + +Index unique.boolean +Null => [Integer(0)] +Boolean(true) => [Integer(1)] + +Index unique.float +Null => [Integer(0)] +Float(3.14) => [Integer(1)] + +Index unique.integer +Null => [Integer(0)] +Integer(7) => [Integer(1)] + +Index unique.string +Null => [Integer(0)] +String("foo") => [Integer(1)] diff --git a/tests/sql/schema/update_ref_pk b/tests/sql/schema/update_ref_pk index 9431b1dad..d18b30017 100644 --- a/tests/sql/schema/update_ref_pk +++ b/tests/sql/schema/update_ref_pk @@ -4,12 +4,17 @@ Error: InvalidInput("primary key 1 referenced by table source column target_id") Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Integer(1)] [Integer(2), Integer(2)] [Integer(4), Null] +Index source.target_id +Null => [Integer(4)] +Integer(1) => [Integer(1)] +Integer(2) => [Integer(2)] + CREATE TABLE target ( id INTEGER PRIMARY KEY, value STRING DEFAULT NULL diff --git a/tests/sql/schema/update_ref_pk_noref b/tests/sql/schema/update_ref_pk_noref index a637692ba..722fb6106 100644 --- a/tests/sql/schema/update_ref_pk_noref +++ b/tests/sql/schema/update_ref_pk_noref @@ -4,12 +4,17 @@ Result: Update { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Integer(1)] [Integer(2), Integer(2)] [Integer(4), Null] +Index source.target_id +Null => [Integer(4)] +Integer(1) => [Integer(1)] +Integer(2) => [Integer(2)] + CREATE TABLE target ( id INTEGER PRIMARY KEY, value STRING DEFAULT NULL diff --git a/tests/sql/schema/update_ref_self_pk b/tests/sql/schema/update_ref_self_pk index ca84190d4..78ed8b39a 100644 --- a/tests/sql/schema/update_ref_self_pk +++ b/tests/sql/schema/update_ref_self_pk @@ -4,10 +4,15 @@ Error: InvalidInput("primary key 1 referenced by table self column self_id") Storage: CREATE TABLE self ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES self, + self_id INTEGER DEFAULT NULL INDEX REFERENCES self, value STRING DEFAULT NULL ) [Integer(1), Integer(1), String("a")] [Integer(2), Integer(1), String("b")] [Integer(3), Integer(3), String("c")] [Integer(4), Null, String("d")] + +Index self.self_id +Null => [Integer(4)] +Integer(1) => [Integer(1), Integer(2)] +Integer(3) => [Integer(3)] diff --git a/tests/sql/schema/update_ref_self_pk_noref b/tests/sql/schema/update_ref_self_pk_noref index 7eb0866b3..8a9cb26d1 100644 --- a/tests/sql/schema/update_ref_self_pk_noref +++ b/tests/sql/schema/update_ref_self_pk_noref @@ -4,10 +4,15 @@ Result: Update { count: 1 } Storage: CREATE TABLE self ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES self, + self_id INTEGER DEFAULT NULL INDEX REFERENCES self, value STRING DEFAULT NULL ) [Integer(1), Integer(1), String("a")] [Integer(3), Integer(3), String("c")] [Integer(4), Null, String("d")] [Integer(9), Integer(1), String("b")] + +Index self.self_id +Null => [Integer(4)] +Integer(1) => [Integer(1), Integer(9)] +Integer(3) => [Integer(3)] diff --git a/tests/sql/schema/update_ref_self_self b/tests/sql/schema/update_ref_self_self index f1609d5e0..55e9af37b 100644 --- a/tests/sql/schema/update_ref_self_self +++ b/tests/sql/schema/update_ref_self_self @@ -4,10 +4,16 @@ Result: Update { count: 1 } Storage: CREATE TABLE self ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES self, + self_id INTEGER DEFAULT NULL INDEX REFERENCES self, value STRING DEFAULT NULL ) [Integer(1), Integer(1), String("a")] [Integer(2), Integer(2), String("b")] [Integer(3), Integer(3), String("c")] [Integer(4), Null, String("d")] + +Index self.self_id +Null => [Integer(4)] +Integer(1) => [Integer(1)] +Integer(2) => [Integer(2)] +Integer(3) => [Integer(3)] diff --git a/tests/sql/schema/update_ref_self_value b/tests/sql/schema/update_ref_self_value index 4be6ef3cd..777aee5e2 100644 --- a/tests/sql/schema/update_ref_self_value +++ b/tests/sql/schema/update_ref_self_value @@ -4,10 +4,15 @@ Result: Update { count: 1 } Storage: CREATE TABLE self ( id INTEGER PRIMARY KEY, - self_id INTEGER DEFAULT NULL REFERENCES self, + self_id INTEGER DEFAULT NULL INDEX REFERENCES self, value STRING DEFAULT NULL ) [Integer(1), Integer(1), String("x")] [Integer(2), Integer(1), String("b")] [Integer(3), Integer(3), String("c")] [Integer(4), Null, String("d")] + +Index self.self_id +Null => [Integer(4)] +Integer(1) => [Integer(1), Integer(2)] +Integer(3) => [Integer(3)] diff --git a/tests/sql/schema/update_ref_source b/tests/sql/schema/update_ref_source index 07a442921..002c454ce 100644 --- a/tests/sql/schema/update_ref_source +++ b/tests/sql/schema/update_ref_source @@ -4,12 +4,16 @@ Result: Update { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Integer(1)] [Integer(2), Integer(2)] [Integer(4), Integer(1)] +Index source.target_id +Integer(1) => [Integer(1), Integer(4)] +Integer(2) => [Integer(2)] + CREATE TABLE target ( id INTEGER PRIMARY KEY, value STRING DEFAULT NULL diff --git a/tests/sql/schema/update_ref_source_missing b/tests/sql/schema/update_ref_source_missing index 25e4aef24..9de3832c8 100644 --- a/tests/sql/schema/update_ref_source_missing +++ b/tests/sql/schema/update_ref_source_missing @@ -4,12 +4,17 @@ Error: InvalidInput("referenced primary key 9 in table target does not exist") Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Integer(1)] [Integer(2), Integer(2)] [Integer(4), Null] +Index source.target_id +Null => [Integer(4)] +Integer(1) => [Integer(1)] +Integer(2) => [Integer(2)] + CREATE TABLE target ( id INTEGER PRIMARY KEY, value STRING DEFAULT NULL diff --git a/tests/sql/schema/update_ref_source_null b/tests/sql/schema/update_ref_source_null index 74a1d5156..ddbbe40b4 100644 --- a/tests/sql/schema/update_ref_source_null +++ b/tests/sql/schema/update_ref_source_null @@ -4,12 +4,16 @@ Result: Update { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Integer(1)] [Integer(2), Null] [Integer(4), Null] +Index source.target_id +Null => [Integer(2), Integer(4)] +Integer(1) => [Integer(1)] + CREATE TABLE target ( id INTEGER PRIMARY KEY, value STRING DEFAULT NULL diff --git a/tests/sql/schema/update_ref_value b/tests/sql/schema/update_ref_value index 1cea7f9a6..4547aa2e6 100644 --- a/tests/sql/schema/update_ref_value +++ b/tests/sql/schema/update_ref_value @@ -4,12 +4,17 @@ Result: Update { count: 1 } Storage: CREATE TABLE source ( id INTEGER PRIMARY KEY, - target_id INTEGER DEFAULT NULL REFERENCES target + target_id INTEGER DEFAULT NULL INDEX REFERENCES target ) [Integer(1), Integer(1)] [Integer(2), Integer(2)] [Integer(4), Null] +Index source.target_id +Null => [Integer(4)] +Integer(1) => [Integer(1)] +Integer(2) => [Integer(2)] + CREATE TABLE target ( id INTEGER PRIMARY KEY, value STRING DEFAULT NULL diff --git a/tests/sql/schema/update_unique_boolean b/tests/sql/schema/update_unique_boolean index e4ab4963c..88143c884 100644 --- a/tests/sql/schema/update_unique_boolean +++ b/tests/sql/schema/update_unique_boolean @@ -4,10 +4,26 @@ Result: Update { count: 1 } Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Boolean(false), Null, Null, Null] [Integer(1), Boolean(true), Float(3.14), Integer(7), String("foo")] + +Index unique.boolean +Boolean(false) => [Integer(0)] +Boolean(true) => [Integer(1)] + +Index unique.float +Null => [Integer(0)] +Float(3.14) => [Integer(1)] + +Index unique.integer +Null => [Integer(0)] +Integer(7) => [Integer(1)] + +Index unique.string +Null => [Integer(0)] +String("foo") => [Integer(1)] diff --git a/tests/sql/schema/update_unique_boolean_duplicate b/tests/sql/schema/update_unique_boolean_duplicate index e65b6dc8a..c2368e2db 100644 --- a/tests/sql/schema/update_unique_boolean_duplicate +++ b/tests/sql/schema/update_unique_boolean_duplicate @@ -4,10 +4,26 @@ Error: InvalidInput("unique value TRUE already exists for column boolean") Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Null, Null, Null, Null] [Integer(1), Boolean(true), Float(3.14), Integer(7), String("foo")] + +Index unique.boolean +Null => [Integer(0)] +Boolean(true) => [Integer(1)] + +Index unique.float +Null => [Integer(0)] +Float(3.14) => [Integer(1)] + +Index unique.integer +Null => [Integer(0)] +Integer(7) => [Integer(1)] + +Index unique.string +Null => [Integer(0)] +String("foo") => [Integer(1)] diff --git a/tests/sql/schema/update_unique_boolean_same b/tests/sql/schema/update_unique_boolean_same index 4678d240c..0d91f5db6 100644 --- a/tests/sql/schema/update_unique_boolean_same +++ b/tests/sql/schema/update_unique_boolean_same @@ -4,10 +4,26 @@ Result: Update { count: 1 } Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Null, Null, Null, Null] [Integer(1), Boolean(true), Float(3.14), Integer(7), String("foo")] + +Index unique.boolean +Null => [Integer(0)] +Boolean(true) => [Integer(1)] + +Index unique.float +Null => [Integer(0)] +Float(3.14) => [Integer(1)] + +Index unique.integer +Null => [Integer(0)] +Integer(7) => [Integer(1)] + +Index unique.string +Null => [Integer(0)] +String("foo") => [Integer(1)] diff --git a/tests/sql/schema/update_unique_nulls b/tests/sql/schema/update_unique_nulls index efe3f61df..5bf6764e6 100644 --- a/tests/sql/schema/update_unique_nulls +++ b/tests/sql/schema/update_unique_nulls @@ -4,10 +4,22 @@ Result: Update { count: 1 } Storage: CREATE TABLE "unique" ( id INTEGER PRIMARY KEY, - "boolean" BOOLEAN DEFAULT NULL UNIQUE, - "float" FLOAT DEFAULT NULL UNIQUE, - "integer" INTEGER DEFAULT NULL UNIQUE, - "string" STRING DEFAULT NULL UNIQUE + "boolean" BOOLEAN DEFAULT NULL UNIQUE INDEX, + "float" FLOAT DEFAULT NULL UNIQUE INDEX, + "integer" INTEGER DEFAULT NULL UNIQUE INDEX, + "string" STRING DEFAULT NULL UNIQUE INDEX ) [Integer(0), Null, Null, Null, Null] [Integer(1), Null, Null, Null, Null] + +Index unique.boolean +Null => [Integer(0), Integer(1)] + +Index unique.float +Null => [Integer(0), Integer(1)] + +Index unique.integer +Null => [Integer(0), Integer(1)] + +Index unique.string +Null => [Integer(0), Integer(1)]