From: Nikolay Shaplov Date: Fri, 30 Oct 2015 11:26:44 +0000 (+0300) Subject: Putting all the stuff in git X-Git-Url: http://gitweb.nataraj.world/?a=commitdiff_plain;h=a8d313b16ac91638a3f578c05c04fc46aae1e355;p=articles.git Putting all the stuff in git --- diff --git a/slides/2015 - Tuple internals/README.md b/slides/2015 - Tuple internals/README.md new file mode 100644 index 0000000..89ea9be --- /dev/null +++ b/slides/2015 - Tuple internals/README.md @@ -0,0 +1 @@ +# tuple-internals-presentation diff --git a/slides/2015 - Tuple internals/src/000_color_samples.svg b/slides/2015 - Tuple internals/src/000_color_samples.svg new file mode 100644 index 0000000..76665bc --- /dev/null +++ b/slides/2015 - Tuple internals/src/000_color_samples.svg @@ -0,0 +1,588 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + red + green + blue + + + + + + + + + + + + + brown + + + cyan + (comment 0x10 = 16) + + + + 00 + + + + + + + + + + t_max + header + HeapTupleHeaderData + src/include/access/htup_details.h + 10 + 00 + + diff --git a/slides/2015 - Tuple internals/src/010_page_structure.svg b/slides/2015 - Tuple internals/src/010_page_structure.svg new file mode 100644 index 0000000..d4c171d --- /dev/null +++ b/slides/2015 - Tuple internals/src/010_page_structure.svg @@ -0,0 +1,557 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + Tupleheader + + + + Tupleheader + + + Tupledata + Tupledata + Linepointer + Linepointer + Linepointer + Page header + Special + + + Tupleheader + + + Tupledata + + + + + + diff --git a/slides/2015 - Tuple internals/src/020_tuple_hader.svg b/slides/2015 - Tuple internals/src/020_tuple_hader.svg new file mode 100644 index 0000000..7dbd5c6 --- /dev/null +++ b/slides/2015 - Tuple internals/src/020_tuple_hader.svg @@ -0,0 +1,737 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + t_min + t_max + t_field3 + t_cid(block) + t_cid(position) + t_infomask2 + t_infomask + t_hoff + t_bits + padding + tuple data + + + + t_hoff + HeapTupleHeaderData + src/include/access/htup_details.h + + + + diff --git a/slides/2015 - Tuple internals/src/030_tuple_descriptor.svg b/slides/2015 - Tuple internals/src/030_tuple_descriptor.svg new file mode 100644 index 0000000..bdde2a7 --- /dev/null +++ b/slides/2015 - Tuple internals/src/030_tuple_descriptor.svg @@ -0,0 +1,838 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + nattrs + attrs[] + + + + + + + + + + attlen + attalign + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + ... + nattrs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + tupleDesc + Form_pg_attribute + src/include/access/tupdesc.h + src/include/catalog/pg_attribute.h + + diff --git a/slides/2015 - Tuple internals/src/040_1b_varlen_header.svg b/slides/2015 - Tuple internals/src/040_1b_varlen_header.svg new file mode 100644 index 0000000..83fc891 --- /dev/null +++ b/slides/2015 - Tuple internals/src/040_1b_varlen_header.svg @@ -0,0 +1,436 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + header + data + + + + + 09 + 61 + 62 + 63 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + + + + length + 1b flag + varattrib_1b + src/include/postgres.h + + diff --git a/slides/2015 - Tuple internals/src/040_4b_varlen_header.svg b/slides/2015 - Tuple internals/src/040_4b_varlen_header.svg new file mode 100644 index 0000000..db11272 --- /dev/null +++ b/slides/2015 - Tuple internals/src/040_4b_varlen_header.svg @@ -0,0 +1,1274 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + 0C + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + + + + + + 1b flag + varattrib_4b + src/include/postgres.h + + + + + + 02 + 00 + 00 + 2D + 2D + 2D + compession flag + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + + 2D + 2D + + + + + length + length (cont.) + data + header + + diff --git a/slides/2015 - Tuple internals/src/045_infomask.svg b/slides/2015 - Tuple internals/src/045_infomask.svg new file mode 100644 index 0000000..2941c26 --- /dev/null +++ b/slides/2015 - Tuple internals/src/045_infomask.svg @@ -0,0 +1,1343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + (0x801 = 2049) + + + + + t_infomask2 + src/include/access/htup_details.h + 08 + 01 + t_infomask + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + + + + + + + + + has NULLs + + + + + + + 03 + 00 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + + number of attrs + number of attrs(cont.) + + diff --git a/slides/2015 - Tuple internals/src/050_alignment_general.svg b/slides/2015 - Tuple internals/src/050_alignment_general.svg new file mode 100644 index 0000000..906646e --- /dev/null +++ b/slides/2015 - Tuple internals/src/050_alignment_general.svg @@ -0,0 +1,1415 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/slides/2015 - Tuple internals/src/052_alignment_slot_show1.svg b/slides/2015 - Tuple internals/src/052_alignment_slot_show1.svg new file mode 100644 index 0000000..5c6a1b4 --- /dev/null +++ b/slides/2015 - Tuple internals/src/052_alignment_slot_show1.svg @@ -0,0 +1,1431 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + memory + + + diff --git a/slides/2015 - Tuple internals/src/054_alignment_slot_show2.svg b/slides/2015 - Tuple internals/src/054_alignment_slot_show2.svg new file mode 100644 index 0000000..22bbbce --- /dev/null +++ b/slides/2015 - Tuple internals/src/054_alignment_slot_show2.svg @@ -0,0 +1,1445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2-byte slots + + + diff --git a/slides/2015 - Tuple internals/src/056_alignment_slot_show4.svg b/slides/2015 - Tuple internals/src/056_alignment_slot_show4.svg new file mode 100644 index 0000000..6b22235 --- /dev/null +++ b/slides/2015 - Tuple internals/src/056_alignment_slot_show4.svg @@ -0,0 +1,1445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 4-byte slots + + + diff --git a/slides/2015 - Tuple internals/src/058_alignment_slot_show8.svg b/slides/2015 - Tuple internals/src/058_alignment_slot_show8.svg new file mode 100644 index 0000000..7f5a04d --- /dev/null +++ b/slides/2015 - Tuple internals/src/058_alignment_slot_show8.svg @@ -0,0 +1,1445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8-byte slots + + + diff --git a/slides/2015 - Tuple internals/src/060_alignment_data_show0.svg b/slides/2015 - Tuple internals/src/060_alignment_data_show0.svg new file mode 100644 index 0000000..92171a3 --- /dev/null +++ b/slides/2015 - Tuple internals/src/060_alignment_data_show0.svg @@ -0,0 +1,1445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + data to align + + + diff --git a/slides/2015 - Tuple internals/src/061_alignment_data_show1.svg b/slides/2015 - Tuple internals/src/061_alignment_data_show1.svg new file mode 100644 index 0000000..23ef148 --- /dev/null +++ b/slides/2015 - Tuple internals/src/061_alignment_data_show1.svg @@ -0,0 +1,1429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/slides/2015 - Tuple internals/src/062_alignment_data_show1a.svg b/slides/2015 - Tuple internals/src/062_alignment_data_show1a.svg new file mode 100644 index 0000000..02f1e86 --- /dev/null +++ b/slides/2015 - Tuple internals/src/062_alignment_data_show1a.svg @@ -0,0 +1,1429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/slides/2015 - Tuple internals/src/063_alignment_data_show2.svg b/slides/2015 - Tuple internals/src/063_alignment_data_show2.svg new file mode 100644 index 0000000..29fef9a --- /dev/null +++ b/slides/2015 - Tuple internals/src/063_alignment_data_show2.svg @@ -0,0 +1,1429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/slides/2015 - Tuple internals/src/064_alignment_data_show2a.svg b/slides/2015 - Tuple internals/src/064_alignment_data_show2a.svg new file mode 100644 index 0000000..0a87108 --- /dev/null +++ b/slides/2015 - Tuple internals/src/064_alignment_data_show2a.svg @@ -0,0 +1,1429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/slides/2015 - Tuple internals/src/065_alignment_data_show3.svg b/slides/2015 - Tuple internals/src/065_alignment_data_show3.svg new file mode 100644 index 0000000..41b3740 --- /dev/null +++ b/slides/2015 - Tuple internals/src/065_alignment_data_show3.svg @@ -0,0 +1,1429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/slides/2015 - Tuple internals/src/066_alignment_data_show3a.svg b/slides/2015 - Tuple internals/src/066_alignment_data_show3a.svg new file mode 100644 index 0000000..00076d2 --- /dev/null +++ b/slides/2015 - Tuple internals/src/066_alignment_data_show3a.svg @@ -0,0 +1,1429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/slides/2015 - Tuple internals/src/067_alignment_data_show4.svg b/slides/2015 - Tuple internals/src/067_alignment_data_show4.svg new file mode 100644 index 0000000..4324338 --- /dev/null +++ b/slides/2015 - Tuple internals/src/067_alignment_data_show4.svg @@ -0,0 +1,1429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/slides/2015 - Tuple internals/src/068_alignment_data_show4a.svg b/slides/2015 - Tuple internals/src/068_alignment_data_show4a.svg new file mode 100644 index 0000000..f5a154c --- /dev/null +++ b/slides/2015 - Tuple internals/src/068_alignment_data_show4a.svg @@ -0,0 +1,1429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/slides/2015 - Tuple internals/src/069_alignment_data_show_final.svg b/slides/2015 - Tuple internals/src/069_alignment_data_show_final.svg new file mode 100644 index 0000000..1d3ce9a --- /dev/null +++ b/slides/2015 - Tuple internals/src/069_alignment_data_show_final.svg @@ -0,0 +1,1429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/slides/2015 - Tuple internals/src/070_alignment_data_show_final2.svg b/slides/2015 - Tuple internals/src/070_alignment_data_show_final2.svg new file mode 100644 index 0000000..cba6952 --- /dev/null +++ b/slides/2015 - Tuple internals/src/070_alignment_data_show_final2.svg @@ -0,0 +1,1429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/slides/2015 - Tuple internals/src/080_alignment_fixed-length.svg b/slides/2015 - Tuple internals/src/080_alignment_fixed-length.svg new file mode 100644 index 0000000..68033e2 --- /dev/null +++ b/slides/2015 - Tuple internals/src/080_alignment_fixed-length.svg @@ -0,0 +1,482 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + 01 + 02 + 00 + 00 + 00 + 03 + + + + + + + + + + + + + + + + 00 + 00 + 04 + 00 + 00 + 00 + 00 + 00 + 00 + 00 + + tupple padding + + diff --git a/slides/2015 - Tuple internals/src/080_alignment_fixed-length_a.svg b/slides/2015 - Tuple internals/src/080_alignment_fixed-length_a.svg new file mode 100644 index 0000000..f077afe --- /dev/null +++ b/slides/2015 - Tuple internals/src/080_alignment_fixed-length_a.svg @@ -0,0 +1,585 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + 01 + 00 + 00 + 00 + 02 + 00 + 00 + 00 + 03 + + + + + + + + + + + + + + + + + + + + + + + + + 00 + 00 + 00 + 00 + 00 + 00 + 00 + 04 + 00 + 00 + 00 + 00 + 00 + 00 + 00 + + diff --git a/slides/2015 - Tuple internals/src/090_alignment_variable-length.svg b/slides/2015 - Tuple internals/src/090_alignment_variable-length.svg new file mode 100644 index 0000000..3c3be9c --- /dev/null +++ b/slides/2015 - Tuple internals/src/090_alignment_variable-length.svg @@ -0,0 +1,686 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + 01 + 01 + 01 + 00 + 03 + + + FF + 2D + 2D + 2D + 2D + 2D + 2D + 2D + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 00 + 00 + 0C + 02 + 00 + 00 + + 2B + 2B + 2B + 2B + 2D + 2D + 2D + + + + + + diff --git a/slides/2015 - Tuple internals/src/100_compressed_varlen.svg b/slides/2015 - Tuple internals/src/100_compressed_varlen.svg new file mode 100644 index 0000000..0cf16f3 --- /dev/null +++ b/slides/2015 - Tuple internals/src/100_compressed_varlen.svg @@ -0,0 +1,1491 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + FF + + + + + + + + + + 8E + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 1 + + + + + + 1b flag + + + + + + 02 + 00 + 00 + D5 + 07 + 00 + compession flag + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + + 00 + FE + length + length (cont.) + compressed data + header + + + + + + uncompressedlength + + + + + + 2D + 0F + 01 + va_compressed + src/include/postgres.h + (0x7D5=2005) + + diff --git a/slides/2015 - Tuple internals/src/110_toasted_varlen.svg b/slides/2015 - Tuple internals/src/110_toasted_varlen.svg new file mode 100644 index 0000000..232889e --- /dev/null +++ b/slides/2015 - Tuple internals/src/110_toasted_varlen.svg @@ -0,0 +1,979 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + 01 + + + + + 01 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + 1b flag + + + + + + 12 + D9 + 07 + 00 + 00 + D5 + + + + + 07 + 00 + length + stored length + header + + original length + + + + + + 00 + FC + 6F + varatt_external + src/include/postgres.h + + + + + + 00 + 00 + F9 + 6F + 01 + + 03 + (0x7D9=2005+4) + (0x7D5=2005) + + varattrib_1b_e + src/include/postgres.h + tag + toast relation id + toasted value id + + diff --git a/slides/2015 - Tuple internals/src/120_optimization.jpg b/slides/2015 - Tuple internals/src/120_optimization.jpg new file mode 100644 index 0000000..8a03be4 Binary files /dev/null and b/slides/2015 - Tuple internals/src/120_optimization.jpg differ diff --git a/slides/2015 - Tuple internals/src/120_optimization_src.jpg b/slides/2015 - Tuple internals/src/120_optimization_src.jpg new file mode 100644 index 0000000..8a23e95 Binary files /dev/null and b/slides/2015 - Tuple internals/src/120_optimization_src.jpg differ diff --git a/slides/2015 - Tuple internals/src/130_alignment_optimization.svg b/slides/2015 - Tuple internals/src/130_alignment_optimization.svg new file mode 100644 index 0000000..e4f09a3 --- /dev/null +++ b/slides/2015 - Tuple internals/src/130_alignment_optimization.svg @@ -0,0 +1,482 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + 01 + 02 + 00 + 00 + 00 + 03 + + + + + + + + + + + + + + + + 00 + 00 + 04 + 00 + 00 + 00 + 00 + 00 + 00 + 00 + + tuple padding + + diff --git a/slides/2015 - Tuple internals/src/130_alignment_optimization_a.svg b/slides/2015 - Tuple internals/src/130_alignment_optimization_a.svg new file mode 100644 index 0000000..c075c77 --- /dev/null +++ b/slides/2015 - Tuple internals/src/130_alignment_optimization_a.svg @@ -0,0 +1,482 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + 01 + 02 + 00 + 00 + 00 + 03 + + + + + + + + + + + + + + + + 00 + 00 + 04 + 00 + 00 + 00 + 00 + 00 + 00 + 00 + + tupple padding + + diff --git a/slides/2015 - Tuple internals/src/140_access_optimization.svg b/slides/2015 - Tuple internals/src/140_access_optimization.svg new file mode 100644 index 0000000..199138c --- /dev/null +++ b/slides/2015 - Tuple internals/src/140_access_optimization.svg @@ -0,0 +1,935 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + 00 + 00 + 00 + 00 + 01 + 00 + 00 + 00 + 02 + 00 + 00 + 00 + + + + + + + + + + + 10 + 00 + 00 + 00 + 11 + 00 + 00 + 00 + + + + + + + + + + 21 + 00 + 00 + 00 + 22 + 00 + 00 + 00 + + + + + + + + + + + + + + + + 40 + 00 + 00 + 00 + 41 + 00 + 00 + 00 + 42 + 00 + 00 + 00 + + diff --git a/slides/2015 - Tuple internals/src/150_access_optimization_bench.svg b/slides/2015 - Tuple internals/src/150_access_optimization_bench.svg new file mode 100644 index 0000000..69f4e02 --- /dev/null +++ b/slides/2015 - Tuple internals/src/150_access_optimization_bench.svg @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + N1 + + N2 + N999 + N1000 + String + + + + + + + diff --git a/slides/2015 - Tuple internals/src/152_access_optimization_bench_right.svg b/slides/2015 - Tuple internals/src/152_access_optimization_bench_right.svg new file mode 100644 index 0000000..0cd028a --- /dev/null +++ b/slides/2015 - Tuple internals/src/152_access_optimization_bench_right.svg @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + N1 + + N2 + N999 + N1000 + String + + + + + + + diff --git a/slides/2015 - Tuple internals/tuple-internals-old.odp b/slides/2015 - Tuple internals/tuple-internals-old.odp new file mode 100644 index 0000000..a08e137 Binary files /dev/null and b/slides/2015 - Tuple internals/tuple-internals-old.odp differ diff --git a/slides/2015 - Tuple internals/tuple-internals.odp b/slides/2015 - Tuple internals/tuple-internals.odp new file mode 100644 index 0000000..b427be3 Binary files /dev/null and b/slides/2015 - Tuple internals/tuple-internals.odp differ