Last active
November 8, 2020 14:27
-
-
Save agarciadom/0977f2d3b2abb5247bbddcc92c04b7de to your computer and use it in GitHub Desktop.
Gist for issue 1091 in DuckDB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE SEQUENCE elems_seq; | |
CREATE TABLE nodes ( id BIGINT PRIMARY KEY, label VARCHAR NOT NULL); | |
CREATE INDEX nodes_label ON nodes (label); | |
CREATE TABLE edges (id BIGINT PRIMARY KEY,from_node_id BIGINT NOT NULL,to_node_id BIGINT NOT NULL,label STRING NOT NULL,UNIQUE (from_node_id, to_node_id, label)); | |
CREATE INDEX edges_outgoing ON edges (from_node_id, label); | |
CREATE INDEX edges_incoming ON edges (to_node_id, label); | |
CREATE TABLE properties ( elem_id BIGINT NOT NULL, name VARCHAR NOT NULL, value_boolean BOOLEAN, value_long BIGINT, value_int INTEGER, value_float FLOAT, value_double DOUBLE, value_string VARCHAR, value_blob BLOB, PRIMARY KEY (elem_id, name)); | |
CREATE INDEX properties_elemid ON properties (elem_id); | |
INSERT INTO nodes (id, label) SELECT nextval('elems_seq'), 'test'; | |
SELECT * FROM nodes; | |
BEGIN TRANSACTION; | |
UPDATE properties SET value_int = 5 WHERE elem_id = 1 AND name = 'x'; | |
INSERT INTO properties (elem_id, name, value_int) VALUES (1, 'x', 5); | |
SELECT value_boolean, value_long, value_int, value_float, value_double, value_string, CAST(value_blob AS VARCHAR) FROM properties WHERE elem_id = 1 AND name = 'x'; | |
SELECT name FROM properties WHERE elem_id = 1; | |
DELETE FROM properties WHERE elem_id = 1 AND name = 'x'; | |
SELECT name FROM properties WHERE elem_id = 1; | |
COMMIT; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment