nushell/crates/nu-command/tests/commands
Skyler Hawthorne cf923fc44c
into sqlite: Fix insertion of null values (#12328)
# Description

In #10232, the allowed input types were changed to be stricter, only
allowing records with types that can easily map onto sqlite equivalents.
Unfortunately, null was left out of the accepted input types, which
makes inserting rows with null values impossible.

This change fixes that by accepting null values as input.

One caveat of this is that when the command is creating a new table, it
uses the first row to infer an appropriate sqlite schema. If the first
row contains a null value, then it is impossible to tell which type this
column is supposed to have.

Throwing a hard error seems undesirable from a UX perspective, but
guessing can lead to a potentially useless database if we guess wrong.

So as a compromise, for null columns, we will assume the sqlite type is
TEXT and print a warning so the user knows. For the time being, if users
can't avoid a first row with null values, but also wants the right
schema, they are advised to create their table before running `into
sqlite`.

A future PR can add the ability to explicitly specify a schema.

Fixes #12225

# Tests + Formatting

* Tests added to cover expected behavior around insertion of null values
2024-03-29 06:41:16 -05:00
..
assignment Match ++= capabilities with ++ (#11130) 2023-12-07 05:46:37 +08:00
conversions add --signed flag for binary into int conversions (#11902) 2024-02-27 15:05:26 +00:00
database into sqlite: Fix insertion of null values (#12328) 2024-03-29 06:41:16 -05:00
date fix format date based on users locale (#11908) 2024-02-20 11:08:49 -06:00
hash_ Clean up tests containing unnecessary cwd: tokens (#9692) 2023-07-17 18:43:51 +02:00
math to json -r not removing whitespaces fix (#11948) 2024-03-20 22:14:31 +01:00
move_ ls, rm, cp, open, touch, mkdir: Don't expand tilde if input path is quoted string or a variable. (#12232) 2024-03-25 10:08:38 +08:00
network Disable flaky network tests (#12010) 2024-02-28 16:28:33 +00:00
path check existance w/o traversing symlinks (#10872) 2024-01-14 07:33:33 +08:00
platform refactor: move du from platform to filesystem (#11852) 2024-02-15 06:55:21 +08:00
query Feature cleanup (#7182) 2022-11-22 16:58:11 -08:00
random remove size command in favor of str stats (#10784) 2023-11-17 06:49:19 +08:00
skip Remove file I/O from tests that don't need it (#11182) 2023-11-29 23:21:34 +01:00
str_ use to_lowercase in str downcase (#10850) 2023-10-27 19:16:17 +02:00
take Remove file I/O from tests that don't need it (#11182) 2023-11-29 23:21:34 +01:00
url Allow 'url join' to print username without password (#11697) 2024-01-31 16:52:23 -06:00
alias.rs feat: Add default docs for aliases, generated from the command they point to (#10825) 2023-12-04 20:56:46 +02:00
all.rs Removes unnecessary cwd and pipeline from various tests (#9202) 2023-05-17 18:55:26 -05:00
any.rs Removes unnecessary cwd and pipeline from various tests (#9202) 2023-05-17 18:55:26 -05:00
append.rs fix(nu-command/tests): further remove unnecessary pipeline() and cwd() (#8793) 2023-04-07 14:09:55 -07:00
break_.rs fix(nu-command/tests): further remove unnecessary pipeline() and cwd() (#8793) 2023-04-07 14:09:55 -07:00
cal.rs to json -r not removing whitespaces fix (#11948) 2024-03-20 22:14:31 +01:00
cd.rs bump rust-toolchain to 1.72.1 (#11079) 2023-11-16 15:14:45 -06:00
compact.rs Remove file I/O from tests that don't need it (#11182) 2023-11-29 23:21:34 +01:00
complete.rs IO and redirection overhaul (#11934) 2024-03-14 15:51:55 -05:00
config_env_default.rs Command: Add config env/nu --default to print defaults (#10480) 2023-09-25 08:00:59 -05:00
config_nu_default.rs Command: Add config env/nu --default to print defaults (#10480) 2023-09-25 08:00:59 -05:00
continue_.rs fix(nu-command/tests): further remove unnecessary pipeline() and cwd() (#8793) 2023-04-07 14:09:55 -07:00
debug_info.rs Make debug info lazy (#10728) 2023-10-24 12:48:05 -05:00
def.rs Remove --flag: bool support (#11541) 2024-01-25 14:16:49 +08:00
default.rs Remove file I/O from tests that don't need it (#11182) 2023-11-29 23:21:34 +01:00
detect_columns.rs Change default algorithm in detect columns (#12277) 2024-03-26 13:57:55 +08:00
do_.rs IO and redirection overhaul (#11934) 2024-03-14 15:51:55 -05:00
drop.rs Refactor drop columns to fix issues (#10903) 2023-11-09 13:51:46 +01:00
du.rs open, rm, umv, cp, rm and du: Don't globs if inputs are variables or string interpolation (#11886) 2024-02-23 09:17:09 +08:00
each.rs to json -r not removing whitespaces fix (#11948) 2024-03-20 22:14:31 +01:00
echo.rs Change echo to print when not redirected (#10338) 2023-09-13 06:35:01 +12:00
empty.rs fix(nu-command/tests): further remove unnecessary pipeline() and cwd() (#8793) 2023-04-07 14:09:55 -07:00
error_make.rs Refactor error make (#10923) 2023-11-03 10:09:33 -05:00
every.rs fix(nu-command/tests): further remove unnecessary pipeline() and cwd() (#8793) 2023-04-07 14:09:55 -07:00
exec.rs Allow spreading arguments to commands (#11289) 2023-12-28 15:43:20 +08:00
export_def.rs Removes unnecessary cwd and pipeline from various tests (#9202) 2023-05-17 18:55:26 -05:00
fill.rs Removes unnecessary cwd and pipeline from various tests (#9202) 2023-05-17 18:55:26 -05:00
filter.rs Fix return in filter closure eval (#12292) 2024-03-26 17:50:36 +01:00
find.rs to json -r not removing whitespaces fix (#11948) 2024-03-20 22:14:31 +01:00
first.rs remove --column from length command and remove record processing (#10091) 2023-08-23 16:03:26 -05:00
flatten.rs Remove file I/O from tests that don't need it (#11182) 2023-11-29 23:21:34 +01:00
for_.rs Change echo to print when not redirected (#10338) 2023-09-13 06:35:01 +12:00
format.rs Remove feat extra and include in default (#12140) 2024-03-10 17:29:02 +01:00
generate.rs rename unfold to generate (#10770) 2023-10-19 09:30:34 -05:00
get.rs Fix get -i ignoring errors for only the first cellpath (#11213) 2023-12-02 11:01:08 -06:00
glob.rs fix clippy (#10659) 2023-10-10 03:31:15 +13:00
group_by.rs Remove file I/O from tests that don't need it (#11182) 2023-11-29 23:21:34 +01:00
headers.rs Fix: remove unnecessary r#"..."# (#8670) (#9764) 2023-07-21 17:32:37 +02:00
help.rs Tests: clean up unnecessary use of pipeline() (#10170) 2023-08-31 23:10:29 +02:00
histogram.rs Remove file I/O from tests that don't need it (#11182) 2023-11-29 23:21:34 +01:00
ignore.rs Change the ignore command to use drain() instead of collecting a value (#12120) 2024-03-08 02:18:26 -05:00
insert.rs Fix $in value for insert closure (#12209) 2024-03-14 16:43:03 -05:00
inspect.rs throw an error instead of a panic if no input is provided to inspect (#9259) 2023-05-22 13:54:04 -05:00
interleave.rs Add interleave command for reading multiple streams in parallel (#11955) 2024-03-01 16:56:37 -06:00
into_datetime.rs add table -> table to into datetime (#9775) 2023-07-23 20:14:51 +02:00
into_filesize.rs Update internal use of decimal to float (#10333) 2023-09-13 23:53:55 +02:00
into_int.rs add --signed flag for binary into int conversions (#11902) 2024-02-27 15:05:26 +00:00
join.rs Removes unnecessary cwd and pipeline from various tests (#9202) 2023-05-17 18:55:26 -05:00
last.rs remove --column from length command and remove record processing (#10091) 2023-08-23 16:03:26 -05:00
length.rs Spanned Value step 1: span all value cases (#10042) 2023-08-25 08:48:05 +12:00
let_.rs IO and redirection overhaul (#11934) 2024-03-14 15:51:55 -05:00
lines.rs fix panic with lines on an error (#9967) 2023-08-09 14:12:58 +02:00
loop_.rs Change echo to print when not redirected (#10338) 2023-09-13 06:35:01 +12:00
ls.rs ls, rm, cp, open, touch, mkdir: Don't expand tilde if input path is quoted string or a variable. (#12232) 2024-03-25 10:08:38 +08:00
match_.rs Allow comments in match blocks (#11717) 2024-02-08 07:22:42 +08:00
merge.rs Remove file I/O from tests that don't need it (#11182) 2023-11-29 23:21:34 +01:00
mktemp.rs Add mktemp command (#11005) 2023-11-17 19:30:53 -06:00
mod.rs Fix return in filter closure eval (#12292) 2024-03-26 17:50:36 +01:00
mut_.rs Glob: don't allow implicit casting between glob and string (#11992) 2024-02-28 23:05:35 +08:00
nu_check.rs Refactor nu-check (#12137) 2024-03-09 18:58:02 +02:00
open.rs open, rm, umv, cp, rm and du: Don't globs if inputs are variables or string interpolation (#11886) 2024-02-23 09:17:09 +08:00
par_each.rs Fix: remove unnecessary r#"..."# (#8670) (#9764) 2023-07-21 17:32:37 +02:00
parse.rs Clippy in tests (#10394) 2023-09-16 21:49:10 +02:00
prepend.rs Fix warnings and old names (#8457) 2023-03-15 18:54:55 +13:00
print.rs Clean up tests containing unnecessary cwd: tokens (#9692) 2023-07-17 18:43:51 +02:00
range.rs Fix: remove unnecessary r#"..."# (#8670) (#9764) 2023-07-21 17:32:37 +02:00
redirection.rs IO and redirection overhaul (#11934) 2024-03-14 15:51:55 -05:00
reduce.rs Add long options for filters (#10641) 2023-10-08 13:12:46 +02:00
reject.rs Remove list of cell path support for select and reject (#11859) 2024-02-15 07:49:48 -06:00
rename.rs Remove file I/O from tests that don't need it (#11182) 2023-11-29 23:21:34 +01:00
return_.rs allow early return outside of main (#10514) 2023-09-28 18:49:42 +02:00
reverse.rs Clean up tests containing unnecessary cwd: tokens (#9692) 2023-07-17 18:43:51 +02:00
rm.rs ls, rm, cp, open, touch, mkdir: Don't expand tilde if input path is quoted string or a variable. (#12232) 2024-03-25 10:08:38 +08:00
roll.rs Fix: remove unnecessary r#"..."# (#8670) (#9764) 2023-07-21 17:32:37 +02:00
rotate.rs Fix panic in rotate; Add safe record creation function (#11718) 2024-02-03 13:23:16 +02:00
run_external.rs IO and redirection overhaul (#11934) 2024-03-14 15:51:55 -05:00
save.rs Fix an infinite loop if the input stream and output stream are the same (#11384) 2023-12-24 23:29:23 +08:00
select.rs Remove list of cell path support for select and reject (#11859) 2024-02-15 07:49:48 -06:00
semicolon.rs Slim down tests (#9021) 2023-04-28 13:25:44 +02:00
seq_char.rs Slim down tests (#9021) 2023-04-28 13:25:44 +02:00
seq_date.rs Fix panic in seq date (#11871) 2024-02-17 10:51:20 +02:00
seq.rs Slim down tests (#9021) 2023-04-28 13:25:44 +02:00
sort_by.rs to json -r not removing whitespaces fix (#11948) 2024-03-20 22:14:31 +01:00
sort.rs Fix: remove unnecessary r#"..."# (#8670) (#9764) 2023-07-21 17:32:37 +02:00
source_env.rs Tests: clean up unnecessary use of pipeline() (#10170) 2023-08-31 23:10:29 +02:00
split_by.rs Remove file I/O from tests that don't need it (#11182) 2023-11-29 23:21:34 +01:00
split_column.rs Use long options for string (#10777) 2023-10-19 22:08:09 +02:00
split_row.rs Simplify rawstrings in tests (#10180) 2023-09-01 00:08:27 +02:00
table.rs Fix ignored clippy lints (#12160) 2024-03-11 19:46:04 +01:00
tee.rs Add tee command for operating on copies of streams (#11928) 2024-02-28 17:08:31 -06:00
terminal.rs Add is-terminal to determine if stdin/out/err are a terminal (#10970) 2023-11-21 20:48:39 -06:00
to_text.rs Make to text stream ListStreams (#7577) 2022-12-22 16:38:07 -08:00
touch.rs ls, rm, cp, open, touch, mkdir: Don't expand tilde if input path is quoted string or a variable. (#12232) 2024-03-25 10:08:38 +08:00
transpose.rs Slim down tests (#9021) 2023-04-28 13:25:44 +02:00
try_.rs Enforce call stack depth limit for all calls (#11729) 2024-02-08 06:42:24 +08:00
ucp.rs ls, rm, cp, open, touch, mkdir: Don't expand tilde if input path is quoted string or a variable. (#12232) 2024-03-25 10:08:38 +08:00
ulimit.rs FreeBSD compatibility patches (#11869) 2024-02-17 20:04:59 +01:00
umkdir.rs ls, rm, cp, open, touch, mkdir: Don't expand tilde if input path is quoted string or a variable. (#12232) 2024-03-25 10:08:38 +08:00
uname.rs Initial implementation for uutils uname (#11684) 2024-03-25 16:51:50 -05:00
uniq_by.rs Remove file I/O from tests that don't need it (#11182) 2023-11-29 23:21:34 +01:00
uniq.rs Remove file I/O from tests that don't need it (#11182) 2023-11-29 23:21:34 +01:00
update.rs Fix replacement closures for update, insert, and upsert (#11258) 2023-12-09 15:22:45 -06:00
upsert.rs Fix replacement closures for update, insert, and upsert (#11258) 2023-12-09 15:22:45 -06:00
use_.rs Error on use path item1 item2, if item1 is not a module (#11183) 2023-12-05 11:38:45 +01:00
where_.rs Fix ignored clippy lints (#12160) 2024-03-11 19:46:04 +01:00
which.rs change the output of which to be more explicit (#9646) 2023-07-20 19:10:53 -05:00
while_.rs Change echo to print when not redirected (#10338) 2023-09-13 06:35:01 +12:00
with_env.rs Clean up tests containing unnecessary cwd: tokens (#9692) 2023-07-17 18:43:51 +02:00
wrap.rs Remove file I/O from tests that don't need it (#11182) 2023-11-29 23:21:34 +01:00
zip.rs Fix: remove unnecessary r#"..."# (#8670) (#9764) 2023-07-21 17:32:37 +02:00