Skip to content

Instantly share code, notes, and snippets.

@greenlion
Created June 26, 2016 23:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save greenlion/beb7189c3ed79d2c6c9da8f023e2b105 to your computer and use it in GitHub Desktop.
Save greenlion/beb7189c3ed79d2c6c9da8f023e2b105 to your computer and use it in GitHub Desktop.
A schema for holding extents for a column in a column store
-- in dict.db
-- columns are created in partitions of file_max_hwm size
create table columns (
column_id integer primary key,
rowcount, -- count of
extent_size integer,
name blob,
data_type integer, 0 = int, 1=unsigned int, 2=float, 3=double, 4=string
data_extra1,
data_extra2,
all_val, -- not null if this value is only value present in table
nullcount, -- count of null tuples (null for not nullable)
constraint uk unique(tableid, c_name)
);
-- in column db
create table files (
fileid integer primary key,
file_hwm integer,
next_fileid integer,
prev_fileid integer,
first_pageid integer,
constraint files_uk foreign key references files(fileid),
constraint prev_fileid foreign key references files(fileid)
);
create table bitmaps (
val,
extentid integer,
bitmap blob,
constraint first_extent_fk foreign key (first_extentid) references extents(extentid)
);
create table data_extents (
extentid integer primary key,
deleted_bitmap blob,
null_bitmap blob,
next_id integer,
prev_id integer,
minval, -- min value in extent
maxval, -- max value in extent
encoding, -- RLE | FOR | DELTA | LZMA
min_rowid integer,
constraint prev_fk foreign key (prev_id) references extents(extentid),
constraint next_fk foreign key (next_id) references extents(extentid)
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment