-
Notifications
You must be signed in to change notification settings - Fork 180
Expand file tree
/
Copy pathpg_duckdb--1.0.0--1.1.0.sql
More file actions
109 lines (95 loc) · 5.44 KB
/
pg_duckdb--1.0.0--1.1.0.sql
File metadata and controls
109 lines (95 loc) · 5.44 KB
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
-- Add MAP functions support
-- Allow native PREPARE/EXECUTE integer literals to bind against unresolved parquet predicates.
-- The unresolved type lives in the duckdb schema.
CREATE CAST (integer AS duckdb.unresolved_type) WITH INOUT AS ASSIGNMENT;
-- Extract value from map using key
CREATE FUNCTION @extschema@.map_extract(map_col duckdb.map, key "any")
RETURNS duckdb.unresolved_type AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.map_extract(map_col duckdb.unresolved_type, key "any")
RETURNS duckdb.unresolved_type AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
-- Get all keys from map
CREATE FUNCTION @extschema@.map_keys(map_col duckdb.map)
RETURNS duckdb.unresolved_type AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.map_keys(map_col duckdb.unresolved_type)
RETURNS duckdb.unresolved_type AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
-- Get all values from map
CREATE FUNCTION @extschema@.map_values(map_col duckdb.map)
RETURNS duckdb.unresolved_type AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.map_values(map_col duckdb.unresolved_type)
RETURNS duckdb.unresolved_type AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
-- Get map size
CREATE FUNCTION @extschema@.cardinality(map_col duckdb.map)
RETURNS numeric AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.cardinality(map_col duckdb.unresolved_type)
RETURNS numeric AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
-- Get element at key (alias for map_extract)
CREATE FUNCTION @extschema@.element_at(map_col duckdb.map, key "any")
RETURNS duckdb.unresolved_type AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.element_at(map_col duckdb.unresolved_type, key "any")
RETURNS duckdb.unresolved_type AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
-- Merge multiple maps
CREATE FUNCTION @extschema@.map_concat(map_col duckdb.map, map_col2 duckdb.map)
RETURNS duckdb.map AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.map_concat(map_col duckdb.unresolved_type, map_col2 duckdb.map)
RETURNS duckdb.map AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.map_concat(map_col duckdb.map, map_col2 duckdb.unresolved_type)
RETURNS duckdb.map AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.map_concat(map_col duckdb.unresolved_type, map_col2 duckdb.unresolved_type)
RETURNS duckdb.map AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
-- Check if map contains key
CREATE FUNCTION @extschema@.map_contains(map_col duckdb.map, key "any")
RETURNS boolean AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.map_contains(map_col duckdb.unresolved_type, key "any")
RETURNS boolean AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
-- Check if map contains key-value pair
CREATE FUNCTION @extschema@.map_contains_entry(map_col duckdb.map, key "any", value "any")
RETURNS boolean AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.map_contains_entry(map_col duckdb.unresolved_type, key "any", value "any")
RETURNS boolean AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
-- Check if map contains value
CREATE FUNCTION @extschema@.map_contains_value(map_col duckdb.map, value "any")
RETURNS boolean AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.map_contains_value(map_col duckdb.unresolved_type, value "any")
RETURNS boolean AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
-- Get all key-value pairs as structs
CREATE FUNCTION @extschema@.map_entries(map_col duckdb.map)
RETURNS duckdb.struct[] AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.map_entries(map_col duckdb.unresolved_type)
RETURNS duckdb.struct[] AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
-- Extract single value from map (not as list)
CREATE FUNCTION @extschema@.map_extract_value(map_col duckdb.map, key "any")
RETURNS duckdb.unresolved_type AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.map_extract_value(map_col duckdb.unresolved_type, key "any")
RETURNS duckdb.unresolved_type AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
-- Create map from array of struct(k, v)
CREATE FUNCTION @extschema@.map_from_entries(entries duckdb.struct[])
RETURNS duckdb.map AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
CREATE FUNCTION @extschema@.map_from_entries(entries duckdb.unresolved_type)
RETURNS duckdb.map AS 'MODULE_PATHNAME', 'duckdb_only_function' LANGUAGE C;
DROP FUNCTION duckdb.create_simple_secret(
type TEXT,
key_id TEXT,
secret TEXT,
session_token TEXT,
region TEXT,
url_style TEXT,
provider TEXT,
endpoint TEXT,
scope TEXT
);
CREATE FUNCTION duckdb.create_simple_secret(
type TEXT, -- One of (S3, GCS, R2)
key_id TEXT,
secret TEXT,
session_token TEXT DEFAULT '',
region TEXT DEFAULT '',
url_style TEXT DEFAULT '',
provider TEXT DEFAULT '',
endpoint TEXT DEFAULT '',
scope TEXT DEFAULT '',
validation TEXT DEFAULT '',
use_ssl TEXT DEFAULT ''
)
RETURNS TEXT
SET search_path = pg_catalog, pg_temp
LANGUAGE C AS 'MODULE_PATHNAME', 'pgduckdb_create_simple_secret';