2013-07-06 16:16:01 +00:00
|
|
|
#! /bin/bash
|
|
|
|
|
|
|
|
run_test ./drive_sql "select startswith('.foo', '.')"
|
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column startswith('.foo', '.'): 1
|
|
|
|
EOF
|
|
|
|
|
|
|
|
run_test ./drive_sql "select startswith('foo', '.')"
|
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column startswith('foo', '.'): 0
|
|
|
|
EOF
|
|
|
|
|
|
|
|
run_test ./drive_sql "select endswith('foo', '.')"
|
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column endswith('foo', '.'): 0
|
|
|
|
EOF
|
|
|
|
|
|
|
|
run_test ./drive_sql "select endswith('foo.', '.')"
|
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column endswith('foo.', '.'): 1
|
|
|
|
EOF
|
|
|
|
|
|
|
|
run_test ./drive_sql "select endswith('foo.txt', '.txt')"
|
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column endswith('foo.txt', '.txt'): 1
|
|
|
|
EOF
|
|
|
|
|
|
|
|
run_test ./drive_sql "select endswith('a', '.txt')"
|
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column endswith('a', '.txt'): 0
|
|
|
|
EOF
|
2013-07-11 05:42:24 +00:00
|
|
|
|
|
|
|
run_test ./drive_sql "select regexp('abcd', 'abcd')"
|
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column regexp('abcd', 'abcd'): 1
|
|
|
|
EOF
|
|
|
|
|
|
|
|
run_test ./drive_sql "select regexp('bc', 'abcd')"
|
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column regexp('bc', 'abcd'): 1
|
|
|
|
EOF
|
|
|
|
|
|
|
|
run_test ./drive_sql "select regexp('[e-z]+', 'abcd')"
|
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column regexp('[e-z]+', 'abcd'): 0
|
|
|
|
EOF
|
|
|
|
|
|
|
|
run_test ./drive_sql "select regexp('[e-z]+', 'ea')"
|
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column regexp('[e-z]+', 'ea'): 1
|
|
|
|
EOF
|
|
|
|
|
2013-07-27 18:11:50 +00:00
|
|
|
run_test ./drive_sql "select regexp_replace('test 1 2 3', '\\d+', 'N')"
|
2013-07-11 05:42:24 +00:00
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
2013-07-27 18:11:50 +00:00
|
|
|
Column regexp_replace('test 1 2 3', '\d+', 'N'): test N N N
|
2013-07-11 05:42:24 +00:00
|
|
|
EOF
|
2016-03-08 14:48:43 +00:00
|
|
|
|
|
|
|
|
2016-03-10 07:30:34 +00:00
|
|
|
run_test ./drive_sql "select extract('abc', 'abc')"
|
2016-03-08 14:48:43 +00:00
|
|
|
|
|
|
|
check_error_output "" <<EOF
|
|
|
|
error: sqlite3_exec failed -- regular expression does not have any captures
|
|
|
|
EOF
|
|
|
|
|
2016-03-10 07:30:34 +00:00
|
|
|
run_test ./drive_sql "select extract(null, 'abc')"
|
2016-03-08 14:48:43 +00:00
|
|
|
|
|
|
|
check_error_output "" <<EOF
|
|
|
|
error: sqlite3_exec failed -- no regexp
|
|
|
|
EOF
|
|
|
|
|
2016-03-10 07:30:34 +00:00
|
|
|
run_test ./drive_sql "select extract('abc', null)"
|
2016-03-08 14:48:43 +00:00
|
|
|
|
2016-03-10 07:30:34 +00:00
|
|
|
check_error_output "" <<EOF
|
|
|
|
error: sqlite3_exec failed -- no string
|
2016-03-08 14:48:43 +00:00
|
|
|
EOF
|
|
|
|
|
2016-03-10 07:30:34 +00:00
|
|
|
run_test ./drive_sql "select typeof(result), result from (select extract('(\d*)abc', 'abc') as result)"
|
2016-03-08 14:48:43 +00:00
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column typeof(result): text
|
|
|
|
Column result:
|
|
|
|
EOF
|
|
|
|
|
2016-03-10 07:30:34 +00:00
|
|
|
run_test ./drive_sql "select typeof(result), result from (select extract('(\d*)abc(\d*)', 'abc') as result)"
|
2016-03-08 14:48:43 +00:00
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column typeof(result): text
|
|
|
|
Column result: {"col_0":"","col_1":""}
|
|
|
|
EOF
|
|
|
|
|
2016-03-10 07:30:34 +00:00
|
|
|
run_test ./drive_sql "select typeof(result), result from (select extract('(\d+)', '123') as result)"
|
2016-03-08 14:48:43 +00:00
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column typeof(result): integer
|
|
|
|
Column result: 123
|
|
|
|
EOF
|
|
|
|
|
2016-03-10 07:30:34 +00:00
|
|
|
run_test ./drive_sql "select typeof(result), result from (select extract('a(\d+\.\d+)a', 'a123.456a') as result)"
|
2016-03-08 14:48:43 +00:00
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column typeof(result): real
|
|
|
|
Column result: 123.456
|
|
|
|
EOF
|
|
|
|
|
2016-03-10 07:30:34 +00:00
|
|
|
run_test ./drive_sql "select extract('foo=(?<foo>\w+); (\w+)', 'foo=abc; 123') as result"
|
2016-03-08 14:48:43 +00:00
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column result: {"foo":"abc","col_0":123}
|
|
|
|
EOF
|
|
|
|
|
2016-03-10 07:30:34 +00:00
|
|
|
run_test ./drive_sql "select extract('foo=(?<foo>\w+); (\w+\.\w+)', 'foo=abc; 123.456') as result"
|
2016-03-08 14:48:43 +00:00
|
|
|
|
|
|
|
check_output "" <<EOF
|
|
|
|
Row 0:
|
|
|
|
Column result: {"foo":"abc","col_0":123.456}
|
|
|
|
EOF
|