File: function_chaining.test

package info (click to toggle)
duckdb 1.5.1-2
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 299,196 kB
  • sloc: cpp: 865,414; ansic: 57,292; python: 18,871; sql: 12,663; lisp: 11,751; yacc: 7,412; lex: 1,682; sh: 747; makefile: 558
file content (111 lines) | stat: -rw-r--r-- 1,632 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# name: test/sql/parser/function_chaining.test
# description: Test function chaining
# group: [parser]

statement ok
PRAGMA enable_verification

statement ok
CREATE TABLE varchars(v VARCHAR);

statement ok
INSERT INTO varchars VALUES ('Hello'), ('World')

statement error
SELECT x.lower() FROM varchars
----
not found in FROM clause

# conflict
statement error
SELECT main.lower() FROM varchars AS t(main)
----
No function matches the given name and argument types

query I
SELECT v.lower() FROM varchars
----
hello
world

query I
SELECT (v).lower() FROM varchars
----
hello
world

statement error
SELECT v.lowe() FROM varchars
----
Function with name lowe does not exist

query I
SELECT varchars.v.lower() FROM varchars
----
hello
world

query I
SELECT v.lower().upper() FROM varchars
----
HELLO
WORLD

query I
SELECT v.lower()[:3] FROM varchars
----
hel
wor

query I
SELECT v.lower()[:3] FROM varchars
----
hel
wor

statement ok
DELETE FROM varchars

statement ok
INSERT INTO varchars VALUES ('Hello World');

# list functions
query I
SELECT v.split(' ') FROM varchars
----
[Hello, World]

query I
SELECT v.split(' ').apply(lambda x: x.lower()) FROM varchars
----
[hello, world]

query I
SELECT v.split(' ').apply(lambda x: x.lower()).filter(lambda x: x[1] == 'h') FROM varchars
----
[hello]

query I
SELECT v.split(' ').length() FROM varchars
----
2

# list aggr
query I
SELECT v.split(' ').aggregate('count') FROM varchars
----
2

query I
SELECT v.split(' ').aggregate('min') FROM varchars
----
Hello

# prepared statements
statement ok
PREPARE v1 AS SELECT ?.split(' ')[1].lower()

query I
EXECUTE v1('Hello World')
----
hello