Website deployed from calcite@e8b2124ecaf44a6c17714280822563d13a7deeb8
diff --git a/.asf.yaml b/.asf.yaml
index 5e818ba..49a7af4 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 publish:
-   whoami: master
+   whoami: main
diff --git a/assets/css/style.css b/assets/css/style.css
deleted file mode 100644
index 0cd1c62..0000000
--- a/assets/css/style.css
+++ /dev/null
@@ -1,5699 +0,0 @@
-/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */
-/**
- * 1. Change the default font family in all browsers (opinionated).
- * 2. Prevent adjustments of font size after orientation changes in IE and iOS.
- */
-html {
-  font-family: sans-serif;
-  /* 1 */
-  -ms-text-size-adjust: 100%;
-  /* 2 */
-  -webkit-text-size-adjust: 100%;
-  /* 2 */ }
-
-/**
- * Remove the margin in all browsers (opinionated).
- */
-body {
-  margin: 0; }
-
-/* HTML5 display definitions
-   ========================================================================== */
-/**
- * Add the correct display in IE 9-.
- * 1. Add the correct display in Edge, IE, and Firefox.
- * 2. Add the correct display in IE.
- */
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-main,
-menu,
-nav,
-section {
-  /* 1 */
-  display: block; }
-
-summary {
-  display: list-item; }
-
-/**
- * Add the correct display in IE 9-.
- */
-audio,
-canvas,
-progress,
-video {
-  display: inline-block; }
-
-/**
- * Add the correct display in iOS 4-7.
- */
-audio:not([controls]) {
-  display: none;
-  height: 0; }
-
-/**
- * Add the correct vertical alignment in Chrome, Firefox, and Opera.
- */
-progress {
-  vertical-align: baseline; }
-
-/**
- * Add the correct display in IE 10-.
- * 1. Add the correct display in IE.
- */
-template,
-[hidden] {
-  display: none; }
-
-/* Links
-   ========================================================================== */
-/**
- * Remove the gray background on active links in IE 10.
- */
-a {
-  background-color: transparent;
-  /* 1 */ }
-
-/**
- * Remove the outline on focused links when they are also active or hovered
- * in all browsers (opinionated).
- */
-a:active,
-a:hover {
-  outline-width: 0; }
-
-/* Text-level semantics
-   ========================================================================== */
-/**
- * 1. Remove the bottom border in Firefox 39-.
- * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
- */
-abbr[title] {
-  border-bottom: none;
-  /* 1 */
-  text-decoration: underline;
-  /* 2 */
-  text-decoration: underline dotted;
-  /* 2 */ }
-
-/**
- * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
- */
-b,
-strong {
-  font-weight: inherit; }
-
-/**
- * Add the correct font weight in Chrome, Edge, and Safari.
- */
-b,
-strong {
-  font-weight: bolder; }
-
-/**
- * Add the correct font style in Android 4.3-.
- */
-dfn {
-  font-style: italic; }
-
-/**
- * Correct the font size and margin on `h1` elements within `section` and
- * `article` contexts in Chrome, Firefox, and Safari.
- */
-h1 {
-  font-size: 2em;
-  margin: 0.67em 0; }
-
-/**
- * Add the correct background and color in IE 9-.
- */
-mark {
-  background-color: #ff0;
-  color: #000; }
-
-/**
- * Add the correct font size in all browsers.
- */
-small {
-  font-size: 80%; }
-
-/**
- * Prevent `sub` and `sup` elements from affecting the line height in
- * all browsers.
- */
-sub,
-sup {
-  font-size: 75%;
-  line-height: 0;
-  position: relative;
-  vertical-align: baseline; }
-
-sub {
-  bottom: -0.25em; }
-
-sup {
-  top: -0.5em; }
-
-/* Embedded content
-   ========================================================================== */
-/**
- * Remove the border on images inside links in IE 10-.
- */
-img {
-  border-style: none; }
-
-/**
- * Hide the overflow in IE.
- */
-svg:not(:root) {
-  overflow: hidden; }
-
-/* Grouping content
-   ========================================================================== */
-/**
- * 1. Correct the inheritance and scaling of font size in all browsers.
- * 2. Correct the odd `em` font sizing in all browsers.
- */
-code,
-kbd,
-pre,
-samp {
-  font-family: monospace, monospace;
-  /* 1 */
-  font-size: 1em;
-  /* 2 */ }
-
-/**
- * Add the correct margin in IE 8.
- */
-figure {
-  margin: 1em 40px; }
-
-/**
- * 1. Add the correct box sizing in Firefox.
- * 2. Show the overflow in Edge and IE.
- */
-hr {
-  box-sizing: content-box;
-  /* 1 */
-  height: 0;
-  /* 1 */
-  overflow: visible;
-  /* 2 */ }
-
-/* Forms
-   ========================================================================== */
-/**
- * 1. Change font properties to `inherit` in all browsers (opinionated).
- * 2. Remove the margin in Firefox and Safari.
- */
-button,
-input,
-select,
-textarea {
-  font: inherit;
-  /* 1 */
-  margin: 0;
-  /* 2 */ }
-
-/**
- * Restore the font weight unset by the previous rule.
- */
-optgroup {
-  font-weight: bold; }
-
-/**
- * Show the overflow in IE.
- * 1. Show the overflow in Edge.
- */
-button,
-input {
-  /* 1 */
-  overflow: visible; }
-
-/**
- * Remove the inheritance of text transform in Edge, Firefox, and IE.
- * 1. Remove the inheritance of text transform in Firefox.
- */
-button,
-select {
-  /* 1 */
-  text-transform: none; }
-
-/**
- * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
- *    controls in Android 4.
- * 2. Correct the inability to style clickable types in iOS and Safari.
- */
-button,
-html [type="button"],
-[type="reset"],
-[type="submit"] {
-  -webkit-appearance: button;
-  /* 2 */ }
-
-/**
- * Remove the inner border and padding in Firefox.
- */
-button::-moz-focus-inner,
-[type="button"]::-moz-focus-inner,
-[type="reset"]::-moz-focus-inner,
-[type="submit"]::-moz-focus-inner {
-  border-style: none;
-  padding: 0; }
-
-/**
- * Restore the focus styles unset by the previous rule.
- */
-button:-moz-focusring,
-[type="button"]:-moz-focusring,
-[type="reset"]:-moz-focusring,
-[type="submit"]:-moz-focusring {
-  outline: 1px dotted ButtonText; }
-
-/**
- * Change the border, margin, and padding in all browsers (opinionated).
- */
-fieldset {
-  border: 1px solid #c0c0c0;
-  margin: 0 2px;
-  padding: 0.35em 0.625em 0.75em; }
-
-/**
- * 1. Correct the text wrapping in Edge and IE.
- * 2. Correct the color inheritance from `fieldset` elements in IE.
- * 3. Remove the padding so developers are not caught out when they zero out
- *    `fieldset` elements in all browsers.
- */
-legend {
-  box-sizing: border-box;
-  /* 1 */
-  color: inherit;
-  /* 2 */
-  display: table;
-  /* 1 */
-  max-width: 100%;
-  /* 1 */
-  padding: 0;
-  /* 3 */
-  white-space: normal;
-  /* 1 */ }
-
-/**
- * Remove the default vertical scrollbar in IE.
- */
-textarea {
-  overflow: auto; }
-
-/**
- * 1. Add the correct box sizing in IE 10-.
- * 2. Remove the padding in IE 10-.
- */
-[type="checkbox"],
-[type="radio"] {
-  box-sizing: border-box;
-  /* 1 */
-  padding: 0;
-  /* 2 */ }
-
-/**
- * Correct the cursor style of increment and decrement buttons in Chrome.
- */
-[type="number"]::-webkit-inner-spin-button,
-[type="number"]::-webkit-outer-spin-button {
-  height: auto; }
-
-/**
- * 1. Correct the odd appearance in Chrome and Safari.
- * 2. Correct the outline style in Safari.
- */
-[type="search"] {
-  -webkit-appearance: textfield;
-  /* 1 */
-  outline-offset: -2px;
-  /* 2 */ }
-
-/**
- * Remove the inner padding and cancel buttons in Chrome and Safari on OS X.
- */
-[type="search"]::-webkit-search-cancel-button,
-[type="search"]::-webkit-search-decoration {
-  -webkit-appearance: none; }
-
-/**
- * Correct the text style of placeholders in Chrome, Edge, and Safari.
- */
-::-webkit-input-placeholder {
-  color: inherit;
-  opacity: 0.54; }
-
-/**
- * 1. Correct the inability to style clickable types in iOS and Safari.
- * 2. Change font properties to `inherit` in Safari.
- */
-::-webkit-file-upload-button {
-  -webkit-appearance: button;
-  /* 1 */
-  font: inherit;
-  /* 2 */ }
-
-* {
-  box-sizing: border-box; }
-
-input,
-select,
-textarea,
-button {
-  font-family: inherit;
-  font-size: inherit;
-  line-height: inherit; }
-
-body {
-  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
-  font-size: 14px;
-  line-height: 1.5;
-  color: #24292e;
-  background-color: #fff; }
-
-a {
-  color: #0366d6;
-  text-decoration: none; }
-  a:hover {
-    text-decoration: underline; }
-
-b,
-strong {
-  font-weight: 600; }
-
-hr,
-.rule {
-  height: 0;
-  margin: 15px 0;
-  overflow: hidden;
-  background: transparent;
-  border: 0;
-  border-bottom: 1px solid #dfe2e5; }
-  hr::before,
-  .rule::before {
-    display: table;
-    content: ""; }
-  hr::after,
-  .rule::after {
-    display: table;
-    clear: both;
-    content: ""; }
-
-table {
-  border-spacing: 0;
-  border-collapse: collapse; }
-
-td,
-th {
-  padding: 0; }
-
-button {
-  cursor: pointer;
-  border-radius: 0; }
-
-details summary {
-  cursor: pointer; }
-details:not([open]) > *:not(summary) {
-  display: none !important; }
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-  margin-top: 0;
-  margin-bottom: 0; }
-
-h1 {
-  font-size: 32px;
-  font-weight: 600; }
-
-h2 {
-  font-size: 24px;
-  font-weight: 600; }
-
-h3 {
-  font-size: 20px;
-  font-weight: 600; }
-
-h4 {
-  font-size: 16px;
-  font-weight: 600; }
-
-h5 {
-  font-size: 14px;
-  font-weight: 600; }
-
-h6 {
-  font-size: 12px;
-  font-weight: 600; }
-
-p {
-  margin-top: 0;
-  margin-bottom: 10px; }
-
-small {
-  font-size: 90%; }
-
-blockquote {
-  margin: 0; }
-
-ul,
-ol {
-  padding-left: 0;
-  margin-top: 0;
-  margin-bottom: 0; }
-
-ol ol,
-ul ol {
-  list-style-type: lower-roman; }
-
-ul ul ol,
-ul ol ol,
-ol ul ol,
-ol ol ol {
-  list-style-type: lower-alpha; }
-
-dd {
-  margin-left: 0; }
-
-tt,
-code {
-  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
-  font-size: 12px; }
-
-pre {
-  margin-top: 0;
-  margin-bottom: 0;
-  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
-  font-size: 12px; }
-
-.octicon {
-  vertical-align: text-bottom; }
-
-/* Fade in an element */
-.anim-fade-in {
-  animation-name: fade-in;
-  animation-duration: 1s;
-  animation-timing-function: ease-in-out; }
-  .anim-fade-in.fast {
-    animation-duration: 300ms; }
-
-@keyframes fade-in {
-  0% {
-    opacity: 0; }
-  100% {
-    opacity: 1; } }
-/* Fade out an element */
-.anim-fade-out {
-  animation-name: fade-out;
-  animation-duration: 1s;
-  animation-timing-function: ease-out; }
-  .anim-fade-out.fast {
-    animation-duration: 0.3s; }
-
-@keyframes fade-out {
-  0% {
-    opacity: 1; }
-  100% {
-    opacity: 0; } }
-/* Fade in and slide up an element */
-.anim-fade-up {
-  opacity: 0;
-  animation-name: fade-up;
-  animation-duration: 0.3s;
-  animation-fill-mode: forwards;
-  animation-timing-function: ease-out;
-  animation-delay: 1s; }
-
-@keyframes fade-up {
-  0% {
-    opacity: 0.8;
-    transform: translateY(100%); }
-  100% {
-    opacity: 1;
-    transform: translateY(0); } }
-/* Fade an element out and slide down */
-.anim-fade-down {
-  animation-name: fade-down;
-  animation-duration: 0.3s;
-  animation-fill-mode: forwards;
-  animation-timing-function: ease-in; }
-
-@keyframes fade-down {
-  0% {
-    opacity: 1;
-    transform: translateY(0); }
-  100% {
-    opacity: 0.5;
-    transform: translateY(100%); } }
-/* Grow an element width from 0 to 100% */
-.anim-grow-x {
-  width: 0%;
-  animation-name: grow-x;
-  animation-duration: 0.3s;
-  animation-fill-mode: forwards;
-  animation-timing-function: ease;
-  animation-delay: 0.5s; }
-
-@keyframes grow-x {
-  to {
-    width: 100%; } }
-/* Shrink an element from 100% to 0% */
-.anim-shrink-x {
-  animation-name: shrink-x;
-  animation-duration: 0.3s;
-  animation-fill-mode: forwards;
-  animation-timing-function: ease-in-out;
-  animation-delay: 0.5s; }
-
-@keyframes shrink-x {
-  to {
-    width: 0%; } }
-/* Fade in an element and scale it fast */
-.anim-scale-in {
-  animation-name: scale-in;
-  animation-duration: 0.15s;
-  animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5); }
-
-@keyframes scale-in {
-  0% {
-    opacity: 0;
-    transform: scale(0.5); }
-  100% {
-    opacity: 1;
-    transform: scale(1); } }
-/* Pulse an element's opacity */
-.anim-pulse {
-  animation-name: pulse;
-  animation-duration: 2s;
-  animation-timing-function: linear;
-  animation-iteration-count: infinite; }
-
-@keyframes pulse {
-  0% {
-    opacity: 0.3; }
-  10% {
-    opacity: 1; }
-  100% {
-    opacity: 0.3; } }
-/* Pulse in an element */
-.anim-pulse-in {
-  animation-name: pulse-in;
-  animation-duration: 0.5s; }
-
-@keyframes pulse-in {
-  0% {
-    transform: scale3d(1, 1, 1); }
-  50% {
-    transform: scale3d(1.1, 1.1, 1.1); }
-  100% {
-    transform: scale3d(1, 1, 1); } }
-/* Increase scale of an element on hover */
-.hover-grow {
-  transition: transform 0.3s; }
-  .hover-grow:hover {
-    transform: scale(1.025); }
-
-/* Add a gray border */
-.border {
-  border: 1px #e1e4e8 solid !important; }
-
-/* Add a gray border to the top */
-.border-top {
-  border-top: 1px #e1e4e8 solid !important; }
-
-/* Add a gray border to the right */
-.border-right {
-  border-right: 1px #e1e4e8 solid !important; }
-
-/* Add a gray border to the bottom */
-.border-bottom {
-  border-bottom: 1px #e1e4e8 solid !important; }
-
-/* Add a gray border to the left */
-.border-left {
-  border-left: 1px #e1e4e8 solid !important; }
-
-/* Add a gray border to the left and right */
-.border-y {
-  border-top: 1px #e1e4e8 solid !important;
-  border-bottom: 1px #e1e4e8 solid !important; }
-
-.border-dashed {
-  border-style: dashed !important; }
-
-/* Use with .border to turn the border blue */
-.border-blue {
-  border-color: #0366d6 !important; }
-
-/* Use with .border to turn the border blue-light */
-.border-blue-light {
-  border-color: #c8e1ff !important; }
-
-/* Use with .border to turn the border green */
-.border-green {
-  border-color: #34d058 !important; }
-
-/* Use with .border to turn the border green light */
-.border-green-light {
-  border-color: #a2cbac !important; }
-
-/* Use with .border to turn the border red */
-.border-red {
-  border-color: #d73a49 !important; }
-
-/* Use with .border to turn the border red-light */
-.border-red-light {
-  border-color: #cea0a5 !important; }
-
-/* Use with .border to turn the border purple */
-.border-purple {
-  border-color: #6f42c1 !important; }
-
-/* Use with .border to turn the border yellow */
-.border-yellow {
-  border-color: #d9d0a5 !important; }
-
-/* Use with .border to turn the border gray-light */
-.border-gray-light {
-  border-color: #eaecef !important; }
-
-/* Use with .border to turn the border gray-dark */
-.border-gray-dark {
-  border-color: #d1d5da !important; }
-
-/* Use with .border to turn the border rgba black 0.15 */
-.border-black-fade {
-  border-color: rgba(27, 31, 35, 0.15) !important; }
-
-/* Remove all borders */
-.border-0 {
-  border: 0 !important; }
-
-/* Remove the top border */
-.border-top-0 {
-  border-top: 0 !important; }
-
-/* Remove the right border */
-.border-right-0 {
-  border-right: 0 !important; }
-
-/* Remove the bottom border */
-.border-bottom-0 {
-  border-bottom: 0 !important; }
-
-/* Remove the left border */
-.border-left-0 {
-  border-left: 0 !important; }
-
-/* Remove the border-radius */
-.rounded-0 {
-  border-radius: 0 !important; }
-
-/* Add a border-radius to all corners */
-.rounded-1 {
-  border-radius: 3px !important; }
-
-/* Add a 2x border-radius to all corners */
-.rounded-2 {
-  border-radius: 6px !important; }
-
-/* Add a 50% border-radius to make something into a circle */
-.circle {
-  border-radius: 50% !important; }
-
-.box-shadow {
-  box-shadow: 0 1px 1px rgba(27, 31, 35, 0.1) !important; }
-
-.box-shadow-medium {
-  box-shadow: 0 1px 5px rgba(27, 31, 35, 0.15) !important; }
-
-.box-shadow-large {
-  box-shadow: 0 1px 15px rgba(27, 31, 35, 0.15) !important; }
-
-.box-shadow-extra-large {
-  box-shadow: 0 10px 50px rgba(27, 31, 35, 0.07) !important; }
-
-.box-shadow-none {
-  box-shadow: none !important; }
-
-/* Set the background to $bg-white */
-.bg-white {
-  background-color: #fff !important; }
-
-/* Set the background to $bg-blue */
-.bg-blue {
-  background-color: #0366d6 !important; }
-
-/* Set the background to $bg-blue-light */
-.bg-blue-light {
-  background-color: #f1f8ff !important; }
-
-/* Set the background to $bg-gray-dark */
-.bg-gray-dark {
-  background-color: #24292e !important; }
-
-/* Set the background to $bg-gray */
-.bg-gray {
-  background-color: #f6f8fa !important; }
-
-/* Set the background to $bg-gray-light */
-.bg-gray-light {
-  background-color: #fafbfc !important; }
-
-/* Set the background to $bg-green */
-.bg-green {
-  background-color: #28a745 !important; }
-
-/* Set the background to $bg-green-light */
-.bg-green-light {
-  background-color: #dcffe4 !important; }
-
-/* Set the background to $bg-red */
-.bg-red {
-  background-color: #d73a49 !important; }
-
-/* Set the background to $bg-red-light */
-.bg-red-light {
-  background-color: #ffdce0 !important; }
-
-/* Set the background to $bg-yellow */
-.bg-yellow {
-  background-color: #ffd33d !important; }
-
-/* Set the background to $bg-yellow-light */
-.bg-yellow-light {
-  background-color: #fff5b1 !important; }
-
-/* Set the background to $bg-purple */
-.bg-purple {
-  background-color: #6f42c1 !important; }
-
-/* Set the background to $bg-purple-light */
-.bg-purple-light {
-  background-color: #f5f0ff !important; }
-
-.bg-shade-gradient {
-  background-image: linear-gradient(180deg, rgba(27, 31, 35, 0.065), rgba(27, 31, 35, 0)) !important;
-  background-repeat: no-repeat !important;
-  background-size: 100% 200px !important; }
-
-/* Set the text color to $text-blue */
-.text-blue {
-  color: #0366d6 !important; }
-
-/* Set the text color to $text-red */
-.text-red {
-  color: #cb2431 !important; }
-
-/* Set the text color to $text-gray-light */
-.text-gray-light {
-  color: #6a737d !important; }
-
-/* Set the text color to $text-gray */
-.text-gray {
-  color: #586069 !important; }
-
-/* Set the text color to $text-gray-dark */
-.text-gray-dark {
-  color: #24292e !important; }
-
-/* Set the text color to $text-green */
-.text-green {
-  color: #28a745 !important; }
-
-/* Set the text color to $text-orange */
-.text-orange {
-  color: #a04100 !important; }
-
-/* Set the text color to $text-orange-light */
-.text-orange-light {
-  color: #e36209 !important; }
-
-/* Set the text color to $text-purple */
-.text-purple {
-  color: #6f42c1 !important; }
-
-/* Set the text color to $text-white */
-.text-white {
-  color: #fff !important; }
-
-/* Set the text color to inherit */
-.text-inherit {
-  color: inherit !important; }
-
-.text-pending {
-  color: #b08800 !important; }
-
-.bg-pending {
-  color: #dbab09 !important; }
-
-.link-gray {
-  color: #586069 !important; }
-  .link-gray:hover {
-    color: #0366d6 !important; }
-
-.link-gray-dark {
-  color: #24292e !important; }
-  .link-gray-dark:hover {
-    color: #0366d6 !important; }
-
-/* Set the link color to $text-blue on hover
-  Useful when you want only part of a link to turn blue on hover */
-.link-hover-blue:hover {
-  color: #0366d6 !important; }
-
-/* Make a link $text-gray, then $text-blue on hover and removes the underline */
-.muted-link {
-  color: #586069 !important; }
-  .muted-link:hover {
-    color: #0366d6 !important;
-    text-decoration: none; }
-
-.flex-row {
-  flex-direction: row !important; }
-
-.flex-row-reverse {
-  flex-direction: row-reverse !important; }
-
-.flex-column {
-  flex-direction: column !important; }
-
-.flex-wrap {
-  flex-wrap: wrap !important; }
-
-.flex-nowrap {
-  flex-wrap: nowrap !important; }
-
-.flex-justify-start {
-  justify-content: flex-start !important; }
-
-.flex-justify-end {
-  justify-content: flex-end !important; }
-
-.flex-justify-center {
-  justify-content: center !important; }
-
-.flex-justify-between {
-  justify-content: space-between !important; }
-
-.flex-justify-around {
-  justify-content: space-around !important; }
-
-.flex-items-start {
-  align-items: flex-start !important; }
-
-.flex-items-end {
-  align-items: flex-end !important; }
-
-.flex-items-center {
-  align-items: center !important; }
-
-.flex-items-baseline {
-  align-items: baseline !important; }
-
-.flex-items-stretch {
-  align-items: stretch !important; }
-
-.flex-content-start {
-  align-content: flex-start !important; }
-
-.flex-content-end {
-  align-content: flex-end !important; }
-
-.flex-content-center {
-  align-content: center !important; }
-
-.flex-content-between {
-  align-content: space-between !important; }
-
-.flex-content-around {
-  align-content: space-around !important; }
-
-.flex-content-stretch {
-  align-content: stretch !important; }
-
-.flex-auto {
-  flex: 1 1 auto !important; }
-
-.flex-shrink-0 {
-  flex-shrink: 0 !important; }
-
-.flex-self-auto {
-  align-self: auto !important; }
-
-.flex-self-start {
-  align-self: flex-start !important; }
-
-.flex-self-end {
-  align-self: flex-end !important; }
-
-.flex-self-center {
-  align-self: center !important; }
-
-.flex-self-baseline {
-  align-self: baseline !important; }
-
-.flex-self-stretch {
-  align-self: stretch !important; }
-
-.flex-item-equal {
-  flex-grow: 1;
-  flex-basis: 0; }
-
-@media (min-width: 544px) {
-  .flex-sm-row {
-    flex-direction: row !important; }
-
-  .flex-sm-row-reverse {
-    flex-direction: row-reverse !important; }
-
-  .flex-sm-column {
-    flex-direction: column !important; }
-
-  .flex-sm-wrap {
-    flex-wrap: wrap !important; }
-
-  .flex-sm-nowrap {
-    flex-wrap: nowrap !important; }
-
-  .flex-sm-justify-start {
-    justify-content: flex-start !important; }
-
-  .flex-sm-justify-end {
-    justify-content: flex-end !important; }
-
-  .flex-sm-justify-center {
-    justify-content: center !important; }
-
-  .flex-sm-justify-between {
-    justify-content: space-between !important; }
-
-  .flex-sm-justify-around {
-    justify-content: space-around !important; }
-
-  .flex-sm-items-start {
-    align-items: flex-start !important; }
-
-  .flex-sm-items-end {
-    align-items: flex-end !important; }
-
-  .flex-sm-items-center {
-    align-items: center !important; }
-
-  .flex-sm-items-baseline {
-    align-items: baseline !important; }
-
-  .flex-sm-items-stretch {
-    align-items: stretch !important; }
-
-  .flex-sm-content-start {
-    align-content: flex-start !important; }
-
-  .flex-sm-content-end {
-    align-content: flex-end !important; }
-
-  .flex-sm-content-center {
-    align-content: center !important; }
-
-  .flex-sm-content-between {
-    align-content: space-between !important; }
-
-  .flex-sm-content-around {
-    align-content: space-around !important; }
-
-  .flex-sm-content-stretch {
-    align-content: stretch !important; }
-
-  .flex-sm-auto {
-    flex: 1 1 auto !important; }
-
-  .flex-sm-shrink-0 {
-    flex-shrink: 0 !important; }
-
-  .flex-sm-self-auto {
-    align-self: auto !important; }
-
-  .flex-sm-self-start {
-    align-self: flex-start !important; }
-
-  .flex-sm-self-end {
-    align-self: flex-end !important; }
-
-  .flex-sm-self-center {
-    align-self: center !important; }
-
-  .flex-sm-self-baseline {
-    align-self: baseline !important; }
-
-  .flex-sm-self-stretch {
-    align-self: stretch !important; }
-
-  .flex-sm-item-equal {
-    flex-grow: 1;
-    flex-basis: 0; } }
-@media (min-width: 768px) {
-  .flex-md-row {
-    flex-direction: row !important; }
-
-  .flex-md-row-reverse {
-    flex-direction: row-reverse !important; }
-
-  .flex-md-column {
-    flex-direction: column !important; }
-
-  .flex-md-wrap {
-    flex-wrap: wrap !important; }
-
-  .flex-md-nowrap {
-    flex-wrap: nowrap !important; }
-
-  .flex-md-justify-start {
-    justify-content: flex-start !important; }
-
-  .flex-md-justify-end {
-    justify-content: flex-end !important; }
-
-  .flex-md-justify-center {
-    justify-content: center !important; }
-
-  .flex-md-justify-between {
-    justify-content: space-between !important; }
-
-  .flex-md-justify-around {
-    justify-content: space-around !important; }
-
-  .flex-md-items-start {
-    align-items: flex-start !important; }
-
-  .flex-md-items-end {
-    align-items: flex-end !important; }
-
-  .flex-md-items-center {
-    align-items: center !important; }
-
-  .flex-md-items-baseline {
-    align-items: baseline !important; }
-
-  .flex-md-items-stretch {
-    align-items: stretch !important; }
-
-  .flex-md-content-start {
-    align-content: flex-start !important; }
-
-  .flex-md-content-end {
-    align-content: flex-end !important; }
-
-  .flex-md-content-center {
-    align-content: center !important; }
-
-  .flex-md-content-between {
-    align-content: space-between !important; }
-
-  .flex-md-content-around {
-    align-content: space-around !important; }
-
-  .flex-md-content-stretch {
-    align-content: stretch !important; }
-
-  .flex-md-auto {
-    flex: 1 1 auto !important; }
-
-  .flex-md-shrink-0 {
-    flex-shrink: 0 !important; }
-
-  .flex-md-self-auto {
-    align-self: auto !important; }
-
-  .flex-md-self-start {
-    align-self: flex-start !important; }
-
-  .flex-md-self-end {
-    align-self: flex-end !important; }
-
-  .flex-md-self-center {
-    align-self: center !important; }
-
-  .flex-md-self-baseline {
-    align-self: baseline !important; }
-
-  .flex-md-self-stretch {
-    align-self: stretch !important; }
-
-  .flex-md-item-equal {
-    flex-grow: 1;
-    flex-basis: 0; } }
-@media (min-width: 1012px) {
-  .flex-lg-row {
-    flex-direction: row !important; }
-
-  .flex-lg-row-reverse {
-    flex-direction: row-reverse !important; }
-
-  .flex-lg-column {
-    flex-direction: column !important; }
-
-  .flex-lg-wrap {
-    flex-wrap: wrap !important; }
-
-  .flex-lg-nowrap {
-    flex-wrap: nowrap !important; }
-
-  .flex-lg-justify-start {
-    justify-content: flex-start !important; }
-
-  .flex-lg-justify-end {
-    justify-content: flex-end !important; }
-
-  .flex-lg-justify-center {
-    justify-content: center !important; }
-
-  .flex-lg-justify-between {
-    justify-content: space-between !important; }
-
-  .flex-lg-justify-around {
-    justify-content: space-around !important; }
-
-  .flex-lg-items-start {
-    align-items: flex-start !important; }
-
-  .flex-lg-items-end {
-    align-items: flex-end !important; }
-
-  .flex-lg-items-center {
-    align-items: center !important; }
-
-  .flex-lg-items-baseline {
-    align-items: baseline !important; }
-
-  .flex-lg-items-stretch {
-    align-items: stretch !important; }
-
-  .flex-lg-content-start {
-    align-content: flex-start !important; }
-
-  .flex-lg-content-end {
-    align-content: flex-end !important; }
-
-  .flex-lg-content-center {
-    align-content: center !important; }
-
-  .flex-lg-content-between {
-    align-content: space-between !important; }
-
-  .flex-lg-content-around {
-    align-content: space-around !important; }
-
-  .flex-lg-content-stretch {
-    align-content: stretch !important; }
-
-  .flex-lg-auto {
-    flex: 1 1 auto !important; }
-
-  .flex-lg-shrink-0 {
-    flex-shrink: 0 !important; }
-
-  .flex-lg-self-auto {
-    align-self: auto !important; }
-
-  .flex-lg-self-start {
-    align-self: flex-start !important; }
-
-  .flex-lg-self-end {
-    align-self: flex-end !important; }
-
-  .flex-lg-self-center {
-    align-self: center !important; }
-
-  .flex-lg-self-baseline {
-    align-self: baseline !important; }
-
-  .flex-lg-self-stretch {
-    align-self: stretch !important; }
-
-  .flex-lg-item-equal {
-    flex-grow: 1;
-    flex-basis: 0; } }
-@media (min-width: 1280px) {
-  .flex-xl-row {
-    flex-direction: row !important; }
-
-  .flex-xl-row-reverse {
-    flex-direction: row-reverse !important; }
-
-  .flex-xl-column {
-    flex-direction: column !important; }
-
-  .flex-xl-wrap {
-    flex-wrap: wrap !important; }
-
-  .flex-xl-nowrap {
-    flex-wrap: nowrap !important; }
-
-  .flex-xl-justify-start {
-    justify-content: flex-start !important; }
-
-  .flex-xl-justify-end {
-    justify-content: flex-end !important; }
-
-  .flex-xl-justify-center {
-    justify-content: center !important; }
-
-  .flex-xl-justify-between {
-    justify-content: space-between !important; }
-
-  .flex-xl-justify-around {
-    justify-content: space-around !important; }
-
-  .flex-xl-items-start {
-    align-items: flex-start !important; }
-
-  .flex-xl-items-end {
-    align-items: flex-end !important; }
-
-  .flex-xl-items-center {
-    align-items: center !important; }
-
-  .flex-xl-items-baseline {
-    align-items: baseline !important; }
-
-  .flex-xl-items-stretch {
-    align-items: stretch !important; }
-
-  .flex-xl-content-start {
-    align-content: flex-start !important; }
-
-  .flex-xl-content-end {
-    align-content: flex-end !important; }
-
-  .flex-xl-content-center {
-    align-content: center !important; }
-
-  .flex-xl-content-between {
-    align-content: space-between !important; }
-
-  .flex-xl-content-around {
-    align-content: space-around !important; }
-
-  .flex-xl-content-stretch {
-    align-content: stretch !important; }
-
-  .flex-xl-auto {
-    flex: 1 1 auto !important; }
-
-  .flex-xl-shrink-0 {
-    flex-shrink: 0 !important; }
-
-  .flex-xl-self-auto {
-    align-self: auto !important; }
-
-  .flex-xl-self-start {
-    align-self: flex-start !important; }
-
-  .flex-xl-self-end {
-    align-self: flex-end !important; }
-
-  .flex-xl-self-center {
-    align-self: center !important; }
-
-  .flex-xl-self-baseline {
-    align-self: baseline !important; }
-
-  .flex-xl-self-stretch {
-    align-self: stretch !important; }
-
-  .flex-xl-item-equal {
-    flex-grow: 1;
-    flex-basis: 0; } }
-/* Set position to static */
-.position-static {
-  position: static !important; }
-
-/* Set position to relative */
-.position-relative {
-  position: relative !important; }
-
-/* Set position to absolute */
-.position-absolute {
-  position: absolute !important; }
-
-/* Set position to fixed */
-.position-fixed {
-  position: fixed !important; }
-
-/* Set top 0 */
-.top-0 {
-  top: 0 !important; }
-
-/* Set right 0 */
-.right-0 {
-  right: 0 !important; }
-
-/* Set bottom 0 */
-.bottom-0 {
-  bottom: 0 !important; }
-
-/* Set left 0 */
-.left-0 {
-  left: 0 !important; }
-
-/* Vertical align middle */
-.v-align-middle {
-  vertical-align: middle !important; }
-
-/* Vertical align top */
-.v-align-top {
-  vertical-align: top !important; }
-
-/* Vertical align bottom */
-.v-align-bottom {
-  vertical-align: bottom !important; }
-
-/* Vertical align to the top of the text */
-.v-align-text-top {
-  vertical-align: text-top !important; }
-
-/* Vertical align to the bottom of the text */
-.v-align-text-bottom {
-  vertical-align: text-bottom !important; }
-
-/* Vertical align to the parent's baseline */
-.v-align-baseline {
-  vertical-align: baseline !important; }
-
-/* Set the overflow hidden */
-.overflow-hidden {
-  overflow: hidden !important; }
-
-/* Set the overflow scroll */
-.overflow-scroll {
-  overflow: scroll !important; }
-
-/* Set the overflow auto */
-.overflow-auto {
-  overflow: auto !important; }
-
-/* Clear floats around the element */
-.clearfix::before {
-  display: table;
-  content: ""; }
-.clearfix::after {
-  display: table;
-  clear: both;
-  content: ""; }
-
-/* Float to the right */
-.float-right {
-  float: right !important; }
-
-/* Float to the left */
-.float-left {
-  float: left !important; }
-
-/* Don't float left or right */
-.float-none {
-  float: none !important; }
-
-@media (min-width: 544px) {
-  /* Float to the left at the sm breakpoint */
-  .float-sm-left {
-    float: left !important; }
-
-  /* Float to the right at the sm breakpoint */
-  .float-sm-right {
-    float: right !important; }
-
-  /* No float at the sm breakpoint */
-  .float-sm-none {
-    float: none !important; } }
-@media (min-width: 768px) {
-  /* Float to the left at the md breakpoint */
-  .float-md-left {
-    float: left !important; }
-
-  /* Float to the right at the md breakpoint */
-  .float-md-right {
-    float: right !important; }
-
-  /* No float at the md breakpoint */
-  .float-md-none {
-    float: none !important; } }
-@media (min-width: 1012px) {
-  /* Float to the left at the lg breakpoint */
-  .float-lg-left {
-    float: left !important; }
-
-  /* Float to the right at the lg breakpoint */
-  .float-lg-right {
-    float: right !important; }
-
-  /* No float at the lg breakpoint */
-  .float-lg-none {
-    float: none !important; } }
-@media (min-width: 1280px) {
-  /* Float to the left at the xl breakpoint */
-  .float-xl-left {
-    float: left !important; }
-
-  /* Float to the right at the xl breakpoint */
-  .float-xl-right {
-    float: right !important; }
-
-  /* No float at the xl breakpoint */
-  .float-xl-none {
-    float: none !important; } }
-/* Max width 100% */
-.width-fit {
-  max-width: 100% !important; }
-
-/* Set the width to 100% */
-.width-full {
-  width: 100% !important; }
-
-/* Max height 100% */
-.height-fit {
-  max-height: 100% !important; }
-
-/* Set the height to 100% */
-.height-full {
-  height: 100% !important; }
-
-/* Remove min-width from element */
-.min-width-0 {
-  min-width: 0 !important; }
-
-/* Set the direction to rtl */
-.direction-rtl {
-  direction: rtl !important; }
-
-/* Set the direction to ltr */
-.direction-ltr {
-  direction: ltr !important; }
-
-@media (min-width: 544px) {
-  /* Set the direction to rtl at the sm breakpoint */
-  .direction-sm-rtl {
-    direction: rtl !important; }
-
-  /* Set the direction to ltr at the sm breakpoint */
-  .direction-sm-ltr {
-    direction: ltr !important; } }
-@media (min-width: 768px) {
-  /* Set the direction to rtl at the md breakpoint */
-  .direction-md-rtl {
-    direction: rtl !important; }
-
-  /* Set the direction to ltr at the md breakpoint */
-  .direction-md-ltr {
-    direction: ltr !important; } }
-@media (min-width: 1012px) {
-  /* Set the direction to rtl at the lg breakpoint */
-  .direction-lg-rtl {
-    direction: rtl !important; }
-
-  /* Set the direction to ltr at the lg breakpoint */
-  .direction-lg-ltr {
-    direction: ltr !important; } }
-@media (min-width: 1280px) {
-  /* Set the direction to rtl at the xl breakpoint */
-  .direction-xl-rtl {
-    direction: rtl !important; }
-
-  /* Set the direction to ltr at the xl breakpoint */
-  .direction-xl-ltr {
-    direction: ltr !important; } }
-/* Set a 0 margin to all sides */
-.m-0 {
-  margin: 0 !important; }
-
-/* Set a 0 margin on the top */
-.mt-0 {
-  margin-top: 0 !important; }
-
-/* Set a 0 margin on the right */
-.mr-0 {
-  margin-right: 0 !important; }
-
-/* Set a 0 margin on the bottom */
-.mb-0 {
-  margin-bottom: 0 !important; }
-
-/* Set a 0 margin on the left */
-.ml-0 {
-  margin-left: 0 !important; }
-
-/* Set a negative 0 margin on top */
-.mt-n0 {
-  margin-top: -0 !important; }
-
-/* Set a negative 0 margin on the right */
-.mr-n0 {
-  margin-right: -0 !important; }
-
-/* Set a negative 0 margin on the bottom */
-.mb-n0 {
-  margin-bottom: -0 !important; }
-
-/* Set a negative 0 margin on the left */
-.ml-n0 {
-  margin-left: -0 !important; }
-
-/* Set a 0 margin on the left & right */
-.mx-0 {
-  margin-right: 0 !important;
-  margin-left: 0 !important; }
-
-/* Set a 0 margin on the top & bottom */
-.my-0 {
-  margin-top: 0 !important;
-  margin-bottom: 0 !important; }
-
-/* Set a 4px margin to all sides */
-.m-1 {
-  margin: 4px !important; }
-
-/* Set a 4px margin on the top */
-.mt-1 {
-  margin-top: 4px !important; }
-
-/* Set a 4px margin on the right */
-.mr-1 {
-  margin-right: 4px !important; }
-
-/* Set a 4px margin on the bottom */
-.mb-1 {
-  margin-bottom: 4px !important; }
-
-/* Set a 4px margin on the left */
-.ml-1 {
-  margin-left: 4px !important; }
-
-/* Set a negative 4px margin on top */
-.mt-n1 {
-  margin-top: -4px !important; }
-
-/* Set a negative 4px margin on the right */
-.mr-n1 {
-  margin-right: -4px !important; }
-
-/* Set a negative 4px margin on the bottom */
-.mb-n1 {
-  margin-bottom: -4px !important; }
-
-/* Set a negative 4px margin on the left */
-.ml-n1 {
-  margin-left: -4px !important; }
-
-/* Set a 4px margin on the left & right */
-.mx-1 {
-  margin-right: 4px !important;
-  margin-left: 4px !important; }
-
-/* Set a 4px margin on the top & bottom */
-.my-1 {
-  margin-top: 4px !important;
-  margin-bottom: 4px !important; }
-
-/* Set a 8px margin to all sides */
-.m-2 {
-  margin: 8px !important; }
-
-/* Set a 8px margin on the top */
-.mt-2 {
-  margin-top: 8px !important; }
-
-/* Set a 8px margin on the right */
-.mr-2 {
-  margin-right: 8px !important; }
-
-/* Set a 8px margin on the bottom */
-.mb-2 {
-  margin-bottom: 8px !important; }
-
-/* Set a 8px margin on the left */
-.ml-2 {
-  margin-left: 8px !important; }
-
-/* Set a negative 8px margin on top */
-.mt-n2 {
-  margin-top: -8px !important; }
-
-/* Set a negative 8px margin on the right */
-.mr-n2 {
-  margin-right: -8px !important; }
-
-/* Set a negative 8px margin on the bottom */
-.mb-n2 {
-  margin-bottom: -8px !important; }
-
-/* Set a negative 8px margin on the left */
-.ml-n2 {
-  margin-left: -8px !important; }
-
-/* Set a 8px margin on the left & right */
-.mx-2 {
-  margin-right: 8px !important;
-  margin-left: 8px !important; }
-
-/* Set a 8px margin on the top & bottom */
-.my-2 {
-  margin-top: 8px !important;
-  margin-bottom: 8px !important; }
-
-/* Set a 16px margin to all sides */
-.m-3 {
-  margin: 16px !important; }
-
-/* Set a 16px margin on the top */
-.mt-3 {
-  margin-top: 16px !important; }
-
-/* Set a 16px margin on the right */
-.mr-3 {
-  margin-right: 16px !important; }
-
-/* Set a 16px margin on the bottom */
-.mb-3 {
-  margin-bottom: 16px !important; }
-
-/* Set a 16px margin on the left */
-.ml-3 {
-  margin-left: 16px !important; }
-
-/* Set a negative 16px margin on top */
-.mt-n3 {
-  margin-top: -16px !important; }
-
-/* Set a negative 16px margin on the right */
-.mr-n3 {
-  margin-right: -16px !important; }
-
-/* Set a negative 16px margin on the bottom */
-.mb-n3 {
-  margin-bottom: -16px !important; }
-
-/* Set a negative 16px margin on the left */
-.ml-n3 {
-  margin-left: -16px !important; }
-
-/* Set a 16px margin on the left & right */
-.mx-3 {
-  margin-right: 16px !important;
-  margin-left: 16px !important; }
-
-/* Set a 16px margin on the top & bottom */
-.my-3 {
-  margin-top: 16px !important;
-  margin-bottom: 16px !important; }
-
-/* Set a 24px margin to all sides */
-.m-4 {
-  margin: 24px !important; }
-
-/* Set a 24px margin on the top */
-.mt-4 {
-  margin-top: 24px !important; }
-
-/* Set a 24px margin on the right */
-.mr-4 {
-  margin-right: 24px !important; }
-
-/* Set a 24px margin on the bottom */
-.mb-4 {
-  margin-bottom: 24px !important; }
-
-/* Set a 24px margin on the left */
-.ml-4 {
-  margin-left: 24px !important; }
-
-/* Set a negative 24px margin on top */
-.mt-n4 {
-  margin-top: -24px !important; }
-
-/* Set a negative 24px margin on the right */
-.mr-n4 {
-  margin-right: -24px !important; }
-
-/* Set a negative 24px margin on the bottom */
-.mb-n4 {
-  margin-bottom: -24px !important; }
-
-/* Set a negative 24px margin on the left */
-.ml-n4 {
-  margin-left: -24px !important; }
-
-/* Set a 24px margin on the left & right */
-.mx-4 {
-  margin-right: 24px !important;
-  margin-left: 24px !important; }
-
-/* Set a 24px margin on the top & bottom */
-.my-4 {
-  margin-top: 24px !important;
-  margin-bottom: 24px !important; }
-
-/* Set a 32px margin to all sides */
-.m-5 {
-  margin: 32px !important; }
-
-/* Set a 32px margin on the top */
-.mt-5 {
-  margin-top: 32px !important; }
-
-/* Set a 32px margin on the right */
-.mr-5 {
-  margin-right: 32px !important; }
-
-/* Set a 32px margin on the bottom */
-.mb-5 {
-  margin-bottom: 32px !important; }
-
-/* Set a 32px margin on the left */
-.ml-5 {
-  margin-left: 32px !important; }
-
-/* Set a negative 32px margin on top */
-.mt-n5 {
-  margin-top: -32px !important; }
-
-/* Set a negative 32px margin on the right */
-.mr-n5 {
-  margin-right: -32px !important; }
-
-/* Set a negative 32px margin on the bottom */
-.mb-n5 {
-  margin-bottom: -32px !important; }
-
-/* Set a negative 32px margin on the left */
-.ml-n5 {
-  margin-left: -32px !important; }
-
-/* Set a 32px margin on the left & right */
-.mx-5 {
-  margin-right: 32px !important;
-  margin-left: 32px !important; }
-
-/* Set a 32px margin on the top & bottom */
-.my-5 {
-  margin-top: 32px !important;
-  margin-bottom: 32px !important; }
-
-/* Set a 40px margin to all sides */
-.m-6 {
-  margin: 40px !important; }
-
-/* Set a 40px margin on the top */
-.mt-6 {
-  margin-top: 40px !important; }
-
-/* Set a 40px margin on the right */
-.mr-6 {
-  margin-right: 40px !important; }
-
-/* Set a 40px margin on the bottom */
-.mb-6 {
-  margin-bottom: 40px !important; }
-
-/* Set a 40px margin on the left */
-.ml-6 {
-  margin-left: 40px !important; }
-
-/* Set a negative 40px margin on top */
-.mt-n6 {
-  margin-top: -40px !important; }
-
-/* Set a negative 40px margin on the right */
-.mr-n6 {
-  margin-right: -40px !important; }
-
-/* Set a negative 40px margin on the bottom */
-.mb-n6 {
-  margin-bottom: -40px !important; }
-
-/* Set a negative 40px margin on the left */
-.ml-n6 {
-  margin-left: -40px !important; }
-
-/* Set a 40px margin on the left & right */
-.mx-6 {
-  margin-right: 40px !important;
-  margin-left: 40px !important; }
-
-/* Set a 40px margin on the top & bottom */
-.my-6 {
-  margin-top: 40px !important;
-  margin-bottom: 40px !important; }
-
-/* Set an auto margin on left & right */
-.mx-auto {
-  margin-right: auto !important;
-  margin-left: auto !important; }
-
-@media (min-width: 544px) {
-  /* Set a 0 margin to all sides at the breakpoint sm */
-  .m-sm-0 {
-    margin: 0 !important; }
-
-  /* Set a 0 margin on the top at the breakpoint sm */
-  .mt-sm-0 {
-    margin-top: 0 !important; }
-
-  /* Set a 0 margin on the right at the breakpoint sm */
-  .mr-sm-0 {
-    margin-right: 0 !important; }
-
-  /* Set a 0 margin on the bottom at the breakpoint sm */
-  .mb-sm-0 {
-    margin-bottom: 0 !important; }
-
-  /* Set a 0 margin on the left at the breakpoint sm */
-  .ml-sm-0 {
-    margin-left: 0 !important; }
-
-  /* Set a negative 0 margin on top at the breakpoint sm */
-  .mt-sm-n0 {
-    margin-top: -0 !important; }
-
-  /* Set a negative 0 margin on the right at the breakpoint sm */
-  .mr-sm-n0 {
-    margin-right: -0 !important; }
-
-  /* Set a negative 0 margin on the bottom at the breakpoint sm */
-  .mb-sm-n0 {
-    margin-bottom: -0 !important; }
-
-  /* Set a negative 0 margin on the left at the breakpoint sm */
-  .ml-sm-n0 {
-    margin-left: -0 !important; }
-
-  /* Set a 0 margin on the left & right at the breakpoint sm */
-  .mx-sm-0 {
-    margin-right: 0 !important;
-    margin-left: 0 !important; }
-
-  /* Set a 0 margin on the top & bottom at the breakpoint sm */
-  .my-sm-0 {
-    margin-top: 0 !important;
-    margin-bottom: 0 !important; } }
-@media (min-width: 544px) {
-  /* Set a 4px margin to all sides at the breakpoint sm */
-  .m-sm-1 {
-    margin: 4px !important; }
-
-  /* Set a 4px margin on the top at the breakpoint sm */
-  .mt-sm-1 {
-    margin-top: 4px !important; }
-
-  /* Set a 4px margin on the right at the breakpoint sm */
-  .mr-sm-1 {
-    margin-right: 4px !important; }
-
-  /* Set a 4px margin on the bottom at the breakpoint sm */
-  .mb-sm-1 {
-    margin-bottom: 4px !important; }
-
-  /* Set a 4px margin on the left at the breakpoint sm */
-  .ml-sm-1 {
-    margin-left: 4px !important; }
-
-  /* Set a negative 4px margin on top at the breakpoint sm */
-  .mt-sm-n1 {
-    margin-top: -4px !important; }
-
-  /* Set a negative 4px margin on the right at the breakpoint sm */
-  .mr-sm-n1 {
-    margin-right: -4px !important; }
-
-  /* Set a negative 4px margin on the bottom at the breakpoint sm */
-  .mb-sm-n1 {
-    margin-bottom: -4px !important; }
-
-  /* Set a negative 4px margin on the left at the breakpoint sm */
-  .ml-sm-n1 {
-    margin-left: -4px !important; }
-
-  /* Set a 4px margin on the left & right at the breakpoint sm */
-  .mx-sm-1 {
-    margin-right: 4px !important;
-    margin-left: 4px !important; }
-
-  /* Set a 4px margin on the top & bottom at the breakpoint sm */
-  .my-sm-1 {
-    margin-top: 4px !important;
-    margin-bottom: 4px !important; } }
-@media (min-width: 544px) {
-  /* Set a 8px margin to all sides at the breakpoint sm */
-  .m-sm-2 {
-    margin: 8px !important; }
-
-  /* Set a 8px margin on the top at the breakpoint sm */
-  .mt-sm-2 {
-    margin-top: 8px !important; }
-
-  /* Set a 8px margin on the right at the breakpoint sm */
-  .mr-sm-2 {
-    margin-right: 8px !important; }
-
-  /* Set a 8px margin on the bottom at the breakpoint sm */
-  .mb-sm-2 {
-    margin-bottom: 8px !important; }
-
-  /* Set a 8px margin on the left at the breakpoint sm */
-  .ml-sm-2 {
-    margin-left: 8px !important; }
-
-  /* Set a negative 8px margin on top at the breakpoint sm */
-  .mt-sm-n2 {
-    margin-top: -8px !important; }
-
-  /* Set a negative 8px margin on the right at the breakpoint sm */
-  .mr-sm-n2 {
-    margin-right: -8px !important; }
-
-  /* Set a negative 8px margin on the bottom at the breakpoint sm */
-  .mb-sm-n2 {
-    margin-bottom: -8px !important; }
-
-  /* Set a negative 8px margin on the left at the breakpoint sm */
-  .ml-sm-n2 {
-    margin-left: -8px !important; }
-
-  /* Set a 8px margin on the left & right at the breakpoint sm */
-  .mx-sm-2 {
-    margin-right: 8px !important;
-    margin-left: 8px !important; }
-
-  /* Set a 8px margin on the top & bottom at the breakpoint sm */
-  .my-sm-2 {
-    margin-top: 8px !important;
-    margin-bottom: 8px !important; } }
-@media (min-width: 544px) {
-  /* Set a 16px margin to all sides at the breakpoint sm */
-  .m-sm-3 {
-    margin: 16px !important; }
-
-  /* Set a 16px margin on the top at the breakpoint sm */
-  .mt-sm-3 {
-    margin-top: 16px !important; }
-
-  /* Set a 16px margin on the right at the breakpoint sm */
-  .mr-sm-3 {
-    margin-right: 16px !important; }
-
-  /* Set a 16px margin on the bottom at the breakpoint sm */
-  .mb-sm-3 {
-    margin-bottom: 16px !important; }
-
-  /* Set a 16px margin on the left at the breakpoint sm */
-  .ml-sm-3 {
-    margin-left: 16px !important; }
-
-  /* Set a negative 16px margin on top at the breakpoint sm */
-  .mt-sm-n3 {
-    margin-top: -16px !important; }
-
-  /* Set a negative 16px margin on the right at the breakpoint sm */
-  .mr-sm-n3 {
-    margin-right: -16px !important; }
-
-  /* Set a negative 16px margin on the bottom at the breakpoint sm */
-  .mb-sm-n3 {
-    margin-bottom: -16px !important; }
-
-  /* Set a negative 16px margin on the left at the breakpoint sm */
-  .ml-sm-n3 {
-    margin-left: -16px !important; }
-
-  /* Set a 16px margin on the left & right at the breakpoint sm */
-  .mx-sm-3 {
-    margin-right: 16px !important;
-    margin-left: 16px !important; }
-
-  /* Set a 16px margin on the top & bottom at the breakpoint sm */
-  .my-sm-3 {
-    margin-top: 16px !important;
-    margin-bottom: 16px !important; } }
-@media (min-width: 544px) {
-  /* Set a 24px margin to all sides at the breakpoint sm */
-  .m-sm-4 {
-    margin: 24px !important; }
-
-  /* Set a 24px margin on the top at the breakpoint sm */
-  .mt-sm-4 {
-    margin-top: 24px !important; }
-
-  /* Set a 24px margin on the right at the breakpoint sm */
-  .mr-sm-4 {
-    margin-right: 24px !important; }
-
-  /* Set a 24px margin on the bottom at the breakpoint sm */
-  .mb-sm-4 {
-    margin-bottom: 24px !important; }
-
-  /* Set a 24px margin on the left at the breakpoint sm */
-  .ml-sm-4 {
-    margin-left: 24px !important; }
-
-  /* Set a negative 24px margin on top at the breakpoint sm */
-  .mt-sm-n4 {
-    margin-top: -24px !important; }
-
-  /* Set a negative 24px margin on the right at the breakpoint sm */
-  .mr-sm-n4 {
-    margin-right: -24px !important; }
-
-  /* Set a negative 24px margin on the bottom at the breakpoint sm */
-  .mb-sm-n4 {
-    margin-bottom: -24px !important; }
-
-  /* Set a negative 24px margin on the left at the breakpoint sm */
-  .ml-sm-n4 {
-    margin-left: -24px !important; }
-
-  /* Set a 24px margin on the left & right at the breakpoint sm */
-  .mx-sm-4 {
-    margin-right: 24px !important;
-    margin-left: 24px !important; }
-
-  /* Set a 24px margin on the top & bottom at the breakpoint sm */
-  .my-sm-4 {
-    margin-top: 24px !important;
-    margin-bottom: 24px !important; } }
-@media (min-width: 544px) {
-  /* Set a 32px margin to all sides at the breakpoint sm */
-  .m-sm-5 {
-    margin: 32px !important; }
-
-  /* Set a 32px margin on the top at the breakpoint sm */
-  .mt-sm-5 {
-    margin-top: 32px !important; }
-
-  /* Set a 32px margin on the right at the breakpoint sm */
-  .mr-sm-5 {
-    margin-right: 32px !important; }
-
-  /* Set a 32px margin on the bottom at the breakpoint sm */
-  .mb-sm-5 {
-    margin-bottom: 32px !important; }
-
-  /* Set a 32px margin on the left at the breakpoint sm */
-  .ml-sm-5 {
-    margin-left: 32px !important; }
-
-  /* Set a negative 32px margin on top at the breakpoint sm */
-  .mt-sm-n5 {
-    margin-top: -32px !important; }
-
-  /* Set a negative 32px margin on the right at the breakpoint sm */
-  .mr-sm-n5 {
-    margin-right: -32px !important; }
-
-  /* Set a negative 32px margin on the bottom at the breakpoint sm */
-  .mb-sm-n5 {
-    margin-bottom: -32px !important; }
-
-  /* Set a negative 32px margin on the left at the breakpoint sm */
-  .ml-sm-n5 {
-    margin-left: -32px !important; }
-
-  /* Set a 32px margin on the left & right at the breakpoint sm */
-  .mx-sm-5 {
-    margin-right: 32px !important;
-    margin-left: 32px !important; }
-
-  /* Set a 32px margin on the top & bottom at the breakpoint sm */
-  .my-sm-5 {
-    margin-top: 32px !important;
-    margin-bottom: 32px !important; } }
-@media (min-width: 544px) {
-  /* Set a 40px margin to all sides at the breakpoint sm */
-  .m-sm-6 {
-    margin: 40px !important; }
-
-  /* Set a 40px margin on the top at the breakpoint sm */
-  .mt-sm-6 {
-    margin-top: 40px !important; }
-
-  /* Set a 40px margin on the right at the breakpoint sm */
-  .mr-sm-6 {
-    margin-right: 40px !important; }
-
-  /* Set a 40px margin on the bottom at the breakpoint sm */
-  .mb-sm-6 {
-    margin-bottom: 40px !important; }
-
-  /* Set a 40px margin on the left at the breakpoint sm */
-  .ml-sm-6 {
-    margin-left: 40px !important; }
-
-  /* Set a negative 40px margin on top at the breakpoint sm */
-  .mt-sm-n6 {
-    margin-top: -40px !important; }
-
-  /* Set a negative 40px margin on the right at the breakpoint sm */
-  .mr-sm-n6 {
-    margin-right: -40px !important; }
-
-  /* Set a negative 40px margin on the bottom at the breakpoint sm */
-  .mb-sm-n6 {
-    margin-bottom: -40px !important; }
-
-  /* Set a negative 40px margin on the left at the breakpoint sm */
-  .ml-sm-n6 {
-    margin-left: -40px !important; }
-
-  /* Set a 40px margin on the left & right at the breakpoint sm */
-  .mx-sm-6 {
-    margin-right: 40px !important;
-    margin-left: 40px !important; }
-
-  /* Set a 40px margin on the top & bottom at the breakpoint sm */
-  .my-sm-6 {
-    margin-top: 40px !important;
-    margin-bottom: 40px !important; } }
-@media (min-width: 768px) {
-  /* Set a 0 margin to all sides at the breakpoint md */
-  .m-md-0 {
-    margin: 0 !important; }
-
-  /* Set a 0 margin on the top at the breakpoint md */
-  .mt-md-0 {
-    margin-top: 0 !important; }
-
-  /* Set a 0 margin on the right at the breakpoint md */
-  .mr-md-0 {
-    margin-right: 0 !important; }
-
-  /* Set a 0 margin on the bottom at the breakpoint md */
-  .mb-md-0 {
-    margin-bottom: 0 !important; }
-
-  /* Set a 0 margin on the left at the breakpoint md */
-  .ml-md-0 {
-    margin-left: 0 !important; }
-
-  /* Set a negative 0 margin on top at the breakpoint md */
-  .mt-md-n0 {
-    margin-top: -0 !important; }
-
-  /* Set a negative 0 margin on the right at the breakpoint md */
-  .mr-md-n0 {
-    margin-right: -0 !important; }
-
-  /* Set a negative 0 margin on the bottom at the breakpoint md */
-  .mb-md-n0 {
-    margin-bottom: -0 !important; }
-
-  /* Set a negative 0 margin on the left at the breakpoint md */
-  .ml-md-n0 {
-    margin-left: -0 !important; }
-
-  /* Set a 0 margin on the left & right at the breakpoint md */
-  .mx-md-0 {
-    margin-right: 0 !important;
-    margin-left: 0 !important; }
-
-  /* Set a 0 margin on the top & bottom at the breakpoint md */
-  .my-md-0 {
-    margin-top: 0 !important;
-    margin-bottom: 0 !important; } }
-@media (min-width: 768px) {
-  /* Set a 4px margin to all sides at the breakpoint md */
-  .m-md-1 {
-    margin: 4px !important; }
-
-  /* Set a 4px margin on the top at the breakpoint md */
-  .mt-md-1 {
-    margin-top: 4px !important; }
-
-  /* Set a 4px margin on the right at the breakpoint md */
-  .mr-md-1 {
-    margin-right: 4px !important; }
-
-  /* Set a 4px margin on the bottom at the breakpoint md */
-  .mb-md-1 {
-    margin-bottom: 4px !important; }
-
-  /* Set a 4px margin on the left at the breakpoint md */
-  .ml-md-1 {
-    margin-left: 4px !important; }
-
-  /* Set a negative 4px margin on top at the breakpoint md */
-  .mt-md-n1 {
-    margin-top: -4px !important; }
-
-  /* Set a negative 4px margin on the right at the breakpoint md */
-  .mr-md-n1 {
-    margin-right: -4px !important; }
-
-  /* Set a negative 4px margin on the bottom at the breakpoint md */
-  .mb-md-n1 {
-    margin-bottom: -4px !important; }
-
-  /* Set a negative 4px margin on the left at the breakpoint md */
-  .ml-md-n1 {
-    margin-left: -4px !important; }
-
-  /* Set a 4px margin on the left & right at the breakpoint md */
-  .mx-md-1 {
-    margin-right: 4px !important;
-    margin-left: 4px !important; }
-
-  /* Set a 4px margin on the top & bottom at the breakpoint md */
-  .my-md-1 {
-    margin-top: 4px !important;
-    margin-bottom: 4px !important; } }
-@media (min-width: 768px) {
-  /* Set a 8px margin to all sides at the breakpoint md */
-  .m-md-2 {
-    margin: 8px !important; }
-
-  /* Set a 8px margin on the top at the breakpoint md */
-  .mt-md-2 {
-    margin-top: 8px !important; }
-
-  /* Set a 8px margin on the right at the breakpoint md */
-  .mr-md-2 {
-    margin-right: 8px !important; }
-
-  /* Set a 8px margin on the bottom at the breakpoint md */
-  .mb-md-2 {
-    margin-bottom: 8px !important; }
-
-  /* Set a 8px margin on the left at the breakpoint md */
-  .ml-md-2 {
-    margin-left: 8px !important; }
-
-  /* Set a negative 8px margin on top at the breakpoint md */
-  .mt-md-n2 {
-    margin-top: -8px !important; }
-
-  /* Set a negative 8px margin on the right at the breakpoint md */
-  .mr-md-n2 {
-    margin-right: -8px !important; }
-
-  /* Set a negative 8px margin on the bottom at the breakpoint md */
-  .mb-md-n2 {
-    margin-bottom: -8px !important; }
-
-  /* Set a negative 8px margin on the left at the breakpoint md */
-  .ml-md-n2 {
-    margin-left: -8px !important; }
-
-  /* Set a 8px margin on the left & right at the breakpoint md */
-  .mx-md-2 {
-    margin-right: 8px !important;
-    margin-left: 8px !important; }
-
-  /* Set a 8px margin on the top & bottom at the breakpoint md */
-  .my-md-2 {
-    margin-top: 8px !important;
-    margin-bottom: 8px !important; } }
-@media (min-width: 768px) {
-  /* Set a 16px margin to all sides at the breakpoint md */
-  .m-md-3 {
-    margin: 16px !important; }
-
-  /* Set a 16px margin on the top at the breakpoint md */
-  .mt-md-3 {
-    margin-top: 16px !important; }
-
-  /* Set a 16px margin on the right at the breakpoint md */
-  .mr-md-3 {
-    margin-right: 16px !important; }
-
-  /* Set a 16px margin on the bottom at the breakpoint md */
-  .mb-md-3 {
-    margin-bottom: 16px !important; }
-
-  /* Set a 16px margin on the left at the breakpoint md */
-  .ml-md-3 {
-    margin-left: 16px !important; }
-
-  /* Set a negative 16px margin on top at the breakpoint md */
-  .mt-md-n3 {
-    margin-top: -16px !important; }
-
-  /* Set a negative 16px margin on the right at the breakpoint md */
-  .mr-md-n3 {
-    margin-right: -16px !important; }
-
-  /* Set a negative 16px margin on the bottom at the breakpoint md */
-  .mb-md-n3 {
-    margin-bottom: -16px !important; }
-
-  /* Set a negative 16px margin on the left at the breakpoint md */
-  .ml-md-n3 {
-    margin-left: -16px !important; }
-
-  /* Set a 16px margin on the left & right at the breakpoint md */
-  .mx-md-3 {
-    margin-right: 16px !important;
-    margin-left: 16px !important; }
-
-  /* Set a 16px margin on the top & bottom at the breakpoint md */
-  .my-md-3 {
-    margin-top: 16px !important;
-    margin-bottom: 16px !important; } }
-@media (min-width: 768px) {
-  /* Set a 24px margin to all sides at the breakpoint md */
-  .m-md-4 {
-    margin: 24px !important; }
-
-  /* Set a 24px margin on the top at the breakpoint md */
-  .mt-md-4 {
-    margin-top: 24px !important; }
-
-  /* Set a 24px margin on the right at the breakpoint md */
-  .mr-md-4 {
-    margin-right: 24px !important; }
-
-  /* Set a 24px margin on the bottom at the breakpoint md */
-  .mb-md-4 {
-    margin-bottom: 24px !important; }
-
-  /* Set a 24px margin on the left at the breakpoint md */
-  .ml-md-4 {
-    margin-left: 24px !important; }
-
-  /* Set a negative 24px margin on top at the breakpoint md */
-  .mt-md-n4 {
-    margin-top: -24px !important; }
-
-  /* Set a negative 24px margin on the right at the breakpoint md */
-  .mr-md-n4 {
-    margin-right: -24px !important; }
-
-  /* Set a negative 24px margin on the bottom at the breakpoint md */
-  .mb-md-n4 {
-    margin-bottom: -24px !important; }
-
-  /* Set a negative 24px margin on the left at the breakpoint md */
-  .ml-md-n4 {
-    margin-left: -24px !important; }
-
-  /* Set a 24px margin on the left & right at the breakpoint md */
-  .mx-md-4 {
-    margin-right: 24px !important;
-    margin-left: 24px !important; }
-
-  /* Set a 24px margin on the top & bottom at the breakpoint md */
-  .my-md-4 {
-    margin-top: 24px !important;
-    margin-bottom: 24px !important; } }
-@media (min-width: 768px) {
-  /* Set a 32px margin to all sides at the breakpoint md */
-  .m-md-5 {
-    margin: 32px !important; }
-
-  /* Set a 32px margin on the top at the breakpoint md */
-  .mt-md-5 {
-    margin-top: 32px !important; }
-
-  /* Set a 32px margin on the right at the breakpoint md */
-  .mr-md-5 {
-    margin-right: 32px !important; }
-
-  /* Set a 32px margin on the bottom at the breakpoint md */
-  .mb-md-5 {
-    margin-bottom: 32px !important; }
-
-  /* Set a 32px margin on the left at the breakpoint md */
-  .ml-md-5 {
-    margin-left: 32px !important; }
-
-  /* Set a negative 32px margin on top at the breakpoint md */
-  .mt-md-n5 {
-    margin-top: -32px !important; }
-
-  /* Set a negative 32px margin on the right at the breakpoint md */
-  .mr-md-n5 {
-    margin-right: -32px !important; }
-
-  /* Set a negative 32px margin on the bottom at the breakpoint md */
-  .mb-md-n5 {
-    margin-bottom: -32px !important; }
-
-  /* Set a negative 32px margin on the left at the breakpoint md */
-  .ml-md-n5 {
-    margin-left: -32px !important; }
-
-  /* Set a 32px margin on the left & right at the breakpoint md */
-  .mx-md-5 {
-    margin-right: 32px !important;
-    margin-left: 32px !important; }
-
-  /* Set a 32px margin on the top & bottom at the breakpoint md */
-  .my-md-5 {
-    margin-top: 32px !important;
-    margin-bottom: 32px !important; } }
-@media (min-width: 768px) {
-  /* Set a 40px margin to all sides at the breakpoint md */
-  .m-md-6 {
-    margin: 40px !important; }
-
-  /* Set a 40px margin on the top at the breakpoint md */
-  .mt-md-6 {
-    margin-top: 40px !important; }
-
-  /* Set a 40px margin on the right at the breakpoint md */
-  .mr-md-6 {
-    margin-right: 40px !important; }
-
-  /* Set a 40px margin on the bottom at the breakpoint md */
-  .mb-md-6 {
-    margin-bottom: 40px !important; }
-
-  /* Set a 40px margin on the left at the breakpoint md */
-  .ml-md-6 {
-    margin-left: 40px !important; }
-
-  /* Set a negative 40px margin on top at the breakpoint md */
-  .mt-md-n6 {
-    margin-top: -40px !important; }
-
-  /* Set a negative 40px margin on the right at the breakpoint md */
-  .mr-md-n6 {
-    margin-right: -40px !important; }
-
-  /* Set a negative 40px margin on the bottom at the breakpoint md */
-  .mb-md-n6 {
-    margin-bottom: -40px !important; }
-
-  /* Set a negative 40px margin on the left at the breakpoint md */
-  .ml-md-n6 {
-    margin-left: -40px !important; }
-
-  /* Set a 40px margin on the left & right at the breakpoint md */
-  .mx-md-6 {
-    margin-right: 40px !important;
-    margin-left: 40px !important; }
-
-  /* Set a 40px margin on the top & bottom at the breakpoint md */
-  .my-md-6 {
-    margin-top: 40px !important;
-    margin-bottom: 40px !important; } }
-@media (min-width: 1012px) {
-  /* Set a 0 margin to all sides at the breakpoint lg */
-  .m-lg-0 {
-    margin: 0 !important; }
-
-  /* Set a 0 margin on the top at the breakpoint lg */
-  .mt-lg-0 {
-    margin-top: 0 !important; }
-
-  /* Set a 0 margin on the right at the breakpoint lg */
-  .mr-lg-0 {
-    margin-right: 0 !important; }
-
-  /* Set a 0 margin on the bottom at the breakpoint lg */
-  .mb-lg-0 {
-    margin-bottom: 0 !important; }
-
-  /* Set a 0 margin on the left at the breakpoint lg */
-  .ml-lg-0 {
-    margin-left: 0 !important; }
-
-  /* Set a negative 0 margin on top at the breakpoint lg */
-  .mt-lg-n0 {
-    margin-top: -0 !important; }
-
-  /* Set a negative 0 margin on the right at the breakpoint lg */
-  .mr-lg-n0 {
-    margin-right: -0 !important; }
-
-  /* Set a negative 0 margin on the bottom at the breakpoint lg */
-  .mb-lg-n0 {
-    margin-bottom: -0 !important; }
-
-  /* Set a negative 0 margin on the left at the breakpoint lg */
-  .ml-lg-n0 {
-    margin-left: -0 !important; }
-
-  /* Set a 0 margin on the left & right at the breakpoint lg */
-  .mx-lg-0 {
-    margin-right: 0 !important;
-    margin-left: 0 !important; }
-
-  /* Set a 0 margin on the top & bottom at the breakpoint lg */
-  .my-lg-0 {
-    margin-top: 0 !important;
-    margin-bottom: 0 !important; } }
-@media (min-width: 1012px) {
-  /* Set a 4px margin to all sides at the breakpoint lg */
-  .m-lg-1 {
-    margin: 4px !important; }
-
-  /* Set a 4px margin on the top at the breakpoint lg */
-  .mt-lg-1 {
-    margin-top: 4px !important; }
-
-  /* Set a 4px margin on the right at the breakpoint lg */
-  .mr-lg-1 {
-    margin-right: 4px !important; }
-
-  /* Set a 4px margin on the bottom at the breakpoint lg */
-  .mb-lg-1 {
-    margin-bottom: 4px !important; }
-
-  /* Set a 4px margin on the left at the breakpoint lg */
-  .ml-lg-1 {
-    margin-left: 4px !important; }
-
-  /* Set a negative 4px margin on top at the breakpoint lg */
-  .mt-lg-n1 {
-    margin-top: -4px !important; }
-
-  /* Set a negative 4px margin on the right at the breakpoint lg */
-  .mr-lg-n1 {
-    margin-right: -4px !important; }
-
-  /* Set a negative 4px margin on the bottom at the breakpoint lg */
-  .mb-lg-n1 {
-    margin-bottom: -4px !important; }
-
-  /* Set a negative 4px margin on the left at the breakpoint lg */
-  .ml-lg-n1 {
-    margin-left: -4px !important; }
-
-  /* Set a 4px margin on the left & right at the breakpoint lg */
-  .mx-lg-1 {
-    margin-right: 4px !important;
-    margin-left: 4px !important; }
-
-  /* Set a 4px margin on the top & bottom at the breakpoint lg */
-  .my-lg-1 {
-    margin-top: 4px !important;
-    margin-bottom: 4px !important; } }
-@media (min-width: 1012px) {
-  /* Set a 8px margin to all sides at the breakpoint lg */
-  .m-lg-2 {
-    margin: 8px !important; }
-
-  /* Set a 8px margin on the top at the breakpoint lg */
-  .mt-lg-2 {
-    margin-top: 8px !important; }
-
-  /* Set a 8px margin on the right at the breakpoint lg */
-  .mr-lg-2 {
-    margin-right: 8px !important; }
-
-  /* Set a 8px margin on the bottom at the breakpoint lg */
-  .mb-lg-2 {
-    margin-bottom: 8px !important; }
-
-  /* Set a 8px margin on the left at the breakpoint lg */
-  .ml-lg-2 {
-    margin-left: 8px !important; }
-
-  /* Set a negative 8px margin on top at the breakpoint lg */
-  .mt-lg-n2 {
-    margin-top: -8px !important; }
-
-  /* Set a negative 8px margin on the right at the breakpoint lg */
-  .mr-lg-n2 {
-    margin-right: -8px !important; }
-
-  /* Set a negative 8px margin on the bottom at the breakpoint lg */
-  .mb-lg-n2 {
-    margin-bottom: -8px !important; }
-
-  /* Set a negative 8px margin on the left at the breakpoint lg */
-  .ml-lg-n2 {
-    margin-left: -8px !important; }
-
-  /* Set a 8px margin on the left & right at the breakpoint lg */
-  .mx-lg-2 {
-    margin-right: 8px !important;
-    margin-left: 8px !important; }
-
-  /* Set a 8px margin on the top & bottom at the breakpoint lg */
-  .my-lg-2 {
-    margin-top: 8px !important;
-    margin-bottom: 8px !important; } }
-@media (min-width: 1012px) {
-  /* Set a 16px margin to all sides at the breakpoint lg */
-  .m-lg-3 {
-    margin: 16px !important; }
-
-  /* Set a 16px margin on the top at the breakpoint lg */
-  .mt-lg-3 {
-    margin-top: 16px !important; }
-
-  /* Set a 16px margin on the right at the breakpoint lg */
-  .mr-lg-3 {
-    margin-right: 16px !important; }
-
-  /* Set a 16px margin on the bottom at the breakpoint lg */
-  .mb-lg-3 {
-    margin-bottom: 16px !important; }
-
-  /* Set a 16px margin on the left at the breakpoint lg */
-  .ml-lg-3 {
-    margin-left: 16px !important; }
-
-  /* Set a negative 16px margin on top at the breakpoint lg */
-  .mt-lg-n3 {
-    margin-top: -16px !important; }
-
-  /* Set a negative 16px margin on the right at the breakpoint lg */
-  .mr-lg-n3 {
-    margin-right: -16px !important; }
-
-  /* Set a negative 16px margin on the bottom at the breakpoint lg */
-  .mb-lg-n3 {
-    margin-bottom: -16px !important; }
-
-  /* Set a negative 16px margin on the left at the breakpoint lg */
-  .ml-lg-n3 {
-    margin-left: -16px !important; }
-
-  /* Set a 16px margin on the left & right at the breakpoint lg */
-  .mx-lg-3 {
-    margin-right: 16px !important;
-    margin-left: 16px !important; }
-
-  /* Set a 16px margin on the top & bottom at the breakpoint lg */
-  .my-lg-3 {
-    margin-top: 16px !important;
-    margin-bottom: 16px !important; } }
-@media (min-width: 1012px) {
-  /* Set a 24px margin to all sides at the breakpoint lg */
-  .m-lg-4 {
-    margin: 24px !important; }
-
-  /* Set a 24px margin on the top at the breakpoint lg */
-  .mt-lg-4 {
-    margin-top: 24px !important; }
-
-  /* Set a 24px margin on the right at the breakpoint lg */
-  .mr-lg-4 {
-    margin-right: 24px !important; }
-
-  /* Set a 24px margin on the bottom at the breakpoint lg */
-  .mb-lg-4 {
-    margin-bottom: 24px !important; }
-
-  /* Set a 24px margin on the left at the breakpoint lg */
-  .ml-lg-4 {
-    margin-left: 24px !important; }
-
-  /* Set a negative 24px margin on top at the breakpoint lg */
-  .mt-lg-n4 {
-    margin-top: -24px !important; }
-
-  /* Set a negative 24px margin on the right at the breakpoint lg */
-  .mr-lg-n4 {
-    margin-right: -24px !important; }
-
-  /* Set a negative 24px margin on the bottom at the breakpoint lg */
-  .mb-lg-n4 {
-    margin-bottom: -24px !important; }
-
-  /* Set a negative 24px margin on the left at the breakpoint lg */
-  .ml-lg-n4 {
-    margin-left: -24px !important; }
-
-  /* Set a 24px margin on the left & right at the breakpoint lg */
-  .mx-lg-4 {
-    margin-right: 24px !important;
-    margin-left: 24px !important; }
-
-  /* Set a 24px margin on the top & bottom at the breakpoint lg */
-  .my-lg-4 {
-    margin-top: 24px !important;
-    margin-bottom: 24px !important; } }
-@media (min-width: 1012px) {
-  /* Set a 32px margin to all sides at the breakpoint lg */
-  .m-lg-5 {
-    margin: 32px !important; }
-
-  /* Set a 32px margin on the top at the breakpoint lg */
-  .mt-lg-5 {
-    margin-top: 32px !important; }
-
-  /* Set a 32px margin on the right at the breakpoint lg */
-  .mr-lg-5 {
-    margin-right: 32px !important; }
-
-  /* Set a 32px margin on the bottom at the breakpoint lg */
-  .mb-lg-5 {
-    margin-bottom: 32px !important; }
-
-  /* Set a 32px margin on the left at the breakpoint lg */
-  .ml-lg-5 {
-    margin-left: 32px !important; }
-
-  /* Set a negative 32px margin on top at the breakpoint lg */
-  .mt-lg-n5 {
-    margin-top: -32px !important; }
-
-  /* Set a negative 32px margin on the right at the breakpoint lg */
-  .mr-lg-n5 {
-    margin-right: -32px !important; }
-
-  /* Set a negative 32px margin on the bottom at the breakpoint lg */
-  .mb-lg-n5 {
-    margin-bottom: -32px !important; }
-
-  /* Set a negative 32px margin on the left at the breakpoint lg */
-  .ml-lg-n5 {
-    margin-left: -32px !important; }
-
-  /* Set a 32px margin on the left & right at the breakpoint lg */
-  .mx-lg-5 {
-    margin-right: 32px !important;
-    margin-left: 32px !important; }
-
-  /* Set a 32px margin on the top & bottom at the breakpoint lg */
-  .my-lg-5 {
-    margin-top: 32px !important;
-    margin-bottom: 32px !important; } }
-@media (min-width: 1012px) {
-  /* Set a 40px margin to all sides at the breakpoint lg */
-  .m-lg-6 {
-    margin: 40px !important; }
-
-  /* Set a 40px margin on the top at the breakpoint lg */
-  .mt-lg-6 {
-    margin-top: 40px !important; }
-
-  /* Set a 40px margin on the right at the breakpoint lg */
-  .mr-lg-6 {
-    margin-right: 40px !important; }
-
-  /* Set a 40px margin on the bottom at the breakpoint lg */
-  .mb-lg-6 {
-    margin-bottom: 40px !important; }
-
-  /* Set a 40px margin on the left at the breakpoint lg */
-  .ml-lg-6 {
-    margin-left: 40px !important; }
-
-  /* Set a negative 40px margin on top at the breakpoint lg */
-  .mt-lg-n6 {
-    margin-top: -40px !important; }
-
-  /* Set a negative 40px margin on the right at the breakpoint lg */
-  .mr-lg-n6 {
-    margin-right: -40px !important; }
-
-  /* Set a negative 40px margin on the bottom at the breakpoint lg */
-  .mb-lg-n6 {
-    margin-bottom: -40px !important; }
-
-  /* Set a negative 40px margin on the left at the breakpoint lg */
-  .ml-lg-n6 {
-    margin-left: -40px !important; }
-
-  /* Set a 40px margin on the left & right at the breakpoint lg */
-  .mx-lg-6 {
-    margin-right: 40px !important;
-    margin-left: 40px !important; }
-
-  /* Set a 40px margin on the top & bottom at the breakpoint lg */
-  .my-lg-6 {
-    margin-top: 40px !important;
-    margin-bottom: 40px !important; } }
-@media (min-width: 1280px) {
-  /* Set a 0 margin to all sides at the breakpoint xl */
-  .m-xl-0 {
-    margin: 0 !important; }
-
-  /* Set a 0 margin on the top at the breakpoint xl */
-  .mt-xl-0 {
-    margin-top: 0 !important; }
-
-  /* Set a 0 margin on the right at the breakpoint xl */
-  .mr-xl-0 {
-    margin-right: 0 !important; }
-
-  /* Set a 0 margin on the bottom at the breakpoint xl */
-  .mb-xl-0 {
-    margin-bottom: 0 !important; }
-
-  /* Set a 0 margin on the left at the breakpoint xl */
-  .ml-xl-0 {
-    margin-left: 0 !important; }
-
-  /* Set a negative 0 margin on top at the breakpoint xl */
-  .mt-xl-n0 {
-    margin-top: -0 !important; }
-
-  /* Set a negative 0 margin on the right at the breakpoint xl */
-  .mr-xl-n0 {
-    margin-right: -0 !important; }
-
-  /* Set a negative 0 margin on the bottom at the breakpoint xl */
-  .mb-xl-n0 {
-    margin-bottom: -0 !important; }
-
-  /* Set a negative 0 margin on the left at the breakpoint xl */
-  .ml-xl-n0 {
-    margin-left: -0 !important; }
-
-  /* Set a 0 margin on the left & right at the breakpoint xl */
-  .mx-xl-0 {
-    margin-right: 0 !important;
-    margin-left: 0 !important; }
-
-  /* Set a 0 margin on the top & bottom at the breakpoint xl */
-  .my-xl-0 {
-    margin-top: 0 !important;
-    margin-bottom: 0 !important; } }
-@media (min-width: 1280px) {
-  /* Set a 4px margin to all sides at the breakpoint xl */
-  .m-xl-1 {
-    margin: 4px !important; }
-
-  /* Set a 4px margin on the top at the breakpoint xl */
-  .mt-xl-1 {
-    margin-top: 4px !important; }
-
-  /* Set a 4px margin on the right at the breakpoint xl */
-  .mr-xl-1 {
-    margin-right: 4px !important; }
-
-  /* Set a 4px margin on the bottom at the breakpoint xl */
-  .mb-xl-1 {
-    margin-bottom: 4px !important; }
-
-  /* Set a 4px margin on the left at the breakpoint xl */
-  .ml-xl-1 {
-    margin-left: 4px !important; }
-
-  /* Set a negative 4px margin on top at the breakpoint xl */
-  .mt-xl-n1 {
-    margin-top: -4px !important; }
-
-  /* Set a negative 4px margin on the right at the breakpoint xl */
-  .mr-xl-n1 {
-    margin-right: -4px !important; }
-
-  /* Set a negative 4px margin on the bottom at the breakpoint xl */
-  .mb-xl-n1 {
-    margin-bottom: -4px !important; }
-
-  /* Set a negative 4px margin on the left at the breakpoint xl */
-  .ml-xl-n1 {
-    margin-left: -4px !important; }
-
-  /* Set a 4px margin on the left & right at the breakpoint xl */
-  .mx-xl-1 {
-    margin-right: 4px !important;
-    margin-left: 4px !important; }
-
-  /* Set a 4px margin on the top & bottom at the breakpoint xl */
-  .my-xl-1 {
-    margin-top: 4px !important;
-    margin-bottom: 4px !important; } }
-@media (min-width: 1280px) {
-  /* Set a 8px margin to all sides at the breakpoint xl */
-  .m-xl-2 {
-    margin: 8px !important; }
-
-  /* Set a 8px margin on the top at the breakpoint xl */
-  .mt-xl-2 {
-    margin-top: 8px !important; }
-
-  /* Set a 8px margin on the right at the breakpoint xl */
-  .mr-xl-2 {
-    margin-right: 8px !important; }
-
-  /* Set a 8px margin on the bottom at the breakpoint xl */
-  .mb-xl-2 {
-    margin-bottom: 8px !important; }
-
-  /* Set a 8px margin on the left at the breakpoint xl */
-  .ml-xl-2 {
-    margin-left: 8px !important; }
-
-  /* Set a negative 8px margin on top at the breakpoint xl */
-  .mt-xl-n2 {
-    margin-top: -8px !important; }
-
-  /* Set a negative 8px margin on the right at the breakpoint xl */
-  .mr-xl-n2 {
-    margin-right: -8px !important; }
-
-  /* Set a negative 8px margin on the bottom at the breakpoint xl */
-  .mb-xl-n2 {
-    margin-bottom: -8px !important; }
-
-  /* Set a negative 8px margin on the left at the breakpoint xl */
-  .ml-xl-n2 {
-    margin-left: -8px !important; }
-
-  /* Set a 8px margin on the left & right at the breakpoint xl */
-  .mx-xl-2 {
-    margin-right: 8px !important;
-    margin-left: 8px !important; }
-
-  /* Set a 8px margin on the top & bottom at the breakpoint xl */
-  .my-xl-2 {
-    margin-top: 8px !important;
-    margin-bottom: 8px !important; } }
-@media (min-width: 1280px) {
-  /* Set a 16px margin to all sides at the breakpoint xl */
-  .m-xl-3 {
-    margin: 16px !important; }
-
-  /* Set a 16px margin on the top at the breakpoint xl */
-  .mt-xl-3 {
-    margin-top: 16px !important; }
-
-  /* Set a 16px margin on the right at the breakpoint xl */
-  .mr-xl-3 {
-    margin-right: 16px !important; }
-
-  /* Set a 16px margin on the bottom at the breakpoint xl */
-  .mb-xl-3 {
-    margin-bottom: 16px !important; }
-
-  /* Set a 16px margin on the left at the breakpoint xl */
-  .ml-xl-3 {
-    margin-left: 16px !important; }
-
-  /* Set a negative 16px margin on top at the breakpoint xl */
-  .mt-xl-n3 {
-    margin-top: -16px !important; }
-
-  /* Set a negative 16px margin on the right at the breakpoint xl */
-  .mr-xl-n3 {
-    margin-right: -16px !important; }
-
-  /* Set a negative 16px margin on the bottom at the breakpoint xl */
-  .mb-xl-n3 {
-    margin-bottom: -16px !important; }
-
-  /* Set a negative 16px margin on the left at the breakpoint xl */
-  .ml-xl-n3 {
-    margin-left: -16px !important; }
-
-  /* Set a 16px margin on the left & right at the breakpoint xl */
-  .mx-xl-3 {
-    margin-right: 16px !important;
-    margin-left: 16px !important; }
-
-  /* Set a 16px margin on the top & bottom at the breakpoint xl */
-  .my-xl-3 {
-    margin-top: 16px !important;
-    margin-bottom: 16px !important; } }
-@media (min-width: 1280px) {
-  /* Set a 24px margin to all sides at the breakpoint xl */
-  .m-xl-4 {
-    margin: 24px !important; }
-
-  /* Set a 24px margin on the top at the breakpoint xl */
-  .mt-xl-4 {
-    margin-top: 24px !important; }
-
-  /* Set a 24px margin on the right at the breakpoint xl */
-  .mr-xl-4 {
-    margin-right: 24px !important; }
-
-  /* Set a 24px margin on the bottom at the breakpoint xl */
-  .mb-xl-4 {
-    margin-bottom: 24px !important; }
-
-  /* Set a 24px margin on the left at the breakpoint xl */
-  .ml-xl-4 {
-    margin-left: 24px !important; }
-
-  /* Set a negative 24px margin on top at the breakpoint xl */
-  .mt-xl-n4 {
-    margin-top: -24px !important; }
-
-  /* Set a negative 24px margin on the right at the breakpoint xl */
-  .mr-xl-n4 {
-    margin-right: -24px !important; }
-
-  /* Set a negative 24px margin on the bottom at the breakpoint xl */
-  .mb-xl-n4 {
-    margin-bottom: -24px !important; }
-
-  /* Set a negative 24px margin on the left at the breakpoint xl */
-  .ml-xl-n4 {
-    margin-left: -24px !important; }
-
-  /* Set a 24px margin on the left & right at the breakpoint xl */
-  .mx-xl-4 {
-    margin-right: 24px !important;
-    margin-left: 24px !important; }
-
-  /* Set a 24px margin on the top & bottom at the breakpoint xl */
-  .my-xl-4 {
-    margin-top: 24px !important;
-    margin-bottom: 24px !important; } }
-@media (min-width: 1280px) {
-  /* Set a 32px margin to all sides at the breakpoint xl */
-  .m-xl-5 {
-    margin: 32px !important; }
-
-  /* Set a 32px margin on the top at the breakpoint xl */
-  .mt-xl-5 {
-    margin-top: 32px !important; }
-
-  /* Set a 32px margin on the right at the breakpoint xl */
-  .mr-xl-5 {
-    margin-right: 32px !important; }
-
-  /* Set a 32px margin on the bottom at the breakpoint xl */
-  .mb-xl-5 {
-    margin-bottom: 32px !important; }
-
-  /* Set a 32px margin on the left at the breakpoint xl */
-  .ml-xl-5 {
-    margin-left: 32px !important; }
-
-  /* Set a negative 32px margin on top at the breakpoint xl */
-  .mt-xl-n5 {
-    margin-top: -32px !important; }
-
-  /* Set a negative 32px margin on the right at the breakpoint xl */
-  .mr-xl-n5 {
-    margin-right: -32px !important; }
-
-  /* Set a negative 32px margin on the bottom at the breakpoint xl */
-  .mb-xl-n5 {
-    margin-bottom: -32px !important; }
-
-  /* Set a negative 32px margin on the left at the breakpoint xl */
-  .ml-xl-n5 {
-    margin-left: -32px !important; }
-
-  /* Set a 32px margin on the left & right at the breakpoint xl */
-  .mx-xl-5 {
-    margin-right: 32px !important;
-    margin-left: 32px !important; }
-
-  /* Set a 32px margin on the top & bottom at the breakpoint xl */
-  .my-xl-5 {
-    margin-top: 32px !important;
-    margin-bottom: 32px !important; } }
-@media (min-width: 1280px) {
-  /* Set a 40px margin to all sides at the breakpoint xl */
-  .m-xl-6 {
-    margin: 40px !important; }
-
-  /* Set a 40px margin on the top at the breakpoint xl */
-  .mt-xl-6 {
-    margin-top: 40px !important; }
-
-  /* Set a 40px margin on the right at the breakpoint xl */
-  .mr-xl-6 {
-    margin-right: 40px !important; }
-
-  /* Set a 40px margin on the bottom at the breakpoint xl */
-  .mb-xl-6 {
-    margin-bottom: 40px !important; }
-
-  /* Set a 40px margin on the left at the breakpoint xl */
-  .ml-xl-6 {
-    margin-left: 40px !important; }
-
-  /* Set a negative 40px margin on top at the breakpoint xl */
-  .mt-xl-n6 {
-    margin-top: -40px !important; }
-
-  /* Set a negative 40px margin on the right at the breakpoint xl */
-  .mr-xl-n6 {
-    margin-right: -40px !important; }
-
-  /* Set a negative 40px margin on the bottom at the breakpoint xl */
-  .mb-xl-n6 {
-    margin-bottom: -40px !important; }
-
-  /* Set a negative 40px margin on the left at the breakpoint xl */
-  .ml-xl-n6 {
-    margin-left: -40px !important; }
-
-  /* Set a 40px margin on the left & right at the breakpoint xl */
-  .mx-xl-6 {
-    margin-right: 40px !important;
-    margin-left: 40px !important; }
-
-  /* Set a 40px margin on the top & bottom at the breakpoint xl */
-  .my-xl-6 {
-    margin-top: 40px !important;
-    margin-bottom: 40px !important; } }
-/* Set a 0 padding to all sides */
-.p-0 {
-  padding: 0 !important; }
-
-/* Set a 0 padding to the top */
-.pt-0 {
-  padding-top: 0 !important; }
-
-/* Set a 0 padding to the right */
-.pr-0 {
-  padding-right: 0 !important; }
-
-/* Set a 0 padding to the bottom */
-.pb-0 {
-  padding-bottom: 0 !important; }
-
-/* Set a 0 padding to the left */
-.pl-0 {
-  padding-left: 0 !important; }
-
-/* Set a 0 padding to the left & right */
-.px-0 {
-  padding-right: 0 !important;
-  padding-left: 0 !important; }
-
-/* Set a 0 padding to the top & bottom */
-.py-0 {
-  padding-top: 0 !important;
-  padding-bottom: 0 !important; }
-
-/* Set a 4px padding to all sides */
-.p-1 {
-  padding: 4px !important; }
-
-/* Set a 4px padding to the top */
-.pt-1 {
-  padding-top: 4px !important; }
-
-/* Set a 4px padding to the right */
-.pr-1 {
-  padding-right: 4px !important; }
-
-/* Set a 4px padding to the bottom */
-.pb-1 {
-  padding-bottom: 4px !important; }
-
-/* Set a 4px padding to the left */
-.pl-1 {
-  padding-left: 4px !important; }
-
-/* Set a 4px padding to the left & right */
-.px-1 {
-  padding-right: 4px !important;
-  padding-left: 4px !important; }
-
-/* Set a 4px padding to the top & bottom */
-.py-1 {
-  padding-top: 4px !important;
-  padding-bottom: 4px !important; }
-
-/* Set a 8px padding to all sides */
-.p-2 {
-  padding: 8px !important; }
-
-/* Set a 8px padding to the top */
-.pt-2 {
-  padding-top: 8px !important; }
-
-/* Set a 8px padding to the right */
-.pr-2 {
-  padding-right: 8px !important; }
-
-/* Set a 8px padding to the bottom */
-.pb-2 {
-  padding-bottom: 8px !important; }
-
-/* Set a 8px padding to the left */
-.pl-2 {
-  padding-left: 8px !important; }
-
-/* Set a 8px padding to the left & right */
-.px-2 {
-  padding-right: 8px !important;
-  padding-left: 8px !important; }
-
-/* Set a 8px padding to the top & bottom */
-.py-2 {
-  padding-top: 8px !important;
-  padding-bottom: 8px !important; }
-
-/* Set a 16px padding to all sides */
-.p-3 {
-  padding: 16px !important; }
-
-/* Set a 16px padding to the top */
-.pt-3 {
-  padding-top: 16px !important; }
-
-/* Set a 16px padding to the right */
-.pr-3 {
-  padding-right: 16px !important; }
-
-/* Set a 16px padding to the bottom */
-.pb-3 {
-  padding-bottom: 16px !important; }
-
-/* Set a 16px padding to the left */
-.pl-3 {
-  padding-left: 16px !important; }
-
-/* Set a 16px padding to the left & right */
-.px-3 {
-  padding-right: 16px !important;
-  padding-left: 16px !important; }
-
-/* Set a 16px padding to the top & bottom */
-.py-3 {
-  padding-top: 16px !important;
-  padding-bottom: 16px !important; }
-
-/* Set a 24px padding to all sides */
-.p-4 {
-  padding: 24px !important; }
-
-/* Set a 24px padding to the top */
-.pt-4 {
-  padding-top: 24px !important; }
-
-/* Set a 24px padding to the right */
-.pr-4 {
-  padding-right: 24px !important; }
-
-/* Set a 24px padding to the bottom */
-.pb-4 {
-  padding-bottom: 24px !important; }
-
-/* Set a 24px padding to the left */
-.pl-4 {
-  padding-left: 24px !important; }
-
-/* Set a 24px padding to the left & right */
-.px-4 {
-  padding-right: 24px !important;
-  padding-left: 24px !important; }
-
-/* Set a 24px padding to the top & bottom */
-.py-4 {
-  padding-top: 24px !important;
-  padding-bottom: 24px !important; }
-
-/* Set a 32px padding to all sides */
-.p-5 {
-  padding: 32px !important; }
-
-/* Set a 32px padding to the top */
-.pt-5 {
-  padding-top: 32px !important; }
-
-/* Set a 32px padding to the right */
-.pr-5 {
-  padding-right: 32px !important; }
-
-/* Set a 32px padding to the bottom */
-.pb-5 {
-  padding-bottom: 32px !important; }
-
-/* Set a 32px padding to the left */
-.pl-5 {
-  padding-left: 32px !important; }
-
-/* Set a 32px padding to the left & right */
-.px-5 {
-  padding-right: 32px !important;
-  padding-left: 32px !important; }
-
-/* Set a 32px padding to the top & bottom */
-.py-5 {
-  padding-top: 32px !important;
-  padding-bottom: 32px !important; }
-
-/* Set a 40px padding to all sides */
-.p-6 {
-  padding: 40px !important; }
-
-/* Set a 40px padding to the top */
-.pt-6 {
-  padding-top: 40px !important; }
-
-/* Set a 40px padding to the right */
-.pr-6 {
-  padding-right: 40px !important; }
-
-/* Set a 40px padding to the bottom */
-.pb-6 {
-  padding-bottom: 40px !important; }
-
-/* Set a 40px padding to the left */
-.pl-6 {
-  padding-left: 40px !important; }
-
-/* Set a 40px padding to the left & right */
-.px-6 {
-  padding-right: 40px !important;
-  padding-left: 40px !important; }
-
-/* Set a 40px padding to the top & bottom */
-.py-6 {
-  padding-top: 40px !important;
-  padding-bottom: 40px !important; }
-
-@media (min-width: 544px) {
-  /* Set a 0 padding to all sides at the sm breakpoint */
-  .p-sm-0 {
-    padding: 0 !important; }
-
-  /* Set a 0 padding to the top at the sm breakpoint */
-  .pt-sm-0 {
-    padding-top: 0 !important; }
-
-  /* Set a 0 padding to the right at the sm breakpoint */
-  .pr-sm-0 {
-    padding-right: 0 !important; }
-
-  /* Set a 0 padding to the bottom at the sm breakpoint */
-  .pb-sm-0 {
-    padding-bottom: 0 !important; }
-
-  /* Set a 0 padding to the left at the sm breakpoint */
-  .pl-sm-0 {
-    padding-left: 0 !important; }
-
-  /* Set a 0 padding to the left & right at the sm breakpoint */
-  .px-sm-0 {
-    padding-right: 0 !important;
-    padding-left: 0 !important; }
-
-  /* Set a 0 padding to the top & bottom at the sm breakpoint */
-  .py-sm-0 {
-    padding-top: 0 !important;
-    padding-bottom: 0 !important; } }
-@media (min-width: 544px) {
-  /* Set a 4px padding to all sides at the sm breakpoint */
-  .p-sm-1 {
-    padding: 4px !important; }
-
-  /* Set a 4px padding to the top at the sm breakpoint */
-  .pt-sm-1 {
-    padding-top: 4px !important; }
-
-  /* Set a 4px padding to the right at the sm breakpoint */
-  .pr-sm-1 {
-    padding-right: 4px !important; }
-
-  /* Set a 4px padding to the bottom at the sm breakpoint */
-  .pb-sm-1 {
-    padding-bottom: 4px !important; }
-
-  /* Set a 4px padding to the left at the sm breakpoint */
-  .pl-sm-1 {
-    padding-left: 4px !important; }
-
-  /* Set a 4px padding to the left & right at the sm breakpoint */
-  .px-sm-1 {
-    padding-right: 4px !important;
-    padding-left: 4px !important; }
-
-  /* Set a 4px padding to the top & bottom at the sm breakpoint */
-  .py-sm-1 {
-    padding-top: 4px !important;
-    padding-bottom: 4px !important; } }
-@media (min-width: 544px) {
-  /* Set a 8px padding to all sides at the sm breakpoint */
-  .p-sm-2 {
-    padding: 8px !important; }
-
-  /* Set a 8px padding to the top at the sm breakpoint */
-  .pt-sm-2 {
-    padding-top: 8px !important; }
-
-  /* Set a 8px padding to the right at the sm breakpoint */
-  .pr-sm-2 {
-    padding-right: 8px !important; }
-
-  /* Set a 8px padding to the bottom at the sm breakpoint */
-  .pb-sm-2 {
-    padding-bottom: 8px !important; }
-
-  /* Set a 8px padding to the left at the sm breakpoint */
-  .pl-sm-2 {
-    padding-left: 8px !important; }
-
-  /* Set a 8px padding to the left & right at the sm breakpoint */
-  .px-sm-2 {
-    padding-right: 8px !important;
-    padding-left: 8px !important; }
-
-  /* Set a 8px padding to the top & bottom at the sm breakpoint */
-  .py-sm-2 {
-    padding-top: 8px !important;
-    padding-bottom: 8px !important; } }
-@media (min-width: 544px) {
-  /* Set a 16px padding to all sides at the sm breakpoint */
-  .p-sm-3 {
-    padding: 16px !important; }
-
-  /* Set a 16px padding to the top at the sm breakpoint */
-  .pt-sm-3 {
-    padding-top: 16px !important; }
-
-  /* Set a 16px padding to the right at the sm breakpoint */
-  .pr-sm-3 {
-    padding-right: 16px !important; }
-
-  /* Set a 16px padding to the bottom at the sm breakpoint */
-  .pb-sm-3 {
-    padding-bottom: 16px !important; }
-
-  /* Set a 16px padding to the left at the sm breakpoint */
-  .pl-sm-3 {
-    padding-left: 16px !important; }
-
-  /* Set a 16px padding to the left & right at the sm breakpoint */
-  .px-sm-3 {
-    padding-right: 16px !important;
-    padding-left: 16px !important; }
-
-  /* Set a 16px padding to the top & bottom at the sm breakpoint */
-  .py-sm-3 {
-    padding-top: 16px !important;
-    padding-bottom: 16px !important; } }
-@media (min-width: 544px) {
-  /* Set a 24px padding to all sides at the sm breakpoint */
-  .p-sm-4 {
-    padding: 24px !important; }
-
-  /* Set a 24px padding to the top at the sm breakpoint */
-  .pt-sm-4 {
-    padding-top: 24px !important; }
-
-  /* Set a 24px padding to the right at the sm breakpoint */
-  .pr-sm-4 {
-    padding-right: 24px !important; }
-
-  /* Set a 24px padding to the bottom at the sm breakpoint */
-  .pb-sm-4 {
-    padding-bottom: 24px !important; }
-
-  /* Set a 24px padding to the left at the sm breakpoint */
-  .pl-sm-4 {
-    padding-left: 24px !important; }
-
-  /* Set a 24px padding to the left & right at the sm breakpoint */
-  .px-sm-4 {
-    padding-right: 24px !important;
-    padding-left: 24px !important; }
-
-  /* Set a 24px padding to the top & bottom at the sm breakpoint */
-  .py-sm-4 {
-    padding-top: 24px !important;
-    padding-bottom: 24px !important; } }
-@media (min-width: 544px) {
-  /* Set a 32px padding to all sides at the sm breakpoint */
-  .p-sm-5 {
-    padding: 32px !important; }
-
-  /* Set a 32px padding to the top at the sm breakpoint */
-  .pt-sm-5 {
-    padding-top: 32px !important; }
-
-  /* Set a 32px padding to the right at the sm breakpoint */
-  .pr-sm-5 {
-    padding-right: 32px !important; }
-
-  /* Set a 32px padding to the bottom at the sm breakpoint */
-  .pb-sm-5 {
-    padding-bottom: 32px !important; }
-
-  /* Set a 32px padding to the left at the sm breakpoint */
-  .pl-sm-5 {
-    padding-left: 32px !important; }
-
-  /* Set a 32px padding to the left & right at the sm breakpoint */
-  .px-sm-5 {
-    padding-right: 32px !important;
-    padding-left: 32px !important; }
-
-  /* Set a 32px padding to the top & bottom at the sm breakpoint */
-  .py-sm-5 {
-    padding-top: 32px !important;
-    padding-bottom: 32px !important; } }
-@media (min-width: 544px) {
-  /* Set a 40px padding to all sides at the sm breakpoint */
-  .p-sm-6 {
-    padding: 40px !important; }
-
-  /* Set a 40px padding to the top at the sm breakpoint */
-  .pt-sm-6 {
-    padding-top: 40px !important; }
-
-  /* Set a 40px padding to the right at the sm breakpoint */
-  .pr-sm-6 {
-    padding-right: 40px !important; }
-
-  /* Set a 40px padding to the bottom at the sm breakpoint */
-  .pb-sm-6 {
-    padding-bottom: 40px !important; }
-
-  /* Set a 40px padding to the left at the sm breakpoint */
-  .pl-sm-6 {
-    padding-left: 40px !important; }
-
-  /* Set a 40px padding to the left & right at the sm breakpoint */
-  .px-sm-6 {
-    padding-right: 40px !important;
-    padding-left: 40px !important; }
-
-  /* Set a 40px padding to the top & bottom at the sm breakpoint */
-  .py-sm-6 {
-    padding-top: 40px !important;
-    padding-bottom: 40px !important; } }
-@media (min-width: 768px) {
-  /* Set a 0 padding to all sides at the md breakpoint */
-  .p-md-0 {
-    padding: 0 !important; }
-
-  /* Set a 0 padding to the top at the md breakpoint */
-  .pt-md-0 {
-    padding-top: 0 !important; }
-
-  /* Set a 0 padding to the right at the md breakpoint */
-  .pr-md-0 {
-    padding-right: 0 !important; }
-
-  /* Set a 0 padding to the bottom at the md breakpoint */
-  .pb-md-0 {
-    padding-bottom: 0 !important; }
-
-  /* Set a 0 padding to the left at the md breakpoint */
-  .pl-md-0 {
-    padding-left: 0 !important; }
-
-  /* Set a 0 padding to the left & right at the md breakpoint */
-  .px-md-0 {
-    padding-right: 0 !important;
-    padding-left: 0 !important; }
-
-  /* Set a 0 padding to the top & bottom at the md breakpoint */
-  .py-md-0 {
-    padding-top: 0 !important;
-    padding-bottom: 0 !important; } }
-@media (min-width: 768px) {
-  /* Set a 4px padding to all sides at the md breakpoint */
-  .p-md-1 {
-    padding: 4px !important; }
-
-  /* Set a 4px padding to the top at the md breakpoint */
-  .pt-md-1 {
-    padding-top: 4px !important; }
-
-  /* Set a 4px padding to the right at the md breakpoint */
-  .pr-md-1 {
-    padding-right: 4px !important; }
-
-  /* Set a 4px padding to the bottom at the md breakpoint */
-  .pb-md-1 {
-    padding-bottom: 4px !important; }
-
-  /* Set a 4px padding to the left at the md breakpoint */
-  .pl-md-1 {
-    padding-left: 4px !important; }
-
-  /* Set a 4px padding to the left & right at the md breakpoint */
-  .px-md-1 {
-    padding-right: 4px !important;
-    padding-left: 4px !important; }
-
-  /* Set a 4px padding to the top & bottom at the md breakpoint */
-  .py-md-1 {
-    padding-top: 4px !important;
-    padding-bottom: 4px !important; } }
-@media (min-width: 768px) {
-  /* Set a 8px padding to all sides at the md breakpoint */
-  .p-md-2 {
-    padding: 8px !important; }
-
-  /* Set a 8px padding to the top at the md breakpoint */
-  .pt-md-2 {
-    padding-top: 8px !important; }
-
-  /* Set a 8px padding to the right at the md breakpoint */
-  .pr-md-2 {
-    padding-right: 8px !important; }
-
-  /* Set a 8px padding to the bottom at the md breakpoint */
-  .pb-md-2 {
-    padding-bottom: 8px !important; }
-
-  /* Set a 8px padding to the left at the md breakpoint */
-  .pl-md-2 {
-    padding-left: 8px !important; }
-
-  /* Set a 8px padding to the left & right at the md breakpoint */
-  .px-md-2 {
-    padding-right: 8px !important;
-    padding-left: 8px !important; }
-
-  /* Set a 8px padding to the top & bottom at the md breakpoint */
-  .py-md-2 {
-    padding-top: 8px !important;
-    padding-bottom: 8px !important; } }
-@media (min-width: 768px) {
-  /* Set a 16px padding to all sides at the md breakpoint */
-  .p-md-3 {
-    padding: 16px !important; }
-
-  /* Set a 16px padding to the top at the md breakpoint */
-  .pt-md-3 {
-    padding-top: 16px !important; }
-
-  /* Set a 16px padding to the right at the md breakpoint */
-  .pr-md-3 {
-    padding-right: 16px !important; }
-
-  /* Set a 16px padding to the bottom at the md breakpoint */
-  .pb-md-3 {
-    padding-bottom: 16px !important; }
-
-  /* Set a 16px padding to the left at the md breakpoint */
-  .pl-md-3 {
-    padding-left: 16px !important; }
-
-  /* Set a 16px padding to the left & right at the md breakpoint */
-  .px-md-3 {
-    padding-right: 16px !important;
-    padding-left: 16px !important; }
-
-  /* Set a 16px padding to the top & bottom at the md breakpoint */
-  .py-md-3 {
-    padding-top: 16px !important;
-    padding-bottom: 16px !important; } }
-@media (min-width: 768px) {
-  /* Set a 24px padding to all sides at the md breakpoint */
-  .p-md-4 {
-    padding: 24px !important; }
-
-  /* Set a 24px padding to the top at the md breakpoint */
-  .pt-md-4 {
-    padding-top: 24px !important; }
-
-  /* Set a 24px padding to the right at the md breakpoint */
-  .pr-md-4 {
-    padding-right: 24px !important; }
-
-  /* Set a 24px padding to the bottom at the md breakpoint */
-  .pb-md-4 {
-    padding-bottom: 24px !important; }
-
-  /* Set a 24px padding to the left at the md breakpoint */
-  .pl-md-4 {
-    padding-left: 24px !important; }
-
-  /* Set a 24px padding to the left & right at the md breakpoint */
-  .px-md-4 {
-    padding-right: 24px !important;
-    padding-left: 24px !important; }
-
-  /* Set a 24px padding to the top & bottom at the md breakpoint */
-  .py-md-4 {
-    padding-top: 24px !important;
-    padding-bottom: 24px !important; } }
-@media (min-width: 768px) {
-  /* Set a 32px padding to all sides at the md breakpoint */
-  .p-md-5 {
-    padding: 32px !important; }
-
-  /* Set a 32px padding to the top at the md breakpoint */
-  .pt-md-5 {
-    padding-top: 32px !important; }
-
-  /* Set a 32px padding to the right at the md breakpoint */
-  .pr-md-5 {
-    padding-right: 32px !important; }
-
-  /* Set a 32px padding to the bottom at the md breakpoint */
-  .pb-md-5 {
-    padding-bottom: 32px !important; }
-
-  /* Set a 32px padding to the left at the md breakpoint */
-  .pl-md-5 {
-    padding-left: 32px !important; }
-
-  /* Set a 32px padding to the left & right at the md breakpoint */
-  .px-md-5 {
-    padding-right: 32px !important;
-    padding-left: 32px !important; }
-
-  /* Set a 32px padding to the top & bottom at the md breakpoint */
-  .py-md-5 {
-    padding-top: 32px !important;
-    padding-bottom: 32px !important; } }
-@media (min-width: 768px) {
-  /* Set a 40px padding to all sides at the md breakpoint */
-  .p-md-6 {
-    padding: 40px !important; }
-
-  /* Set a 40px padding to the top at the md breakpoint */
-  .pt-md-6 {
-    padding-top: 40px !important; }
-
-  /* Set a 40px padding to the right at the md breakpoint */
-  .pr-md-6 {
-    padding-right: 40px !important; }
-
-  /* Set a 40px padding to the bottom at the md breakpoint */
-  .pb-md-6 {
-    padding-bottom: 40px !important; }
-
-  /* Set a 40px padding to the left at the md breakpoint */
-  .pl-md-6 {
-    padding-left: 40px !important; }
-
-  /* Set a 40px padding to the left & right at the md breakpoint */
-  .px-md-6 {
-    padding-right: 40px !important;
-    padding-left: 40px !important; }
-
-  /* Set a 40px padding to the top & bottom at the md breakpoint */
-  .py-md-6 {
-    padding-top: 40px !important;
-    padding-bottom: 40px !important; } }
-@media (min-width: 1012px) {
-  /* Set a 0 padding to all sides at the lg breakpoint */
-  .p-lg-0 {
-    padding: 0 !important; }
-
-  /* Set a 0 padding to the top at the lg breakpoint */
-  .pt-lg-0 {
-    padding-top: 0 !important; }
-
-  /* Set a 0 padding to the right at the lg breakpoint */
-  .pr-lg-0 {
-    padding-right: 0 !important; }
-
-  /* Set a 0 padding to the bottom at the lg breakpoint */
-  .pb-lg-0 {
-    padding-bottom: 0 !important; }
-
-  /* Set a 0 padding to the left at the lg breakpoint */
-  .pl-lg-0 {
-    padding-left: 0 !important; }
-
-  /* Set a 0 padding to the left & right at the lg breakpoint */
-  .px-lg-0 {
-    padding-right: 0 !important;
-    padding-left: 0 !important; }
-
-  /* Set a 0 padding to the top & bottom at the lg breakpoint */
-  .py-lg-0 {
-    padding-top: 0 !important;
-    padding-bottom: 0 !important; } }
-@media (min-width: 1012px) {
-  /* Set a 4px padding to all sides at the lg breakpoint */
-  .p-lg-1 {
-    padding: 4px !important; }
-
-  /* Set a 4px padding to the top at the lg breakpoint */
-  .pt-lg-1 {
-    padding-top: 4px !important; }
-
-  /* Set a 4px padding to the right at the lg breakpoint */
-  .pr-lg-1 {
-    padding-right: 4px !important; }
-
-  /* Set a 4px padding to the bottom at the lg breakpoint */
-  .pb-lg-1 {
-    padding-bottom: 4px !important; }
-
-  /* Set a 4px padding to the left at the lg breakpoint */
-  .pl-lg-1 {
-    padding-left: 4px !important; }
-
-  /* Set a 4px padding to the left & right at the lg breakpoint */
-  .px-lg-1 {
-    padding-right: 4px !important;
-    padding-left: 4px !important; }
-
-  /* Set a 4px padding to the top & bottom at the lg breakpoint */
-  .py-lg-1 {
-    padding-top: 4px !important;
-    padding-bottom: 4px !important; } }
-@media (min-width: 1012px) {
-  /* Set a 8px padding to all sides at the lg breakpoint */
-  .p-lg-2 {
-    padding: 8px !important; }
-
-  /* Set a 8px padding to the top at the lg breakpoint */
-  .pt-lg-2 {
-    padding-top: 8px !important; }
-
-  /* Set a 8px padding to the right at the lg breakpoint */
-  .pr-lg-2 {
-    padding-right: 8px !important; }
-
-  /* Set a 8px padding to the bottom at the lg breakpoint */
-  .pb-lg-2 {
-    padding-bottom: 8px !important; }
-
-  /* Set a 8px padding to the left at the lg breakpoint */
-  .pl-lg-2 {
-    padding-left: 8px !important; }
-
-  /* Set a 8px padding to the left & right at the lg breakpoint */
-  .px-lg-2 {
-    padding-right: 8px !important;
-    padding-left: 8px !important; }
-
-  /* Set a 8px padding to the top & bottom at the lg breakpoint */
-  .py-lg-2 {
-    padding-top: 8px !important;
-    padding-bottom: 8px !important; } }
-@media (min-width: 1012px) {
-  /* Set a 16px padding to all sides at the lg breakpoint */
-  .p-lg-3 {
-    padding: 16px !important; }
-
-  /* Set a 16px padding to the top at the lg breakpoint */
-  .pt-lg-3 {
-    padding-top: 16px !important; }
-
-  /* Set a 16px padding to the right at the lg breakpoint */
-  .pr-lg-3 {
-    padding-right: 16px !important; }
-
-  /* Set a 16px padding to the bottom at the lg breakpoint */
-  .pb-lg-3 {
-    padding-bottom: 16px !important; }
-
-  /* Set a 16px padding to the left at the lg breakpoint */
-  .pl-lg-3 {
-    padding-left: 16px !important; }
-
-  /* Set a 16px padding to the left & right at the lg breakpoint */
-  .px-lg-3 {
-    padding-right: 16px !important;
-    padding-left: 16px !important; }
-
-  /* Set a 16px padding to the top & bottom at the lg breakpoint */
-  .py-lg-3 {
-    padding-top: 16px !important;
-    padding-bottom: 16px !important; } }
-@media (min-width: 1012px) {
-  /* Set a 24px padding to all sides at the lg breakpoint */
-  .p-lg-4 {
-    padding: 24px !important; }
-
-  /* Set a 24px padding to the top at the lg breakpoint */
-  .pt-lg-4 {
-    padding-top: 24px !important; }
-
-  /* Set a 24px padding to the right at the lg breakpoint */
-  .pr-lg-4 {
-    padding-right: 24px !important; }
-
-  /* Set a 24px padding to the bottom at the lg breakpoint */
-  .pb-lg-4 {
-    padding-bottom: 24px !important; }
-
-  /* Set a 24px padding to the left at the lg breakpoint */
-  .pl-lg-4 {
-    padding-left: 24px !important; }
-
-  /* Set a 24px padding to the left & right at the lg breakpoint */
-  .px-lg-4 {
-    padding-right: 24px !important;
-    padding-left: 24px !important; }
-
-  /* Set a 24px padding to the top & bottom at the lg breakpoint */
-  .py-lg-4 {
-    padding-top: 24px !important;
-    padding-bottom: 24px !important; } }
-@media (min-width: 1012px) {
-  /* Set a 32px padding to all sides at the lg breakpoint */
-  .p-lg-5 {
-    padding: 32px !important; }
-
-  /* Set a 32px padding to the top at the lg breakpoint */
-  .pt-lg-5 {
-    padding-top: 32px !important; }
-
-  /* Set a 32px padding to the right at the lg breakpoint */
-  .pr-lg-5 {
-    padding-right: 32px !important; }
-
-  /* Set a 32px padding to the bottom at the lg breakpoint */
-  .pb-lg-5 {
-    padding-bottom: 32px !important; }
-
-  /* Set a 32px padding to the left at the lg breakpoint */
-  .pl-lg-5 {
-    padding-left: 32px !important; }
-
-  /* Set a 32px padding to the left & right at the lg breakpoint */
-  .px-lg-5 {
-    padding-right: 32px !important;
-    padding-left: 32px !important; }
-
-  /* Set a 32px padding to the top & bottom at the lg breakpoint */
-  .py-lg-5 {
-    padding-top: 32px !important;
-    padding-bottom: 32px !important; } }
-@media (min-width: 1012px) {
-  /* Set a 40px padding to all sides at the lg breakpoint */
-  .p-lg-6 {
-    padding: 40px !important; }
-
-  /* Set a 40px padding to the top at the lg breakpoint */
-  .pt-lg-6 {
-    padding-top: 40px !important; }
-
-  /* Set a 40px padding to the right at the lg breakpoint */
-  .pr-lg-6 {
-    padding-right: 40px !important; }
-
-  /* Set a 40px padding to the bottom at the lg breakpoint */
-  .pb-lg-6 {
-    padding-bottom: 40px !important; }
-
-  /* Set a 40px padding to the left at the lg breakpoint */
-  .pl-lg-6 {
-    padding-left: 40px !important; }
-
-  /* Set a 40px padding to the left & right at the lg breakpoint */
-  .px-lg-6 {
-    padding-right: 40px !important;
-    padding-left: 40px !important; }
-
-  /* Set a 40px padding to the top & bottom at the lg breakpoint */
-  .py-lg-6 {
-    padding-top: 40px !important;
-    padding-bottom: 40px !important; } }
-@media (min-width: 1280px) {
-  /* Set a 0 padding to all sides at the xl breakpoint */
-  .p-xl-0 {
-    padding: 0 !important; }
-
-  /* Set a 0 padding to the top at the xl breakpoint */
-  .pt-xl-0 {
-    padding-top: 0 !important; }
-
-  /* Set a 0 padding to the right at the xl breakpoint */
-  .pr-xl-0 {
-    padding-right: 0 !important; }
-
-  /* Set a 0 padding to the bottom at the xl breakpoint */
-  .pb-xl-0 {
-    padding-bottom: 0 !important; }
-
-  /* Set a 0 padding to the left at the xl breakpoint */
-  .pl-xl-0 {
-    padding-left: 0 !important; }
-
-  /* Set a 0 padding to the left & right at the xl breakpoint */
-  .px-xl-0 {
-    padding-right: 0 !important;
-    padding-left: 0 !important; }
-
-  /* Set a 0 padding to the top & bottom at the xl breakpoint */
-  .py-xl-0 {
-    padding-top: 0 !important;
-    padding-bottom: 0 !important; } }
-@media (min-width: 1280px) {
-  /* Set a 4px padding to all sides at the xl breakpoint */
-  .p-xl-1 {
-    padding: 4px !important; }
-
-  /* Set a 4px padding to the top at the xl breakpoint */
-  .pt-xl-1 {
-    padding-top: 4px !important; }
-
-  /* Set a 4px padding to the right at the xl breakpoint */
-  .pr-xl-1 {
-    padding-right: 4px !important; }
-
-  /* Set a 4px padding to the bottom at the xl breakpoint */
-  .pb-xl-1 {
-    padding-bottom: 4px !important; }
-
-  /* Set a 4px padding to the left at the xl breakpoint */
-  .pl-xl-1 {
-    padding-left: 4px !important; }
-
-  /* Set a 4px padding to the left & right at the xl breakpoint */
-  .px-xl-1 {
-    padding-right: 4px !important;
-    padding-left: 4px !important; }
-
-  /* Set a 4px padding to the top & bottom at the xl breakpoint */
-  .py-xl-1 {
-    padding-top: 4px !important;
-    padding-bottom: 4px !important; } }
-@media (min-width: 1280px) {
-  /* Set a 8px padding to all sides at the xl breakpoint */
-  .p-xl-2 {
-    padding: 8px !important; }
-
-  /* Set a 8px padding to the top at the xl breakpoint */
-  .pt-xl-2 {
-    padding-top: 8px !important; }
-
-  /* Set a 8px padding to the right at the xl breakpoint */
-  .pr-xl-2 {
-    padding-right: 8px !important; }
-
-  /* Set a 8px padding to the bottom at the xl breakpoint */
-  .pb-xl-2 {
-    padding-bottom: 8px !important; }
-
-  /* Set a 8px padding to the left at the xl breakpoint */
-  .pl-xl-2 {
-    padding-left: 8px !important; }
-
-  /* Set a 8px padding to the left & right at the xl breakpoint */
-  .px-xl-2 {
-    padding-right: 8px !important;
-    padding-left: 8px !important; }
-
-  /* Set a 8px padding to the top & bottom at the xl breakpoint */
-  .py-xl-2 {
-    padding-top: 8px !important;
-    padding-bottom: 8px !important; } }
-@media (min-width: 1280px) {
-  /* Set a 16px padding to all sides at the xl breakpoint */
-  .p-xl-3 {
-    padding: 16px !important; }
-
-  /* Set a 16px padding to the top at the xl breakpoint */
-  .pt-xl-3 {
-    padding-top: 16px !important; }
-
-  /* Set a 16px padding to the right at the xl breakpoint */
-  .pr-xl-3 {
-    padding-right: 16px !important; }
-
-  /* Set a 16px padding to the bottom at the xl breakpoint */
-  .pb-xl-3 {
-    padding-bottom: 16px !important; }
-
-  /* Set a 16px padding to the left at the xl breakpoint */
-  .pl-xl-3 {
-    padding-left: 16px !important; }
-
-  /* Set a 16px padding to the left & right at the xl breakpoint */
-  .px-xl-3 {
-    padding-right: 16px !important;
-    padding-left: 16px !important; }
-
-  /* Set a 16px padding to the top & bottom at the xl breakpoint */
-  .py-xl-3 {
-    padding-top: 16px !important;
-    padding-bottom: 16px !important; } }
-@media (min-width: 1280px) {
-  /* Set a 24px padding to all sides at the xl breakpoint */
-  .p-xl-4 {
-    padding: 24px !important; }
-
-  /* Set a 24px padding to the top at the xl breakpoint */
-  .pt-xl-4 {
-    padding-top: 24px !important; }
-
-  /* Set a 24px padding to the right at the xl breakpoint */
-  .pr-xl-4 {
-    padding-right: 24px !important; }
-
-  /* Set a 24px padding to the bottom at the xl breakpoint */
-  .pb-xl-4 {
-    padding-bottom: 24px !important; }
-
-  /* Set a 24px padding to the left at the xl breakpoint */
-  .pl-xl-4 {
-    padding-left: 24px !important; }
-
-  /* Set a 24px padding to the left & right at the xl breakpoint */
-  .px-xl-4 {
-    padding-right: 24px !important;
-    padding-left: 24px !important; }
-
-  /* Set a 24px padding to the top & bottom at the xl breakpoint */
-  .py-xl-4 {
-    padding-top: 24px !important;
-    padding-bottom: 24px !important; } }
-@media (min-width: 1280px) {
-  /* Set a 32px padding to all sides at the xl breakpoint */
-  .p-xl-5 {
-    padding: 32px !important; }
-
-  /* Set a 32px padding to the top at the xl breakpoint */
-  .pt-xl-5 {
-    padding-top: 32px !important; }
-
-  /* Set a 32px padding to the right at the xl breakpoint */
-  .pr-xl-5 {
-    padding-right: 32px !important; }
-
-  /* Set a 32px padding to the bottom at the xl breakpoint */
-  .pb-xl-5 {
-    padding-bottom: 32px !important; }
-
-  /* Set a 32px padding to the left at the xl breakpoint */
-  .pl-xl-5 {
-    padding-left: 32px !important; }
-
-  /* Set a 32px padding to the left & right at the xl breakpoint */
-  .px-xl-5 {
-    padding-right: 32px !important;
-    padding-left: 32px !important; }
-
-  /* Set a 32px padding to the top & bottom at the xl breakpoint */
-  .py-xl-5 {
-    padding-top: 32px !important;
-    padding-bottom: 32px !important; } }
-@media (min-width: 1280px) {
-  /* Set a 40px padding to all sides at the xl breakpoint */
-  .p-xl-6 {
-    padding: 40px !important; }
-
-  /* Set a 40px padding to the top at the xl breakpoint */
-  .pt-xl-6 {
-    padding-top: 40px !important; }
-
-  /* Set a 40px padding to the right at the xl breakpoint */
-  .pr-xl-6 {
-    padding-right: 40px !important; }
-
-  /* Set a 40px padding to the bottom at the xl breakpoint */
-  .pb-xl-6 {
-    padding-bottom: 40px !important; }
-
-  /* Set a 40px padding to the left at the xl breakpoint */
-  .pl-xl-6 {
-    padding-left: 40px !important; }
-
-  /* Set a 40px padding to the left & right at the xl breakpoint */
-  .px-xl-6 {
-    padding-right: 40px !important;
-    padding-left: 40px !important; }
-
-  /* Set a 40px padding to the top & bottom at the xl breakpoint */
-  .py-xl-6 {
-    padding-top: 40px !important;
-    padding-bottom: 40px !important; } }
-.p-responsive {
-  padding-right: 16px !important;
-  padding-left: 16px !important; }
-  @media (min-width: 544px) {
-    .p-responsive {
-      padding-right: 40px !important;
-      padding-left: 40px !important; } }
-  @media (min-width: 1012px) {
-    .p-responsive {
-      padding-right: 16px !important;
-      padding-left: 16px !important; } }
-
-/* Set the font size to 26px */
-.h1 {
-  font-size: 26px !important; }
-  @media (min-width: 768px) {
-    .h1 {
-      font-size: 32px !important; } }
-
-/* Set the font size to 22px */
-.h2 {
-  font-size: 22px !important; }
-  @media (min-width: 768px) {
-    .h2 {
-      font-size: 24px !important; } }
-
-/* Set the font size to 18px */
-.h3 {
-  font-size: 18px !important; }
-  @media (min-width: 768px) {
-    .h3 {
-      font-size: 20px !important; } }
-
-/* Set the font size to 16px */
-.h4 {
-  font-size: 16px !important; }
-
-/* Set the font size to 14px */
-.h5 {
-  font-size: 14px !important; }
-
-/* Set the font size to 12px */
-.h6 {
-  font-size: 12px !important; }
-
-.h1, .h2, .h3, .h4, .h5, .h6 {
-  font-weight: 600 !important; }
-
-/* Set the font size to 26px */
-.f1 {
-  font-size: 26px !important; }
-  @media (min-width: 768px) {
-    .f1 {
-      font-size: 32px !important; } }
-
-/* Set the font size to 22px */
-.f2 {
-  font-size: 22px !important; }
-  @media (min-width: 768px) {
-    .f2 {
-      font-size: 24px !important; } }
-
-/* Set the font size to 18px */
-.f3 {
-  font-size: 18px !important; }
-  @media (min-width: 768px) {
-    .f3 {
-      font-size: 20px !important; } }
-
-/* Set the font size to 16px */
-.f4 {
-  font-size: 16px !important; }
-  @media (min-width: 768px) {
-    .f4 {
-      font-size: 16px !important; } }
-
-/* Set the font size to 14px */
-.f5 {
-  font-size: 14px !important; }
-
-/* Set the font size to 12px */
-.f6 {
-  font-size: 12px !important; }
-
-/* Set the font size to 40px and weight to light */
-.f00-light {
-  font-size: 40px !important;
-  font-weight: 300 !important; }
-  @media (min-width: 768px) {
-    .f00-light {
-      font-size: 48px !important; } }
-
-/* Set the font size to 32px and weight to light */
-.f0-light {
-  font-size: 32px !important;
-  font-weight: 300 !important; }
-  @media (min-width: 768px) {
-    .f0-light {
-      font-size: 40px !important; } }
-
-/* Set the font size to 26px and weight to light */
-.f1-light {
-  font-size: 26px !important;
-  font-weight: 300 !important; }
-  @media (min-width: 768px) {
-    .f1-light {
-      font-size: 32px !important; } }
-
-/* Set the font size to 22px and weight to light */
-.f2-light {
-  font-size: 22px !important;
-  font-weight: 300 !important; }
-  @media (min-width: 768px) {
-    .f2-light {
-      font-size: 24px !important; } }
-
-/* Set the font size to 18px and weight to light */
-.f3-light {
-  font-size: 18px !important;
-  font-weight: 300 !important; }
-  @media (min-width: 768px) {
-    .f3-light {
-      font-size: 20px !important; } }
-
-/* Set the font size to ${#h6-size} */
-.text-small {
-  font-size: 12px !important; }
-
-/* Large leading paragraphs */
-.lead {
-  margin-bottom: 30px;
-  font-size: 20px;
-  font-weight: 300;
-  color: #586069; }
-
-/* Set the line height to ultra condensed */
-.lh-condensed-ultra {
-  line-height: 1 !important; }
-
-/* Set the line height to condensed */
-.lh-condensed {
-  line-height: 1.25 !important; }
-
-/* Set the line height to default */
-.lh-default {
-  line-height: 1.5 !important; }
-
-/* Text align to the right */
-.text-right {
-  text-align: right !important; }
-
-/* Text align to the left */
-.text-left {
-  text-align: left !important; }
-
-/* Text align to the center */
-.text-center {
-  text-align: center !important; }
-
-@media (min-width: 544px) {
-  .text-sm-right {
-    text-align: right !important; }
-
-  .text-sm-left {
-    text-align: left !important; }
-
-  .text-sm-center {
-    text-align: center !important; } }
-@media (min-width: 768px) {
-  .text-md-right {
-    text-align: right !important; }
-
-  .text-md-left {
-    text-align: left !important; }
-
-  .text-md-center {
-    text-align: center !important; } }
-@media (min-width: 1012px) {
-  .text-lg-right {
-    text-align: right !important; }
-
-  .text-lg-left {
-    text-align: left !important; }
-
-  .text-lg-center {
-    text-align: center !important; } }
-@media (min-width: 1280px) {
-  .text-xl-right {
-    text-align: right !important; }
-
-  .text-xl-left {
-    text-align: left !important; }
-
-  .text-xl-center {
-    text-align: center !important; } }
-/* Set the font weight to normal */
-.text-normal {
-  font-weight: 400 !important; }
-
-/* Set the font weight to bold */
-.text-bold {
-  font-weight: 600 !important; }
-
-/* Set the font to italic */
-.text-italic {
-  font-style: italic !important; }
-
-/* Make text uppercase */
-.text-uppercase {
-  text-transform: uppercase !important; }
-
-/* Underline text */
-.no-underline {
-  text-decoration: none !important; }
-
-/* Don't wrap white space */
-.no-wrap {
-  white-space: nowrap !important; }
-
-/* Normal white space */
-.ws-normal {
-  white-space: normal !important; }
-
-/* Allow long lines with no spaces to line break */
-.wb-break-all {
-  word-break: break-all !important; }
-
-.text-emphasized {
-  font-weight: 600;
-  color: #24292e; }
-
-.list-style-none {
-  list-style: none !important; }
-
-/* Add a dark text shadow */
-.text-shadow-dark {
-  text-shadow: 0 1px 1px rgba(27, 31, 35, 0.25), 0 1px 25px rgba(27, 31, 35, 0.75); }
-
-/* Add a light text shadow */
-.text-shadow-light {
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); }
-
-/* Visibility hidden */
-.v-hidden {
-  visibility: hidden !important; }
-
-/* Visibility visible */
-.v-visible {
-  visibility: visible !important; }
-
-/* Set the display to table */
-.d-table {
-  display: table !important; }
-
-/* Set the display to table-cell */
-.d-table-cell {
-  display: table-cell !important; }
-
-/* Set the table-layout to fixed */
-.table-fixed {
-  table-layout: fixed !important; }
-
-/* Set the display to block */
-.d-block {
-  display: block !important; }
-
-/* Set the display to inline */
-.d-inline {
-  display: inline !important; }
-
-/* Set the display to inline-block */
-.d-inline-block {
-  display: inline-block !important; }
-
-/* Set the display to flex */
-.d-flex {
-  display: flex !important; }
-
-/* Set the display to inline-flex */
-.d-inline-flex {
-  display: inline-flex !important; }
-
-/* Set the display to none */
-.d-none {
-  display: none !important; }
-
-@media (min-width: 544px) {
-  /* Set the display to table at the sm breakpoint */
-  .d-sm-table {
-    display: table !important; }
-
-  /* Set the display to table cell at the sm breakpoint */
-  .d-sm-table-cell {
-    display: table-cell !important; }
-
-  /* Set the display to block at the sm breakpoint */
-  .d-sm-block {
-    display: block !important; }
-
-  /* Set the display to inline at the sm breakpoint */
-  .d-sm-inline {
-    display: inline !important; }
-
-  /* Set the display to inline block at the sm breakpoint */
-  .d-sm-inline-block {
-    display: inline-block !important; }
-
-  /* Set the display to flex at the sm breakpoint */
-  .d-sm-flex {
-    display: flex !important; }
-
-  /* Set the display to flex at the sm breakpoint */
-  .d-sm-inline-flex {
-    display: inline-flex !important; }
-
-  /* Set the display to none at the sm breakpoint */
-  .d-sm-none {
-    display: none !important; } }
-@media (min-width: 768px) {
-  /* Set the display to table at the md breakpoint */
-  .d-md-table {
-    display: table !important; }
-
-  /* Set the display to table cell at the md breakpoint */
-  .d-md-table-cell {
-    display: table-cell !important; }
-
-  /* Set the display to block at the md breakpoint */
-  .d-md-block {
-    display: block !important; }
-
-  /* Set the display to inline at the md breakpoint */
-  .d-md-inline {
-    display: inline !important; }
-
-  /* Set the display to inline block at the md breakpoint */
-  .d-md-inline-block {
-    display: inline-block !important; }
-
-  /* Set the display to flex at the md breakpoint */
-  .d-md-flex {
-    display: flex !important; }
-
-  /* Set the display to flex at the md breakpoint */
-  .d-md-inline-flex {
-    display: inline-flex !important; }
-
-  /* Set the display to none at the md breakpoint */
-  .d-md-none {
-    display: none !important; } }
-@media (min-width: 1012px) {
-  /* Set the display to table at the lg breakpoint */
-  .d-lg-table {
-    display: table !important; }
-
-  /* Set the display to table cell at the lg breakpoint */
-  .d-lg-table-cell {
-    display: table-cell !important; }
-
-  /* Set the display to block at the lg breakpoint */
-  .d-lg-block {
-    display: block !important; }
-
-  /* Set the display to inline at the lg breakpoint */
-  .d-lg-inline {
-    display: inline !important; }
-
-  /* Set the display to inline block at the lg breakpoint */
-  .d-lg-inline-block {
-    display: inline-block !important; }
-
-  /* Set the display to flex at the lg breakpoint */
-  .d-lg-flex {
-    display: flex !important; }
-
-  /* Set the display to flex at the lg breakpoint */
-  .d-lg-inline-flex {
-    display: inline-flex !important; }
-
-  /* Set the display to none at the lg breakpoint */
-  .d-lg-none {
-    display: none !important; } }
-@media (min-width: 1280px) {
-  /* Set the display to table at the xl breakpoint */
-  .d-xl-table {
-    display: table !important; }
-
-  /* Set the display to table cell at the xl breakpoint */
-  .d-xl-table-cell {
-    display: table-cell !important; }
-
-  /* Set the display to block at the xl breakpoint */
-  .d-xl-block {
-    display: block !important; }
-
-  /* Set the display to inline at the xl breakpoint */
-  .d-xl-inline {
-    display: inline !important; }
-
-  /* Set the display to inline block at the xl breakpoint */
-  .d-xl-inline-block {
-    display: inline-block !important; }
-
-  /* Set the display to flex at the xl breakpoint */
-  .d-xl-flex {
-    display: flex !important; }
-
-  /* Set the display to flex at the xl breakpoint */
-  .d-xl-inline-flex {
-    display: inline-flex !important; }
-
-  /* Set the display to none at the xl breakpoint */
-  .d-xl-none {
-    display: none !important; } }
-@media (max-width: 544px) {
-  .hide-sm {
-    display: none !important; } }
-@media (min-width: 544px) and (max-width: 768px) {
-  .hide-md {
-    display: none !important; } }
-@media (min-width: 768px) and (max-width: 1012px) {
-  .hide-lg {
-    display: none !important; } }
-@media (min-width: 1012px) {
-  .hide-xl {
-    display: none !important; } }
-.sr-only {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  word-wrap: normal;
-  border: 0; }
-
-.show-on-focus {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: 0;
-  overflow: hidden;
-  clip: rect(1px, 1px, 1px, 1px); }
-  .show-on-focus:focus {
-    z-index: 20;
-    width: auto;
-    height: auto;
-    clip: auto; }
-
-.container {
-  width: 980px;
-  margin-right: auto;
-  margin-left: auto; }
-  .container::before {
-    display: table;
-    content: ""; }
-  .container::after {
-    display: table;
-    clear: both;
-    content: ""; }
-
-.container-md {
-  max-width: 768px;
-  margin-right: auto;
-  margin-left: auto; }
-
-.container-lg {
-  max-width: 1012px;
-  margin-right: auto;
-  margin-left: auto; }
-
-.container-xl {
-  max-width: 1280px;
-  margin-right: auto;
-  margin-left: auto; }
-
-.columns {
-  margin-right: -10px;
-  margin-left: -10px; }
-  .columns::before {
-    display: table;
-    content: ""; }
-  .columns::after {
-    display: table;
-    clear: both;
-    content: ""; }
-
-.column {
-  float: left;
-  padding-right: 10px;
-  padding-left: 10px; }
-
-.one-third {
-  width: 33.333333%; }
-
-.two-thirds {
-  width: 66.666667%; }
-
-.one-fourth {
-  width: 25%; }
-
-.one-half {
-  width: 50%; }
-
-.three-fourths {
-  width: 75%; }
-
-.one-fifth {
-  width: 20%; }
-
-.four-fifths {
-  width: 80%; }
-
-.centered {
-  display: block;
-  float: none;
-  margin-right: auto;
-  margin-left: auto; }
-
-.col-1 {
-  width: 8.3333333333%; }
-
-.col-2 {
-  width: 16.6666666667%; }
-
-.col-3 {
-  width: 25%; }
-
-.col-4 {
-  width: 33.3333333333%; }
-
-.col-5 {
-  width: 41.6666666667%; }
-
-.col-6 {
-  width: 50%; }
-
-.col-7 {
-  width: 58.3333333333%; }
-
-.col-8 {
-  width: 66.6666666667%; }
-
-.col-9 {
-  width: 75%; }
-
-.col-10 {
-  width: 83.3333333333%; }
-
-.col-11 {
-  width: 91.6666666667%; }
-
-.col-12 {
-  width: 100%; }
-
-@media (min-width: 544px) {
-  .col-sm-1 {
-    width: 8.3333333333%; }
-
-  .col-sm-2 {
-    width: 16.6666666667%; }
-
-  .col-sm-3 {
-    width: 25%; }
-
-  .col-sm-4 {
-    width: 33.3333333333%; }
-
-  .col-sm-5 {
-    width: 41.6666666667%; }
-
-  .col-sm-6 {
-    width: 50%; }
-
-  .col-sm-7 {
-    width: 58.3333333333%; }
-
-  .col-sm-8 {
-    width: 66.6666666667%; }
-
-  .col-sm-9 {
-    width: 75%; }
-
-  .col-sm-10 {
-    width: 83.3333333333%; }
-
-  .col-sm-11 {
-    width: 91.6666666667%; }
-
-  .col-sm-12 {
-    width: 100%; } }
-@media (min-width: 768px) {
-  .col-md-1 {
-    width: 8.3333333333%; }
-
-  .col-md-2 {
-    width: 16.6666666667%; }
-
-  .col-md-3 {
-    width: 25%; }
-
-  .col-md-4 {
-    width: 33.3333333333%; }
-
-  .col-md-5 {
-    width: 41.6666666667%; }
-
-  .col-md-6 {
-    width: 50%; }
-
-  .col-md-7 {
-    width: 58.3333333333%; }
-
-  .col-md-8 {
-    width: 66.6666666667%; }
-
-  .col-md-9 {
-    width: 75%; }
-
-  .col-md-10 {
-    width: 83.3333333333%; }
-
-  .col-md-11 {
-    width: 91.6666666667%; }
-
-  .col-md-12 {
-    width: 100%; } }
-@media (min-width: 1012px) {
-  .col-lg-1 {
-    width: 8.3333333333%; }
-
-  .col-lg-2 {
-    width: 16.6666666667%; }
-
-  .col-lg-3 {
-    width: 25%; }
-
-  .col-lg-4 {
-    width: 33.3333333333%; }
-
-  .col-lg-5 {
-    width: 41.6666666667%; }
-
-  .col-lg-6 {
-    width: 50%; }
-
-  .col-lg-7 {
-    width: 58.3333333333%; }
-
-  .col-lg-8 {
-    width: 66.6666666667%; }
-
-  .col-lg-9 {
-    width: 75%; }
-
-  .col-lg-10 {
-    width: 83.3333333333%; }
-
-  .col-lg-11 {
-    width: 91.6666666667%; }
-
-  .col-lg-12 {
-    width: 100%; } }
-@media (min-width: 1280px) {
-  .col-xl-1 {
-    width: 8.3333333333%; }
-
-  .col-xl-2 {
-    width: 16.6666666667%; }
-
-  .col-xl-3 {
-    width: 25%; }
-
-  .col-xl-4 {
-    width: 33.3333333333%; }
-
-  .col-xl-5 {
-    width: 41.6666666667%; }
-
-  .col-xl-6 {
-    width: 50%; }
-
-  .col-xl-7 {
-    width: 58.3333333333%; }
-
-  .col-xl-8 {
-    width: 66.6666666667%; }
-
-  .col-xl-9 {
-    width: 75%; }
-
-  .col-xl-10 {
-    width: 83.3333333333%; }
-
-  .col-xl-11 {
-    width: 91.6666666667%; }
-
-  .col-xl-12 {
-    width: 100%; } }
-.gutter {
-  margin-right: -16px;
-  margin-left: -16px; }
-  .gutter > [class*="col-"] {
-    padding-right: 16px !important;
-    padding-left: 16px !important; }
-
-.gutter-condensed {
-  margin-right: -8px;
-  margin-left: -8px; }
-  .gutter-condensed > [class*="col-"] {
-    padding-right: 8px !important;
-    padding-left: 8px !important; }
-
-.gutter-spacious {
-  margin-right: -24px;
-  margin-left: -24px; }
-  .gutter-spacious > [class*="col-"] {
-    padding-right: 24px !important;
-    padding-left: 24px !important; }
-
-@media (min-width: 544px) {
-  .gutter-sm {
-    margin-right: -16px;
-    margin-left: -16px; }
-    .gutter-sm > [class*="col-"] {
-      padding-right: 16px !important;
-      padding-left: 16px !important; }
-
-  .gutter-sm-condensed {
-    margin-right: -8px;
-    margin-left: -8px; }
-    .gutter-sm-condensed > [class*="col-"] {
-      padding-right: 8px !important;
-      padding-left: 8px !important; }
-
-  .gutter-sm-spacious {
-    margin-right: -24px;
-    margin-left: -24px; }
-    .gutter-sm-spacious > [class*="col-"] {
-      padding-right: 24px !important;
-      padding-left: 24px !important; } }
-@media (min-width: 768px) {
-  .gutter-md {
-    margin-right: -16px;
-    margin-left: -16px; }
-    .gutter-md > [class*="col-"] {
-      padding-right: 16px !important;
-      padding-left: 16px !important; }
-
-  .gutter-md-condensed {
-    margin-right: -8px;
-    margin-left: -8px; }
-    .gutter-md-condensed > [class*="col-"] {
-      padding-right: 8px !important;
-      padding-left: 8px !important; }
-
-  .gutter-md-spacious {
-    margin-right: -24px;
-    margin-left: -24px; }
-    .gutter-md-spacious > [class*="col-"] {
-      padding-right: 24px !important;
-      padding-left: 24px !important; } }
-@media (min-width: 1012px) {
-  .gutter-lg {
-    margin-right: -16px;
-    margin-left: -16px; }
-    .gutter-lg > [class*="col-"] {
-      padding-right: 16px !important;
-      padding-left: 16px !important; }
-
-  .gutter-lg-condensed {
-    margin-right: -8px;
-    margin-left: -8px; }
-    .gutter-lg-condensed > [class*="col-"] {
-      padding-right: 8px !important;
-      padding-left: 8px !important; }
-
-  .gutter-lg-spacious {
-    margin-right: -24px;
-    margin-left: -24px; }
-    .gutter-lg-spacious > [class*="col-"] {
-      padding-right: 24px !important;
-      padding-left: 24px !important; } }
-@media (min-width: 1280px) {
-  .gutter-xl {
-    margin-right: -16px;
-    margin-left: -16px; }
-    .gutter-xl > [class*="col-"] {
-      padding-right: 16px !important;
-      padding-left: 16px !important; }
-
-  .gutter-xl-condensed {
-    margin-right: -8px;
-    margin-left: -8px; }
-    .gutter-xl-condensed > [class*="col-"] {
-      padding-right: 8px !important;
-      padding-left: 8px !important; }
-
-  .gutter-xl-spacious {
-    margin-right: -24px;
-    margin-left: -24px; }
-    .gutter-xl-spacious > [class*="col-"] {
-      padding-right: 24px !important;
-      padding-left: 24px !important; } }
-.offset-1 {
-  margin-left: 8.3333333333%; }
-
-.offset-2 {
-  margin-left: 16.6666666667%; }
-
-.offset-3 {
-  margin-left: 25%; }
-
-.offset-4 {
-  margin-left: 33.3333333333%; }
-
-.offset-5 {
-  margin-left: 41.6666666667%; }
-
-.offset-6 {
-  margin-left: 50%; }
-
-.offset-7 {
-  margin-left: 58.3333333333%; }
-
-.offset-8 {
-  margin-left: 66.6666666667%; }
-
-.offset-9 {
-  margin-left: 75%; }
-
-.offset-10 {
-  margin-left: 83.3333333333%; }
-
-.offset-11 {
-  margin-left: 91.6666666667%; }
-
-@media (min-width: 544px) {
-  .offset-sm-1 {
-    margin-left: 8.3333333333%; }
-
-  .offset-sm-2 {
-    margin-left: 16.6666666667%; }
-
-  .offset-sm-3 {
-    margin-left: 25%; }
-
-  .offset-sm-4 {
-    margin-left: 33.3333333333%; }
-
-  .offset-sm-5 {
-    margin-left: 41.6666666667%; }
-
-  .offset-sm-6 {
-    margin-left: 50%; }
-
-  .offset-sm-7 {
-    margin-left: 58.3333333333%; }
-
-  .offset-sm-8 {
-    margin-left: 66.6666666667%; }
-
-  .offset-sm-9 {
-    margin-left: 75%; }
-
-  .offset-sm-10 {
-    margin-left: 83.3333333333%; }
-
-  .offset-sm-11 {
-    margin-left: 91.6666666667%; } }
-@media (min-width: 768px) {
-  .offset-md-1 {
-    margin-left: 8.3333333333%; }
-
-  .offset-md-2 {
-    margin-left: 16.6666666667%; }
-
-  .offset-md-3 {
-    margin-left: 25%; }
-
-  .offset-md-4 {
-    margin-left: 33.3333333333%; }
-
-  .offset-md-5 {
-    margin-left: 41.6666666667%; }
-
-  .offset-md-6 {
-    margin-left: 50%; }
-
-  .offset-md-7 {
-    margin-left: 58.3333333333%; }
-
-  .offset-md-8 {
-    margin-left: 66.6666666667%; }
-
-  .offset-md-9 {
-    margin-left: 75%; }
-
-  .offset-md-10 {
-    margin-left: 83.3333333333%; }
-
-  .offset-md-11 {
-    margin-left: 91.6666666667%; } }
-@media (min-width: 1012px) {
-  .offset-lg-1 {
-    margin-left: 8.3333333333%; }
-
-  .offset-lg-2 {
-    margin-left: 16.6666666667%; }
-
-  .offset-lg-3 {
-    margin-left: 25%; }
-
-  .offset-lg-4 {
-    margin-left: 33.3333333333%; }
-
-  .offset-lg-5 {
-    margin-left: 41.6666666667%; }
-
-  .offset-lg-6 {
-    margin-left: 50%; }
-
-  .offset-lg-7 {
-    margin-left: 58.3333333333%; }
-
-  .offset-lg-8 {
-    margin-left: 66.6666666667%; }
-
-  .offset-lg-9 {
-    margin-left: 75%; }
-
-  .offset-lg-10 {
-    margin-left: 83.3333333333%; }
-
-  .offset-lg-11 {
-    margin-left: 91.6666666667%; } }
-@media (min-width: 1280px) {
-  .offset-xl-1 {
-    margin-left: 8.3333333333%; }
-
-  .offset-xl-2 {
-    margin-left: 16.6666666667%; }
-
-  .offset-xl-3 {
-    margin-left: 25%; }
-
-  .offset-xl-4 {
-    margin-left: 33.3333333333%; }
-
-  .offset-xl-5 {
-    margin-left: 41.6666666667%; }
-
-  .offset-xl-6 {
-    margin-left: 50%; }
-
-  .offset-xl-7 {
-    margin-left: 58.3333333333%; }
-
-  .offset-xl-8 {
-    margin-left: 66.6666666667%; }
-
-  .offset-xl-9 {
-    margin-left: 75%; }
-
-  .offset-xl-10 {
-    margin-left: 83.3333333333%; }
-
-  .offset-xl-11 {
-    margin-left: 91.6666666667%; } }
-.markdown-body {
-  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
-  font-size: 16px;
-  line-height: 1.5;
-  word-wrap: break-word; }
-  .markdown-body::before {
-    display: table;
-    content: ""; }
-  .markdown-body::after {
-    display: table;
-    clear: both;
-    content: ""; }
-  .markdown-body > *:first-child {
-    margin-top: 0 !important; }
-  .markdown-body > *:last-child {
-    margin-bottom: 0 !important; }
-  .markdown-body a:not([href]) {
-    color: inherit;
-    text-decoration: none; }
-  .markdown-body .absent {
-    color: #cb2431; }
-  .markdown-body .anchor {
-    float: left;
-    padding-right: 4px;
-    margin-left: -20px;
-    line-height: 1; }
-    .markdown-body .anchor:focus {
-      outline: none; }
-  .markdown-body p,
-  .markdown-body blockquote,
-  .markdown-body ul,
-  .markdown-body ol,
-  .markdown-body dl,
-  .markdown-body table,
-  .markdown-body pre {
-    margin-top: 0;
-    margin-bottom: 16px; }
-  .markdown-body hr {
-    height: 0.25em;
-    padding: 0;
-    margin: 24px 0;
-    background-color: #e1e4e8;
-    border: 0; }
-  .markdown-body blockquote {
-    padding: 0 1em;
-    color: #6a737d;
-    border-left: 0.25em solid #dfe2e5; }
-    .markdown-body blockquote > :first-child {
-      margin-top: 0; }
-    .markdown-body blockquote > :last-child {
-      margin-bottom: 0; }
-  .markdown-body kbd {
-    display: inline-block;
-    padding: 3px 5px;
-    font-size: 11px;
-    line-height: 10px;
-    color: #444d56;
-    vertical-align: middle;
-    background-color: #fafbfc;
-    border: solid 1px #c6cbd1;
-    border-bottom-color: #959da5;
-    border-radius: 3px;
-    box-shadow: inset 0 -1px 0 #959da5; }
-
-.markdown-body h1,
-.markdown-body h2,
-.markdown-body h3,
-.markdown-body h4,
-.markdown-body h5,
-.markdown-body h6 {
-  margin-top: 24px;
-  margin-bottom: 16px;
-  font-weight: 600;
-  line-height: 1.25; }
-  .markdown-body h1 .octicon-link,
-  .markdown-body h2 .octicon-link,
-  .markdown-body h3 .octicon-link,
-  .markdown-body h4 .octicon-link,
-  .markdown-body h5 .octicon-link,
-  .markdown-body h6 .octicon-link {
-    color: #1b1f23;
-    vertical-align: middle;
-    visibility: hidden; }
-  .markdown-body h1:hover .anchor,
-  .markdown-body h2:hover .anchor,
-  .markdown-body h3:hover .anchor,
-  .markdown-body h4:hover .anchor,
-  .markdown-body h5:hover .anchor,
-  .markdown-body h6:hover .anchor {
-    text-decoration: none; }
-    .markdown-body h1:hover .anchor .octicon-link,
-    .markdown-body h2:hover .anchor .octicon-link,
-    .markdown-body h3:hover .anchor .octicon-link,
-    .markdown-body h4:hover .anchor .octicon-link,
-    .markdown-body h5:hover .anchor .octicon-link,
-    .markdown-body h6:hover .anchor .octicon-link {
-      visibility: visible; }
-  .markdown-body h1 tt,
-  .markdown-body h1 code,
-  .markdown-body h2 tt,
-  .markdown-body h2 code,
-  .markdown-body h3 tt,
-  .markdown-body h3 code,
-  .markdown-body h4 tt,
-  .markdown-body h4 code,
-  .markdown-body h5 tt,
-  .markdown-body h5 code,
-  .markdown-body h6 tt,
-  .markdown-body h6 code {
-    font-size: inherit; }
-.markdown-body h1 {
-  padding-bottom: 0.3em;
-  font-size: 2em;
-  border-bottom: 1px solid #eaecef; }
-.markdown-body h2 {
-  padding-bottom: 0.3em;
-  font-size: 1.5em;
-  border-bottom: 1px solid #eaecef; }
-.markdown-body h3 {
-  font-size: 1.25em; }
-.markdown-body h4 {
-  font-size: 1em; }
-.markdown-body h5 {
-  font-size: 0.875em; }
-.markdown-body h6 {
-  font-size: 0.85em;
-  color: #6a737d; }
-
-.markdown-body ul,
-.markdown-body ol {
-  padding-left: 2em; }
-  .markdown-body ul.no-list,
-  .markdown-body ol.no-list {
-    padding: 0;
-    list-style-type: none; }
-.markdown-body ul ul,
-.markdown-body ul ol,
-.markdown-body ol ol,
-.markdown-body ol ul {
-  margin-top: 0;
-  margin-bottom: 0; }
-.markdown-body li {
-  word-wrap: break-all; }
-.markdown-body li > p {
-  margin-top: 16px; }
-.markdown-body li + li {
-  margin-top: 0.25em; }
-.markdown-body dl {
-  padding: 0; }
-  .markdown-body dl dt {
-    padding: 0;
-    margin-top: 16px;
-    font-size: 1em;
-    font-style: italic;
-    font-weight: 600; }
-  .markdown-body dl dd {
-    padding: 0 16px;
-    margin-bottom: 16px; }
-
-.markdown-body table {
-  display: block;
-  width: 100%;
-  overflow: auto; }
-  .markdown-body table th {
-    font-weight: 600; }
-  .markdown-body table th,
-  .markdown-body table td {
-    padding: 6px 13px;
-    border: 1px solid #dfe2e5; }
-  .markdown-body table tr {
-    background-color: #fff;
-    border-top: 1px solid #c6cbd1; }
-    .markdown-body table tr:nth-child(2n) {
-      background-color: #f6f8fa; }
-  .markdown-body table img {
-    background-color: transparent; }
-
-.markdown-body img {
-  max-width: 100%;
-  box-sizing: content-box;
-  background-color: #fff; }
-  .markdown-body img[align=right] {
-    padding-left: 20px; }
-  .markdown-body img[align=left] {
-    padding-right: 20px; }
-.markdown-body .emoji {
-  max-width: none;
-  vertical-align: text-top;
-  background-color: transparent; }
-.markdown-body span.frame {
-  display: block;
-  overflow: hidden; }
-  .markdown-body span.frame > span {
-    display: block;
-    float: left;
-    width: auto;
-    padding: 7px;
-    margin: 13px 0 0;
-    overflow: hidden;
-    border: 1px solid #dfe2e5; }
-  .markdown-body span.frame span img {
-    display: block;
-    float: left; }
-  .markdown-body span.frame span span {
-    display: block;
-    padding: 5px 0 0;
-    clear: both;
-    color: #24292e; }
-.markdown-body span.align-center {
-  display: block;
-  overflow: hidden;
-  clear: both; }
-  .markdown-body span.align-center > span {
-    display: block;
-    margin: 13px auto 0;
-    overflow: hidden;
-    text-align: center; }
-  .markdown-body span.align-center span img {
-    margin: 0 auto;
-    text-align: center; }
-.markdown-body span.align-right {
-  display: block;
-  overflow: hidden;
-  clear: both; }
-  .markdown-body span.align-right > span {
-    display: block;
-    margin: 13px 0 0;
-    overflow: hidden;
-    text-align: right; }
-  .markdown-body span.align-right span img {
-    margin: 0;
-    text-align: right; }
-.markdown-body span.float-left {
-  display: block;
-  float: left;
-  margin-right: 13px;
-  overflow: hidden; }
-  .markdown-body span.float-left span {
-    margin: 13px 0 0; }
-.markdown-body span.float-right {
-  display: block;
-  float: right;
-  margin-left: 13px;
-  overflow: hidden; }
-  .markdown-body span.float-right > span {
-    display: block;
-    margin: 13px auto 0;
-    overflow: hidden;
-    text-align: right; }
-
-.markdown-body code,
-.markdown-body tt {
-  padding: 0.2em 0.4em;
-  margin: 0;
-  font-size: 85%;
-  background-color: rgba(27, 31, 35, 0.05);
-  border-radius: 3px; }
-  .markdown-body code br,
-  .markdown-body tt br {
-    display: none; }
-.markdown-body del code {
-  text-decoration: inherit; }
-.markdown-body pre {
-  word-wrap: normal; }
-  .markdown-body pre > code {
-    padding: 0;
-    margin: 0;
-    font-size: 100%;
-    word-break: normal;
-    white-space: pre;
-    background: transparent;
-    border: 0; }
-.markdown-body .highlight {
-  margin-bottom: 16px; }
-  .markdown-body .highlight pre {
-    margin-bottom: 0;
-    word-break: normal; }
-.markdown-body .highlight pre,
-.markdown-body pre {
-  padding: 16px;
-  overflow: auto;
-  font-size: 85%;
-  line-height: 1.45;
-  background-color: #f6f8fa;
-  border-radius: 3px; }
-.markdown-body pre code,
-.markdown-body pre tt {
-  display: inline;
-  max-width: auto;
-  padding: 0;
-  margin: 0;
-  overflow: visible;
-  line-height: inherit;
-  word-wrap: normal;
-  background-color: transparent;
-  border: 0; }
-
-.markdown-body .csv-data td,
-.markdown-body .csv-data th {
-  padding: 5px;
-  overflow: hidden;
-  font-size: 12px;
-  line-height: 1;
-  text-align: left;
-  white-space: nowrap; }
-.markdown-body .csv-data .blob-num {
-  padding: 10px 8px 9px;
-  text-align: right;
-  background: #fff;
-  border: 0; }
-.markdown-body .csv-data tr {
-  border-top: 0; }
-.markdown-body .csv-data th {
-  font-weight: 600;
-  background: #f6f8fa;
-  border-top: 0; }
-
-.highlight table td {
-  padding: 5px; }
-
-.highlight table pre {
-  margin: 0; }
-
-.highlight .cm {
-  color: #999988;
-  font-style: italic; }
-
-.highlight .cp {
-  color: #999999;
-  font-weight: bold; }
-
-.highlight .c1 {
-  color: #999988;
-  font-style: italic; }
-
-.highlight .cs {
-  color: #999999;
-  font-weight: bold;
-  font-style: italic; }
-
-.highlight .c, .highlight .cd {
-  color: #999988;
-  font-style: italic; }
-
-.highlight .err {
-  color: #a61717;
-  background-color: #e3d2d2; }
-
-.highlight .gd {
-  color: #000000;
-  background-color: #ffdddd; }
-
-.highlight .ge {
-  color: #000000;
-  font-style: italic; }
-
-.highlight .gr {
-  color: #aa0000; }
-
-.highlight .gh {
-  color: #999999; }
-
-.highlight .gi {
-  color: #000000;
-  background-color: #ddffdd; }
-
-.highlight .go {
-  color: #888888; }
-
-.highlight .gp {
-  color: #555555; }
-
-.highlight .gs {
-  font-weight: bold; }
-
-.highlight .gu {
-  color: #aaaaaa; }
-
-.highlight .gt {
-  color: #aa0000; }
-
-.highlight .kc {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .kd {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .kn {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .kp {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .kr {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .kt {
-  color: #445588;
-  font-weight: bold; }
-
-.highlight .k, .highlight .kv {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .mf {
-  color: #009999; }
-
-.highlight .mh {
-  color: #009999; }
-
-.highlight .il {
-  color: #009999; }
-
-.highlight .mi {
-  color: #009999; }
-
-.highlight .mo {
-  color: #009999; }
-
-.highlight .m, .highlight .mb, .highlight .mx {
-  color: #009999; }
-
-.highlight .sb {
-  color: #d14; }
-
-.highlight .sc {
-  color: #d14; }
-
-.highlight .sd {
-  color: #d14; }
-
-.highlight .s2 {
-  color: #d14; }
-
-.highlight .se {
-  color: #d14; }
-
-.highlight .sh {
-  color: #d14; }
-
-.highlight .si {
-  color: #d14; }
-
-.highlight .sx {
-  color: #d14; }
-
-.highlight .sr {
-  color: #009926; }
-
-.highlight .s1 {
-  color: #d14; }
-
-.highlight .ss {
-  color: #990073; }
-
-.highlight .s {
-  color: #d14; }
-
-.highlight .na {
-  color: #008080; }
-
-.highlight .bp {
-  color: #999999; }
-
-.highlight .nb {
-  color: #0086B3; }
-
-.highlight .nc {
-  color: #445588;
-  font-weight: bold; }
-
-.highlight .no {
-  color: #008080; }
-
-.highlight .nd {
-  color: #3c5d5d;
-  font-weight: bold; }
-
-.highlight .ni {
-  color: #800080; }
-
-.highlight .ne {
-  color: #990000;
-  font-weight: bold; }
-
-.highlight .nf {
-  color: #990000;
-  font-weight: bold; }
-
-.highlight .nl {
-  color: #990000;
-  font-weight: bold; }
-
-.highlight .nn {
-  color: #555555; }
-
-.highlight .nt {
-  color: #000080; }
-
-.highlight .vc {
-  color: #008080; }
-
-.highlight .vg {
-  color: #008080; }
-
-.highlight .vi {
-  color: #008080; }
-
-.highlight .nv {
-  color: #008080; }
-
-.highlight .ow {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .o {
-  color: #000000;
-  font-weight: bold; }
-
-.highlight .w {
-  color: #bbbbbb; }
-
-.highlight {
-  background-color: #f8f8f8; }
diff --git a/community/index.html b/community/index.html
index e08ee4c..571b238 100644
--- a/community/index.html
+++ b/community/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Community</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -370,7 +370,7 @@
     </tr>
     <tr>
       <td style="text-align: left">Ted Dunning (<a href="https://people.apache.org/phonebook.html?uid=tdunning">tdunning</a>)</td>
-      <td style="text-align: left"><a href="https://github.com/tdunning"><img width="64" src="https://mapr.com/blog/author/ted-dunning/assets/tdunning-panama.jpg"></a></td>
+      <td style="text-align: left"><a href="https://github.com/tdunning"><img width="64" src="https://github.com/tdunning.png"></a></td>
       <td style="text-align: left">MapR</td>
       <td style="text-align: left">PMC</td>
     </tr>
@@ -510,7 +510,7 @@
   <li>
 <strong>Browse the code</strong>.
 One of the advantages of open source software is that you can browse the code.
-The code is available on <a href="https://github.com/apache/calcite/tree/master">github</a>.</li>
+The code is available on <a href="https://github.com/apache/calcite/tree/main">GitHub</a>.</li>
 </ul>
 
 <h1 id="talks">Talks</h1>
@@ -578,7 +578,7 @@
 and <a href="https://beam-summit.firebaseapp.com/schedule/">Beam Summit Europe 2019</a>;
 [<a href="https://arxiv.org/abs/1905.12133">paper</a>],
 [<a href="https://blog.acolyer.org/2019/07/03/one-sql-to-rule-them-all/">review</a>],
-[<a href="https://github.com/julianhyde/share/blob/master/slides/one-sql-to-rule-them-all-beam-summit-2019.pdf?raw=true">pdf</a>],
+[<a href="https://github.com/julianhyde/share/blob/main/slides/one-sql-to-rule-them-all-beam-summit-2019.pdf?raw=true">pdf</a>],
 [<a href="https://www.youtube.com/watch?v=9f4igtyNseo">video</a>].</p>
 
 <h2 id="apache-calcite-a-foundational-framework-for-optimized-query-processing-over-heterogeneous-data-sources">Apache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources</h2>
@@ -586,13 +586,13 @@
 <p>At <a href="https://sigmod2018.org/index.shtml">SIGMOD/PODS 2018</a>, Houston, TX, 2018;
 [<a href="https://arxiv.org/pdf/1802.10233">paper</a>],
 [<a href="https://www.slideshare.net/julianhyde/apache-calcite-a-foundational-framework-for-optimized-query-processing-over-heterogeneous-data-sources">slides</a>],
-[<a href="https://github.com/julianhyde/share/blob/master/slides/calcite-sigmod-2018.pdf?raw=true">pdf</a>].</p>
+[<a href="https://github.com/julianhyde/share/blob/main/slides/calcite-sigmod-2018.pdf?raw=true">pdf</a>].</p>
 
 <h2 id="spatial-query-on-vanilla-databases">Spatial query on vanilla databases</h2>
 
 <p>At ApacheCon North America, 2018;
 [<a href="https://www.slideshare.net/julianhyde/spatial-query-on-vanilla-databases">slides</a>],
-[<a href="https://github.com/julianhyde/share/blob/master/slides/calcite-spatial-apache-con-2018.pdf?raw=true">pdf</a>.</p>
+[<a href="https://github.com/julianhyde/share/blob/main/slides/calcite-spatial-apache-con-2018.pdf?raw=true">pdf</a>.</p>
 
 <h2 id="apache-calcite-one-planner-fits-all">Apache Calcite: One planner fits all</h2>
 
@@ -600,25 +600,19 @@
 [<a href="https://www.youtube.com/watch?v=5_MyORYjq3w">video</a>],
 [<a href="https://www.slideshare.net/julianhyde/apache-calcite-one-planner-fits-all">slides</a>].</p>
 
-<div class="embed-container video "><iframe width="200" height="113" src="https://www.youtube.com/embed/5_MyORYjq3w?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></div>
-
 <h2 id="streaming-sql">Streaming SQL</h2>
 
 <p>At Hadoop Summit, San Jose, CA, 2016
 [<a href="https://www.youtube.com/watch?v=b7HENkvd1uU">video</a>],
 [<a href="https://www.slideshare.net/julianhyde/streaming-sql-63554778">slides</a>],
-[<a href="https://github.com/julianhyde/share/blob/master/slides/calcite-streaming-sql-san-jose-2016.pdf?raw=true">pdf</a>].</p>
-
-<div class="embed-container video "><iframe width="200" height="113" src="https://www.youtube.com/embed/b7HENkvd1uU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></div>
+[<a href="https://github.com/julianhyde/share/blob/main/slides/calcite-streaming-sql-san-jose-2016.pdf?raw=true">pdf</a>].</p>
 
 <h2 id="cost-based-query-optimization-in-apache-phoenix-using-apache-calcite">Cost-based Query Optimization in Apache Phoenix using Apache Calcite</h2>
 
 <p>At Hadoop Summit, San Jose, CA, 2016
 [<a href="https://www.youtube.com/watch?v=gz9X7JD8BAU">video</a>],
 [<a href="https://www.slideshare.net/julianhyde/costbased-query-optimization-in-apache-phoenix-using-apache-calcite">slides</a>],
-[<a href="https://github.com/julianhyde/share/blob/master/slides/phoenix-on-calcite-hadoop-summit-2016.pdf?raw=true">pdf</a>].</p>
-
-<div class="embed-container video "><iframe width="200" height="113" src="https://www.youtube.com/embed/gz9X7JD8BAU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></div>
+[<a href="https://github.com/julianhyde/share/blob/main/slides/phoenix-on-calcite-hadoop-summit-2016.pdf?raw=true">pdf</a>].</p>
 
 <h2 id="planning-with-polyalgebra-bringing-together-relational-complex-and-machine-learning-algebra">Planning with Polyalgebra: Bringing together relational, complex and machine learning algebra</h2>
 
@@ -626,21 +620,19 @@
 [<a href="https://www.youtube.com/watch?v=fHZqbe3iPMc">video</a>],
 [<a href="https://www.slideshare.net/julianhyde/planning-with-polyalgebra-bringing-together-relational-complex-and-machine-learning-algebra">slides</a>].</p>
 
-<div class="embed-container video "><iframe width="200" height="113" src="https://www.youtube.com/embed/fHZqbe3iPMc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></div>
-
 <h2 id="more-talks">More talks</h2>
 
 <ul>
   <li>
-<a href="https://github.com/julianhyde/share/blob/master/slides/calcite-algebra-edw-2015.pdf?raw=true">Why you care about relational algebra (even though you didn’t know it)</a> (Washington DC, 2015)</li>
+<a href="https://github.com/julianhyde/share/blob/main/slides/calcite-algebra-edw-2015.pdf?raw=true">Why you care about relational algebra (even though you didn’t know it)</a> (Washington DC, 2015)</li>
   <li>
-<a href="https://github.com/julianhyde/share/blob/master/slides/hive-cbo-seattle-2014.pdf?raw=true">Cost-based optimization in Hive 0.14</a> (Seattle, 2014)</li>
+<a href="https://github.com/julianhyde/share/blob/main/slides/hive-cbo-seattle-2014.pdf?raw=true">Cost-based optimization in Hive 0.14</a> (Seattle, 2014)</li>
   <li>
-<a href="https://github.com/julianhyde/share/blob/master/slides/dmmq-summit-2014.pdf?raw=true">Discardable, in-memory materialized query for Hadoop</a> (<a href="https://www.youtube.com/watch?v=CziGOa8GXqI">video</a>) (Hadoop Summit, 2014)</li>
+<a href="https://github.com/julianhyde/share/blob/main/slides/dmmq-summit-2014.pdf?raw=true">Discardable, in-memory materialized query for Hadoop</a> (<a href="https://www.youtube.com/watch?v=CziGOa8GXqI">video</a>) (Hadoop Summit, 2014)</li>
   <li>
-<a href="https://github.com/julianhyde/share/blob/master/slides/optiq-nosql-now-2013.pdf?raw=true">SQL Now!</a> (NoSQL Now! conference, 2013)</li>
+<a href="https://github.com/julianhyde/share/blob/main/slides/optiq-nosql-now-2013.pdf?raw=true">SQL Now!</a> (NoSQL Now! conference, 2013)</li>
   <li>
-<a href="https://github.com/julianhyde/share/blob/master/slides/optiq-drill-user-group-2013.pdf?raw=true">Drill / SQL / Optiq</a> (2013)</li>
+<a href="https://github.com/julianhyde/share/blob/main/slides/optiq-drill-user-group-2013.pdf?raw=true">Drill / SQL / Optiq</a> (2013)</li>
   <li>
 <a href="https://www.slideshare.net/julianhyde/how-to-integrate-splunk-with-any-data-solution">How to integrate Splunk with any data solution</a> (Splunk User Conference, 2012)</li>
 </ul>
@@ -702,7 +694,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/css/screen.css b/css/screen.css
index c0565eb..692ed36 100644
--- a/css/screen.css
+++ b/css/screen.css
@@ -1,1426 +1,631 @@
 @charset "UTF-8";
 /*! normalize.css v3.0.2 | MIT License | git.io/normalize */
-html {
-  font-family: sans-serif;
-  -ms-text-size-adjust: 100%;
-  -webkit-text-size-adjust: 100%; }
+html { font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
 
-body {
-  margin: 0; }
+body { margin: 0; }
 
-article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
-  display: block; }
+article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; }
 
-audio, canvas, progress, video {
-  display: inline-block;
-  vertical-align: baseline; }
+audio, canvas, progress, video { display: inline-block; vertical-align: baseline; }
 
-audio:not([controls]) {
-  display: none;
-  height: 0; }
+audio:not([controls]) { display: none; height: 0; }
 
-[hidden], template {
-  display: none; }
+[hidden], template { display: none; }
 
-a {
-  background-color: transparent; }
+a { background-color: transparent; }
 
-a:active, a:hover {
-  outline: 0; }
+a:active, a:hover { outline: 0; }
 
-abbr[title] {
-  border-bottom: 1px dotted; }
+abbr[title] { border-bottom: 1px dotted; }
 
-b, strong {
-  font-weight: 700; }
+b, strong { font-weight: 700; }
 
-dfn {
-  font-style: italic; }
+dfn { font-style: italic; }
 
-h1 {
-  font-size: 2em;
-  margin: .67em 0; }
+h1 { font-size: 2em; margin: .67em 0; }
 
-mark {
-  background: #ff0;
-  color: #000; }
+mark { background: #ff0; color: #000; }
 
-small {
-  font-size: 80%; }
+small { font-size: 80%; }
 
-sub, sup {
-  font-size: 75%;
-  line-height: 0;
-  position: relative;
-  vertical-align: baseline; }
+sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
 
-sup {
-  top: -.5em; }
+sup { top: -.5em; }
 
-sub {
-  bottom: -.25em; }
+sub { bottom: -.25em; }
 
-img {
-  border: 0; }
+img { border: 0; }
 
-svg:not(:root) {
-  overflow: hidden; }
+svg:not(:root) { overflow: hidden; }
 
-figure {
-  margin: 1em 40px; }
+figure { margin: 1em 40px; }
 
-hr {
-  -moz-box-sizing: content-box;
-  box-sizing: content-box;
-  height: 0; }
+hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; }
 
-pre {
-  overflow: auto; }
+pre { overflow: auto; }
 
-code, kbd, pre, samp {
-  font-family: monospace,monospace;
-  font-size: 1em; }
+code, kbd, pre, samp { font-family: monospace,monospace; font-size: 1em; }
 
-button, input, optgroup, select, textarea {
-  color: inherit;
-  font: inherit;
-  margin: 0; }
+button, input, optgroup, select, textarea { color: inherit; font: inherit; margin: 0; }
 
-button {
-  overflow: visible; }
+button { overflow: visible; }
 
-button, select {
-  text-transform: none; }
+button, select { text-transform: none; }
 
-button, html input[type=button], input[type=reset], input[type=submit] {
-  -webkit-appearance: button;
-  cursor: pointer; }
+button, html input[type=button], input[type=reset], input[type=submit] { -webkit-appearance: button; cursor: pointer; }
 
-button[disabled], html input[disabled] {
-  cursor: default; }
+button[disabled], html input[disabled] { cursor: default; }
 
-button::-moz-focus-inner, input::-moz-focus-inner {
-  border: 0;
-  padding: 0; }
+button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
 
-input {
-  line-height: normal; }
+input { line-height: normal; }
 
-input[type=checkbox], input[type=radio] {
-  box-sizing: border-box;
-  padding: 0; }
+input[type=checkbox], input[type=radio] { box-sizing: border-box; padding: 0; }
 
-input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button {
-  height: auto; }
+input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button { height: auto; }
 
-input[type=search] {
-  -webkit-appearance: textfield;
-  -moz-box-sizing: content-box;
-  -webkit-box-sizing: content-box;
-  box-sizing: content-box; }
+input[type=search] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; }
 
-input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration {
-  -webkit-appearance: none; }
+input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration { -webkit-appearance: none; }
 
-fieldset {
-  border: 1px solid silver;
-  margin: 0 2px;
-  padding: .35em .625em .75em; }
+fieldset { border: 1px solid silver; margin: 0 2px; padding: .35em .625em .75em; }
 
-legend {
-  border: 0;
-  padding: 0; }
+legend { border: 0; padding: 0; }
 
-textarea {
-  overflow: auto; }
+textarea { overflow: auto; }
 
-optgroup {
-  font-weight: 700; }
+optgroup { font-weight: 700; }
 
-table {
-  border-collapse: collapse;
-  border-spacing: 0; }
+table { border-collapse: collapse; border-spacing: 0; }
 
-td, th {
-  padding: 0; }
+td, th { padding: 0; }
 
-/*
- * Gridism
- * A simple, responsive, and handy CSS grid by @cobyism
- * https://github.com/cobyism/gridism
- */
+/* Gridism A simple, responsive, and handy CSS grid by @cobyism https://github.com/cobyism/gridism */
 /* Preserve some sanity */
-.grid,
-.unit {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box; }
+.grid, .unit { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
 
 /* Set up some rules to govern the grid */
-.grid {
-  display: block;
-  clear: both; }
+.grid { display: block; clear: both; }
 
-.grid .unit {
-  float: left;
-  width: 100%;
-  padding: 10px; }
+.grid .unit { float: left; width: 100%; padding: 10px; }
 
 /* This ensures the outer gutters are equal to the (doubled) inner gutters. */
-.grid .unit:first-child {
-  padding-left: 20px; }
+.grid .unit:first-child { padding-left: 20px; }
 
-.grid .unit:last-child {
-  padding-right: 20px; }
+.grid .unit:last-child { padding-right: 20px; }
 
 /* Nested grids already have padding though, so let’s nuke it */
-.unit .unit:first-child {
-  padding-left: 0; }
+.unit .unit:first-child { padding-left: 0; }
 
-.unit .unit:last-child {
-  padding-right: 0; }
+.unit .unit:last-child { padding-right: 0; }
 
-.unit .grid:first-child > .unit {
-  padding-top: 0; }
+.unit .grid:first-child > .unit { padding-top: 0; }
 
-.unit .grid:last-child > .unit {
-  padding-bottom: 0; }
+.unit .grid:last-child > .unit { padding-bottom: 0; }
 
 /* Let people nuke the gutters/padding completely in a couple of ways */
-.no-gutters .unit,
-.unit.no-gutters {
-  padding: 0 !important; }
+.no-gutters .unit, .unit.no-gutters { padding: 0 !important; }
 
 /* Wrapping at a maximum width is optional */
-.wrap .grid,
-.grid.wrap {
-  max-width: 978px;
-  margin: 0 auto; }
+.wrap .grid, .grid.wrap { max-width: 978px; margin: 0 auto; }
 
-/* Width classes also have shorthand versions numbered as fractions
- * For example: for a grid unit 1/3 (one third) of the parent width,
- * simply apply class="w-1-3" to the element. */
-.grid .whole, .grid .w-1-1 {
-  width: 100%; }
+/* Width classes also have shorthand versions numbered as fractions For example: for a grid unit 1/3 (one third) of the parent width, simply apply class="w-1-3" to the element. */
+.grid .whole, .grid .w-1-1 { width: 100%; }
 
-.grid .half, .grid .w-1-2 {
-  width: 50%; }
+.grid .half, .grid .w-1-2 { width: 50%; }
 
-.grid .one-third, .grid .w-1-3 {
-  width: 33.3332%; }
+.grid .one-third, .grid .w-1-3 { width: 33.3332%; }
 
-.grid .two-thirds, .grid .w-2-3 {
-  width: 66.6665%; }
+.grid .two-thirds, .grid .w-2-3 { width: 66.6665%; }
 
-.grid .one-quarter,
-.grid .one-fourth, .grid .w-1-4 {
-  width: 25%; }
+.grid .one-quarter, .grid .one-fourth, .grid .w-1-4 { width: 25%; }
 
-.grid .three-quarters,
-.grid .three-fourths, .grid .w-3-4 {
-  width: 75%; }
+.grid .three-quarters, .grid .three-fourths, .grid .w-3-4 { width: 75%; }
 
-.grid .one-fifth, .grid .w-1-5 {
-  width: 20%; }
+.grid .one-fifth, .grid .w-1-5 { width: 20%; }
 
-.grid .two-fifths, .grid .w-2-5 {
-  width: 40%; }
+.grid .two-fifths, .grid .w-2-5 { width: 40%; }
 
-.grid .three-fifths, .grid .w-3-5 {
-  width: 60%; }
+.grid .three-fifths, .grid .w-3-5 { width: 60%; }
 
-.grid .four-fifths, .grid .w-4-5 {
-  width: 80%; }
+.grid .four-fifths, .grid .w-4-5 { width: 80%; }
 
-.grid .golden-small, .grid .w-g-s {
-  width: 38.2716%; }
+.grid .golden-small, .grid .w-g-s { width: 38.2716%; }
 
 /* Golden section: smaller piece */
-.grid .golden-large, .grid .w-g-l {
-  width: 61.7283%; }
+.grid .golden-large, .grid .w-g-l { width: 61.7283%; }
 
 /* Golden section: larger piece */
 /* Clearfix after every .grid */
-.grid {
-  *zoom: 1; }
+.grid { *zoom: 1; }
 
-.grid:before, .grid:after {
-  display: table;
-  content: "";
-  line-height: 0; }
+.grid:before, .grid:after { display: table; content: ""; line-height: 0; }
 
-.grid:after {
-  clear: both; }
+.grid:after { clear: both; }
 
 /* Utility classes */
-.align-center {
-  text-align: center; }
+.align-center { text-align: center; }
 
-.align-left {
-  text-align: left; }
+.align-left { text-align: left; }
 
-.align-right {
-  text-align: right; }
+.align-right { text-align: right; }
 
-.pull-left {
-  float: left; }
+.pull-left { float: left; }
 
-.pull-right {
-  float: right; }
+.pull-right { float: right; }
 
-/* A property for a better rendering of images in units: in
-   this way bigger pictures are just resized if the unit
-   becomes smaller */
-.unit img {
-  max-width: 100%; }
+/* A property for a better rendering of images in units: in this way bigger pictures are just resized if the unit becomes smaller */
+.unit img { max-width: 100%; }
 
 /* Responsive Stuff */
-@media screen and (max-width: 568px) {
-  /* Stack anything that isn’t full-width on smaller screens
-     and doesn't provide the no-stacking-on-mobiles class */
-  .grid:not(.no-stacking-on-mobiles) > .unit {
-    width: 100% !important;
-    padding-left: 20px;
-    padding-right: 20px; }
+@media screen and (max-width: 568px) { /* Stack anything that isn’t full-width on smaller screens and doesn't provide the no-stacking-on-mobiles class */ .grid:not(.no-stacking-on-mobiles) > .unit { width: 100% !important; padding-left: 20px; padding-right: 20px; } .unit .grid .unit { padding-left: 0px; padding-right: 0px; } /* Sometimes, you just want to be different on small screens */ .center-on-mobiles { text-align: center !important; } .hide-on-mobiles { display: none !important; } }
 
-  .unit .grid .unit {
-    padding-left: 0px;
-    padding-right: 0px; }
-
-  /* Sometimes, you just want to be different on small screens */
-  .center-on-mobiles {
-    text-align: center !important; }
-
-  .hide-on-mobiles {
-    display: none !important; } }
 /* Expand the wrap a bit further on larger screens */
-@media screen and (min-width: 1180px) {
-  .wider .grid,
-  .grid.wider {
-    max-width: 1180px;
-    margin: 0 auto; } }
-.highlight {
-  /* Comment */
-  /* Error */
-  /* Generic */
-  /* Keyword */
-  /* Literal */
-  /* Name */
-  /* Operator */
-  /* Other */
-  /* Punctuation */
-  /* Comment.Multiline */
-  /* Comment.Preproc */
-  /* Comment.Single */
-  /* Comment.Special */
-  /* Generic.Deleted */
-  /* Generic.Emph */
-  /* Generic.Error */
-  /* Generic.Heading */
-  /* Generic.Inserted */
-  /* Generic.Output, qualified with span to prevent applying this style to the Go language, see #1153. */
-  /* Generic.Prompt */
-  /* Generic.Strong */
-  /* Generic.Subheading */
-  /* Generic.Traceback */
-  /* Keyword.Constant */
-  /* Keyword.Declaration */
-  /* Keyword.Namespace */
-  /* Keyword.Pseudo */
-  /* Keyword.Reserved */
-  /* Keyword.Type */
-  /* Literal.Date */
-  /* Literal.Number */
-  /* Literal.String */
-  /* Name.Attribute */
-  /* Name.Builtin */
-  /* Name.Class */
-  /* Name.Constant */
-  /* Name.Decorator */
-  /* Name.Entity */
-  /* Name.Exception */
-  /* Name.Function */
-  /* Name.Label */
-  /* Name.Namespace */
-  /* Name.Other */
-  /* Name.Property */
-  /* Name.Tag */
-  /* Name.Variable */
-  /* Operator.Word */
-  /* Text.Whitespace */
-  /* Literal.Number.Float */
-  /* Literal.Number.Hex */
-  /* Literal.Number.Integer */
-  /* Literal.Number.Oct */
-  /* Literal.String.Backtick */
-  /* Literal.String.Char */
-  /* Literal.String.Doc */
-  /* Literal.String.Double */
-  /* Literal.String.Escape */
-  /* Literal.String.Heredoc */
-  /* Literal.String.Interpol */
-  /* Literal.String.Other */
-  /* Literal.String.Regex */
-  /* Literal.String.Single */
-  /* Literal.String.Symbol */
-  /* Name.Builtin.Pseudo */
-  /* Name.Variable.Class */
-  /* Name.Variable.Global */
-  /* Name.Variable.Instance */
-  /* Literal.Number.Integer.Long */ }
-  .highlight .hll {
-    background-color: #ffffcc; }
-  .highlight .c {
-    color: #87ceeb; }
-  .highlight .err {
-    color: #ffffff; }
-  .highlight .g {
-    color: #ffffff; }
-  .highlight .k {
-    color: #f0e68c; }
-  .highlight .l {
-    color: #ffffff; }
-  .highlight .n {
-    color: #ffffff; }
-  .highlight .o {
-    color: #ffffff; }
-  .highlight .x {
-    color: #ffffff; }
-  .highlight .p {
-    color: #ffffff; }
-  .highlight .cm {
-    color: #87ceeb; }
-  .highlight .cp {
-    color: #cd5c5c; }
-  .highlight .c1 {
-    color: #87ceeb; }
-  .highlight .cs {
-    color: #87ceeb; }
-  .highlight .gd {
-    color: #0000c0;
-    font-weight: bold;
-    background-color: #008080; }
-  .highlight .ge {
-    color: #c000c0;
-    text-decoration: underline; }
-  .highlight .gr {
-    color: #c0c0c0;
-    font-weight: bold;
-    background-color: #c00000; }
-  .highlight .gh {
-    color: #cd5c5c; }
-  .highlight .gi {
-    color: #ffffff;
-    background-color: #0000c0; }
-  .highlight span.go {
-    color: #add8e6;
-    font-weight: bold;
-    background-color: #4d4d4d; }
-  .highlight .gp {
-    color: #ffffff; }
-  .highlight .gs {
-    color: #ffffff; }
-  .highlight .gu {
-    color: #cd5c5c; }
-  .highlight .gt {
-    color: #c0c0c0;
-    font-weight: bold;
-    background-color: #c00000; }
-  .highlight .kc {
-    color: #f0e68c; }
-  .highlight .kd {
-    color: #f0e68c; }
-  .highlight .kn {
-    color: #f0e68c; }
-  .highlight .kp {
-    color: #f0e68c; }
-  .highlight .kr {
-    color: #f0e68c; }
-  .highlight .kt {
-    color: #bdb76b; }
-  .highlight .ld {
-    color: #ffffff; }
-  .highlight .m {
-    color: #ffffff; }
-  .highlight .s {
-    color: #ffffff; }
-  .highlight .na {
-    color: #ffffff; }
-  .highlight .nb {
-    color: #ffffff; }
-  .highlight .nc {
-    color: #ffffff; }
-  .highlight .no {
-    color: #ffa0a0; }
-  .highlight .nd {
-    color: #ffffff; }
-  .highlight .ni {
-    color: #ffdead; }
-  .highlight .ne {
-    color: #ffffff; }
-  .highlight .nf {
-    color: #ffffff; }
-  .highlight .nl {
-    color: #ffffff; }
-  .highlight .nn {
-    color: #ffffff; }
-  .highlight .nx {
-    color: #ffffff; }
-  .highlight .py {
-    color: #ffffff; }
-  .highlight .nt {
-    color: #f0e68c; }
-  .highlight .nv {
-    color: #98fb98; }
-  .highlight .ow {
-    color: #ffffff; }
-  .highlight .w {
-    color: #ffffff; }
-  .highlight .mf {
-    color: #ffffff; }
-  .highlight .mh {
-    color: #ffffff; }
-  .highlight .mi {
-    color: #ffffff; }
-  .highlight .mo {
-    color: #ffffff; }
-  .highlight .sb {
-    color: #ffffff; }
-  .highlight .sc {
-    color: #ffffff; }
-  .highlight .sd {
-    color: #ffffff; }
-  .highlight .s2 {
-    color: #ffffff; }
-  .highlight .se {
-    color: #ffffff; }
-  .highlight .sh {
-    color: #ffffff; }
-  .highlight .si {
-    color: #ffffff; }
-  .highlight .sx {
-    color: #ffffff; }
-  .highlight .sr {
-    color: #ffffff; }
-  .highlight .s1 {
-    color: #ffffff; }
-  .highlight .ss {
-    color: #ffffff; }
-  .highlight .bp {
-    color: #ffffff; }
-  .highlight .vc {
-    color: #98fb98; }
-  .highlight .vg {
-    color: #98fb98; }
-  .highlight .vi {
-    color: #98fb98; }
-  .highlight .il {
-    color: #ffffff; }
-  .highlight .bash .nv {
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    -o-user-select: none;
-    user-select: none; }
+@media screen and (min-width: 1180px) { .wider .grid, .grid.wider { max-width: 1180px; margin: 0 auto; } }
 
-/*!
- *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
- *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-@font-face {
-  font-family: 'FontAwesome';
-  src: url("../fonts/fontawesome-webfont.eot?v=4.2.0");
-  src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");
-  font-weight: normal;
-  font-style: normal; }
-.fa {
-  display: inline-block;
-  font: normal normal normal 14px/1 FontAwesome;
-  font-size: inherit;
-  text-rendering: auto;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale; }
+.highlight { /* Comment */ /* Error */ /* Generic */ /* Keyword */ /* Literal */ /* Name */ /* Operator */ /* Other */ /* Punctuation */ /* Comment.Multiline */ /* Comment.Preproc */ /* Comment.Single */ /* Comment.Special */ /* Generic.Deleted */ /* Generic.Emph */ /* Generic.Error */ /* Generic.Heading */ /* Generic.Inserted */ /* Generic.Output, qualified with span to prevent applying this style to the Go language, see #1153. */ /* Generic.Prompt */ /* Generic.Strong */ /* Generic.Subheading */ /* Generic.Traceback */ /* Keyword.Constant */ /* Keyword.Declaration */ /* Keyword.Namespace */ /* Keyword.Pseudo */ /* Keyword.Reserved */ /* Keyword.Type */ /* Literal.Date */ /* Literal.Number */ /* Literal.String */ /* Name.Attribute */ /* Name.Builtin */ /* Name.Class */ /* Name.Constant */ /* Name.Decorator */ /* Name.Entity */ /* Name.Exception */ /* Name.Function */ /* Name.Label */ /* Name.Namespace */ /* Name.Other */ /* Name.Property */ /* Name.Tag */ /* Name.Variable */ /* Operator.Word */ /* Text.Whitespace */ /* Literal.Number.Float */ /* Literal.Number.Hex */ /* Literal.Number.Integer */ /* Literal.Number.Oct */ /* Literal.String.Backtick */ /* Literal.String.Char */ /* Literal.String.Doc */ /* Literal.String.Double */ /* Literal.String.Escape */ /* Literal.String.Heredoc */ /* Literal.String.Interpol */ /* Literal.String.Other */ /* Literal.String.Regex */ /* Literal.String.Single */ /* Literal.String.Symbol */ /* Name.Builtin.Pseudo */ /* Name.Variable.Class */ /* Name.Variable.Global */ /* Name.Variable.Instance */ /* Literal.Number.Integer.Long */ }
 
-.fa-link:before {
-  content: "\f0c1"; }
+.highlight .hll { background-color: #ffffcc; }
 
-.fa-pencil:before {
-  content: "\f040"; }
+.highlight .c { color: #87ceeb; }
+
+.highlight .err { color: #ffffff; }
+
+.highlight .g { color: #ffffff; }
+
+.highlight .k { color: #f0e68c; }
+
+.highlight .l { color: #ffffff; }
+
+.highlight .n { color: #ffffff; }
+
+.highlight .o { color: #ffffff; }
+
+.highlight .x { color: #ffffff; }
+
+.highlight .p { color: #ffffff; }
+
+.highlight .cm { color: #87ceeb; }
+
+.highlight .cp { color: #cd5c5c; }
+
+.highlight .c1 { color: #87ceeb; }
+
+.highlight .cs { color: #87ceeb; }
+
+.highlight .gd { color: #0000c0; font-weight: bold; background-color: #008080; }
+
+.highlight .ge { color: #c000c0; text-decoration: underline; }
+
+.highlight .gr { color: #c0c0c0; font-weight: bold; background-color: #c00000; }
+
+.highlight .gh { color: #cd5c5c; }
+
+.highlight .gi { color: #ffffff; background-color: #0000c0; }
+
+.highlight span.go { color: #add8e6; font-weight: bold; background-color: #4d4d4d; }
+
+.highlight .gp { color: #ffffff; }
+
+.highlight .gs { color: #ffffff; }
+
+.highlight .gu { color: #cd5c5c; }
+
+.highlight .gt { color: #c0c0c0; font-weight: bold; background-color: #c00000; }
+
+.highlight .kc { color: #f0e68c; }
+
+.highlight .kd { color: #f0e68c; }
+
+.highlight .kn { color: #f0e68c; }
+
+.highlight .kp { color: #f0e68c; }
+
+.highlight .kr { color: #f0e68c; }
+
+.highlight .kt { color: #bdb76b; }
+
+.highlight .ld { color: #ffffff; }
+
+.highlight .m { color: #ffffff; }
+
+.highlight .s { color: #ffffff; }
+
+.highlight .na { color: #ffffff; }
+
+.highlight .nb { color: #ffffff; }
+
+.highlight .nc { color: #ffffff; }
+
+.highlight .no { color: #ffa0a0; }
+
+.highlight .nd { color: #ffffff; }
+
+.highlight .ni { color: #ffdead; }
+
+.highlight .ne { color: #ffffff; }
+
+.highlight .nf { color: #ffffff; }
+
+.highlight .nl { color: #ffffff; }
+
+.highlight .nn { color: #ffffff; }
+
+.highlight .nx { color: #ffffff; }
+
+.highlight .py { color: #ffffff; }
+
+.highlight .nt { color: #f0e68c; }
+
+.highlight .nv { color: #98fb98; }
+
+.highlight .ow { color: #ffffff; }
+
+.highlight .w { color: #ffffff; }
+
+.highlight .mf { color: #ffffff; }
+
+.highlight .mh { color: #ffffff; }
+
+.highlight .mi { color: #ffffff; }
+
+.highlight .mo { color: #ffffff; }
+
+.highlight .sb { color: #ffffff; }
+
+.highlight .sc { color: #ffffff; }
+
+.highlight .sd { color: #ffffff; }
+
+.highlight .s2 { color: #ffffff; }
+
+.highlight .se { color: #ffffff; }
+
+.highlight .sh { color: #ffffff; }
+
+.highlight .si { color: #ffffff; }
+
+.highlight .sx { color: #ffffff; }
+
+.highlight .sr { color: #ffffff; }
+
+.highlight .s1 { color: #ffffff; }
+
+.highlight .ss { color: #ffffff; }
+
+.highlight .bp { color: #ffffff; }
+
+.highlight .vc { color: #98fb98; }
+
+.highlight .vg { color: #98fb98; }
+
+.highlight .vi { color: #98fb98; }
+
+.highlight .il { color: #ffffff; }
+
+.highlight .bash .nv { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none; }
+
+/*! Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */
+@font-face { font-family: 'FontAwesome'; src: url("../fonts/fontawesome-webfont.eot?v=4.2.0"); src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg"); font-weight: normal; font-style: normal; }
+
+.fa { display: inline-block; font: normal normal normal 14px/1 FontAwesome; font-size: inherit; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
+
+.fa-link:before { content: "\f0c1"; }
+
+.fa-pencil:before { content: "\f040"; }
 
 /* Base */
-* {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box; }
+* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
 
-body {
-  font: 300 21px Lato, 'Helvetica Neue', Helvetica, Arial, sans-serif;
-  color: #ddd;
-  background-color: #333;
-  border-top: 5px solid #33adff;
-  -webkit-box-shadow: inset 0 3px 30px rgba(0, 0, 0, 0.3);
-  -moz-box-shadow: inset 0 3px 30px rgba(0, 0, 0, 0.3);
-  box-shadow: inset 0 3px 30px rgba(0, 0, 0, 0.3);
-  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
-  -webkit-font-feature-settings: "kern" 1;
-  -moz-font-feature-settings: "kern" 1;
-  -o-font-feature-settings: "kern" 1;
-  font-feature-settings: "kern" 1;
-  font-kerning: normal; }
+body { font: 300 21px Lato, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #ddd; background-color: #333; border-top: 5px solid #33adff; -webkit-box-shadow: inset 0 3px 30px rgba(0, 0, 0, 0.3); -moz-box-shadow: inset 0 3px 30px rgba(0, 0, 0, 0.3); box-shadow: inset 0 3px 30px rgba(0, 0, 0, 0.3); text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); -webkit-font-feature-settings: "kern" 1; -moz-font-feature-settings: "kern" 1; -o-font-feature-settings: "kern" 1; font-feature-settings: "kern" 1; font-kerning: normal; }
 
-.clear {
-  display: block; }
+.clear { display: block; }
 
-.clear:after {
-  content: " ";
-  display: block;
-  height: 0;
-  clear: both;
-  visibility: hidden; }
+.clear:after { content: " "; display: block; height: 0; clear: both; visibility: hidden; }
 
 /* Sections */
-header,
-section,
-footer {
-  float: left;
-  width: 100%;
-  clear: both; }
+header, section, footer { float: left; width: 100%; clear: both; }
 
 /* Header */
-header {
-  margin-bottom: 40px; }
-  header h1,
-  header nav {
-    display: inline-block; }
+header { margin-bottom: 40px; }
 
-nav ul {
-  padding: 0;
-  margin: 0; }
-nav li {
-  display: inline-block; }
+header h1, header nav { display: inline-block; }
 
-.main-nav {
-  margin-left: 20px; }
-  .main-nav li {
-    margin-right: 10px; }
-    .main-nav li a {
-      -webkit-border-radius: 5px;
-      -moz-border-radius: 5px;
-      border-radius: 5px;
-      font-weight: 900;
-      font-size: 14px;
-      padding: 0.5em 1em;
-      text-shadow: none;
-      text-transform: uppercase;
-      -webkit-transition: all 0.25s;
-      -moz-transition: all 0.25s;
-      -o-transition: all 0.25s;
-      transition: all 0.25s; }
-      .main-nav li a:hover {
-        background-color: #252525;
-        -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 0 rgba(255, 255, 255, 0.1);
-        -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 0 rgba(255, 255, 255, 0.1);
-        box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 0 rgba(255, 255, 255, 0.1);
-        text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); }
-    .main-nav li.current a {
-      background-color: #33adff;
-      color: #222;
-      -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5);
-      -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5);
-      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5);
-      text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3); }
+nav ul { padding: 0; margin: 0; }
 
-.mobile-nav ul {
-  overflow: hidden;
-  width: 100%;
-  display: table; }
-.mobile-nav a {
-  float: left;
-  width: 100%;
-  background-color: #333;
-  color: #33adff;
-  text-align: center;
-  text-transform: uppercase;
-  font-size: 14px;
-  font-weight: 900;
-  padding: 5px;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px; }
-.mobile-nav li {
-  display: table-cell;
-  width: 20%;
-  padding: 8px 2px; }
-.mobile-nav .current a {
-  background-color: #33adff;
-  color: #222;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5);
-  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5);
-  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5);
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3); }
+nav li { display: inline-block; }
 
-/*
- * This code is courtesy Ben Balter, modified by Parker Moore.
- * http://ben.balter.com/2014/03/13/pages-anchor-links/
- */
-.header-link {
-  position: relative;
-  left: 0.5em;
-  opacity: 0;
-  font-size: 0.8em;
-  -webkit-transition: opacity 0.2s ease-in-out 0.1s;
-  -moz-transition: opacity 0.2s ease-in-out 0.1s;
-  -o-transition: opacity 0.2s ease-in-out 0.1s;
-  transition: opacity 0.2s ease-in-out 0.1s; }
+.main-nav { margin-left: 20px; }
 
-h2:hover .header-link,
-h3:hover .header-link,
-h4:hover .header-link,
-h5:hover .header-link,
-h6:hover .header-link {
-  opacity: 1; }
+.main-nav li { margin-right: 10px; }
 
-@media (max-width: 768px) {
-  .main-nav ul {
-    text-align: center; } }
-@media (max-width: 830px) {
-  .main-nav .show-on-mobiles {
-    display: inline; }
-  .main-nav .hide-on-mobiles {
-    display: none; } }
+.main-nav li a { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; font-weight: 900; font-size: 14px; padding: 0.5em 1em; text-shadow: none; text-transform: uppercase; -webkit-transition: all 0.25s; -moz-transition: all 0.25s; -o-transition: all 0.25s; transition: all 0.25s; }
+
+.main-nav li a:hover { background-color: #252525; -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 0 rgba(255, 255, 255, 0.1); -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 0 rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 0 rgba(255, 255, 255, 0.1); text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); }
+
+.main-nav li.current a { background-color: #33adff; color: #222; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5); -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3); }
+
+.mobile-nav ul { overflow: hidden; width: 100%; display: table; }
+
+.mobile-nav a { float: left; width: 100%; background-color: #333; color: #33adff; text-align: center; text-transform: uppercase; font-size: 14px; font-weight: 900; padding: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; }
+
+.mobile-nav li { display: table-cell; width: 20%; padding: 8px 2px; }
+
+.mobile-nav .current a { background-color: #33adff; color: #222; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5); -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3); }
+
+/* This code is courtesy Ben Balter, modified by Parker Moore. http://ben.balter.com/2014/03/13/pages-anchor-links/ */
+.header-link { position: relative; left: 0.5em; opacity: 0; font-size: 0.8em; -webkit-transition: opacity 0.2s ease-in-out 0.1s; -moz-transition: opacity 0.2s ease-in-out 0.1s; -o-transition: opacity 0.2s ease-in-out 0.1s; transition: opacity 0.2s ease-in-out 0.1s; }
+
+h2:hover .header-link, h3:hover .header-link, h4:hover .header-link, h5:hover .header-link, h6:hover .header-link { opacity: 1; }
+
+@media (max-width: 768px) { .main-nav ul { text-align: center; } }
+
+@media (max-width: 830px) { .main-nav .show-on-mobiles { display: inline; } .main-nav .hide-on-mobiles { display: none; } }
+
 /* Footer */
-footer {
-  background-color: #212121;
-  font-size: 16px;
-  padding-bottom: 5px;
-  padding-left: 5px;
-  padding-right: 5px;
-  color: #c0c0c0;
-  margin-top: 40px; }
-  footer a {
-    color: #fff; }
-    footer a:hover img {
-      opacity: 1; }
-  footer .align-right p {
-    display: inline-block; }
-  footer img {
-    display: inline-block;
-    position: relative;
-    top: 8px;
-    margin-left: 5px;
-    opacity: .8;
-    padding: 1px;
-    -webkit-transition: opacity 0.2s;
-    -moz-transition: opacity 0.2s;
-    -o-transition: opacity 0.2s;
-    transition: opacity 0.2s; }
+footer { background-color: #212121; font-size: 16px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; color: #c0c0c0; margin-top: 40px; }
 
-@media (max-width: 568px) {
-  footer .one-third p {
-    margin-bottom: 0; }
-  footer .two-thirds p {
-    margin-top: -20px; } }
+footer a { color: #fff; }
+
+footer a:hover img { opacity: 1; }
+
+footer .align-right p { display: inline-block; }
+
+footer img { display: inline-block; position: relative; top: 8px; margin-left: 5px; opacity: .8; padding: 1px; -webkit-transition: opacity 0.2s; -moz-transition: opacity 0.2s; -o-transition: opacity 0.2s; transition: opacity 0.2s; }
+
+@media (max-width: 568px) { footer .one-third p { margin-bottom: 0; } footer .two-thirds p { margin-top: -20px; } }
+
 /* Intro */
-.intro .unit {
-  padding: 10px 0 40px; }
-.intro p {
-  font-size: 1.75em;
-  line-height: 1em;
-  margin: 0; }
+.intro .unit { padding: 10px 0 40px; }
 
-@media (min-width: 569px) {
-  .intro p {
-    font-size: 3.2em; } }
+.intro p { font-size: 1.75em; line-height: 1em; margin: 0; }
+
+@media (min-width: 569px) { .intro p { font-size: 3.2em; } }
+
 /* Quickstart */
-.quickstart {
-  background-color: #3F1F1F;
-  color: #fff;
-  margin: 60px 0;
-  -webkit-box-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.4);
-  -moz-box-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.4);
-  box-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.4); }
-  .quickstart .content {
-    padding: 0; }
-  .quickstart h3 {
-    font-size: 24px;
-    line-height: 24px;
-    margin-top: 20px;
-    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8); }
-  .quickstart .code {
-    font-size: 12px;
-    display: block;
-    margin: 0 0 -30px; }
+.quickstart { background-color: #3F1F1F; color: #fff; margin: 60px 0; -webkit-box-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.4); -moz-box-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.4); box-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.4); }
 
-@media (min-width: 768px) {
-  .quickstart .code {
-    font-size: 18px;
-    margin: -30px 0;
-    float: right; }
-  .quickstart h3 {
-    margin: 50px 0 0;
-    text-align: center; } }
+.quickstart .content { padding: 0; }
+
+.quickstart h3 { font-size: 24px; line-height: 24px; margin-top: 20px; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8); }
+
+.quickstart .code { font-size: 12px; display: block; margin: 0 0 -30px; }
+
+@media (min-width: 768px) { .quickstart .code { font-size: 18px; margin: -30px 0; float: right; } .quickstart h3 { margin: 50px 0 0; text-align: center; } }
+
 /* Code */
-.quickstart .code {
-  display: block;
-  padding: 0;
-  font-family: Menlo, Consolas, "Courier New", Courier, "Liberation Mono", monospace;
-  line-height: 1.3em; }
-  .quickstart .code .title {
-    display: block;
-    text-align: center;
-    margin: 0 20px;
-    padding: 5px 0;
-    -webkit-border-radius: 5px 5px 0 0;
-    -moz-border-radius: 5px 5px 0 0;
-    border-radius: 5px 5px 0 0;
-    -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.5);
-    -moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.5);
-    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.5);
-    font: 400 16px/24px 'Helvetica Neue', Helvetica, Arial, sans-serif;
-    color: #444;
-    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-    background-color: #f7f7f7;
-    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Y3ZjdmNyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjclIiBzdG9wLWNvbG9yPSIjY2ZjZmNmIiBzdG9wLW9wYWNpdHk9IjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2FhYWFhYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(#f7f7f7), color-stop(7%, #cfcfcf), to(#aaaaaa));
-    background-image: -webkit-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%);
-    background-image: -moz-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%);
-    background-image: -o-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%);
-    background-image: linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%);
-    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7f7f7', endColorstr='#aaaaaa',GradientType=0 );
-    border-bottom: 1px solid #111; }
-  .quickstart .code .shell {
-    padding: 20px;
-    text-shadow: none;
-    margin: 0 20px;
-    background-color: #171717;
-    -webkit-border-radius: 0 0 5px 5px;
-    -moz-border-radius: 0 0 5px 5px;
-    border-radius: 0 0 5px 5px;
-    -webkit-box-shadow: 0 5px 30px rgba(0, 0, 0, 0.3);
-    -moz-box-shadow: 0 5px 30px rgba(0, 0, 0, 0.3);
-    box-shadow: 0 5px 30px rgba(0, 0, 0, 0.3); }
-  .quickstart .code .line {
-    display: block;
-    margin: 0;
-    padding: 0; }
-    .quickstart .code .line span {
-      display: inline-block; }
-  .quickstart .code .path {
-    color: #87ceeb;
-    -webkit-user-select: none;
-    /* Chrome all / Safari all */
-    -moz-user-select: none;
-    /* Firefox all */
-    -ms-user-select: none;
-    /* IE 10+ */
-    -o-user-select: none;
-    user-select: none; }
-  .quickstart .code .prompt {
-    color: #cd5c5c;
-    -webkit-user-select: none;
-    /* Chrome all / Safari all */
-    -moz-user-select: none;
-    /* Firefox all */
-    -ms-user-select: none;
-    /* IE 10+ */
-    -o-user-select: none;
-    user-select: none; }
-  .quickstart .code .command {
-    color: #f0e68c; }
-  .quickstart .code .output {
-    color: #888; }
+.quickstart .code { display: block; padding: 0; font-family: Menlo, Consolas, "Courier New", Courier, "Liberation Mono", monospace; line-height: 1.3em; }
 
-@media (min-width: 768px) {
-  .free-hosting img {
-    float: left;
-    margin: -20px -30px -30px -50px;
-    width: 300px;
-    height: 251px; }
-  .free-hosting .pane-content {
-    margin-top: 35px;
-    padding-right: 30px; }
-  .free-hosting p,
-  .free-hosting a {
-    font-size: 18px; }
-  .free-hosting .pane:after {
-    content: " ";
-    float: right;
-    background: url(../img/footer-arrow.png) top left no-repeat;
-    width: 73px;
-    height: 186px;
-    position: absolute;
-    right: 0;
-    bottom: -30px; } }
+.quickstart .code .title { display: block; text-align: center; margin: 0 20px; padding: 5px 0; -webkit-border-radius: 5px 5px 0 0; -moz-border-radius: 5px 5px 0 0; border-radius: 5px 5px 0 0; -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.5); -moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.5); box-shadow: 0 3px 10px rgba(0, 0, 0, 0.5); font: 400 16px/24px 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #444; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); background-color: #f7f7f7; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Y3ZjdmNyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjclIiBzdG9wLWNvbG9yPSIjY2ZjZmNmIiBzdG9wLW9wYWNpdHk9IjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2FhYWFhYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=); background-image: -webkit-gradient(linear, left top, left bottom, from(#f7f7f7), color-stop(7%, #cfcfcf), to(#aaaaaa)); background-image: -webkit-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%); background-image: -moz-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%); background-image: -o-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%); background-image: linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7f7f7', endColorstr='#aaaaaa',GradientType=0 ); border-bottom: 1px solid #111; }
+
+.quickstart .code .shell { padding: 20px; text-shadow: none; margin: 0 20px; background-color: #171717; -webkit-border-radius: 0 0 5px 5px; -moz-border-radius: 0 0 5px 5px; border-radius: 0 0 5px 5px; -webkit-box-shadow: 0 5px 30px rgba(0, 0, 0, 0.3); -moz-box-shadow: 0 5px 30px rgba(0, 0, 0, 0.3); box-shadow: 0 5px 30px rgba(0, 0, 0, 0.3); }
+
+.quickstart .code .line { display: block; margin: 0; padding: 0; }
+
+.quickstart .code .line span { display: inline-block; }
+
+.quickstart .code .path { color: #87ceeb; -webkit-user-select: none; /* Chrome all / Safari all */ -moz-user-select: none; /* Firefox all */ -ms-user-select: none; /* IE 10+ */ -o-user-select: none; user-select: none; }
+
+.quickstart .code .prompt { color: #cd5c5c; -webkit-user-select: none; /* Chrome all / Safari all */ -moz-user-select: none; /* Firefox all */ -ms-user-select: none; /* IE 10+ */ -o-user-select: none; user-select: none; }
+
+.quickstart .code .command { color: #f0e68c; }
+
+.quickstart .code .output { color: #888; }
+
+@media (min-width: 768px) { .free-hosting img { float: left; margin: -20px -30px -30px -50px; width: 300px; height: 251px; } .free-hosting .pane-content { margin-top: 35px; padding-right: 30px; } .free-hosting p, .free-hosting a { font-size: 18px; } .free-hosting .pane:after { content: " "; float: right; background: url(../img/footer-arrow.png) top left no-repeat; width: 73px; height: 186px; position: absolute; right: 0; bottom: -30px; } }
+
 /* Article - Used for both docs and news */
-article {
-  background-color: #444;
-  -webkit-border-radius: 10px;
-  -moz-border-radius: 10px;
-  border-radius: 10px;
-  padding: 20px;
-  margin: 0 10px;
-  -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
-  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
-  font-size: 16px; }
+article { background-color: #444; -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px; padding: 20px; margin: 0 10px; -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); font-size: 16px; }
 
-@media (max-width: 480px) {
-  article ul {
-    padding-left: 20px; } }
-@media (max-width: 568px) {
-  article {
-    margin: 0; } }
-@media (min-width: 768px) {
-  article {
-    padding: 40px 40px 30px;
-    font-size: 21px; } }
+@media (max-width: 480px) { article ul { padding-left: 20px; } }
+
+@media (max-width: 568px) { article { margin: 0; } }
+
+@media (min-width: 768px) { article { padding: 40px 40px 30px; font-size: 21px; } }
+
 /* Right-side nav - used by both docs and news */
-aside {
-  padding-top: 30px; }
-  aside h4 {
-    text-transform: uppercase;
-    font-size: 14px;
-    font-weight: 700;
-    padding: 0 0 10px 30px;
-    margin-left: -30px;
-    display: inline-block;
-    border-bottom: 1px solid #ff0; }
-  aside ul {
-    padding-left: 0; }
-    aside ul:first-child {
-      margin-top: 0; }
-  aside li {
-    list-style-type: none; }
-    aside li a {
-      font-size: 16px;
-      position: relative; }
-    aside li.current a:before {
-      content: "";
-      border-color: transparent transparent transparent #444;
-      border-style: solid;
-      border-width: 10px;
-      width: 0;
-      height: 0;
-      position: absolute;
-      top: 0;
-      left: -30px; }
+aside { padding-top: 30px; }
+
+aside h4 { text-transform: uppercase; font-size: 14px; font-weight: 700; padding: 0 0 10px 30px; margin-left: -30px; display: inline-block; border-bottom: 1px solid #ff0; }
+
+aside ul { padding-left: 0; }
+
+aside ul:first-child { margin-top: 0; }
+
+aside li { list-style-type: none; }
+
+aside li a { font-size: 16px; position: relative; }
+
+aside li.current a:before { content: ""; border-color: transparent transparent transparent #444; border-style: solid; border-width: 10px; width: 0; height: 0; position: absolute; top: 0; left: -30px; }
 
 /* Documentation */
-.docs article {
-  min-height: 800px; }
-.docs .content {
-  padding: 0; }
+.docs article { min-height: 800px; }
 
-.section-nav {
-  text-align: center;
-  padding-top: 40px;
-  position: relative;
-  background: url(../img/article-footer.png) top center no-repeat;
-  margin: 40px -20px 10px; }
-  .section-nav > div {
-    width: 49.5%; }
-  .section-nav a,
-  .section-nav span {
-    color: #fff;
-    font-size: 16px;
-    text-transform: uppercase;
-    font-weight: 700;
-    padding: 8px 12px 10px;
-    -webkit-border-radius: 5px;
-    -moz-border-radius: 5px;
-    border-radius: 5px;
-    /*border: 1px solid #333;*/
-    -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.5);
-    -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.5);
-    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.5);
-    background-color: #767676; }
-  .section-nav a:hover {
-    color: #fff;
-    background-color: #888; }
-  .section-nav .next,
-  .section-nav .prev {
-    position: relative; }
-  .section-nav .next:after,
-  .section-nav .prev:before {
-    font-size: 36px;
-    color: #222;
-    font-weight: 900;
-    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
-    position: absolute;
-    top: -7px; }
-  .section-nav .next:after {
-    content: '\203A';
-    right: 10px; }
-  .section-nav .prev:before {
-    content: '\2039';
-    left: 10px; }
-  .section-nav .prev,
-  .section-nav .prev:hover {
-    padding-left: 30px; }
-  .section-nav .next,
-  .section-nav .next:hover {
-    padding-right: 30px; }
-  .section-nav .disabled {
-    opacity: .5;
-    cursor: default; }
+.docs .content { padding: 0; }
 
-.improve {
-  padding-top: 25px;
-  font-size: 16px; }
-  .improve a {
-    color: #999; }
+.section-nav { text-align: center; padding-top: 40px; position: relative; background: url(../img/article-footer.png) top center no-repeat; margin: 40px -20px 10px; }
 
-.docs-nav-mobile select {
-  color: #000;
-  width: 100%; }
+.section-nav > div { width: 49.5%; }
+
+.section-nav a, .section-nav span { color: #fff; font-size: 16px; text-transform: uppercase; font-weight: 700; padding: 8px 12px 10px; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; /*border: 1px solid #333;*/ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.5); -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.5); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.5); background-color: #767676; }
+
+.section-nav a:hover { color: #fff; background-color: #888; }
+
+.section-nav .next, .section-nav .prev { position: relative; }
+
+.section-nav .next:after, .section-nav .prev:before { font-size: 36px; color: #222; font-weight: 900; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4); position: absolute; top: -7px; }
+
+.section-nav .next:after { content: '\203A'; right: 10px; }
+
+.section-nav .prev:before { content: '\2039'; left: 10px; }
+
+.section-nav .prev, .section-nav .prev:hover { padding-left: 30px; }
+
+.section-nav .next, .section-nav .next:hover { padding-right: 30px; }
+
+.section-nav .disabled { opacity: .5; cursor: default; }
+
+.improve { padding-top: 25px; font-size: 16px; }
+
+.improve a { color: #999; }
+
+.docs-nav-mobile select { color: #000; width: 100%; }
 
 /* News */
-article h2:first-child {
-  margin-top: 0; }
+article h2:first-child { margin-top: 0; }
 
-.post-category,
-.post-meta {
-  display: inline-block;
-  vertical-align: middle;
-  font-size: .8em; }
+.post-category, .post-meta { display: inline-block; vertical-align: middle; font-size: .8em; }
 
-.post-category {
-  display: inline-block;
-  margin-left: -30px;
-  padding: 6px 10px 8px;
-  padding-left: 50px;
-  -webkit-border-radius: 0 5px 5px 0;
-  -moz-border-radius: 0 5px 5px 0;
-  border-radius: 0 5px 5px 0;
-  position: relative;
-  -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3);
-  -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3);
-  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3);
-  background-color: #9e2812;
-  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzllMjgxMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM2ZjBkMGQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(#9e2812), to(#6f0d0d));
-  background-image: -webkit-linear-gradient(top, #9e2812 0%, #6f0d0d 100%);
-  background-image: -moz-linear-gradient(top, #9e2812 0%, #6f0d0d 100%);
-  background-image: -o-linear-gradient(top, #9e2812 0%, #6f0d0d 100%);
-  background-image: linear-gradient(to bottom, #9e2812 0%, #6f0d0d 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9e2812', endColorstr='#6f0d0d',GradientType=0 ); }
-  .post-category:before {
-    content: "";
-    position: absolute;
-    top: -10px;
-    left: 0;
-    border-color: transparent #6f0d0d #6f0d0d transparent;
-    border-style: solid;
-    border-width: 5px;
-    width: 0;
-    height: 0; }
+.post-category { display: inline-block; margin-left: -30px; padding: 6px 10px 8px; padding-left: 50px; -webkit-border-radius: 0 5px 5px 0; -moz-border-radius: 0 5px 5px 0; border-radius: 0 5px 5px 0; position: relative; -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3); -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3); background-color: #9e2812; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzllMjgxMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM2ZjBkMGQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); background-image: -webkit-gradient(linear, left top, left bottom, from(#9e2812), to(#6f0d0d)); background-image: -webkit-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); background-image: -moz-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); background-image: -o-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); background-image: linear-gradient(to bottom, #9e2812 0%, #6f0d0d 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9e2812', endColorstr='#6f0d0d',GradientType=0 ); }
 
-.post-content img {
-  max-width: 100%; }
+.post-category:before { content: ""; position: absolute; top: -10px; left: 0; border-color: transparent #6f0d0d #6f0d0d transparent; border-style: solid; border-width: 5px; width: 0; height: 0; }
 
-.label {
-  float: left;
-  text-transform: uppercase;
-  font-weight: 700;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5); }
+.post-content img { max-width: 100%; }
 
-@media (max-width: 568px) {
-  .post-category {
-    padding-left: 30px; } }
-@media (min-width: 768px) {
-  .post-category {
-    margin-left: -50px; } }
-.avatar {
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-  display: inline-block;
-  vertical-align: middle; }
+.label { float: left; text-transform: uppercase; font-weight: 700; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5); }
 
-.post-meta {
-  padding: 5px 0;
-  color: #c0c0c0;
-  font-weight: 600;
-  text-shadow: 0 -1px 0 #000; }
+@media (max-width: 568px) { .post-category { padding-left: 30px; } }
 
-.post-date,
-.post-author {
-  margin-left: 10px; }
+@media (min-width: 768px) { .post-category { margin-left: -50px; } }
 
-.news article + article {
-  margin-top: -10px;
-  -webkit-border-radius: 0 0 10px 10px;
-  -moz-border-radius: 0 0 10px 10px;
-  border-radius: 0 0 10px 10px;
-  border-top: 1px solid #555;
-  -webkit-box-shadow: 0 -1px 0 #2f2f2f;
-  -moz-box-shadow: 0 -1px 0 #2f2f2f;
-  box-shadow: 0 -1px 0 #2f2f2f; }
+.avatar { -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; display: inline-block; vertical-align: middle; }
+
+.post-meta { padding: 5px 0; color: #c0c0c0; font-weight: 600; text-shadow: 0 -1px 0 #000; }
+
+.post-date, .post-author { margin-left: 10px; }
+
+.news article + article { margin-top: -10px; -webkit-border-radius: 0 0 10px 10px; -moz-border-radius: 0 0 10px 10px; border-radius: 0 0 10px 10px; border-top: 1px solid #555; -webkit-box-shadow: 0 -1px 0 #2f2f2f; -moz-box-shadow: 0 -1px 0 #2f2f2f; box-shadow: 0 -1px 0 #2f2f2f; }
 
 /* Code Highlighting */
-pre,
-code {
-  white-space: pre;
-  display: inline-block;
-  margin: 0;
-  font: 14px/1.8em Menlo, Consolas, "Courier New", Courier, "Liberation Mono", monospace;
-  padding: 0 0.5em; }
+pre, code { white-space: pre; display: inline-block; margin: 0; font: 14px/1.8em Menlo, Consolas, "Courier New", Courier, "Liberation Mono", monospace; padding: 0 0.5em; }
 
-@media (min-width: 768px) {
-  pre, code {
-    font-size: 16px; } }
-.highlight,
-p > pre,
-p > code,
-p > nobr > code,
-li > code,
-h5 > code,
-.note > code {
-  background-color: #2b2b2b;
-  color: #fff;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  -webkit-box-shadow: inset 0 1px 10px rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.1), 0 -1px 0 rgba(0, 0, 0, 0.5);
-  -moz-box-shadow: inset 0 1px 10px rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.1), 0 -1px 0 rgba(0, 0, 0, 0.5);
-  box-shadow: inset 0 1px 10px rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.1), 0 -1px 0 rgba(0, 0, 0, 0.5); }
+@media (min-width: 768px) { pre, code { font-size: 16px; } }
 
-.note code {
-  background-color: #333;
-  background-color: rgba(0, 0, 0, 0.2);
-  margin-left: 2.5px;
-  margin-right: 2.5px;
-  font-size: 0.8em; }
+.highlight, p > pre, p > code, p > nobr > code, li > code, h5 > code, .note > code { background-color: #2b2b2b; color: #fff; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; -webkit-box-shadow: inset 0 1px 10px rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.1), 0 -1px 0 rgba(0, 0, 0, 0.5); -moz-box-shadow: inset 0 1px 10px rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.1), 0 -1px 0 rgba(0, 0, 0, 0.5); box-shadow: inset 0 1px 10px rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.1), 0 -1px 0 rgba(0, 0, 0, 0.5); }
 
-.highlight {
-  margin: 1em 0;
-  padding: 10px 0;
-  width: 100%;
-  overflow: auto; }
+.note code { background-color: #333; background-color: rgba(0, 0, 0, 0.2); margin-left: 2.5px; margin-right: 2.5px; font-size: 0.8em; }
+
+.highlight { margin: 1em 0; padding: 10px 0; width: 100%; overflow: auto; }
 
 /* HTML Elements */
-h1, h2, h3, h4, h5, h6 {
-  margin: 0; }
+h1, h2, h3, h4, h5, h6 { margin: 0; }
 
-a {
-  color: #33adff;
-  text-decoration: none;
-  -webkit-transition: all 0.25s;
-  -moz-transition: all 0.25s;
-  -o-transition: all 0.25s;
-  transition: all 0.25s; }
-  a:hover {
-    color: #33adff; }
+a { color: #33adff; text-decoration: none; -webkit-transition: all 0.25s; -moz-transition: all 0.25s; -o-transition: all 0.25s; transition: all 0.25s; }
 
-strong {
-  font-weight: 700; }
+a:hover { color: #33adff; }
 
-p {
-  line-height: 1.5em; }
+strong { font-weight: 700; }
 
-.left {
-  float: left; }
+p { line-height: 1.5em; }
 
-.right {
-  float: right; }
+.left { float: left; }
 
-.align-right {
-  text-align: right; }
+.right { float: right; }
 
-.align-left {
-  text-align: left; }
+.align-right { text-align: right; }
 
-.align-center {
-  text-align: center; }
+.align-left { text-align: left; }
+
+.align-center { text-align: center; }
 
 /* Article HTML */
-article h2, article h3, article h4, article h5, article h6 {
-  margin: 1em 0; }
-article h4 {
-  color: #fff; }
-article ul li p {
-  margin: 0; }
-article ul li blockquote {
-  margin: 10px 0; }
-article ul li,
-article ol li {
-  line-height: 1.5em;
-  margin-bottom: 0.5em; }
+article h2, article h3, article h4, article h5, article h6 { margin: 1em 0; }
 
-h5, h6 {
-  font-size: 1em;
-  font-style: italic; }
+article h4 { color: #fff; }
 
-blockquote {
-  border-left: 2px solid #777;
-  padding-left: 20px;
-  font-style: italic;
-  font-size: 18px;
-  font-weight: 500; }
+article ul li p { margin: 0; }
+
+article ul li blockquote { margin: 10px 0; }
+
+article ul li, article ol li { line-height: 1.5em; margin-bottom: 0.5em; }
+
+h5, h6 { font-size: 1em; font-style: italic; }
+
+blockquote { border-left: 2px solid #777; padding-left: 20px; font-style: italic; font-size: 18px; font-weight: 500; }
 
 /* Tables */
-table {
-  /* Allow code inside tables to wrap when there is no space */
-  width: 100%;
-  background-color: #555;
-  margin: .5em 0;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
-  -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
-  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); }
-  table pre,
-  table code {
-    white-space: pre-wrap; }
+table { /* Allow code inside tables to wrap when there is no space */ width: 100%; background-color: #555; margin: .5em 0; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); }
+
+table pre, table code { white-space: pre-wrap; }
 
 /* The CSS class is added via _plugins/wrap_table.rb plugin to enable horizontal scrolling */
-.scroll-table-style {
-  overflow-x: auto; }
+.scroll-table-style { overflow-x: auto; }
 
-thead {
-  -webkit-border-top-left-radius: 5px;
-  -moz-border-radius-topleft: 5px;
-  border-top-left-radius: 5px;
-  -webkit-border-top-right-radius: 5px;
-  -moz-border-radius-topright: 5px;
-  border-top-right-radius: 5px;
-  color: #fff;
-  background-color: #3a3a3a;
-  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzNhM2EzYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMxZTFlMWUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(#3a3a3a), to(#1e1e1e));
-  background-image: -webkit-linear-gradient(top, #3a3a3a 0%, #1e1e1e 100%);
-  background-image: -moz-linear-gradient(top, #3a3a3a 0%, #1e1e1e 100%);
-  background-image: -o-linear-gradient(top, #3a3a3a 0%, #1e1e1e 100%);
-  background-image: linear-gradient(to bottom, #3a3a3a 0%, #1e1e1e 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3a3a3a', endColorstr='#1e1e1e',GradientType=0 ); }
-  thead th {
-    position: relative;
-    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
-    -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
-    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); }
-    thead th:first-child {
-      -webkit-border-top-left-radius: 5px;
-      -moz-border-radius-topleft: 5px;
-      border-top-left-radius: 5px; }
-    thead th:last-child {
-      -webkit-border-top-right-radius: 5px;
-      -moz-border-radius-topright: 5px;
-      border-top-right-radius: 5px; }
+thead { -webkit-border-top-left-radius: 5px; -moz-border-radius-topleft: 5px; border-top-left-radius: 5px; -webkit-border-top-right-radius: 5px; -moz-border-radius-topright: 5px; border-top-right-radius: 5px; color: #fff; background-color: #3a3a3a; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzNhM2EzYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMxZTFlMWUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); background-image: -webkit-gradient(linear, left top, left bottom, from(#3a3a3a), to(#1e1e1e)); background-image: -webkit-linear-gradient(top, #3a3a3a 0%, #1e1e1e 100%); background-image: -moz-linear-gradient(top, #3a3a3a 0%, #1e1e1e 100%); background-image: -o-linear-gradient(top, #3a3a3a 0%, #1e1e1e 100%); background-image: linear-gradient(to bottom, #3a3a3a 0%, #1e1e1e 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3a3a3a', endColorstr='#1e1e1e',GradientType=0 ); }
 
-td {
-  padding: .5em .75em; }
+thead th { position: relative; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); }
 
-td p {
-  margin: 0; }
+thead th:first-child { -webkit-border-top-left-radius: 5px; -moz-border-radius-topleft: 5px; border-top-left-radius: 5px; }
 
-th {
-  text-transform: uppercase;
-  font-size: 16px;
-  padding: .5em .75em;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.9);
-  color: #888; }
+thead th:last-child { -webkit-border-top-right-radius: 5px; -moz-border-radius-topright: 5px; border-top-right-radius: 5px; }
 
-tbody td {
-  border-top: 1px solid #747474;
-  border-top: 1px solid rgba(0, 0, 0, 0.1);
-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
-  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
-  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
-  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0)));
-  background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%);
-  background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%);
-  background-image: -o-linear-gradient(top, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%);
-  background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1affffff', endColorstr='#00ffffff',GradientType=0 ); }
-  tbody td p {
-    font-size: 16px; }
-    tbody td p code {
-      font-size: 14px; }
+td { padding: .5em .75em; }
 
-code.option,
-th .option,
-code.filter,
-th .filter {
-  color: #50B600; }
+td p { margin: 0; }
 
-code.flag,
-th .flag,
-code.output,
-th .output {
-  color: #049DCE; }
+th { text-transform: uppercase; font-size: 16px; padding: .5em .75em; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.9); color: #888; }
 
-code.option,
-code.flag,
-code.filter,
-code.output {
-  margin-bottom: 2px; }
+tbody td { border-top: 1px solid #747474; border-top: 1px solid rgba(0, 0, 0, 0.1); -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=); background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0))); background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%); background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%); background-image: -o-linear-gradient(top, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%); background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1affffff', endColorstr='#00ffffff',GradientType=0 ); }
+
+tbody td p { font-size: 16px; }
+
+tbody td p code { font-size: 14px; }
+
+code.option, th .option, code.filter, th .filter { color: #50B600; }
+
+code.flag, th .flag, code.output, th .output { color: #049DCE; }
+
+code.option, code.flag, code.filter, code.output { margin-bottom: 2px; }
 
 /* Note types */
-.note {
-  margin: 30px 0;
-  margin-left: -30px;
-  padding: 20px 20px 24px;
-  padding-left: 50px;
-  -webkit-border-radius: 0 5px 5px 0;
-  -moz-border-radius: 0 5px 5px 0;
-  border-radius: 0 5px 5px 0;
-  position: relative;
-  -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3);
-  -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3);
-  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3);
-  background-color: #7e6d42;
-  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdlNmQ0MiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM1YzRlMzUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(#7e6d42), to(#5c4e35));
-  background-image: -webkit-linear-gradient(top, #7e6d42 0%, #5c4e35 100%);
-  background-image: -moz-linear-gradient(top, #7e6d42 0%, #5c4e35 100%);
-  background-image: -o-linear-gradient(top, #7e6d42 0%, #5c4e35 100%);
-  background-image: linear-gradient(to bottom, #7e6d42 0%, #5c4e35 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7e6d42', endColorstr='#5c4e35',GradientType=0 ); }
+.note { margin: 30px 0; margin-left: -30px; padding: 20px 20px 24px; padding-left: 50px; -webkit-border-radius: 0 5px 5px 0; -moz-border-radius: 0 5px 5px 0; border-radius: 0 5px 5px 0; position: relative; -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3); -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3); background-color: #7e6d42; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdlNmQ0MiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM1YzRlMzUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); background-image: -webkit-gradient(linear, left top, left bottom, from(#7e6d42), to(#5c4e35)); background-image: -webkit-linear-gradient(top, #7e6d42 0%, #5c4e35 100%); background-image: -moz-linear-gradient(top, #7e6d42 0%, #5c4e35 100%); background-image: -o-linear-gradient(top, #7e6d42 0%, #5c4e35 100%); background-image: linear-gradient(to bottom, #7e6d42 0%, #5c4e35 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7e6d42', endColorstr='#5c4e35',GradientType=0 ); }
 
-@media (max-width: 568px) {
-  .note {
-    margin-right: -30px; } }
-@media (min-width: 768px) {
-  .note {
-    margin-left: -50px; } }
-.configtable {
-  font-size: 14px; }
+@media (max-width: 568px) { .note { margin-right: -30px; } }
 
-.note:before {
-  content: "";
-  position: absolute;
-  top: -10px;
-  left: 0;
-  border-color: transparent #222 #222 transparent;
-  border-style: solid;
-  border-width: 5px;
-  width: 0;
-  height: 0; }
-.note h5,
-.note p {
-  margin: 0;
-  color: #fff; }
-.note h5 {
-  line-height: 1.5em;
-  font-weight: 900;
-  font-style: normal; }
-.note p {
-  font-weight: 400;
-  font-size: .75em; }
-.note:after {
-  content: '\2605';
-  color: #33adff;
-  position: absolute;
-  top: 14px;
-  left: 14px;
-  font-size: 28px;
-  font-weight: 700;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5); }
+@media (min-width: 768px) { .note { margin-left: -50px; } }
 
-.info {
-  background-color: #0389aa;
-  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAzODlhYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDYxN2YiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(#0389aa), to(#00617f));
-  background-image: -webkit-linear-gradient(top, #0389aa 0%, #00617f 100%);
-  background-image: -moz-linear-gradient(top, #0389aa 0%, #00617f 100%);
-  background-image: -o-linear-gradient(top, #0389aa 0%, #00617f 100%);
-  background-image: linear-gradient(to bottom, #0389aa 0%, #00617f 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0389aa', endColorstr='#00617f',GradientType=0 ); }
+.configtable { font-size: 14px; }
 
-.warning {
-  background-color: #9e2812;
-  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzllMjgxMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM2ZjBkMGQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(#9e2812), to(#6f0d0d));
-  background-image: -webkit-linear-gradient(top, #9e2812 0%, #6f0d0d 100%);
-  background-image: -moz-linear-gradient(top, #9e2812 0%, #6f0d0d 100%);
-  background-image: -o-linear-gradient(top, #9e2812 0%, #6f0d0d 100%);
-  background-image: linear-gradient(to bottom, #9e2812 0%, #6f0d0d 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9e2812', endColorstr='#6f0d0d',GradientType=0 ); }
+.note:before { content: ""; position: absolute; top: -10px; left: 0; border-color: transparent #222 #222 transparent; border-style: solid; border-width: 5px; width: 0; height: 0; }
 
-.unreleased {
-  background-color: #cd9239;
-  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2NkOTIzOSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNhMjc1MjgiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-  background-image: -webkit-gradient(linear, left top, left bottom, from(#cd9239), to(#a27528));
-  background-image: -webkit-linear-gradient(top, #cd9239 0%, #a27528 100%);
-  background-image: -moz-linear-gradient(top, #cd9239 0%, #a27528 100%);
-  background-image: -o-linear-gradient(top, #cd9239 0%, #a27528 100%);
-  background-image: linear-gradient(to bottom, #cd9239 0%, #a27528 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cd9239', endColorstr='#a27528',GradientType=0 ); }
+.note h5, .note p { margin: 0; color: #fff; }
 
-.info:before {
-  border-color: transparent #00617f #00617f transparent; }
+.note h5 { line-height: 1.5em; font-weight: 900; font-style: normal; }
 
-.warning:before {
-  border-color: transparent #6f0d0d #6f0d0d transparent; }
+.note p { font-weight: 400; font-size: .75em; }
 
-.unreleased:before {
-  border-color: transparent #664719 #664719 transparent; }
+.note:after { content: '\2605'; color: #33adff; position: absolute; top: 14px; left: 14px; font-size: 28px; font-weight: 700; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5); }
 
-.info:after {
-  content: '\24D8';
-  color: #fff;
-  position: absolute;
-  top: 15px;
-  left: 15px;
-  font-size: 28px;
-  font-weight: 700;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5); }
+.info { background-color: #0389aa; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAzODlhYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDYxN2YiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); background-image: -webkit-gradient(linear, left top, left bottom, from(#0389aa), to(#00617f)); background-image: -webkit-linear-gradient(top, #0389aa 0%, #00617f 100%); background-image: -moz-linear-gradient(top, #0389aa 0%, #00617f 100%); background-image: -o-linear-gradient(top, #0389aa 0%, #00617f 100%); background-image: linear-gradient(to bottom, #0389aa 0%, #00617f 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0389aa', endColorstr='#00617f',GradientType=0 ); }
 
-.warning:after {
-  content: '\203C';
-  color: #33adff;
-  position: absolute;
-  top: 15px;
-  left: 15px;
-  font-size: 32px;
-  font-weight: 700;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5); }
+.warning { background-color: #9e2812; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzllMjgxMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM2ZjBkMGQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); background-image: -webkit-gradient(linear, left top, left bottom, from(#9e2812), to(#6f0d0d)); background-image: -webkit-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); background-image: -moz-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); background-image: -o-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); background-image: linear-gradient(to bottom, #9e2812 0%, #6f0d0d 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9e2812', endColorstr='#6f0d0d',GradientType=0 ); }
 
-.unreleased:after {
-  content: '\2692';
-  color: #2b2a12;
-  position: absolute;
-  top: 8px;
-  left: 15px;
-  font-size: 38px;
-  font-weight: 700;
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); }
+.unreleased { background-color: #cd9239; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2NkOTIzOSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNhMjc1MjgiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); background-image: -webkit-gradient(linear, left top, left bottom, from(#cd9239), to(#a27528)); background-image: -webkit-linear-gradient(top, #cd9239 0%, #a27528 100%); background-image: -moz-linear-gradient(top, #cd9239 0%, #a27528 100%); background-image: -o-linear-gradient(top, #cd9239 0%, #a27528 100%); background-image: linear-gradient(to bottom, #cd9239 0%, #a27528 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cd9239', endColorstr='#a27528',GradientType=0 ); }
+
+.info:before { border-color: transparent #00617f #00617f transparent; }
+
+.warning:before { border-color: transparent #6f0d0d #6f0d0d transparent; }
+
+.unreleased:before { border-color: transparent #664719 #664719 transparent; }
+
+.info:after { content: '\24D8'; color: #fff; position: absolute; top: 15px; left: 15px; font-size: 28px; font-weight: 700; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5); }
+
+.warning:after { content: '\203C'; color: #33adff; position: absolute; top: 15px; left: 15px; font-size: 32px; font-weight: 700; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5); }
+
+.unreleased:after { content: '\2692'; color: #2b2a12; position: absolute; top: 8px; left: 15px; font-size: 38px; font-weight: 700; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); }
 
 /* Responsive tables */
-@media (max-width: 768px) {
-  .mobile-side-scroller {
-    overflow-x: scroll;
-    margin: 0 -40px;
-    padding: 0 10px; } }
-.show-on-mobiles {
-  display: none; }
+@media (max-width: 768px) { .mobile-side-scroller { overflow-x: scroll; margin: 0 -40px; padding: 0 10px; } }
 
-@media screen and (max-width: 568px) {
-  .show-on-mobiles {
-    display: block !important; }
+.show-on-mobiles { display: none; }
 
-  a .show-on-mobiles {
-    display: inline !important; } }
-/* Helper class taken from Bootstrap.
-   Hides an element to all devices except screen readers.
-*/
-.sr-only {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  padding: 0;
-  margin: -1px;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0; }
+@media screen and (max-width: 568px) { .show-on-mobiles { display: block !important; } a .show-on-mobiles { display: inline !important; } }
 
-#poweredby {
-  float: right;
-  text-align: right;
-  width: 200px;
-  height: 87px; }
+/* Helper class taken from Bootstrap. Hides an element to all devices except screen readers. */
+.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }
 
-#resources {
-  background-color: #000; }
+#poweredby { float: right; text-align: right; width: 200px; height: 87px; }
+
+#resources { background-color: #000; }
+
+/*# sourceMappingURL=screen.css.map */
\ No newline at end of file
diff --git a/css/screen.css.map b/css/screen.css.map
new file mode 100644
index 0000000..220c398
--- /dev/null
+++ b/css/screen.css.map
@@ -0,0 +1,24 @@
+{
+	"version": 3,
+	"file": "screen.css",
+	"sources": [
+		"screen.scss",
+		"_sass/_mixins.scss",
+		"_sass/_normalize.scss",
+		"_sass/_gridism.scss",
+		"_sass/_pygments.scss",
+		"_sass/_font-awesome.scss",
+		"_sass/_style.scss"
+	],
+	"sourcesContent": [
+		"@import \"mixins\";\n@import \"normalize\";\n@import \"gridism\";\n@import \"pygments\";\n@import \"font-awesome\";\n@import \"style\";\n",
+		"@mixin box-shadow($shadow...) {\n  -webkit-box-shadow: $shadow;\n     -moz-box-shadow: $shadow;\n          box-shadow: $shadow;\n}\n\n@mixin border-radius($radius...) {\n  -webkit-border-radius: $radius;\n     -moz-border-radius: $radius;\n          border-radius: $radius;\n}\n\n@mixin border-top-left-radius($radius...) {\n  -webkit-border-top-left-radius: $radius;\n     -moz-border-radius-topleft:  $radius;\n          border-top-left-radius: $radius;\n}\n\n@mixin border-top-right-radius($radius...) {\n  -webkit-border-top-right-radius: $radius;\n     -moz-border-radius-topright:  $radius;\n          border-top-right-radius: $radius;\n}\n\n@mixin transition($transition...) {\n  -webkit-transition: $transition;\n     -moz-transition: $transition;\n       -o-transition: $transition;\n          transition: $transition;\n}\n\n@mixin user-select($select...) {\n  -webkit-user-select: $select;    /* Chrome all / Safari all */\n     -moz-user-select: $select;    /* Firefox all */\n      -ms-user-select: $select;    /* IE 10+ */\n       -o-user-select: $select;\n          user-select: $select;\n}\n",
+		"/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}",
+		"/*\n * Gridism\n * A simple, responsive, and handy CSS grid by @cobyism\n * https://github.com/cobyism/gridism\n */\n\n/* Preserve some sanity */\n.grid,\n.unit {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n/* Set up some rules to govern the grid */\n.grid {\n  display: block;\n  clear: both;\n}\n.grid .unit {\n  float: left;\n  width: 100%;\n  padding: 10px;\n}\n\n/* This ensures the outer gutters are equal to the (doubled) inner gutters. */\n.grid .unit:first-child { padding-left: 20px; }\n.grid .unit:last-child { padding-right: 20px; }\n\n/* Nested grids already have padding though, so let’s nuke it */\n.unit .unit:first-child { padding-left: 0; }\n.unit .unit:last-child { padding-right: 0; }\n.unit .grid:first-child > .unit { padding-top: 0; }\n.unit .grid:last-child > .unit { padding-bottom: 0; }\n\n/* Let people nuke the gutters/padding completely in a couple of ways */\n.no-gutters .unit,\n.unit.no-gutters {\n  padding: 0 !important;\n}\n\n/* Wrapping at a maximum width is optional */\n.wrap .grid,\n.grid.wrap {\n  max-width: 978px;\n  margin: 0 auto;\n}\n\n/* Width classes also have shorthand versions numbered as fractions\n * For example: for a grid unit 1/3 (one third) of the parent width,\n * simply apply class=\"w-1-3\" to the element. */\n.grid .whole,          .grid .w-1-1 { width: 100%; }\n.grid .half,           .grid .w-1-2 { width: 50%; }\n.grid .one-third,      .grid .w-1-3 { width: 33.3332%; }\n.grid .two-thirds,     .grid .w-2-3 { width: 66.6665%; }\n.grid .one-quarter,\n.grid .one-fourth,     .grid .w-1-4 { width: 25%; }\n.grid .three-quarters,\n.grid .three-fourths,  .grid .w-3-4 { width: 75%; }\n.grid .one-fifth,      .grid .w-1-5 { width: 20%; }\n.grid .two-fifths,     .grid .w-2-5 { width: 40%; }\n.grid .three-fifths,   .grid .w-3-5 { width: 60%; }\n.grid .four-fifths,    .grid .w-4-5 { width: 80%; }\n.grid .golden-small,   .grid .w-g-s { width: 38.2716%; } /* Golden section: smaller piece */\n.grid .golden-large,   .grid .w-g-l { width: 61.7283%; } /* Golden section: larger piece */\n\n/* Clearfix after every .grid */\n.grid {\n  *zoom: 1;\n}\n.grid:before, .grid:after {\n  display: table;\n  content: \"\";\n  line-height: 0;\n}\n.grid:after {\n  clear: both;\n}\n\n/* Utility classes */\n.align-center { text-align: center; }\n.align-left   { text-align: left; }\n.align-right  { text-align: right; }\n.pull-left    { float: left; }\n.pull-right   { float: right; }\n\n/* A property for a better rendering of images in units: in\n   this way bigger pictures are just resized if the unit\n   becomes smaller */\n.unit img {\n  max-width: 100%;\n}\n\n/* Responsive Stuff */\n@media screen and (max-width: 568px) {\n  /* Stack anything that isn’t full-width on smaller screens\n     and doesn't provide the no-stacking-on-mobiles class */\n  .grid:not(.no-stacking-on-mobiles) > .unit {\n    width: 100% !important;\n    padding-left: 20px;\n    padding-right: 20px;\n  }\n  .unit .grid .unit {\n    padding-left: 0px;\n    padding-right: 0px;\n  }\n\n  /* Sometimes, you just want to be different on small screens */\n  .center-on-mobiles {\n    text-align: center !important;\n  }\n  .hide-on-mobiles {\n    display: none !important;\n  }\n}\n\n/* Expand the wrap a bit further on larger screens */\n@media screen and (min-width: 1180px) {\n  .wider .grid,\n  .grid.wider {\n    max-width: 1180px;\n    margin: 0 auto;\n  }\n}\n",
+		".highlight {\n  .hll { background-color: #ffffcc }\n  .c { color: #87ceeb} /* Comment */\n  .err { color: #ffffff} /* Error */\n  .g { color: #ffffff} /* Generic */\n  .k { color: #f0e68c} /* Keyword */\n  .l { color: #ffffff} /* Literal */\n  .n { color: #ffffff} /* Name */\n  .o { color: #ffffff} /* Operator */\n  .x { color: #ffffff} /* Other */\n  .p { color: #ffffff} /* Punctuation */\n  .cm { color: #87ceeb} /* Comment.Multiline */\n  .cp { color: #cd5c5c} /* Comment.Preproc */\n  .c1 { color: #87ceeb} /* Comment.Single */\n  .cs { color: #87ceeb} /* Comment.Special */\n  .gd { color: #0000c0; font-weight: bold; background-color: #008080 } /* Generic.Deleted */\n  .ge { color: #c000c0; text-decoration: underline} /* Generic.Emph */\n  .gr { color: #c0c0c0; font-weight: bold; background-color: #c00000 } /* Generic.Error */\n  .gh { color: #cd5c5c} /* Generic.Heading */\n  .gi { color: #ffffff; background-color: #0000c0 } /* Generic.Inserted */\n  span.go { color: #add8e6; font-weight: bold; background-color: #4d4d4d } /* Generic.Output, qualified with span to prevent applying this style to the Go language, see #1153. */\n  .gp { color: #ffffff} /* Generic.Prompt */\n  .gs { color: #ffffff} /* Generic.Strong */\n  .gu { color: #cd5c5c} /* Generic.Subheading */\n  .gt { color: #c0c0c0; font-weight: bold; background-color: #c00000 } /* Generic.Traceback */\n  .kc { color: #f0e68c} /* Keyword.Constant */\n  .kd { color: #f0e68c} /* Keyword.Declaration */\n  .kn { color: #f0e68c} /* Keyword.Namespace */\n  .kp { color: #f0e68c} /* Keyword.Pseudo */\n  .kr { color: #f0e68c} /* Keyword.Reserved */\n  .kt { color: #bdb76b} /* Keyword.Type */\n  .ld { color: #ffffff} /* Literal.Date */\n  .m { color: #ffffff} /* Literal.Number */\n  .s { color: #ffffff} /* Literal.String */\n  .na { color: #ffffff} /* Name.Attribute */\n  .nb { color: #ffffff} /* Name.Builtin */\n  .nc { color: #ffffff} /* Name.Class */\n  .no { color: #ffa0a0} /* Name.Constant */\n  .nd { color: #ffffff} /* Name.Decorator */\n  .ni { color: #ffdead} /* Name.Entity */\n  .ne { color: #ffffff} /* Name.Exception */\n  .nf { color: #ffffff} /* Name.Function */\n  .nl { color: #ffffff} /* Name.Label */\n  .nn { color: #ffffff} /* Name.Namespace */\n  .nx { color: #ffffff} /* Name.Other */\n  .py { color: #ffffff} /* Name.Property */\n  .nt { color: #f0e68c} /* Name.Tag */\n  .nv { color: #98fb98} /* Name.Variable */\n  .ow { color: #ffffff} /* Operator.Word */\n  .w { color: #ffffff} /* Text.Whitespace */\n  .mf { color: #ffffff} /* Literal.Number.Float */\n  .mh { color: #ffffff} /* Literal.Number.Hex */\n  .mi { color: #ffffff} /* Literal.Number.Integer */\n  .mo { color: #ffffff} /* Literal.Number.Oct */\n  .sb { color: #ffffff} /* Literal.String.Backtick */\n  .sc { color: #ffffff} /* Literal.String.Char */\n  .sd { color: #ffffff} /* Literal.String.Doc */\n  .s2 { color: #ffffff} /* Literal.String.Double */\n  .se { color: #ffffff} /* Literal.String.Escape */\n  .sh { color: #ffffff} /* Literal.String.Heredoc */\n  .si { color: #ffffff} /* Literal.String.Interpol */\n  .sx { color: #ffffff} /* Literal.String.Other */\n  .sr { color: #ffffff} /* Literal.String.Regex */\n  .s1 { color: #ffffff} /* Literal.String.Single */\n  .ss { color: #ffffff} /* Literal.String.Symbol */\n  .bp { color: #ffffff} /* Name.Builtin.Pseudo */\n  .vc { color: #98fb98} /* Name.Variable.Class */\n  .vg { color: #98fb98} /* Name.Variable.Global */\n  .vi { color: #98fb98} /* Name.Variable.Instance */\n  .il { color: #ffffff} /* Literal.Number.Integer.Long */\n  .bash .nv {\n    -webkit-user-select: none;\n       -moz-user-select: none;\n        -ms-user-select: none;\n         -o-user-select: none;\n            user-select: none;\n  }\n}",
+		"/*!\n *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('../fonts/fontawesome-webfont.eot?v=4.2.0');\n  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n",
+		"/* Base */\n\n* {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\nbody {\n  font: 300 21px Lato, 'Helvetica Neue', Helvetica, Arial, sans-serif;\n  color: #ddd;\n  background-color: #333;\n  border-top: 5px solid #33adff;\n  @include box-shadow(inset 0 3px 30px rgba(0,0,0,.3));\n  text-shadow: 0 1px 3px rgba(0,0,0,.5);\n  -webkit-font-feature-settings: \"kern\" 1;\n  -moz-font-feature-settings: \"kern\" 1;\n  -o-font-feature-settings: \"kern\" 1;\n  font-feature-settings: \"kern\" 1;\n  font-kerning: normal;\n}\n\n.clear {\n  display: block;\n}\n\n.clear:after {\n  content: \" \";\n  display: block;\n  height: 0;\n  clear: both;\n  visibility: hidden;\n}\n\n/* Sections */\n\nheader,\nsection,\nfooter {\n  float: left;\n  width: 100%;\n  clear: both;\n}\n\n/* Header */\n\nheader {\n  margin-bottom: 40px;\n  h1,\n  nav { display: inline-block; }\n\n}\n\nnav {\n\n  ul {\n    padding: 0;\n    margin: 0;\n  }\n\n  li { display: inline-block; }\n}\n\n.main-nav {\n  margin-left: 20px;\n  li {\n    margin-right: 10px;\n\n    a {\n      @include border-radius(5px);\n      font-weight: 900;\n      font-size: 14px;\n      padding: 0.5em 1em;\n      text-shadow: none;\n      text-transform: uppercase;\n      @include transition(all .25s);\n\n      &:hover {\n        background-color: #252525;\n        @include box-shadow(inset 0 1px 3px rgba(0,0,0,.5), 0 1px 0 rgba(255,255,255,.1));\n        text-shadow: 0 1px 3px rgba(0,0,0,.5);\n      }\n    }\n\n    &.current {\n\n      a {\n        background-color: #33adff;\n        color: #222;\n        @include box-shadow(inset 0 1px 0 rgba(255,255,255,.5), 0 1px 5px rgba(0,0,0,.5));\n        text-shadow: 0 1px 0 rgba(255,255,255,.3);\n      }\n    }\n  }\n}\n\n.mobile-nav {\n\n  ul {\n    overflow: hidden;\n    width: 100%;\n    display: table;\n  }\n\n  a {\n    float: left;\n    width: 100%;\n    background-color: #333;\n    color: #33adff;\n    text-align: center;\n    text-transform: uppercase;\n    font-size: 14px;\n    font-weight: 900;\n    padding: 5px;\n    @include border-radius(5px);\n  }\n\n  li {\n    display: table-cell;\n    width: 20%;\n    padding: 8px 2px;\n  }\n\n  .current {\n\n    a {\n      background-color: #33adff;\n      color: #222;\n      @include box-shadow(inset 0 1px 0 rgba(255,255,255,.5), 0 1px 5px rgba(0,0,0,.5));\n      text-shadow: 0 1px 0 rgba(255,255,255,.3);\n    }\n  }\n}\n\n/*\n * This code is courtesy Ben Balter, modified by Parker Moore.\n * http://ben.balter.com/2014/03/13/pages-anchor-links/\n */\n.header-link {\n  position: relative;\n  left: 0.5em;\n  opacity: 0;\n  font-size: 0.8em;\n  @include transition(opacity 0.2s ease-in-out 0.1s);\n}\nh2:hover .header-link,\nh3:hover .header-link,\nh4:hover .header-link,\nh5:hover .header-link,\nh6:hover .header-link {\n  opacity: 1;\n}\n\n@media (max-width: 768px) {\n  .main-nav ul {\n    text-align: center;\n  }\n}\n@media (max-width: 830px) {\n  .main-nav {\n    .show-on-mobiles { display: inline; }\n    .hide-on-mobiles { display: none; }\n  }\n}\n\n/* Footer */\n\nfooter {\n  background-color: #212121;\n  font-size: 16px;\n  padding-bottom: 5px;\n  padding-left: 5px;\n  padding-right: 5px;\n  color: #c0c0c0;\n  margin-top: 40px;\n\n  a {\n    color: #fff;\n\n    &:hover {\n\n      img { opacity: 1; }\n    }\n  }\n\n  .align-right {\n\n    p { display: inline-block; }\n  }\n\n  img {\n    display: inline-block;\n    position: relative;\n    top: 8px;\n    margin-left: 5px;\n    opacity: .8;\n    padding: 1px;\n    @include transition(opacity .2s);\n  }\n}\n\n@media (max-width: 568px) {\n  footer {\n    .one-third p { margin-bottom: 0; }\n    .two-thirds p { margin-top: -20px; }\n  }\n}\n\n/* Intro */\n\n.intro {\n\n  .unit { padding: 10px 0 40px; }\n\n  p {\n    font-size: 1.75em;\n    line-height: 1em;\n    margin: 0;\n  }\n}\n\n@media (min-width: 569px) {\n  .intro p { font-size: 3.2em; }\n}\n\n/* Quickstart */\n\n.quickstart {\n  background-color: #3F1F1F;\n  color: #fff;\n  margin: 60px 0;\n  @include box-shadow(inset 0 3px 10px rgba(0,0,0,.4));\n\n  .content { padding: 0; }\n\n  h3 {\n    font-size: 24px;\n    line-height: 24px;\n    margin-top: 20px;\n    text-shadow: 0 1px 3px rgba(0,0,0,.8);\n  }\n\n  .code {\n    font-size: 12px;\n    display: block;\n    margin: 0 0 -30px;\n  }\n}\n\n@media (min-width: 768px) {\n  .quickstart {\n\n    .code {\n      font-size: 18px;\n      margin: -30px 0;\n      float: right;\n    }\n\n    h3 {\n      margin: 50px 0 0;\n      text-align: center;\n    }\n  }\n}\n\n/* Code */\n\n.quickstart {\n\n  .code {\n    display: block;\n    padding: 0;\n    font-family: Menlo, Consolas, \"Courier New\", Courier, \"Liberation Mono\", monospace;\n    line-height: 1.3em;\n\n    .title {\n      display: block;\n      text-align: center;\n      margin: 0 20px;\n      padding: 5px 0;\n      @include border-radius(5px 5px 0 0);\n      @include box-shadow(0 3px 10px rgba(0,0,0,.5));\n      font: 400 16px/24px 'Helvetica Neue', Helvetica, Arial, sans-serif;\n      color: #444;\n      text-shadow: 0 1px 0 rgba(255,255,255,.5);\n      background-color: #f7f7f7;\n      background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Y3ZjdmNyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjclIiBzdG9wLWNvbG9yPSIjY2ZjZmNmIiBzdG9wLW9wYWNpdHk9IjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2FhYWFhYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);\n      background-image: -webkit-gradient(linear, left top, left bottom, from(#f7f7f7), color-stop(7%, #cfcfcf), to(#aaaaaa));\n      background-image: -webkit-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%);\n      background-image: -moz-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%);\n      background-image: -o-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%);\n      background-image: linear-gradient(top, #f7f7f7 0%,#cfcfcf 7%,#aaaaaa 100%);\n      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7f7f7', endColorstr='#aaaaaa',GradientType=0 );\n      border-bottom: 1px solid #111;\n    }\n\n    .shell {\n      padding: 20px;\n      text-shadow: none;\n      margin: 0 20px;\n      background-color: #171717;\n      @include border-radius(0 0 5px 5px);\n      @include box-shadow(0 5px 30px rgba(0,0,0,.3));\n    }\n\n    .line {\n      display: block;\n      margin: 0;\n      padding: 0;\n\n      span { display: inline-block; }\n    }\n\n    .path {\n      color: #87ceeb;\n      @include user-select(none);\n    }\n\n    .prompt {\n      color: #cd5c5c;\n      -webkit-user-select: none;  /* Chrome all / Safari all */\n      -moz-user-select: none;     /* Firefox all */\n      -ms-user-select: none;      /* IE 10+ */\n      -o-user-select: none;\n      user-select: none;\n    }\n\n    .command { color: #f0e68c; }\n\n    .output { color: #888; }\n  }\n}\n\n@media (min-width: 768px) {\n  .free-hosting {\n\n    img {\n      float: left;\n      margin: -20px -30px -30px -50px;\n      width: 300px;\n      height: 251px;\n    }\n\n    .pane-content {\n      margin-top: 35px;\n      padding-right: 30px;\n    }\n\n    p,\n    a { font-size: 18px; }\n\n    .pane:after {\n      content: \" \";\n      float: right;\n      background: url(../img/footer-arrow.png) top left no-repeat;\n      width: 73px;\n      height: 186px;\n      position: absolute;\n      right: 0;\n      bottom: -30px;\n    }\n  }\n}\n\n/* Article - Used for both docs and news */\n\n\narticle {\n  background-color: #444;\n  @include border-radius(10px);\n  padding: 20px;\n  margin: 0 10px;\n  @include box-shadow(0 3px 10px rgba(0,0,0,.1));\n  font-size: 16px;\n}\n\n@media (max-width: 480px) {\n  article ul { padding-left: 20px; }\n}\n\n@media (max-width: 568px) {\n  article { margin: 0; }\n}\n\n@media (min-width: 768px) {\n  article {\n    padding: 40px 40px 30px;\n    font-size: 21px;\n  }\n}\n\n/* Right-side nav - used by both docs and news */\n\naside {\n  padding-top: 30px;\n\n  h4 {\n    text-transform: uppercase;\n    font-size: 14px;\n    font-weight: 700;\n    padding: 0 0 10px 30px;\n    margin-left: -30px;\n    display: inline-block;\n    border-bottom: 1px solid #ff0;\n  }\n\n  ul {\n    padding-left: 0;\n\n    &:first-child { margin-top: 0; }\n  }\n\n  li {\n    list-style-type: none;\n\n    a {\n      font-size: 16px;\n      position: relative\n    }\n\n    &.current a:before {\n      content: \"\";\n      border-color: transparent transparent transparent #444;\n      border-style: solid;\n      border-width: 10px;\n      width: 0;\n      height: 0;\n      position: absolute;\n      top: 0;\n      left: -30px;\n    }\n  }\n}\n\n/* Documentation */\n\n.docs {\n\n  article { min-height: 800px; }\n\n  .content { padding: 0; }\n}\n\n.section-nav {\n  text-align: center;\n  padding-top: 40px;\n  position: relative;\n  background: url(../img/article-footer.png) top center no-repeat;\n  margin: 40px -20px 10px;\n\n  > div { width: 49.5%; }\n\n  a,\n  span {\n    color: #fff;\n    font-size: 16px;\n    text-transform: uppercase;\n    font-weight: 700;\n    padding: 8px 12px 10px;\n    @include border-radius(5px);\n    /*border: 1px solid #333;*/\n    @include box-shadow(0 1px 3px rgba(0,0,0,.3), inset 0 1px 1px rgba(255,255,255,.5));\n    background-color: #767676;\n  }\n\n  a:hover {\n    color: #fff;\n    background-color: #888;\n  }\n\n  .next,\n  .prev { position: relative; }\n\n  .next:after,\n  .prev:before {\n    font-size: 36px;\n    color: #222;\n    font-weight: 900;\n    text-shadow: 0 1px 0 rgba(255,255,255,.4);\n    position: absolute;\n    top: -7px;\n  }\n\n  .next:after {\n    content: '\\203A';\n    right: 10px;\n  }\n\n  .prev:before {\n    content: '\\2039';\n    left: 10px;\n  }\n\n  .prev,\n  .prev:hover { padding-left: 30px; }\n\n  .next,\n  .next:hover { padding-right: 30px; }\n\n  .disabled {\n    opacity: .5;\n    cursor: default;\n  }\n}\n\n.improve {\n  padding-top: 25px;\n  font-size: 16px;\n  a {\n    color: #999;\n  }\n}\n\n.docs-nav-mobile select {\n  color: #000;\n  width: 100%;\n}\n\n/* News */\n\narticle h2:first-child { margin-top: 0; }\n\n.post-category,\n.post-meta {\n  display: inline-block;\n  vertical-align: middle;\n  font-size: .8em;\n}\n\n.post-category {\n  display: inline-block;\n  margin-left: -30px;\n  padding: 6px 10px 8px;\n  padding-left: 50px;\n  @include border-radius(0 5px 5px 0);\n  position: relative;\n  @include box-shadow(0 1px 5px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255,255,255,.2), inset 0 -1px 0 rgba(0,0,0,.3));\n  background-color: #9e2812;\n  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzllMjgxMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM2ZjBkMGQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#9e2812), to(#6f0d0d));\n  background-image: -webkit-linear-gradient(top, #9e2812 0%, #6f0d0d 100%);\n  background-image: -moz-linear-gradient(top, #9e2812 0%, #6f0d0d 100%);\n  background-image: -o-linear-gradient(top, #9e2812 0%, #6f0d0d 100%);\n  background-image: linear-gradient(to bottom, #9e2812 0%,#6f0d0d 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9e2812', endColorstr='#6f0d0d',GradientType=0 );\n\n  &:before {\n    content: \"\";\n    position: absolute;\n    top: -10px;\n    left: 0;\n    border-color: transparent #6f0d0d #6f0d0d transparent;\n    border-style: solid;\n    border-width: 5px;\n    width: 0;\n    height: 0;\n  }\n}\n\n.post-content img { max-width: 100% }\n\n.label {\n  float: left;\n  text-transform: uppercase;\n  font-weight: 700;\n  text-shadow: 0 -1px 0 rgba(0,0,0,.5);\n}\n\n@media (max-width: 568px) {\n  .post-category { padding-left: 30px; }\n}\n\n@media (min-width: 768px) {\n  .post-category { margin-left: -50px; }\n}\n\n.avatar {\n  @include border-radius(3px);\n  display: inline-block;\n  vertical-align: middle;\n}\n\n.post-meta {\n  padding: 5px 0;\n  color: #c0c0c0;\n  font-weight: 600;\n  text-shadow: 0 -1px 0 #000;\n}\n\n.post-date,\n.post-author { margin-left: 10px; }\n\n.news article + article {\n  margin-top: -10px;\n  @include border-radius(0 0 10px 10px);\n  border-top: 1px solid #555;\n  @include box-shadow(0 -1px 0 #2f2f2f);\n}\n\n/* Code Highlighting */\n\n\npre,\ncode {\n  white-space: pre;\n  display: inline-block;\n  margin: 0;\n  font: 14px/1.8em Menlo, Consolas, \"Courier New\", Courier, \"Liberation Mono\", monospace;\n  padding: 0 0.5em;\n}\n\n@media (min-width: 768px) {\n  pre, code { font-size: 16px; }\n}\n\n.highlight,\np > pre,\np > code,\np > nobr > code,\nli > code,\nh5 > code,\n.note > code {\n  background-color: #2b2b2b;\n  color: #fff;\n  @include border-radius(5px);\n  @include box-shadow(inset 0 1px 10px rgba(0,0,0,.3),\n    0 1px 0 rgba(255,255,255,.1),\n    0 -1px 0 rgba(0,0,0,.5));\n}\n\n.note code {\n  background-color: #333;\n  background-color: rgba(0,0,0,0.2);\n  margin-left: 2.5px;\n  margin-right: 2.5px;\n  font-size: 0.8em;\n}\n\n.highlight {\n  margin: 1em 0;\n  padding: 10px 0;\n  width: 100%;\n  overflow: auto;\n}\n\n/* HTML Elements */\n\nh1, h2, h3, h4, h5, h6 { margin: 0; }\n\na {\n  color: #33adff;\n  text-decoration: none;\n  @include transition(all .25s);\n\n  &:hover { color: #33adff; }\n}\n\nstrong { font-weight: 700; }\n\np { line-height: 1.5em; }\n\n.left { float: left; }\n.right { float: right; }\n.align-right { text-align: right; }\n.align-left { text-align: left; }\n.align-center { text-align: center; }\n\n/* Article HTML */\n\narticle {\n\n  h2, h3, h4, h5, h6 { margin: 1em 0; }\n\n  h4 { color: #fff; }\n\n  ul li {\n\n    p { margin: 0; }\n\n    blockquote { margin: 10px 0; }\n  }\n\n  ul li,\n  ol li {\n    line-height: 1.5em;\n    margin-bottom: 0.5em;\n  }\n\n}\n\nh5, h6 {\n  font-size: 1em;\n  font-style: italic;\n}\n\nblockquote {\n  border-left: 2px solid #777;\n  padding-left: 20px;\n  font-style: italic;\n  font-size: 18px;\n  font-weight: 500;\n}\n\n\n/* Tables */\n\ntable {\n  /* Allow code inside tables to wrap when there is no space */\n  pre,\n  code {\n    white-space: pre-wrap;\n  }\n  width: 100%;\n  background-color: #555;\n  margin: .5em 0;\n  @include border-radius(5px);\n  @include box-shadow(0 1px 3px rgba(0,0,0,.3));\n}\n\n/* The CSS class is added via _plugins/wrap_table.rb plugin to enable horizontal scrolling */\n.scroll-table-style {\n  overflow-x: auto;\n}\n\nthead {\n  @include border-top-left-radius(5px);\n  @include border-top-right-radius(5px);\n  color: #fff;\n  background-color: #3a3a3a;\n  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzNhM2EzYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMxZTFlMWUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#3a3a3a), to(#1e1e1e));\n  background-image: -webkit-linear-gradient(top, #3a3a3a 0%, #1e1e1e 100%);\n  background-image: -moz-linear-gradient(top, #3a3a3a 0%, #1e1e1e 100%);\n  background-image: -o-linear-gradient(top, #3a3a3a 0%, #1e1e1e 100%);\n  background-image: linear-gradient(to bottom, #3a3a3a 0%,#1e1e1e 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3a3a3a', endColorstr='#1e1e1e',GradientType=0 );\n\n  th {\n    position: relative;\n    @include box-shadow(inset 0 1px 0 rgba(255,255,255,.1));\n\n    &:first-child {\n      @include border-top-left-radius(5px);\n    }\n\n    &:last-child {\n      @include border-top-right-radius(5px);\n    }\n  }\n}\n\ntd { padding: .5em .75em; }\n\ntd p { margin: 0; }\n\nth {\n  text-transform: uppercase;\n  font-size: 16px;\n  padding: .5em .75em;\n  text-shadow: 0 -1px 0 rgba(0,0,0,.9);\n  color: #888;\n}\n\ntbody td {\n  border-top: 1px solid #747474;\n  border-top: 1px solid rgba(0,0,0,.1);\n  @include box-shadow(inset 0 1px 0 rgba(255,255,255,.1));\n  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,0.1)), to(rgba(255,255,255,0)));\n  background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%);\n  background-image: -moz-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%);\n  background-image: -o-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%);\n  background-image: linear-gradient(to bottom, rgba(255,255,255,0.1) 0%,rgba(255,255,255,0) 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1affffff', endColorstr='#00ffffff',GradientType=0 );\n\n  p {\n    font-size: 16px;\n\n    code { font-size: 14px; }\n  }\n}\n\ncode.option,\nth .option,\ncode.filter,\nth .filter {\n  color: #50B600;\n}\n\ncode.flag,\nth .flag,\ncode.output,\nth .output {\n  color: #049DCE;\n}\n\ncode.option,\ncode.flag,\ncode.filter,\ncode.output {\n  margin-bottom: 2px;\n}\n\n/* Note types */\n\n.note {\n  margin: 30px 0;\n  margin-left: -30px;\n  padding: 20px 20px 24px;\n  padding-left: 50px;\n  @include border-radius(0 5px 5px 0);\n  position: relative;\n  @include box-shadow(0 1px 5px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255,255,255,.2), inset 0 -1px 0 rgba(0,0,0,.3));\n  background-color: #7e6d42;\n  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdlNmQ0MiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM1YzRlMzUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#7e6d42), to(#5c4e35));\n  background-image: -webkit-linear-gradient(top, #7e6d42 0%, #5c4e35 100%);\n  background-image: -moz-linear-gradient(top, #7e6d42 0%, #5c4e35 100%);\n  background-image: -o-linear-gradient(top, #7e6d42 0%, #5c4e35 100%);\n  background-image: linear-gradient(to bottom, #7e6d42 0%,#5c4e35 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7e6d42', endColorstr='#5c4e35',GradientType=0 );\n}\n\n@media (max-width: 568px) {\n  .note { margin-right: -30px; }\n}\n\n@media (min-width: 768px) {\n  .note { margin-left: -50px; }\n}\n\n.configtable {\n    font-size: 14px;\n}\n\n.note {\n  &:before {\n    content: \"\";\n    position: absolute;\n    top: -10px;\n    left: 0;\n    border-color: transparent #222 #222 transparent;\n    border-style: solid;\n    border-width: 5px;\n    width: 0;\n    height: 0;\n  }\n\n  h5,\n  p {\n    margin: 0;\n    color: #fff;\n  }\n\n  h5 {\n    line-height: 1.5em;\n    font-weight: 900;\n    font-style: normal;\n  }\n\n  p {\n    font-weight: 400;\n    font-size: .75em;\n  }\n\n  &:after {\n    content: '\\2605';\n    color: #33adff;\n    position: absolute;\n    top: 14px;\n    left: 14px;\n    font-size: 28px;\n    font-weight: 700;\n    text-shadow: 0 -1px 0 rgba(0,0,0,.5);\n  }\n}\n\n.info {\n  background-color: #0389aa;\n  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAzODlhYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDYxN2YiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#0389aa), to(#00617f));\n  background-image: -webkit-linear-gradient(top, #0389aa 0%, #00617f 100%);\n  background-image: -moz-linear-gradient(top, #0389aa 0%, #00617f 100%);\n  background-image: -o-linear-gradient(top, #0389aa 0%, #00617f 100%);\n  background-image: linear-gradient(to bottom, #0389aa 0%,#00617f 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0389aa', endColorstr='#00617f',GradientType=0 );\n}\n\n.warning {\n  background-color: #9e2812;\n  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzllMjgxMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM2ZjBkMGQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#9e2812), to(#6f0d0d));\n  background-image: -webkit-linear-gradient(top, #9e2812 0%, #6f0d0d 100%);\n  background-image: -moz-linear-gradient(top, #9e2812 0%, #6f0d0d 100%);\n  background-image: -o-linear-gradient(top, #9e2812 0%, #6f0d0d 100%);\n  background-image: linear-gradient(to bottom, #9e2812 0%,#6f0d0d 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9e2812', endColorstr='#6f0d0d',GradientType=0 );\n}\n\n.unreleased {\n  background-color: #cd9239;\n  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2NkOTIzOSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNhMjc1MjgiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(205,146,57,1)), to(rgba(162,117,40,1)));\n  background-image: -webkit-linear-gradient(top, rgba(205,146,57,1) 0%, rgba(162,117,40,1) 100%);\n  background-image: -moz-linear-gradient(top, rgba(205,146,57,1) 0%, rgba(162,117,40,1) 100%);\n  background-image: -o-linear-gradient(top, rgba(205,146,57,1) 0%, rgba(162,117,40,1) 100%);\n  background-image: linear-gradient(to bottom, rgba(205,146,57,1) 0%,rgba(162,117,40,1) 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cd9239', endColorstr='#a27528',GradientType=0 );\n}\n\n.info:before { border-color: transparent #00617f #00617f transparent; }\n\n.warning:before { border-color: transparent #6f0d0d #6f0d0d transparent; }\n\n.unreleased:before { border-color: transparent #664719 #664719 transparent; }\n\n.info:after {\n  content: '\\24D8';\n  color: #fff;\n  position: absolute;\n  top: 15px;\n  left: 15px;\n  font-size: 28px;\n  font-weight: 700;\n  text-shadow: 0 -1px 0 rgba(0,0,0,.5);\n}\n\n.warning:after {\n  content: '\\203C';\n  color: #33adff;\n  position: absolute;\n  top: 15px;\n  left: 15px;\n  font-size: 32px;\n  font-weight: 700;\n  text-shadow: 0 -1px 0 rgba(0,0,0,.5);\n}\n\n.unreleased:after {\n  content: '\\2692';\n  color: #2b2a12;\n  position: absolute;\n  top: 8px;\n  left: 15px;\n  font-size: 38px;\n  font-weight: 700;\n  text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n/* Responsive tables */\n\n@media (max-width: 768px) {\n  .mobile-side-scroller {\n    overflow-x: scroll;\n    margin: 0 -40px;\n    padding: 0 10px;\n  }\n}\n\n\n.show-on-mobiles {\n  display: none;\n}\n\n@media screen and (max-width: 568px) {\n  .show-on-mobiles {\n    display: block !important;\n  }\n  a .show-on-mobiles {\n    display: inline !important;\n  }\n}\n\n\n/* Helper class taken from Bootstrap.\n   Hides an element to all devices except screen readers.\n*/\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n\n#poweredby {\n  float: right;\n  text-align: right;\n  width: 200px;\n  height: 87px;\n}\n\n#resources {\n  background-color: #000;\n}\n"
+	],
+	"names": [],
+	"mappings": ";AEAA,4DAA4D;AAAA,AAAA,IAAI,CAAA,EAAC,WAAW,EAAC,UAAU,EAAC,oBAAoB,EAAC,IAAI,EAAC,wBAAwB,EAAC,IAAI,GAAE;;AAAD,AAAA,IAAI,CAAA,EAAC,MAAM,EAAC,CAAC,GAAE;;AAAD,AAAA,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,UAAU,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,OAAO,EAAC,OAAO,CAAA,EAAC,OAAO,EAAC,KAAK,GAAE;;AAAD,AAAA,KAAK,EAAC,MAAM,EAAC,QAAQ,EAAC,KAAK,CAAA,EAAC,OAAO,EAAC,YAAY,EAAC,cAAc,EAAC,QAAQ,GAAE;;AAAD,AAAA,KAAK,CAAA,GAAK,EAAA,AAAA,QAAC,AAAA,GAAU,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,CAAC,GAAE;;CAAD,AAAA,AAAA,MAAC,AAAA,GAAQ,QAAQ,CAAA,EAAC,OAAO,EAAC,IAAI,GAAE;;AAAD,AAAA,CAAC,CAAA,EAAC,gBAAgB,EAAC,WAAW,GAAE;;AAAD,AAAA,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,KAAK,CAAA,EAAC,OAAO,EAAC,CAAC,GAAE;;AAAD,AAAA,IAAI,CAAA,AAAA,KAAC,AAAA,EAAM,EAAC,aAAa,EAAC,UAAU,GAAE;;AAAD,AAAA,CAAC,EAAC,MAAM,CAAA,EAAC,WAAW,EAAC,GAAG,GAAE;;AAAD,AAAA,GAAG,CAAA,EAAC,UAAU,EAAC,MAAM,GAAE;;AAAD,AAAA,EAAE,CAAA,EAAC,SAAS,EAAC,GAAG,EAAC,MAAM,EAAC,OAAO,GAAE;;AAAD,AAAA,IAAI,CAAA,EAAC,UAAU,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,GAAE;;AAAD,AAAA,KAAK,CAAA,EAAC,SAAS,EAAC,GAAG,GAAE;;AAAD,AAAA,GAAG,EAAC,GAAG,CAAA,EAAC,SAAS,EAAC,GAAG,EAAC,WAAW,EAAC,CAAC,EAAC,QAAQ,EAAC,QAAQ,EAAC,cAAc,EAAC,QAAQ,GAAE;;AAAD,AAAA,GAAG,CAAA,EAAC,GAAG,EAAC,KAAK,GAAE;;AAAD,AAAA,GAAG,CAAA,EAAC,MAAM,EAAC,MAAM,GAAE;;AAAD,AAAA,GAAG,CAAA,EAAC,MAAM,EAAC,CAAC,GAAE;;AAAD,AAAA,GAAG,CAAA,GAAK,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAC,MAAM,GAAE;;AAAD,AAAA,MAAM,CAAA,EAAC,MAAM,EAAC,QAAQ,GAAE;;AAAD,AAAA,EAAE,CAAA,EAAC,eAAe,EAAC,WAAW,EAAC,UAAU,EAAC,WAAW,EAAC,MAAM,EAAC,CAAC,GAAE;;AAAD,AAAA,GAAG,CAAA,EAAC,QAAQ,EAAC,IAAI,GAAE;;AAAD,AAAA,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,CAAA,EAAC,WAAW,EAAC,mBAAmB,EAAC,SAAS,EAAC,GAAG,GAAE;;AAAD,AAAA,MAAM,EAAC,KAAK,EAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,CAAA,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,MAAM,EAAC,CAAC,GAAE;;AAAD,AAAA,MAAM,CAAA,EAAC,QAAQ,EAAC,OAAO,GAAE;;AAAD,AAAA,MAAM,EAAC,MAAM,CAAA,EAAC,cAAc,EAAC,IAAI,GAAE;;AAAD,AAAA,MAAM,EAAC,IAAI,CAAC,KAAK,CAAA,AAAA,IAAC,CAAD,MAAC,AAAA,GAAa,KAAK,CAAA,AAAA,IAAC,CAAD,KAAC,AAAA,GAAY,KAAK,CAAA,AAAA,IAAC,CAAD,MAAC,AAAA,EAAY,EAAC,kBAAkB,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,GAAE;;AAAD,AAAA,MAAM,CAAA,AAAA,QAAC,AAAA,GAAU,IAAI,CAAC,KAAK,CAAA,AAAA,QAAC,AAAA,EAAS,EAAC,MAAM,EAAC,OAAO,GAAE;;AAAD,AAAA,MAAM,EAAE,gBAAgB,EAAC,KAAK,EAAE,gBAAgB,CAAA,EAAC,MAAM,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,GAAE;;AAAD,AAAA,KAAK,CAAA,EAAC,WAAW,EAAC,MAAM,GAAE;;AAAD,AAAA,KAAK,CAAA,AAAA,IAAC,CAAD,QAAC,AAAA,GAAe,KAAK,CAAA,AAAA,IAAC,CAAD,KAAC,AAAA,EAAW,EAAC,UAAU,EAAC,UAAU,EAAC,OAAO,EAAC,CAAC,GAAE;;AAAD,AAAA,KAAK,CAAA,AAAA,IAAC,CAAD,MAAC,AAAA,GAAc,yBAAyB,EAAC,KAAK,CAAA,AAAA,IAAC,CAAD,MAAC,AAAA,GAAc,yBAAyB,CAAA,EAAC,MAAM,EAAC,IAAI,GAAE;;AAAD,AAAA,KAAK,CAAA,AAAA,IAAC,CAAD,MAAC,AAAA,EAAY,EAAC,kBAAkB,EAAC,SAAS,EAAC,eAAe,EAAC,WAAW,EAAC,kBAAkB,EAAC,WAAW,EAAC,UAAU,EAAC,WAAW,GAAE;;AAAD,AAAA,KAAK,CAAA,AAAA,IAAC,CAAD,MAAC,AAAA,GAAc,4BAA4B,EAAC,KAAK,CAAA,AAAA,IAAC,CAAD,MAAC,AAAA,GAAc,yBAAyB,CAAA,EAAC,kBAAkB,EAAC,IAAI,GAAE;;AAAD,AAAA,QAAQ,CAAA,EAAC,MAAM,EAAC,gBAAgB,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,kBAAkB,GAAE;;AAAD,AAAA,MAAM,CAAA,EAAC,MAAM,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC,GAAE;;AAAD,AAAA,QAAQ,CAAA,EAAC,QAAQ,EAAC,IAAI,GAAE;;AAAD,AAAA,QAAQ,CAAA,EAAC,WAAW,EAAC,GAAG,GAAE;;AAAD,AAAA,KAAK,CAAA,EAAC,eAAe,EAAC,QAAQ,EAAC,cAAc,EAAC,CAAC,GAAE;;AAAD,AAAA,EAAE,EAAC,EAAE,CAAA,EAAC,OAAO,EAAC,CAAC,GAAE;;ACA97D,qGAIG;AAEH,0BAA0B;AAC1B,AAAA,KAAK,EACL,KAAK,CAAC,EACJ,kBAAkB,EAAE,UAAU,EAC9B,eAAe,EAAE,UAAU,EAC3B,UAAU,EAAE,UAAU,GACvB;;AAED,0CAA0C;AAC1C,AAAA,KAAK,CAAC,EACJ,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,IAAI,GACZ;;AACD,AAAA,KAAK,CAAC,KAAK,CAAC,EACV,KAAK,EAAE,IAAI,EACX,KAAK,EAAE,IAAI,EACX,OAAO,EAAE,IAAI,GACd;;AAED,8EAA8E;AAC9E,AAAA,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,IAAI,GAAI;;AAChD,AAAA,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,IAAI,GAAI;;AAEhD,iEAAiE;AACjE,AAAA,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC,GAAI;;AAC7C,AAAA,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,GAAI;;AAC7C,AAAA,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,GAAI;;AACpD,AAAA,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC,GAAI;;AAEtD,wEAAwE;AACxE,AAAA,WAAW,CAAC,KAAK,EACjB,KAAK,AAAA,WAAW,CAAC,EACf,OAAO,EAAE,YAAY,GACtB;;AAED,6CAA6C;AAC7C,AAAA,KAAK,CAAC,KAAK,EACX,KAAK,AAAA,KAAK,CAAC,EACT,SAAS,EAAE,KAAK,EAChB,MAAM,EAAE,MAAM,GACf;;AAED,mLAEgD;AAChD,AAAA,KAAK,CAAC,MAAM,EAAW,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,GAAI;;AACrD,AAAA,KAAK,CAAC,KAAK,EAAY,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,GAAI;;AACpD,AAAA,KAAK,CAAC,UAAU,EAAO,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAI;;AACzD,AAAA,KAAK,CAAC,WAAW,EAAM,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAI;;AACzD,AAAA,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,WAAW,EAAM,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,GAAI;;AACpD,AAAA,KAAK,CAAC,eAAe,EACrB,KAAK,CAAC,cAAc,EAAG,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,GAAI;;AACpD,AAAA,KAAK,CAAC,UAAU,EAAO,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,GAAI;;AACpD,AAAA,KAAK,CAAC,WAAW,EAAM,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,GAAI;;AACpD,AAAA,KAAK,CAAC,aAAa,EAAI,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,GAAI;;AACpD,AAAA,KAAK,CAAC,YAAY,EAAK,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,GAAI;;AACpD,AAAA,KAAK,CAAC,aAAa,EAAI,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAI;;AAAA,mCAAmC;AAC5F,AAAA,KAAK,CAAC,aAAa,EAAI,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAI;;AAAA,kCAAkC;AAE3F,gCAAgC;AAChC,AAAA,KAAK,CAAC,EACJ,KAAK,EAAE,CAAC,GACT;;AACD,AAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EACxB,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,EAAE,EACX,WAAW,EAAE,CAAC,GACf;;AACD,AAAA,KAAK,CAAC,KAAK,CAAC,EACV,KAAK,EAAE,IAAI,GACZ;;AAED,qBAAqB;AACrB,AAAA,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,GAAI;;AACtC,AAAA,WAAW,CAAG,EAAE,UAAU,EAAE,IAAI,GAAI;;AACpC,AAAA,YAAY,CAAE,EAAE,UAAU,EAAE,KAAK,GAAI;;AACrC,AAAA,UAAU,CAAI,EAAE,KAAK,EAAE,IAAI,GAAI;;AAC/B,AAAA,WAAW,CAAG,EAAE,KAAK,EAAE,KAAK,GAAI;;AAEhC,oIAEqB;AACrB,AAAA,KAAK,CAAC,GAAG,CAAC,EACR,SAAS,EAAE,IAAI,GAChB;;AAED,sBAAsB;AACtB,MAAM,8BACJ,GAAA,mHAC0D,CAC1D,AAAA,KAAK,CAAA,GAAK,CAAA,uBAAuB,IAAI,KAAK,CAAC,EACzC,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,IAAI,EAClB,aAAa,EAAE,IAAI,GACpB,CACD,AAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAChB,YAAY,EAAE,GAAG,EACjB,aAAa,EAAE,GAAG,GACnB,CAED,+DAA+D,CAC/D,AAAA,kBAAkB,CAAC,EACjB,UAAU,EAAE,iBAAiB,GAC9B,CACD,AAAA,gBAAgB,CAAC,EACf,OAAO,EAAE,eAAe,GACzB,EAjByD;;AAoB5D,qDAAqD;AACrD,MAAM,+BACJ,GAAA,AAAA,MAAM,CAAC,KAAK,EACZ,KAAK,AAAA,MAAM,CAAC,EACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACf,EAAA;;AC1HH,AAAA,UAAU,CAAC,EAEY,aAAa,CACX,WAAW,CACb,aAAa,CACb,aAAa,CACb,aAAa,CACb,UAAU,CACV,cAAc,CACd,WAAW,CACX,iBAAiB,CAChB,uBAAuB,CACvB,qBAAqB,CACrB,oBAAoB,CACpB,qBAAqB,CAC0B,qBAAqB,CACxC,kBAAkB,CACC,mBAAmB,CAClE,qBAAqB,CACO,sBAAsB,CACC,uGAAuG,CAC1J,oBAAoB,CACpB,oBAAoB,CACpB,wBAAwB,CACuB,uBAAuB,CACtE,sBAAsB,CACtB,yBAAyB,CACzB,uBAAuB,CACvB,oBAAoB,CACpB,sBAAsB,CACtB,kBAAkB,CAClB,kBAAkB,CACnB,oBAAoB,CACpB,oBAAoB,CACnB,oBAAoB,CACpB,kBAAkB,CAClB,gBAAgB,CAChB,mBAAmB,CACnB,oBAAoB,CACpB,iBAAiB,CACjB,oBAAoB,CACpB,mBAAmB,CACnB,gBAAgB,CAChB,oBAAoB,CACpB,gBAAgB,CAChB,mBAAmB,CACnB,cAAc,CACd,mBAAmB,CACnB,mBAAmB,CACpB,qBAAqB,CACpB,0BAA0B,CAC1B,wBAAwB,CACxB,4BAA4B,CAC5B,wBAAwB,CACxB,6BAA6B,CAC7B,yBAAyB,CACzB,wBAAwB,CACxB,2BAA2B,CAC3B,2BAA2B,CAC3B,4BAA4B,CAC5B,6BAA6B,CAC7B,0BAA0B,CAC1B,0BAA0B,CAC1B,2BAA2B,CAC3B,2BAA2B,CAC3B,yBAAyB,CACzB,yBAAyB,CACzB,0BAA0B,CAC1B,4BAA4B,CAC5B,iCAAiC,EAQxD;;AA7ED,AACE,UADQ,CACR,IAAI,CAAC,EAAE,gBAAgB,EAAE,OAAQ,GAAE;;AADrC,AAEE,UAFQ,CAER,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAFvB,AAGE,UAHQ,CAGR,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAHzB,AAIE,UAJQ,CAIR,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAJvB,AAKE,UALQ,CAKR,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AALvB,AAME,UANQ,CAMR,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AANvB,AAOE,UAPQ,CAOR,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAPvB,AAQE,UARQ,CAQR,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AARvB,AASE,UATQ,CASR,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AATvB,AAUE,UAVQ,CAUR,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAVvB,AAWE,UAXQ,CAWR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAXxB,AAYE,UAZQ,CAYR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAZxB,AAaE,UAbQ,CAaR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAbxB,AAcE,UAdQ,CAcR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAdxB,AAeE,UAfQ,CAeR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAQ,GAAE;;AAfvE,AAgBE,UAhBQ,CAgBR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,GAAE;;AAhBpD,AAiBE,UAjBQ,CAiBR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAQ,GAAE;;AAjBvE,AAkBE,UAlBQ,CAkBR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAlBxB,AAmBE,UAnBQ,CAmBR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAQ,GAAE;;AAnBpD,AAoBE,UApBQ,CAoBR,IAAI,AAAA,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAQ,GAAE;;AApB3E,AAqBE,UArBQ,CAqBR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AArBxB,AAsBE,UAtBQ,CAsBR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAtBxB,AAuBE,UAvBQ,CAuBR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAvBxB,AAwBE,UAxBQ,CAwBR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAQ,GAAE;;AAxBvE,AAyBE,UAzBQ,CAyBR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAzBxB,AA0BE,UA1BQ,CA0BR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA1BxB,AA2BE,UA3BQ,CA2BR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA3BxB,AA4BE,UA5BQ,CA4BR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA5BxB,AA6BE,UA7BQ,CA6BR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA7BxB,AA8BE,UA9BQ,CA8BR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA9BxB,AA+BE,UA/BQ,CA+BR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA/BxB,AAgCE,UAhCQ,CAgCR,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAhCvB,AAiCE,UAjCQ,CAiCR,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAjCvB,AAkCE,UAlCQ,CAkCR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAlCxB,AAmCE,UAnCQ,CAmCR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAnCxB,AAoCE,UApCQ,CAoCR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AApCxB,AAqCE,UArCQ,CAqCR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AArCxB,AAsCE,UAtCQ,CAsCR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAtCxB,AAuCE,UAvCQ,CAuCR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAvCxB,AAwCE,UAxCQ,CAwCR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAxCxB,AAyCE,UAzCQ,CAyCR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAzCxB,AA0CE,UA1CQ,CA0CR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA1CxB,AA2CE,UA3CQ,CA2CR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA3CxB,AA4CE,UA5CQ,CA4CR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA5CxB,AA6CE,UA7CQ,CA6CR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA7CxB,AA8CE,UA9CQ,CA8CR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA9CxB,AA+CE,UA/CQ,CA+CR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA/CxB,AAgDE,UAhDQ,CAgDR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAhDxB,AAiDE,UAjDQ,CAiDR,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAjDvB,AAkDE,UAlDQ,CAkDR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAlDxB,AAmDE,UAnDQ,CAmDR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAnDxB,AAoDE,UApDQ,CAoDR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AApDxB,AAqDE,UArDQ,CAqDR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AArDxB,AAsDE,UAtDQ,CAsDR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAtDxB,AAuDE,UAvDQ,CAuDR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAvDxB,AAwDE,UAxDQ,CAwDR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAxDxB,AAyDE,UAzDQ,CAyDR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAzDxB,AA0DE,UA1DQ,CA0DR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA1DxB,AA2DE,UA3DQ,CA2DR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA3DxB,AA4DE,UA5DQ,CA4DR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA5DxB,AA6DE,UA7DQ,CA6DR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA7DxB,AA8DE,UA9DQ,CA8DR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA9DxB,AA+DE,UA/DQ,CA+DR,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AA/DxB,AAgEE,UAhEQ,CAgER,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAhExB,AAiEE,UAjEQ,CAiER,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAjExB,AAkEE,UAlEQ,CAkER,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAlExB,AAmEE,UAnEQ,CAmER,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AAnExB,AAoEE,UApEQ,CAoER,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AApExB,AAqEE,UArEQ,CAqER,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAE;;AArExB,AAsEE,UAtEQ,CAsER,KAAK,CAAC,GAAG,CAAC,EACR,mBAAmB,EAAE,IAAI,EACtB,gBAAgB,EAAE,IAAI,EACrB,eAAe,EAAE,IAAI,EACpB,cAAc,EAAE,IAAI,EACjB,WAAW,EAAE,IAAI,GAC1B;;AC5EH,4JAGG;AACH,UAAU,GACR,WAAW,EAAE,aAAa,EAC1B,GAAG,EAAE,+CAA+C,EACpD,GAAG,EAAE,sDAAsD,CAAC,2BAA2B,EAAE,gDAAgD,CAAC,cAAc,EAAE,+CAA+C,CAAC,kBAAkB,EAAE,kEAAkE,CAAC,aAAa,EAC9S,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM;;AAEpB,AAAA,GAAG,CAAC,EACF,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,uCAAuC,EAC7C,SAAS,EAAE,OAAO,EAClB,cAAc,EAAE,IAAI,EACpB,sBAAsB,EAAE,WAAW,EACnC,uBAAuB,EAAE,SAAS,GACnC;;AACD,AAAA,QAAQ,CAAC,MAAM,CAAC,EACd,OAAO,EAAE,OAAO,GACjB;;AACD,AAAA,UAAU,CAAC,MAAM,CAAC,EAChB,OAAO,EAAE,OAAO,GACjB;;ACxBD,UAAU;AAEV,AAAA,CAAC,CAAC,EACA,kBAAkB,EAAE,UAAU,EAC9B,eAAe,EAAE,UAAU,EAC3B,UAAU,EAAE,UAAU,GACvB;;AAED,AAAA,IAAI,CAAC,EACH,IAAI,EAAE,6DAA6D,EACnE,KAAK,EAAE,IAAI,EACX,gBAAgB,EAAE,IAAI,EACtB,UAAU,EAAE,iBAAiB,ELX7B,kBAAkB,EKYE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,ELXhD,eAAe,EKWE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,ELV3C,UAAU,EKUE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,EACnD,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,EACrC,6BAA6B,EAAE,QAAQ,EACvC,0BAA0B,EAAE,QAAQ,EACpC,wBAAwB,EAAE,QAAQ,EAClC,qBAAqB,EAAE,QAAQ,EAC/B,YAAY,EAAE,MAAM,GACrB;;AAED,AAAA,MAAM,CAAC,EACL,OAAO,EAAE,KAAK,GACf;;AAED,AAAA,MAAM,CAAC,KAAK,CAAC,EACX,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,IAAI,EACX,UAAU,EAAE,MAAM,GACnB;;AAED,cAAc;AAEd,AAAA,MAAM,EACN,OAAO,EACP,MAAM,CAAC,EACL,KAAK,EAAE,IAAI,EACX,KAAK,EAAE,IAAI,EACX,KAAK,EAAE,IAAI,GACZ;;AAED,YAAY;AAEZ,AAAA,MAAM,CAAC,EACL,aAAa,EAAE,IAAI,GAIpB;;AALD,AAEE,MAFI,CAEJ,EAAE,EAFJ,MAAM,CAGJ,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,GAAI;;AAIjC,AAEE,GAFC,CAED,EAAE,CAAC,EACD,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,CAAC,GACV;;AALH,AAOE,GAPC,CAOD,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,GAAI;;AAGhC,AAAA,SAAS,CAAC,EACR,WAAW,EAAE,IAAI,GA8BlB;;AA/BD,AAEE,SAFO,CAEP,EAAE,CAAC,EACD,YAAY,EAAE,IAAI,GA2BnB;;AA9BH,AAKI,SALK,CAEP,EAAE,CAGA,CAAC,CAAC,EL7DJ,qBAAqB,EK8DM,GAAG,EL7D3B,kBAAkB,EK6DM,GAAG,EL5DtB,aAAa,EK4DM,GAAG,EAC1B,WAAW,EAAE,GAAG,EAChB,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,SAAS,EAClB,WAAW,EAAE,IAAI,EACjB,cAAc,EAAE,SAAS,ELjD7B,kBAAkB,EKkDM,GAAG,CAAC,KAAI,ELjD7B,eAAe,EKiDM,GAAG,CAAC,KAAI,ELhD3B,aAAa,EKgDM,GAAG,CAAC,KAAI,EL/CxB,UAAU,EK+CM,GAAG,CAAC,KAAI,GAO7B;;AAnBL,AAcM,SAdG,CAEP,EAAE,CAGA,CAAC,CASG,KAAK,CAAC,EACN,gBAAgB,EAAE,OAAO,EL7E/B,kBAAkB,EK8EQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EL7EnF,eAAe,EK6EQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EL5E9E,UAAU,EK4EQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAChF,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,GACtC;;AAlBP,AAuBM,SAvBG,CAEP,EAAE,AAmBC,QAAQ,CAEP,CAAC,CAAC,EACA,gBAAgB,EAAE,OAAO,EACzB,KAAK,EAAE,IAAI,ELvFjB,kBAAkB,EKwFQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,ELvFnF,eAAe,EKuFQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,ELtF9E,UAAU,EKsFQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,EAChF,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,GAC1C;;AAKP,AAEE,WAFS,CAET,EAAE,CAAC,EACD,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,IAAI,EACX,OAAO,EAAE,KAAK,GACf;;AANH,AAQE,WARS,CAQT,CAAC,CAAC,EACA,KAAK,EAAE,IAAI,EACX,KAAK,EAAE,IAAI,EACX,gBAAgB,EAAE,IAAI,EACtB,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,SAAS,EACzB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,GAAG,EAChB,OAAO,EAAE,GAAG,EL1Gd,qBAAqB,EK2GI,GAAG,EL1GzB,kBAAkB,EK0GI,GAAG,ELzGpB,aAAa,EKyGI,GAAG,GAC3B;;AAnBH,AAqBE,WArBS,CAqBT,EAAE,CAAC,EACD,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,OAAO,GACjB;;AAzBH,AA6BI,WA7BO,CA2BT,QAAQ,CAEN,CAAC,CAAC,EACA,gBAAgB,EAAE,OAAO,EACzB,KAAK,EAAE,IAAI,EL9Hf,kBAAkB,EK+HM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,EL9HjF,eAAe,EK8HM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,EL7H5E,UAAU,EK6HM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,EAChF,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,GAC1C;;AAIL,sHAGG;AACH,AAAA,YAAY,CAAC,EACX,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,CAAC,EACV,SAAS,EAAE,KAAK,ELrHhB,kBAAkB,EKsHE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,ELrH9C,eAAe,EKqHE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,ELpH5C,aAAa,EKoHE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,ELnHzC,UAAU,EKmHE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,GAClD;;AACD,AAAA,EAAE,CAAC,KAAK,CAAC,YAAY,EACrB,EAAE,CAAC,KAAK,CAAC,YAAY,EACrB,EAAE,CAAC,KAAK,CAAC,YAAY,EACrB,EAAE,CAAC,KAAK,CAAC,YAAY,EACrB,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EACpB,OAAO,EAAE,CAAC,GACX;;AAED,MAAM,mBACJ,GAAA,AAAA,SAAS,CAAC,EAAE,CAAC,EACX,UAAU,EAAE,MAAM,GACnB,EAAA;;AAEH,MAAM,mBAEF,GADF,AACE,SADO,CACP,gBAAgB,CAAC,EAAE,OAAO,EAAE,MAAM,GAAI,CADxC,AAEE,SAFO,CAEP,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,GAAI,EADC;;AAKzC,YAAY;AAEZ,AAAA,MAAM,CAAC,EACL,gBAAgB,EAAE,OAAO,EACzB,SAAS,EAAE,IAAI,EACf,cAAc,EAAE,GAAG,EACnB,YAAY,EAAE,GAAG,EACjB,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,IAAI,GAyBjB;;AAhCD,AASE,MATI,CASJ,CAAC,CAAC,EACA,KAAK,EAAE,IAAI,GAMZ;;AAhBH,AAcM,MAdA,CASJ,CAAC,CAGG,KAAK,CAEL,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,GAAI;;AAd1B,AAoBI,MApBE,CAkBJ,YAAY,CAEV,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,GAAI;;AApBjC,AAuBE,MAvBI,CAuBJ,GAAG,CAAC,EACF,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,GAAG,EAChB,OAAO,EAAE,EAAE,EACX,OAAO,EAAE,GAAG,EL3Kd,kBAAkB,EK4KI,OAAO,CAAC,IAAG,EL3K9B,eAAe,EK2KI,OAAO,CAAC,IAAG,EL1K5B,aAAa,EK0KI,OAAO,CAAC,IAAG,ELzKzB,UAAU,EKyKI,OAAO,CAAC,IAAG,GAChC;;AAGH,MAAM,mBAEF,GADF,AACE,MADI,CACJ,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,GAAI,CADrC,AAEE,MAFI,CAEJ,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,GAAI,EADH;;AAKtC,WAAW;AAEX,AAEE,MAFI,CAEJ,KAAK,CAAC,EAAE,OAAO,EAAE,WAAW,GAAI;;AAFlC,AAIE,MAJI,CAIJ,CAAC,CAAC,EACA,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,GAAG,EAChB,MAAM,EAAE,CAAC,GACV;;AAGH,MAAM,mBACJ,GAAA,AAAA,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,GAAI,EAAD;;AAGhC,gBAAgB;AAEhB,AAAA,WAAW,CAAC,EACV,gBAAgB,EAAE,OAAO,EACzB,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,MAAM,ELrOd,kBAAkB,EKsOE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,ELrOhD,eAAe,EKqOE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,ELpO3C,UAAU,EKoOE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,GAgBpD;;AApBD,AAME,WANS,CAMT,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,GAAI;;AAN3B,AAQE,WARS,CAQT,EAAE,CAAC,EACD,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,IAAI,EAChB,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,GACtC;;AAbH,AAeE,WAfS,CAeT,KAAK,CAAC,EACJ,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,SAAS,GAClB;;AAGH,MAAM,mBAGF,GAFF,AAEE,WAFS,CAET,KAAK,CAAC,EACJ,SAAS,EAAE,IAAI,EACf,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,KAAK,GACb,CANH,AAQE,WARS,CAQT,EAAE,CAAC,EACD,MAAM,EAAE,QAAQ,EAChB,UAAU,EAAE,MAAM,GACnB,EALA;;AASL,UAAU;AAEV,AAEE,WAFS,CAET,KAAK,CAAC,EACJ,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,CAAC,EACV,WAAW,EAAE,qEAAqE,EAClF,WAAW,EAAE,KAAK,GAyDnB;;AA/DH,AAQI,WARO,CAET,KAAK,CAMH,MAAM,CAAC,EACL,OAAO,EAAE,KAAK,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,KAAK,ELhRlB,qBAAqB,EKiRM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,ELhRnC,kBAAkB,EKgRM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EL/Q9B,aAAa,EK+QM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,ELvRtC,kBAAkB,EKwRM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,ELvR9C,eAAe,EKuRM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,ELtRzC,UAAU,EKsRM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,EAC7C,IAAI,EAAE,4DAA4D,EAClE,KAAK,EAAE,IAAI,EACX,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EACzC,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,2uBAA2uB,EAC7vB,gBAAgB,EAAE,oGAAoG,EACtH,gBAAgB,EAAE,kEAAkE,EACpF,gBAAgB,EAAE,+DAA+D,EACjF,gBAAgB,EAAE,6DAA6D,EAC/E,gBAAgB,EAAE,0DAAwD,EAC1E,MAAM,EAAE,2GAA2G,EACnH,aAAa,EAAE,cAAc,GAC9B;;AA3BL,AA6BI,WA7BO,CAET,KAAK,CA2BH,MAAM,CAAC,EACL,OAAO,EAAE,IAAI,EACb,WAAW,EAAE,IAAI,EACjB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,OAAO,ELrS7B,qBAAqB,EKsSM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,ELrSnC,kBAAkB,EKqSM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,ELpS9B,aAAa,EKoSM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EL5StC,kBAAkB,EK6SM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,EL5S9C,eAAe,EK4SM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,EL3SzC,UAAU,EK2SM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,GAC9C;;AApCL,AAsCI,WAtCO,CAET,KAAK,CAoCH,KAAK,CAAC,EACJ,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,CAAC,GAGX;;AA5CL,AA2CM,WA3CK,CAET,KAAK,CAoCH,KAAK,CAKH,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,GAAI;;AA3CtC,AA8CI,WA9CO,CAET,KAAK,CA4CH,KAAK,CAAC,EACJ,KAAK,EAAE,OAAO,EL1RlB,mBAAmB,EK2RM,IAAI,EL3RI,6BAA6B,CAC3D,gBAAgB,EK0RM,IAAI,EL1RI,iBAAiB,CAC9C,eAAe,EKyRM,IAAI,ELzRI,YAAY,CACxC,cAAc,EKwRM,IAAI,ELvRrB,WAAW,EKuRM,IAAI,GAC1B;;AAjDL,AAmDI,WAnDO,CAET,KAAK,CAiDH,OAAO,CAAC,EACN,KAAK,EAAE,OAAO,EACd,mBAAmB,EAAE,IAAI,EAAG,6BAA6B,CACzD,gBAAgB,EAAE,IAAI,EAAM,iBAAiB,CAC7C,eAAe,EAAE,IAAI,EAAO,YAAY,CACxC,cAAc,EAAE,IAAI,EACpB,WAAW,EAAE,IAAI,GAClB;;AA1DL,AA4DI,WA5DO,CAET,KAAK,CA0DH,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,GAAI;;AA5DjC,AA8DI,WA9DO,CAET,KAAK,CA4DH,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,GAAI;;AAI7B,MAAM,mBAGF,GAFF,AAEE,aAFW,CAEX,GAAG,CAAC,EACF,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,GACd,CAPH,AASE,aATW,CASX,aAAa,CAAC,EACZ,UAAU,EAAE,IAAI,EAChB,aAAa,EAAE,IAAI,GACpB,CAZH,AAcE,aAdW,CAcX,CAAC,EAdH,aAAa,CAeX,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,GAAI,CAfzB,AAiBE,aAjBW,CAiBX,KAAK,CAAC,KAAK,CAAC,EACV,OAAO,EAAE,GAAG,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAC3D,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,KAAK,EACb,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,KAAK,GACd,EAnBA;;AAuBL,2CAA2C;AAG3C,AAAA,OAAO,CAAC,EACN,gBAAgB,EAAE,IAAI,ELzWtB,qBAAqB,EK0WE,IAAI,ELzWxB,kBAAkB,EKyWE,IAAI,ELxWnB,aAAa,EKwWE,IAAI,EAC3B,OAAO,EAAE,IAAI,EACb,MAAM,EAAE,MAAM,ELlXd,kBAAkB,EKmXE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,ELlX1C,eAAe,EKkXE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,ELjXrC,UAAU,EKiXE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,EAC7C,SAAS,EAAE,IAAI,GAChB;;AAED,MAAM,mBACJ,GAAA,AAAA,OAAO,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,GAAI,EAAD;;AAGpC,MAAM,mBACJ,GAAA,AAAA,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,GAAI,EAAD;;AAGxB,MAAM,mBACJ,GAAA,AAAA,OAAO,CAAC,EACN,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,IAAI,GAChB,EAAA;;AAGH,iDAAiD;AAEjD,AAAA,KAAK,CAAC,EACJ,WAAW,EAAE,IAAI,GAsClB;;AAvCD,AAGE,KAHG,CAGH,EAAE,CAAC,EACD,cAAc,EAAE,SAAS,EACzB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,GAAG,EAChB,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,KAAK,EAClB,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,cAAc,GAC9B;;AAXH,AAaE,KAbG,CAaH,EAAE,CAAC,EACD,YAAY,EAAE,CAAC,GAGhB;;AAjBH,AAgBI,KAhBC,CAaH,EAAE,CAGE,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,GAAI;;AAhBrC,AAmBE,KAnBG,CAmBH,EAAE,CAAC,EACD,eAAe,EAAE,IAAI,GAkBtB;;AAtCH,AAsBI,KAtBC,CAmBH,EAAE,CAGA,CAAC,CAAC,EACA,SAAS,EAAE,IAAI,EACf,QAAQ,EAAE,QACZ,GAAC;;AAzBL,AA2BI,KA3BC,CAmBH,EAAE,AAQC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EACjB,OAAO,EAAE,EAAE,EACX,YAAY,EAAE,wCAAwC,EACtD,YAAY,EAAE,KAAK,EACnB,YAAY,EAAE,IAAI,EAClB,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,KAAK,GACZ;;AAIL,mBAAmB;AAEnB,AAEE,KAFG,CAEH,OAAO,CAAC,EAAE,UAAU,EAAE,KAAK,GAAI;;AAFjC,AAIE,KAJG,CAIH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,GAAI;;AAG3B,AAAA,YAAY,CAAC,EACX,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,IAAI,EACjB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,8BAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAC/D,MAAM,EAAE,eAAe,GAuDxB;;AA5DD,AAOE,YAPU,GAOR,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,GAAI;;AAP1B,AASE,YATU,CASV,CAAC,EATH,YAAY,CAUV,IAAI,CAAC,EACH,KAAK,EAAE,IAAI,EACX,SAAS,EAAE,IAAI,EACf,cAAc,EAAE,SAAS,EACzB,WAAW,EAAE,GAAG,EAChB,OAAO,EAAE,aAAa,ELncxB,qBAAqB,EKocI,GAAG,ELnczB,kBAAkB,EKmcI,GAAG,ELlcpB,aAAa,EKkcI,GAAG,EAC1B,2BAA2B,CL3c7B,kBAAkB,EK4cI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,wBAAoB,EL3cjF,eAAe,EK2cI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,wBAAoB,EL1c5E,UAAU,EK0cI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,wBAAoB,EAClF,gBAAgB,EAAE,OAAO,GAC1B;;AApBH,AAsBE,YAtBU,CAsBV,CAAC,CAAC,KAAK,CAAC,EACN,KAAK,EAAE,IAAI,EACX,gBAAgB,EAAE,IAAI,GACvB;;AAzBH,AA2BE,YA3BU,CA2BV,KAAK,EA3BP,YAAY,CA4BV,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAI;;AA5BhC,AA8BE,YA9BU,CA8BV,KAAK,CAAC,KAAK,EA9Bb,YAAY,CA+BV,KAAK,CAAC,MAAM,CAAC,EACX,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI,EACX,WAAW,EAAE,GAAG,EAChB,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EACzC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,IAAI,GACV;;AAtCH,AAwCE,YAxCU,CAwCV,KAAK,CAAC,KAAK,CAAC,EACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,IAAI,GACZ;;AA3CH,AA6CE,YA7CU,CA6CV,KAAK,CAAC,MAAM,CAAC,EACX,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,GACX;;AAhDH,AAkDE,YAlDU,CAkDV,KAAK,EAlDP,YAAY,CAmDV,KAAK,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,IAAI,GAAI;;AAnDtC,AAqDE,YArDU,CAqDV,KAAK,EArDP,YAAY,CAsDV,KAAK,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,GAAI;;AAtDvC,AAwDE,YAxDU,CAwDV,SAAS,CAAC,EACR,OAAO,EAAE,EAAE,EACX,MAAM,EAAE,OAAO,GAChB;;AAGH,AAAA,QAAQ,CAAC,EACP,WAAW,EAAE,IAAI,EACjB,SAAS,EAAE,IAAI,GAIhB;;AAND,AAGE,QAHM,CAGN,CAAC,CAAC,EACA,KAAK,EAAE,IAAI,GACZ;;AAGH,AAAA,gBAAgB,CAAC,MAAM,CAAC,EACtB,KAAK,EAAE,IAAI,EACX,KAAK,EAAE,IAAI,GACZ;;AAED,UAAU;AAEV,AAAA,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,GAAI;;AAE1C,AAAA,cAAc,EACd,UAAU,CAAC,EACT,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,IAAI,GAChB;;AAED,AAAA,cAAc,CAAC,EACb,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,KAAK,EAClB,OAAO,EAAE,YAAY,EACrB,YAAY,EAAE,IAAI,EL9gBlB,qBAAqB,EK+gBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EL9gB/B,kBAAkB,EK8gBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EL7gB1B,aAAa,EK6gBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAClC,QAAQ,EAAE,QAAQ,ELthBlB,kBAAkB,EKuhBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAAE,KAAK,CAAC,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,ELthB/G,eAAe,EKshBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAAE,KAAK,CAAC,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,ELrhB1G,UAAU,EKqhBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAAE,KAAK,CAAC,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,EAClH,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,upBAAupB,EACzqB,gBAAgB,EAAE,2EAA2E,EAC7F,gBAAgB,EAAE,sDAAsD,EACxE,gBAAgB,EAAE,mDAAmD,EACrE,gBAAgB,EAAE,iDAAiD,EACnE,gBAAgB,EAAE,oDAAmD,EACrE,MAAM,EAAE,2GAA2G,GAapH;;AA5BD,AAiBE,cAjBY,CAiBV,MAAM,CAAC,EACP,OAAO,EAAE,EAAE,EACX,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,KAAK,EACV,IAAI,EAAE,CAAC,EACP,YAAY,EAAE,uCAAuC,EACrD,YAAY,EAAE,KAAK,EACnB,YAAY,EAAE,GAAG,EACjB,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,GACV;;AAGH,AAAA,aAAa,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAK,GAAE;;AAEtC,AAAA,MAAM,CAAC,EACL,KAAK,EAAE,IAAI,EACX,cAAc,EAAE,SAAS,EACzB,WAAW,EAAE,GAAG,EAChB,WAAW,EAAE,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,GACrC;;AAED,MAAM,mBACJ,GAAA,AAAA,cAAc,CAAC,EAAE,YAAY,EAAE,IAAI,GAAI,EAAD;;AAGxC,MAAM,mBACJ,GAAA,AAAA,cAAc,CAAC,EAAE,WAAW,EAAE,KAAK,GAAI,EAAD;;AAGxC,AAAA,OAAO,CAAC,ELzjBN,qBAAqB,EK0jBE,GAAG,ELzjBvB,kBAAkB,EKyjBE,GAAG,ELxjBlB,aAAa,EKwjBE,GAAG,EAC1B,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,MAAM,GACvB;;AAED,AAAA,UAAU,CAAC,EACT,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,GAAG,EAChB,WAAW,EAAE,aAAa,GAC3B;;AAED,AAAA,UAAU,EACV,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,GAAI;;AAEpC,AAAA,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,EACtB,UAAU,EAAE,KAAK,EL1kBjB,qBAAqB,EK2kBE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EL1kBjC,kBAAkB,EK0kBE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,ELzkB5B,aAAa,EKykBE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EACpC,UAAU,EAAE,cAAc,ELllB1B,kBAAkB,EKmlBE,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,OAAO,ELllBjC,eAAe,EKklBE,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,OAAO,ELjlB5B,UAAU,EKilBE,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,OAAO,GACrC;;AAED,uBAAuB;AAGvB,AAAA,GAAG,EACH,IAAI,CAAC,EACH,WAAW,EAAE,GAAG,EAChB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,gFAAgF,EACtF,OAAO,EAAE,OAAO,GACjB;;AAED,MAAM,mBACJ,GAAA,AAAA,GAAG,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,GAAI,EAAD;;AAGhC,AAAA,UAAU,EACV,CAAC,GAAG,GAAG,EACP,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,GAAG,IAAI,EACf,EAAE,GAAG,IAAI,EACT,EAAE,GAAG,IAAI,EACT,KAAK,GAAG,IAAI,CAAC,EACX,gBAAgB,EAAE,OAAO,EACzB,KAAK,EAAE,IAAI,ELxmBX,qBAAqB,EKymBE,GAAG,ELxmBvB,kBAAkB,EKwmBE,GAAG,ELvmBlB,aAAa,EKumBE,GAAG,EL/mB1B,kBAAkB,EKgnBE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,EACjD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAC5B,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,ELjnBtB,eAAe,EK+mBE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,EACjD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAC5B,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,ELhnBjB,UAAU,EK8mBE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAc,EACjD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAC5B,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,GAC1B;;AAED,AAAA,KAAK,CAAC,IAAI,CAAC,EACT,gBAAgB,EAAE,IAAI,EACtB,gBAAgB,EAAE,kBAAe,EACjC,WAAW,EAAE,KAAK,EAClB,YAAY,EAAE,KAAK,EACnB,SAAS,EAAE,KAAK,GACjB;;AAED,AAAA,UAAU,CAAC,EACT,MAAM,EAAE,KAAK,EACb,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,IAAI,GACf;;AAED,mBAAmB;AAEnB,AAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAI;;AAEtC,AAAA,CAAC,CAAC,EACA,KAAK,EAAE,OAAO,EACd,eAAe,EAAE,IAAI,ELlnBrB,kBAAkB,EKmnBE,GAAG,CAAC,KAAI,ELlnBzB,eAAe,EKknBE,GAAG,CAAC,KAAI,ELjnBvB,aAAa,EKinBE,GAAG,CAAC,KAAI,ELhnBpB,UAAU,EKgnBE,GAAG,CAAC,KAAI,GAG7B;;AAND,AAKE,CALD,CAKG,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,GAAI;;AAG9B,AAAA,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,GAAI;;AAE7B,AAAA,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,GAAI;;AAE1B,AAAA,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,GAAI;;AACvB,AAAA,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,GAAI;;AACzB,AAAA,YAAY,CAAC,EAAE,UAAU,EAAE,KAAK,GAAI;;AACpC,AAAA,WAAW,CAAC,EAAE,UAAU,EAAE,IAAI,GAAI;;AAClC,AAAA,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,GAAI;;AAEtC,kBAAkB;AAElB,AAEE,OAFK,CAEL,EAAE,EAFJ,OAAO,CAED,EAAE,EAFR,OAAO,CAEG,EAAE,EAFZ,OAAO,CAEO,EAAE,EAFhB,OAAO,CAEW,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,GAAI;;AAFxC,AAIE,OAJK,CAIL,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,GAAI;;AAJtB,AAQI,OARG,CAML,EAAE,CAAC,EAAE,CAEH,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAI;;AARrB,AAUI,OAVG,CAML,EAAE,CAAC,EAAE,CAIH,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,GAAI;;AAVnC,AAaE,OAbK,CAaL,EAAE,CAAC,EAAE,EAbP,OAAO,CAcL,EAAE,CAAC,EAAE,CAAC,EACJ,WAAW,EAAE,KAAK,EAClB,aAAa,EAAE,KAAK,GACrB;;AAIH,AAAA,EAAE,EAAE,EAAE,CAAC,EACL,SAAS,EAAE,GAAG,EACd,UAAU,EAAE,MAAM,GACnB;;AAED,AAAA,UAAU,CAAC,EACT,WAAW,EAAE,cAAc,EAC3B,YAAY,EAAE,IAAI,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,GAAG,GACjB;;AAGD,YAAY;AAEZ,AAAA,KAAK,CAAC,EACJ,6DAA6D,CAK7D,KAAK,EAAE,IAAI,EACX,gBAAgB,EAAE,IAAI,EACtB,MAAM,EAAE,MAAM,ELnsBd,qBAAqB,EKosBE,GAAG,ELnsBvB,kBAAkB,EKmsBE,GAAG,ELlsBlB,aAAa,EKksBE,GAAG,EL1sB1B,kBAAkB,EK2sBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,EL1sBzC,eAAe,EK0sBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,ELzsBpC,UAAU,EKysBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAc,GAC7C;;AAXD,AAEE,KAFG,CAEH,GAAG,EAFL,KAAK,CAGH,IAAI,CAAC,EACH,WAAW,EAAE,QAAQ,GACtB;;AAQH,6FAA6F;AAC7F,AAAA,mBAAmB,CAAC,EAClB,UAAU,EAAE,IAAI,GACjB;;AAED,AAAA,KAAK,CAAC,ELvsBJ,8BAA8B,EKwsBE,GAAG,ELvsBhC,0BAA0B,EKusBG,GAAG,ELtsB3B,sBAAsB,EKssBE,GAAG,ELlsBnC,+BAA+B,EKmsBE,GAAG,ELlsBjC,2BAA2B,EKksBG,GAAG,ELjsB5B,uBAAuB,EKisBE,GAAG,EACpC,KAAK,EAAE,IAAI,EACX,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,upBAAupB,EACzqB,gBAAgB,EAAE,2EAA2E,EAC7F,gBAAgB,EAAE,sDAAsD,EACxE,gBAAgB,EAAE,mDAAmD,EACrE,gBAAgB,EAAE,iDAAiD,EACnE,gBAAgB,EAAE,oDAAmD,EACrE,MAAM,EAAE,2GAA2G,GAcpH;;AAzBD,AAaE,KAbG,CAaH,EAAE,CAAC,EACD,QAAQ,EAAE,QAAQ,ELjuBpB,kBAAkB,EKkuBI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,ELjuBrD,eAAe,EKiuBI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,ELhuBhD,UAAU,EKguBI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,GASvD;;AAxBH,AAiBI,KAjBC,CAaH,EAAE,CAIE,WAAW,CAAC,ELxtBhB,8BAA8B,EKytBM,GAAG,ELxtBpC,0BAA0B,EKwtBO,GAAG,ELvtB/B,sBAAsB,EKutBM,GAAG,GACpC;;AAnBL,AAqBI,KArBC,CAaH,EAAE,CAQE,UAAU,CAAC,ELttBf,+BAA+B,EKutBM,GAAG,ELttBrC,2BAA2B,EKstBO,GAAG,ELrtBhC,uBAAuB,EKqtBM,GAAG,GACrC;;AAIL,AAAA,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,GAAI;;AAE5B,AAAA,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAI;;AAEpB,AAAA,EAAE,CAAC,EACD,cAAc,EAAE,SAAS,EACzB,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,EACpC,KAAK,EAAE,IAAI,GACZ;;AAED,AAAA,KAAK,CAAC,EAAE,CAAC,EACP,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,kBAAc,EL5vBpC,kBAAkB,EK6vBE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EL5vBnD,eAAe,EK4vBE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EL3vB9C,UAAU,EK2vBE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EACtD,UAAU,EAAE,2pBAA2pB,EACvqB,gBAAgB,EAAE,2GAAqG,EACvH,gBAAgB,EAAE,sFAAgF,EAClG,gBAAgB,EAAE,mFAA6E,EAC/F,gBAAgB,EAAE,iFAA2E,EAC7F,gBAAgB,EAAE,oFAA6E,EAC/F,MAAM,EAAE,+GAA+G,GAOxH;;AAjBD,AAYE,KAZG,CAAC,EAAE,CAYN,CAAC,CAAC,EACA,SAAS,EAAE,IAAI,GAGhB;;AAhBH,AAeI,KAfC,CAAC,EAAE,CAYN,CAAC,CAGC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,GAAI;;AAI9B,AAAA,IAAI,AAAA,OAAO,EACX,EAAE,CAAC,OAAO,EACV,IAAI,AAAA,OAAO,EACX,EAAE,CAAC,OAAO,CAAC,EACT,KAAK,EAAE,OAAO,GACf;;AAED,AAAA,IAAI,AAAA,KAAK,EACT,EAAE,CAAC,KAAK,EACR,IAAI,AAAA,OAAO,EACX,EAAE,CAAC,OAAO,CAAC,EACT,KAAK,EAAE,OAAO,GACf;;AAED,AAAA,IAAI,AAAA,OAAO,EACX,IAAI,AAAA,KAAK,EACT,IAAI,AAAA,OAAO,EACX,IAAI,AAAA,OAAO,CAAC,EACV,aAAa,EAAE,GAAG,GACnB;;AAED,gBAAgB;AAEhB,AAAA,KAAK,CAAC,EACJ,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,KAAK,EAClB,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,IAAI,ELlyBlB,qBAAqB,EKmyBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,ELlyB/B,kBAAkB,EKkyBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,ELjyB1B,aAAa,EKiyBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAClC,QAAQ,EAAE,QAAQ,EL1yBlB,kBAAkB,EK2yBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAAE,KAAK,CAAC,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,EL1yB/G,eAAe,EK0yBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAAE,KAAK,CAAC,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,ELzyB1G,UAAU,EKyyBE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAoB,EAAE,KAAK,CAAC,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,EAClH,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,upBAAupB,EACzqB,gBAAgB,EAAE,2EAA2E,EAC7F,gBAAgB,EAAE,sDAAsD,EACxE,gBAAgB,EAAE,mDAAmD,EACrE,gBAAgB,EAAE,iDAAiD,EACnE,gBAAgB,EAAE,oDAAmD,EACrE,MAAM,EAAE,2GAA2G,GACpH;;AAED,MAAM,mBACJ,GAAA,AAAA,KAAK,CAAC,EAAE,YAAY,EAAE,KAAK,GAAI,EAAD;;AAGhC,MAAM,mBACJ,GAAA,AAAA,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,GAAI,EAAD;;AAG/B,AAAA,YAAY,CAAC,EACT,SAAS,EAAE,IAAI,GAClB;;AAED,AACE,KADG,CACD,MAAM,CAAC,EACP,OAAO,EAAE,EAAE,EACX,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,KAAK,EACV,IAAI,EAAE,CAAC,EACP,YAAY,EAAE,iCAAiC,EAC/C,YAAY,EAAE,KAAK,EACnB,YAAY,EAAE,GAAG,EACjB,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,GACV;;AAXH,AAaE,KAbG,CAaH,EAAE,EAbJ,KAAK,CAcH,CAAC,CAAC,EACA,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,IAAI,GACZ;;AAjBH,AAmBE,KAnBG,CAmBH,EAAE,CAAC,EACD,WAAW,EAAE,KAAK,EAClB,WAAW,EAAE,GAAG,EAChB,UAAU,EAAE,MAAM,GACnB;;AAvBH,AAyBE,KAzBG,CAyBH,CAAC,CAAC,EACA,WAAW,EAAE,GAAG,EAChB,SAAS,EAAE,KAAK,GACjB;;AA5BH,AA8BE,KA9BG,CA8BD,KAAK,CAAC,EACN,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,GAAG,EAChB,WAAW,EAAE,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,GACrC;;AAGH,AAAA,KAAK,CAAC,EACJ,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,upBAAupB,EACzqB,gBAAgB,EAAE,2EAA2E,EAC7F,gBAAgB,EAAE,sDAAsD,EACxE,gBAAgB,EAAE,mDAAmD,EACrE,gBAAgB,EAAE,iDAAiD,EACnE,gBAAgB,EAAE,oDAAmD,EACrE,MAAM,EAAE,2GAA2G,GACpH;;AAED,AAAA,QAAQ,CAAC,EACP,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,upBAAupB,EACzqB,gBAAgB,EAAE,2EAA2E,EAC7F,gBAAgB,EAAE,sDAAsD,EACxE,gBAAgB,EAAE,mDAAmD,EACrE,gBAAgB,EAAE,iDAAiD,EACnE,gBAAgB,EAAE,oDAAmD,EACrE,MAAM,EAAE,2GAA2G,GACpH;;AAED,AAAA,WAAW,CAAC,EACV,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,upBAAupB,EACzqB,gBAAgB,EAAE,2EAAiG,EACnH,gBAAgB,EAAE,sDAA4E,EAC9F,gBAAgB,EAAE,mDAAyE,EAC3F,gBAAgB,EAAE,iDAAuE,EACzF,gBAAgB,EAAE,oDAAyE,EAC3F,MAAM,EAAE,2GAA2G,GACpH;;AAED,AAAA,KAAK,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,uCAAuC,GAAI;;AAExE,AAAA,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,uCAAuC,GAAI;;AAE3E,AAAA,WAAW,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,uCAAuC,GAAI;;AAE9E,AAAA,KAAK,CAAC,KAAK,CAAC,EACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,GAAG,EAChB,WAAW,EAAE,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,GACrC;;AAED,AAAA,QAAQ,CAAC,KAAK,CAAC,EACb,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,GAAG,EAChB,WAAW,EAAE,CAAC,CAAE,IAAG,CAAC,CAAC,CAAC,kBAAc,GACrC;;AAED,AAAA,WAAW,CAAC,KAAK,CAAC,EAChB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,GAAG,EAChB,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAqB,GAC3C;;AAED,uBAAuB;AAEvB,MAAM,mBACJ,GAAA,AAAA,qBAAqB,CAAC,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,GAChB,EAAA;;AAIH,AAAA,gBAAgB,CAAC,EACf,OAAO,EAAE,IAAI,GACd;;AAED,MAAM,8BACJ,GAAA,AAAA,gBAAgB,CAAC,EACf,OAAO,EAAE,gBAAgB,GAC1B,CACD,AAAA,CAAC,CAAC,gBAAgB,CAAC,EACjB,OAAO,EAAE,iBAAiB,GAC3B,EAHA;;AAOH,+FAEE;AACF,AAAA,QAAQ,CAAC,EACP,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,CAAC,GACV;;AAED,AAAA,UAAU,CAAC,EACT,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,KAAK,EACjB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,IAAI,GACb;;AAED,AAAA,UAAU,CAAC,EACT,gBAAgB,EAAE,IAAI,GACvB"
+}
\ No newline at end of file
diff --git a/develop/index.html b/develop/index.html
index 88ae067..b8e626b 100644
--- a/develop/index.html
+++ b/develop/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Developing Calcite</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -95,7 +95,7 @@
 <a href="https://bugs.openjdk.java.net/browse/JDK-8160928">JDK-8160928</a>,
 <a href="https://bugs.openjdk.java.net/browse/JDK-8144185">JDK-8144185</a> ), so make sure you use up to date Java.</p>
 
-<p>Create a local copy of the Git repository, <code class="highlighter-rouge">cd</code> to its root directory,
+<p>Create a local copy of the Git repository, <code class="language-plaintext highlighter-rouge">cd</code> to its root directory,
 then build using Gradle:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>git clone git://github.com/apache/calcite.git
@@ -182,14 +182,14 @@
 <p>Fork the GitHub repository, and create a branch for your feature.</p>
 
 <p>Develop your feature and test cases, and make sure that
-<code class="highlighter-rouge">./gradlew build</code> succeeds. (Run extra tests if your change warrants it.)</p>
+<code class="language-plaintext highlighter-rouge">./gradlew build</code> succeeds. (Run extra tests if your change warrants it.)</p>
 
 <p>Commit your change to your branch, and use a comment that starts with
 the JIRA case number, like this:</p>
 
 <figure class="highlight"><pre><code class="language-text" data-lang="text">[CALCITE-345] AssertionError in RexToLixTranslator comparing to date literal</code></pre></figure>
 
-<p>If your change had multiple commits, use <code class="highlighter-rouge">git rebase -i master</code> to
+<p>If your change had multiple commits, use <code class="language-plaintext highlighter-rouge">git rebase -i main</code> to
 squash them into a single commit, and to bring your code up to date
 with the latest on the main line.</p>
 
@@ -216,7 +216,7 @@
 </ul>
 
 <p>Then push your commit(s) to GitHub, and create a pull request from
-your branch to the calcite master branch. Update the JIRA case
+your branch to the calcite main branch. Update the JIRA case
 to reference your pull request, and a committer will review your
 changes.</p>
 
@@ -232,70 +232,70 @@
 branch and then push the commit(s) to GitHub. You are encouraged to use regular
  (non-rebased) commits on top of previously existing ones.</p>
 
-<p>When pushing the changes to GitHub, you should refrain from using the <code class="highlighter-rouge">--force</code>
+<p>When pushing the changes to GitHub, you should refrain from using the <code class="language-plaintext highlighter-rouge">--force</code>
 parameter and its alternatives. You may choose to force push your changes under
  certain conditions:</p>
 <ul>
   <li>the pull request has been submitted less than 10 minutes ago and there is no
  pending discussion (in the PR and/or in JIRA) concerning it;</li>
   <li>a reviewer has explicitly asked you to perform some modifications that
- require the use of the <code class="highlighter-rouge">--force</code> option.</li>
+ require the use of the <code class="language-plaintext highlighter-rouge">--force</code> option.</li>
 </ul>
 
 <p>In the special case, that the CI build failed, and the failure is not
-caused by your changes create an empty commit (<code class="highlighter-rouge">git commit --allow-empty</code>) and
+caused by your changes create an empty commit (<code class="language-plaintext highlighter-rouge">git commit --allow-empty</code>) and
 push it.</p>
 
 <h2 id="null-safety">Null safety</h2>
 
-<p>Apache Calcite uses the Checker Framework to avoid unexpected <code class="highlighter-rouge">NullPointerExceptions</code>.
+<p>Apache Calcite uses the Checker Framework to avoid unexpected <code class="language-plaintext highlighter-rouge">NullPointerExceptions</code>.
 You might find a detailed documentation at https://checkerframework.org/</p>
 
 <p>Note: only main code is verified for now, so nullness annotation is not enforced in test code.</p>
 
 <p>To execute the Checker Framework locally please use the following command:</p>
 
-<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./gradlew -PenableCheckerframework :linq4j:classes :core:classes
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./gradlew -PenableCheckerframework :linq4j:classes :core:classes
 </code></pre></div></div>
 
 <p>Here’s a small introduction to null-safe programming:</p>
 
 <ul>
-  <li>By default, parameters, return values and fields are non-nullable, so refrain from using <code class="highlighter-rouge">@NonNull</code>
+  <li>By default, parameters, return values and fields are non-nullable, so refrain from using <code class="language-plaintext highlighter-rouge">@NonNull</code>
 </li>
-  <li>Local variables infer nullness from the expression, so you can write <code class="highlighter-rouge">Object v = ...</code> instead of <code class="highlighter-rouge">@Nullable Object v = ...</code>
+  <li>Local variables infer nullness from the expression, so you can write <code class="language-plaintext highlighter-rouge">Object v = ...</code> instead of <code class="language-plaintext highlighter-rouge">@Nullable Object v = ...</code>
 </li>
   <li>
-    <p>Avoid the use of <code class="highlighter-rouge">javax.annotation.*</code> annotations. The annotations from <code class="highlighter-rouge">jsr305</code> do not support cases like <code class="highlighter-rouge">List&lt;@Nullable String&gt;</code>
-so it is better to stick with <code class="highlighter-rouge">org.checkerframework.checker.nullness.qual.Nullable</code>.
-Unfortunately, Guava (as of <code class="highlighter-rouge">29-jre</code>) has <strong>both</strong> <code class="highlighter-rouge">jsr305</code> and <code class="highlighter-rouge">checker-qual</code> dependencies at the same time,
-so you might want to configure your IDE to exclude <code class="highlighter-rouge">javax.annotation.*</code> annotations from code completion.</p>
+    <p>Avoid the use of <code class="language-plaintext highlighter-rouge">javax.annotation.*</code> annotations. The annotations from <code class="language-plaintext highlighter-rouge">jsr305</code> do not support cases like <code class="language-plaintext highlighter-rouge">List&lt;@Nullable String&gt;</code>
+so it is better to stick with <code class="language-plaintext highlighter-rouge">org.checkerframework.checker.nullness.qual.Nullable</code>.
+Unfortunately, Guava (as of <code class="language-plaintext highlighter-rouge">29-jre</code>) has <strong>both</strong> <code class="language-plaintext highlighter-rouge">jsr305</code> and <code class="language-plaintext highlighter-rouge">checker-qual</code> dependencies at the same time,
+so you might want to configure your IDE to exclude <code class="language-plaintext highlighter-rouge">javax.annotation.*</code> annotations from code completion.</p>
   </li>
   <li>
     <p>The Checker Framework verifies code method by method. That means, it can’t account for method execution order.
-That is why <code class="highlighter-rouge">@Nullable</code> fields should be verified in each method where they are used.
+That is why <code class="language-plaintext highlighter-rouge">@Nullable</code> fields should be verified in each method where they are used.
 If you split logic into multiple methods, you might want verify null once, then pass it via non-nullable parameters.
-For fields that start as null and become non-null later, use <code class="highlighter-rouge">@MonotonicNonNull</code>.
-For fields that have already been checked against null, use <code class="highlighter-rouge">@RequiresNonNull</code>.</p>
+For fields that start as null and become non-null later, use <code class="language-plaintext highlighter-rouge">@MonotonicNonNull</code>.
+For fields that have already been checked against null, use <code class="language-plaintext highlighter-rouge">@RequiresNonNull</code>.</p>
   </li>
   <li>
-    <p>If you are absolutely sure the value is non-null, you might use <code class="highlighter-rouge">org.apache.calcite.linq4j.Nullness.castNonNull(T)</code>.
-The intention behind <code class="highlighter-rouge">castNonNull</code> is like <code class="highlighter-rouge">trustMeThisIsNeverNullHoweverTheVerifierCantTellYet(...)</code></p>
+    <p>If you are absolutely sure the value is non-null, you might use <code class="language-plaintext highlighter-rouge">org.apache.calcite.linq4j.Nullness.castNonNull(T)</code>.
+The intention behind <code class="language-plaintext highlighter-rouge">castNonNull</code> is like <code class="language-plaintext highlighter-rouge">trustMeThisIsNeverNullHoweverTheVerifierCantTellYet(...)</code></p>
   </li>
   <li>
-    <p>If the expression is nullable, however, you need to pass it to a non-null method, use <code class="highlighter-rouge">Objects.requireNonNull</code>.
+    <p>If the expression is nullable, however, you need to pass it to a non-null method, use <code class="language-plaintext highlighter-rouge">Objects.requireNonNull</code>.
 It allows to have a better error message that includes context information.</p>
   </li>
   <li>
     <p>The Checker Framework comes with an annotated JDK, however, there might be invalid annotations.
-In that cases, stub files can be placed to <code class="highlighter-rouge">/src/main/config/checkerframework</code> to override the annotations.
-It is important the files have <code class="highlighter-rouge">.astub</code> extension otherwise they will be ignored.</p>
+In that cases, stub files can be placed to <code class="language-plaintext highlighter-rouge">/src/main/config/checkerframework</code> to override the annotations.
+It is important the files have <code class="language-plaintext highlighter-rouge">.astub</code> extension otherwise they will be ignored.</p>
   </li>
   <li>
     <p>In array types, a type annotation appears immediately before the type component (either the array or the array component) it refers to.
 This is explained in the <a href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.7.4">Java Language Specification</a>.</p>
 
-    <div class="highlighter-rouge">
+    <div class="language-plaintext highlighter-rouge">
 <div class="highlight"><pre class="highlight"><code>  String nonNullable;
   @Nullable String nullable;
 
@@ -333,7 +333,7 @@
   <li>
     <p>By default, generic parameters can be both nullable and non-nullable:</p>
 
-    <div class="highlighter-rouge">
+    <div class="language-plaintext highlighter-rouge">
 <div class="highlight"><pre class="highlight"><code>  class Holder&lt;T&gt; { // can be both nullable
       final T value;
       T get() {
@@ -345,10 +345,10 @@
 </code></pre></div>    </div>
   </li>
   <li>
-    <p>However, default bounds are non-nullable, so if you write <code class="highlighter-rouge">&lt;T extends Number&gt;</code>,
-then it is the same as <code class="highlighter-rouge">&lt;T extends @NonNull Number&gt;</code>.</p>
+    <p>However, default bounds are non-nullable, so if you write <code class="language-plaintext highlighter-rouge">&lt;T extends Number&gt;</code>,
+then it is the same as <code class="language-plaintext highlighter-rouge">&lt;T extends @NonNull Number&gt;</code>.</p>
 
-    <div class="highlighter-rouge">
+    <div class="language-plaintext highlighter-rouge">
 <div class="highlight"><pre class="highlight"><code>  class Holder&lt;T extends Number&gt; { // note how this T never permits nulls
       final T value;
       Holder(T value) {
@@ -360,12 +360,12 @@
 </code></pre></div>    </div>
   </li>
   <li>
-    <p>If you need “either nullable or non-nullable <code class="highlighter-rouge">Number</code>”, then use <code class="highlighter-rouge">&lt;T extends @Nullable Number&gt;</code>,</p>
+    <p>If you need “either nullable or non-nullable <code class="language-plaintext highlighter-rouge">Number</code>”, then use <code class="language-plaintext highlighter-rouge">&lt;T extends @Nullable Number&gt;</code>,</p>
   </li>
   <li>
-    <p>If you need to ensure the type is <strong>always</strong> nullable, then use <code class="highlighter-rouge">&lt;@Nullable T&gt;</code> as follows:</p>
+    <p>If you need to ensure the type is <strong>always</strong> nullable, then use <code class="language-plaintext highlighter-rouge">&lt;@Nullable T&gt;</code> as follows:</p>
 
-    <div class="highlighter-rouge">
+    <div class="language-plaintext highlighter-rouge">
 <div class="highlight"><pre class="highlight"><code>  class Holder&lt;@Nullable T&gt; { // note how this requires T to always be nullable
       protected T get() { // Default implementation.
           // Default implementation returns null, so it requires that T must always be nullable
@@ -382,7 +382,7 @@
 
 <h2 id="continuous-integration-testing">Continuous Integration Testing</h2>
 
-<p>Calcite exploits <a href="https://github.com/apache/calcite/actions?query=branch%3Amaster">GitHub actions</a>
+<p>Calcite exploits <a href="https://github.com/apache/calcite/actions?query=branch%3Amain">GitHub actions</a>
 and <a href="https://app.travis-ci.com/github/apache/calcite">Travis</a> for continuous integration testing.
 In the past, there were also Jenkins jobs on the <a href="https://builds.apache.org/">ASF-hosted</a>
 infrastructure, but they are not maintained anymore.</p>
@@ -430,7 +430,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/adapter.html b/docs/adapter.html
index 00114cc..3c2a0fa 100644
--- a/docs/adapter.html
+++ b/docs/adapter.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Adapters</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -144,7 +144,7 @@
 
 <p>jdbc:calcite:property=value;property2=value2</p>
 
-<p>where <code class="highlighter-rouge">property</code>, <code class="highlighter-rouge">property2</code> are properties as described below.
+<p>where <code class="language-plaintext highlighter-rouge">property</code>, <code class="language-plaintext highlighter-rouge">property2</code> are properties as described below.
 (Connect strings are compliant with OLE DB Connect String syntax,
 as implemented by Avatica’s
 <a href="/avatica/apidocs/org/apache/calcite/avatica/ConnectStringParser.html">ConnectStringParser</a>.)</p>
@@ -161,19 +161,19 @@
   <tbody>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#APPROXIMATE_DECIMAL">approximateDecimal</a></td>
-      <td style="text-align: left">Whether approximate results from aggregate functions on <code class="highlighter-rouge">DECIMAL</code> types are acceptable.</td>
+      <td style="text-align: left">Whether approximate results from aggregate functions on <code class="language-plaintext highlighter-rouge">DECIMAL</code> types are acceptable.</td>
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#APPROXIMATE_DISTINCT_COUNT">approximateDistinctCount</a></td>
-      <td style="text-align: left">Whether approximate results from <code class="highlighter-rouge">COUNT(DISTINCT ...)</code> aggregate functions are acceptable.</td>
+      <td style="text-align: left">Whether approximate results from <code class="language-plaintext highlighter-rouge">COUNT(DISTINCT ...)</code> aggregate functions are acceptable.</td>
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#APPROXIMATE_TOP_N">approximateTopN</a></td>
-      <td style="text-align: left">Whether approximate results from “Top N” queries (<code class="highlighter-rouge">ORDER BY aggFun() DESC LIMIT n</code>) are acceptable.</td>
+      <td style="text-align: left">Whether approximate results from “Top N” queries (<code class="language-plaintext highlighter-rouge">ORDER BY aggFun() DESC LIMIT n</code>) are acceptable.</td>
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#CASE_SENSITIVE">caseSensitive</a></td>
-      <td style="text-align: left">Whether identifiers are matched case-sensitively. If not specified, value from <code class="highlighter-rouge">lex</code> is used.</td>
+      <td style="text-align: left">Whether identifiers are matched case-sensitively. If not specified, value from <code class="language-plaintext highlighter-rouge">lex</code> is used.</td>
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#CONFORMANCE">conformance</a></td>
@@ -209,19 +209,19 @@
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#MODEL">model</a></td>
-      <td style="text-align: left">URI of the JSON/YAML model file or inline like <code class="highlighter-rouge">inline:{...}</code> for JSON and <code class="highlighter-rouge">inline:...</code> for YAML.</td>
+      <td style="text-align: left">URI of the JSON/YAML model file or inline like <code class="language-plaintext highlighter-rouge">inline:{...}</code> for JSON and <code class="language-plaintext highlighter-rouge">inline:...</code> for YAML.</td>
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#PARSER_FACTORY">parserFactory</a></td>
-      <td style="text-align: left">Parser factory. The name of a class that implements <a href="/javadocAggregate/org/apache/calcite/sql/parser/SqlParserImplFactory.html"><code>interface SqlParserImplFactory</code></a> and has a public default constructor or an <code class="highlighter-rouge">INSTANCE</code> constant.</td>
+      <td style="text-align: left">Parser factory. The name of a class that implements <a href="/javadocAggregate/org/apache/calcite/sql/parser/SqlParserImplFactory.html"><code>interface SqlParserImplFactory</code></a> and has a public default constructor or an <code class="language-plaintext highlighter-rouge">INSTANCE</code> constant.</td>
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#QUOTING">quoting</a></td>
-      <td style="text-align: left">How identifiers are quoted. Values are DOUBLE_QUOTE, BACK_TICK, BACK_TICK_BACKSLASH, BRACKET. If not specified, value from <code class="highlighter-rouge">lex</code> is used.</td>
+      <td style="text-align: left">How identifiers are quoted. Values are DOUBLE_QUOTE, BACK_TICK, BACK_TICK_BACKSLASH, BRACKET. If not specified, value from <code class="language-plaintext highlighter-rouge">lex</code> is used.</td>
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#QUOTED_CASING">quotedCasing</a></td>
-      <td style="text-align: left">How identifiers are stored if they are quoted. Values are UNCHANGED, TO_UPPER, TO_LOWER. If not specified, value from <code class="highlighter-rouge">lex</code> is used.</td>
+      <td style="text-align: left">How identifiers are stored if they are quoted. Values are UNCHANGED, TO_UPPER, TO_LOWER. If not specified, value from <code class="language-plaintext highlighter-rouge">lex</code> is used.</td>
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#SCHEMA">schema</a></td>
@@ -229,11 +229,11 @@
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#SCHEMA_FACTORY">schemaFactory</a></td>
-      <td style="text-align: left">Schema factory. The name of a class that implements <a href="/javadocAggregate/org/apache/calcite/schema/SchemaFactory.html"><code>interface SchemaFactory</code></a> and has a public default constructor or an <code class="highlighter-rouge">INSTANCE</code> constant. Ignored if <code class="highlighter-rouge">model</code> is specified.</td>
+      <td style="text-align: left">Schema factory. The name of a class that implements <a href="/javadocAggregate/org/apache/calcite/schema/SchemaFactory.html"><code>interface SchemaFactory</code></a> and has a public default constructor or an <code class="language-plaintext highlighter-rouge">INSTANCE</code> constant. Ignored if <code class="language-plaintext highlighter-rouge">model</code> is specified.</td>
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#SCHEMA_TYPE">schemaType</a></td>
-      <td style="text-align: left">Schema type. Value must be “MAP” (the default), “JDBC”, or “CUSTOM” (implicit if <code class="highlighter-rouge">schemaFactory</code> is specified). Ignored if <code class="highlighter-rouge">model</code> is specified.</td>
+      <td style="text-align: left">Schema type. Value must be “MAP” (the default), “JDBC”, or “CUSTOM” (implicit if <code class="language-plaintext highlighter-rouge">schemaFactory</code> is specified). Ignored if <code class="language-plaintext highlighter-rouge">model</code> is specified.</td>
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#SPARK">spark</a></td>
@@ -245,11 +245,11 @@
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#TYPE_SYSTEM">typeSystem</a></td>
-      <td style="text-align: left">Type system. The name of a class that implements <a href="/javadocAggregate/org/apache/calcite/rel/type/RelDataTypeSystem.html"><code>interface RelDataTypeSystem</code></a> and has a public default constructor or an <code class="highlighter-rouge">INSTANCE</code> constant.</td>
+      <td style="text-align: left">Type system. The name of a class that implements <a href="/javadocAggregate/org/apache/calcite/rel/type/RelDataTypeSystem.html"><code>interface RelDataTypeSystem</code></a> and has a public default constructor or an <code class="language-plaintext highlighter-rouge">INSTANCE</code> constant.</td>
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#UNQUOTED_CASING">unquotedCasing</a></td>
-      <td style="text-align: left">How identifiers are stored if they are not quoted. Values are UNCHANGED, TO_UPPER, TO_LOWER. If not specified, value from <code class="highlighter-rouge">lex</code> is used.</td>
+      <td style="text-align: left">How identifiers are stored if they are not quoted. Values are UNCHANGED, TO_UPPER, TO_LOWER. If not specified, value from <code class="language-plaintext highlighter-rouge">lex</code> is used.</td>
     </tr>
     <tr>
       <td style="text-align: left"><a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#TYPE_COERCION">typeCoercion</a></td>
@@ -273,71 +273,71 @@
 <p>makes a connection to the Cassandra adapter, equivalent to writing the following model file:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="nl">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
-      </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'twissandra'</span><span class="p">,</span><span class="w">
-      </span><span class="err">factory</span><span class="p">:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.cassandra.CassandraSchemaFactory'</span><span class="p">,</span><span class="w">
-      </span><span class="err">operand</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="err">host</span><span class="p">:</span><span class="w"> </span><span class="err">'localhost'</span><span class="p">,</span><span class="w">
-        </span><span class="err">keyspace</span><span class="p">:</span><span class="w"> </span><span class="err">'twissandra'</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span class="err">'twissandra'</span><span class="p">,</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.cassandra.CassandraSchemaFactory'</span><span class="p">,</span><span class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="err">host:</span><span class="w"> </span><span class="err">'localhost'</span><span class="p">,</span><span class="w">
+        </span><span class="err">keyspace:</span><span class="w"> </span><span class="err">'twissandra'</span><span class="w">
       </span><span class="p">}</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
-<p>Note how each key in the <code class="highlighter-rouge">operand</code> section appears with a <code class="highlighter-rouge">schema.</code> prefix in the connect string.</p>
+<p>Note how each key in the <code class="language-plaintext highlighter-rouge">operand</code> section appears with a <code class="language-plaintext highlighter-rouge">schema.</code> prefix in the connect string.</p>
 
 <h2 id="server">Server</h2>
 
-<p>Calcite’s core module (<code class="highlighter-rouge">calcite-core</code>) supports SQL queries (<code class="highlighter-rouge">SELECT</code>) and DML
-operations  (<code class="highlighter-rouge">INSERT</code>, <code class="highlighter-rouge">UPDATE</code>, <code class="highlighter-rouge">DELETE</code>, <code class="highlighter-rouge">MERGE</code>)
-but does not support DDL operations such as <code class="highlighter-rouge">CREATE SCHEMA</code> or <code class="highlighter-rouge">CREATE TABLE</code>.
+<p>Calcite’s core module (<code class="language-plaintext highlighter-rouge">calcite-core</code>) supports SQL queries (<code class="language-plaintext highlighter-rouge">SELECT</code>) and DML
+operations  (<code class="language-plaintext highlighter-rouge">INSERT</code>, <code class="language-plaintext highlighter-rouge">UPDATE</code>, <code class="language-plaintext highlighter-rouge">DELETE</code>, <code class="language-plaintext highlighter-rouge">MERGE</code>)
+but does not support DDL operations such as <code class="language-plaintext highlighter-rouge">CREATE SCHEMA</code> or <code class="language-plaintext highlighter-rouge">CREATE TABLE</code>.
 As we shall see, DDL complicates the state model of the repository and makes
 the parser more difficult to extend, so we left DDL out of the core.</p>
 
-<p>The server module (<code class="highlighter-rouge">calcite-server</code>) adds DDL support to Calcite.
+<p>The server module (<code class="language-plaintext highlighter-rouge">calcite-server</code>) adds DDL support to Calcite.
 It extends the SQL parser,
 <a href="#extending-the-parser">using the same mechanism used by sub-projects</a>,
 adding some DDL commands:</p>
 
 <ul>
   <li>
-<code class="highlighter-rouge">CREATE</code> and <code class="highlighter-rouge">DROP SCHEMA</code>
+<code class="language-plaintext highlighter-rouge">CREATE</code> and <code class="language-plaintext highlighter-rouge">DROP SCHEMA</code>
 </li>
   <li>
-<code class="highlighter-rouge">CREATE</code> and <code class="highlighter-rouge">DROP FOREIGN SCHEMA</code>
+<code class="language-plaintext highlighter-rouge">CREATE</code> and <code class="language-plaintext highlighter-rouge">DROP FOREIGN SCHEMA</code>
 </li>
   <li>
-<code class="highlighter-rouge">CREATE</code> and <code class="highlighter-rouge">DROP TABLE</code> (including <code class="highlighter-rouge">CREATE TABLE ... AS SELECT</code>)</li>
+<code class="language-plaintext highlighter-rouge">CREATE</code> and <code class="language-plaintext highlighter-rouge">DROP TABLE</code> (including <code class="language-plaintext highlighter-rouge">CREATE TABLE ... AS SELECT</code>)</li>
   <li>
-<code class="highlighter-rouge">CREATE</code> and <code class="highlighter-rouge">DROP MATERIALIZED VIEW</code>
+<code class="language-plaintext highlighter-rouge">CREATE</code> and <code class="language-plaintext highlighter-rouge">DROP MATERIALIZED VIEW</code>
 </li>
   <li>
-<code class="highlighter-rouge">CREATE</code> and <code class="highlighter-rouge">DROP VIEW</code>
+<code class="language-plaintext highlighter-rouge">CREATE</code> and <code class="language-plaintext highlighter-rouge">DROP VIEW</code>
 </li>
   <li>
-<code class="highlighter-rouge">CREATE</code> and <code class="highlighter-rouge">DROP FUNCTION</code>
+<code class="language-plaintext highlighter-rouge">CREATE</code> and <code class="language-plaintext highlighter-rouge">DROP FUNCTION</code>
 </li>
   <li>
-<code class="highlighter-rouge">CREATE</code> and <code class="highlighter-rouge">DROP TYPE</code>
+<code class="language-plaintext highlighter-rouge">CREATE</code> and <code class="language-plaintext highlighter-rouge">DROP TYPE</code>
 </li>
 </ul>
 
 <p>Commands are described in the <a href="reference.html#ddl-extensions">SQL reference</a>.</p>
 
-<p>To enable, include <code class="highlighter-rouge">calcite-server.jar</code> in your class path, and add
-<code class="highlighter-rouge">parserFactory=org.apache.calcite.sql.parser.ddl.SqlDdlParserImpl#FACTORY</code>
+<p>To enable, include <code class="language-plaintext highlighter-rouge">calcite-server.jar</code> in your class path, and add
+<code class="language-plaintext highlighter-rouge">parserFactory=org.apache.calcite.sql.parser.ddl.SqlDdlParserImpl#FACTORY</code>
 to the JDBC connect string (see connect string property
 <a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#PARSER_FACTORY">parserFactory</a>).
-Here is an example using the <code class="highlighter-rouge">sqlline</code> shell.</p>
+Here is an example using the <code class="language-plaintext highlighter-rouge">sqlline</code> shell.</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="err">$</span> <span class="p">.</span><span class="o">/</span><span class="n">sqlline</span>
 <span class="n">sqlline</span> <span class="k">version</span> <span class="mi">1</span><span class="p">.</span><span class="mi">3</span><span class="p">.</span><span class="mi">0</span>
 <span class="o">&gt;</span> <span class="o">!</span><span class="k">connect</span> <span class="n">jdbc</span><span class="p">:</span><span class="n">calcite</span><span class="p">:</span><span class="n">parserFactory</span><span class="o">=</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">calcite</span><span class="p">.</span><span class="k">sql</span><span class="p">.</span><span class="n">parser</span><span class="p">.</span><span class="n">ddl</span><span class="p">.</span><span class="n">SqlDdlParserImpl</span><span class="o">#</span><span class="n">FACTORY</span> <span class="n">sa</span> <span class="nv">""</span>
-<span class="o">&gt;</span> <span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">t</span> <span class="p">(</span><span class="n">i</span> <span class="n">INTEGER</span><span class="p">,</span> <span class="n">j</span> <span class="n">VARCHAR</span><span class="p">(</span><span class="mi">10</span><span class="p">));</span>
+<span class="o">&gt;</span> <span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">t</span> <span class="p">(</span><span class="n">i</span> <span class="nb">INTEGER</span><span class="p">,</span> <span class="n">j</span> <span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">10</span><span class="p">));</span>
 <span class="k">No</span> <span class="k">rows</span> <span class="n">affected</span> <span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">293</span> <span class="n">seconds</span><span class="p">)</span>
 <span class="o">&gt;</span> <span class="k">INSERT</span> <span class="k">INTO</span> <span class="n">t</span> <span class="k">VALUES</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="s1">'a'</span><span class="p">),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="s1">'bc'</span><span class="p">);</span>
 <span class="mi">2</span> <span class="k">rows</span> <span class="n">affected</span> <span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">873</span> <span class="n">seconds</span><span class="p">)</span>
@@ -352,17 +352,17 @@
 <span class="mi">1</span> <span class="k">row</span> <span class="n">selected</span> <span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">148</span> <span class="n">seconds</span><span class="p">)</span>
 <span class="o">&gt;</span> <span class="o">!</span><span class="n">quit</span></code></pre></figure>
 
-<p>The <code class="highlighter-rouge">calcite-server</code> module is optional.
+<p>The <code class="language-plaintext highlighter-rouge">calcite-server</code> module is optional.
 One of its goals is to showcase Calcite’s capabilities
 (for example materialized views, foreign tables and generated columns) using
 concise examples that you can try from the SQL command line.
-All of the capabilities used by <code class="highlighter-rouge">calcite-server</code> are available via APIs in
-<code class="highlighter-rouge">calcite-core</code>.</p>
+All of the capabilities used by <code class="language-plaintext highlighter-rouge">calcite-server</code> are available via APIs in
+<code class="language-plaintext highlighter-rouge">calcite-core</code>.</p>
 
 <p>If you are the author of a sub-project, it is unlikely that your syntax
-extensions match those in <code class="highlighter-rouge">calcite-server</code>, so we recommend that you add your
+extensions match those in <code class="language-plaintext highlighter-rouge">calcite-server</code>, so we recommend that you add your
 SQL syntax extensions by <a href="#extending-the-parser">extending the core parser</a>;
-if you want DDL commands, you may be able to copy-paste from <code class="highlighter-rouge">calcite-server</code>
+if you want DDL commands, you may be able to copy-paste from <code class="language-plaintext highlighter-rouge">calcite-server</code>
 into your project.</p>
 
 <p>At present, the repository is not persisted. As you execute DDL commands, you
@@ -377,7 +377,7 @@
 Calcite manages data in multiple foreign schemas, but to a client the data
 all seems to be in the same place. Calcite chooses where processing should
 occur, and whether to create copies of data for efficiency.
-The <code class="highlighter-rouge">calcite-server</code> module is a step towards that goal; an
+The <code class="language-plaintext highlighter-rouge">calcite-server</code> module is a step towards that goal; an
 industry-strength solution would require further on packaging (to make Calcite
 runnable as a service), repository persistence, authorization and security.</p>
 
@@ -405,11 +405,11 @@
 (see <a href="/javadocAggregate/org/apache/calcite/sql/SqlOperator.html"><code>interface SqlOperator</code></a>).</p>
 
 <p>If your operator does not adhere to standard SQL function syntax,
-“<code class="highlighter-rouge">f(arg1, arg2, ...)</code>”, then you need to
+“<code class="language-plaintext highlighter-rouge">f(arg1, arg2, ...)</code>”, then you need to
 <a href="#extending-the-parser">extend the parser</a>.</p>
 
 <p>There are many good examples in the tests:
-<a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/test/UdfTest.java"><code>class UdfTest</code></a>
+<a href="https://github.com/apache/calcite/blob/main/core/src/test/java/org/apache/calcite/test/UdfTest.java"><code>class UdfTest</code></a>
 tests user-defined functions and user-defined aggregate functions.</p>
 
 <h3 id="aggregate-functions">Aggregate functions</h3>
@@ -420,30 +420,30 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">init</code> creates an accumulator;</li>
+<code class="language-plaintext highlighter-rouge">init</code> creates an accumulator;</li>
   <li>
-<code class="highlighter-rouge">add</code> adds one row’s value to an accumulator;</li>
+<code class="language-plaintext highlighter-rouge">add</code> adds one row’s value to an accumulator;</li>
   <li>
-<code class="highlighter-rouge">merge</code> combines two accumulators into one;</li>
+<code class="language-plaintext highlighter-rouge">merge</code> combines two accumulators into one;</li>
   <li>
-<code class="highlighter-rouge">result</code> finalizes an accumulator and converts it to a result.</li>
+<code class="language-plaintext highlighter-rouge">result</code> finalizes an accumulator and converts it to a result.</li>
 </ul>
 
-<p>For example, the methods (in pseudo-code) for <code class="highlighter-rouge">SUM(int)</code> are as follows:</p>
+<p>For example, the methods (in pseudo-code) for <code class="language-plaintext highlighter-rouge">SUM(int)</code> are as follows:</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="n">struct</span> <span class="n">Accumulator</span> <span class="o">{</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="n">struct</span> <span class="nc">Accumulator</span> <span class="o">{</span>
   <span class="kd">final</span> <span class="kt">int</span> <span class="n">sum</span><span class="o">;</span>
 <span class="o">}</span>
-<span class="n">Accumulator</span> <span class="nf">init</span><span class="o">()</span> <span class="o">{</span>
+<span class="nc">Accumulator</span> <span class="nf">init</span><span class="o">()</span> <span class="o">{</span>
   <span class="k">return</span> <span class="k">new</span> <span class="nf">Accumulator</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
 <span class="o">}</span>
-<span class="n">Accumulator</span> <span class="nf">add</span><span class="o">(</span><span class="n">Accumulator</span> <span class="n">a</span><span class="o">,</span> <span class="kt">int</span> <span class="n">x</span><span class="o">)</span> <span class="o">{</span>
+<span class="nc">Accumulator</span> <span class="nf">add</span><span class="o">(</span><span class="nc">Accumulator</span> <span class="n">a</span><span class="o">,</span> <span class="kt">int</span> <span class="n">x</span><span class="o">)</span> <span class="o">{</span>
   <span class="k">return</span> <span class="k">new</span> <span class="nf">Accumulator</span><span class="o">(</span><span class="n">a</span><span class="o">.</span><span class="na">sum</span> <span class="o">+</span> <span class="n">x</span><span class="o">);</span>
 <span class="o">}</span>
-<span class="n">Accumulator</span> <span class="nf">merge</span><span class="o">(</span><span class="n">Accumulator</span> <span class="n">a</span><span class="o">,</span> <span class="n">Accumulator</span> <span class="n">a2</span><span class="o">)</span> <span class="o">{</span>
+<span class="nc">Accumulator</span> <span class="nf">merge</span><span class="o">(</span><span class="nc">Accumulator</span> <span class="n">a</span><span class="o">,</span> <span class="nc">Accumulator</span> <span class="n">a2</span><span class="o">)</span> <span class="o">{</span>
   <span class="k">return</span> <span class="k">new</span> <span class="nf">Accumulator</span><span class="o">(</span><span class="n">a</span><span class="o">.</span><span class="na">sum</span> <span class="o">+</span> <span class="n">a2</span><span class="o">.</span><span class="na">sum</span><span class="o">);</span>
 <span class="o">}</span>
-<span class="kt">int</span> <span class="nf">result</span><span class="o">(</span><span class="n">Accumulator</span> <span class="n">a</span><span class="o">)</span> <span class="o">{</span>
+<span class="kt">int</span> <span class="nf">result</span><span class="o">(</span><span class="nc">Accumulator</span> <span class="n">a</span><span class="o">)</span> <span class="o">{</span>
   <span class="k">return</span> <span class="n">a</span><span class="o">.</span><span class="na">sum</span><span class="o">;</span>
 <span class="o">}</span></code></pre></figure>
 
@@ -457,10 +457,10 @@
 <h3 id="window-functions">Window functions</h3>
 
 <p>A window function is similar to an aggregate function but it is applied to a set
-of rows gathered by an <code class="highlighter-rouge">OVER</code> clause rather than by a <code class="highlighter-rouge">GROUP BY</code> clause.
+of rows gathered by an <code class="language-plaintext highlighter-rouge">OVER</code> clause rather than by a <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause.
 Every aggregate function can be used as a window function, but there are some
 key differences. The rows seen by a window function may be ordered, and
-window functions that rely upon order (<code class="highlighter-rouge">RANK</code>, for example) cannot be used as
+window functions that rely upon order (<code class="language-plaintext highlighter-rouge">RANK</code>, for example) cannot be used as
 aggregate functions.</p>
 
 <p>Another difference is that windows are <em>non-disjoint</em>: a particular row can
@@ -473,12 +473,12 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">remove</code> removes a value from an accumulator.</li>
+<code class="language-plaintext highlighter-rouge">remove</code> removes a value from an accumulator.</li>
 </ul>
 
-<p>It pseudo-code for <code class="highlighter-rouge">SUM(int)</code> would be:</p>
+<p>It pseudo-code for <code class="language-plaintext highlighter-rouge">SUM(int)</code> would be:</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="n">Accumulator</span> <span class="nf">remove</span><span class="o">(</span><span class="n">Accumulator</span> <span class="n">a</span><span class="o">,</span> <span class="kt">int</span> <span class="n">x</span><span class="o">)</span> <span class="o">{</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">Accumulator</span> <span class="nf">remove</span><span class="o">(</span><span class="nc">Accumulator</span> <span class="n">a</span><span class="o">,</span> <span class="kt">int</span> <span class="n">x</span><span class="o">)</span> <span class="o">{</span>
   <span class="k">return</span> <span class="k">new</span> <span class="nf">Accumulator</span><span class="o">(</span><span class="n">a</span><span class="o">.</span><span class="na">sum</span> <span class="o">-</span> <span class="n">x</span><span class="o">);</span>
 <span class="o">}</span></code></pre></figure>
 
@@ -499,9 +499,9 @@
 
 <h3 id="grouped-window-functions">Grouped window functions</h3>
 
-<p>Grouped window functions are functions that operate the <code class="highlighter-rouge">GROUP BY</code> clause
+<p>Grouped window functions are functions that operate the <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause
 to gather together records into sets. The built-in grouped window functions
-are <code class="highlighter-rouge">HOP</code>, <code class="highlighter-rouge">TUMBLE</code> and <code class="highlighter-rouge">SESSION</code>.
+are <code class="language-plaintext highlighter-rouge">HOP</code>, <code class="language-plaintext highlighter-rouge">TUMBLE</code> and <code class="language-plaintext highlighter-rouge">SESSION</code>.
 You can define additional functions by implementing
 <a href="/javadocAggregate/org/apache/calcite/sql/fun/SqlGroupedWindowFunction.html"><code>interface SqlGroupedWindowFunction</code></a>.</p>
 
@@ -509,8 +509,8 @@
 
 <p><em>User-defined table functions</em>
 are defined in a similar way to regular “scalar” user-defined functions,
-but are used in the <code class="highlighter-rouge">FROM</code> clause of a query. The following query uses a table
-function called <code class="highlighter-rouge">Ramp</code>:</p>
+but are used in the <code class="language-plaintext highlighter-rouge">FROM</code> clause of a query. The following query uses a table
+function called <code class="language-plaintext highlighter-rouge">Ramp</code>:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="k">TABLE</span><span class="p">(</span><span class="n">Ramp</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">))</span></code></pre></figure>
 
@@ -521,30 +521,30 @@
 they produce can then be optimized.
 (Calcite’s implementation of views uses table macros.)</p>
 
-<p><a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/test/TableFunctionTest.java"><code>class TableFunctionTest</code></a>
+<p><a href="https://github.com/apache/calcite/blob/main/core/src/test/java/org/apache/calcite/test/TableFunctionTest.java"><code>class TableFunctionTest</code></a>
 tests table functions and contains several useful examples.</p>
 
 <h3 id="extending-the-parser">Extending the parser</h3>
 
 <p>Suppose you need to extend Calcite’s SQL grammar in a way that will be
 compatible with future changes to the grammar. Making a copy of the grammar file
-<code class="highlighter-rouge">Parser.jj</code> in your project would be foolish, because the grammar is edited
+<code class="language-plaintext highlighter-rouge">Parser.jj</code> in your project would be foolish, because the grammar is edited
 quite frequently.</p>
 
-<p>Fortunately, <code class="highlighter-rouge">Parser.jj</code> is actually an
+<p>Fortunately, <code class="language-plaintext highlighter-rouge">Parser.jj</code> is actually an
 <a href="https://freemarker.apache.org/">Apache FreeMarker</a>
 template that contains variables that can be substituted.
-The parser in <code class="highlighter-rouge">calcite-core</code> instantiates the template with default values of
+The parser in <code class="language-plaintext highlighter-rouge">calcite-core</code> instantiates the template with default values of
 the variables, typically empty, but you can override.
 If your project would like a different parser, you can provide your
-own <code class="highlighter-rouge">config.fmpp</code> and <code class="highlighter-rouge">parserImpls.ftl</code> files and therefore generate an
+own <code class="language-plaintext highlighter-rouge">config.fmpp</code> and <code class="language-plaintext highlighter-rouge">parserImpls.ftl</code> files and therefore generate an
 extended parser.</p>
 
-<p>The <code class="highlighter-rouge">calcite-server</code> module, which was created in
+<p>The <code class="language-plaintext highlighter-rouge">calcite-server</code> module, which was created in
 [<a href="https://issues.apache.org/jira/browse/CALCITE-707">CALCITE-707</a>] and
-adds DDL statements such as <code class="highlighter-rouge">CREATE TABLE</code>, is an example that you could follow.
+adds DDL statements such as <code class="language-plaintext highlighter-rouge">CREATE TABLE</code>, is an example that you could follow.
 Also see
-<a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/sql/parser/parserextensiontesting/ExtensionSqlParserTest.java"><code>class ExtensionSqlParserTest</code></a>.</p>
+<a href="https://github.com/apache/calcite/blob/main/core/src/test/java/org/apache/calcite/sql/parser/parserextensiontesting/ExtensionSqlParserTest.java"><code>class ExtensionSqlParserTest</code></a>.</p>
 
 <h3 id="customizing-sql-dialect-accepted-and-generated">Customizing SQL dialect accepted and generated</h3>
 
@@ -557,7 +557,7 @@
 adapter), use
 <a href="/javadocAggregate/org/apache/calcite/sql/SqlDialect.html"><code>class SqlDialect</code></a>.
 The dialect also describes the engine’s capabilities, such as whether it
-supports <code class="highlighter-rouge">OFFSET</code> and <code class="highlighter-rouge">FETCH</code> clauses.</p>
+supports <code class="language-plaintext highlighter-rouge">OFFSET</code> and <code class="language-plaintext highlighter-rouge">FETCH</code> clauses.</p>
 
 <h3 id="defining-a-custom-schema">Defining a custom schema</h3>
 
@@ -584,7 +584,7 @@
 and wrap it in the schema by calling APIs.</p>
 
 <p>See
-<a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/test/ReflectiveSchemaTest.java"><code>class ReflectiveSchemaTest</code></a>.</p>
+<a href="https://github.com/apache/calcite/blob/main/core/src/test/java/org/apache/calcite/test/ReflectiveSchemaTest.java"><code>class ReflectiveSchemaTest</code></a>.</p>
 
 <h3 id="defining-a-custom-table">Defining a custom table</h3>
 
@@ -597,17 +597,17 @@
 <h3 id="modifying-data">Modifying data</h3>
 
 <p>If your table is to support DML operations (INSERT, UPDATE, DELETE, MERGE),
-your implementation of <code class="highlighter-rouge">interface Table</code> must implement
+your implementation of <code class="language-plaintext highlighter-rouge">interface Table</code> must implement
 <a href="/javadocAggregate/org/apache/calcite/schema/ModifiableTable.html"><code>interface ModifiableTable</code></a>.</p>
 
 <h3 id="streaming">Streaming</h3>
 
 <p>If your table is to support streaming queries,
-your implementation of <code class="highlighter-rouge">interface Table</code> must implement
+your implementation of <code class="language-plaintext highlighter-rouge">interface Table</code> must implement
 <a href="/javadocAggregate/org/apache/calcite/schema/StreamableTable.html"><code>interface StreamableTable</code></a>.</p>
 
 <p>See
-<a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/test/StreamTest.java"><code>class StreamTest</code></a>
+<a href="https://github.com/apache/calcite/blob/main/core/src/test/java/org/apache/calcite/test/StreamTest.java"><code>class StreamTest</code></a>
 for examples.</p>
 
 <h3 id="pushing-operations-down-to-your-table">Pushing operations down to your table</h3>
@@ -656,9 +656,9 @@
 and so forth. Any given adapter will have counterparts for the operations that
 its engine can implement efficiently; for example, the Cassandra adapter has
 <a href="/javadocAggregate/org/apache/calcite/rel/cassandra/CassandraProject.html"><code>CassandraProject</code></a>
-but there is no <code class="highlighter-rouge">CassandraJoin</code>.</p>
+but there is no <code class="language-plaintext highlighter-rouge">CassandraJoin</code>.</p>
 
-<p>You can define your own sub-class of <code class="highlighter-rouge">RelNode</code> to add a new operator, or
+<p>You can define your own sub-class of <code class="language-plaintext highlighter-rouge">RelNode</code> to add a new operator, or
 an implementation of an existing operator in a particular engine.</p>
 
 <p>To make an operator useful and powerful, you will need
@@ -697,7 +697,7 @@
 
 <p>A calling convention is a protocol used by a particular data engine.
 For example, the Cassandra engine has a collection of relational operators,
-<code class="highlighter-rouge">CassandraProject</code>, <code class="highlighter-rouge">CassandraFilter</code> and so forth, and these operators can be
+<code class="language-plaintext highlighter-rouge">CassandraProject</code>, <code class="language-plaintext highlighter-rouge">CassandraFilter</code> and so forth, and these operators can be
 connected to each other without the data having to be converted from one format
 to another.</p>
 
@@ -772,11 +772,11 @@
 you can also define your own.</p>
 
 <p>You can then supply a <em>metadata provider</em> that computes that kind of metadata
-for particular sub-classes of <code class="highlighter-rouge">RelNode</code>. Metadata providers can handle built-in
-and extended metadata types, and built-in and extended <code class="highlighter-rouge">RelNode</code> types.
+for particular sub-classes of <code class="language-plaintext highlighter-rouge">RelNode</code>. Metadata providers can handle built-in
+and extended metadata types, and built-in and extended <code class="language-plaintext highlighter-rouge">RelNode</code> types.
 While preparing a query Calcite combines all of the applicable metadata
 providers and maintains a cache so that a given piece of metadata (for example
-the selectivity of the condition <code class="highlighter-rouge">x &gt; 10</code> in a particular <code class="highlighter-rouge">Filter</code> operator)
+the selectivity of the condition <code class="language-plaintext highlighter-rouge">x &gt; 10</code> in a particular <code class="language-plaintext highlighter-rouge">Filter</code> operator)
 is computed only once.</p>
 
           
@@ -1065,7 +1065,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/algebra.html b/docs/algebra.html
index 112c6b4..8ab7b19 100644
--- a/docs/algebra.html
+++ b/docs/algebra.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Algebra</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -103,21 +103,21 @@
 
 <h3 id="tablescan">TableScan</h3>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="n">FrameworkConfig</span> <span class="n">config</span><span class="o">;</span>
-<span class="kd">final</span> <span class="n">RelBuilder</span> <span class="n">builder</span> <span class="o">=</span> <span class="n">RelBuilder</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">config</span><span class="o">);</span>
-<span class="kd">final</span> <span class="n">RelNode</span> <span class="n">node</span> <span class="o">=</span> <span class="n">builder</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="nc">FrameworkConfig</span> <span class="n">config</span><span class="o">;</span>
+<span class="kd">final</span> <span class="nc">RelBuilder</span> <span class="n">builder</span> <span class="o">=</span> <span class="nc">RelBuilder</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">config</span><span class="o">);</span>
+<span class="kd">final</span> <span class="nc">RelNode</span> <span class="n">node</span> <span class="o">=</span> <span class="n">builder</span>
   <span class="o">.</span><span class="na">scan</span><span class="o">(</span><span class="s">"EMP"</span><span class="o">)</span>
   <span class="o">.</span><span class="na">build</span><span class="o">();</span>
-<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">RelOptUtil</span><span class="o">.</span><span class="na">toString</span><span class="o">(</span><span class="n">node</span><span class="o">));</span></code></pre></figure>
+<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">RelOptUtil</span><span class="o">.</span><span class="na">toString</span><span class="o">(</span><span class="n">node</span><span class="o">));</span></code></pre></figure>
 
 <p>(You can find the full code for this and other examples in
-<a href="https://github.com/apache/calcite/blob/master/core/src/test/java/org/apache/calcite/examples/RelBuilderExample.java">RelBuilderExample.java</a>.)</p>
+<a href="https://github.com/apache/calcite/blob/main/core/src/test/java/org/apache/calcite/examples/RelBuilderExample.java">RelBuilderExample.java</a>.)</p>
 
 <p>The code prints</p>
 
 <figure class="highlight"><pre><code class="language-text" data-lang="text">LogicalTableScan(table=[[scott, EMP]])</code></pre></figure>
 
-<p>It has created a scan of the <code class="highlighter-rouge">EMP</code> table; equivalent to the SQL</p>
+<p>It has created a scan of the <code class="language-plaintext highlighter-rouge">EMP</code> table; equivalent to the SQL</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="o">*</span>
 <span class="k">FROM</span> <span class="n">scott</span><span class="p">.</span><span class="n">EMP</span><span class="p">;</span></code></pre></figure>
@@ -129,42 +129,42 @@
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">ename</span><span class="p">,</span> <span class="n">deptno</span>
 <span class="k">FROM</span> <span class="n">scott</span><span class="p">.</span><span class="n">EMP</span><span class="p">;</span></code></pre></figure>
 
-<p>We just add a call to the <code class="highlighter-rouge">project</code> method before calling
-<code class="highlighter-rouge">build</code>:</p>
+<p>We just add a call to the <code class="language-plaintext highlighter-rouge">project</code> method before calling
+<code class="language-plaintext highlighter-rouge">build</code>:</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="n">RelNode</span> <span class="n">node</span> <span class="o">=</span> <span class="n">builder</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="nc">RelNode</span> <span class="n">node</span> <span class="o">=</span> <span class="n">builder</span>
   <span class="o">.</span><span class="na">scan</span><span class="o">(</span><span class="s">"EMP"</span><span class="o">)</span>
   <span class="o">.</span><span class="na">project</span><span class="o">(</span><span class="n">builder</span><span class="o">.</span><span class="na">field</span><span class="o">(</span><span class="s">"DEPTNO"</span><span class="o">),</span> <span class="n">builder</span><span class="o">.</span><span class="na">field</span><span class="o">(</span><span class="s">"ENAME"</span><span class="o">))</span>
   <span class="o">.</span><span class="na">build</span><span class="o">();</span>
-<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">RelOptUtil</span><span class="o">.</span><span class="na">toString</span><span class="o">(</span><span class="n">node</span><span class="o">));</span></code></pre></figure>
+<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">RelOptUtil</span><span class="o">.</span><span class="na">toString</span><span class="o">(</span><span class="n">node</span><span class="o">));</span></code></pre></figure>
 
 <p>and the output is</p>
 
 <figure class="highlight"><pre><code class="language-text" data-lang="text">LogicalProject(DEPTNO=[$7], ENAME=[$1])
   LogicalTableScan(table=[[scott, EMP]])</code></pre></figure>
 
-<p>The two calls to <code class="highlighter-rouge">builder.field</code> create simple expressions
+<p>The two calls to <code class="language-plaintext highlighter-rouge">builder.field</code> create simple expressions
 that return the fields from the input relational expression,
-namely the TableScan created by the <code class="highlighter-rouge">scan</code> call.</p>
+namely the TableScan created by the <code class="language-plaintext highlighter-rouge">scan</code> call.</p>
 
 <p>Calcite has converted them to field references by ordinal,
-<code class="highlighter-rouge">$7</code> and <code class="highlighter-rouge">$1</code>.</p>
+<code class="language-plaintext highlighter-rouge">$7</code> and <code class="language-plaintext highlighter-rouge">$1</code>.</p>
 
 <h3 id="adding-a-filter-and-aggregate">Adding a Filter and Aggregate</h3>
 
 <p>A query with an Aggregate, and a Filter:</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="n">RelNode</span> <span class="n">node</span> <span class="o">=</span> <span class="n">builder</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="nc">RelNode</span> <span class="n">node</span> <span class="o">=</span> <span class="n">builder</span>
   <span class="o">.</span><span class="na">scan</span><span class="o">(</span><span class="s">"EMP"</span><span class="o">)</span>
   <span class="o">.</span><span class="na">aggregate</span><span class="o">(</span><span class="n">builder</span><span class="o">.</span><span class="na">groupKey</span><span class="o">(</span><span class="s">"DEPTNO"</span><span class="o">),</span>
       <span class="n">builder</span><span class="o">.</span><span class="na">count</span><span class="o">(</span><span class="kc">false</span><span class="o">,</span> <span class="s">"C"</span><span class="o">),</span>
       <span class="n">builder</span><span class="o">.</span><span class="na">sum</span><span class="o">(</span><span class="kc">false</span><span class="o">,</span> <span class="s">"S"</span><span class="o">,</span> <span class="n">builder</span><span class="o">.</span><span class="na">field</span><span class="o">(</span><span class="s">"SAL"</span><span class="o">)))</span>
   <span class="o">.</span><span class="na">filter</span><span class="o">(</span>
-      <span class="n">builder</span><span class="o">.</span><span class="na">call</span><span class="o">(</span><span class="n">SqlStdOperatorTable</span><span class="o">.</span><span class="na">GREATER_THAN</span><span class="o">,</span>
+      <span class="n">builder</span><span class="o">.</span><span class="na">call</span><span class="o">(</span><span class="nc">SqlStdOperatorTable</span><span class="o">.</span><span class="na">GREATER_THAN</span><span class="o">,</span>
           <span class="n">builder</span><span class="o">.</span><span class="na">field</span><span class="o">(</span><span class="s">"C"</span><span class="o">),</span>
           <span class="n">builder</span><span class="o">.</span><span class="na">literal</span><span class="o">(</span><span class="mi">10</span><span class="o">)))</span>
   <span class="o">.</span><span class="na">build</span><span class="o">();</span>
-<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">RelOptUtil</span><span class="o">.</span><span class="na">toString</span><span class="o">(</span><span class="n">node</span><span class="o">));</span></code></pre></figure>
+<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">RelOptUtil</span><span class="o">.</span><span class="na">toString</span><span class="o">(</span><span class="n">node</span><span class="o">));</span></code></pre></figure>
 
 <p>is equivalent to SQL</p>
 
@@ -185,7 +185,7 @@
 one step and pass it as an input to the next step. This allows the
 methods that produce relational expressions to produce a builder.</p>
 
-<p>Most of the time, the only stack method you will use is <code class="highlighter-rouge">build()</code>, to get the
+<p>Most of the time, the only stack method you will use is <code class="language-plaintext highlighter-rouge">build()</code>, to get the
 last relational expression, namely the root of the tree.</p>
 
 <p>Sometimes the stack becomes so deeply nested it gets confusing. To keep things
@@ -200,35 +200,35 @@
 CUSTOMERS ORDERS LINE_ITEMS PRODUCTS</code></pre></figure>
 
 <p>We build it in three stages. Store the intermediate results in variables
-<code class="highlighter-rouge">left</code> and <code class="highlighter-rouge">right</code>, and use <code class="highlighter-rouge">push()</code> to put them back on the stack when it is
-time to create the final <code class="highlighter-rouge">Join</code>:</p>
+<code class="language-plaintext highlighter-rouge">left</code> and <code class="language-plaintext highlighter-rouge">right</code>, and use <code class="language-plaintext highlighter-rouge">push()</code> to put them back on the stack when it is
+time to create the final <code class="language-plaintext highlighter-rouge">Join</code>:</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="n">RelNode</span> <span class="n">left</span> <span class="o">=</span> <span class="n">builder</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="nc">RelNode</span> <span class="n">left</span> <span class="o">=</span> <span class="n">builder</span>
   <span class="o">.</span><span class="na">scan</span><span class="o">(</span><span class="s">"CUSTOMERS"</span><span class="o">)</span>
   <span class="o">.</span><span class="na">scan</span><span class="o">(</span><span class="s">"ORDERS"</span><span class="o">)</span>
-  <span class="o">.</span><span class="na">join</span><span class="o">(</span><span class="n">JoinRelType</span><span class="o">.</span><span class="na">INNER</span><span class="o">,</span> <span class="s">"ORDER_ID"</span><span class="o">)</span>
+  <span class="o">.</span><span class="na">join</span><span class="o">(</span><span class="nc">JoinRelType</span><span class="o">.</span><span class="na">INNER</span><span class="o">,</span> <span class="s">"ORDER_ID"</span><span class="o">)</span>
   <span class="o">.</span><span class="na">build</span><span class="o">();</span>
 
-<span class="kd">final</span> <span class="n">RelNode</span> <span class="n">right</span> <span class="o">=</span> <span class="n">builder</span>
+<span class="kd">final</span> <span class="nc">RelNode</span> <span class="n">right</span> <span class="o">=</span> <span class="n">builder</span>
   <span class="o">.</span><span class="na">scan</span><span class="o">(</span><span class="s">"LINE_ITEMS"</span><span class="o">)</span>
   <span class="o">.</span><span class="na">scan</span><span class="o">(</span><span class="s">"PRODUCTS"</span><span class="o">)</span>
-  <span class="o">.</span><span class="na">join</span><span class="o">(</span><span class="n">JoinRelType</span><span class="o">.</span><span class="na">INNER</span><span class="o">,</span> <span class="s">"PRODUCT_ID"</span><span class="o">)</span>
+  <span class="o">.</span><span class="na">join</span><span class="o">(</span><span class="nc">JoinRelType</span><span class="o">.</span><span class="na">INNER</span><span class="o">,</span> <span class="s">"PRODUCT_ID"</span><span class="o">)</span>
   <span class="o">.</span><span class="na">build</span><span class="o">();</span>
 
-<span class="kd">final</span> <span class="n">RelNode</span> <span class="n">result</span> <span class="o">=</span> <span class="n">builder</span>
+<span class="kd">final</span> <span class="nc">RelNode</span> <span class="n">result</span> <span class="o">=</span> <span class="n">builder</span>
   <span class="o">.</span><span class="na">push</span><span class="o">(</span><span class="n">left</span><span class="o">)</span>
   <span class="o">.</span><span class="na">push</span><span class="o">(</span><span class="n">right</span><span class="o">)</span>
-  <span class="o">.</span><span class="na">join</span><span class="o">(</span><span class="n">JoinRelType</span><span class="o">.</span><span class="na">INNER</span><span class="o">,</span> <span class="s">"ORDER_ID"</span><span class="o">)</span>
+  <span class="o">.</span><span class="na">join</span><span class="o">(</span><span class="nc">JoinRelType</span><span class="o">.</span><span class="na">INNER</span><span class="o">,</span> <span class="s">"ORDER_ID"</span><span class="o">)</span>
   <span class="o">.</span><span class="na">build</span><span class="o">();</span></code></pre></figure>
 
 <h3 id="switch-convention">Switch Convention</h3>
 
 <p>The default RelBuilder creates logical RelNode without coventions. But you could
-switch to use a different convention through <code class="highlighter-rouge">adoptConvention()</code>:</p>
+switch to use a different convention through <code class="language-plaintext highlighter-rouge">adoptConvention()</code>:</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="n">RelNode</span> <span class="n">result</span> <span class="o">=</span> <span class="n">builder</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="nc">RelNode</span> <span class="n">result</span> <span class="o">=</span> <span class="n">builder</span>
   <span class="o">.</span><span class="na">push</span><span class="o">(</span><span class="n">input</span><span class="o">)</span>
-  <span class="o">.</span><span class="na">adoptConvention</span><span class="o">(</span><span class="n">EnumerableConvention</span><span class="o">.</span><span class="na">INSTANCE</span><span class="o">)</span>
+  <span class="o">.</span><span class="na">adoptConvention</span><span class="o">(</span><span class="nc">EnumerableConvention</span><span class="o">.</span><span class="na">INSTANCE</span><span class="o">)</span>
   <span class="o">.</span><span class="na">sort</span><span class="o">(</span><span class="n">toCollation</span><span class="o">)</span>
   <span class="o">.</span><span class="na">build</span><span class="o">();</span></code></pre></figure>
 
@@ -239,7 +239,7 @@
 <p>You can reference a field by name or ordinal.</p>
 
 <p>Ordinals are zero-based. Each operator guarantees the order in which its output
-fields occur. For example, <code class="highlighter-rouge">Project</code> returns the fields generated by
+fields occur. For example, <code class="language-plaintext highlighter-rouge">Project</code> returns the fields generated by
 each of the scalar expressions.</p>
 
 <p>The field names of an operator are guaranteed to be unique, but sometimes that
@@ -251,10 +251,10 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">project</code> lets you wrap expressions using <code class="highlighter-rouge">alias(expr, fieldName)</code>. It
+<code class="language-plaintext highlighter-rouge">project</code> lets you wrap expressions using <code class="language-plaintext highlighter-rouge">alias(expr, fieldName)</code>. It
 removes the wrapper but keeps the suggested name (as long as it is unique).</li>
   <li>
-<code class="highlighter-rouge">values(String[] fieldNames, Object... values)</code> accepts an array of field
+<code class="language-plaintext highlighter-rouge">values(String[] fieldNames, Object... values)</code> accepts an array of field
 names. If any element of the array is null, the builder will generate a unique
 name.</li>
 </ul>
@@ -263,7 +263,7 @@
 use the name of that input field.</p>
 
 <p>Once the unique field names have been assigned, the names are immutable.
-If you have a particular <code class="highlighter-rouge">RelNode</code> instance, you can rely on the field names not
+If you have a particular <code class="language-plaintext highlighter-rouge">RelNode</code> instance, you can rely on the field names not
 changing. In fact, the whole relational expression is immutable.</p>
 
 <p>But if a relational expression has passed through several rewrite rules (see
@@ -286,8 +286,8 @@
 
 <p>But through the builder API, you specify which field of which input.
 To reference “SAL”, internal field #5,
-write <code class="highlighter-rouge">builder.field(2, 0, "SAL")</code>, <code class="highlighter-rouge">builder.field(2, "EMP", "SAL")</code>,
-or <code class="highlighter-rouge">builder.field(2, 0, 5)</code>.
+write <code class="language-plaintext highlighter-rouge">builder.field(2, 0, "SAL")</code>, <code class="language-plaintext highlighter-rouge">builder.field(2, "EMP", "SAL")</code>,
+or <code class="language-plaintext highlighter-rouge">builder.field(2, 0, 5)</code>.
 This means “the field #5 of input #0 of two inputs”.
 (Why does it need to know that there are two inputs? Because they are stored on
 the stack; input #1 is at the top of the stack, and input #0 is below it.
@@ -295,8 +295,8 @@
 to go for input #0.)</p>
 
 <p>Similarly, to reference “DNAME”, internal field #9 (8 + 1),
-write <code class="highlighter-rouge">builder.field(2, 1, "DNAME")</code>, <code class="highlighter-rouge">builder.field(2, "DEPT", "DNAME")</code>,
-or <code class="highlighter-rouge">builder.field(2, 1, 1)</code>.</p>
+write <code class="language-plaintext highlighter-rouge">builder.field(2, 1, "DNAME")</code>, <code class="language-plaintext highlighter-rouge">builder.field(2, "DEPT", "DNAME")</code>,
+or <code class="language-plaintext highlighter-rouge">builder.field(2, 1, 1)</code>.</p>
 
 <h3 id="recursive-queries">Recursive Queries</h3>
 
@@ -312,22 +312,22 @@
 
 <p>can be generated using a scan on a TransientTable and a RepeatUnion:</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="n">RelNode</span> <span class="n">node</span> <span class="o">=</span> <span class="n">builder</span>
-  <span class="o">.</span><span class="na">values</span><span class="o">(</span><span class="k">new</span> <span class="n">String</span><span class="o">[]</span> <span class="o">{</span> <span class="s">"i"</span> <span class="o">},</span> <span class="mi">1</span><span class="o">)</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="nc">RelNode</span> <span class="n">node</span> <span class="o">=</span> <span class="n">builder</span>
+  <span class="o">.</span><span class="na">values</span><span class="o">(</span><span class="k">new</span> <span class="nc">String</span><span class="o">[]</span> <span class="o">{</span> <span class="s">"i"</span> <span class="o">},</span> <span class="mi">1</span><span class="o">)</span>
   <span class="o">.</span><span class="na">transientScan</span><span class="o">(</span><span class="s">"aux"</span><span class="o">)</span>
   <span class="o">.</span><span class="na">filter</span><span class="o">(</span>
       <span class="n">builder</span><span class="o">.</span><span class="na">call</span><span class="o">(</span>
-          <span class="n">SqlStdOperatorTable</span><span class="o">.</span><span class="na">LESS_THAN</span><span class="o">,</span>
+          <span class="nc">SqlStdOperatorTable</span><span class="o">.</span><span class="na">LESS_THAN</span><span class="o">,</span>
           <span class="n">builder</span><span class="o">.</span><span class="na">field</span><span class="o">(</span><span class="mi">0</span><span class="o">),</span>
           <span class="n">builder</span><span class="o">.</span><span class="na">literal</span><span class="o">(</span><span class="mi">10</span><span class="o">)))</span>
   <span class="o">.</span><span class="na">project</span><span class="o">(</span>
       <span class="n">builder</span><span class="o">.</span><span class="na">call</span><span class="o">(</span>
-          <span class="n">SqlStdOperatorTable</span><span class="o">.</span><span class="na">PLUS</span><span class="o">,</span>
+          <span class="nc">SqlStdOperatorTable</span><span class="o">.</span><span class="na">PLUS</span><span class="o">,</span>
           <span class="n">builder</span><span class="o">.</span><span class="na">field</span><span class="o">(</span><span class="mi">0</span><span class="o">),</span>
           <span class="n">builder</span><span class="o">.</span><span class="na">literal</span><span class="o">(</span><span class="mi">1</span><span class="o">)))</span>
   <span class="o">.</span><span class="na">repeatUnion</span><span class="o">(</span><span class="s">"aux"</span><span class="o">,</span> <span class="kc">true</span><span class="o">)</span>
   <span class="o">.</span><span class="na">build</span><span class="o">();</span>
-<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">RelOptUtil</span><span class="o">.</span><span class="na">toString</span><span class="o">(</span><span class="n">node</span><span class="o">));</span></code></pre></figure>
+<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">RelOptUtil</span><span class="o">.</span><span class="na">toString</span><span class="o">(</span><span class="n">node</span><span class="o">));</span></code></pre></figure>
 
 <p>which produces:</p>
 
@@ -346,7 +346,7 @@
 <p>The following methods create a relational expression
 (<a href="/javadocAggregate/org/apache/calcite/rel/RelNode.html">RelNode</a>),
 push it onto the stack, and
-return the <code class="highlighter-rouge">RelBuilder</code>.</p>
+return the <code class="language-plaintext highlighter-rouge">RelBuilder</code>.</p>
 
 <div class="scroll-table-style"><table>
   <thead>
@@ -357,142 +357,142 @@
   </thead>
   <tbody>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">scan(tableName)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">scan(tableName)</code></td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/TableScan.html">TableScan</a>.</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">functionScan(operator, n, expr...)</code><br><code class="highlighter-rouge">functionScan(operator, n, exprList)</code>
+<code class="language-plaintext highlighter-rouge">functionScan(operator, n, expr...)</code><br><code class="language-plaintext highlighter-rouge">functionScan(operator, n, exprList)</code>
 </td>
-      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/TableFunctionScan.html">TableFunctionScan</a> of the <code class="highlighter-rouge">n</code> most recent relational expressions.</td>
+      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/TableFunctionScan.html">TableFunctionScan</a> of the <code class="language-plaintext highlighter-rouge">n</code> most recent relational expressions.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">transientScan(tableName [, rowType])</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">transientScan(tableName [, rowType])</code></td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/TableScan.html">TableScan</a> on a <a href="/javadocAggregate/org/apache/calcite/schema/TransientTable.html">TransientTable</a> with the given type (if not specified, the most recent relational expression’s type will be used).</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">values(fieldNames, value...)</code><br><code class="highlighter-rouge">values(rowType, tupleList)</code>
+<code class="language-plaintext highlighter-rouge">values(fieldNames, value...)</code><br><code class="language-plaintext highlighter-rouge">values(rowType, tupleList)</code>
 </td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Values.html">Values</a>.</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">filter([variablesSet, ] exprList)</code><br><code class="highlighter-rouge">filter([variablesSet, ] expr...)</code>
+<code class="language-plaintext highlighter-rouge">filter([variablesSet, ] exprList)</code><br><code class="language-plaintext highlighter-rouge">filter([variablesSet, ] expr...)</code>
 </td>
-      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Filter.html">Filter</a> over the AND of the given predicates; if <code class="highlighter-rouge">variablesSet</code> is specified, the predicates may reference those variables.</td>
+      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Filter.html">Filter</a> over the AND of the given predicates; if <code class="language-plaintext highlighter-rouge">variablesSet</code> is specified, the predicates may reference those variables.</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">project(expr...)</code><br><code class="highlighter-rouge">project(exprList [, fieldNames])</code>
+<code class="language-plaintext highlighter-rouge">project(expr...)</code><br><code class="language-plaintext highlighter-rouge">project(exprList [, fieldNames])</code>
 </td>
-      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Project.html">Project</a>. To override the default name, wrap expressions using <code class="highlighter-rouge">alias</code>, or specify the <code class="highlighter-rouge">fieldNames</code> argument.</td>
+      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Project.html">Project</a>. To override the default name, wrap expressions using <code class="language-plaintext highlighter-rouge">alias</code>, or specify the <code class="language-plaintext highlighter-rouge">fieldNames</code> argument.</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">projectPlus(expr...)</code><br><code class="highlighter-rouge">projectPlus(exprList)</code>
+<code class="language-plaintext highlighter-rouge">projectPlus(expr...)</code><br><code class="language-plaintext highlighter-rouge">projectPlus(exprList)</code>
 </td>
-      <td style="text-align: left">Variant of <code class="highlighter-rouge">project</code> that keeps original fields and appends the given expressions.</td>
+      <td style="text-align: left">Variant of <code class="language-plaintext highlighter-rouge">project</code> that keeps original fields and appends the given expressions.</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">projectExcept(expr...)</code><br><code class="highlighter-rouge">projectExcept(exprList)</code>
+<code class="language-plaintext highlighter-rouge">projectExcept(expr...)</code><br><code class="language-plaintext highlighter-rouge">projectExcept(exprList)</code>
 </td>
-      <td style="text-align: left">Variant of <code class="highlighter-rouge">project</code> that keeps original fields and removes the given expressions.</td>
+      <td style="text-align: left">Variant of <code class="language-plaintext highlighter-rouge">project</code> that keeps original fields and removes the given expressions.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">permute(mapping)</code></td>
-      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Project.html">Project</a> that permutes the fields using <code class="highlighter-rouge">mapping</code>.</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">permute(mapping)</code></td>
+      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Project.html">Project</a> that permutes the fields using <code class="language-plaintext highlighter-rouge">mapping</code>.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">convert(rowType [, rename])</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">convert(rowType [, rename])</code></td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Project.html">Project</a> that converts the fields to the given types, optionally also renaming them.</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">aggregate(groupKey, aggCall...)</code><br><code class="highlighter-rouge">aggregate(groupKey, aggCallList)</code>
+<code class="language-plaintext highlighter-rouge">aggregate(groupKey, aggCall...)</code><br><code class="language-plaintext highlighter-rouge">aggregate(groupKey, aggCallList)</code>
 </td>
       <td style="text-align: left">Creates an <a href="/javadocAggregate/org/apache/calcite/rel/core/Aggregate.html">Aggregate</a>.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">distinct()</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">distinct()</code></td>
       <td style="text-align: left">Creates an <a href="/javadocAggregate/org/apache/calcite/rel/core/Aggregate.html">Aggregate</a> that eliminates duplicate records.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">pivot(groupKey, aggCalls, axes, values)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">pivot(groupKey, aggCalls, axes, values)</code></td>
       <td style="text-align: left">Adds a pivot operation, implemented by generating an <a href="/javadocAggregate/org/apache/calcite/rel/core/Aggregate.html">Aggregate</a> with a column for each combination of measures and values</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">unpivot(includeNulls, measureNames, axisNames, axisMap)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">unpivot(includeNulls, measureNames, axisNames, axisMap)</code></td>
       <td style="text-align: left">Adds an unpivot operation, implemented by generating a <a href="/javadocAggregate/org/apache/calcite/rel/core/Join.html">Join</a> to a <a href="/javadocAggregate/org/apache/calcite/rel/core/Values.html">Values</a> that converts each row to several rows</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">sort(fieldOrdinal...)</code><br><code class="highlighter-rouge">sort(expr...)</code><br><code class="highlighter-rouge">sort(exprList)</code>
+<code class="language-plaintext highlighter-rouge">sort(fieldOrdinal...)</code><br><code class="language-plaintext highlighter-rouge">sort(expr...)</code><br><code class="language-plaintext highlighter-rouge">sort(exprList)</code>
 </td>
-      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Sort.html">Sort</a>.<br><br>In the first form, field ordinals are 0-based, and a negative ordinal indicates descending; for example, -2 means field 1 descending.<br><br>In the other forms, you can wrap expressions in <code class="highlighter-rouge">as</code>, <code class="highlighter-rouge">nullsFirst</code> or <code class="highlighter-rouge">nullsLast</code>.</td>
+      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Sort.html">Sort</a>.<br><br>In the first form, field ordinals are 0-based, and a negative ordinal indicates descending; for example, -2 means field 1 descending.<br><br>In the other forms, you can wrap expressions in <code class="language-plaintext highlighter-rouge">as</code>, <code class="language-plaintext highlighter-rouge">nullsFirst</code> or <code class="language-plaintext highlighter-rouge">nullsLast</code>.</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">sortLimit(offset, fetch, expr...)</code><br><code class="highlighter-rouge">sortLimit(offset, fetch, exprList)</code>
+<code class="language-plaintext highlighter-rouge">sortLimit(offset, fetch, expr...)</code><br><code class="language-plaintext highlighter-rouge">sortLimit(offset, fetch, exprList)</code>
 </td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Sort.html">Sort</a> with offset and limit.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">limit(offset, fetch)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">limit(offset, fetch)</code></td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Sort.html">Sort</a> that does not sort, only applies with offset and limit.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">exchange(distribution)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">exchange(distribution)</code></td>
       <td style="text-align: left">Creates an <a href="/javadocAggregate/org/apache/calcite/rel/core/Exchange.html">Exchange</a>.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">sortExchange(distribution, collation)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">sortExchange(distribution, collation)</code></td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/SortExchange.html">SortExchange</a>.</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">correlate(joinType, correlationId, requiredField...)</code><br><code class="highlighter-rouge">correlate(joinType, correlationId, requiredFieldList)</code>
+<code class="language-plaintext highlighter-rouge">correlate(joinType, correlationId, requiredField...)</code><br><code class="language-plaintext highlighter-rouge">correlate(joinType, correlationId, requiredFieldList)</code>
 </td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Correlate.html">Correlate</a> of the two most recent relational expressions, with a variable name and required field expressions for the left relation.</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">join(joinType, expr...)</code><br><code class="highlighter-rouge">join(joinType, exprList)</code><br><code class="highlighter-rouge">join(joinType, fieldName...)</code>
+<code class="language-plaintext highlighter-rouge">join(joinType, expr...)</code><br><code class="language-plaintext highlighter-rouge">join(joinType, exprList)</code><br><code class="language-plaintext highlighter-rouge">join(joinType, fieldName...)</code>
 </td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Join.html">Join</a> of the two most recent relational expressions.<br><br>The first form joins on a boolean expression (multiple conditions are combined using AND).<br><br>The last form joins on named fields; each side must have a field of each name.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">semiJoin(expr)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">semiJoin(expr)</code></td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Join.html">Join</a> with SEMI join type of the two most recent relational expressions.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">antiJoin(expr)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">antiJoin(expr)</code></td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Join.html">Join</a> with ANTI join type of the two most recent relational expressions.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">union(all [, n])</code></td>
-      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Union.html">Union</a> of the <code class="highlighter-rouge">n</code> (default two) most recent relational expressions.</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">union(all [, n])</code></td>
+      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Union.html">Union</a> of the <code class="language-plaintext highlighter-rouge">n</code> (default two) most recent relational expressions.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">intersect(all [, n])</code></td>
-      <td style="text-align: left">Creates an <a href="/javadocAggregate/org/apache/calcite/rel/core/Intersect.html">Intersect</a> of the <code class="highlighter-rouge">n</code> (default two) most recent relational expressions.</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">intersect(all [, n])</code></td>
+      <td style="text-align: left">Creates an <a href="/javadocAggregate/org/apache/calcite/rel/core/Intersect.html">Intersect</a> of the <code class="language-plaintext highlighter-rouge">n</code> (default two) most recent relational expressions.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">minus(all)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">minus(all)</code></td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Minus.html">Minus</a> of the two most recent relational expressions.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">repeatUnion(tableName, all [, n])</code></td>
-      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/RepeatUnion.html">RepeatUnion</a> associated to a <a href="/javadocAggregate/org/apache/calcite/schema/TransientTable.html">TransientTable</a> of the two most recent relational expressions, with <code class="highlighter-rouge">n</code> maximum number of iterations (default -1, i.e. no limit).</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">repeatUnion(tableName, all [, n])</code></td>
+      <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/RepeatUnion.html">RepeatUnion</a> associated to a <a href="/javadocAggregate/org/apache/calcite/schema/TransientTable.html">TransientTable</a> of the two most recent relational expressions, with <code class="language-plaintext highlighter-rouge">n</code> maximum number of iterations (default -1, i.e. no limit).</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">snapshot(period)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">snapshot(period)</code></td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Snapshot.html">Snapshot</a> of the given snapshot period.</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">match(pattern, strictStart,</code> <code class="highlighter-rouge">strictEnd, patterns, measures,</code> <code class="highlighter-rouge">after, subsets, allRows,</code> <code class="highlighter-rouge">partitionKeys, orderKeys,</code> <code class="highlighter-rouge">interval)</code>
+<code class="language-plaintext highlighter-rouge">match(pattern, strictStart,</code> <code class="language-plaintext highlighter-rouge">strictEnd, patterns, measures,</code> <code class="language-plaintext highlighter-rouge">after, subsets, allRows,</code> <code class="language-plaintext highlighter-rouge">partitionKeys, orderKeys,</code> <code class="language-plaintext highlighter-rouge">interval)</code>
 </td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Match.html">Match</a>.</td>
     </tr>
@@ -503,74 +503,74 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">expr</code>, <code class="highlighter-rouge">interval</code> <a href="/javadocAggregate/org/apache/calcite/rex/RexNode.html">RexNode</a>
+<code class="language-plaintext highlighter-rouge">expr</code>, <code class="language-plaintext highlighter-rouge">interval</code> <a href="/javadocAggregate/org/apache/calcite/rex/RexNode.html">RexNode</a>
 </li>
   <li>
-<code class="highlighter-rouge">expr...</code>, <code class="highlighter-rouge">requiredField...</code> Array of
+<code class="language-plaintext highlighter-rouge">expr...</code>, <code class="language-plaintext highlighter-rouge">requiredField...</code> Array of
 <a href="/javadocAggregate/org/apache/calcite/rex/RexNode.html">RexNode</a>
 </li>
   <li>
-<code class="highlighter-rouge">exprList</code>, <code class="highlighter-rouge">measureList</code>, <code class="highlighter-rouge">partitionKeys</code>, <code class="highlighter-rouge">orderKeys</code>,
-<code class="highlighter-rouge">requiredFieldList</code> Iterable of
+<code class="language-plaintext highlighter-rouge">exprList</code>, <code class="language-plaintext highlighter-rouge">measureList</code>, <code class="language-plaintext highlighter-rouge">partitionKeys</code>, <code class="language-plaintext highlighter-rouge">orderKeys</code>,
+<code class="language-plaintext highlighter-rouge">requiredFieldList</code> Iterable of
 <a href="/javadocAggregate/org/apache/calcite/rex/RexNode.html">RexNode</a>
 </li>
   <li>
-<code class="highlighter-rouge">fieldOrdinal</code> Ordinal of a field within its row (starting from 0)</li>
+<code class="language-plaintext highlighter-rouge">fieldOrdinal</code> Ordinal of a field within its row (starting from 0)</li>
   <li>
-<code class="highlighter-rouge">fieldName</code> Name of a field, unique within its row</li>
+<code class="language-plaintext highlighter-rouge">fieldName</code> Name of a field, unique within its row</li>
   <li>
-<code class="highlighter-rouge">fieldName...</code> Array of String</li>
+<code class="language-plaintext highlighter-rouge">fieldName...</code> Array of String</li>
   <li>
-<code class="highlighter-rouge">fieldNames</code> Iterable of String</li>
+<code class="language-plaintext highlighter-rouge">fieldNames</code> Iterable of String</li>
   <li>
-<code class="highlighter-rouge">rowType</code> <a href="/javadocAggregate/org/apache/calcite/rel/type/RelDataType.html">RelDataType</a>
+<code class="language-plaintext highlighter-rouge">rowType</code> <a href="/javadocAggregate/org/apache/calcite/rel/type/RelDataType.html">RelDataType</a>
 </li>
   <li>
-<code class="highlighter-rouge">groupKey</code> <a href="/javadocAggregate/org/apache/calcite/tools/RelBuilder.GroupKey.html">RelBuilder.GroupKey</a>
+<code class="language-plaintext highlighter-rouge">groupKey</code> <a href="/javadocAggregate/org/apache/calcite/tools/RelBuilder.GroupKey.html">RelBuilder.GroupKey</a>
 </li>
   <li>
-<code class="highlighter-rouge">aggCall...</code> Array of <a href="/javadocAggregate/org/apache/calcite/tools/RelBuilder.AggCall.html">RelBuilder.AggCall</a>
+<code class="language-plaintext highlighter-rouge">aggCall...</code> Array of <a href="/javadocAggregate/org/apache/calcite/tools/RelBuilder.AggCall.html">RelBuilder.AggCall</a>
 </li>
   <li>
-<code class="highlighter-rouge">aggCallList</code> Iterable of <a href="/javadocAggregate/org/apache/calcite/tools/RelBuilder.AggCall.html">RelBuilder.AggCall</a>
+<code class="language-plaintext highlighter-rouge">aggCallList</code> Iterable of <a href="/javadocAggregate/org/apache/calcite/tools/RelBuilder.AggCall.html">RelBuilder.AggCall</a>
 </li>
   <li>
-<code class="highlighter-rouge">value...</code> Array of Object</li>
+<code class="language-plaintext highlighter-rouge">value...</code> Array of Object</li>
   <li>
-<code class="highlighter-rouge">value</code> Object</li>
+<code class="language-plaintext highlighter-rouge">value</code> Object</li>
   <li>
-<code class="highlighter-rouge">tupleList</code> Iterable of List of <a href="/javadocAggregate/org/apache/calcite/rex/RexLiteral.html">RexLiteral</a>
+<code class="language-plaintext highlighter-rouge">tupleList</code> Iterable of List of <a href="/javadocAggregate/org/apache/calcite/rex/RexLiteral.html">RexLiteral</a>
 </li>
   <li>
-<code class="highlighter-rouge">all</code>, <code class="highlighter-rouge">distinct</code>, <code class="highlighter-rouge">strictStart</code>, <code class="highlighter-rouge">strictEnd</code>, <code class="highlighter-rouge">allRows</code> boolean</li>
+<code class="language-plaintext highlighter-rouge">all</code>, <code class="language-plaintext highlighter-rouge">distinct</code>, <code class="language-plaintext highlighter-rouge">strictStart</code>, <code class="language-plaintext highlighter-rouge">strictEnd</code>, <code class="language-plaintext highlighter-rouge">allRows</code> boolean</li>
   <li>
-<code class="highlighter-rouge">alias</code> String</li>
+<code class="language-plaintext highlighter-rouge">alias</code> String</li>
   <li>
-<code class="highlighter-rouge">correlationId</code> <a href="/javadocAggregate/org/apache/calcite/rel/core/CorrelationId.html">CorrelationId</a>
+<code class="language-plaintext highlighter-rouge">correlationId</code> <a href="/javadocAggregate/org/apache/calcite/rel/core/CorrelationId.html">CorrelationId</a>
 </li>
   <li>
-<code class="highlighter-rouge">variablesSet</code> Iterable of
+<code class="language-plaintext highlighter-rouge">variablesSet</code> Iterable of
 <a href="/javadocAggregate/org/apache/calcite/rel/core/CorrelationId.html">CorrelationId</a>
 </li>
   <li>
-<code class="highlighter-rouge">varHolder</code> <a href="/javadocAggregate/org/apache/calcite/util/Holder.html">Holder</a> of <a href="/javadocAggregate/org/apache/calcite/rex/RexCorrelVariable.html">RexCorrelVariable</a>
+<code class="language-plaintext highlighter-rouge">varHolder</code> <a href="/javadocAggregate/org/apache/calcite/util/Holder.html">Holder</a> of <a href="/javadocAggregate/org/apache/calcite/rex/RexCorrelVariable.html">RexCorrelVariable</a>
 </li>
   <li>
-<code class="highlighter-rouge">patterns</code> Map whose key is String, value is <a href="/javadocAggregate/org/apache/calcite/rex/RexNode.html">RexNode</a>
+<code class="language-plaintext highlighter-rouge">patterns</code> Map whose key is String, value is <a href="/javadocAggregate/org/apache/calcite/rex/RexNode.html">RexNode</a>
 </li>
   <li>
-<code class="highlighter-rouge">subsets</code> Map whose key is String, value is a sorted set of String</li>
+<code class="language-plaintext highlighter-rouge">subsets</code> Map whose key is String, value is a sorted set of String</li>
   <li>
-<code class="highlighter-rouge">distribution</code> <a href="/javadocAggregate/org/apache/calcite/rel/RelDistribution.html">RelDistribution</a>
+<code class="language-plaintext highlighter-rouge">distribution</code> <a href="/javadocAggregate/org/apache/calcite/rel/RelDistribution.html">RelDistribution</a>
 </li>
   <li>
-<code class="highlighter-rouge">collation</code> <a href="/javadocAggregate/org/apache/calcite/rel/RelCollation.html">RelCollation</a>
+<code class="language-plaintext highlighter-rouge">collation</code> <a href="/javadocAggregate/org/apache/calcite/rel/RelCollation.html">RelCollation</a>
 </li>
   <li>
-<code class="highlighter-rouge">operator</code> <a href="/javadocAggregate/org/apache/calcite/sql/SqlOperator.html">SqlOperator</a>
+<code class="language-plaintext highlighter-rouge">operator</code> <a href="/javadocAggregate/org/apache/calcite/sql/SqlOperator.html">SqlOperator</a>
 </li>
   <li>
-<code class="highlighter-rouge">joinType</code> <a href="/javadocAggregate/org/apache/calcite/rel/core/JoinRelType.html">JoinRelType</a>
+<code class="language-plaintext highlighter-rouge">joinType</code> <a href="/javadocAggregate/org/apache/calcite/rel/core/JoinRelType.html">JoinRelType</a>
 </li>
 </ul>
 
@@ -578,11 +578,11 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">project</code> returns its input if asked to project all columns in order</li>
+<code class="language-plaintext highlighter-rouge">project</code> returns its input if asked to project all columns in order</li>
   <li>
-<code class="highlighter-rouge">filter</code> flattens the condition (so an <code class="highlighter-rouge">AND</code> and <code class="highlighter-rouge">OR</code> may have more than 2 children),
-simplifies (converting say <code class="highlighter-rouge">x = 1 AND TRUE</code> to <code class="highlighter-rouge">x = 1</code>)</li>
-  <li>If you apply <code class="highlighter-rouge">sort</code> then <code class="highlighter-rouge">limit</code>, the effect is as if you had called <code class="highlighter-rouge">sortLimit</code>
+<code class="language-plaintext highlighter-rouge">filter</code> flattens the condition (so an <code class="language-plaintext highlighter-rouge">AND</code> and <code class="language-plaintext highlighter-rouge">OR</code> may have more than 2 children),
+simplifies (converting say <code class="language-plaintext highlighter-rouge">x = 1 AND TRUE</code> to <code class="language-plaintext highlighter-rouge">x = 1</code>)</li>
+  <li>If you apply <code class="language-plaintext highlighter-rouge">sort</code> then <code class="language-plaintext highlighter-rouge">limit</code>, the effect is as if you had called <code class="language-plaintext highlighter-rouge">sortLimit</code>
 </li>
 </ul>
 
@@ -598,11 +598,11 @@
   </thead>
   <tbody>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">as(alias)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">as(alias)</code></td>
       <td style="text-align: left">Assigns a table alias to the top relational expression on the stack</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">variable(varHolder)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">variable(varHolder)</code></td>
       <td style="text-align: left">Creates a correlation variable referencing the top relational expression</td>
     </tr>
   </tbody>
@@ -619,19 +619,19 @@
   </thead>
   <tbody>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">build()</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">build()</code></td>
       <td style="text-align: left">Pops the most recently created relational expression off the stack</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">push(rel)</code></td>
-      <td style="text-align: left">Pushes a relational expression onto the stack. Relational methods such as <code class="highlighter-rouge">scan</code>, above, call this method, but user code generally does not</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">push(rel)</code></td>
+      <td style="text-align: left">Pushes a relational expression onto the stack. Relational methods such as <code class="language-plaintext highlighter-rouge">scan</code>, above, call this method, but user code generally does not</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">pushAll(collection)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">pushAll(collection)</code></td>
       <td style="text-align: left">Pushes a collection of relational expressions onto the stack</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">peek()</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">peek()</code></td>
       <td style="text-align: left">Returns the relational expression most recently put onto the stack, but does not remove it</td>
     </tr>
   </tbody>
@@ -642,7 +642,7 @@
 <p>The following methods return a scalar expression
 (<a href="/javadocAggregate/org/apache/calcite/rex/RexNode.html">RexNode</a>).</p>
 
-<p>Many of them use the contents of the stack. For example, <code class="highlighter-rouge">field("DEPTNO")</code>
+<p>Many of them use the contents of the stack. For example, <code class="language-plaintext highlighter-rouge">field("DEPTNO")</code>
 returns a reference to the “DEPTNO” field of the relational expression just
 added to the stack.</p>
 
@@ -655,129 +655,129 @@
   </thead>
   <tbody>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">literal(value)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">literal(value)</code></td>
       <td style="text-align: left">Constant</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">field(fieldName)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">field(fieldName)</code></td>
       <td style="text-align: left">Reference, by name, to a field of the top-most relational expression</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">field(fieldOrdinal)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">field(fieldOrdinal)</code></td>
       <td style="text-align: left">Reference, by ordinal, to a field of the top-most relational expression</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">field(inputCount, inputOrdinal, fieldName)</code></td>
-      <td style="text-align: left">Reference, by name, to a field of the (<code class="highlighter-rouge">inputCount</code> - <code class="highlighter-rouge">inputOrdinal</code>)th relational expression</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">field(inputCount, inputOrdinal, fieldName)</code></td>
+      <td style="text-align: left">Reference, by name, to a field of the (<code class="language-plaintext highlighter-rouge">inputCount</code> - <code class="language-plaintext highlighter-rouge">inputOrdinal</code>)th relational expression</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">field(inputCount, inputOrdinal, fieldOrdinal)</code></td>
-      <td style="text-align: left">Reference, by ordinal, to a field of the (<code class="highlighter-rouge">inputCount</code> - <code class="highlighter-rouge">inputOrdinal</code>)th relational expression</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">field(inputCount, inputOrdinal, fieldOrdinal)</code></td>
+      <td style="text-align: left">Reference, by ordinal, to a field of the (<code class="language-plaintext highlighter-rouge">inputCount</code> - <code class="language-plaintext highlighter-rouge">inputOrdinal</code>)th relational expression</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">field(inputCount, alias, fieldName)</code></td>
-      <td style="text-align: left">Reference, by table alias and field name, to a field at most <code class="highlighter-rouge">inputCount - 1</code> elements from the top of the stack</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">field(inputCount, alias, fieldName)</code></td>
+      <td style="text-align: left">Reference, by table alias and field name, to a field at most <code class="language-plaintext highlighter-rouge">inputCount - 1</code> elements from the top of the stack</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">field(alias, fieldName)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">field(alias, fieldName)</code></td>
       <td style="text-align: left">Reference, by table alias and field name, to a field of the top-most relational expressions</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">field(expr, fieldName)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">field(expr, fieldName)</code></td>
       <td style="text-align: left">Reference, by name, to a field of a record-valued expression</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">field(expr, fieldOrdinal)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">field(expr, fieldOrdinal)</code></td>
       <td style="text-align: left">Reference, by ordinal, to a field of a record-valued expression</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">fields(fieldOrdinalList)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">fields(fieldOrdinalList)</code></td>
       <td style="text-align: left">List of expressions referencing input fields by ordinal</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">fields(mapping)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">fields(mapping)</code></td>
       <td style="text-align: left">List of expressions referencing input fields by a given mapping</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">fields(collation)</code></td>
-      <td style="text-align: left">List of expressions, <code class="highlighter-rouge">exprList</code>, such that <code class="highlighter-rouge">sort(exprList)</code> would replicate collation</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">fields(collation)</code></td>
+      <td style="text-align: left">List of expressions, <code class="language-plaintext highlighter-rouge">exprList</code>, such that <code class="language-plaintext highlighter-rouge">sort(exprList)</code> would replicate collation</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">call(op, expr...)</code><br><code class="highlighter-rouge">call(op, exprList)</code>
+<code class="language-plaintext highlighter-rouge">call(op, expr...)</code><br><code class="language-plaintext highlighter-rouge">call(op, exprList)</code>
 </td>
       <td style="text-align: left">Call to a function or operator</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">and(expr...)</code><br><code class="highlighter-rouge">and(exprList)</code>
+<code class="language-plaintext highlighter-rouge">and(expr...)</code><br><code class="language-plaintext highlighter-rouge">and(exprList)</code>
 </td>
       <td style="text-align: left">Logical AND. Flattens nested ANDs, and optimizes cases involving TRUE and FALSE.</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">or(expr...)</code><br><code class="highlighter-rouge">or(exprList)</code>
+<code class="language-plaintext highlighter-rouge">or(expr...)</code><br><code class="language-plaintext highlighter-rouge">or(exprList)</code>
 </td>
       <td style="text-align: left">Logical OR. Flattens nested ORs, and optimizes cases involving TRUE and FALSE.</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">not(expr)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">not(expr)</code></td>
       <td style="text-align: left">Logical NOT</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">equals(expr, expr)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">equals(expr, expr)</code></td>
       <td style="text-align: left">Equals</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">isNull(expr)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">isNull(expr)</code></td>
       <td style="text-align: left">Checks whether an expression is null</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">isNotNull(expr)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">isNotNull(expr)</code></td>
       <td style="text-align: left">Checks whether an expression is not null</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">alias(expr, fieldName)</code></td>
-      <td style="text-align: left">Renames an expression (only valid as an argument to <code class="highlighter-rouge">project</code>)</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">alias(expr, fieldName)</code></td>
+      <td style="text-align: left">Renames an expression (only valid as an argument to <code class="language-plaintext highlighter-rouge">project</code>)</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">cast(expr, typeName)</code><br><code class="highlighter-rouge">cast(expr, typeName, precision)</code><br><code class="highlighter-rouge">cast(expr, typeName, precision, scale)</code><br>
+<code class="language-plaintext highlighter-rouge">cast(expr, typeName)</code><br><code class="language-plaintext highlighter-rouge">cast(expr, typeName, precision)</code><br><code class="language-plaintext highlighter-rouge">cast(expr, typeName, precision, scale)</code><br>
 </td>
       <td style="text-align: left">Converts an expression to a given type</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">desc(expr)</code></td>
-      <td style="text-align: left">Changes sort direction to descending (only valid as an argument to <code class="highlighter-rouge">sort</code> or <code class="highlighter-rouge">sortLimit</code>)</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">desc(expr)</code></td>
+      <td style="text-align: left">Changes sort direction to descending (only valid as an argument to <code class="language-plaintext highlighter-rouge">sort</code> or <code class="language-plaintext highlighter-rouge">sortLimit</code>)</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">nullsFirst(expr)</code></td>
-      <td style="text-align: left">Changes sort order to nulls first (only valid as an argument to <code class="highlighter-rouge">sort</code> or <code class="highlighter-rouge">sortLimit</code>)</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">nullsFirst(expr)</code></td>
+      <td style="text-align: left">Changes sort order to nulls first (only valid as an argument to <code class="language-plaintext highlighter-rouge">sort</code> or <code class="language-plaintext highlighter-rouge">sortLimit</code>)</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">nullsLast(expr)</code></td>
-      <td style="text-align: left">Changes sort order to nulls last (only valid as an argument to <code class="highlighter-rouge">sort</code> or <code class="highlighter-rouge">sortLimit</code>)</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">nullsLast(expr)</code></td>
+      <td style="text-align: left">Changes sort order to nulls last (only valid as an argument to <code class="language-plaintext highlighter-rouge">sort</code> or <code class="language-plaintext highlighter-rouge">sortLimit</code>)</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">cursor(n, input)</code></td>
-      <td style="text-align: left">Reference to <code class="highlighter-rouge">input</code>th (0-based) relational input of a <code class="highlighter-rouge">TableFunctionScan</code> with <code class="highlighter-rouge">n</code> inputs (see <code class="highlighter-rouge">functionScan</code>)</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">cursor(n, input)</code></td>
+      <td style="text-align: left">Reference to <code class="language-plaintext highlighter-rouge">input</code>th (0-based) relational input of a <code class="language-plaintext highlighter-rouge">TableFunctionScan</code> with <code class="language-plaintext highlighter-rouge">n</code> inputs (see <code class="language-plaintext highlighter-rouge">functionScan</code>)</td>
     </tr>
   </tbody>
 </table></div>
 
 <h4 id="sub-query-methods">Sub-query methods</h4>
 
-<p>The following methods convert a sub-query into a scalar value (a <code class="highlighter-rouge">BOOLEAN</code> in
-the case of <code class="highlighter-rouge">in</code>, <code class="highlighter-rouge">exists</code>, <code class="highlighter-rouge">some</code>, <code class="highlighter-rouge">all</code>, <code class="highlighter-rouge">unique</code>;
-any scalar type for <code class="highlighter-rouge">scalarQuery</code>).
-an <code class="highlighter-rouge">ARRAY</code> for <code class="highlighter-rouge">arrayQuery</code>,
-a <code class="highlighter-rouge">MAP</code> for <code class="highlighter-rouge">mapQuery</code>,
-and a <code class="highlighter-rouge">MULTISET</code> for <code class="highlighter-rouge">multisetQuery</code>).</p>
+<p>The following methods convert a sub-query into a scalar value (a <code class="language-plaintext highlighter-rouge">BOOLEAN</code> in
+the case of <code class="language-plaintext highlighter-rouge">in</code>, <code class="language-plaintext highlighter-rouge">exists</code>, <code class="language-plaintext highlighter-rouge">some</code>, <code class="language-plaintext highlighter-rouge">all</code>, <code class="language-plaintext highlighter-rouge">unique</code>;
+any scalar type for <code class="language-plaintext highlighter-rouge">scalarQuery</code>).
+an <code class="language-plaintext highlighter-rouge">ARRAY</code> for <code class="language-plaintext highlighter-rouge">arrayQuery</code>,
+a <code class="language-plaintext highlighter-rouge">MAP</code> for <code class="language-plaintext highlighter-rouge">mapQuery</code>,
+and a <code class="language-plaintext highlighter-rouge">MULTISET</code> for <code class="language-plaintext highlighter-rouge">multisetQuery</code>).</p>
 
-<p>In all the following, <code class="highlighter-rouge">relFn</code> is a function that takes a <code class="highlighter-rouge">RelBuilder</code> argument
-and returns a <code class="highlighter-rouge">RelNode</code>. You typically implement it as a lambda; the method
-calls your code with a <code class="highlighter-rouge">RelBuilder</code> that has the correct context, and your code
-returns the <code class="highlighter-rouge">RelNode</code> that is to be the sub-query.</p>
+<p>In all the following, <code class="language-plaintext highlighter-rouge">relFn</code> is a function that takes a <code class="language-plaintext highlighter-rouge">RelBuilder</code> argument
+and returns a <code class="language-plaintext highlighter-rouge">RelNode</code>. You typically implement it as a lambda; the method
+calls your code with a <code class="language-plaintext highlighter-rouge">RelBuilder</code> that has the correct context, and your code
+returns the <code class="language-plaintext highlighter-rouge">RelNode</code> that is to be the sub-query.</p>
 
 <div class="scroll-table-style"><table>
   <thead>
@@ -788,44 +788,44 @@
   </thead>
   <tbody>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">all(expr, op, relFn)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">all(expr, op, relFn)</code></td>
       <td style="text-align: left">Returns whether <em>expr</em> has a particular relation to all of the values of the sub-query</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">arrayQuery(relFn)</code></td>
-      <td style="text-align: left">Returns the rows of a sub-query as an <code class="highlighter-rouge">ARRAY</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">arrayQuery(relFn)</code></td>
+      <td style="text-align: left">Returns the rows of a sub-query as an <code class="language-plaintext highlighter-rouge">ARRAY</code>
 </td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">exists(relFn)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">exists(relFn)</code></td>
       <td style="text-align: left">Tests whether sub-query is non-empty</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">in(expr, relFn)</code><br><code class="highlighter-rouge">in(exprList, relFn)</code>
+<code class="language-plaintext highlighter-rouge">in(expr, relFn)</code><br><code class="language-plaintext highlighter-rouge">in(exprList, relFn)</code>
 </td>
       <td style="text-align: left">Tests whether a value occurs in a sub-query</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">mapQuery(relFn)</code></td>
-      <td style="text-align: left">Returns the rows of a sub-query as a <code class="highlighter-rouge">MAP</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">mapQuery(relFn)</code></td>
+      <td style="text-align: left">Returns the rows of a sub-query as a <code class="language-plaintext highlighter-rouge">MAP</code>
 </td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">multisetQuery(relFn)</code></td>
-      <td style="text-align: left">Returns the rows of a sub-query as a <code class="highlighter-rouge">MULTISET</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">multisetQuery(relFn)</code></td>
+      <td style="text-align: left">Returns the rows of a sub-query as a <code class="language-plaintext highlighter-rouge">MULTISET</code>
 </td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">scalarQuery(relFn)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">scalarQuery(relFn)</code></td>
       <td style="text-align: left">Returns the value of the sole column of the sole row of a sub-query</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">some(expr, op, relFn)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">some(expr, op, relFn)</code></td>
       <td style="text-align: left">Returns whether <em>expr</em> has a particular relation to one or more of the values of the sub-query</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">unique(relFn)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">unique(relFn)</code></td>
       <td style="text-align: left">Returns whether the rows of a sub-query are unique</td>
     </tr>
   </tbody>
@@ -833,7 +833,7 @@
 
 <h4 id="pattern-methods">Pattern methods</h4>
 
-<p>The following methods return patterns for use in <code class="highlighter-rouge">match</code>.</p>
+<p>The following methods return patterns for use in <code class="language-plaintext highlighter-rouge">match</code>.</p>
 
 <div class="scroll-table-style"><table>
   <thead>
@@ -844,23 +844,23 @@
   </thead>
   <tbody>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">patternConcat(pattern...)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">patternConcat(pattern...)</code></td>
       <td style="text-align: left">Concatenates patterns</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">patternAlter(pattern...)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">patternAlter(pattern...)</code></td>
       <td style="text-align: left">Alternates patterns</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">patternQuantify(pattern, min, max)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">patternQuantify(pattern, min, max)</code></td>
       <td style="text-align: left">Quantifies a pattern</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">patternPermute(pattern...)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">patternPermute(pattern...)</code></td>
       <td style="text-align: left">Permutes a pattern</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">patternExclude(pattern)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">patternExclude(pattern)</code></td>
       <td style="text-align: left">Excludes a pattern</td>
     </tr>
   </tbody>
@@ -881,17 +881,17 @@
   <tbody>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">groupKey(fieldName...)</code><br><code class="highlighter-rouge">groupKey(fieldOrdinal...)</code><br><code class="highlighter-rouge">groupKey(expr...)</code><br><code class="highlighter-rouge">groupKey(exprList)</code>
+<code class="language-plaintext highlighter-rouge">groupKey(fieldName...)</code><br><code class="language-plaintext highlighter-rouge">groupKey(fieldOrdinal...)</code><br><code class="language-plaintext highlighter-rouge">groupKey(expr...)</code><br><code class="language-plaintext highlighter-rouge">groupKey(exprList)</code>
 </td>
       <td style="text-align: left">Creates a group key of the given expressions</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">groupKey(exprList, exprListList)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">groupKey(exprList, exprListList)</code></td>
       <td style="text-align: left">Creates a group key of the given expressions with grouping sets</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">groupKey(bitSet [, bitSets])</code></td>
-      <td style="text-align: left">Creates a group key of the given input columns, with multiple grouping sets if <code class="highlighter-rouge">bitSets</code> is specified</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">groupKey(bitSet [, bitSets])</code></td>
+      <td style="text-align: left">Creates a group key of the given input columns, with multiple grouping sets if <code class="language-plaintext highlighter-rouge">bitSets</code> is specified</td>
     </tr>
   </tbody>
 </table></div>
@@ -911,36 +911,36 @@
   <tbody>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">aggregateCall(op, expr...)</code><br><code class="highlighter-rouge">aggregateCall(op, exprList)</code>
+<code class="language-plaintext highlighter-rouge">aggregateCall(op, expr...)</code><br><code class="language-plaintext highlighter-rouge">aggregateCall(op, exprList)</code>
 </td>
       <td style="text-align: left">Creates a call to a given aggregate function</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">count([ distinct, alias, ] expr...)</code><br><code class="highlighter-rouge">count([ distinct, alias, ] exprList)</code>
+<code class="language-plaintext highlighter-rouge">count([ distinct, alias, ] expr...)</code><br><code class="language-plaintext highlighter-rouge">count([ distinct, alias, ] exprList)</code>
 </td>
-      <td style="text-align: left">Creates a call to the <code class="highlighter-rouge">COUNT</code> aggregate function</td>
+      <td style="text-align: left">Creates a call to the <code class="language-plaintext highlighter-rouge">COUNT</code> aggregate function</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">countStar(alias)</code></td>
-      <td style="text-align: left">Creates a call to the <code class="highlighter-rouge">COUNT(*)</code> aggregate function</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">countStar(alias)</code></td>
+      <td style="text-align: left">Creates a call to the <code class="language-plaintext highlighter-rouge">COUNT(*)</code> aggregate function</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">sum([ distinct, alias, ] expr)</code></td>
-      <td style="text-align: left">Creates a call to the <code class="highlighter-rouge">SUM</code> aggregate function</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">sum([ distinct, alias, ] expr)</code></td>
+      <td style="text-align: left">Creates a call to the <code class="language-plaintext highlighter-rouge">SUM</code> aggregate function</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">min([ alias, ] expr)</code></td>
-      <td style="text-align: left">Creates a call to the <code class="highlighter-rouge">MIN</code> aggregate function</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">min([ alias, ] expr)</code></td>
+      <td style="text-align: left">Creates a call to the <code class="language-plaintext highlighter-rouge">MIN</code> aggregate function</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">max([ alias, ] expr)</code></td>
-      <td style="text-align: left">Creates a call to the <code class="highlighter-rouge">MAX</code> aggregate function</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">max([ alias, ] expr)</code></td>
+      <td style="text-align: left">Creates a call to the <code class="language-plaintext highlighter-rouge">MAX</code> aggregate function</td>
     </tr>
   </tbody>
 </table></div>
 
-<p>To further modify the <code class="highlighter-rouge">AggCall</code>, call its methods:</p>
+<p>To further modify the <code class="language-plaintext highlighter-rouge">AggCall</code>, call its methods:</p>
 
 <div class="scroll-table-style"><table>
   <thead>
@@ -951,42 +951,42 @@
   </thead>
   <tbody>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">approximate(approximate)</code></td>
-      <td style="text-align: left">Allows approximate value for the aggregate of <code class="highlighter-rouge">approximate</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">approximate(approximate)</code></td>
+      <td style="text-align: left">Allows approximate value for the aggregate of <code class="language-plaintext highlighter-rouge">approximate</code>
 </td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">as(alias)</code></td>
-      <td style="text-align: left">Assigns a column alias to this expression (see SQL <code class="highlighter-rouge">AS</code>)</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">as(alias)</code></td>
+      <td style="text-align: left">Assigns a column alias to this expression (see SQL <code class="language-plaintext highlighter-rouge">AS</code>)</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">distinct()</code></td>
-      <td style="text-align: left">Eliminates duplicate values before aggregating (see SQL <code class="highlighter-rouge">DISTINCT</code>)</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">distinct()</code></td>
+      <td style="text-align: left">Eliminates duplicate values before aggregating (see SQL <code class="language-plaintext highlighter-rouge">DISTINCT</code>)</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">distinct(distinct)</code></td>
-      <td style="text-align: left">Eliminates duplicate values before aggregating if <code class="highlighter-rouge">distinct</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">distinct(distinct)</code></td>
+      <td style="text-align: left">Eliminates duplicate values before aggregating if <code class="language-plaintext highlighter-rouge">distinct</code>
 </td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">filter(expr)</code></td>
-      <td style="text-align: left">Filters rows before aggregating (see SQL <code class="highlighter-rouge">FILTER (WHERE ...)</code>)</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">filter(expr)</code></td>
+      <td style="text-align: left">Filters rows before aggregating (see SQL <code class="language-plaintext highlighter-rouge">FILTER (WHERE ...)</code>)</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">sort(expr...)</code><br><code class="highlighter-rouge">sort(exprList)</code>
+<code class="language-plaintext highlighter-rouge">sort(expr...)</code><br><code class="language-plaintext highlighter-rouge">sort(exprList)</code>
 </td>
-      <td style="text-align: left">Sorts rows before aggregating (see SQL <code class="highlighter-rouge">WITHIN GROUP</code>)</td>
+      <td style="text-align: left">Sorts rows before aggregating (see SQL <code class="language-plaintext highlighter-rouge">WITHIN GROUP</code>)</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">unique(expr...)</code><br><code class="highlighter-rouge">unique(exprList)</code>
+<code class="language-plaintext highlighter-rouge">unique(expr...)</code><br><code class="language-plaintext highlighter-rouge">unique(exprList)</code>
 </td>
-      <td style="text-align: left">Makes rows unique before aggregating (see SQL <code class="highlighter-rouge">WITHIN DISTINCT</code>)</td>
+      <td style="text-align: left">Makes rows unique before aggregating (see SQL <code class="language-plaintext highlighter-rouge">WITHIN DISTINCT</code>)</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">over()</code></td>
-      <td style="text-align: left">Converts this <code class="highlighter-rouge">AggCall</code> into a windowed aggregate (see <code class="highlighter-rouge">OverCall</code> below)</td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">over()</code></td>
+      <td style="text-align: left">Converts this <code class="language-plaintext highlighter-rouge">AggCall</code> into a windowed aggregate (see <code class="language-plaintext highlighter-rouge">OverCall</code> below)</td>
     </tr>
   </tbody>
 </table></div>
@@ -996,9 +996,9 @@
 <p>To create an
 <a href="/javadocAggregate/org/apache/calcite/tools/RelBuilder.OverCall.html">RelBuilder.OverCall</a>,
 which represents a call to a windowed aggregate function, create an aggregate
-call and then call its <code class="highlighter-rouge">over()</code> method, for instance <code class="highlighter-rouge">count().over()</code>.</p>
+call and then call its <code class="language-plaintext highlighter-rouge">over()</code> method, for instance <code class="language-plaintext highlighter-rouge">count().over()</code>.</p>
 
-<p>To further modify the <code class="highlighter-rouge">OverCall</code>, call its methods:</p>
+<p>To further modify the <code class="language-plaintext highlighter-rouge">OverCall</code>, call its methods:</p>
 
 <div class="scroll-table-style"><table>
   <thead>
@@ -1009,73 +1009,73 @@
   </thead>
   <tbody>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">rangeUnbounded()</code></td>
-      <td style="text-align: left">Creates an unbounded range-based window, <code class="highlighter-rouge">RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">rangeUnbounded()</code></td>
+      <td style="text-align: left">Creates an unbounded range-based window, <code class="language-plaintext highlighter-rouge">RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING</code>
 </td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">rangeFrom(lower)</code></td>
-      <td style="text-align: left">Creates a range-based window bounded below, <code class="highlighter-rouge">RANGE BETWEEN lower AND CURRENT ROW</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">rangeFrom(lower)</code></td>
+      <td style="text-align: left">Creates a range-based window bounded below, <code class="language-plaintext highlighter-rouge">RANGE BETWEEN lower AND CURRENT ROW</code>
 </td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">rangeTo(upper)</code></td>
-      <td style="text-align: left">Creates a range-based window bounded above, <code class="highlighter-rouge">RANGE BETWEEN CURRENT ROW AND upper</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">rangeTo(upper)</code></td>
+      <td style="text-align: left">Creates a range-based window bounded above, <code class="language-plaintext highlighter-rouge">RANGE BETWEEN CURRENT ROW AND upper</code>
 </td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">rangeBetween(lower, upper)</code></td>
-      <td style="text-align: left">Creates a range-based window, <code class="highlighter-rouge">RANGE BETWEEN lower AND upper</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">rangeBetween(lower, upper)</code></td>
+      <td style="text-align: left">Creates a range-based window, <code class="language-plaintext highlighter-rouge">RANGE BETWEEN lower AND upper</code>
 </td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">rowsUnbounded()</code></td>
-      <td style="text-align: left">Creates an unbounded row-based window, <code class="highlighter-rouge">ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">rowsUnbounded()</code></td>
+      <td style="text-align: left">Creates an unbounded row-based window, <code class="language-plaintext highlighter-rouge">ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING</code>
 </td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">rowsFrom(lower)</code></td>
-      <td style="text-align: left">Creates a row-based window bounded below, <code class="highlighter-rouge">ROWS BETWEEN lower AND CURRENT ROW</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">rowsFrom(lower)</code></td>
+      <td style="text-align: left">Creates a row-based window bounded below, <code class="language-plaintext highlighter-rouge">ROWS BETWEEN lower AND CURRENT ROW</code>
 </td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">rowsTo(upper)</code></td>
-      <td style="text-align: left">Creates a row-based window bounded above, <code class="highlighter-rouge">ROWS BETWEEN CURRENT ROW AND upper</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">rowsTo(upper)</code></td>
+      <td style="text-align: left">Creates a row-based window bounded above, <code class="language-plaintext highlighter-rouge">ROWS BETWEEN CURRENT ROW AND upper</code>
 </td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">rowsBetween(lower, upper)</code></td>
-      <td style="text-align: left">Creates a rows-based window, <code class="highlighter-rouge">ROWS BETWEEN lower AND upper</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">rowsBetween(lower, upper)</code></td>
+      <td style="text-align: left">Creates a rows-based window, <code class="language-plaintext highlighter-rouge">ROWS BETWEEN lower AND upper</code>
 </td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">partitionBy(expr...)</code><br><code class="highlighter-rouge">partitionBy(exprList)</code>
+<code class="language-plaintext highlighter-rouge">partitionBy(expr...)</code><br><code class="language-plaintext highlighter-rouge">partitionBy(exprList)</code>
 </td>
-      <td style="text-align: left">Partitions the window on the given expressions (see SQL <code class="highlighter-rouge">PARTITION BY</code>)</td>
+      <td style="text-align: left">Partitions the window on the given expressions (see SQL <code class="language-plaintext highlighter-rouge">PARTITION BY</code>)</td>
     </tr>
     <tr>
       <td style="text-align: left">
-<code class="highlighter-rouge">orderBy(expr...)</code><br><code class="highlighter-rouge">sort(exprList)</code>
+<code class="language-plaintext highlighter-rouge">orderBy(expr...)</code><br><code class="language-plaintext highlighter-rouge">sort(exprList)</code>
 </td>
-      <td style="text-align: left">Sorts the rows in the window (see SQL <code class="highlighter-rouge">ORDER BY</code>)</td>
+      <td style="text-align: left">Sorts the rows in the window (see SQL <code class="language-plaintext highlighter-rouge">ORDER BY</code>)</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">allowPartial(b)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">allowPartial(b)</code></td>
       <td style="text-align: left">Sets whether to allow partial width windows; default true</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">nullWhenCountZero(b)</code></td>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">nullWhenCountZero(b)</code></td>
       <td style="text-align: left">Sets whether whether the aggregate function should evaluate to null if no rows are in the window; default false</td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">as(alias)</code></td>
-      <td style="text-align: left">Assigns a column alias (see SQL <code class="highlighter-rouge">AS</code>) and converts this <code class="highlighter-rouge">OverCall</code> to a <code class="highlighter-rouge">RexNode</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">as(alias)</code></td>
+      <td style="text-align: left">Assigns a column alias (see SQL <code class="language-plaintext highlighter-rouge">AS</code>) and converts this <code class="language-plaintext highlighter-rouge">OverCall</code> to a <code class="language-plaintext highlighter-rouge">RexNode</code>
 </td>
     </tr>
     <tr>
-      <td style="text-align: left"><code class="highlighter-rouge">toRex()</code></td>
-      <td style="text-align: left">Converts this <code class="highlighter-rouge">OverCall</code> to a <code class="highlighter-rouge">RexNode</code>
+      <td style="text-align: left"><code class="language-plaintext highlighter-rouge">toRex()</code></td>
+      <td style="text-align: left">Converts this <code class="language-plaintext highlighter-rouge">OverCall</code> to a <code class="language-plaintext highlighter-rouge">RexNode</code>
 </td>
     </tr>
   </tbody>
@@ -1364,7 +1364,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/avatica_json_reference.html b/docs/avatica_json_reference.html
index 72f5d4a..843d1a3 100644
--- a/docs/avatica_json_reference.html
+++ b/docs/avatica_json_reference.html
@@ -5,12 +5,12 @@
 <meta charset="utf-8">
   <title>Redirecting…</title>
   <link rel="canonical" href="https://calcite.apache.org/avatica/docs/json_reference.html">
+  <script>location="https://calcite.apache.org/avatica/docs/json_reference.html"</script>
   <meta http-equiv="refresh" content="0; url=https://calcite.apache.org/avatica/docs/json_reference.html">
   <meta name="robots" content="noindex">
   </head>
 <body>
 <h1>Redirecting…</h1>
   <a href="https://calcite.apache.org/avatica/docs/json_reference.html">Click here if you are not redirected.</a>
-  <script>location="https://calcite.apache.org/avatica/docs/json_reference.html"</script>
 </body>
 </html>
diff --git a/docs/avatica_overview.html b/docs/avatica_overview.html
index 09686d6..d51c4cd 100644
--- a/docs/avatica_overview.html
+++ b/docs/avatica_overview.html
@@ -5,12 +5,12 @@
 <meta charset="utf-8">
   <title>Redirecting…</title>
   <link rel="canonical" href="https://calcite.apache.org/avatica/docs/index.html">
+  <script>location="https://calcite.apache.org/avatica/docs/index.html"</script>
   <meta http-equiv="refresh" content="0; url=https://calcite.apache.org/avatica/docs/index.html">
   <meta name="robots" content="noindex">
   </head>
 <body>
 <h1>Redirecting…</h1>
   <a href="https://calcite.apache.org/avatica/docs/index.html">Click here if you are not redirected.</a>
-  <script>location="https://calcite.apache.org/avatica/docs/index.html"</script>
 </body>
 </html>
diff --git a/docs/avatica_protobuf_reference.html b/docs/avatica_protobuf_reference.html
index 99a94df..d16b759 100644
--- a/docs/avatica_protobuf_reference.html
+++ b/docs/avatica_protobuf_reference.html
@@ -5,12 +5,12 @@
 <meta charset="utf-8">
   <title>Redirecting…</title>
   <link rel="canonical" href="https://calcite.apache.org/avatica/docs/protobuf_reference.html">
+  <script>location="https://calcite.apache.org/avatica/docs/protobuf_reference.html"</script>
   <meta http-equiv="refresh" content="0; url=https://calcite.apache.org/avatica/docs/protobuf_reference.html">
   <meta name="robots" content="noindex">
   </head>
 <body>
 <h1>Redirecting…</h1>
   <a href="https://calcite.apache.org/avatica/docs/protobuf_reference.html">Click here if you are not redirected.</a>
-  <script>location="https://calcite.apache.org/avatica/docs/protobuf_reference.html"</script>
 </body>
 </html>
diff --git a/docs/avatica_roadmap.html b/docs/avatica_roadmap.html
index d7eba35..07360af 100644
--- a/docs/avatica_roadmap.html
+++ b/docs/avatica_roadmap.html
@@ -5,12 +5,12 @@
 <meta charset="utf-8">
   <title>Redirecting…</title>
   <link rel="canonical" href="https://calcite.apache.org/avatica/docs/roadmap.html">
+  <script>location="https://calcite.apache.org/avatica/docs/roadmap.html"</script>
   <meta http-equiv="refresh" content="0; url=https://calcite.apache.org/avatica/docs/roadmap.html">
   <meta name="robots" content="noindex">
   </head>
 <body>
 <h1>Redirecting…</h1>
   <a href="https://calcite.apache.org/avatica/docs/roadmap.html">Click here if you are not redirected.</a>
-  <script>location="https://calcite.apache.org/avatica/docs/roadmap.html"</script>
 </body>
 </html>
diff --git a/docs/cassandra_adapter.html b/docs/cassandra_adapter.html
index ba26262..0d3c2d7 100644
--- a/docs/cassandra_adapter.html
+++ b/docs/cassandra_adapter.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Cassandra adapter</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -94,31 +94,31 @@
 <p>A basic example of a model file is given below:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">version</span><span class="p">:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
-  </span><span class="err">defaultSchema</span><span class="p">:</span><span class="w"> </span><span class="err">'twissandra'</span><span class="p">,</span><span class="w">
-  </span><span class="err">schemas</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span class="err">'twissandra'</span><span class="p">,</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'twissandra'</span><span class="p">,</span><span class="w">
-      </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
-      </span><span class="err">factory</span><span class="p">:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.cassandra.CassandraSchemaFactory'</span><span class="p">,</span><span class="w">
-      </span><span class="err">operand</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="err">host</span><span class="p">:</span><span class="w"> </span><span class="err">'localhost'</span><span class="p">,</span><span class="w">
-        </span><span class="err">keyspace</span><span class="p">:</span><span class="w"> </span><span class="err">'twissandra'</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span class="err">'twissandra'</span><span class="p">,</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.cassandra.CassandraSchemaFactory'</span><span class="p">,</span><span class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="err">host:</span><span class="w"> </span><span class="err">'localhost'</span><span class="p">,</span><span class="w">
+        </span><span class="err">keyspace:</span><span class="w"> </span><span class="err">'twissandra'</span><span class="w">
       </span><span class="p">}</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
-<p>Note that you can also specify <code class="highlighter-rouge">username</code> and <code class="highlighter-rouge">password</code> keys along with
-the <code class="highlighter-rouge">host</code> and <code class="highlighter-rouge">keyspace</code> if your server requires authentication.
-Assuming this file is stored as <code class="highlighter-rouge">model.json</code>, you can connect to
-Cassandra via <a href="https://github.com/julianhyde/sqlline"><code class="highlighter-rouge">sqlline</code></a> as
+<p>Note that you can also specify <code class="language-plaintext highlighter-rouge">username</code> and <code class="language-plaintext highlighter-rouge">password</code> keys along with
+the <code class="language-plaintext highlighter-rouge">host</code> and <code class="language-plaintext highlighter-rouge">keyspace</code> if your server requires authentication.
+Assuming this file is stored as <code class="language-plaintext highlighter-rouge">model.json</code>, you can connect to
+Cassandra via <a href="https://github.com/julianhyde/sqlline"><code class="language-plaintext highlighter-rouge">sqlline</code></a> as
 follows:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlline
 sqlline&gt; <span class="o">!</span>connect jdbc:calcite:model<span class="o">=</span>model.json admin admin</code></pre></figure>
 
-<p><code class="highlighter-rouge">sqlline</code> will now accept SQL queries which access your CQL tables.
+<p><code class="language-plaintext highlighter-rouge">sqlline</code> will now accept SQL queries which access your CQL tables.
 However, you’re not restricted to issuing queries supported by
 <a href="https://cassandra.apache.org/doc/cql3/CQL-2.2.html">CQL</a>.
 Calcite allows you to perform complex operations such as aggregations
@@ -126,8 +126,8 @@
 efficient CQL possible by exploiting filtering and sorting directly in
 Cassandra where possible.</p>
 
-<p>For example, in the example dataset there is a CQL table named <code class="highlighter-rouge">timeline</code>
-with <code class="highlighter-rouge">username</code> as the partition key and <code class="highlighter-rouge">time</code> as the clustering key.</p>
+<p>For example, in the example dataset there is a CQL table named <code class="language-plaintext highlighter-rouge">timeline</code>
+with <code class="language-plaintext highlighter-rouge">username</code> as the partition key and <code class="language-plaintext highlighter-rouge">time</code> as the clustering key.</p>
 
 <p>We can issue a simple query to fetch the most recent tweet ID of the
 user by writing standard SQL:</p>
@@ -143,16 +143,16 @@
 <span class="o">+</span><span class="c1">--------------------------------------+</span></code></pre></figure>
 
 <p>While executing this query, the Cassandra adapter is able to recognize
-that <code class="highlighter-rouge">username</code> is the partition key and can be filtered by Cassandra.
-It also recognizes the clustering key <code class="highlighter-rouge">time</code> and pushes the ordering to
+that <code class="language-plaintext highlighter-rouge">username</code> is the partition key and can be filtered by Cassandra.
+It also recognizes the clustering key <code class="language-plaintext highlighter-rouge">time</code> and pushes the ordering to
 Cassandra as well.</p>
 
 <p>The final CQL query given to Cassandra is below:</p>
 
-<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">username</span><span class="p">,</span> <span class="n">time</span><span class="p">,</span> <span class="n">tweet_id</span>
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">username</span><span class="p">,</span> <span class="nb">time</span><span class="p">,</span> <span class="n">tweet_id</span>
 <span class="k">FROM</span> <span class="nv">"timeline"</span>
 <span class="k">WHERE</span> <span class="n">username</span> <span class="o">=</span> <span class="s1">'JmuhsAaMdw'</span>
-<span class="k">ORDER</span> <span class="k">BY</span> <span class="n">time</span> <span class="k">DESC</span> <span class="n">ALLOW</span> <span class="n">FILTERING</span><span class="p">;</span></code></pre></figure>
+<span class="k">ORDER</span> <span class="k">BY</span> <span class="nb">time</span> <span class="k">DESC</span> <span class="n">ALLOW</span> <span class="n">FILTERING</span><span class="p">;</span></code></pre></figure>
 
 <p>There is still significant work to do in improving the flexibility and
 performance of the adapter, but if you’re looking for a quick way to
@@ -468,7 +468,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/druid_adapter.html b/docs/druid_adapter.html
index 7ac388c..94c729c 100644
--- a/docs/druid_adapter.html
+++ b/docs/druid_adapter.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Druid adapter</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -98,29 +98,29 @@
 <p>A basic example of a model file is given below:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="nl">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.druid.DruidSchemaFactory"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:8082"</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"coordinatorUrl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:8081"</span><span class="w">
+      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.druid.DruidSchemaFactory"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="nl">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:8082"</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"coordinatorUrl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:8081"</span><span class="w">
       </span><span class="p">},</span><span class="w">
-      </span><span class="s2">"tables"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+      </span><span class="nl">"tables"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
         </span><span class="p">{</span><span class="w">
-          </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.druid.DruidTableFactory"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-            </span><span class="s2">"dataSource"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wikiticker"</span><span class="p">,</span><span class="w">
-            </span><span class="s2">"interval"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z"</span><span class="p">,</span><span class="w">
-            </span><span class="s2">"timestampColumn"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-              </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"time"</span><span class="p">,</span><span class="w">
-              </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"timestamp"</span><span class="w">
+          </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.druid.DruidTableFactory"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+            </span><span class="nl">"dataSource"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wikiticker"</span><span class="p">,</span><span class="w">
+            </span><span class="nl">"interval"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z"</span><span class="p">,</span><span class="w">
+            </span><span class="nl">"timestampColumn"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+              </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"time"</span><span class="p">,</span><span class="w">
+              </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"timestamp"</span><span class="w">
             </span><span class="p">},</span><span class="w">
-            </span><span class="s2">"dimensions"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+            </span><span class="nl">"dimensions"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
               </span><span class="s2">"channel"</span><span class="p">,</span><span class="w">
               </span><span class="s2">"cityName"</span><span class="p">,</span><span class="w">
               </span><span class="s2">"comment"</span><span class="p">,</span><span class="w">
@@ -137,33 +137,33 @@
               </span><span class="s2">"regionIsoCode"</span><span class="p">,</span><span class="w">
               </span><span class="s2">"regionName"</span><span class="p">,</span><span class="w">
             </span><span class="p">],</span><span class="w">
-            </span><span class="s2">"metrics"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+            </span><span class="nl">"metrics"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
               </span><span class="p">{</span><span class="w">
-                </span><span class="s2">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"count"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"type"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"count"</span><span class="w">
+                </span><span class="nl">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"count"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"type"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"count"</span><span class="w">
               </span><span class="p">},</span><span class="w">
               </span><span class="p">{</span><span class="w">
-                </span><span class="s2">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"added"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"type"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"longSum"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"fieldName"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"added"</span><span class="w">
+                </span><span class="nl">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"added"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"type"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"longSum"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"fieldName"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"added"</span><span class="w">
               </span><span class="p">},</span><span class="w">
               </span><span class="p">{</span><span class="w">
-                </span><span class="s2">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"deleted"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"type"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"longSum"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"fieldName"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"deleted"</span><span class="w">
+                </span><span class="nl">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"deleted"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"type"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"longSum"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"fieldName"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"deleted"</span><span class="w">
               </span><span class="p">},</span><span class="w">
               </span><span class="p">{</span><span class="w">
-                </span><span class="s2">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"delta"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"type"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"longSum"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"fieldName"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"delta"</span><span class="w">
+                </span><span class="nl">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"delta"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"type"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"longSum"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"fieldName"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"delta"</span><span class="w">
               </span><span class="p">},</span><span class="w">
               </span><span class="p">{</span><span class="w">
-                </span><span class="s2">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"user_unique"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"type"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"hyperUnique"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"fieldName"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"user_id"</span><span class="w">
+                </span><span class="nl">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"user_unique"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"type"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"hyperUnique"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"fieldName"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"user_id"</span><span class="w">
               </span><span class="p">}</span><span class="w">
             </span><span class="p">],</span><span class="w">
-            </span><span class="s2">"complexMetrics"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+            </span><span class="nl">"complexMetrics"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
               </span><span class="s2">"user_id"</span><span class="w">
             </span><span class="p">]</span><span class="w">
           </span><span class="p">}</span><span class="w">
@@ -173,9 +173,9 @@
   </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
-<p>This file is stored as <code class="highlighter-rouge">druid/src/test/resources/druid-wiki-model.json</code>,
+<p>This file is stored as <code class="language-plaintext highlighter-rouge">druid/src/test/resources/druid-wiki-model.json</code>,
 so you can connect to Druid via
-<a href="https://github.com/julianhyde/sqlline"><code class="highlighter-rouge">sqlline</code></a>
+<a href="https://github.com/julianhyde/sqlline"><code class="language-plaintext highlighter-rouge">sqlline</code></a>
 as follows:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlline
@@ -197,7 +197,7 @@
 sqlline&gt;</code></pre></figure>
 
 <p>That query shows the top 5 countries of origin of wiki page edits
-on 2015-09-12 (the date covered by the <code class="highlighter-rouge">wikiticker</code> data set).</p>
+on 2015-09-12 (the date covered by the <code class="language-plaintext highlighter-rouge">wikiticker</code> data set).</p>
 
 <p>Now let’s see how the query was evaluated:</p>
 
@@ -215,9 +215,9 @@
 '</span>
 1 row selected <span class="o">(</span>0.024 seconds<span class="o">)</span></code></pre></figure>
 
-<p>That plan shows that Calcite was able to push down the <code class="highlighter-rouge">GROUP BY</code>
-part of the query to Druid, including the <code class="highlighter-rouge">COUNT(*)</code> function,
-but not the <code class="highlighter-rouge">ORDER BY ... LIMIT</code>. (We plan to lift this restriction;
+<p>That plan shows that Calcite was able to push down the <code class="language-plaintext highlighter-rouge">GROUP BY</code>
+part of the query to Druid, including the <code class="language-plaintext highlighter-rouge">COUNT(*)</code> function,
+but not the <code class="language-plaintext highlighter-rouge">ORDER BY ... LIMIT</code>. (We plan to lift this restriction;
 see [<a href="https://issues.apache.org/jira/browse/CALCITE-1206">CALCITE-1206</a>].)</p>
 
 <h1 id="complex-metrics">Complex Metrics</h1>
@@ -226,13 +226,13 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">hyperUnique</code> - HyperLogLog data sketch used to estimate the cardinality of a dimension</li>
+<code class="language-plaintext highlighter-rouge">hyperUnique</code> - HyperLogLog data sketch used to estimate the cardinality of a dimension</li>
   <li>
-<code class="highlighter-rouge">thetaSketch</code> - Theta sketch used to also estimate the cardinality of a dimension,
+<code class="language-plaintext highlighter-rouge">thetaSketch</code> - Theta sketch used to also estimate the cardinality of a dimension,
 but can be used to perform set operations as well.</li>
 </ul>
 
-<p>In the model definition, there is an array of Strings called <code class="highlighter-rouge">complexMetrics</code> that declares
+<p>In the model definition, there is an array of Strings called <code class="language-plaintext highlighter-rouge">complexMetrics</code> that declares
 the alias for each complex metric defined. The alias is used in SQL, but its real column name
 is used when Calcite generates the JSON query for druid.</p>
 
@@ -243,33 +243,33 @@
 into a single Druid data set called “foodmart”.</p>
 
 <p>You can access it via the
-<code class="highlighter-rouge">druid/src/test/resources/druid-foodmart-model.json</code> model.</p>
+<code class="language-plaintext highlighter-rouge">druid/src/test/resources/druid-foodmart-model.json</code> model.</p>
 
 <h1 id="simplifying-the-model">Simplifying the model</h1>
 
 <p>If less metadata is provided in the model, the Druid adapter can discover
 it automatically from Druid. Here is a schema equivalent to the previous one
-but with <code class="highlighter-rouge">dimensions</code>, <code class="highlighter-rouge">metrics</code> and <code class="highlighter-rouge">timestampColumn</code> removed:</p>
+but with <code class="language-plaintext highlighter-rouge">dimensions</code>, <code class="language-plaintext highlighter-rouge">metrics</code> and <code class="language-plaintext highlighter-rouge">timestampColumn</code> removed:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="nl">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.druid.DruidSchemaFactory"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:8082"</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"coordinatorUrl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:8081"</span><span class="w">
+      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.druid.DruidSchemaFactory"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="nl">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:8082"</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"coordinatorUrl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:8081"</span><span class="w">
       </span><span class="p">},</span><span class="w">
-      </span><span class="s2">"tables"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+      </span><span class="nl">"tables"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
         </span><span class="p">{</span><span class="w">
-          </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.druid.DruidTableFactory"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-            </span><span class="s2">"dataSource"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wikiticker"</span><span class="p">,</span><span class="w">
-            </span><span class="s2">"interval"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z"</span><span class="w">
+          </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.druid.DruidTableFactory"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+            </span><span class="nl">"dataSource"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wikiticker"</span><span class="p">,</span><span class="w">
+            </span><span class="nl">"interval"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z"</span><span class="w">
           </span><span class="p">}</span><span class="w">
         </span><span class="p">}</span><span class="w">
       </span><span class="p">]</span><span class="w">
@@ -280,19 +280,19 @@
 <p>Calcite dispatches a
 <a href="https://druid.io/docs/latest/querying/segmentmetadataquery.html">segmentMetadataQuery</a>
 to Druid to discover the columns of the table.
-Now, let’s take out the <code class="highlighter-rouge">tables</code> element:</p>
+Now, let’s take out the <code class="language-plaintext highlighter-rouge">tables</code> element:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="nl">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.druid.DruidSchemaFactory"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:8082"</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"coordinatorUrl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:8081"</span><span class="w">
+      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wiki"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.druid.DruidSchemaFactory"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="nl">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:8082"</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"coordinatorUrl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:8081"</span><span class="w">
       </span><span class="p">}</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">]</span><span class="w">
@@ -317,7 +317,7 @@
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash">  jdbc:calcite:schemaFactory<span class="o">=</span>org.apache.calcite.adapter.druid.DruidSchemaFactory</code></pre></figure>
 
-<p>Now, we can connect to <code class="highlighter-rouge">sqlline</code> using a very simple connect string, and list
+<p>Now, we can connect to <code class="language-plaintext highlighter-rouge">sqlline</code> using a very simple connect string, and list
 the available tables:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlline
@@ -332,8 +332,8 @@
 |           | metadata    | TABLES     | SYSTEM_TABLE |
 +-----------+-------------+------------+--------------+</code></pre></figure>
 
-<p>We see the two system tables (<code class="highlighter-rouge">TABLES</code> and <code class="highlighter-rouge">COLUMNS</code>),
-and the two tables in Druid (<code class="highlighter-rouge">foodmart</code> and <code class="highlighter-rouge">wikiticker</code>).</p>
+<p>We see the two system tables (<code class="language-plaintext highlighter-rouge">TABLES</code> and <code class="language-plaintext highlighter-rouge">COLUMNS</code>),
+and the two tables in Druid (<code class="language-plaintext highlighter-rouge">foodmart</code> and <code class="language-plaintext highlighter-rouge">wikiticker</code>).</p>
 
           
 
@@ -644,7 +644,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/elasticsearch_adapter.html b/docs/elasticsearch_adapter.html
index ee4bb78..80b625e 100644
--- a/docs/elasticsearch_adapter.html
+++ b/docs/elasticsearch_adapter.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Elasticsearch adapter</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -94,46 +94,46 @@
 <p>A basic example of a model file is given below:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"elasticsearch"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="nl">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"elasticsearch"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"elasticsearch"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.elasticsearch.ElasticsearchSchemaFactory"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"coordinates"</span><span class="p">:</span><span class="w"> </span><span class="s2">"{'127.0.0.1': 9200}"</span><span class="w">
+      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"elasticsearch"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.elasticsearch.ElasticsearchSchemaFactory"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="nl">"coordinates"</span><span class="p">:</span><span class="w"> </span><span class="s2">"{'127.0.0.1': 9200}"</span><span class="w">
       </span><span class="p">}</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
-<p>Assuming this file is stored as <code class="highlighter-rouge">model.json</code>, you can connect to
-Elasticsearch via <a href="https://github.com/julianhyde/sqlline"><code class="highlighter-rouge">sqlline</code></a> as
+<p>Assuming this file is stored as <code class="language-plaintext highlighter-rouge">model.json</code>, you can connect to
+Elasticsearch via <a href="https://github.com/julianhyde/sqlline"><code class="language-plaintext highlighter-rouge">sqlline</code></a> as
 follows:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlline
 sqlline&gt; <span class="o">!</span>connect jdbc:calcite:model<span class="o">=</span>model.json admin admin</code></pre></figure>
 
-<p>You can also specify the index name and path prefix that is represented by the <code class="highlighter-rouge">index</code> and <code class="highlighter-rouge">pathPrefix</code> parameter in the model definition:</p>
+<p>You can also specify the index name and path prefix that is represented by the <code class="language-plaintext highlighter-rouge">index</code> and <code class="language-plaintext highlighter-rouge">pathPrefix</code> parameter in the model definition:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="err">...</span><span class="w">
 
-      </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"coordinates"</span><span class="p">:</span><span class="w"> </span><span class="s2">"{'127.0.0.1': 9200}"</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"index"</span><span class="p">:</span><span class="w"> </span><span class="s2">"usa"</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"pathPrefix"</span><span class="p">:</span><span class="w"> </span><span class="s2">"path"</span><span class="w">
+      </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="nl">"coordinates"</span><span class="p">:</span><span class="w"> </span><span class="s2">"{'127.0.0.1': 9200}"</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"index"</span><span class="p">:</span><span class="w"> </span><span class="s2">"usa"</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"pathPrefix"</span><span class="p">:</span><span class="w"> </span><span class="s2">"path"</span><span class="w">
       </span><span class="p">}</span><span class="w">
 
 </span><span class="err">...</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">sqlline</code> will now accept SQL queries which access your Elasticsearch.
+<p><code class="language-plaintext highlighter-rouge">sqlline</code> will now accept SQL queries which access your Elasticsearch.
 The purpose of this adapter is to compile the query into the most efficient
 Elasticsearch SEARCH JSON possible by exploiting filtering and sorting directly
 in Elasticsearch where possible.</p>
 
 <p>We can issue a simple query to fetch the names of all the states
-stored in the index <code class="highlighter-rouge">usa</code>.</p>
+stored in the index <code class="language-plaintext highlighter-rouge">usa</code>.</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">sqlline</span><span class="o">&gt;</span> <span class="k">SELECT</span> <span class="o">*</span> <span class="k">from</span> <span class="nv">"usa"</span><span class="p">;</span></code></pre></figure>
 
@@ -149,20 +149,20 @@
 </span><span class="err">_MAP=</span><span class="p">{</span><span class="err">pop=</span><span class="mi">4441</span><span class="p">,</span><span class="w"> </span><span class="err">loc=</span><span class="p">[</span><span class="mf">-72.203639</span><span class="p">,</span><span class="w"> </span><span class="mf">42.20734</span><span class="p">],</span><span class="w"> </span><span class="err">city=WEST</span><span class="w"> </span><span class="err">WARREN</span><span class="p">,</span><span class="w"> </span><span class="err">id=</span><span class="mi">01092</span><span class="p">,</span><span class="w"> </span><span class="err">state=MA</span><span class="p">}</span></code></pre></figure>
 
 <p>While executing this query, the Elasticsearch adapter is able to recognize
-that <code class="highlighter-rouge">city</code> can be filtered by Elasticsearch and <code class="highlighter-rouge">state</code> can be sorted by
+that <code class="language-plaintext highlighter-rouge">city</code> can be filtered by Elasticsearch and <code class="language-plaintext highlighter-rouge">state</code> can be sorted by
 Elasticsearch in ascending order.</p>
 
 <p>The final source json given to Elasticsearch is below:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"query"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-    </span><span class="s2">"constant_score"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"filter"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"bool"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-          </span><span class="s2">"must"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="nl">"query"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+    </span><span class="nl">"constant_score"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+      </span><span class="nl">"filter"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="nl">"bool"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+          </span><span class="nl">"must"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
             </span><span class="p">{</span><span class="w">
-              </span><span class="s2">"term"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-                </span><span class="s2">"city"</span><span class="p">:</span><span class="w"> </span><span class="s2">"springfield"</span><span class="w">
+              </span><span class="nl">"term"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+                </span><span class="nl">"city"</span><span class="p">:</span><span class="w"> </span><span class="s2">"springfield"</span><span class="w">
               </span><span class="p">}</span><span class="w">
             </span><span class="p">}</span><span class="w">
           </span><span class="p">]</span><span class="w">
@@ -170,14 +170,14 @@
       </span><span class="p">}</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">},</span><span class="w">
-  </span><span class="s2">"fields"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="nl">"fields"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="s2">"city"</span><span class="p">,</span><span class="w">
     </span><span class="s2">"state"</span><span class="w">
   </span><span class="p">],</span><span class="w">
-  </span><span class="s2">"script_fields"</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w">
-  </span><span class="s2">"sort"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="nl">"script_fields"</span><span class="p">:</span><span class="w"> </span><span class="p">{},</span><span class="w">
+  </span><span class="nl">"sort"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"asc"</span><span class="w">
+      </span><span class="nl">"state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"asc"</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
@@ -188,7 +188,7 @@
 
 <h3 id="use-of-scrolling-api">Use of Scrolling API</h3>
 
-<p>For queries without aggregate functions (like <code class="highlighter-rouge">COUNT</code>, <code class="highlighter-rouge">MAX</code> etc.) elastic adapter
+<p>For queries without aggregate functions (like <code class="language-plaintext highlighter-rouge">COUNT</code>, <code class="language-plaintext highlighter-rouge">MAX</code> etc.) elastic adapter
 uses <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html">scroll API</a>, by default.
 This ensures that consistent and full data-set is returned to the end user (lazily and in batches). Please note that
 scroll is automatically cleared (removed) when all query results are consumed.</p>
@@ -508,7 +508,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/file_adapter.html b/docs/file_adapter.html
index 2f19789..940e71d 100644
--- a/docs/file_adapter.html
+++ b/docs/file_adapter.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>File adapter</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -101,7 +101,7 @@
 <p>And learn that California has 69 cities of 100k or more
 comprising almost 1/2 of the state’s population:</p>
 
-<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>+---------------------+----------------------+
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>+---------------------+----------------------+
 |     City Count      | Pct State Population |
 +---------------------+----------------------+
 | 69                  | 48.574217177106576   |
@@ -119,19 +119,19 @@
 as follows.</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SALES"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
-    </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SALES"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.file.FileSchemaFactory"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"tables"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"EMPS"</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"file:file/src/test/resources/sales/EMPS.html"</span><span class="w">
+  </span><span class="nl">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SALES"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
+    </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SALES"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.file.FileSchemaFactory"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+      </span><span class="nl">"tables"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"EMPS"</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"file:file/src/test/resources/sales/EMPS.html"</span><span class="w">
       </span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"DEPTS"</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"file:file/src/test/resources/sales/DEPTS.html"</span><span class="w">
+        </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"DEPTS"</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"file:file/src/test/resources/sales/DEPTS.html"</span><span class="w">
       </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
@@ -139,11 +139,11 @@
 
 <p>Schemas are defined as a list of tables, each containing minimally a
 table name and a url.  If a page has more than one table, you can
-include in a table definition <code class="highlighter-rouge">selector</code> and <code class="highlighter-rouge">index</code> fields to specify the
+include in a table definition <code class="language-plaintext highlighter-rouge">selector</code> and <code class="language-plaintext highlighter-rouge">index</code> fields to specify the
 desired table.  If there is no table specification, the file adapter
 chooses the largest table on the page.</p>
 
-<p><code class="highlighter-rouge">EMPS.html</code> contains a single HTML table:</p>
+<p><code class="language-plaintext highlighter-rouge">EMPS.html</code> contains a single HTML table:</p>
 
 <figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt">&lt;html&gt;</span>
   <span class="nt">&lt;body&gt;</span>
@@ -186,8 +186,8 @@
   <span class="nt">&lt;/body&gt;</span>
 <span class="nt">&lt;/html&gt;</span></code></pre></figure>
 
-<p>The model file is stored as <code class="highlighter-rouge">file/src/test/resources/sales.json</code>,
-so you can connect via <a href="https://github.com/julianhyde/sqlline"><code class="highlighter-rouge">sqlline</code></a>
+<p>The model file is stored as <code class="language-plaintext highlighter-rouge">file/src/test/resources/sales.json</code>,
+so you can connect via <a href="https://github.com/julianhyde/sqlline"><code class="language-plaintext highlighter-rouge">sqlline</code></a>
 as follows:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlline
@@ -214,27 +214,27 @@
 <p>Tables can be simply defined for immediate gratification:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">tableName</span><span class="p">:</span><span class="w"> </span><span class="s2">"RawCities"</span><span class="p">,</span><span class="w">
-  </span><span class="err">url</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://en.wikipedia.org/wiki/List_of_United_States_cities_by_population"</span><span class="w">
+  </span><span class="err">tableName:</span><span class="w"> </span><span class="s2">"RawCities"</span><span class="p">,</span><span class="w">
+  </span><span class="err">url:</span><span class="w"> </span><span class="s2">"https://en.wikipedia.org/wiki/List_of_United_States_cities_by_population"</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <p>And subsequently refined for better usability/querying:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">tableName</span><span class="p">:</span><span class="w"> </span><span class="s2">"Cities"</span><span class="p">,</span><span class="w">
-  </span><span class="err">url</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://en.wikipedia.org/wiki/List_of_United_States_cities_by_population"</span><span class="p">,</span><span class="w">
-  </span><span class="err">path</span><span class="p">:</span><span class="w"> </span><span class="s2">"#mw-content-text &gt; table.wikitable.sortable"</span><span class="p">,</span><span class="w">
-  </span><span class="err">index</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
-  </span><span class="err">fieldDefs</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
-    </span><span class="p">{</span><span class="err">th</span><span class="p">:</span><span class="w"> </span><span class="s2">"2012 rank"</span><span class="p">,</span><span class="w"> </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="s2">"Rank"</span><span class="p">,</span><span class="w"> </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="s2">"int"</span><span class="p">,</span><span class="w"> </span><span class="err">pattern</span><span class="p">:</span><span class="w"> </span><span class="s2">"(</span><span class="se">\\</span><span class="s2">d+)"</span><span class="p">,</span><span class="w"> </span><span class="err">matchGroup</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">},</span><span class="w">
-    </span><span class="p">{</span><span class="err">th</span><span class="p">:</span><span class="w"> </span><span class="s2">"City"</span><span class="p">,</span><span class="w"> </span><span class="err">selector</span><span class="p">:</span><span class="w"> </span><span class="s2">"a"</span><span class="p">,</span><span class="w"> </span><span class="err">selectedElement</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">},</span><span class="w">
-    </span><span class="p">{</span><span class="err">th</span><span class="p">:</span><span class="w"> </span><span class="s2">"State[5]"</span><span class="p">,</span><span class="w"> </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="s2">"State"</span><span class="p">,</span><span class="w"> </span><span class="err">selector</span><span class="p">:</span><span class="w"> </span><span class="s2">"a:eq(0)"</span><span class="p">},</span><span class="w">
-    </span><span class="p">{</span><span class="err">th</span><span class="p">:</span><span class="w"> </span><span class="s2">"2012 estimate"</span><span class="p">,</span><span class="w"> </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="s2">"Population"</span><span class="p">,</span><span class="w"> </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="s2">"double"</span><span class="p">},</span><span class="w">
-    </span><span class="p">{</span><span class="err">th</span><span class="p">:</span><span class="w"> </span><span class="s2">"2010 Census"</span><span class="p">,</span><span class="w"> </span><span class="err">skip</span><span class="p">:</span><span class="w"> </span><span class="s2">"true"</span><span class="p">},</span><span class="w">
-    </span><span class="p">{</span><span class="err">th</span><span class="p">:</span><span class="w"> </span><span class="s2">"Change"</span><span class="p">,</span><span class="w"> </span><span class="err">skip</span><span class="p">:</span><span class="w"> </span><span class="s2">"true"</span><span class="p">},</span><span class="w">
-    </span><span class="p">{</span><span class="err">th</span><span class="p">:</span><span class="w"> </span><span class="s2">"2012 land area"</span><span class="p">,</span><span class="w"> </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="s2">"Land Area (sq mi)"</span><span class="p">,</span><span class="w"> </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="s2">"double"</span><span class="p">,</span><span class="w"> </span><span class="err">selector</span><span class="p">:</span><span class="w"> </span><span class="s2">":not(span)"</span><span class="p">},</span><span class="w">
-    </span><span class="p">{</span><span class="err">th</span><span class="p">:</span><span class="w"> </span><span class="s2">"2012 population density"</span><span class="p">,</span><span class="w"> </span><span class="err">skip</span><span class="p">:</span><span class="w"> </span><span class="s2">"true"</span><span class="p">},</span><span class="w">
-    </span><span class="p">{</span><span class="err">th</span><span class="p">:</span><span class="w"> </span><span class="s2">"ANSI"</span><span class="p">,</span><span class="w"> </span><span class="err">skip</span><span class="p">:</span><span class="w"> </span><span class="s2">"true"</span><span class="p">}</span><span class="w">
+  </span><span class="err">tableName:</span><span class="w"> </span><span class="s2">"Cities"</span><span class="p">,</span><span class="w">
+  </span><span class="err">url:</span><span class="w"> </span><span class="s2">"https://en.wikipedia.org/wiki/List_of_United_States_cities_by_population"</span><span class="p">,</span><span class="w">
+  </span><span class="err">path:</span><span class="w"> </span><span class="s2">"#mw-content-text &gt; table.wikitable.sortable"</span><span class="p">,</span><span class="w">
+  </span><span class="err">index:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
+  </span><span class="err">fieldDefs:</span><span class="w"> </span><span class="p">[</span><span class="w">
+    </span><span class="p">{</span><span class="err">th:</span><span class="w"> </span><span class="s2">"2012 rank"</span><span class="p">,</span><span class="w"> </span><span class="err">name:</span><span class="w"> </span><span class="s2">"Rank"</span><span class="p">,</span><span class="w"> </span><span class="err">type:</span><span class="w"> </span><span class="s2">"int"</span><span class="p">,</span><span class="w"> </span><span class="err">pattern:</span><span class="w"> </span><span class="s2">"(</span><span class="se">\\</span><span class="s2">d+)"</span><span class="p">,</span><span class="w"> </span><span class="err">matchGroup:</span><span class="w"> </span><span class="mi">0</span><span class="p">},</span><span class="w">
+    </span><span class="p">{</span><span class="err">th:</span><span class="w"> </span><span class="s2">"City"</span><span class="p">,</span><span class="w"> </span><span class="err">selector:</span><span class="w"> </span><span class="s2">"a"</span><span class="p">,</span><span class="w"> </span><span class="err">selectedElement:</span><span class="w"> </span><span class="mi">0</span><span class="p">},</span><span class="w">
+    </span><span class="p">{</span><span class="err">th:</span><span class="w"> </span><span class="s2">"State[5]"</span><span class="p">,</span><span class="w"> </span><span class="err">name:</span><span class="w"> </span><span class="s2">"State"</span><span class="p">,</span><span class="w"> </span><span class="err">selector:</span><span class="w"> </span><span class="s2">"a:eq(0)"</span><span class="p">},</span><span class="w">
+    </span><span class="p">{</span><span class="err">th:</span><span class="w"> </span><span class="s2">"2012 estimate"</span><span class="p">,</span><span class="w"> </span><span class="err">name:</span><span class="w"> </span><span class="s2">"Population"</span><span class="p">,</span><span class="w"> </span><span class="err">type:</span><span class="w"> </span><span class="s2">"double"</span><span class="p">},</span><span class="w">
+    </span><span class="p">{</span><span class="err">th:</span><span class="w"> </span><span class="s2">"2010 Census"</span><span class="p">,</span><span class="w"> </span><span class="err">skip:</span><span class="w"> </span><span class="s2">"true"</span><span class="p">},</span><span class="w">
+    </span><span class="p">{</span><span class="err">th:</span><span class="w"> </span><span class="s2">"Change"</span><span class="p">,</span><span class="w"> </span><span class="err">skip:</span><span class="w"> </span><span class="s2">"true"</span><span class="p">},</span><span class="w">
+    </span><span class="p">{</span><span class="err">th:</span><span class="w"> </span><span class="s2">"2012 land area"</span><span class="p">,</span><span class="w"> </span><span class="err">name:</span><span class="w"> </span><span class="s2">"Land Area (sq mi)"</span><span class="p">,</span><span class="w"> </span><span class="err">type:</span><span class="w"> </span><span class="s2">"double"</span><span class="p">,</span><span class="w"> </span><span class="err">selector:</span><span class="w"> </span><span class="s2">":not(span)"</span><span class="p">},</span><span class="w">
+    </span><span class="p">{</span><span class="err">th:</span><span class="w"> </span><span class="s2">"2012 population density"</span><span class="p">,</span><span class="w"> </span><span class="err">skip:</span><span class="w"> </span><span class="s2">"true"</span><span class="p">},</span><span class="w">
+    </span><span class="p">{</span><span class="err">th:</span><span class="w"> </span><span class="s2">"ANSI"</span><span class="p">,</span><span class="w"> </span><span class="err">skip:</span><span class="w"> </span><span class="s2">"true"</span><span class="p">}</span><span class="w">
   </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
@@ -245,7 +245,7 @@
 sqlline&gt; <span class="k">select</span> <span class="k">*</span> from wiki.<span class="s2">"RawCities"</span><span class="p">;</span>
 sqlline&gt; <span class="k">select</span> <span class="k">*</span> from wiki.<span class="s2">"Cities"</span><span class="p">;</span></code></pre></figure>
 
-<p>Note that <code class="highlighter-rouge">Cities</code> is easier to consume than <code class="highlighter-rouge">RawCities</code>,
+<p>Note that <code class="language-plaintext highlighter-rouge">Cities</code> is easier to consume than <code class="language-plaintext highlighter-rouge">RawCities</code>,
 because its table definition has a field list.</p>
 
 <p>The file adapter uses <a href="https://jsoup.org/">Jsoup</a> for HTML DOM
@@ -270,21 +270,21 @@
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlline <span class="nt">-f</span> file/src/test/resources/webjoin.sql</code></pre></figure>
 
-<p>(When running <code class="highlighter-rouge">webjoin.sql</code> you will see a number of warning messages for
+<p>(When running <code class="language-plaintext highlighter-rouge">webjoin.sql</code> you will see a number of warning messages for
 each query containing a join.  These are expected and do not affect
 query results.  These messages will be suppressed in the next release.)</p>
 
 <h2 id="csv-files-and-model-free-browsing">CSV files and model-free browsing</h2>
 
-<p>Some files describe their own schema, and for these files, we do not need a model. For example, <code class="highlighter-rouge">DEPTS.csv</code> has an
-integer <code class="highlighter-rouge">DEPTNO</code> column and a string <code class="highlighter-rouge">NAME</code> column:</p>
+<p>Some files describe their own schema, and for these files, we do not need a model. For example, <code class="language-plaintext highlighter-rouge">DEPTS.csv</code> has an
+integer <code class="language-plaintext highlighter-rouge">DEPTNO</code> column and a string <code class="language-plaintext highlighter-rouge">NAME</code> column:</p>
 
-<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="err">DEPTNO</span><span class="p">:</span><span class="err">int</span><span class="p">,</span><span class="err">NAME</span><span class="p">:</span><span class="err">string</span><span class="w">
-</span><span class="mi">10</span><span class="p">,</span><span class="s2">"Sales"</span><span class="w">
-</span><span class="mi">20</span><span class="p">,</span><span class="s2">"Marketing"</span><span class="w">
-</span><span class="mi">30</span><span class="p">,</span><span class="s2">"Accounts"</span></code></pre></figure>
+<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="err">DEPTNO:int,NAME:string</span><span class="w">
+</span><span class="mi">10</span><span class="err">,</span><span class="s2">"Sales"</span><span class="w">
+</span><span class="mi">20</span><span class="err">,</span><span class="s2">"Marketing"</span><span class="w">
+</span><span class="mi">30</span><span class="err">,</span><span class="s2">"Accounts"</span></code></pre></figure>
 
-<p>You can launch <code class="highlighter-rouge">sqlline</code>, and pointing the file adapter that directory,
+<p>You can launch <code class="language-plaintext highlighter-rouge">sqlline</code>, and pointing the file adapter that directory,
 and every CSV file becomes a table:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span><span class="nb">ls </span>file/src/test/resources/sales-csv
@@ -312,24 +312,24 @@
 
 <h2 id="json-files-and-model-free-browsing">JSON files and model-free browsing</h2>
 
-<p>Some files describe their own schema, and for these files, we do not need a model. For example, <code class="highlighter-rouge">DEPTS.json</code> has an integer <code class="highlighter-rouge">DEPTNO</code> column and a string <code class="highlighter-rouge">NAME</code> column:</p>
+<p>Some files describe their own schema, and for these files, we do not need a model. For example, <code class="language-plaintext highlighter-rouge">DEPTS.json</code> has an integer <code class="language-plaintext highlighter-rouge">DEPTNO</code> column and a string <code class="language-plaintext highlighter-rouge">NAME</code> column:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">[</span><span class="w">
   </span><span class="p">{</span><span class="w">
-    </span><span class="s2">"DEPTNO"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"NAME"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Sales"</span><span class="w">
+    </span><span class="nl">"DEPTNO"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"NAME"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Sales"</span><span class="w">
   </span><span class="p">},</span><span class="w">
   </span><span class="p">{</span><span class="w">
-    </span><span class="s2">"DEPTNO"</span><span class="p">:</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"NAME"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Marketing"</span><span class="w">
+    </span><span class="nl">"DEPTNO"</span><span class="p">:</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"NAME"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Marketing"</span><span class="w">
   </span><span class="p">},</span><span class="w">
   </span><span class="p">{</span><span class="w">
-    </span><span class="s2">"DEPTNO"</span><span class="p">:</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"NAME"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Accounts"</span><span class="w">
+    </span><span class="nl">"DEPTNO"</span><span class="p">:</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"NAME"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Accounts"</span><span class="w">
   </span><span class="p">}</span><span class="w">
 </span><span class="p">]</span></code></pre></figure>
 
-<p>You can launch <code class="highlighter-rouge">sqlline</code>, and pointing the file adapter that directory,
+<p>You can launch <code class="language-plaintext highlighter-rouge">sqlline</code>, and pointing the file adapter that directory,
 and every JSON file becomes a table:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span><span class="nb">ls </span>file/src/test/resources/sales-json
@@ -672,7 +672,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/geode_adapter.html b/docs/geode_adapter.html
index 225bc9e..4188c96 100644
--- a/docs/geode_adapter.html
+++ b/docs/geode_adapter.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Apache Geode adapter</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -82,7 +82,7 @@
 <a href="/docs/tutorial.html">tutorial</a>.</p>
 
 <blockquote>
-  <p>Optionally: add <code class="highlighter-rouge">-Puberjdbc</code> to your maven build to create a single self-contained Geode JDBC adapter jar.</p>
+  <p>Optionally: add <code class="language-plaintext highlighter-rouge">-Puberjdbc</code> to your maven build to create a single self-contained Geode JDBC adapter jar.</p>
 </blockquote>
 
 <p>Once you’ve managed to compile the project, you can return here to
@@ -98,34 +98,34 @@
 <p>A basic example of a model file is given below:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"geode"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="nl">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"geode"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"geode_raw"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.geode.rel.GeodeSchemaFactory"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"locatorHost"</span><span class="p">:</span><span class="w"> </span><span class="s2">"localhost"</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"locatorPort"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10334"</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"regions"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Zips"</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"pdxSerializablePackagePath"</span><span class="p">:</span><span class="w"> </span><span class="s2">".*"</span><span class="w">
+      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"geode_raw"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.geode.rel.GeodeSchemaFactory"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="nl">"locatorHost"</span><span class="p">:</span><span class="w"> </span><span class="s2">"localhost"</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"locatorPort"</span><span class="p">:</span><span class="w"> </span><span class="s2">"10334"</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"regions"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Zips"</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"pdxSerializablePackagePath"</span><span class="p">:</span><span class="w"> </span><span class="s2">".*"</span><span class="w">
       </span><span class="p">}</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
-<p>This adapter is targeted for Geode 1.3.x. The <code class="highlighter-rouge">regions</code> field allows to list (comma separated)
+<p>This adapter is targeted for Geode 1.3.x. The <code class="language-plaintext highlighter-rouge">regions</code> field allows to list (comma separated)
 all Geode regions to appear as relational tables.</p>
 
-<p>Assuming this file is stored as <code class="highlighter-rouge">model.json</code>, you can connect to
-Geode via <a href="https://github.com/julianhyde/sqlline"><code class="highlighter-rouge">sqlline</code></a> as
+<p>Assuming this file is stored as <code class="language-plaintext highlighter-rouge">model.json</code>, you can connect to
+Geode via <a href="https://github.com/julianhyde/sqlline"><code class="language-plaintext highlighter-rouge">sqlline</code></a> as
 follows:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlline
 sqlline&gt; <span class="o">!</span>connect jdbc:calcite:model<span class="o">=</span>model.json admin admin</code></pre></figure>
 
-<p><code class="highlighter-rouge">sqlline</code> will now accept SQL queries which access your Regions using OQL.
+<p><code class="language-plaintext highlighter-rouge">sqlline</code> will now accept SQL queries which access your Regions using OQL.
 However, you’re not restricted to issuing queries supported by
 <a href="https://geode.apache.org/docs/guide/latest/developing/querying_basics/chapter_overview.html">OQL</a>.
 Calcite allows you to perform complex operations such as aggregations
@@ -133,7 +133,7 @@
 efficient OQL possible by exploiting filtering, sorting and aggregation directly
 in Geode where possible.</p>
 
-<p>For example, in the example Bookshop dataset there is a Regions <code class="highlighter-rouge">BookMaster</code>.</p>
+<p>For example, in the example Bookshop dataset there is a Regions <code class="language-plaintext highlighter-rouge">BookMaster</code>.</p>
 
 <p>We can issue a SQL query to fetch the annual retail cost ordered by the cost:</p>
 
@@ -187,7 +187,7 @@
 
 <p>And the result will be joined in Calcite.</p>
 
-<p>To select a particular item in Geode array field use the <code class="highlighter-rouge">fieldName[index]</code>
+<p>To select a particular item in Geode array field use the <code class="language-plaintext highlighter-rouge">fieldName[index]</code>
 syntax:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">sqlline</span><span class="o">&gt;</span> <span class="k">SELECT</span>
@@ -195,14 +195,14 @@
            <span class="nv">"loc"</span> <span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="k">AS</span> <span class="nv">"lat"</span>
          <span class="k">FROM</span> <span class="nv">"geode"</span><span class="p">.</span><span class="n">ZIPS</span></code></pre></figure>
 
-<p>To select a nested fields use the map <code class="highlighter-rouge">fieldName[nestedFiledName]</code>
+<p>To select a nested fields use the map <code class="language-plaintext highlighter-rouge">fieldName[nestedFiledName]</code>
 syntax:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">sqlline</span><span class="o">&gt;</span> <span class="k">SELECT</span> <span class="nv">"primaryAddress"</span> <span class="p">[</span><span class="s1">'postalCode'</span><span class="p">]</span> <span class="k">AS</span> <span class="nv">"postalCode"</span>
          <span class="k">FROM</span> <span class="nv">"TEST"</span><span class="p">.</span><span class="nv">"BookCustomer"</span>
          <span class="k">WHERE</span> <span class="nv">"primaryAddress"</span> <span class="p">[</span><span class="s1">'postalCode'</span><span class="p">]</span> <span class="o">&gt;</span> <span class="s1">'0'</span><span class="p">;</span></code></pre></figure>
 
-<p>This will project <code class="highlighter-rouge">BookCustomer.primaryAddress.postalCode</code> value field.</p>
+<p>This will project <code class="language-plaintext highlighter-rouge">BookCustomer.primaryAddress.postalCode</code> value field.</p>
 
 <p>The following presentations and video tutorials provide further dails
 about Geode adapter:</p>
@@ -534,7 +534,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/history.html b/docs/history.html
index 17b41e4..d6c10a7 100644
--- a/docs/history.html
+++ b/docs/history.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>History</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -151,64 +151,64 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5040">CALCITE-5040</a>]
-<code class="highlighter-rouge">SqlTypeFactoryTest.testUnknownCreateWithNullabilityTypeConsistency</code> fails</li>
+<code class="language-plaintext highlighter-rouge">SqlTypeFactoryTest.testUnknownCreateWithNullabilityTypeConsistency</code> fails</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5019">CALCITE-5019</a>]
-Avoid multiple scans when table is <code class="highlighter-rouge">ProjectableFilterableTable</code> and projections and filters act on different columns</li>
+Avoid multiple scans when table is <code class="language-plaintext highlighter-rouge">ProjectableFilterableTable</code> and projections and filters act on different columns</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5011">CALCITE-5011</a>]
-<code class="highlighter-rouge">CassandraAdapterDataTypesTest</code> fails with initialization error</li>
+<code class="language-plaintext highlighter-rouge">CassandraAdapterDataTypesTest</code> fails with initialization error</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-5008">CALCITE-5008</a>]
-Ignore synthetic and static methods in <code class="highlighter-rouge">MetadataDef</code>
+Ignore synthetic and static methods in <code class="language-plaintext highlighter-rouge">MetadataDef</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4997">CALCITE-4997</a>]
-Keep <code class="highlighter-rouge">APPROX_COUNT_DISTINCT</code> in some <code class="highlighter-rouge">SqlDialect</code>s</li>
+Keep <code class="language-plaintext highlighter-rouge">APPROX_COUNT_DISTINCT</code> in some <code class="language-plaintext highlighter-rouge">SqlDialect</code>s</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4996">CALCITE-4996</a>]
-In <code class="highlighter-rouge">RelJson</code>, add a <code class="highlighter-rouge">readExpression</code> method that converts JSON to a <code class="highlighter-rouge">RexNode</code> expression</li>
+In <code class="language-plaintext highlighter-rouge">RelJson</code>, add a <code class="language-plaintext highlighter-rouge">readExpression</code> method that converts JSON to a <code class="language-plaintext highlighter-rouge">RexNode</code> expression</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4995">CALCITE-4995</a>]
-<code class="highlighter-rouge">AssertionError</code> caused by <code class="highlighter-rouge">RelFieldTrimmer</code> on <code class="highlighter-rouge">SEMI/ANTI</code> join</li>
+<code class="language-plaintext highlighter-rouge">AssertionError</code> caused by <code class="language-plaintext highlighter-rouge">RelFieldTrimmer</code> on <code class="language-plaintext highlighter-rouge">SEMI/ANTI</code> join</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4994">CALCITE-4994</a>]
 SQL-to-RelNode conversion is slow if table contains hundreds of fields</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4991">CALCITE-4991</a>]
-Improve <code class="highlighter-rouge">RuleEventLogger</code> to also print input rels in <code class="highlighter-rouge">FULL_PLAN</code> mode</li>
+Improve <code class="language-plaintext highlighter-rouge">RuleEventLogger</code> to also print input rels in <code class="language-plaintext highlighter-rouge">FULL_PLAN</code> mode</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4988">CALCITE-4988</a>]
-<code class="highlighter-rouge">((A IS NOT NULL OR B) AND A IS NOT NULL)</code> can’t be simplify to <code class="highlighter-rouge">(A IS NOT NULL)</code> When <code class="highlighter-rouge">A</code> is deterministic</li>
+<code class="language-plaintext highlighter-rouge">((A IS NOT NULL OR B) AND A IS NOT NULL)</code> can’t be simplify to <code class="language-plaintext highlighter-rouge">(A IS NOT NULL)</code> When <code class="language-plaintext highlighter-rouge">A</code> is deterministic</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4986">CALCITE-4986</a>]
-Make <code class="highlighter-rouge">HepProgram</code> thread-safe</li>
+Make <code class="language-plaintext highlighter-rouge">HepProgram</code> thread-safe</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4968">CALCITE-4968</a>]
-Use <code class="highlighter-rouge">TOP N</code> for MsSQL instead of <code class="highlighter-rouge">FETCH</code> without <code class="highlighter-rouge">OFFSET</code>
+Use <code class="language-plaintext highlighter-rouge">TOP N</code> for MsSQL instead of <code class="language-plaintext highlighter-rouge">FETCH</code> without <code class="language-plaintext highlighter-rouge">OFFSET</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4965">CALCITE-4965</a>]
-<code class="highlighter-rouge">IS NOT NULL</code> failed in Elasticsearch Adapter</li>
+<code class="language-plaintext highlighter-rouge">IS NOT NULL</code> failed in Elasticsearch Adapter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4963">CALCITE-4963</a>]
-Make it easier to implement interface <code class="highlighter-rouge">SqlDialectFactory</code>
+Make it easier to implement interface <code class="language-plaintext highlighter-rouge">SqlDialectFactory</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4953">CALCITE-4953</a>]
-Deprecate <code class="highlighter-rouge">TableAccessMap</code> class</li>
+Deprecate <code class="language-plaintext highlighter-rouge">TableAccessMap</code> class</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4952">CALCITE-4952</a>]
-Introduce a simplistic <code class="highlighter-rouge">RelMetadataQuery</code> option</li>
+Introduce a simplistic <code class="language-plaintext highlighter-rouge">RelMetadataQuery</code> option</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4912">CALCITE-4912</a>]
-Confusing javadoc of <code class="highlighter-rouge">RexSimplify.simplify</code>
+Confusing javadoc of <code class="language-plaintext highlighter-rouge">RexSimplify.simplify</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4901">CALCITE-4901</a>]
-JDBC adapter incorrectly adds <code class="highlighter-rouge">ORDER BY</code> columns to the <code class="highlighter-rouge">SELECT</code> list of generated SQL query</li>
+JDBC adapter incorrectly adds <code class="language-plaintext highlighter-rouge">ORDER BY</code> columns to the <code class="language-plaintext highlighter-rouge">SELECT</code> list of generated SQL query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4877">CALCITE-4877</a>]
-Support Snapshot in <code class="highlighter-rouge">RelMdColumnOrigins</code>
+Support Snapshot in <code class="language-plaintext highlighter-rouge">RelMdColumnOrigins</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4872">CALCITE-4872</a>]
-Add <code class="highlighter-rouge">UNKNOWN</code> value to enum <code class="highlighter-rouge">SqlTypeName</code>, distinct from the <code class="highlighter-rouge">NULL</code> type</li>
+Add <code class="language-plaintext highlighter-rouge">UNKNOWN</code> value to enum <code class="language-plaintext highlighter-rouge">SqlTypeName</code>, distinct from the <code class="language-plaintext highlighter-rouge">NULL</code> type</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4702">CALCITE-4702</a>]
-Error when executing query with <code class="highlighter-rouge">GROUP BY</code> constant via JDBC adapter</li>
+Error when executing query with <code class="language-plaintext highlighter-rouge">GROUP BY</code> constant via JDBC adapter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4683">CALCITE-4683</a>]
 IN-list converted to JOIN throws type mismatch exception</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4323">CALCITE-4323</a>]
-If a view definition has an <code class="highlighter-rouge">ORDER BY</code> clause, retain the sort if the view is used in a query at top level</li>
+If a view definition has an <code class="language-plaintext highlighter-rouge">ORDER BY</code> clause, retain the sort if the view is used in a query at top level</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4054">CALCITE-4054</a>]
-<code class="highlighter-rouge">RepeatUnion</code> containing a <code class="highlighter-rouge">Correlate</code> with a <code class="highlighter-rouge">transientScan</code> on its RHS causes NPE</li>
+<code class="language-plaintext highlighter-rouge">RepeatUnion</code> containing a <code class="language-plaintext highlighter-rouge">Correlate</code> with a <code class="language-plaintext highlighter-rouge">transientScan</code> on its RHS causes NPE</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3673">CALCITE-3673</a>]
-<code class="highlighter-rouge">ListTransientTable</code> should not leave tables in the schema</li>
+<code class="language-plaintext highlighter-rouge">ListTransientTable</code> should not leave tables in the schema</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3627">CALCITE-3627</a>]
-Incorrect null semantic for <code class="highlighter-rouge">ROW</code> function</li>
+Incorrect null semantic for <code class="language-plaintext highlighter-rouge">ROW</code> function</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1794">CALCITE-1794</a>]
-Expressions with numeric comparisons are not simplified when <code class="highlighter-rouge">CAST</code> is present</li>
+Expressions with numeric comparisons are not simplified when <code class="language-plaintext highlighter-rouge">CAST</code> is present</li>
 </ul>
 
 <h4 id="build-1-30-0">Build and test suite</h4>
@@ -290,100 +290,100 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4822">CALCITE-4822</a>]
-Add <code class="highlighter-rouge">ARRAY_CONCAT</code>, <code class="highlighter-rouge">ARRAY_REVERSE</code>, <code class="highlighter-rouge">ARRAY_LENGTH</code> functions for BigQuery dialect</li>
+Add <code class="language-plaintext highlighter-rouge">ARRAY_CONCAT</code>, <code class="language-plaintext highlighter-rouge">ARRAY_REVERSE</code>, <code class="language-plaintext highlighter-rouge">ARRAY_LENGTH</code> functions for BigQuery dialect</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4877">CALCITE-4877</a>]
 When a plugin class is not found, make the exception more explicit</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4841">CALCITE-4841</a>]
-Support <code class="highlighter-rouge">decimal</code> column type in CSV and File adapters</li>
+Support <code class="language-plaintext highlighter-rouge">decimal</code> column type in CSV and File adapters</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4925">CALCITE-4925</a>]
-<code class="highlighter-rouge">AggregateReduceFunctionsRule</code> should accept arbitrary predicates</li>
+<code class="language-plaintext highlighter-rouge">AggregateReduceFunctionsRule</code> should accept arbitrary predicates</li>
 </ul>
 
 <h4 id="fixes-1-29-0">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4839">CALCITE-4839</a>]
-Remove remnants of <code class="highlighter-rouge">ImmutableBeans</code> post 1.28 release</li>
+Remove remnants of <code class="language-plaintext highlighter-rouge">ImmutableBeans</code> post 1.28 release</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4795">CALCITE-4795</a>]
-In class <code class="highlighter-rouge">SqlBasicCall</code>, make the <code class="highlighter-rouge">operands</code> field private</li>
+In class <code class="language-plaintext highlighter-rouge">SqlBasicCall</code>, make the <code class="language-plaintext highlighter-rouge">operands</code> field private</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4818">CALCITE-4818</a>]
-<code class="highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> must infer correct data type for top
+<code class="language-plaintext highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> must infer correct data type for top
 aggregate calls</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4551">CALCITE-4551</a>]
 Reusing immutable metadata cache keys</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4131">CALCITE-4131</a>]
-The <code class="highlighter-rouge">XmlFunctions</code> exception handled by <code class="highlighter-rouge">System.out</code>
+The <code class="language-plaintext highlighter-rouge">XmlFunctions</code> exception handled by <code class="language-plaintext highlighter-rouge">System.out</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4875">CALCITE-4875</a>]
-<code class="highlighter-rouge">NVL</code> function incorrectly changes nullability of its operands</li>
+<code class="language-plaintext highlighter-rouge">NVL</code> function incorrectly changes nullability of its operands</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4844">CALCITE-4844</a>]
-<code class="highlighter-rouge">IN</code>-list that references columns is wrongly converted to <code class="highlighter-rouge">Values</code>, and gives
+<code class="language-plaintext highlighter-rouge">IN</code>-list that references columns is wrongly converted to <code class="language-plaintext highlighter-rouge">Values</code>, and gives
 incorrect results</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4846">CALCITE-4846</a>]
-<code class="highlighter-rouge">IN</code>-list that includes <code class="highlighter-rouge">NULL</code> converted to <code class="highlighter-rouge">Values</code> throws exception</li>
+<code class="language-plaintext highlighter-rouge">IN</code>-list that includes <code class="language-plaintext highlighter-rouge">NULL</code> converted to <code class="language-plaintext highlighter-rouge">Values</code> throws exception</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4884">CALCITE-4884</a>]
-Provide a new constructor for <code class="highlighter-rouge">RelJsonWriter</code> to allow customized <code class="highlighter-rouge">JsonBuilder</code>
+Provide a new constructor for <code class="language-plaintext highlighter-rouge">RelJsonWriter</code> to allow customized <code class="language-plaintext highlighter-rouge">JsonBuilder</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4876">CALCITE-4876</a>]
-JDBC adapter generates wrong SQL in Calcite dialect when <code class="highlighter-rouge">EnumerableIntersect</code>
-is followed by <code class="highlighter-rouge">EnumerableLimit</code>
+JDBC adapter generates wrong SQL in Calcite dialect when <code class="language-plaintext highlighter-rouge">EnumerableIntersect</code>
+is followed by <code class="language-plaintext highlighter-rouge">EnumerableLimit</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4883">CALCITE-4883</a>]
-When <code class="highlighter-rouge">Exchange</code> is created from externalized JSON, <code class="highlighter-rouge">RelDistribution</code> is not
-correctly set in its <code class="highlighter-rouge">traitSet</code>
+When <code class="language-plaintext highlighter-rouge">Exchange</code> is created from externalized JSON, <code class="language-plaintext highlighter-rouge">RelDistribution</code> is not
+correctly set in its <code class="language-plaintext highlighter-rouge">traitSet</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4783">CALCITE-4783</a>]
-<code class="highlighter-rouge">RelFieldTrimmer</code> incorrectly drops filter condition</li>
+<code class="language-plaintext highlighter-rouge">RelFieldTrimmer</code> incorrectly drops filter condition</li>
   <li>Log plan after physical tweaks in new line</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4927">CALCITE-4927</a>]
-Remove deprecated method <code class="highlighter-rouge">RelBuilder.groupKey(ImmutableBitSet, ImmutableList)</code>
+Remove deprecated method <code class="language-plaintext highlighter-rouge">RelBuilder.groupKey(ImmutableBitSet, ImmutableList)</code>
 that clashes with newer API method</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4928">CALCITE-4928</a>]
-Decouple Janino from <code class="highlighter-rouge">RelMetadataQuery</code>
+Decouple Janino from <code class="language-plaintext highlighter-rouge">RelMetadataQuery</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4932">CALCITE-4932</a>]
-Deprecate <code class="highlighter-rouge">JdbcCalc</code> and remove <code class="highlighter-rouge">JdbcCalcRule</code>
+Deprecate <code class="language-plaintext highlighter-rouge">JdbcCalc</code> and remove <code class="language-plaintext highlighter-rouge">JdbcCalcRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4894">CALCITE-4894</a>]
-Materialized view rewriting fails for conjunctive top expressions in <code class="highlighter-rouge">SELECT</code>
+Materialized view rewriting fails for conjunctive top expressions in <code class="language-plaintext highlighter-rouge">SELECT</code>
 clause</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4929">CALCITE-4929</a>]
-Add default methods for <code class="highlighter-rouge">getDef</code> on metadata handlers</li>
-  <li>Improve debug message in <code class="highlighter-rouge">IterativeRuleDriver</code>
+Add default methods for <code class="language-plaintext highlighter-rouge">getDef</code> on metadata handlers</li>
+  <li>Improve debug message in <code class="language-plaintext highlighter-rouge">IterativeRuleDriver</code>
 </li>
-  <li>Remove duplicate entries from <code class="highlighter-rouge">RelOptRules.CALC_RULES</code>
+  <li>Remove duplicate entries from <code class="language-plaintext highlighter-rouge">RelOptRules.CALC_RULES</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4906">CALCITE-4906</a>]
 Wrong result for scalar sub-query (single value aggregation) from empty input</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4941">CALCITE-4941</a>]
-<code class="highlighter-rouge">SemiJoinRule</code> loses hints</li>
+<code class="language-plaintext highlighter-rouge">SemiJoinRule</code> loses hints</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4895">CALCITE-4895</a>]
-<code class="highlighter-rouge">MAP</code> type in user-defined function (UDF) cannot be created from externalized
+<code class="language-plaintext highlighter-rouge">MAP</code> type in user-defined function (UDF) cannot be created from externalized
 JSON</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4946">CALCITE-4946</a>]
-Add method <code class="highlighter-rouge">RelBuilder.size()</code>
+Add method <code class="language-plaintext highlighter-rouge">RelBuilder.size()</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4704">CALCITE-4704</a>]
 Log produced plan after rule application using explain formatting</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4700">CALCITE-4700</a>]
-<code class="highlighter-rouge">AggregateUnionTransposeRule</code> produces wrong <code class="highlighter-rouge">groupingSets</code> for the top
-<code class="highlighter-rouge">Aggregate</code>
+<code class="language-plaintext highlighter-rouge">AggregateUnionTransposeRule</code> produces wrong <code class="language-plaintext highlighter-rouge">groupingSets</code> for the top
+<code class="language-plaintext highlighter-rouge">Aggregate</code>
 </li>
 </ul>
 
 <h4 id="build-1-29-0">Build and test suite</h4>
 
 <ul>
-  <li>Exclude kotlin-stdlib from <code class="highlighter-rouge">:core</code> runtime dependencies</li>
+  <li>Exclude kotlin-stdlib from <code class="language-plaintext highlighter-rouge">:core</code> runtime dependencies</li>
   <li>Clarify why squash commits option in GitHub PR merge is disabled</li>
-  <li>Keep backslash when autoformatting <code class="highlighter-rouge">...\n" +</code>
+  <li>Keep backslash when autoformatting <code class="language-plaintext highlighter-rouge">...\n" +</code>
 </li>
   <li>Use GitHub Action concurrency feature to cancel stale CI executions</li>
   <li>Set timeout for running Druid tests in GitHub CI</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4917">CALCITE-4917</a>]
-Add test for <code class="highlighter-rouge">a IS NOT NULL AND a = b</code> simplification</li>
+Add test for <code class="language-plaintext highlighter-rouge">a IS NOT NULL AND a = b</code> simplification</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4851">CALCITE-4851</a>]
-Build gives lots of ‘<code class="highlighter-rouge">Execution optimizations have been disabled</code>’ warnings</li>
+Build gives lots of ‘<code class="language-plaintext highlighter-rouge">Execution optimizations have been disabled</code>’ warnings</li>
 </ul>
 
 <h4 id="dependency-1-29-0">Dependency version upgrade</h4>
@@ -395,7 +395,7 @@
 Use Log4j2 instead of unsupported Log4j (1.x) in tests</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4768">CALCITE-4768</a>]
 Upgrade DataStax Driver for Apache Cassandra® version to latest 4.x</li>
-  <li>Bump <code class="highlighter-rouge">com.github.vlsi.vlsi-release-plugins</code> to 1.76</li>
+  <li>Bump <code class="language-plaintext highlighter-rouge">com.github.vlsi.vlsi-release-plugins</code> to 1.76</li>
   <li>Update Gradle to 7.3</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4937">CALCITE-4937</a>]
 Upgrade Calcite to Avatica 1.20</li>
@@ -435,7 +435,7 @@
 <p>This release contains some breaking changes due to the
 <a href="https://issues.apache.org/jira/browse/CALCITE-4787">replacement of ImmutableBeans with Immutables</a>;
 the changes concern custom planner rule configurations, in particular
-<code class="highlighter-rouge">interface RelRule.Config</code>, and are fully described in the
+<code class="language-plaintext highlighter-rouge">interface RelRule.Config</code>, and are fully described in the
 <a href="/news/2021/10/19/release-1.28.0">news item</a>.
 Two APIs are deprecated and will be <a href="#to-be-removed-in-1-29-0">removed in release 1.29</a>.</p>
 
@@ -488,13 +488,13 @@
 <ul>
   <li>In 1.28,
 [<a href="https://issues.apache.org/jira/browse/CALCITE-4787">CALCITE-4787</a>]
-added <code class="highlighter-rouge">class  Immutables</code> and deprecated <code class="highlighter-rouge">ImmutableBeans</code>; in 1.29,
+added <code class="language-plaintext highlighter-rouge">class  Immutables</code> and deprecated <code class="language-plaintext highlighter-rouge">ImmutableBeans</code>; in 1.29,
 [<a href="https://issues.apache.org/jira/browse/CALCITE-4839">CALCITE-4839</a>]
-will remove <code class="highlighter-rouge">ImmutableBeans</code>
+will remove <code class="language-plaintext highlighter-rouge">ImmutableBeans</code>
 </li>
   <li>In 1.28,
 [<a href="https://issues.apache.org/jira/browse/CALCITE-4795">CALCITE-4795</a>]
-deprecated the <code class="highlighter-rouge">operands</code> field of <code class="highlighter-rouge">SqlBasicCall</code>. Before 1.29, we will make
+deprecated the <code class="language-plaintext highlighter-rouge">operands</code> field of <code class="language-plaintext highlighter-rouge">SqlBasicCall</code>. Before 1.29, we will make
 that field private.</li>
 </ul>
 
@@ -502,23 +502,23 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4719">CALCITE-4719</a>]
-Add variants of <code class="highlighter-rouge">RexSubQuery</code> that collect sub-queries into <code class="highlighter-rouge">MULTISET</code>, <code class="highlighter-rouge">ARRAY</code>
-and <code class="highlighter-rouge">MAP</code> collections</li>
+Add variants of <code class="language-plaintext highlighter-rouge">RexSubQuery</code> that collect sub-queries into <code class="language-plaintext highlighter-rouge">MULTISET</code>, <code class="language-plaintext highlighter-rouge">ARRAY</code>
+and <code class="language-plaintext highlighter-rouge">MAP</code> collections</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3524">CALCITE-3524</a>]
-In <code class="highlighter-rouge">RelBuilder</code>, add methods for creating various kinds of sub-query</li>
+In <code class="language-plaintext highlighter-rouge">RelBuilder</code>, add methods for creating various kinds of sub-query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2736">CALCITE-2736</a>]
-<code class="highlighter-rouge">ReduceExpressionsRule</code> never reduces dynamic expressions but this should be
+<code class="language-plaintext highlighter-rouge">ReduceExpressionsRule</code> never reduces dynamic expressions but this should be
 configurable</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4847">CALCITE-4847</a>]
 Parse SQL with BigQuery-style quoted identifiers and character literals</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4805">CALCITE-4805</a>]
-Calcite should convert a small <code class="highlighter-rouge">IN</code>-list as if the user had written <code class="highlighter-rouge">OR</code>, even
-if the <code class="highlighter-rouge">IN</code>-list contains <code class="highlighter-rouge">NULL</code>
+Calcite should convert a small <code class="language-plaintext highlighter-rouge">IN</code>-list as if the user had written <code class="language-plaintext highlighter-rouge">OR</code>, even
+if the <code class="language-plaintext highlighter-rouge">IN</code>-list contains <code class="language-plaintext highlighter-rouge">NULL</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4779">CALCITE-4779</a>]
-If <code class="highlighter-rouge">GROUP BY</code> clause contains literal, materialized view recognition fails</li>
+If <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause contains literal, materialized view recognition fails</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4486">CALCITE-4486</a>]
-<code class="highlighter-rouge">UNIQUE</code> sub-query</li>
+<code class="language-plaintext highlighter-rouge">UNIQUE</code> sub-query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3935">CALCITE-3935</a>]
 Enhance join materialization, support to pull-up filters under join of left or
 right</li>
@@ -527,177 +527,177 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4774">CALCITE-4774</a>]
 Materialized view recognition fails for equivalent predicates</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4742">CALCITE-4742</a>]
-Implement <code class="highlighter-rouge">SOME &lt;&gt;</code> sub-query</li>
+Implement <code class="language-plaintext highlighter-rouge">SOME &lt;&gt;</code> sub-query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4726">CALCITE-4726</a>]
-Support aggregate calls with a <code class="highlighter-rouge">FILTER</code> clause in
-<code class="highlighter-rouge">AggregateExpandWithinDistinctRule</code>
+Support aggregate calls with a <code class="language-plaintext highlighter-rouge">FILTER</code> clause in
+<code class="language-plaintext highlighter-rouge">AggregateExpandWithinDistinctRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4748">CALCITE-4748</a>]
-If there are duplicate <code class="highlighter-rouge">GROUPING SETS</code>, Calcite should return duplicate rows</li>
+If there are duplicate <code class="language-plaintext highlighter-rouge">GROUPING SETS</code>, Calcite should return duplicate rows</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4665">CALCITE-4665</a>]
-Allow <code class="highlighter-rouge">Aggregate.groupKey</code> to be a strict superset of <code class="highlighter-rouge">Aggregate.groupKeys</code>
+Allow <code class="language-plaintext highlighter-rouge">Aggregate.groupKey</code> to be a strict superset of <code class="language-plaintext highlighter-rouge">Aggregate.groupKeys</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4724">CALCITE-4724</a>]
-In JDBC adapter for ClickHouse, implement <code class="highlighter-rouge">Values</code> by generating <code class="highlighter-rouge">SELECT</code>
-without <code class="highlighter-rouge">FROM</code>
+In JDBC adapter for ClickHouse, implement <code class="language-plaintext highlighter-rouge">Values</code> by generating <code class="language-plaintext highlighter-rouge">SELECT</code>
+without <code class="language-plaintext highlighter-rouge">FROM</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4673">CALCITE-4673</a>]
-If arguments to a table function are correlation variables, <code class="highlighter-rouge">SqlToRelConverter</code>
+If arguments to a table function are correlation variables, <code class="language-plaintext highlighter-rouge">SqlToRelConverter</code>
 should eliminate duplicate variables</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4642">CALCITE-4642</a>]
-Use <code class="highlighter-rouge">RelDataTypeSystem</code> from <code class="highlighter-rouge">Config</code> in <code class="highlighter-rouge">Planner</code>
+Use <code class="language-plaintext highlighter-rouge">RelDataTypeSystem</code> from <code class="language-plaintext highlighter-rouge">Config</code> in <code class="language-plaintext highlighter-rouge">Planner</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4661">CALCITE-4661</a>]
-Add <code class="highlighter-rouge">MODE</code> aggregate function</li>
+Add <code class="language-plaintext highlighter-rouge">MODE</code> aggregate function</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4420">CALCITE-4420</a>]
 Some simple arithmetic operations can be simplified</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4640">CALCITE-4640</a>]
 Propagate table scan hints to JDBC</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4668">CALCITE-4668</a>]
-<code class="highlighter-rouge">RelBuilder.join</code> should convert <code class="highlighter-rouge">Correlate</code> to <code class="highlighter-rouge">Join</code> if correlation variable
+<code class="language-plaintext highlighter-rouge">RelBuilder.join</code> should convert <code class="language-plaintext highlighter-rouge">Correlate</code> to <code class="language-plaintext highlighter-rouge">Join</code> if correlation variable
 is unused</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4644">CALCITE-4644</a>]
-Add <code class="highlighter-rouge">PERCENTILE_CONT</code> and <code class="highlighter-rouge">PERCENTILE_DISC</code> functions</li>
+Add <code class="language-plaintext highlighter-rouge">PERCENTILE_CONT</code> and <code class="language-plaintext highlighter-rouge">PERCENTILE_DISC</code> functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4614">CALCITE-4614</a>]
 Exasol dialect implementation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4158">CALCITE-4158</a>]
-In generated SQL, “<code class="highlighter-rouge">*</code>” should be followed by space</li>
+In generated SQL, “<code class="language-plaintext highlighter-rouge">*</code>” should be followed by space</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4606">CALCITE-4606</a>]
-In Elasticsearch adapter, translate <code class="highlighter-rouge">SEARCH</code> call to <code class="highlighter-rouge">termsQuery</code>
+In Elasticsearch adapter, translate <code class="language-plaintext highlighter-rouge">SEARCH</code> call to <code class="language-plaintext highlighter-rouge">termsQuery</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4499">CALCITE-4499</a>]
-<code class="highlighter-rouge">FilterJoinRule</code> misses opportunity to push <code class="highlighter-rouge">Filter</code> to <code class="highlighter-rouge">SemiJoin</code> input</li>
+<code class="language-plaintext highlighter-rouge">FilterJoinRule</code> misses opportunity to push <code class="language-plaintext highlighter-rouge">Filter</code> to <code class="language-plaintext highlighter-rouge">SemiJoin</code> input</li>
 </ul>
 
 <h4 id="fixes-1-28-0">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4848">CALCITE-4848</a>]
-Adding a <code class="highlighter-rouge">HAVING</code> condition to a query with a dynamic parameter makes the result
+Adding a <code class="language-plaintext highlighter-rouge">HAVING</code> condition to a query with a dynamic parameter makes the result
 always empty</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4550">CALCITE-4550</a>]
-Simplify <code class="highlighter-rouge">JaninoRelMetadataProvider</code> API for binding methods</li>
+Simplify <code class="language-plaintext highlighter-rouge">JaninoRelMetadataProvider</code> API for binding methods</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4740">CALCITE-4740</a>]
-JDBC adapter generates incorrect <code class="highlighter-rouge">HAVING</code> clause in BigQuery dialect</li>
-  <li>Refactor: Introduce field <code class="highlighter-rouge">SqlUtil.GENERATED_EXPR_ALIAS_PREFIX</code>
+JDBC adapter generates incorrect <code class="language-plaintext highlighter-rouge">HAVING</code> clause in BigQuery dialect</li>
+  <li>Refactor: Introduce field <code class="language-plaintext highlighter-rouge">SqlUtil.GENERATED_EXPR_ALIAS_PREFIX</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4616">CALCITE-4616</a>]
-<code class="highlighter-rouge">AggregateUnionTransposeRule</code> causes row type mismatch when some inputs have
+<code class="language-plaintext highlighter-rouge">AggregateUnionTransposeRule</code> causes row type mismatch when some inputs have
 unique grouping key</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4795">CALCITE-4795</a>]
-In class <code class="highlighter-rouge">SqlBasicCall</code>, deprecated the <code class="highlighter-rouge">operands</code> field</li>
+In class <code class="language-plaintext highlighter-rouge">SqlBasicCall</code>, deprecated the <code class="language-plaintext highlighter-rouge">operands</code> field</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4628">CALCITE-4628</a>]
-If <code class="highlighter-rouge">SqlImplementor</code> fails, include the <code class="highlighter-rouge">RelNode</code> in the exception</li>
+If <code class="language-plaintext highlighter-rouge">SqlImplementor</code> fails, include the <code class="language-plaintext highlighter-rouge">RelNode</code> in the exception</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4757">CALCITE-4757</a>]
-In Avatica, support columns of type <code class="highlighter-rouge">NULL</code> in query results</li>
+In Avatica, support columns of type <code class="language-plaintext highlighter-rouge">NULL</code> in query results</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4602">CALCITE-4602</a>]
-<code class="highlighter-rouge">ClassCastException</code> retrieving from <code class="highlighter-rouge">ARRAY</code> that has mixed <code class="highlighter-rouge">INTEGER</code> and
-<code class="highlighter-rouge">DECIMAL</code> elements</li>
+<code class="language-plaintext highlighter-rouge">ClassCastException</code> retrieving from <code class="language-plaintext highlighter-rouge">ARRAY</code> that has mixed <code class="language-plaintext highlighter-rouge">INTEGER</code> and
+<code class="language-plaintext highlighter-rouge">DECIMAL</code> elements</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4600">CALCITE-4600</a>]
-<code class="highlighter-rouge">ClassCastException</code> retrieving from an <code class="highlighter-rouge">ARRAY</code> that has <code class="highlighter-rouge">DATE</code>, <code class="highlighter-rouge">TIME</code> or
-<code class="highlighter-rouge">TIMESTAMP</code> elements</li>
+<code class="language-plaintext highlighter-rouge">ClassCastException</code> retrieving from an <code class="language-plaintext highlighter-rouge">ARRAY</code> that has <code class="language-plaintext highlighter-rouge">DATE</code>, <code class="language-plaintext highlighter-rouge">TIME</code> or
+<code class="language-plaintext highlighter-rouge">TIMESTAMP</code> elements</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3338">CALCITE-3338</a>]
-Error with <code class="highlighter-rouge">executeBatch</code> and <code class="highlighter-rouge">preparedStatement</code> when using <code class="highlighter-rouge">RemoteMeta</code>
+Error with <code class="language-plaintext highlighter-rouge">executeBatch</code> and <code class="language-plaintext highlighter-rouge">preparedStatement</code> when using <code class="language-plaintext highlighter-rouge">RemoteMeta</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4811">CALCITE-4811</a>]
-<code class="highlighter-rouge">Coalesce(null, row)</code> fails with <code class="highlighter-rouge">NullPointerException</code>
+<code class="language-plaintext highlighter-rouge">Coalesce(null, row)</code> fails with <code class="language-plaintext highlighter-rouge">NullPointerException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3583">CALCITE-3583</a>]
-<code class="highlighter-rouge">Exchange</code> operator deserialize fails when the <code class="highlighter-rouge">RexInput</code> has no <code class="highlighter-rouge">RelCollation</code>
+<code class="language-plaintext highlighter-rouge">Exchange</code> operator deserialize fails when the <code class="language-plaintext highlighter-rouge">RexInput</code> has no <code class="language-plaintext highlighter-rouge">RelCollation</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3745">CALCITE-3745</a>]
-<code class="highlighter-rouge">CompileException</code> in <code class="highlighter-rouge">UnitCompiler</code> when using multiple class loaders</li>
+<code class="language-plaintext highlighter-rouge">CompileException</code> in <code class="language-plaintext highlighter-rouge">UnitCompiler</code> when using multiple class loaders</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4834">CALCITE-4834</a>]
-<code class="highlighter-rouge">JaninoRelMetadataProvider</code> uses hardcoded class name</li>
+<code class="language-plaintext highlighter-rouge">JaninoRelMetadataProvider</code> uses hardcoded class name</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4819">CALCITE-4819</a>]
-<code class="highlighter-rouge">SemiJoin</code> operator is not skipped in materialized view-based rewriting
+<code class="language-plaintext highlighter-rouge">SemiJoin</code> operator is not skipped in materialized view-based rewriting
 algorithm</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4546">CALCITE-4546</a>]
-Change metadata dispatch to avoid registration of all <code class="highlighter-rouge">RelNode</code> subtypes</li>
+Change metadata dispatch to avoid registration of all <code class="language-plaintext highlighter-rouge">RelNode</code> subtypes</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4787">CALCITE-4787</a>]
-Replace <code class="highlighter-rouge">ImmutableBeans</code> with <code class="highlighter-rouge">Immutables</code> in <code class="highlighter-rouge">core</code> module
+Replace <code class="language-plaintext highlighter-rouge">ImmutableBeans</code> with <code class="language-plaintext highlighter-rouge">Immutables</code> in <code class="language-plaintext highlighter-rouge">core</code> module
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4830">CALCITE-4830</a>]
-Remove remaining uses of <code class="highlighter-rouge">ImmutableBeans</code> and deprecate</li>
+Remove remaining uses of <code class="language-plaintext highlighter-rouge">ImmutableBeans</code> and deprecate</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4825">CALCITE-4825</a>]
-Move remaining core/main off of <code class="highlighter-rouge">ImmutableBeans</code>
+Move remaining core/main off of <code class="language-plaintext highlighter-rouge">ImmutableBeans</code>
 </li>
     </ul>
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4532">CALCITE-4532</a>]
-Correct code generated for primitive-object <code class="highlighter-rouge">ConstantExpression</code>
+Correct code generated for primitive-object <code class="language-plaintext highlighter-rouge">ConstantExpression</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3409">CALCITE-3409</a>]
-Add a method in <code class="highlighter-rouge">RelOptMaterializations</code> to allow registering <code class="highlighter-rouge">UnifyRule</code>
+Add a method in <code class="language-plaintext highlighter-rouge">RelOptMaterializations</code> to allow registering <code class="language-plaintext highlighter-rouge">UnifyRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4773">CALCITE-4773</a>]
-<code class="highlighter-rouge">RelDecorrelator</code>’s <code class="highlighter-rouge">RemoveSingleAggregateRule</code> can produce result with wrong
+<code class="language-plaintext highlighter-rouge">RelDecorrelator</code>’s <code class="language-plaintext highlighter-rouge">RemoveSingleAggregateRule</code> can produce result with wrong
 row type</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4544">CALCITE-4544</a>]
-Deprecate <code class="highlighter-rouge">Metadata</code> API backed by Java Reflection</li>
+Deprecate <code class="language-plaintext highlighter-rouge">Metadata</code> API backed by Java Reflection</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4772">CALCITE-4772</a>]
-<code class="highlighter-rouge">PushProjector</code> should retain alias when handling <code class="highlighter-rouge">RexCall</code>
+<code class="language-plaintext highlighter-rouge">PushProjector</code> should retain alias when handling <code class="language-plaintext highlighter-rouge">RexCall</code>
 </li>
-  <li>Remove obsolete/misleading comments in <code class="highlighter-rouge">RelOptUtil#classifyFilters</code>
+  <li>Remove obsolete/misleading comments in <code class="language-plaintext highlighter-rouge">RelOptUtil#classifyFilters</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4784">CALCITE-4784</a>]
-Ensure <code class="highlighter-rouge">Correlate#requiredColumns</code> is subset of columns in left relation</li>
+Ensure <code class="language-plaintext highlighter-rouge">Correlate#requiredColumns</code> is subset of columns in left relation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4177">CALCITE-4177</a>]
-<code class="highlighter-rouge">RelJson</code> should throw if asked to deserialize a call to an unknown operator</li>
-  <li>Add <code class="highlighter-rouge">RelBuilder.lessThan</code>, and use <code class="highlighter-rouge">RelBuilder</code> shorthands</li>
+<code class="language-plaintext highlighter-rouge">RelJson</code> should throw if asked to deserialize a call to an unknown operator</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">RelBuilder.lessThan</code>, and use <code class="language-plaintext highlighter-rouge">RelBuilder</code> shorthands</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4766">CALCITE-4766</a>]
-Remove unreachable code from <code class="highlighter-rouge">SqlValidatorImpl#performUnconditionalRewrites</code>
-for <code class="highlighter-rouge">Values</code> node</li>
+Remove unreachable code from <code class="language-plaintext highlighter-rouge">SqlValidatorImpl#performUnconditionalRewrites</code>
+for <code class="language-plaintext highlighter-rouge">Values</code> node</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4747">CALCITE-4747</a>]
-In <code class="highlighter-rouge">HepPlanner</code>, remove outdated graph edges</li>
+In <code class="language-plaintext highlighter-rouge">HepPlanner</code>, remove outdated graph edges</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4760">CALCITE-4760</a>]
-<code class="highlighter-rouge">RelBuilder</code> creation fails with error ‘<code class="highlighter-rouge">No suitable driver found for
+<code class="language-plaintext highlighter-rouge">RelBuilder</code> creation fails with error ‘<code class="language-plaintext highlighter-rouge">No suitable driver found for
 jdbc:calcite:</code>’ in shaded Calcite</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4584">CALCITE-4584</a>]
-Using function in <code class="highlighter-rouge">PARTITION BY</code> list of <code class="highlighter-rouge">OVER</code> window causes conversion
+Using function in <code class="language-plaintext highlighter-rouge">PARTITION BY</code> list of <code class="language-plaintext highlighter-rouge">OVER</code> window causes conversion
 exception</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4734">CALCITE-4734</a>]
-If there are duplicate <code class="highlighter-rouge">RexNode</code> in <code class="highlighter-rouge">MutableCalc</code>, <code class="highlighter-rouge">SubstitutionVisitor</code> should
-return right rebuild <code class="highlighter-rouge">RexNode</code>
+If there are duplicate <code class="language-plaintext highlighter-rouge">RexNode</code> in <code class="language-plaintext highlighter-rouge">MutableCalc</code>, <code class="language-plaintext highlighter-rouge">SubstitutionVisitor</code> should
+return right rebuild <code class="language-plaintext highlighter-rouge">RexNode</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4741">CALCITE-4741</a>]
-<code class="highlighter-rouge">AbstractRelNode#getId</code> can overflow into a negative value, causing
-<code class="highlighter-rouge">CompileException</code> in the <code class="highlighter-rouge">implement</code> methods of certain <code class="highlighter-rouge">Enumerable</code>
+<code class="language-plaintext highlighter-rouge">AbstractRelNode#getId</code> can overflow into a negative value, causing
+<code class="language-plaintext highlighter-rouge">CompileException</code> in the <code class="language-plaintext highlighter-rouge">implement</code> methods of certain <code class="language-plaintext highlighter-rouge">Enumerable</code>
 sub-classes</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4652">CALCITE-4652</a>]
-<code class="highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> must cast top aggregates to original
+<code class="language-plaintext highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> must cast top aggregates to original
 type</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4716">CALCITE-4716</a>]
-<code class="highlighter-rouge">ClassCastException</code> converting Sarg in <code class="highlighter-rouge">RelNode</code> to SQL</li>
+<code class="language-plaintext highlighter-rouge">ClassCastException</code> converting Sarg in <code class="language-plaintext highlighter-rouge">RelNode</code> to SQL</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4706">CALCITE-4706</a>]
 JDBC adapter generates casts exceeding Redshift’s data types bounds</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4485">CALCITE-4485</a>]
-JDBC adapter generates invalid SQL when one of the joins is <code class="highlighter-rouge">INNER JOIN ... ON
+JDBC adapter generates invalid SQL when one of the joins is <code class="language-plaintext highlighter-rouge">INNER JOIN ... ON
 TRUE</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4623">CALCITE-4623</a>]
-<code class="highlighter-rouge">SemiJoinRule</code> should not match semi-join</li>
+<code class="language-plaintext highlighter-rouge">SemiJoinRule</code> should not match semi-join</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4692">CALCITE-4692</a>]
-Redshift does not support <code class="highlighter-rouge">DOUBLE</code> or <code class="highlighter-rouge">TINYINT</code> datatypes</li>
+Redshift does not support <code class="language-plaintext highlighter-rouge">DOUBLE</code> or <code class="language-plaintext highlighter-rouge">TINYINT</code> datatypes</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4690">CALCITE-4690</a>]
-Error when executing query with <code class="highlighter-rouge">CHARACTER SET</code> in Redshift</li>
+Error when executing query with <code class="language-plaintext highlighter-rouge">CHARACTER SET</code> in Redshift</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4675">CALCITE-4675</a>]
 Error executing query with SUM and multiplication via JDBC adapter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4674">CALCITE-4674</a>]
-Excess quotes in generated SQL when “<code class="highlighter-rouge">*</code>” is a column alias</li>
+Excess quotes in generated SQL when “<code class="language-plaintext highlighter-rouge">*</code>” is a column alias</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3775">CALCITE-3775</a>]
-Implicit lookup methods in <code class="highlighter-rouge">SimpleCalciteSchema</code> ignore case sensitivity
+Implicit lookup methods in <code class="language-plaintext highlighter-rouge">SimpleCalciteSchema</code> ignore case sensitivity
 parameter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4638">CALCITE-4638</a>]
-<code class="highlighter-rouge">VolcanoPlanner</code> fails to recognize transformation rule correctly in the
+<code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> fails to recognize transformation rule correctly in the
 top-down mode</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4655">CALCITE-4655</a>]
-<code class="highlighter-rouge">JdbcTable.scan</code> throws <code class="highlighter-rouge">NullPointerException</code>
+<code class="language-plaintext highlighter-rouge">JdbcTable.scan</code> throws <code class="language-plaintext highlighter-rouge">NullPointerException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4636">CALCITE-4636</a>]
-Switch out of agg mode when constructing <code class="highlighter-rouge">RelCollation</code> for aggregate functions</li>
+Switch out of agg mode when constructing <code class="language-plaintext highlighter-rouge">RelCollation</code> for aggregate functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4619">CALCITE-4619</a>]
-<code class="highlighter-rouge">FULL JOIN</code> plan cannot be executed in MySQL</li>
+<code class="language-plaintext highlighter-rouge">FULL JOIN</code> plan cannot be executed in MySQL</li>
 </ul>
 
 <h4 id="build-1-28-0">Build and test suite</h4>
@@ -707,36 +707,36 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4798">CALCITE-4798</a>]
 Gradle build fails due to deprecated metadata APIs</li>
   <li>Use jdk16 instead of jdk17 since jdk17 is not yet available at AppVeyor</li>
-  <li>Fix string reference to <code class="highlighter-rouge">HrSchema</code> in <code class="highlighter-rouge">MaterializationTest</code> with
-<code class="highlighter-rouge">HrSchema.class.getName()</code>
+  <li>Fix string reference to <code class="language-plaintext highlighter-rouge">HrSchema</code> in <code class="language-plaintext highlighter-rouge">MaterializationTest</code> with
+<code class="language-plaintext highlighter-rouge">HrSchema.class.getName()</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4829">CALCITE-4829</a>]
 Bump Gradle to 7.2 and test with Java 17 at GitHub Actions</li>
-  <li>Fix <code class="highlighter-rouge">ErrorProne</code> violations in <code class="highlighter-rouge">testkit</code>
+  <li>Fix <code class="language-plaintext highlighter-rouge">ErrorProne</code> violations in <code class="language-plaintext highlighter-rouge">testkit</code>
 </li>
-  <li>Add missing <code class="highlighter-rouge">@Override</code> annotations</li>
+  <li>Add missing <code class="language-plaintext highlighter-rouge">@Override</code> annotations</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4821">CALCITE-4821</a>]
-Move utility test classes into <code class="highlighter-rouge">calcite-testkit</code> and unpublish <code class="highlighter-rouge">-test.jar</code>
+Move utility test classes into <code class="language-plaintext highlighter-rouge">calcite-testkit</code> and unpublish <code class="language-plaintext highlighter-rouge">-test.jar</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4823">CALCITE-4823</a>]
-Suppress warnings for <code class="highlighter-rouge">java.security.AccessController</code> deprecation</li>
-  <li>Skip <code class="highlighter-rouge">EqualsHashCode</code> verification in <code class="highlighter-rouge">ErrorProne</code>: it is already verified with
-<code class="highlighter-rouge">Checkstyle</code>
+Suppress warnings for <code class="language-plaintext highlighter-rouge">java.security.AccessController</code> deprecation</li>
+  <li>Skip <code class="language-plaintext highlighter-rouge">EqualsHashCode</code> verification in <code class="language-plaintext highlighter-rouge">ErrorProne</code>: it is already verified with
+<code class="language-plaintext highlighter-rouge">Checkstyle</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4790">CALCITE-4790</a>]
-Make Gradle pass the <code class="highlighter-rouge">user.timezone</code> property to the test JVM</li>
+Make Gradle pass the <code class="language-plaintext highlighter-rouge">user.timezone</code> property to the test JVM</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4793">CALCITE-4793</a>]
-<code class="highlighter-rouge">CassandraAdapterDataTypesTest.testCollectionsInnerValues</code> fails depending on
+<code class="language-plaintext highlighter-rouge">CassandraAdapterDataTypesTest.testCollectionsInnerValues</code> fails depending on
 the user timezone</li>
-  <li>Replace deprecated <code class="highlighter-rouge">com.google.common.io.Files.createTempDir()</code> with
-<code class="highlighter-rouge">java.nio.file.Files.createTempDirectory()</code> in ElasticSearch tests</li>
+  <li>Replace deprecated <code class="language-plaintext highlighter-rouge">com.google.common.io.Files.createTempDir()</code> with
+<code class="language-plaintext highlighter-rouge">java.nio.file.Files.createTempDirectory()</code> in ElasticSearch tests</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4789">CALCITE-4789</a>]
 Build is broken on Guava versions &lt; 21</li>
-  <li>Enable <code class="highlighter-rouge">JdbcTest#testBushy</code> and update expected plan</li>
+  <li>Enable <code class="language-plaintext highlighter-rouge">JdbcTest#testBushy</code> and update expected plan</li>
   <li>
-<code class="highlighter-rouge">RelOptRulesTest</code> improvements</li>
+<code class="language-plaintext highlighter-rouge">RelOptRulesTest</code> improvements</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4312">CALCITE-4312</a>]
-Improve content of <code class="highlighter-rouge">prepareVote</code> draft email</li>
+Improve content of <code class="language-plaintext highlighter-rouge">prepareVote</code> draft email</li>
 </ul>
 
 <h4 id="dependency-1-28-0">Dependency version upgrade</h4>
@@ -764,8 +764,8 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4656">CALCITE-4656</a>]
 Broken CI links on develop web page</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4796">CALCITE-4796</a>]
-Travis links in <code class="highlighter-rouge">README.md</code> should point to <code class="highlighter-rouge">app.travis-ci.com</code> instead of
-<code class="highlighter-rouge">travis-ci.org</code>
+Travis links in <code class="language-plaintext highlighter-rouge">README.md</code> should point to <code class="language-plaintext highlighter-rouge">app.travis-ci.com</code> instead of
+<code class="language-plaintext highlighter-rouge">travis-ci.org</code>
 </li>
   <li>Site: HTTP to HTTPS redirection is not working</li>
   <li>Site: Add zabetak’s pronouns</li>
@@ -774,7 +774,7 @@
   <li>Site is not published due to bad yaml file suffix</li>
   <li>Site: Add upcoming talk at ApacheCon’21 and info about tutorial at BOSS21</li>
   <li>Site: Sort table of aggregate functions</li>
-  <li>Site: Deploy using <code class="highlighter-rouge">.asf.yml</code>
+  <li>Site: Deploy using <code class="language-plaintext highlighter-rouge">.asf.yml</code>
 </li>
   <li>Site: Add Vladimir Ozerov as committer</li>
   <li>Site: Remove nowadays redundant minified javascript files</li>
@@ -811,7 +811,7 @@
 Always validate preconditions in Filter/Correlate/Snapshot expressions when
 assertions are enabled</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4427">CALCITE-4427</a>]
-Make <code class="highlighter-rouge">SUBSTRING</code> operator comply with ISO standard SQL</li>
+Make <code class="language-plaintext highlighter-rouge">SUBSTRING</code> operator comply with ISO standard SQL</li>
 </ul>
 
 <h4 id="new-features-1-27-0">New features</h4>
@@ -820,323 +820,323 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4564">CALCITE-4564</a>]
 Initialization context for non-static user-defined functions (UDFs)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4477">CALCITE-4477</a>]
-In <code class="highlighter-rouge">Interpreter</code>, support table-valued functions</li>
+In <code class="language-plaintext highlighter-rouge">Interpreter</code>, support table-valued functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4418">CALCITE-4418</a>]
 Allow Interpreter to read from JDBC input</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3574">CALCITE-3574</a>]
-Add <code class="highlighter-rouge">RLIKE</code> operator (similar to <code class="highlighter-rouge">LIKE</code>, but Hive- and Spark-specific)
+Add <code class="language-plaintext highlighter-rouge">RLIKE</code> operator (similar to <code class="language-plaintext highlighter-rouge">LIKE</code>, but Hive- and Spark-specific)
 (Shradha Ambekar)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4483">CALCITE-4483</a>]
-<code class="highlighter-rouge">WITHIN DISTINCT</code> clause for aggregate functions (experimental)</li>
+<code class="language-plaintext highlighter-rouge">WITHIN DISTINCT</code> clause for aggregate functions (experimental)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3221">CALCITE-3221</a>]
-Add <code class="highlighter-rouge">MergeUnion</code> operator in <code class="highlighter-rouge">Enumerable</code> convention</li>
+Add <code class="language-plaintext highlighter-rouge">MergeUnion</code> operator in <code class="language-plaintext highlighter-rouge">Enumerable</code> convention</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4349">CALCITE-4349</a>]
-<code class="highlighter-rouge">GROUP_CONCAT</code> aggregate function (MySQL’s equivalent of <code class="highlighter-rouge">LISTAGG</code>)</li>
+<code class="language-plaintext highlighter-rouge">GROUP_CONCAT</code> aggregate function (MySQL’s equivalent of <code class="language-plaintext highlighter-rouge">LISTAGG</code>)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4443">CALCITE-4443</a>]
-Add <code class="highlighter-rouge">ILIKE</code> operator (as <code class="highlighter-rouge">LIKE</code>, but case-insensitive and PostgreSQL-specific)
+Add <code class="language-plaintext highlighter-rouge">ILIKE</code> operator (as <code class="language-plaintext highlighter-rouge">LIKE</code>, but case-insensitive and PostgreSQL-specific)
 (Ondřej Štumpf)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4456">CALCITE-4456</a>]
-Allows all value expressions in <code class="highlighter-rouge">ROW</code>
+Allows all value expressions in <code class="language-plaintext highlighter-rouge">ROW</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4433">CALCITE-4433</a>]
-Add <code class="highlighter-rouge">UNPIVOT</code> operator to SQL</li>
+Add <code class="language-plaintext highlighter-rouge">UNPIVOT</code> operator to SQL</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4408">CALCITE-4408</a>]
-Implement Oracle <code class="highlighter-rouge">SUBSTR</code> function (James Starr)</li>
+Implement Oracle <code class="language-plaintext highlighter-rouge">SUBSTR</code> function (James Starr)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4374">CALCITE-4374</a>]
 Support materialized view recognition when query distinct aggregate on target
-<code class="highlighter-rouge">GROUP BY</code> columns (xzh)</li>
+<code class="language-plaintext highlighter-rouge">GROUP BY</code> columns (xzh)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4369">CALCITE-4369</a>]
-Support <code class="highlighter-rouge">COUNTIF</code> aggregate function for BigQuery (Aryeh Hillman)</li>
+Support <code class="language-plaintext highlighter-rouge">COUNTIF</code> aggregate function for BigQuery (Aryeh Hillman)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4354">CALCITE-4354</a>]
-Allow <code class="highlighter-rouge">ITEM</code> operator on <code class="highlighter-rouge">ROW/STRUCT</code> data types (Alessandro Solimando)</li>
+Allow <code class="language-plaintext highlighter-rouge">ITEM</code> operator on <code class="language-plaintext highlighter-rouge">ROW/STRUCT</code> data types (Alessandro Solimando)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4335">CALCITE-4335</a>]
-<code class="highlighter-rouge">ARRAY_AGG</code>, <code class="highlighter-rouge">ARRAY_CONCAT_AGG</code>, <code class="highlighter-rouge">STRING_AGG</code> aggregate functions for BigQuery</li>
+<code class="language-plaintext highlighter-rouge">ARRAY_AGG</code>, <code class="language-plaintext highlighter-rouge">ARRAY_CONCAT_AGG</code>, <code class="language-plaintext highlighter-rouge">STRING_AGG</code> aggregate functions for BigQuery</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2935">CALCITE-2935</a>]
-Support <code class="highlighter-rouge">BOOL_AND</code>, <code class="highlighter-rouge">BOOL_OR</code>, <code class="highlighter-rouge">LOGICAL_AND</code>, <code class="highlighter-rouge">LOGICAL_OR</code> aggregate functions
+Support <code class="language-plaintext highlighter-rouge">BOOL_AND</code>, <code class="language-plaintext highlighter-rouge">BOOL_OR</code>, <code class="language-plaintext highlighter-rouge">LOGICAL_AND</code>, <code class="language-plaintext highlighter-rouge">LOGICAL_OR</code> aggregate functions
 (ShuMingLi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3731">CALCITE-3731</a>]
-Add <code class="highlighter-rouge">IF</code> function for BigQuery, Hive and Spark dialects (Vaibhav Jain)</li>
+Add <code class="language-plaintext highlighter-rouge">IF</code> function for BigQuery, Hive and Spark dialects (Vaibhav Jain)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4260">CALCITE-4260</a>]
-Support plan explain with <code class="highlighter-rouge">DOT</code> format (Liya Fan)</li>
+Support plan explain with <code class="language-plaintext highlighter-rouge">DOT</code> format (Liya Fan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4297">CALCITE-4297</a>]
 Allow BigQuery to parse and validate niladic functions (Mr. Swett)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4034">CALCITE-4034</a>]
-<code class="highlighter-rouge">InnoDB</code> adapter (neoremind)</li>
+<code class="language-plaintext highlighter-rouge">InnoDB</code> adapter (neoremind)</li>
 </ul>
 
 <h4 id="fixes-1-27-0">Bug fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4497">CALCITE-4497</a>]
-In <code class="highlighter-rouge">RelBuilder</code>, support windowed aggregate functions (OVER)</li>
+In <code class="language-plaintext highlighter-rouge">RelBuilder</code>, support windowed aggregate functions (OVER)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4620">CALCITE-4620</a>]
-Join on <code class="highlighter-rouge">CASE</code> causes <code class="highlighter-rouge">AssertionError</code> in <code class="highlighter-rouge">RelToSqlConverter</code>
+Join on <code class="language-plaintext highlighter-rouge">CASE</code> causes <code class="language-plaintext highlighter-rouge">AssertionError</code> in <code class="language-plaintext highlighter-rouge">RelToSqlConverter</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4446">CALCITE-4446</a>]
 Implement three-valued logic for SEARCH operator</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4621">CALCITE-4621</a>]
-<code class="highlighter-rouge">SemiJoinRule</code> throws <code class="highlighter-rouge">AssertionError</code> on <code class="highlighter-rouge">ANTI</code> join</li>
+<code class="language-plaintext highlighter-rouge">SemiJoinRule</code> throws <code class="language-plaintext highlighter-rouge">AssertionError</code> on <code class="language-plaintext highlighter-rouge">ANTI</code> join</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4610">CALCITE-4610</a>]
-Join on range causes <code class="highlighter-rouge">AssertionError</code> in <code class="highlighter-rouge">RelToSqlConverter</code>
+Join on range causes <code class="language-plaintext highlighter-rouge">AssertionError</code> in <code class="language-plaintext highlighter-rouge">RelToSqlConverter</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4609">CALCITE-4609</a>]
-<code class="highlighter-rouge">AggregateRemoveRule</code> throws while handling <code class="highlighter-rouge">AVG</code>
+<code class="language-plaintext highlighter-rouge">AggregateRemoveRule</code> throws while handling <code class="language-plaintext highlighter-rouge">AVG</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4603">CALCITE-4603</a>]
 Least restrictive type considers only the last element in collections of collections</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4548">CALCITE-4548</a>]
-<code class="highlighter-rouge">SqlToRelConverter#convertExpression</code> cannot convert <code class="highlighter-rouge">SqlNode</code> with sub query (jibiyr)</li>
+<code class="language-plaintext highlighter-rouge">SqlToRelConverter#convertExpression</code> cannot convert <code class="language-plaintext highlighter-rouge">SqlNode</code> with sub query (jibiyr)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2317">CALCITE-2317</a>]
-Support JDBC <code class="highlighter-rouge">DatabaseMetaData#getFunctions</code> (Malte Bellmann)</li>
+Support JDBC <code class="language-plaintext highlighter-rouge">DatabaseMetaData#getFunctions</code> (Malte Bellmann)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4594">CALCITE-4594</a>]
-Interpreter returns wrong result when <code class="highlighter-rouge">VALUES</code> has zero fields</li>
+Interpreter returns wrong result when <code class="language-plaintext highlighter-rouge">VALUES</code> has zero fields</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4510">CALCITE-4510</a>]
-<code class="highlighter-rouge">RexLiteral</code> can produce wrong digest for some user defined types</li>
+<code class="language-plaintext highlighter-rouge">RexLiteral</code> can produce wrong digest for some user defined types</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4560">CALCITE-4560</a>]
-Wrong plan when decorrelating <code class="highlighter-rouge">EXISTS</code> subquery with <code class="highlighter-rouge">COALESCE</code> in the predicate</li>
+Wrong plan when decorrelating <code class="language-plaintext highlighter-rouge">EXISTS</code> subquery with <code class="language-plaintext highlighter-rouge">COALESCE</code> in the predicate</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4574">CALCITE-4574</a>]
-Wrong/Invalid plans when using <code class="highlighter-rouge">RelBuilder#join</code> with correlations</li>
+Wrong/Invalid plans when using <code class="language-plaintext highlighter-rouge">RelBuilder#join</code> with correlations</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4591">CALCITE-4591</a>]
-<code class="highlighter-rouge">RelRunner</code> should throw SQLException if prepare fails</li>
+<code class="language-plaintext highlighter-rouge">RelRunner</code> should throw SQLException if prepare fails</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4585">CALCITE-4585</a>]
-Improve error message from <code class="highlighter-rouge">RelRunner</code> (NobiGo)</li>
+Improve error message from <code class="language-plaintext highlighter-rouge">RelRunner</code> (NobiGo)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4586">CALCITE-4586</a>]
-In piglet, allow creating a <code class="highlighter-rouge">PigRelBuilder</code> with custom <code class="highlighter-rouge">config.simplify()</code>
+In piglet, allow creating a <code class="language-plaintext highlighter-rouge">PigRelBuilder</code> with custom <code class="language-plaintext highlighter-rouge">config.simplify()</code>
 (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4583">CALCITE-4583</a>]
-Control simplification in <code class="highlighter-rouge">RelBuilder#filter</code> with <code class="highlighter-rouge">config.simplify()</code> (Jiatao
+Control simplification in <code class="language-plaintext highlighter-rouge">RelBuilder#filter</code> with <code class="language-plaintext highlighter-rouge">config.simplify()</code> (Jiatao
 Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4571">CALCITE-4571</a>]
-In piglet, a Pig Latin script with multiple <code class="highlighter-rouge">STORE</code> commands causes the merging
+In piglet, a Pig Latin script with multiple <code class="language-plaintext highlighter-rouge">STORE</code> commands causes the merging
 of multiple SQL statements (Mahesh Kumar Behera)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4569">CALCITE-4569</a>]
-In piglet, allow creating a <code class="highlighter-rouge">PigConverter</code> with custom properties (Mahesh Kumar
+In piglet, allow creating a <code class="language-plaintext highlighter-rouge">PigConverter</code> with custom properties (Mahesh Kumar
 Behera)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4572">CALCITE-4572</a>]
-Piglet fails if Pig Latin script contains <code class="highlighter-rouge">RANK</code> or <code class="highlighter-rouge">FILTER</code> operators (Mahesh
+Piglet fails if Pig Latin script contains <code class="language-plaintext highlighter-rouge">RANK</code> or <code class="language-plaintext highlighter-rouge">FILTER</code> operators (Mahesh
 Kumar Behera)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4579">CALCITE-4579</a>]
-Piglet throws <code class="highlighter-rouge">ClassCastException</code> if Pig Latin script contains <code class="highlighter-rouge">FLATTEN</code> or
-<code class="highlighter-rouge">STRSPLIT</code> operators (Mahesh Kumar Behera)</li>
+Piglet throws <code class="language-plaintext highlighter-rouge">ClassCastException</code> if Pig Latin script contains <code class="language-plaintext highlighter-rouge">FLATTEN</code> or
+<code class="language-plaintext highlighter-rouge">STRSPLIT</code> operators (Mahesh Kumar Behera)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4515">CALCITE-4515</a>]
 Do not generate the new join tree from commute/associate rules if there are
 “always TRUE” conditions (Vladimir Ozerov)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4535">CALCITE-4535</a>]
-<code class="highlighter-rouge">ServerDdlExecutor</code> cannot execute <code class="highlighter-rouge">DROP</code> commands with qualified object names
+<code class="language-plaintext highlighter-rouge">ServerDdlExecutor</code> cannot execute <code class="language-plaintext highlighter-rouge">DROP</code> commands with qualified object names
 (Vladimir Ozerov)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4511">CALCITE-4511</a>]
 Distinct row count and population size for constant columns should be 1</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4562">CALCITE-4562</a>]
 Improve simplification of “x IS TRUE” and “x LIKE ‘%’”</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4556">CALCITE-4556</a>]
-<code class="highlighter-rouge">CalciteMetaImpl#createEmptyResultSet</code> should not pass class to
-<code class="highlighter-rouge">CursorFactory#deduce</code> (Alessandro Solimando)</li>
+<code class="language-plaintext highlighter-rouge">CalciteMetaImpl#createEmptyResultSet</code> should not pass class to
+<code class="language-plaintext highlighter-rouge">CursorFactory#deduce</code> (Alessandro Solimando)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4522">CALCITE-4522</a>]
-CPU cost of <code class="highlighter-rouge">Sort</code> should be lower if sort keys are empty (huangqixiang)</li>
+CPU cost of <code class="language-plaintext highlighter-rouge">Sort</code> should be lower if sort keys are empty (huangqixiang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4552">CALCITE-4552</a>]
-<code class="highlighter-rouge">Interpreter</code> does not close resources held by its nodes on close</li>
+<code class="language-plaintext highlighter-rouge">Interpreter</code> does not close resources held by its nodes on close</li>
   <li>Add method RelJsonReader.readType</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4524">CALCITE-4524</a>]
-Make some fields non-nullable (<code class="highlighter-rouge">SqlSelect.selectList</code>,
-<code class="highlighter-rouge">DataContext.getTypeFactory</code>)</li>
+Make some fields non-nullable (<code class="language-plaintext highlighter-rouge">SqlSelect.selectList</code>,
+<code class="language-plaintext highlighter-rouge">DataContext.getTypeFactory</code>)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4533">CALCITE-4533</a>]
-Incorrect semantics of <code class="highlighter-rouge">REPLACE</code> and <code class="highlighter-rouge">IF NOT EXISTS</code> keywords in
-<code class="highlighter-rouge">CREATE TABLE/SCHEMA</code> commands (Vladimir Ozerov)</li>
+Incorrect semantics of <code class="language-plaintext highlighter-rouge">REPLACE</code> and <code class="language-plaintext highlighter-rouge">IF NOT EXISTS</code> keywords in
+<code class="language-plaintext highlighter-rouge">CREATE TABLE/SCHEMA</code> commands (Vladimir Ozerov)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4342">CALCITE-4342</a>]
 More aggregate functions should be marked as splittable and ignore distinct
 optionality (Liya Fan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4526">CALCITE-4526</a>]
-<code class="highlighter-rouge">SqlSnapshot#unparse</code> loses the <code class="highlighter-rouge">AS</code> keyword when the table has alias (jibiyr)</li>
+<code class="language-plaintext highlighter-rouge">SqlSnapshot#unparse</code> loses the <code class="language-plaintext highlighter-rouge">AS</code> keyword when the table has alias (jibiyr)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4276">CALCITE-4276</a>]
-<code class="highlighter-rouge">MaterializedViewOnlyAggregateRule</code> performs invalid rewrite on query that
-contains join and time-rollup function (<code class="highlighter-rouge">FLOOR</code>) (Justin Swett)</li>
+<code class="language-plaintext highlighter-rouge">MaterializedViewOnlyAggregateRule</code> performs invalid rewrite on query that
+contains join and time-rollup function (<code class="language-plaintext highlighter-rouge">FLOOR</code>) (Justin Swett)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2000">CALCITE-2000</a>]
-<code class="highlighter-rouge">UNNEST</code> a collection that has a field with nested data generates an <code class="highlighter-rouge">Exception</code>
+<code class="language-plaintext highlighter-rouge">UNNEST</code> a collection that has a field with nested data generates an <code class="language-plaintext highlighter-rouge">Exception</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4514">CALCITE-4514</a>]
-When merging <code class="highlighter-rouge">RelSets</code>, fine-tune which set is merged into which, for efficiency
+When merging <code class="language-plaintext highlighter-rouge">RelSets</code>, fine-tune which set is merged into which, for efficiency
 (Botong Huang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4437">CALCITE-4437</a>]
-<code class="highlighter-rouge">Sort</code> should be decorrelated even though it has fetch or limit when it
-is not inside a <code class="highlighter-rouge">Correlate</code> (Thomas Rebele)</li>
+<code class="language-plaintext highlighter-rouge">Sort</code> should be decorrelated even though it has fetch or limit when it
+is not inside a <code class="language-plaintext highlighter-rouge">Correlate</code> (Thomas Rebele)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4265">CALCITE-4265</a>]
-Improve error message when <code class="highlighter-rouge">CAST</code> to unknown type (Louis Kuang)</li>
+Improve error message when <code class="language-plaintext highlighter-rouge">CAST</code> to unknown type (Louis Kuang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4494">CALCITE-4494</a>]
-Improve performance of checking <code class="highlighter-rouge">RelNode</code> presence in <code class="highlighter-rouge">RelSubset</code> (Igor Lozynskyi)</li>
-  <li>In <code class="highlighter-rouge">RelBuilder</code>, remove not-null arguments to <code class="highlighter-rouge">COUNT</code>
+Improve performance of checking <code class="language-plaintext highlighter-rouge">RelNode</code> presence in <code class="language-plaintext highlighter-rouge">RelSubset</code> (Igor Lozynskyi)</li>
+  <li>In <code class="language-plaintext highlighter-rouge">RelBuilder</code>, remove not-null arguments to <code class="language-plaintext highlighter-rouge">COUNT</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4199">CALCITE-4199</a>]
-<code class="highlighter-rouge">RelBuilder</code> throws <code class="highlighter-rouge">NullPointerException</code> while implementing <code class="highlighter-rouge">GROUP_ID()</code>
+<code class="language-plaintext highlighter-rouge">RelBuilder</code> throws <code class="language-plaintext highlighter-rouge">NullPointerException</code> while implementing <code class="language-plaintext highlighter-rouge">GROUP_ID()</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4491">CALCITE-4491</a>]
 Aggregation of window function produces invalid SQL for PostgreSQL (Dominik
 Labuda)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4426">CALCITE-4426</a>]
-Short-circuit evaluating when comparing two <code class="highlighter-rouge">RelTraitSets</code> (Jiatao Tao)</li>
+Short-circuit evaluating when comparing two <code class="language-plaintext highlighter-rouge">RelTraitSets</code> (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4482">CALCITE-4482</a>]
-Extract the default <code class="highlighter-rouge">SqlWriterConfig</code> in <code class="highlighter-rouge">SqlPrettyWriter</code>, reduce the overhead of
-<code class="highlighter-rouge">ImmutableBeans#create</code> (Jiatao Tao)</li>
+Extract the default <code class="language-plaintext highlighter-rouge">SqlWriterConfig</code> in <code class="language-plaintext highlighter-rouge">SqlPrettyWriter</code>, reduce the overhead of
+<code class="language-plaintext highlighter-rouge">ImmutableBeans#create</code> (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4461">CALCITE-4461</a>]
-Do not use <code class="highlighter-rouge">Logical</code> nodes inside <code class="highlighter-rouge">Enumerable</code> rules (Vladimir Ozerov)</li>
+Do not use <code class="language-plaintext highlighter-rouge">Logical</code> nodes inside <code class="language-plaintext highlighter-rouge">Enumerable</code> rules (Vladimir Ozerov)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4479">CALCITE-4479</a>]
-<code class="highlighter-rouge">vFloat in (1.0, 2.0)</code> throws <code class="highlighter-rouge">UnsupportedOperationException</code>
+<code class="language-plaintext highlighter-rouge">vFloat in (1.0, 2.0)</code> throws <code class="language-plaintext highlighter-rouge">UnsupportedOperationException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4474">CALCITE-4474</a>]
-<code class="highlighter-rouge">SqlSimpleParser</code> inner Tokenizer should not recognize the sql of TokenType.ID
+<code class="language-plaintext highlighter-rouge">SqlSimpleParser</code> inner Tokenizer should not recognize the sql of TokenType.ID
  or some keywords in some case (wangjie)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4431">CALCITE-4431</a>]
-Use <code class="highlighter-rouge">requireNonNull(var, "var")</code> instead of <code class="highlighter-rouge">requireNonNull(var)</code> for better error
+Use <code class="language-plaintext highlighter-rouge">requireNonNull(var, "var")</code> instead of <code class="language-plaintext highlighter-rouge">requireNonNull(var)</code> for better error
 messages</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4466">CALCITE-4466</a>]
-Do not invoke <code class="highlighter-rouge">RelTraitDef#convert</code> when the source trait satisfies the target
+Do not invoke <code class="language-plaintext highlighter-rouge">RelTraitDef#convert</code> when the source trait satisfies the target
 trait (Vladimir Ozerov)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4463">CALCITE-4463</a>]
-JDBC adapter for Spark generates incorrect <code class="highlighter-rouge">ORDER BY</code> syntax (Yanjing Wang)</li>
+JDBC adapter for Spark generates incorrect <code class="language-plaintext highlighter-rouge">ORDER BY</code> syntax (Yanjing Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4453">CALCITE-4453</a>]
-<code class="highlighter-rouge">RexExecutorImpl#compile</code> should use <code class="highlighter-rouge">RexBuilder</code>’s type factory if possible</li>
+<code class="language-plaintext highlighter-rouge">RexExecutorImpl#compile</code> should use <code class="language-plaintext highlighter-rouge">RexBuilder</code>’s type factory if possible</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4450">CALCITE-4450</a>]
-ElasticSearch query with <code class="highlighter-rouge">VARCHAR</code> literal projection fails with
-<code class="highlighter-rouge">JsonParseException</code>
+ElasticSearch query with <code class="language-plaintext highlighter-rouge">VARCHAR</code> literal projection fails with
+<code class="language-plaintext highlighter-rouge">JsonParseException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4449">CALCITE-4449</a>]
-Generate nicer SQL for Sarg <code class="highlighter-rouge">x IS NULL OR x NOT IN (1, 2)</code>
+Generate nicer SQL for Sarg <code class="language-plaintext highlighter-rouge">x IS NULL OR x NOT IN (1, 2)</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4434">CALCITE-4434</a>]
-Cannot implement <code class="highlighter-rouge">CASE row WHEN row</code>
+Cannot implement <code class="language-plaintext highlighter-rouge">CASE row WHEN row</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4425">CALCITE-4425</a>]
-Class <code class="highlighter-rouge">DefaultEdge</code> lacks a proper <code class="highlighter-rouge">toString</code> implementation (Liya Fan)</li>
-  <li>Change return type of <code class="highlighter-rouge">RelBuilder#literal</code> from <code class="highlighter-rouge">RexNode</code> to <code class="highlighter-rouge">RexLiteral</code>
+Class <code class="language-plaintext highlighter-rouge">DefaultEdge</code> lacks a proper <code class="language-plaintext highlighter-rouge">toString</code> implementation (Liya Fan)</li>
+  <li>Change return type of <code class="language-plaintext highlighter-rouge">RelBuilder#literal</code> from <code class="language-plaintext highlighter-rouge">RexNode</code> to <code class="language-plaintext highlighter-rouge">RexLiteral</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4435">CALCITE-4435</a>]
-Incorrect logic for validating <code class="highlighter-rouge">RexFieldAccess</code>
+Incorrect logic for validating <code class="language-plaintext highlighter-rouge">RexFieldAccess</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4436">CALCITE-4436</a>]
-Use the fields order from the struct type for <code class="highlighter-rouge">ITEM(STRUCT, INDEX)</code> access
+Use the fields order from the struct type for <code class="language-plaintext highlighter-rouge">ITEM(STRUCT, INDEX)</code> access
 (Alessandro Solimando)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4429">CALCITE-4429</a>]
-<code class="highlighter-rouge">RelOptUtil#createCastRel</code> should throw if source and target row types have
+<code class="language-plaintext highlighter-rouge">RelOptUtil#createCastRel</code> should throw if source and target row types have
 different number of fields</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4419">CALCITE-4419</a>]
-POSIX regex operators cannot be used within <code class="highlighter-rouge">RelBuilder</code>
+POSIX regex operators cannot be used within <code class="language-plaintext highlighter-rouge">RelBuilder</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4411">CALCITE-4411</a>]
-<code class="highlighter-rouge">RelNode</code> to SQL loses <code class="highlighter-rouge">DISTINCT</code> on window aggregation (Jiatao Tao)</li>
+<code class="language-plaintext highlighter-rouge">RelNode</code> to SQL loses <code class="language-plaintext highlighter-rouge">DISTINCT</code> on window aggregation (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4284">CALCITE-4284</a>]
-<code class="highlighter-rouge">ImmutableBeans</code>: make reference properties non-nullable by default</li>
+<code class="language-plaintext highlighter-rouge">ImmutableBeans</code>: make reference properties non-nullable by default</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4199">CALCITE-4199</a>]
 Add nullability annotations</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4199">CALCITE-4199</a>]
 Add package-level NonNull annotations to calcite packages</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4214">CALCITE-4214</a>]
-Make <code class="highlighter-rouge">RelDataType#getSqlTypeName</code> non-nullable</li>
+Make <code class="language-plaintext highlighter-rouge">RelDataType#getSqlTypeName</code> non-nullable</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4251">CALCITE-4251</a>]
-<code class="highlighter-rouge">NPE</code> in <code class="highlighter-rouge">LoptMultiJoin</code> when <code class="highlighter-rouge">mq#getColumnOrigin(left, i)</code> returns <code class="highlighter-rouge">null</code>
+<code class="language-plaintext highlighter-rouge">NPE</code> in <code class="language-plaintext highlighter-rouge">LoptMultiJoin</code> when <code class="language-plaintext highlighter-rouge">mq#getColumnOrigin(left, i)</code> returns <code class="language-plaintext highlighter-rouge">null</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4415">CALCITE-4415</a>]
-<code class="highlighter-rouge">SqlStdOperatorTable.NOT_LIKE</code> has a wrong implementor</li>
+<code class="language-plaintext highlighter-rouge">SqlStdOperatorTable.NOT_LIKE</code> has a wrong implementor</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4317">CALCITE-4317</a>]
-<code class="highlighter-rouge">RelFieldTrimmer</code> after trimming all the fields in an aggregate should not
+<code class="language-plaintext highlighter-rouge">RelFieldTrimmer</code> after trimming all the fields in an aggregate should not
 return a zero field Aggregate (Rafay)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4414">CALCITE-4414</a>]
-<code class="highlighter-rouge">RelMdSelectivity#getSelectivity</code> for <code class="highlighter-rouge">Calc</code> propagates predicate with wrong
+<code class="language-plaintext highlighter-rouge">RelMdSelectivity#getSelectivity</code> for <code class="language-plaintext highlighter-rouge">Calc</code> propagates predicate with wrong
 references</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4409">CALCITE-4409</a>]
-Improve exception when <code class="highlighter-rouge">RelBuilder</code> tries to create a field on a non-struct
+Improve exception when <code class="language-plaintext highlighter-rouge">RelBuilder</code> tries to create a field on a non-struct
 expression</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4393">CALCITE-4393</a>]
-<code class="highlighter-rouge">ExceptionInInitializerError</code> due to <code class="highlighter-rouge">NPE</code> in <code class="highlighter-rouge">SqlCallBinding</code> caused by circular
+<code class="language-plaintext highlighter-rouge">ExceptionInInitializerError</code> due to <code class="language-plaintext highlighter-rouge">NPE</code> in <code class="language-plaintext highlighter-rouge">SqlCallBinding</code> caused by circular
 dependency</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4251">CALCITE-4251</a>]
-Support <code class="highlighter-rouge">Calc</code> and <code class="highlighter-rouge">SetOp</code> operator in <code class="highlighter-rouge">RelMdAllPredicates</code> (Xu Zhaohui)</li>
+Support <code class="language-plaintext highlighter-rouge">Calc</code> and <code class="language-plaintext highlighter-rouge">SetOp</code> operator in <code class="language-plaintext highlighter-rouge">RelMdAllPredicates</code> (Xu Zhaohui)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4402">CALCITE-4402</a>]
-<code class="highlighter-rouge">SqlCall#equalsDeep</code> does not take into account the function quantifier (Huang
+<code class="language-plaintext highlighter-rouge">SqlCall#equalsDeep</code> does not take into account the function quantifier (Huang
 Qixiang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4251">CALCITE-4251</a>]
 Get the origin column, even if it is derived (xzh)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4406">CALCITE-4406</a>]
-<code class="highlighter-rouge">SqlTableRef</code> operator should create a <code class="highlighter-rouge">SqlTableRef</code> as the call</li>
+<code class="language-plaintext highlighter-rouge">SqlTableRef</code> operator should create a <code class="language-plaintext highlighter-rouge">SqlTableRef</code> as the call</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4277">CALCITE-4277</a>]
-When <code class="highlighter-rouge">RelNode</code> has been removed from its subset, skip the origin rule match (Jiatao
+When <code class="language-plaintext highlighter-rouge">RelNode</code> has been removed from its subset, skip the origin rule match (Jiatao
 Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4392">CALCITE-4392</a>]
 The operation of checking types equal ignoring null can be more efficient</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4383">CALCITE-4383</a>]
-In <code class="highlighter-rouge">RelBuilder</code>, optimize <code class="highlighter-rouge">VALUES ... UNION ALL ... VALUES</code> to a single <code class="highlighter-rouge">VALUES</code>
+In <code class="language-plaintext highlighter-rouge">RelBuilder</code>, optimize <code class="language-plaintext highlighter-rouge">VALUES ... UNION ALL ... VALUES</code> to a single <code class="language-plaintext highlighter-rouge">VALUES</code>
 with multiple rows</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4394">CALCITE-4394</a>]
 When generating code for a function call, take the inferred types of the
 operands into account</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4389">CALCITE-4389</a>]
-Calls to <code class="highlighter-rouge">ROW</code> and implicit row constructor sometimes print too many spaces</li>
+Calls to <code class="language-plaintext highlighter-rouge">ROW</code> and implicit row constructor sometimes print too many spaces</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4380">CALCITE-4380</a>]
-Make class <code class="highlighter-rouge">SqlNodeList</code> implement <code class="highlighter-rouge">List&lt;SqlNode&gt;</code>
+Make class <code class="language-plaintext highlighter-rouge">SqlNodeList</code> implement <code class="language-plaintext highlighter-rouge">List&lt;SqlNode&gt;</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4390">CALCITE-4390</a>]
-<code class="highlighter-rouge">SqlMatchRecognize</code> returns wrong operand list (Dawid Wysakowicz)</li>
+<code class="language-plaintext highlighter-rouge">SqlMatchRecognize</code> returns wrong operand list (Dawid Wysakowicz)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4364">CALCITE-4364</a>]
-<code class="highlighter-rouge">a IN (1, 2) AND a = 1</code> should be simplified to <code class="highlighter-rouge">a = 1</code>
+<code class="language-plaintext highlighter-rouge">a IN (1, 2) AND a = 1</code> should be simplified to <code class="language-plaintext highlighter-rouge">a = 1</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4273">CALCITE-4273</a>]
 Support get expression lineage for Calc</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4350">CALCITE-4350</a>]
 The reverse operation of collation direction is overly relaxed (Liya Fan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4345">CALCITE-4345</a>]
-<code class="highlighter-rouge">AggregateCaseToFilterRule</code> throws <code class="highlighter-rouge">NullPointerException</code> when converting <code class="highlighter-rouge">CASE</code>
-without <code class="highlighter-rouge">ELSE</code> (Jiatao Tao)</li>
+<code class="language-plaintext highlighter-rouge">AggregateCaseToFilterRule</code> throws <code class="language-plaintext highlighter-rouge">NullPointerException</code> when converting <code class="language-plaintext highlighter-rouge">CASE</code>
+without <code class="language-plaintext highlighter-rouge">ELSE</code> (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4233">CALCITE-4233</a>]
 In Elasticsearch adapter, support generating disjunction max (dis_max) queries
 (shlok7296)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4106">CALCITE-4106</a>]
-Consider <code class="highlighter-rouge">listCoerced</code> in <code class="highlighter-rouge">TypeCoercionImpl#inOperationCoercion</code> (Jiatao Tao)</li>
+Consider <code class="language-plaintext highlighter-rouge">listCoerced</code> in <code class="language-plaintext highlighter-rouge">TypeCoercionImpl#inOperationCoercion</code> (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4352">CALCITE-4352</a>]
-<code class="highlighter-rouge">RexSimplify</code> incorrectly drops <code class="highlighter-rouge">IS NULL</code> and <code class="highlighter-rouge">IS NOT NULL</code> from <code class="highlighter-rouge">SEARCH</code>
+<code class="language-plaintext highlighter-rouge">RexSimplify</code> incorrectly drops <code class="language-plaintext highlighter-rouge">IS NULL</code> and <code class="language-plaintext highlighter-rouge">IS NOT NULL</code> from <code class="language-plaintext highlighter-rouge">SEARCH</code>
 expressions</li>
-  <li>BigQuery dialect should allow <code class="highlighter-rouge">GROUP BY</code> ordinal</li>
+  <li>BigQuery dialect should allow <code class="language-plaintext highlighter-rouge">GROUP BY</code> ordinal</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4332">CALCITE-4332</a>]
 Improve error when planning rule produces a relational expression with wrong
 row type</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4225">CALCITE-4225</a>]
-Make <code class="highlighter-rouge">RelDecorrelator</code> pluggable</li>
+Make <code class="language-plaintext highlighter-rouge">RelDecorrelator</code> pluggable</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4305">CALCITE-4305</a>]
-Implicit column alias for single-column <code class="highlighter-rouge">VALUES</code>, and <code class="highlighter-rouge">UNNEST</code> of <code class="highlighter-rouge">ARRAY</code> and
-<code class="highlighter-rouge">MULTISET</code> constructors</li>
-  <li>Add an overloaded <code class="highlighter-rouge">SqlOperator#createCall</code>
+Implicit column alias for single-column <code class="language-plaintext highlighter-rouge">VALUES</code>, and <code class="language-plaintext highlighter-rouge">UNNEST</code> of <code class="language-plaintext highlighter-rouge">ARRAY</code> and
+<code class="language-plaintext highlighter-rouge">MULTISET</code> constructors</li>
+  <li>Add an overloaded <code class="language-plaintext highlighter-rouge">SqlOperator#createCall</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4321">CALCITE-4321</a>]
-JDBC adapter omits <code class="highlighter-rouge">FILTER (WHERE ...)</code> expressions when generating SQL
+JDBC adapter omits <code class="language-plaintext highlighter-rouge">FILTER (WHERE ...)</code> expressions when generating SQL
 (Jeremiah Rhoads Hall)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4325">CALCITE-4325</a>]
-<code class="highlighter-rouge">RexSimplify</code> incorrectly simplifies complex expressions that contain Sarg and
-<code class="highlighter-rouge">IS NULL</code>
+<code class="language-plaintext highlighter-rouge">RexSimplify</code> incorrectly simplifies complex expressions that contain Sarg and
+<code class="language-plaintext highlighter-rouge">IS NULL</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4240">CALCITE-4240</a>]
-<code class="highlighter-rouge">SqlTypeUtil#getMaxPrecisionScaleDecimal</code> returns a decimal with same
+<code class="language-plaintext highlighter-rouge">SqlTypeUtil#getMaxPrecisionScaleDecimal</code> returns a decimal with same
 precision and scale (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4333">CALCITE-4333</a>]
-<code class="highlighter-rouge">Sort</code> rel should be decorrelated even though it has fetch or limit when its
-parent is not a <code class="highlighter-rouge">Correlate</code>
+<code class="language-plaintext highlighter-rouge">Sort</code> rel should be decorrelated even though it has fetch or limit when its
+parent is not a <code class="language-plaintext highlighter-rouge">Correlate</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4302">CALCITE-4302</a>]
-Avoid cost re-propagation in <code class="highlighter-rouge">VolcanoPlanner</code> (Botong Huang)</li>
+Avoid cost re-propagation in <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> (Botong Huang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4324">CALCITE-4324</a>]
 Avoid sqlline classpath caching by default, add sqlline and sqlsh tests</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4315">CALCITE-4315</a>]
-<code class="highlighter-rouge">NPE</code> in <code class="highlighter-rouge">RelMdUtil#checkInputForCollationAndLimit</code>
+<code class="language-plaintext highlighter-rouge">NPE</code> in <code class="language-plaintext highlighter-rouge">RelMdUtil#checkInputForCollationAndLimit</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4316">CALCITE-4316</a>]
-<code class="highlighter-rouge">NPE</code> when division includes nulls</li>
+<code class="language-plaintext highlighter-rouge">NPE</code> when division includes nulls</li>
   <li>Add method RelBuilder.isDistinctFrom()</li>
   <li>Add class SqlBasicAggFunction</li>
-  <li>Add generic info to <code class="highlighter-rouge">Map</code> &amp; <code class="highlighter-rouge">Array</code> annotation</li>
+  <li>Add generic info to <code class="language-plaintext highlighter-rouge">Map</code> &amp; <code class="language-plaintext highlighter-rouge">Array</code> annotation</li>
   <li>Refactor: Add method SqlOperator.reverse()</li>
   <li>Refactor: Make HintStrategyTable immutable</li>
   <li>Refactor: move CassandraRules.reverseDirection into Direction</li>
-  <li>Remove the insecure, unused <code class="highlighter-rouge">TrustAllSslSocketFactory</code> class (intrigus-lgtm)</li>
+  <li>Remove the insecure, unused <code class="language-plaintext highlighter-rouge">TrustAllSslSocketFactory</code> class (intrigus-lgtm)</li>
   <li>Remove multiple blank lines after package statements</li>
   <li>Remove multiple blank lines after import statements</li>
-  <li>Cleanup code after errorprone upgrade: <code class="highlighter-rouge">IdentityHashMapUsage</code>, <code class="highlighter-rouge">JdkObsolete</code> -&gt;
-<code class="highlighter-rouge">JavaUtilDate</code>
+  <li>Cleanup code after errorprone upgrade: <code class="language-plaintext highlighter-rouge">IdentityHashMapUsage</code>, <code class="language-plaintext highlighter-rouge">JdkObsolete</code> -&gt;
+<code class="language-plaintext highlighter-rouge">JavaUtilDate</code>
 </li>
 </ul>
 
@@ -1149,22 +1149,22 @@
 Release process should not overwrite LICENSE file</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4575">CALCITE-4575</a>]
 Remove Gradle wrapper from source distribution</li>
-  <li>Remove <code class="highlighter-rouge">System.out.println</code> from <code class="highlighter-rouge">DiffRepository</code>
+  <li>Remove <code class="language-plaintext highlighter-rouge">System.out.println</code> from <code class="language-plaintext highlighter-rouge">DiffRepository</code>
 </li>
   <li>
-<code class="highlighter-rouge">DiffRepository</code> should write a test’s resource file only when it is modified</li>
+<code class="language-plaintext highlighter-rouge">DiffRepository</code> should write a test’s resource file only when it is modified</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4593">CALCITE-4593</a>]
-<code class="highlighter-rouge">DiffRepository</code> tests should fail if new XML resources are not in alphabetical
+<code class="language-plaintext highlighter-rouge">DiffRepository</code> tests should fail if new XML resources are not in alphabetical
 order</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4587">CALCITE-4587</a>]
-Set <code class="highlighter-rouge">spark.driver.bindAddress</code> explicitly to avoid <code class="highlighter-rouge">BindException</code> thrown by
+Set <code class="language-plaintext highlighter-rouge">spark.driver.bindAddress</code> explicitly to avoid <code class="language-plaintext highlighter-rouge">BindException</code> thrown by
 Spark (Jiatao Tao)</li>
   <li>Add Matcher#matches to ForbiddenApis to avoid its accidental use</li>
   <li>Apply com.autonomousapps.dependency-analysis plugin only when
 -PenableDependencyAnalysis is provided on a command line</li>
   <li>Fuzz testing for SEARCH operator, and refactor RexSimplify</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4344">CALCITE-4344</a>]
-Run <code class="highlighter-rouge">Redis</code> tests using Docker containers</li>
+Run <code class="language-plaintext highlighter-rouge">Redis</code> tests using Docker containers</li>
   <li>Make sure FmppTask re-executes in case default_config.fmpp changes</li>
   <li>Use max-parallel=3 to reduce the usage of the shared GitHub Actions executors</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4140">CALCITE-4140</a>]
@@ -1177,11 +1177,11 @@
   <li>Cancel stale workflows in GitHub Actions CI</li>
   <li>Add ErrorProne and the Checker Framework verifications to Travis CI</li>
   <li>Test case for [<a href="https://issues.apache.org/jira/browse/CALCITE-1382">CALCITE-1382</a>]
-<code class="highlighter-rouge">ClassCastException</code> in JDBC Adapter</li>
+<code class="language-plaintext highlighter-rouge">ClassCastException</code> in JDBC Adapter</li>
   <li>Require Java 1.8.0u202 or later for the build</li>
   <li>Make sure compileJava is re-executed in case of the minor javac version changes</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4422">CALCITE-4422</a>]
-Add <code class="highlighter-rouge">MethodCanBeStatic</code> check via ErrorProne</li>
+Add <code class="language-plaintext highlighter-rouge">MethodCanBeStatic</code> check via ErrorProne</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4199">CALCITE-4199</a>]
 Add CheckerFramework to GitHub Actions CI</li>
   <li>Add OpenJ9 1.8 CI job at GitHub Actions</li>
@@ -1190,12 +1190,12 @@
   <li>Remove files that change often from Travis cache, remove broken files
 automatically</li>
   <li>Make buildSrc jars reproducible for better caching</li>
-  <li>Refactor <code class="highlighter-rouge">SqlToRelTestBase</code> to allow custom <code class="highlighter-rouge">Context</code> in tests</li>
+  <li>Refactor <code class="language-plaintext highlighter-rouge">SqlToRelTestBase</code> to allow custom <code class="language-plaintext highlighter-rouge">Context</code> in tests</li>
   <li>Exclude root project from javadoc aggregate tasks</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4301">CALCITE-4301</a>]
-Unit test <code class="highlighter-rouge">testCollectionsInnerValues()</code> for Cassandra adapter is wrong
+Unit test <code class="language-plaintext highlighter-rouge">testCollectionsInnerValues()</code> for Cassandra adapter is wrong
 (Alessandro Solimando)</li>
-  <li>Refactor <code class="highlighter-rouge">ResultSetEnumerable</code> to avoid nested lambdas</li>
+  <li>Refactor <code class="language-plaintext highlighter-rouge">ResultSetEnumerable</code> to avoid nested lambdas</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4314">CALCITE-4314</a>]
 Enable ErrorProne checking and resolve identified problems</li>
 </ul>
@@ -1230,7 +1230,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4625">CALCITE-4625</a>]
 Update version in NOTICE, README, and howto.md</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4601">CALCITE-4601</a>]
-Invalid Javadoc URL in <code class="highlighter-rouge">SchemaFactory</code> of CSV adapter</li>
+Invalid Javadoc URL in <code class="language-plaintext highlighter-rouge">SchemaFactory</code> of CSV adapter</li>
   <li>Update release instructions</li>
 </ul>
 
@@ -1264,22 +1264,22 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4173">CALCITE-4173</a>]
-Add internal <code class="highlighter-rouge">SEARCH</code> operator and <code class="highlighter-rouge">Sarg</code> literal that represents a set of values or ranges</li>
+Add internal <code class="language-plaintext highlighter-rouge">SEARCH</code> operator and <code class="language-plaintext highlighter-rouge">Sarg</code> literal that represents a set of values or ranges</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3752">CALCITE-3752</a>]
-Add <code class="highlighter-rouge">PIVOT</code> operator to SQL</li>
+Add <code class="language-plaintext highlighter-rouge">PIVOT</code> operator to SQL</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1861">CALCITE-1861</a>]
 Spatial index, based on Hilbert space-filling curve</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3920">CALCITE-3920</a>]
-Improve <code class="highlighter-rouge">ORDER BY</code> computation in Enumerable convention by exploiting <code class="highlighter-rouge">LIMIT</code> (Thomas Rebele)</li>
+Improve <code class="language-plaintext highlighter-rouge">ORDER BY</code> computation in Enumerable convention by exploiting <code class="language-plaintext highlighter-rouge">LIMIT</code> (Thomas Rebele)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4015">CALCITE-4015</a>]
-Pass through parent collation request on subset or superset of join keys for <code class="highlighter-rouge">EnumerableMergeJoin</code>
+Pass through parent collation request on subset or superset of join keys for <code class="language-plaintext highlighter-rouge">EnumerableMergeJoin</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3782">CALCITE-3782</a>]
-Bitwise functions <code class="highlighter-rouge">BIT_AND</code>, <code class="highlighter-rouge">BIT_OR</code> and <code class="highlighter-rouge">BIT_XOR</code> support binary and varbinary type (Hailong Wang)</li>
+Bitwise functions <code class="language-plaintext highlighter-rouge">BIT_AND</code>, <code class="language-plaintext highlighter-rouge">BIT_OR</code> and <code class="language-plaintext highlighter-rouge">BIT_XOR</code> support binary and varbinary type (Hailong Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4197">CALCITE-4197</a>]
-Provide utility to visualize <code class="highlighter-rouge">RelNode</code> plans (Liya Fan)</li>
+Provide utility to visualize <code class="language-plaintext highlighter-rouge">RelNode</code> plans (Liya Fan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4113">CALCITE-4113</a>]
-Support <code class="highlighter-rouge">LEFT JOIN</code> in <code class="highlighter-rouge">EnumerableMergeJoin</code>
+Support <code class="language-plaintext highlighter-rouge">LEFT JOIN</code> in <code class="language-plaintext highlighter-rouge">EnumerableMergeJoin</code>
 </li>
 </ul>
 
@@ -1287,17 +1287,17 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2833">CALCITE-2833</a>]
-In JDBC adapter for Hive and BigQuery, implement <code class="highlighter-rouge">Values</code> by generating <code class="highlighter-rouge">SELECT</code> without <code class="highlighter-rouge">FROM</code> (Stuti Gupta)</li>
+In JDBC adapter for Hive and BigQuery, implement <code class="language-plaintext highlighter-rouge">Values</code> by generating <code class="language-plaintext highlighter-rouge">SELECT</code> without <code class="language-plaintext highlighter-rouge">FROM</code> (Stuti Gupta)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4160">CALCITE-4160</a>]
-Add configuration (<code class="highlighter-rouge">SqlToRelConverter.Config</code>) to retain <code class="highlighter-rouge">ORDER BY</code> in sub-query (Jiatao Tao)</li>
+Add configuration (<code class="language-plaintext highlighter-rouge">SqlToRelConverter.Config</code>) to retain <code class="language-plaintext highlighter-rouge">ORDER BY</code> in sub-query (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3399">CALCITE-3399</a>]
-Field-pruning for set operators (except <code class="highlighter-rouge">UNION ALL</code>) changes query semantics (Jin Xing)</li>
+Field-pruning for set operators (except <code class="language-plaintext highlighter-rouge">UNION ALL</code>) changes query semantics (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4182">CALCITE-4182</a>]
-Support materialized view recognition when query has constant filter for missing columns in <code class="highlighter-rouge">GROUP BY</code> list of materialized view (Wang Yanlin)</li>
+Support materialized view recognition when query has constant filter for missing columns in <code class="language-plaintext highlighter-rouge">GROUP BY</code> list of materialized view (Wang Yanlin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4171">CALCITE-4171</a>]
 Support named parameters for table window functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4167">CALCITE-4167</a>]
-Group by <code class="highlighter-rouge">COALESCE IN</code> throws <code class="highlighter-rouge">NullPointerException</code>
+Group by <code class="language-plaintext highlighter-rouge">COALESCE IN</code> throws <code class="language-plaintext highlighter-rouge">NullPointerException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4172">CALCITE-4172</a>]
 Expand columnar identifiers before resolving (James Starr)</li>
@@ -1306,79 +1306,79 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4241">CALCITE-4241</a>]
 Some improvements to metadata query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4170">CALCITE-4170</a>]
-Improve simplification of <code class="highlighter-rouge">&lt;&gt;</code> predicates</li>
+Improve simplification of <code class="language-plaintext highlighter-rouge">&lt;&gt;</code> predicates</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4159">CALCITE-4159</a>]
-Simplify always-true expressions (such as <code class="highlighter-rouge">LIKE '%'</code>) to <code class="highlighter-rouge">TRUE</code>
+Simplify always-true expressions (such as <code class="language-plaintext highlighter-rouge">LIKE '%'</code>) to <code class="language-plaintext highlighter-rouge">TRUE</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4192">CALCITE-4192</a>]
-<code class="highlighter-rouge">RelMdColumnOrigins</code> gets the wrong index of group by columns after <code class="highlighter-rouge">RelNode</code> was optimized by <code class="highlighter-rouge">AggregateProjectMergeRule</code> rule (FangZheng Li)</li>
+<code class="language-plaintext highlighter-rouge">RelMdColumnOrigins</code> gets the wrong index of group by columns after <code class="language-plaintext highlighter-rouge">RelNode</code> was optimized by <code class="language-plaintext highlighter-rouge">AggregateProjectMergeRule</code> rule (FangZheng Li)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4203">CALCITE-4203</a>]
-<code class="highlighter-rouge">RelMdUniqueKeys</code> should not return empty when meeting <code class="highlighter-rouge">Intersect</code> and <code class="highlighter-rouge">Minus</code> if its input has unique keys</li>
+<code class="language-plaintext highlighter-rouge">RelMdUniqueKeys</code> should not return empty when meeting <code class="language-plaintext highlighter-rouge">Intersect</code> and <code class="language-plaintext highlighter-rouge">Minus</code> if its input has unique keys</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4207">CALCITE-4207</a>]
-Validation fails for positional aggregate with <code class="highlighter-rouge">CURRENT_DATE</code> in <code class="highlighter-rouge">CASE</code> expression</li>
+Validation fails for positional aggregate with <code class="language-plaintext highlighter-rouge">CURRENT_DATE</code> in <code class="language-plaintext highlighter-rouge">CASE</code> expression</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4206">CALCITE-4206</a>]
-<code class="highlighter-rouge">RelDecorrelator</code> outputs wrong plan for correlate sort with fetch limit</li>
+<code class="language-plaintext highlighter-rouge">RelDecorrelator</code> outputs wrong plan for correlate sort with fetch limit</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4209">CALCITE-4209</a>]
-In <code class="highlighter-rouge">RelBuilder</code>, add an option to not simplify <code class="highlighter-rouge">LIMIT 0</code> to an empty relation</li>
+In <code class="language-plaintext highlighter-rouge">RelBuilder</code>, add an option to not simplify <code class="language-plaintext highlighter-rouge">LIMIT 0</code> to an empty relation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4208">CALCITE-4208</a>]
-Improve metadata row count for <code class="highlighter-rouge">Join</code>
+Improve metadata row count for <code class="language-plaintext highlighter-rouge">Join</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4210">CALCITE-4210</a>]
-Replaying subqueries in <code class="highlighter-rouge">ON</code> clauses (James Starr)</li>
+Replaying subqueries in <code class="language-plaintext highlighter-rouge">ON</code> clauses (James Starr)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4214">CALCITE-4214</a>]
-Make <code class="highlighter-rouge">RelDataType.getSqlTypeName</code> non-nullable</li>
+Make <code class="language-plaintext highlighter-rouge">RelDataType.getSqlTypeName</code> non-nullable</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4217">CALCITE-4217</a>]
-Unlock <code class="highlighter-rouge">RelCrossType#getFieldCount()</code>
+Unlock <code class="language-plaintext highlighter-rouge">RelCrossType#getFieldCount()</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4220">CALCITE-4220</a>]
-In <code class="highlighter-rouge">SqlToRelConverter</code>, use <code class="highlighter-rouge">RelBuilder</code> for creating <code class="highlighter-rouge">Aggregate</code>
+In <code class="language-plaintext highlighter-rouge">SqlToRelConverter</code>, use <code class="language-plaintext highlighter-rouge">RelBuilder</code> for creating <code class="language-plaintext highlighter-rouge">Aggregate</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4226">CALCITE-4226</a>]
-Add <code class="highlighter-rouge">Mappings#asListNonNull</code> as a null-safe alternative for <code class="highlighter-rouge">Mappings#asList</code>
+Add <code class="language-plaintext highlighter-rouge">Mappings#asListNonNull</code> as a null-safe alternative for <code class="language-plaintext highlighter-rouge">Mappings#asList</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4237">CALCITE-4237</a>]
-<code class="highlighter-rouge">AssertionError</code> in <code class="highlighter-rouge">SqlTypeFactoryImpl.leastRestrictive</code> when running slow tests</li>
+<code class="language-plaintext highlighter-rouge">AssertionError</code> in <code class="language-plaintext highlighter-rouge">SqlTypeFactoryImpl.leastRestrictive</code> when running slow tests</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4254">CALCITE-4254</a>]
-<code class="highlighter-rouge">ImmutableBeans</code> should make an immutable copy of property values of type <code class="highlighter-rouge">List</code>, <code class="highlighter-rouge">Set</code>, or <code class="highlighter-rouge">Map</code>
+<code class="language-plaintext highlighter-rouge">ImmutableBeans</code> should make an immutable copy of property values of type <code class="language-plaintext highlighter-rouge">List</code>, <code class="language-plaintext highlighter-rouge">Set</code>, or <code class="language-plaintext highlighter-rouge">Map</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4249">CALCITE-4249</a>]
-JDBC adapter cannot translate <code class="highlighter-rouge">NOT LIKE</code> in join condition</li>
+JDBC adapter cannot translate <code class="language-plaintext highlighter-rouge">NOT LIKE</code> in join condition</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4266">CALCITE-4266</a>]
-JDBC adapter throws <code class="highlighter-rouge">UnsupportedOperationException</code> if query contains range predicate on columns from sub-query</li>
+JDBC adapter throws <code class="language-plaintext highlighter-rouge">UnsupportedOperationException</code> if query contains range predicate on columns from sub-query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4176">CALCITE-4176</a>]
-Key descriptor can be optional in <code class="highlighter-rouge">SESSION</code> table function</li>
+Key descriptor can be optional in <code class="language-plaintext highlighter-rouge">SESSION</code> table function</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4279">CALCITE-4279</a>]
-<code class="highlighter-rouge">SEARCH</code> operator cannot be pushed into Druid</li>
+<code class="language-plaintext highlighter-rouge">SEARCH</code> operator cannot be pushed into Druid</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4280">CALCITE-4280</a>]
-Replace Guava’s <code class="highlighter-rouge">Lists.transform</code> and <code class="highlighter-rouge">Iterables.transform</code> with <code class="highlighter-rouge">Util.transform</code>
+Replace Guava’s <code class="language-plaintext highlighter-rouge">Lists.transform</code> and <code class="language-plaintext highlighter-rouge">Iterables.transform</code> with <code class="language-plaintext highlighter-rouge">Util.transform</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4282">CALCITE-4282</a>]
 Promote the window table functions window attribute data type with precision 3</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4287">CALCITE-4287</a>]
-<code class="highlighter-rouge">AggregateJoinRemoveRule</code> and <code class="highlighter-rouge">ProjectJoinRemoveRule</code> are not fired if the last column of the join’s left input is referenced (Liya Fan)</li>
+<code class="language-plaintext highlighter-rouge">AggregateJoinRemoveRule</code> and <code class="language-plaintext highlighter-rouge">ProjectJoinRemoveRule</code> are not fired if the last column of the join’s left input is referenced (Liya Fan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4238">CALCITE-4238</a>]
 Create a default parser configuration, to reduce redundant information in sub-parsers</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4289">CALCITE-4289</a>]
-Wrong signature for <code class="highlighter-rouge">SqlTumbleTableFunction</code>
+Wrong signature for <code class="language-plaintext highlighter-rouge">SqlTumbleTableFunction</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4295">CALCITE-4295</a>]
-Composite of two checkers with <code class="highlighter-rouge">SqlOperandCountRange</code> throws <code class="highlighter-rouge">IllegalArgumentException</code> (Zhenghua Gao)</li>
+Composite of two checkers with <code class="language-plaintext highlighter-rouge">SqlOperandCountRange</code> throws <code class="language-plaintext highlighter-rouge">IllegalArgumentException</code> (Zhenghua Gao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4190">CALCITE-4190</a>]
-<code class="highlighter-rouge">OR</code> simplification incorrectly loses term</li>
+<code class="language-plaintext highlighter-rouge">OR</code> simplification incorrectly loses term</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4195">CALCITE-4195</a>]
 Cast between types with different collators must be evaluated as not monotonic</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4200">CALCITE-4200</a>]
-<code class="highlighter-rouge">ExceptionInInitializerError</code> when initializing DruidRules</li>
+<code class="language-plaintext highlighter-rouge">ExceptionInInitializerError</code> when initializing DruidRules</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4201">CALCITE-4201</a>]
-<code class="highlighter-rouge">AssertionError</code> when registering Druid rules due to conflict in description</li>
+<code class="language-plaintext highlighter-rouge">AssertionError</code> when registering Druid rules due to conflict in description</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4221">CALCITE-4221</a>]
 Update stale integration tests in Druid adapter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4239">CALCITE-4239</a>]
-<code class="highlighter-rouge">RelMdUniqueKeys</code> returns wrong unique keys for <code class="highlighter-rouge">Aggregate</code> with grouping sets</li>
+<code class="language-plaintext highlighter-rouge">RelMdUniqueKeys</code> returns wrong unique keys for <code class="language-plaintext highlighter-rouge">Aggregate</code> with grouping sets</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4271">CALCITE-4271</a>]
-<code class="highlighter-rouge">RelBuilder.in</code> should allow duplicate values</li>
+<code class="language-plaintext highlighter-rouge">RelBuilder.in</code> should allow duplicate values</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4258">CALCITE-4258</a>]
-<code class="highlighter-rouge">SqlToRelConverter</code>: <code class="highlighter-rouge">SELECT 1 IS DISTINCT FROM NULL</code> fails with <code class="highlighter-rouge">AssertionError</code>
+<code class="language-plaintext highlighter-rouge">SqlToRelConverter</code>: <code class="language-plaintext highlighter-rouge">SELECT 1 IS DISTINCT FROM NULL</code> fails with <code class="language-plaintext highlighter-rouge">AssertionError</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4246">CALCITE-4246</a>]
 When parsing SQL in BigQuery dialect, allow unquoted table names to contain hyphens</li>
@@ -1387,46 +1387,46 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4247">CALCITE-4247</a>]
 When parsing SQL in BigQuery dialect, character literals may be enclosed in single- or double-quotes, and use backslashes as escapes</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4215">CALCITE-4215</a>]
-Ensure <code class="highlighter-rouge">org.apache.calcite.schema.Statistic</code> uses <code class="highlighter-rouge">null</code> vs <code class="highlighter-rouge">emptyList</code> appropriately</li>
+Ensure <code class="language-plaintext highlighter-rouge">org.apache.calcite.schema.Statistic</code> uses <code class="language-plaintext highlighter-rouge">null</code> vs <code class="language-plaintext highlighter-rouge">emptyList</code> appropriately</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4227">CALCITE-4227</a>]
-<code class="highlighter-rouge">ImmutableIntList#toArray(Integer[])</code> should support arguments larger than the collection itself</li>
+<code class="language-plaintext highlighter-rouge">ImmutableIntList#toArray(Integer[])</code> should support arguments larger than the collection itself</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4228">CALCITE-4228</a>]
-<code class="highlighter-rouge">FlatLists.Flat6List#append</code> should not throw NPE if there are null elements in the list</li>
+<code class="language-plaintext highlighter-rouge">FlatLists.Flat6List#append</code> should not throw NPE if there are null elements in the list</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4229">CALCITE-4229</a>]
-<code class="highlighter-rouge">Add Util.throwAsRuntime</code> and <code class="highlighter-rouge">Util.causeOrSelf</code> to simplify exception re-throwing</li>
+<code class="language-plaintext highlighter-rouge">Add Util.throwAsRuntime</code> and <code class="language-plaintext highlighter-rouge">Util.causeOrSelf</code> to simplify exception re-throwing</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4269">CALCITE-4269</a>]
-Improvement on enumerable implementation for <code class="highlighter-rouge">HOP</code> and <code class="highlighter-rouge">SESSION</code>
+Improvement on enumerable implementation for <code class="language-plaintext highlighter-rouge">HOP</code> and <code class="language-plaintext highlighter-rouge">SESSION</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4275">CALCITE-4275</a>]
-<code class="highlighter-rouge">EnumerableMergeJoin#create</code> does not set <code class="highlighter-rouge">EnumerableConvention</code> in the trait set</li>
+<code class="language-plaintext highlighter-rouge">EnumerableMergeJoin#create</code> does not set <code class="language-plaintext highlighter-rouge">EnumerableConvention</code> in the trait set</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4283">CALCITE-4283</a>]
-Do not force implement <code class="highlighter-rouge">SqlTableFunction</code> when creating table function scan</li>
+Do not force implement <code class="language-plaintext highlighter-rouge">SqlTableFunction</code> when creating table function scan</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4261">CALCITE-4261</a>]
-Join with three tables causes <code class="highlighter-rouge">IllegalArgumentException</code> in <code class="highlighter-rouge">EnumerableBatchNestedLoopJoinRule</code>
+Join with three tables causes <code class="language-plaintext highlighter-rouge">IllegalArgumentException</code> in <code class="language-plaintext highlighter-rouge">EnumerableBatchNestedLoopJoinRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4288">CALCITE-4288</a>]
-Create <code class="highlighter-rouge">SqlTypeUtil#deriveType(SqlCallBinding)</code> to make type computation simpler</li>
+Create <code class="language-plaintext highlighter-rouge">SqlTypeUtil#deriveType(SqlCallBinding)</code> to make type computation simpler</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4216">CALCITE-4216</a>]
-Make <code class="highlighter-rouge">org.apache.calcite.rel.type.RelDataType#getFamily</code> non-nullable</li>
+Make <code class="language-plaintext highlighter-rouge">org.apache.calcite.rel.type.RelDataType#getFamily</code> non-nullable</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4298">CALCITE-4298</a>]
 Avoid disabling hostname verification on HTTPS connections</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4300">CALCITE-4300</a>]
-<code class="highlighter-rouge">EnumerableBatchNestedLoopJoin</code> dynamic code generation can lead to variable name issues if two EBNLJ are nested</li>
+<code class="language-plaintext highlighter-rouge">EnumerableBatchNestedLoopJoin</code> dynamic code generation can lead to variable name issues if two EBNLJ are nested</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4224">CALCITE-4224</a>]
-Add a method for <code class="highlighter-rouge">RelNode</code> to output its relational expression string (Jiatao Tao)</li>
+Add a method for <code class="language-plaintext highlighter-rouge">RelNode</code> to output its relational expression string (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4248">CALCITE-4248</a>]
-Deprecate <code class="highlighter-rouge">SqlParser.ConfigBuilder</code>
+Deprecate <code class="language-plaintext highlighter-rouge">SqlParser.ConfigBuilder</code>
 </li>
-  <li>Remove <code class="highlighter-rouge">ArrayList</code> allocation from <code class="highlighter-rouge">Mappings#bijection</code>, and add helpful message in case NPE is thrown</li>
+  <li>Remove <code class="language-plaintext highlighter-rouge">ArrayList</code> allocation from <code class="language-plaintext highlighter-rouge">Mappings#bijection</code>, and add helpful message in case NPE is thrown</li>
   <li>Improve positions in SQL validator error messages</li>
-  <li>Simplify <code class="highlighter-rouge">Pair.left(Iterable)</code> and <code class="highlighter-rouge">Pair.right(Iterable)</code> implementation</li>
-  <li>Refactor <code class="highlighter-rouge">Pair</code> comparison to use <code class="highlighter-rouge">Comparator.nullsFirst</code> and <code class="highlighter-rouge">.naturalOrder</code>
+  <li>Simplify <code class="language-plaintext highlighter-rouge">Pair.left(Iterable)</code> and <code class="language-plaintext highlighter-rouge">Pair.right(Iterable)</code> implementation</li>
+  <li>Refactor <code class="language-plaintext highlighter-rouge">Pair</code> comparison to use <code class="language-plaintext highlighter-rouge">Comparator.nullsFirst</code> and <code class="language-plaintext highlighter-rouge">.naturalOrder</code>
 </li>
-  <li>Obsolete <code class="highlighter-rouge">SqlToRelConverter.ConfigBuilder</code>, and refactor <code class="highlighter-rouge">SqlToRelConverterTest</code>
+  <li>Obsolete <code class="language-plaintext highlighter-rouge">SqlToRelConverter.ConfigBuilder</code>, and refactor <code class="language-plaintext highlighter-rouge">SqlToRelConverterTest</code>
 </li>
-  <li>Refactor <code class="highlighter-rouge">SqlParserTest</code>
+  <li>Refactor <code class="language-plaintext highlighter-rouge">SqlParserTest</code>
 </li>
-  <li>Minor refactoring of <code class="highlighter-rouge">DruidAdapterIT</code> and <code class="highlighter-rouge">DruidAdapter2IT</code>
+  <li>Minor refactoring of <code class="language-plaintext highlighter-rouge">DruidAdapterIT</code> and <code class="language-plaintext highlighter-rouge">DruidAdapter2IT</code>
 </li>
 </ul>
 
@@ -1443,13 +1443,13 @@
 Configure Gradle Local Build Cache</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4185">CALCITE-4185</a>]
 Remove dependency between checkstyle and compilation tasks</li>
-  <li>Add <code class="highlighter-rouge">MaxMetaspaceSize=512m</code> to avoid metaspace issues when building Calcite</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">MaxMetaspaceSize=512m</code> to avoid metaspace issues when building Calcite</li>
   <li>Make project buildable from folders that include special characters</li>
-  <li>Use <code class="highlighter-rouge">merge=union</code> strategy to avoid false merge conflicts on <code class="highlighter-rouge">CalciteResource.properties</code>
+  <li>Use <code class="language-plaintext highlighter-rouge">merge=union</code> strategy to avoid false merge conflicts on <code class="language-plaintext highlighter-rouge">CalciteResource.properties</code>
 </li>
   <li>Add GC options to GitHub and Travis CI so they fail on low memory condition faster</li>
-  <li>Update Checkstyle from 8.27 to 8.28 to support <code class="highlighter-rouge">package-info</code> files with imports</li>
-  <li>Update <code class="highlighter-rouge">org.nosphere.apache.rat</code> plugin from 0.5.2 to 0.7.0, and print files with unapproved licenses to console</li>
+  <li>Update Checkstyle from 8.27 to 8.28 to support <code class="language-plaintext highlighter-rouge">package-info</code> files with imports</li>
+  <li>Update <code class="language-plaintext highlighter-rouge">org.nosphere.apache.rat</code> plugin from 0.5.2 to 0.7.0, and print files with unapproved licenses to console</li>
 </ul>
 
 <h4 id="site-1-26-0">Web site and documentation</h4>
@@ -1471,7 +1471,7 @@
 <ul>
   <li>
 <a href="https://issues.apache.org/jira/browse/CALCITE-4134">Interval Expressions</a>
-(e.g. <code class="highlighter-rouge">INTERVAL '1' HOUR</code>, <code class="highlighter-rouge">INTERVAL -'1:2' HOUR TO MINUTE</code>)</li>
+(e.g. <code class="language-plaintext highlighter-rouge">INTERVAL '1' HOUR</code>, <code class="language-plaintext highlighter-rouge">INTERVAL -'1:2' HOUR TO MINUTE</code>)</li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-4080">Character Literals as Aliases</a></li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-3923">Refactor How Planner Rules are Parameterized</a></li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-2160">Spacial Functions</a></li>
@@ -1486,11 +1486,11 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2569">CALCITE-2569</a>]
-UDFs that are table functions must implement <code class="highlighter-rouge">SqlTableFunction</code> and have <code class="highlighter-rouge">CURSOR</code> as their return type</li>
+UDFs that are table functions must implement <code class="language-plaintext highlighter-rouge">SqlTableFunction</code> and have <code class="language-plaintext highlighter-rouge">CURSOR</code> as their return type</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3923">CALCITE-3923</a>]
 Refactor how planner rules are parameterized</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4079">CALCITE-4079</a>]
-Dialect constants in <code class="highlighter-rouge">SqlDialect</code> can cause class initialization deadlock</li>
+Dialect constants in <code class="language-plaintext highlighter-rouge">SqlDialect</code> can cause class initialization deadlock</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4128">CALCITE-4128</a>]
 Remove dependency of File adapter on Example CSV adapter</li>
 </ul>
@@ -1499,15 +1499,15 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2160">CALCITE-2160</a>]
-Spatial: Add functions <code class="highlighter-rouge">ST_MakeGrid</code> and <code class="highlighter-rouge">ST_MakeGridPoints</code>
+Spatial: Add functions <code class="language-plaintext highlighter-rouge">ST_MakeGrid</code> and <code class="language-plaintext highlighter-rouge">ST_MakeGridPoints</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4134">CALCITE-4134</a>]
 Interval expressions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4154">CALCITE-4154</a>]
-Add a rule, <code class="highlighter-rouge">ProjectAggregateMergeRule</code>, to merge a <code class="highlighter-rouge">Project</code> onto an <code class="highlighter-rouge">Aggregate</code>
+Add a rule, <code class="language-plaintext highlighter-rouge">ProjectAggregateMergeRule</code>, to merge a <code class="language-plaintext highlighter-rouge">Project</code> onto an <code class="language-plaintext highlighter-rouge">Aggregate</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4080">CALCITE-4080</a>]
-Allow character literals as column aliases, if <code class="highlighter-rouge">SqlConformance.allowCharLiteralAlias()</code>
+Allow character literals as column aliases, if <code class="language-plaintext highlighter-rouge">SqlConformance.allowCharLiteralAlias()</code>
 </li>
 </ul>
 
@@ -1515,16 +1515,16 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4139">CALCITE-4139</a>]
-Prevent NPE in <code class="highlighter-rouge">ListTransientTable</code>
+Prevent NPE in <code class="language-plaintext highlighter-rouge">ListTransientTable</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2854">CALCITE-2854</a>]
-Codegen compile error when implementing unary minus function with data type <code class="highlighter-rouge">BigDecimal</code> (Qi Yu)</li>
+Codegen compile error when implementing unary minus function with data type <code class="language-plaintext highlighter-rouge">BigDecimal</code> (Qi Yu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3957">CALCITE-3957</a>]
-<code class="highlighter-rouge">AggregateMergeRule</code> should merge <code class="highlighter-rouge">SUM0</code> into <code class="highlighter-rouge">COUNT</code> even if <code class="highlighter-rouge">GROUP BY</code> is empty</li>
+<code class="language-plaintext highlighter-rouge">AggregateMergeRule</code> should merge <code class="language-plaintext highlighter-rouge">SUM0</code> into <code class="language-plaintext highlighter-rouge">COUNT</code> even if <code class="language-plaintext highlighter-rouge">GROUP BY</code> is empty</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4150">CALCITE-4150</a>]
-JDBC adapter throws <code class="highlighter-rouge">UnsupportedOperationException</code> when generating SQL for untyped <code class="highlighter-rouge">NULL</code> literal (Anton Haidai)</li>
+JDBC adapter throws <code class="language-plaintext highlighter-rouge">UnsupportedOperationException</code> when generating SQL for untyped <code class="language-plaintext highlighter-rouge">NULL</code> literal (Anton Haidai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4118">CALCITE-4118</a>]
-RexSimplify might remove <code class="highlighter-rouge">CAST</code> from RexNode incorrectly</li>
+RexSimplify might remove <code class="language-plaintext highlighter-rouge">CAST</code> from RexNode incorrectly</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4145">CALCITE-4145</a>]
 Exception when query from UDF field with structured type</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4081">CALCITE-4081</a>]
@@ -1543,18 +1543,18 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4137">CALCITE-4137</a>]
 Checkstyle should ensure that every class has a Javadoc comment</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4156">CALCITE-4156</a>]
-<code class="highlighter-rouge">ReflectiveRelMetadataProvider</code> constructor should throw an exception (instead of assertion) when called with an empty map</li>
+<code class="language-plaintext highlighter-rouge">ReflectiveRelMetadataProvider</code> constructor should throw an exception (instead of assertion) when called with an empty map</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4022">CALCITE-4022</a>]
-Support unparse special syntax for <code class="highlighter-rouge">INSERT</code> (Xu Zhaohui)</li>
+Support unparse special syntax for <code class="language-plaintext highlighter-rouge">INSERT</code> (Xu Zhaohui)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4115">CALCITE-4115</a>]
 Improve the prompt of using SQL keywords for sql parses (part2)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4129">CALCITE-4129</a>]
-Support deep equality check for <code class="highlighter-rouge">RelNode</code>
+Support deep equality check for <code class="language-plaintext highlighter-rouge">RelNode</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4111">CALCITE-4111</a>]
-Remove <code class="highlighter-rouge">VolcanoPlannerPhase</code> in Planner (Jiatao Tao)</li>
+Remove <code class="language-plaintext highlighter-rouge">VolcanoPlannerPhase</code> in Planner (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4114">CALCITE-4114</a>]
-Remove method <code class="highlighter-rouge">CalciteAssert.forceDecorrelate</code> (Jiatao Tao)</li>
+Remove method <code class="language-plaintext highlighter-rouge">CalciteAssert.forceDecorrelate</code> (Jiatao Tao)</li>
 </ul>
 
 <h2 id="v1-24-0">
@@ -1567,7 +1567,7 @@
 <ul>
   <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-3916">top-down rule applying and upper bound space pruning</a>
 </li>
-  <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-4000">OFFSET</a> parameter in <code class="highlighter-rouge">TUMBLE/HOP</code>
+  <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-4000">OFFSET</a> parameter in <code class="language-plaintext highlighter-rouge">TUMBLE/HOP</code>
 table functions</li>
   <li>A new <a href="https://issues.apache.org/jira/browse/CALCITE-3724">Presto dialect implementation</a>
 </li>
@@ -1577,12 +1577,12 @@
 </ul>
 
 <p>In this release, quite a few instance variables are deprecated and will be
-removed before 1.25, such as <code class="highlighter-rouge">EnumerableToBindableConverterRule.INSTANCE</code>,
-<code class="highlighter-rouge">CassandraToEnumerableConverterRule.INSTANCE</code> and so on. Besides, some methods
-in <code class="highlighter-rouge">RelNode</code> are changed from ‘to removed before 2.0’ to ‘to be removed before 1.25’,
-including <code class="highlighter-rouge">isDistinct()</code>, <code class="highlighter-rouge">isKey(ImmutableBitSet)</code>, <code class="highlighter-rouge">getQuery()</code>, <code class="highlighter-rouge">getRows()</code>,
-<code class="highlighter-rouge">getVariablesStopped()</code>, <code class="highlighter-rouge">computeSelfCost()</code>, <code class="highlighter-rouge">isValid(boolean)</code>, <code class="highlighter-rouge">getCollationList()</code>,
-<code class="highlighter-rouge">getChildExps()</code>. All deprecated APIs are strongly recommended to be replaced by their
+removed before 1.25, such as <code class="language-plaintext highlighter-rouge">EnumerableToBindableConverterRule.INSTANCE</code>,
+<code class="language-plaintext highlighter-rouge">CassandraToEnumerableConverterRule.INSTANCE</code> and so on. Besides, some methods
+in <code class="language-plaintext highlighter-rouge">RelNode</code> are changed from ‘to removed before 2.0’ to ‘to be removed before 1.25’,
+including <code class="language-plaintext highlighter-rouge">isDistinct()</code>, <code class="language-plaintext highlighter-rouge">isKey(ImmutableBitSet)</code>, <code class="language-plaintext highlighter-rouge">getQuery()</code>, <code class="language-plaintext highlighter-rouge">getRows()</code>,
+<code class="language-plaintext highlighter-rouge">getVariablesStopped()</code>, <code class="language-plaintext highlighter-rouge">computeSelfCost()</code>, <code class="language-plaintext highlighter-rouge">isValid(boolean)</code>, <code class="language-plaintext highlighter-rouge">getCollationList()</code>,
+<code class="language-plaintext highlighter-rouge">getChildExps()</code>. All deprecated APIs are strongly recommended to be replaced by their
 replacements as soon as possible(<a href="https://issues.apache.org/jira/browse/CALCITE-3896">CALCITE-3923</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3896">CALCITE-4079</a>).</p>
 
@@ -1595,14 +1595,14 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4032">CALCITE-4032</a>]
-Mark <code class="highlighter-rouge">CalcMergeRule</code> as <code class="highlighter-rouge">TransformationRule</code>. With this change, the <code class="highlighter-rouge">CalcMergeRule</code>
-won’t match <code class="highlighter-rouge">PhysicalNode</code>(including <code class="highlighter-rouge">EnumerableCalc</code>) in <code class="highlighter-rouge">VolcanoPlanner</code>
+Mark <code class="language-plaintext highlighter-rouge">CalcMergeRule</code> as <code class="language-plaintext highlighter-rouge">TransformationRule</code>. With this change, the <code class="language-plaintext highlighter-rouge">CalcMergeRule</code>
+won’t match <code class="language-plaintext highlighter-rouge">PhysicalNode</code>(including <code class="language-plaintext highlighter-rouge">EnumerableCalc</code>) in <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4003">CALCITE-4003</a>]
-Disallow cross convention matching and <code class="highlighter-rouge">PhysicalNode</code> generation in <code class="highlighter-rouge">TransformationRule</code>
+Disallow cross convention matching and <code class="language-plaintext highlighter-rouge">PhysicalNode</code> generation in <code class="language-plaintext highlighter-rouge">TransformationRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3786">CALCITE-3786</a>]
-Change <code class="highlighter-rouge">RelNode#recomputeDigest()</code> return type from <code class="highlighter-rouge">String</code> to <code class="highlighter-rouge">void</code>
+Change <code class="language-plaintext highlighter-rouge">RelNode#recomputeDigest()</code> return type from <code class="language-plaintext highlighter-rouge">String</code> to <code class="language-plaintext highlighter-rouge">void</code>
 </li>
 </ul>
 
@@ -1610,7 +1610,7 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4000">CALCITE-4000</a>]
-Support <code class="highlighter-rouge">OFFSET</code> parameter in <code class="highlighter-rouge">TUMBLE/HOP</code> table functions (Rui Wang)</li>
+Support <code class="language-plaintext highlighter-rouge">OFFSET</code> parameter in <code class="language-plaintext highlighter-rouge">TUMBLE/HOP</code> table functions (Rui Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3916">CALCITE-3916</a>]
 Support top-down rule applying and upper bound space pruning</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3941">CALCITE-3941</a>]
@@ -1618,161 +1618,161 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3724">CALCITE-3724</a>]
 Presto dialect implementation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3946">CALCITE-3946</a>]
-Add parser support for <code class="highlighter-rouge">MULTISET/SET</code> and <code class="highlighter-rouge">VOLATILE</code> modifiers in <code class="highlighter-rouge">CREATE TABLE</code> statements (Drew Schmitt)</li>
+Add parser support for <code class="language-plaintext highlighter-rouge">MULTISET/SET</code> and <code class="language-plaintext highlighter-rouge">VOLATILE</code> modifiers in <code class="language-plaintext highlighter-rouge">CREATE TABLE</code> statements (Drew Schmitt)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4089">CALCITE-4089</a>]
-In Babel, allow <code class="highlighter-rouge">CAST(integer AS DATE)</code> even though it is illegal in Calcite SQL</li>
+In Babel, allow <code class="language-plaintext highlighter-rouge">CAST(integer AS DATE)</code> even though it is illegal in Calcite SQL</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4087">CALCITE-4087</a>]
-<code class="highlighter-rouge">Hoist</code>, a utility to replace literals in a SQL string with placeholders</li>
+<code class="language-plaintext highlighter-rouge">Hoist</code>, a utility to replace literals in a SQL string with placeholders</li>
 </ul>
 
 <h4 id="fixes-1-24-0">Bug fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4073">CALCITE-4073</a>]
-Add a new component <code class="highlighter-rouge">RexNormalize</code> for more effect rex nodes normalization</li>
+Add a new component <code class="language-plaintext highlighter-rouge">RexNormalize</code> for more effect rex nodes normalization</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3224">CALCITE-3224</a>]
-New implementation of <code class="highlighter-rouge">RexNode-to-Expression</code> code generation</li>
+New implementation of <code class="language-plaintext highlighter-rouge">RexNode-to-Expression</code> code generation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4056">CALCITE-4056</a>]
-Remove <code class="highlighter-rouge">Digest</code> from <code class="highlighter-rouge">RelNode</code> and <code class="highlighter-rouge">RexCall</code>
+Remove <code class="language-plaintext highlighter-rouge">Digest</code> from <code class="language-plaintext highlighter-rouge">RelNode</code> and <code class="language-plaintext highlighter-rouge">RexCall</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4008">CALCITE-4008</a>]
-Implement Code generation for <code class="highlighter-rouge">EnumerableSortedAggregate</code> (Rui Wang)</li>
+Implement Code generation for <code class="language-plaintext highlighter-rouge">EnumerableSortedAggregate</code> (Rui Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3972">CALCITE-3972</a>]
-Allow <code class="highlighter-rouge">RelBuilder</code> to create <code class="highlighter-rouge">RelNode</code> with convention (Xiening Dai)</li>
+Allow <code class="language-plaintext highlighter-rouge">RelBuilder</code> to create <code class="language-plaintext highlighter-rouge">RelNode</code> with convention (Xiening Dai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4060">CALCITE-4060</a>]
-Supports implicit type coercion for <code class="highlighter-rouge">NOT IN</code>
+Supports implicit type coercion for <code class="language-plaintext highlighter-rouge">NOT IN</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4127">CALCITE-4127</a>]
-Remove final from <code class="highlighter-rouge">AbstractRelNode#getRelTypeName</code>
+Remove final from <code class="language-plaintext highlighter-rouge">AbstractRelNode#getRelTypeName</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4124">CALCITE-4124</a>]
-Stop invalidating metadata cache in <code class="highlighter-rouge">VolcanoRuleCall</code>
+Stop invalidating metadata cache in <code class="language-plaintext highlighter-rouge">VolcanoRuleCall</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4123">CALCITE-4123</a>]
-Make <code class="highlighter-rouge">EnumerableMergeJoin</code> constructor protected</li>
+Make <code class="language-plaintext highlighter-rouge">EnumerableMergeJoin</code> constructor protected</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4085">CALCITE-4085</a>]
-Improve return type nullability for <code class="highlighter-rouge">SqlDotOperator</code> &amp; <code class="highlighter-rouge">SqlItemOperator</code> (Dawid Wysakowicz)</li>
+Improve return type nullability for <code class="language-plaintext highlighter-rouge">SqlDotOperator</code> &amp; <code class="language-plaintext highlighter-rouge">SqlItemOperator</code> (Dawid Wysakowicz)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3936">CALCITE-3936</a>]
-JDBC adapter, when generating SQL, changes target of ambiguous <code class="highlighter-rouge">HAVING</code> clause with a <code class="highlighter-rouge">Project</code> on <code class="highlighter-rouge">Filter</code> on <code class="highlighter-rouge">Aggregate</code>
+JDBC adapter, when generating SQL, changes target of ambiguous <code class="language-plaintext highlighter-rouge">HAVING</code> clause with a <code class="language-plaintext highlighter-rouge">Project</code> on <code class="language-plaintext highlighter-rouge">Filter</code> on <code class="language-plaintext highlighter-rouge">Aggregate</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4112">CALCITE-4112</a>]
-Refine the usage of <code class="highlighter-rouge">CalciteConnectionConfig</code> in <code class="highlighter-rouge">DecorrelateProgram</code> &amp; some minor code refactoring (Jiatao Tao)</li>
+Refine the usage of <code class="language-plaintext highlighter-rouge">CalciteConnectionConfig</code> in <code class="language-plaintext highlighter-rouge">DecorrelateProgram</code> &amp; some minor code refactoring (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4116">CALCITE-4116</a>]
-Remove unused code for tracking <code class="highlighter-rouge">RexNode</code>’s nullable state in codegen</li>
+Remove unused code for tracking <code class="language-plaintext highlighter-rouge">RexNode</code>’s nullable state in codegen</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4105">CALCITE-4105</a>]
-Replace <code class="highlighter-rouge">Pair</code> with <code class="highlighter-rouge">Flat2List</code> in <code class="highlighter-rouge">RelDigestWriter</code>
+Replace <code class="language-plaintext highlighter-rouge">Pair</code> with <code class="language-plaintext highlighter-rouge">Flat2List</code> in <code class="language-plaintext highlighter-rouge">RelDigestWriter</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4092">CALCITE-4092</a>]
-<code class="highlighter-rouge">NPE</code> using <code class="highlighter-rouge">WITH</code> clause without a corresponding <code class="highlighter-rouge">SELECT FROM</code> (James Kim)</li>
+<code class="language-plaintext highlighter-rouge">NPE</code> using <code class="language-plaintext highlighter-rouge">WITH</code> clause without a corresponding <code class="language-plaintext highlighter-rouge">SELECT FROM</code> (James Kim)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4115">CALCITE-4115</a>]
 Improve the prompt of using SQL keywords for sql parser</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4094">CALCITE-4094</a>]
-Allow <code class="highlighter-rouge">SqlOperator</code> of <code class="highlighter-rouge">SqlKind#OTHER_FUNCTION</code> to define a <code class="highlighter-rouge">Strong.Policy</code>
+Allow <code class="language-plaintext highlighter-rouge">SqlOperator</code> of <code class="language-plaintext highlighter-rouge">SqlKind#OTHER_FUNCTION</code> to define a <code class="language-plaintext highlighter-rouge">Strong.Policy</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3834">CALCITE-3834</a>]
-Support <code class="highlighter-rouge">AntiJoin</code> in <code class="highlighter-rouge">EnumerableMergeJoin</code>
+Support <code class="language-plaintext highlighter-rouge">AntiJoin</code> in <code class="language-plaintext highlighter-rouge">EnumerableMergeJoin</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4098">CALCITE-4098</a>]
-Remove redundant code in <code class="highlighter-rouge">RelJson.toJson(RelDistribution)</code> (Jiatao Tao)</li>
+Remove redundant code in <code class="language-plaintext highlighter-rouge">RelJson.toJson(RelDistribution)</code> (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4066">CALCITE-4066</a>]
-<code class="highlighter-rouge">SqlTypeUtil#convertTypeToSpec</code> cover <code class="highlighter-rouge">Array/Multiset/Row</code> types (Jiatao Tao)</li>
+<code class="language-plaintext highlighter-rouge">SqlTypeUtil#convertTypeToSpec</code> cover <code class="language-plaintext highlighter-rouge">Array/Multiset/Row</code> types (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4059">CALCITE-4059</a>]
-<code class="highlighter-rouge">SqlTypeUtil#equalSansNullability</code> consider <code class="highlighter-rouge">Array/Map</code> type (Jiatao Tao)</li>
+<code class="language-plaintext highlighter-rouge">SqlTypeUtil#equalSansNullability</code> consider <code class="language-plaintext highlighter-rouge">Array/Map</code> type (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4026">CALCITE-4026</a>]
-<code class="highlighter-rouge">CassandraFilter</code> has generated wrong condition expression for filter with non string literal (Wenhui Tang)</li>
+<code class="language-plaintext highlighter-rouge">CassandraFilter</code> has generated wrong condition expression for filter with non string literal (Wenhui Tang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4077">CALCITE-4077</a>]
 Exception when joined with built-in table functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4097">CALCITE-4097</a>]
 Avoid requesting unnecessary trait request when deriving traits</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4033">CALCITE-4033</a>]
-Does not produce parenthesized table expressions for <code class="highlighter-rouge">UNNEST</code> (Rui Wang)</li>
+Does not produce parenthesized table expressions for <code class="language-plaintext highlighter-rouge">UNNEST</code> (Rui Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4049">CALCITE-4049</a>]
 Improve the implementation of the shortest-path algorithm</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3929">CALCITE-3929</a>]
-When deserialize UDAF aggregate call from json string, throws <code class="highlighter-rouge">NPE</code> (Xu Zhaohui)</li>
+When deserialize UDAF aggregate call from json string, throws <code class="language-plaintext highlighter-rouge">NPE</code> (Xu Zhaohui)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4062">CALCITE-4062</a>]
 Support deserialize UDF array type from json string (Xu Zhaohui)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4090">CALCITE-4090</a>]
-When generating SQL for DB2, a complex <code class="highlighter-rouge">SELECT</code> above a sub-query generates a bad table alias (Steven Talbot)</li>
+When generating SQL for DB2, a complex <code class="language-plaintext highlighter-rouge">SELECT</code> above a sub-query generates a bad table alias (Steven Talbot)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4083">CALCITE-4083</a>]
-<code class="highlighter-rouge">RelTraitSet</code> failed to canonize traits</li>
+<code class="language-plaintext highlighter-rouge">RelTraitSet</code> failed to canonize traits</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4019">CALCITE-4019</a>]
-Visit <code class="highlighter-rouge">SqlInsert</code> with <code class="highlighter-rouge">SqlShuttle</code> cause <code class="highlighter-rouge">NullPointerException</code> (Xu ZhaoHui)</li>
+Visit <code class="language-plaintext highlighter-rouge">SqlInsert</code> with <code class="language-plaintext highlighter-rouge">SqlShuttle</code> cause <code class="language-plaintext highlighter-rouge">NullPointerException</code> (Xu ZhaoHui)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4063">CALCITE-4063</a>]
-Unnest an array of single-item structs causes <code class="highlighter-rouge">ClassCastException</code>
+Unnest an array of single-item structs causes <code class="language-plaintext highlighter-rouge">ClassCastException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3907">CALCITE-3907</a>]
 Use username and password parameters on delegation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3951">CALCITE-3951</a>]
-Support different string comparison based on <code class="highlighter-rouge">SqlCollation</code>
+Support different string comparison based on <code class="language-plaintext highlighter-rouge">SqlCollation</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4020">CALCITE-4020</a>]
-Support <code class="highlighter-rouge">Calc</code> operator in <code class="highlighter-rouge">RelFieldTrimmer</code> (Xu Zhaohui)</li>
+Support <code class="language-plaintext highlighter-rouge">Calc</code> operator in <code class="language-plaintext highlighter-rouge">RelFieldTrimmer</code> (Xu Zhaohui)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4057">CALCITE-4057</a>]
-Support trait propagation for <code class="highlighter-rouge">EnumerableBatchNestedLoopJoin</code> (Rui Wang)</li>
+Support trait propagation for <code class="language-plaintext highlighter-rouge">EnumerableBatchNestedLoopJoin</code> (Rui Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4016">CALCITE-4016</a>]
-Support trait propagation for <code class="highlighter-rouge">EnumerableCalc</code>
+Support trait propagation for <code class="language-plaintext highlighter-rouge">EnumerableCalc</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4055">CALCITE-4055</a>]
-<code class="highlighter-rouge">RelFieldTrimmer</code> loses hints</li>
+<code class="language-plaintext highlighter-rouge">RelFieldTrimmer</code> loses hints</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3975">CALCITE-3975</a>]
-Add options to <code class="highlighter-rouge">ProjectFilterTransposeRule</code> to push down project and filter expressions whole, not just field references</li>
+Add options to <code class="language-plaintext highlighter-rouge">ProjectFilterTransposeRule</code> to push down project and filter expressions whole, not just field references</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4038">CALCITE-4038</a>]
-Refactor <code class="highlighter-rouge">RexVisitor</code>, <code class="highlighter-rouge">RexBiVisitor</code>, <code class="highlighter-rouge">RelOptUtil.InputFinder</code>
+Refactor <code class="language-plaintext highlighter-rouge">RexVisitor</code>, <code class="language-plaintext highlighter-rouge">RexBiVisitor</code>, <code class="language-plaintext highlighter-rouge">RelOptUtil.InputFinder</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4053">CALCITE-4053</a>]
-<code class="highlighter-rouge">RexSimplify</code> should not pass exprs containing non-const subExprs to <code class="highlighter-rouge">RexExecutor</code> (Shuo Cheng)</li>
+<code class="language-plaintext highlighter-rouge">RexSimplify</code> should not pass exprs containing non-const subExprs to <code class="language-plaintext highlighter-rouge">RexExecutor</code> (Shuo Cheng)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4018">CALCITE-4018</a>]
-Support trait propagation for <code class="highlighter-rouge">EnumerableValues</code>
+Support trait propagation for <code class="language-plaintext highlighter-rouge">EnumerableValues</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4049">CALCITE-4049</a>]
 Reduce the time complexity of getting shortest distances</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4041">CALCITE-4041</a>]
-Support trait propagation for <code class="highlighter-rouge">EnumerableCorrelate</code>
+Support trait propagation for <code class="language-plaintext highlighter-rouge">EnumerableCorrelate</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4007">CALCITE-4007</a>]
-<code class="highlighter-rouge">MergeJoin</code> collation check should not be limited to join key’s order</li>
+<code class="language-plaintext highlighter-rouge">MergeJoin</code> collation check should not be limited to join key’s order</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4012">CALCITE-4012</a>]
-Support trait propagation for <code class="highlighter-rouge">EnumerableHashJoin</code> and <code class="highlighter-rouge">EnumerableNestedLoopJoin</code> (Rui Wang)</li>
+Support trait propagation for <code class="language-plaintext highlighter-rouge">EnumerableHashJoin</code> and <code class="language-plaintext highlighter-rouge">EnumerableNestedLoopJoin</code> (Rui Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4040">CALCITE-4040</a>]
 An aggregate function that does not support roll up throws an exception when it is rolled up (Xu Zhaohui)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4030">CALCITE-4030</a>]
-Reinstate assertion check for trait derivation in <code class="highlighter-rouge">OptimizeTask</code>
+Reinstate assertion check for trait derivation in <code class="language-plaintext highlighter-rouge">OptimizeTask</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4042">CALCITE-4042</a>]
-<code class="highlighter-rouge">JoinCommuteRule</code> must not match <code class="highlighter-rouge">SEMI</code> / <code class="highlighter-rouge">ANTI</code> join</li>
+<code class="language-plaintext highlighter-rouge">JoinCommuteRule</code> must not match <code class="language-plaintext highlighter-rouge">SEMI</code> / <code class="language-plaintext highlighter-rouge">ANTI</code> join</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4043">CALCITE-4043</a>]
-Improve <code class="highlighter-rouge">IllegalArgumentException</code> message in <code class="highlighter-rouge">RelBuilder#field</code>
+Improve <code class="language-plaintext highlighter-rouge">IllegalArgumentException</code> message in <code class="language-plaintext highlighter-rouge">RelBuilder#field</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3991">CALCITE-3991</a>]
-The required should always be provided in <code class="highlighter-rouge">RelSet.getOrCreateSubset()</code> (Botong Huang)</li>
+The required should always be provided in <code class="language-plaintext highlighter-rouge">RelSet.getOrCreateSubset()</code> (Botong Huang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3981">CALCITE-3981</a>]
-<code class="highlighter-rouge">Volcano.register</code> should not return stale subset (Botong Huang)</li>
+<code class="language-plaintext highlighter-rouge">Volcano.register</code> should not return stale subset (Botong Huang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2997">CALCITE-2997</a>]
-In <code class="highlighter-rouge">SqlToRelConverter</code> and <code class="highlighter-rouge">RelBuilder</code>, add option to avoid pushing down join condition</li>
+In <code class="language-plaintext highlighter-rouge">SqlToRelConverter</code> and <code class="language-plaintext highlighter-rouge">RelBuilder</code>, add option to avoid pushing down join condition</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4023">CALCITE-4023</a>]
-Deprecate <code class="highlighter-rouge">ProjectSortTransposeRule</code>
+Deprecate <code class="language-plaintext highlighter-rouge">ProjectSortTransposeRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4031">CALCITE-4031</a>]
 Remove code to be removed before 1.24</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3993">CALCITE-3993</a>]
-Add utility methods to <code class="highlighter-rouge">RelTrait</code>, <code class="highlighter-rouge">RelTraitSet</code> and <code class="highlighter-rouge">RelCollation</code>
+Add utility methods to <code class="language-plaintext highlighter-rouge">RelTrait</code>, <code class="language-plaintext highlighter-rouge">RelTraitSet</code> and <code class="language-plaintext highlighter-rouge">RelCollation</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4011">CALCITE-4011</a>]
-Support trait propagation for <code class="highlighter-rouge">EnumerableProject</code> and <code class="highlighter-rouge">EnumerableFilter</code> (Rui Wang)</li>
+Support trait propagation for <code class="language-plaintext highlighter-rouge">EnumerableProject</code> and <code class="language-plaintext highlighter-rouge">EnumerableFilter</code> (Rui Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4019">CALCITE-4019</a>]
-Visit <code class="highlighter-rouge">SqlInsert</code> with <code class="highlighter-rouge">SqlShuttle</code> cause <code class="highlighter-rouge">NullPointerException</code> (Xu ZhaoHui)</li>
+Visit <code class="language-plaintext highlighter-rouge">SqlInsert</code> with <code class="language-plaintext highlighter-rouge">SqlShuttle</code> cause <code class="language-plaintext highlighter-rouge">NullPointerException</code> (Xu ZhaoHui)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4004">CALCITE-4004</a>]
-Show <code class="highlighter-rouge">RelOptRuleOperand</code> description in debugger to facilitate debugging</li>
+Show <code class="language-plaintext highlighter-rouge">RelOptRuleOperand</code> description in debugger to facilitate debugging</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4009">CALCITE-4009</a>]
-Remove traitset remapping in <code class="highlighter-rouge">ProjectJoinTransposeRule</code>
+Remove traitset remapping in <code class="language-plaintext highlighter-rouge">ProjectJoinTransposeRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3999">CALCITE-3999</a>]
-Simplify <code class="highlighter-rouge">DialectPool</code> implementation using Guava cache</li>
+Simplify <code class="language-plaintext highlighter-rouge">DialectPool</code> implementation using Guava cache</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3910">CALCITE-3910</a>]
-Enhance <code class="highlighter-rouge">ProjectJoinTransposeRule</code> to support <code class="highlighter-rouge">SemiJoin</code> and <code class="highlighter-rouge">AntiJoin</code> (Liya Fan)</li>
+Enhance <code class="language-plaintext highlighter-rouge">ProjectJoinTransposeRule</code> to support <code class="language-plaintext highlighter-rouge">SemiJoin</code> and <code class="language-plaintext highlighter-rouge">AntiJoin</code> (Liya Fan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3988">CALCITE-3988</a>]
-Intersect in <code class="highlighter-rouge">RelMdRowCount</code> doesn’t take into account <code class="highlighter-rouge">intersect all</code> (Xu Zhaohui)</li>
+Intersect in <code class="language-plaintext highlighter-rouge">RelMdRowCount</code> doesn’t take into account <code class="language-plaintext highlighter-rouge">intersect all</code> (Xu Zhaohui)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3985">CALCITE-3985</a>]
 Simplify grouped window function in parser (Rui Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4086">CALCITE-4086</a>]
@@ -1785,7 +1785,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4075">CALCITE-4075</a>]
 Mock table ‘EMPNULLABLES’ should allow nulls in all non-pk columns</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4101">CALCITE-4101</a>]
-Calcite PR CI often failed due to <code class="highlighter-rouge">elasticsearch:test</code>, disable the related tests first (Jiatao Tao)</li>
+Calcite PR CI often failed due to <code class="language-plaintext highlighter-rouge">elasticsearch:test</code>, disable the related tests first (Jiatao Tao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4061">CALCITE-4061</a>]
 Build should fail if Calcite code uses deprecated APIs</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4104">CALCITE-4104</a>]
@@ -1798,7 +1798,7 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3950">CALCITE-3950</a>]
-Doc of <code class="highlighter-rouge">SqlGroupingFunction</code> contradicts its behavior</li>
+Doc of <code class="language-plaintext highlighter-rouge">SqlGroupingFunction</code> contradicts its behavior</li>
   <li>Site: Remove ‘(for Calcite committers)’ suffix from headers in section dedicated to committers</li>
   <li>Site: Add instructions for managing Calcite repos through GitHub</li>
   <li>Site: Add Tencent and TBDS logo in powered-by image</li>
@@ -1815,16 +1815,16 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">VolcanoPlanner</code> supports top down trait request and trait enforcement without
+<code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> supports top down trait request and trait enforcement without
 abstract converter
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3896">CALCITE-3896</a>)</li>
-  <li>Improve <code class="highlighter-rouge">VolcanoPlanner</code> performance by removing rule match and subset importance
+  <li>Improve <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> performance by removing rule match and subset importance
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3753">CALCITE-3753</a>)</li>
-  <li>Improve <code class="highlighter-rouge">VolcanoPlanner</code> performance when abstract converter is enabled
+  <li>Improve <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> performance when abstract converter is enabled
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2970">CALCITE-2970</a>)</li>
   <li>Support ClickHouse dialect
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2157">CALCITE-2157</a>)</li>
-  <li>Support <code class="highlighter-rouge">SESSION</code> and <code class="highlighter-rouge">HOP</code> Table function
+  <li>Support <code class="language-plaintext highlighter-rouge">SESSION</code> and <code class="language-plaintext highlighter-rouge">HOP</code> Table function
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3780">CALCITE-3780</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3737">CALCITE-3737</a>)</li>
 </ul>
@@ -1838,83 +1838,83 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3877">CALCITE-3877</a>]
-In <code class="highlighter-rouge">RexWindow</code>, make fields <code class="highlighter-rouge">upperBound</code> and <code class="highlighter-rouge">lowerBound</code> not-nullable</li>
+In <code class="language-plaintext highlighter-rouge">RexWindow</code>, make fields <code class="language-plaintext highlighter-rouge">upperBound</code> and <code class="language-plaintext highlighter-rouge">lowerBound</code> not-nullable</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3868">CALCITE-3868</a>]
-Remove redundant <code class="highlighter-rouge">ruleSet</code>(protected)and <code class="highlighter-rouge">ruleNames</code>(private) in <code class="highlighter-rouge">VolcanoPlanner</code>
+Remove redundant <code class="language-plaintext highlighter-rouge">ruleSet</code>(protected)and <code class="language-plaintext highlighter-rouge">ruleNames</code>(private) in <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3753">CALCITE-3753</a>]
-<code class="highlighter-rouge">VolcanoPlanner</code> flags <code class="highlighter-rouge">impatient</code> and <code class="highlighter-rouge">ambitious</code> are removed, alternatively
-use <code class="highlighter-rouge">checkCancel()</code> to achieve <code class="highlighter-rouge">impatient</code> mode</li>
+<code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> flags <code class="language-plaintext highlighter-rouge">impatient</code> and <code class="language-plaintext highlighter-rouge">ambitious</code> are removed, alternatively
+use <code class="language-plaintext highlighter-rouge">checkCancel()</code> to achieve <code class="language-plaintext highlighter-rouge">impatient</code> mode</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3997">CALCITE-3997</a>]
-In <code class="highlighter-rouge">VolcanoPlanner</code>, transformation rules won’t match with Enumerable physical
+In <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code>, transformation rules won’t match with Enumerable physical
 operators</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3825">CALCITE-3825</a>]
-Split <code class="highlighter-rouge">AbstractMaterializedViewRule</code> into multiple classes (addendum)</li>
+Split <code class="language-plaintext highlighter-rouge">AbstractMaterializedViewRule</code> into multiple classes (addendum)</li>
 </ul>
 
 <h4 id="new-features-1-23-0">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3896">CALCITE-3896</a>]
-<code class="highlighter-rouge">VolcanoPlanner</code> supports top down trait request and trait enforcement without
+<code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> supports top down trait request and trait enforcement without
 abstract converter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3780">CALCITE-3780</a>]
-Support <code class="highlighter-rouge">SESSION</code> Table function (Rui Wang)</li>
+Support <code class="language-plaintext highlighter-rouge">SESSION</code> Table function (Rui Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3737">CALCITE-3737</a>]
-Support <code class="highlighter-rouge">HOP</code> Table function (Rui Wang)</li>
+Support <code class="language-plaintext highlighter-rouge">HOP</code> Table function (Rui Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3789">CALCITE-3789</a>]
-Support Presto style <code class="highlighter-rouge">unnest</code> with items alias (Will Yu)</li>
+Support Presto style <code class="language-plaintext highlighter-rouge">unnest</code> with items alias (Will Yu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2157">CALCITE-2157</a>]
 Support ClickHouse dialect (Chris Baynes)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3833">CALCITE-3833</a>]
-Support <code class="highlighter-rouge">SemiJoin</code> in <code class="highlighter-rouge">EnumerableMergeJoin</code>
+Support <code class="language-plaintext highlighter-rouge">SemiJoin</code> in <code class="language-plaintext highlighter-rouge">EnumerableMergeJoin</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3684">CALCITE-3684</a>]
-Support <code class="highlighter-rouge">CONCAT</code> for variable arguments (Wenhui Tang)</li>
+Support <code class="language-plaintext highlighter-rouge">CONCAT</code> for variable arguments (Wenhui Tang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3285">CALCITE-3285</a>]
-<code class="highlighter-rouge">EnumerableMergeJoin</code> support non-equi join conditions</li>
+<code class="language-plaintext highlighter-rouge">EnumerableMergeJoin</code> support non-equi join conditions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3694">CALCITE-3694</a>]
-Implement <code class="highlighter-rouge">SINH</code> function</li>
+Implement <code class="language-plaintext highlighter-rouge">SINH</code> function</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3647">CALCITE-3647</a>]
-Support MySQL <code class="highlighter-rouge">COMPRESS</code> function (ritesh-kapoor)</li>
+Support MySQL <code class="language-plaintext highlighter-rouge">COMPRESS</code> function (ritesh-kapoor)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3726">CALCITE-3726</a>]
 Allow declaring type objects (ritesh-kapoor)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3815">CALCITE-3815</a>]
-Support SQL standard aggregate functions: <code class="highlighter-rouge">EVERY</code>, <code class="highlighter-rouge">SOME</code>, <code class="highlighter-rouge">INTERSECTION</code>
+Support SQL standard aggregate functions: <code class="language-plaintext highlighter-rouge">EVERY</code>, <code class="language-plaintext highlighter-rouge">SOME</code>, <code class="language-plaintext highlighter-rouge">INTERSECTION</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3704">CALCITE-3704</a>]
-Implement <code class="highlighter-rouge">STRCMP</code> function</li>
+Implement <code class="language-plaintext highlighter-rouge">STRCMP</code> function</li>
 </ul>
 
 <h4 id="fixes-1-23-0">Bug fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3984">CALCITE-3984</a>]
-Support <code class="highlighter-rouge">Exchange</code> operator in <code class="highlighter-rouge">RelFieldTrimmer</code> (Xu Zhaohui)</li>
+Support <code class="language-plaintext highlighter-rouge">Exchange</code> operator in <code class="language-plaintext highlighter-rouge">RelFieldTrimmer</code> (Xu Zhaohui)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3971">CALCITE-3971</a>]
-Support <code class="highlighter-rouge">Calc</code> in <code class="highlighter-rouge">RelMdColumnOrigins</code> (Xu ZhaoHui)</li>
+Support <code class="language-plaintext highlighter-rouge">Calc</code> in <code class="language-plaintext highlighter-rouge">RelMdColumnOrigins</code> (Xu ZhaoHui)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3921">CALCITE-3921</a>]
-Support <code class="highlighter-rouge">TableModify</code> json serialization and deserialization (Wang Yanlin)</li>
+Support <code class="language-plaintext highlighter-rouge">TableModify</code> json serialization and deserialization (Wang Yanlin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3938">CALCITE-3938</a>]
-Support <code class="highlighter-rouge">LogicalCalc</code> in <code class="highlighter-rouge">RelShuttle</code> (dz)</li>
+Support <code class="language-plaintext highlighter-rouge">LogicalCalc</code> in <code class="language-plaintext highlighter-rouge">RelShuttle</code> (dz)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3880">CALCITE-3880</a>]
-Add <code class="highlighter-rouge">SortExchange</code> support to <code class="highlighter-rouge">RelFieldTrimmer</code> (Krisztian Kasa)</li>
+Add <code class="language-plaintext highlighter-rouge">SortExchange</code> support to <code class="language-plaintext highlighter-rouge">RelFieldTrimmer</code> (Krisztian Kasa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3867">CALCITE-3867</a>]
-Support <code class="highlighter-rouge">RelDistribution</code> json serialization (Krisztian Kasa)</li>
+Support <code class="language-plaintext highlighter-rouge">RelDistribution</code> json serialization (Krisztian Kasa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3634">CALCITE-3634</a>]
-Add <code class="highlighter-rouge">IntersectOnCalcsToIntersectUnifyRule</code> for materialized view recognition
+Add <code class="language-plaintext highlighter-rouge">IntersectOnCalcsToIntersectUnifyRule</code> for materialized view recognition
 (dz)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3934">CALCITE-3934</a>]
-Allow type-coercion in <code class="highlighter-rouge">CONCAT</code> operator</li>
+Allow type-coercion in <code class="language-plaintext highlighter-rouge">CONCAT</code> operator</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3889">CALCITE-3889</a>]
-Add <code class="highlighter-rouge">apply(Mappings.Mapping)</code> to <code class="highlighter-rouge">RelTrait</code> and <code class="highlighter-rouge">RelTraitSet</code>
+Add <code class="language-plaintext highlighter-rouge">apply(Mappings.Mapping)</code> to <code class="language-plaintext highlighter-rouge">RelTrait</code> and <code class="language-plaintext highlighter-rouge">RelTraitSet</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3838">CALCITE-3838</a>]
-Support <code class="highlighter-rouge">Calc</code> in <code class="highlighter-rouge">RelMdSize</code>, <code class="highlighter-rouge">RelMdSelectivity</code>, <code class="highlighter-rouge">RelMdMaxRowCount</code>,
-<code class="highlighter-rouge">RelMdMinRowCount</code>, <code class="highlighter-rouge">RelMdTableReferences</code>
+Support <code class="language-plaintext highlighter-rouge">Calc</code> in <code class="language-plaintext highlighter-rouge">RelMdSize</code>, <code class="language-plaintext highlighter-rouge">RelMdSelectivity</code>, <code class="language-plaintext highlighter-rouge">RelMdMaxRowCount</code>,
+<code class="language-plaintext highlighter-rouge">RelMdMinRowCount</code>, <code class="language-plaintext highlighter-rouge">RelMdTableReferences</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3718">CALCITE-3718</a>]
-Support <code class="highlighter-rouge">Intersect</code> and <code class="highlighter-rouge">Minus</code> in <code class="highlighter-rouge">Bindables</code> (xzh)</li>
+Support <code class="language-plaintext highlighter-rouge">Intersect</code> and <code class="language-plaintext highlighter-rouge">Minus</code> in <code class="language-plaintext highlighter-rouge">Bindables</code> (xzh)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3997">CALCITE-3997</a>]
 Logical rules matched with physical operators but failed to handle traits</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3979">CALCITE-3979</a>]
@@ -1922,118 +1922,118 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3968">CALCITE-3968</a>]
 TPC-H queries take forever for planning</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3877">CALCITE-3877</a>]
-In <code class="highlighter-rouge">RexWindow</code>, make fields <code class="highlighter-rouge">upperBound</code> and <code class="highlighter-rouge">lowerBound</code> not-nullable</li>
+In <code class="language-plaintext highlighter-rouge">RexWindow</code>, make fields <code class="language-plaintext highlighter-rouge">upperBound</code> and <code class="language-plaintext highlighter-rouge">lowerBound</code> not-nullable</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3969">CALCITE-3969</a>]
 Trait keys remapping may throw exception when some trait key is not mapped
 (Roman Kondakov)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3982">CALCITE-3982</a>]
-Simplify <code class="highlighter-rouge">FilterMergeRule</code> to rely on <code class="highlighter-rouge">RelBuilder</code> instead of <code class="highlighter-rouge">RexProgram</code>
+Simplify <code class="language-plaintext highlighter-rouge">FilterMergeRule</code> to rely on <code class="language-plaintext highlighter-rouge">RelBuilder</code> instead of <code class="language-plaintext highlighter-rouge">RexProgram</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3983">CALCITE-3983</a>]
-Add utility methods to <code class="highlighter-rouge">RelTraitSet</code>
+Add utility methods to <code class="language-plaintext highlighter-rouge">RelTraitSet</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3980">CALCITE-3980</a>]
-Redis-adapter redis connection is not reused when <code class="highlighter-rouge">RedisTable</code> is created (Xu
+Redis-adapter redis connection is not reused when <code class="language-plaintext highlighter-rouge">RedisTable</code> is created (Xu
 Zhang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3961">CALCITE-3961</a>]
-<code class="highlighter-rouge">VolcanoPlanner.prunedNodes</code> info is lost when duplicate <code class="highlighter-rouge">RelNode</code> is discarded
+<code class="language-plaintext highlighter-rouge">VolcanoPlanner.prunedNodes</code> info is lost when duplicate <code class="language-plaintext highlighter-rouge">RelNode</code> is discarded
 (Botong Huang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3866">CALCITE-3866</a>]
 “numeric field overflow” when running the generated SQL in PostgreSQL (Wenhui
 Tang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3926">CALCITE-3926</a>]
-<code class="highlighter-rouge">CannotPlanException</code> when an empty LogicalValues requires a certain collation</li>
+<code class="language-plaintext highlighter-rouge">CannotPlanException</code> when an empty LogicalValues requires a certain collation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3973">CALCITE-3973</a>]
 Hints should not unparse as enclosed in parentheses (Alex Baden)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3887">CALCITE-3887</a>]
-<code class="highlighter-rouge">Filter</code> and <code class="highlighter-rouge">Join</code> conditions may not need to retain nullability during
+<code class="language-plaintext highlighter-rouge">Filter</code> and <code class="language-plaintext highlighter-rouge">Join</code> conditions may not need to retain nullability during
 simplifications</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3966">CALCITE-3966</a>]
-Trigger rules for existing <code class="highlighter-rouge">RelSubset</code> when it becomes delivered</li>
+Trigger rules for existing <code class="language-plaintext highlighter-rouge">RelSubset</code> when it becomes delivered</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3928">CALCITE-3928</a>]
 Trim unused fields before materialized view matching (dz)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3962">CALCITE-3962</a>]
-Make <code class="highlighter-rouge">JSON_VALUE</code> operands varadic</li>
+Make <code class="language-plaintext highlighter-rouge">JSON_VALUE</code> operands varadic</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3827">CALCITE-3827</a>]
 Reduce the time complexity of finding in-edges of a vertex in the graph (Liya
 Fan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3878">CALCITE-3878</a>]
-Create <code class="highlighter-rouge">ArrayList</code> with initial capacity when size is known (Xu Zhang)</li>
+Create <code class="language-plaintext highlighter-rouge">ArrayList</code> with initial capacity when size is known (Xu Zhang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3949">CALCITE-3949</a>]
-<code class="highlighter-rouge">RelDistributions.of()</code> and <code class="highlighter-rouge">RelCollations.of()</code> should canonize trait instance</li>
+<code class="language-plaintext highlighter-rouge">RelDistributions.of()</code> and <code class="language-plaintext highlighter-rouge">RelCollations.of()</code> should canonize trait instance</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3954">CALCITE-3954</a>]
 Always compare types using equals</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3955">CALCITE-3955</a>]
-Remove the first operand of <code class="highlighter-rouge">RexCall</code> from <code class="highlighter-rouge">SqlWindowTableFunction</code>
+Remove the first operand of <code class="language-plaintext highlighter-rouge">RexCall</code> from <code class="language-plaintext highlighter-rouge">SqlWindowTableFunction</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3915">CALCITE-3915</a>]
-Add rule listener to report rule attempts and time at <code class="highlighter-rouge">DEBUG</code> log level
+Add rule listener to report rule attempts and time at <code class="language-plaintext highlighter-rouge">DEBUG</code> log level
 (Xiening Dai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3948">CALCITE-3948</a>]
-<code class="highlighter-rouge">RelSubset</code> matching is not properly handled in <code class="highlighter-rouge">VolcanoRuleCall</code> (Botong Huang)</li>
+<code class="language-plaintext highlighter-rouge">RelSubset</code> matching is not properly handled in <code class="language-plaintext highlighter-rouge">VolcanoRuleCall</code> (Botong Huang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3758">CALCITE-3758</a>]
-<code class="highlighter-rouge">FilterTableScanRule</code> generate wrong mapping for filter condition when
-underlying is <code class="highlighter-rouge">BindableTableScan</code> (Jin Xing)</li>
+<code class="language-plaintext highlighter-rouge">FilterTableScanRule</code> generate wrong mapping for filter condition when
+underlying is <code class="language-plaintext highlighter-rouge">BindableTableScan</code> (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3942">CALCITE-3942</a>]
-Move type-coercion configurations into <code class="highlighter-rouge">SqlValidator.Config</code>
+Move type-coercion configurations into <code class="language-plaintext highlighter-rouge">SqlValidator.Config</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3939">CALCITE-3939</a>]
-Change <code class="highlighter-rouge">UnionEliminatorRule</code> and <code class="highlighter-rouge">ProjectRemoveRule</code> to auto pruning
-<code class="highlighter-rouge">SubstitutionRule</code> (Botong Huang)</li>
+Change <code class="language-plaintext highlighter-rouge">UnionEliminatorRule</code> and <code class="language-plaintext highlighter-rouge">ProjectRemoveRule</code> to auto pruning
+<code class="language-plaintext highlighter-rouge">SubstitutionRule</code> (Botong Huang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3944">CALCITE-3944</a>]
-Move <code class="highlighter-rouge">dumpSets</code> and <code class="highlighter-rouge">dumpGraphviz</code> out of <code class="highlighter-rouge">VolcanoPlanner</code>
+Move <code class="language-plaintext highlighter-rouge">dumpSets</code> and <code class="language-plaintext highlighter-rouge">dumpGraphviz</code> out of <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3927">CALCITE-3927</a>]
-<code class="highlighter-rouge">RelSubset</code> is not fired for rule when set gets merged (Botong Huang)</li>
+<code class="language-plaintext highlighter-rouge">RelSubset</code> is not fired for rule when set gets merged (Botong Huang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3868">CALCITE-3868</a>]
-Remove redundant <code class="highlighter-rouge">ruleSet</code>(protected)and <code class="highlighter-rouge">ruleNames</code>(private) in VolcanoPlanner</li>
+Remove redundant <code class="language-plaintext highlighter-rouge">ruleSet</code>(protected)and <code class="language-plaintext highlighter-rouge">ruleNames</code>(private) in VolcanoPlanner</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3940">CALCITE-3940</a>]
-<code class="highlighter-rouge">Hint</code> item can not parse correctly if the name is right after token /*+</li>
+<code class="language-plaintext highlighter-rouge">Hint</code> item can not parse correctly if the name is right after token /*+</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3447">CALCITE-3447</a>]
 MutableScans with the same qualified name are not equivalent (Dai Min,Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3931">CALCITE-3931</a>]
-Add LOOKAHEAD(2) for methods defined in <code class="highlighter-rouge">createStatementParserMethods</code>
+Add LOOKAHEAD(2) for methods defined in <code class="language-plaintext highlighter-rouge">createStatementParserMethods</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3790">CALCITE-3790</a>]
 Make the url() of Sources.of(file) available</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3894">CALCITE-3894</a>]
-SET operation between <code class="highlighter-rouge">DATE</code> and <code class="highlighter-rouge">TIMESTAMP</code> returns a wrong result</li>
+SET operation between <code class="language-plaintext highlighter-rouge">DATE</code> and <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> returns a wrong result</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3881">CALCITE-3881</a>]
-<code class="highlighter-rouge">SqlFunctions#addMonths</code> yields incorrect results in some corner case
+<code class="language-plaintext highlighter-rouge">SqlFunctions#addMonths</code> yields incorrect results in some corner case
 (Zhenghua Gao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3324">CALCITE-3324</a>]
-Set <code class="highlighter-rouge">updateCount</code> when creating <code class="highlighter-rouge">MetaResultSet</code> (Robert Yokota)</li>
+Set <code class="language-plaintext highlighter-rouge">updateCount</code> when creating <code class="language-plaintext highlighter-rouge">MetaResultSet</code> (Robert Yokota)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3733">CALCITE-3733</a>]
-In JDBC adapter, when generating SQL for MYSQL, generate <code class="highlighter-rouge">TIMESTAMP</code> type as
-<code class="highlighter-rouge">DATETIME</code> for <code class="highlighter-rouge">CAST</code> (Vineet Garg)</li>
+In JDBC adapter, when generating SQL for MYSQL, generate <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> type as
+<code class="language-plaintext highlighter-rouge">DATETIME</code> for <code class="language-plaintext highlighter-rouge">CAST</code> (Vineet Garg)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3909">CALCITE-3909</a>]
-<code class="highlighter-rouge">RelMdMinRowCount</code> doesn’t take into account <code class="highlighter-rouge">UNION</code> <code class="highlighter-rouge">DISTINCT</code>
+<code class="language-plaintext highlighter-rouge">RelMdMinRowCount</code> doesn’t take into account <code class="language-plaintext highlighter-rouge">UNION</code> <code class="language-plaintext highlighter-rouge">DISTINCT</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3576">CALCITE-3576</a>]
-Remove enumerable convention check in <code class="highlighter-rouge">FilterIntoJoinRule</code>
+Remove enumerable convention check in <code class="language-plaintext highlighter-rouge">FilterIntoJoinRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2593">CALCITE-2593</a>]
 Plan error when transforming multiple collations to single collation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2010">CALCITE-2010</a>]
-Cannot plan query that is <code class="highlighter-rouge">UNION ALL</code> applied to <code class="highlighter-rouge">VALUES</code>
+Cannot plan query that is <code class="language-plaintext highlighter-rouge">UNION ALL</code> applied to <code class="language-plaintext highlighter-rouge">VALUES</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3865">CALCITE-3865</a>]
-<code class="highlighter-rouge">RelCollationTraitDef.canConvert</code> should always return true</li>
+<code class="language-plaintext highlighter-rouge">RelCollationTraitDef.canConvert</code> should always return true</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2970">CALCITE-2970</a>]
-Improve <code class="highlighter-rouge">VolcanoPlanner</code> performance when enabling abstract converter</li>
+Improve <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> performance when enabling abstract converter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3914">CALCITE-3914</a>]
-Improve <code class="highlighter-rouge">SubstitutionVisitor</code> to consider <code class="highlighter-rouge">RexCall</code> of type <code class="highlighter-rouge">PLUS</code> and <code class="highlighter-rouge">TIMES</code>
+Improve <code class="language-plaintext highlighter-rouge">SubstitutionVisitor</code> to consider <code class="language-plaintext highlighter-rouge">RexCall</code> of type <code class="language-plaintext highlighter-rouge">PLUS</code> and <code class="language-plaintext highlighter-rouge">TIMES</code>
 for canonicalization (Vineet Garg)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3912">CALCITE-3912</a>]
 Incorrect mapping parsing when properties have same name as reserved keywords
 in ElasticSearch</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3900">CALCITE-3900</a>]
-Add <code class="highlighter-rouge">Config</code> for <code class="highlighter-rouge">SqlValidator</code>
+Add <code class="language-plaintext highlighter-rouge">Config</code> for <code class="language-plaintext highlighter-rouge">SqlValidator</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3908">CALCITE-3908</a>]
-<code class="highlighter-rouge">JoinCommuteRule</code> should update all input references in join condition</li>
+<code class="language-plaintext highlighter-rouge">JoinCommuteRule</code> should update all input references in join condition</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3898">CALCITE-3898</a>]
-<code class="highlighter-rouge">RelOptPredicateList</code> may generate incorrect map of constant values</li>
+<code class="language-plaintext highlighter-rouge">RelOptPredicateList</code> may generate incorrect map of constant values</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3835">CALCITE-3835</a>]
 Overloaded table functions fail with an assertion error if param types differ</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3851">CALCITE-3851</a>]
@@ -2043,11 +2043,11 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3814">CALCITE-3814</a>]
 Support JDK 14 and guava 28.2-jre</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3876">CALCITE-3876</a>]
-<code class="highlighter-rouge">RelToSqlConverter</code> should not merge a <code class="highlighter-rouge">Project</code> that contains a window function
-that references a window function in input <code class="highlighter-rouge">Project</code>
+<code class="language-plaintext highlighter-rouge">RelToSqlConverter</code> should not merge a <code class="language-plaintext highlighter-rouge">Project</code> that contains a window function
+that references a window function in input <code class="language-plaintext highlighter-rouge">Project</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3891">CALCITE-3891</a>]
-Remove use of Pair.zip in <code class="highlighter-rouge">RelTraitSet</code>
+Remove use of Pair.zip in <code class="language-plaintext highlighter-rouge">RelTraitSet</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3885">CALCITE-3885</a>]
 Restore trace logging for rules queue and Volcano planner’s internal state
@@ -2055,89 +2055,89 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3886">CALCITE-3886</a>]
 Execute substitution rule according to the order they get matched</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3882">CALCITE-3882</a>]
-Remove duplicated code from <code class="highlighter-rouge">SqlTypeAssignmentRule</code> (Wenhui Tang)</li>
+Remove duplicated code from <code class="language-plaintext highlighter-rouge">SqlTypeAssignmentRule</code> (Wenhui Tang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3846">CALCITE-3846</a>]
-<code class="highlighter-rouge">EnumerableMergeJoin</code>: wrong comparison of composite key with null values</li>
+<code class="language-plaintext highlighter-rouge">EnumerableMergeJoin</code>: wrong comparison of composite key with null values</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3829">CALCITE-3829</a>]
-<code class="highlighter-rouge">MergeJoinEnumerator</code> should not use inputs enumerators until it is really
+<code class="language-plaintext highlighter-rouge">MergeJoinEnumerator</code> should not use inputs enumerators until it is really
 required</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3840">CALCITE-3840</a>]
-Re-aliasing of <code class="highlighter-rouge">VALUES</code> that has column aliases produces wrong SQL in the JDBC
+Re-aliasing of <code class="language-plaintext highlighter-rouge">VALUES</code> that has column aliases produces wrong SQL in the JDBC
 adapter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3810">CALCITE-3810</a>]
-Render <code class="highlighter-rouge">ANTI</code> and <code class="highlighter-rouge">SEMI</code> join to <code class="highlighter-rouge">NOT EXISTS</code> and <code class="highlighter-rouge">EXISTS</code> in the JDBC adapter.
-Also add forgotten <code class="highlighter-rouge">IS_DISTINCT_FROM</code> translation support</li>
+Render <code class="language-plaintext highlighter-rouge">ANTI</code> and <code class="language-plaintext highlighter-rouge">SEMI</code> join to <code class="language-plaintext highlighter-rouge">NOT EXISTS</code> and <code class="language-plaintext highlighter-rouge">EXISTS</code> in the JDBC adapter.
+Also add forgotten <code class="language-plaintext highlighter-rouge">IS_DISTINCT_FROM</code> translation support</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3852">CALCITE-3852</a>]
-<code class="highlighter-rouge">RexSimplify</code> doesn’t simplify NOT EQUAL predicates</li>
+<code class="language-plaintext highlighter-rouge">RexSimplify</code> doesn’t simplify NOT EQUAL predicates</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3862">CALCITE-3862</a>]
-Materialized view rewriting algorithm throws <code class="highlighter-rouge">IndexOutOfBoundsException</code>
+Materialized view rewriting algorithm throws <code class="language-plaintext highlighter-rouge">IndexOutOfBoundsException</code>
 (Vineet Garg)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3856">CALCITE-3856</a>]
 Remove code to be removed before 1.23</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3855">CALCITE-3855</a>]
 Supports snapshot on table with virtual columns during sql-to-rel conversion</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3853">CALCITE-3853</a>]
-Minor improvements in <code class="highlighter-rouge">SortJoinCopyRule</code>
+Minor improvements in <code class="language-plaintext highlighter-rouge">SortJoinCopyRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3848">CALCITE-3848</a>]
 Rewriting for materialized view consisting of group by on join keys fails with
-<code class="highlighter-rouge">Mappings$NoElementException</code> (Vineet Garg)</li>
+<code class="language-plaintext highlighter-rouge">Mappings$NoElementException</code> (Vineet Garg)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3845">CALCITE-3845</a>]
-<code class="highlighter-rouge">CASE WHEN</code> expression with nullability <code class="highlighter-rouge">CAST</code> is considered as reduced wrongly in
-<code class="highlighter-rouge">ReduceExpressionsRule</code>
+<code class="language-plaintext highlighter-rouge">CASE WHEN</code> expression with nullability <code class="language-plaintext highlighter-rouge">CAST</code> is considered as reduced wrongly in
+<code class="language-plaintext highlighter-rouge">ReduceExpressionsRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3847">CALCITE-3847</a>]
 Decorrelation for join with lateral table outputs wrong plan if the join
 condition contains correlation variables</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3753">CALCITE-3753</a>]
-Boost <code class="highlighter-rouge">VolcanoPlanner</code> performance by removing rule match and subset importance</li>
+Boost <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> performance by removing rule match and subset importance</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3823">CALCITE-3823</a>]
-Do not use <code class="highlighter-rouge">String.replaceAll</code>
+Do not use <code class="language-plaintext highlighter-rouge">String.replaceAll</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3412">CALCITE-3412</a>]
 FLOOR(timestamp TO WEEK) gives wrong result</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3839">CALCITE-3839</a>]
-After calling <code class="highlighter-rouge">RelBuilder.aggregate</code>, cannot lookup field by name</li>
+After calling <code class="language-plaintext highlighter-rouge">RelBuilder.aggregate</code>, cannot lookup field by name</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3819">CALCITE-3819</a>]
-Prune parent <code class="highlighter-rouge">RelNode</code> when merging child <code class="highlighter-rouge">RelSet</code> with parent <code class="highlighter-rouge">RelSet</code>
+Prune parent <code class="language-plaintext highlighter-rouge">RelNode</code> when merging child <code class="language-plaintext highlighter-rouge">RelSet</code> with parent <code class="language-plaintext highlighter-rouge">RelSet</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3809">CALCITE-3809</a>]
-<code class="highlighter-rouge">RexSimplify</code> simplifies nondeterministic function incorrectly</li>
+<code class="language-plaintext highlighter-rouge">RexSimplify</code> simplifies nondeterministic function incorrectly</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3828">CALCITE-3828</a>]
 MergeJoin throws NPE in case of null keys</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3820">CALCITE-3820</a>]
-<code class="highlighter-rouge">EnumerableDefaults#orderBy</code> should be lazily computed + support enumerator
+<code class="language-plaintext highlighter-rouge">EnumerableDefaults#orderBy</code> should be lazily computed + support enumerator
 re-initialization</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3837">CALCITE-3837</a>]
 AntiJoin with empty right input can always be transformed as its left input</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3821">CALCITE-3821</a>]
-<code class="highlighter-rouge">RelOptUtil::containsMultisetOrWindowedAgg</code> doesn’t really check multiset
+<code class="language-plaintext highlighter-rouge">RelOptUtil::containsMultisetOrWindowedAgg</code> doesn’t really check multiset
 (Xiening Dai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3825">CALCITE-3825</a>]
-Split <code class="highlighter-rouge">AbstractMaterializedViewRule</code> into multiple classes (addendum)</li>
+Split <code class="language-plaintext highlighter-rouge">AbstractMaterializedViewRule</code> into multiple classes (addendum)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3824">CALCITE-3824</a>]
-<code class="highlighter-rouge">JoinProjectTransposeRule</code> should skip Projects containing windowing expression
+<code class="language-plaintext highlighter-rouge">JoinProjectTransposeRule</code> should skip Projects containing windowing expression
 (Vineet Garg)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3734">CALCITE-3734</a>]
 MySQL JDBC rewrite is producing queries with CHAR with range beyond 255 (Vineet
 Garg)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3817">CALCITE-3817</a>]
-<code class="highlighter-rouge">VolcanoPlanner</code> does not remove the entry in ruleNames when removing a rule</li>
+<code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> does not remove the entry in ruleNames when removing a rule</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2592">CALCITE-2592</a>]
-<code class="highlighter-rouge">EnumerableMergeJoin</code> is never taken</li>
+<code class="language-plaintext highlighter-rouge">EnumerableMergeJoin</code> is never taken</li>
 </ul>
 
 <h4 id="build-1-23-0">Build and test suite</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3965">CALCITE-3965</a>]
-Avoid <code class="highlighter-rouge">DiffRepository</code> lock contention</li>
+Avoid <code class="language-plaintext highlighter-rouge">DiffRepository</code> lock contention</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3924">CALCITE-3924</a>]
-Fix flakey test to handle <code class="highlighter-rouge">TIMESTAMP</code> and <code class="highlighter-rouge">TIMESTAMP(0)</code> correctly (neoReMinD)</li>
+Fix flakey test to handle <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> and <code class="language-plaintext highlighter-rouge">TIMESTAMP(0)</code> correctly (neoReMinD)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3888">CALCITE-3888</a>]
 Switch avatica-server to be test dependency for core</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3660">CALCITE-3660</a>]
-Disable flaky test <code class="highlighter-rouge">PigRelBuilderStyleTest</code> since it fails too often for no reason</li>
+Disable flaky test <code class="language-plaintext highlighter-rouge">PigRelBuilderStyleTest</code> since it fails too often for no reason</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3892">CALCITE-3892</a>]
 Make junit test classes and methods non-public where possible</li>
   <li>Update release-plugins: 1.65 -&gt; 1.70</li>
@@ -2151,7 +2151,7 @@
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3958">CALCITE-3958</a>]
 Revise documentation of gradle.properties in Cassandra/Piglet and
-<code class="highlighter-rouge">SubstitutionVisitor</code> (xzh)</li>
+<code class="language-plaintext highlighter-rouge">SubstitutionVisitor</code> (xzh)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3726">CALCITE-3726</a>]
 Documentation for Declaring Objects For Types Defined In Schema (ritesh-kapoor)</li>
   <li>Site: Add Ant Financial logo in powered-by image (Wang Yanlin)</li>
@@ -2188,9 +2188,9 @@
 
 <p>We have also fixed some important bugs:</p>
 <ul>
-  <li>Merging <code class="highlighter-rouge">RelSet</code> sometimes gave
+  <li>Merging <code class="language-plaintext highlighter-rouge">RelSet</code> sometimes gave
 <a href="https://issues.apache.org/jira/browse/CALCITE-2018">inconsistent state</a>,</li>
-  <li>The <code class="highlighter-rouge">GROUP_ID</code> function gave
+  <li>The <code class="language-plaintext highlighter-rouge">GROUP_ID</code> function gave
 <a href="https://issues.apache.org/jira/browse/CALCITE-1824">incorrect results</a>,</li>
   <li>Improve row count estimate for
 <a href="https://issues.apache.org/jira/browse/CALCITE-3711">Correlate</a>
@@ -2208,249 +2208,249 @@
 <h4 id="breaking-changes">Breaking Changes</h4>
 
 <ul>
-  <li>Constructors for <code class="highlighter-rouge">Project</code>, <code class="highlighter-rouge">TableScan</code>, <code class="highlighter-rouge">Calc</code>, <code class="highlighter-rouge">Aggregate</code> and <code class="highlighter-rouge">Join</code> introduce new parameter named <code class="highlighter-rouge">hints</code> (<a href="https://issues.apache.org/jira/browse/CALCITE-482">CALCITE-482</a>)</li>
-  <li>Logical <code class="highlighter-rouge">RelNode</code>’s <code class="highlighter-rouge">create</code> method need to pass in hints explicitly (<a href="https://issues.apache.org/jira/browse/CALCITE-3723">CALCITE-3723</a>)</li>
+  <li>Constructors for <code class="language-plaintext highlighter-rouge">Project</code>, <code class="language-plaintext highlighter-rouge">TableScan</code>, <code class="language-plaintext highlighter-rouge">Calc</code>, <code class="language-plaintext highlighter-rouge">Aggregate</code> and <code class="language-plaintext highlighter-rouge">Join</code> introduce new parameter named <code class="language-plaintext highlighter-rouge">hints</code> (<a href="https://issues.apache.org/jira/browse/CALCITE-482">CALCITE-482</a>)</li>
+  <li>Logical <code class="language-plaintext highlighter-rouge">RelNode</code>’s <code class="language-plaintext highlighter-rouge">create</code> method need to pass in hints explicitly (<a href="https://issues.apache.org/jira/browse/CALCITE-3723">CALCITE-3723</a>)</li>
   <li>
-<code class="highlighter-rouge">Project</code> names will not represent in <code class="highlighter-rouge">RelNode</code> digest anymore (<a href="https://issues.apache.org/jira/browse/CALCITE-3713">CALCITE-3713</a>)</li>
+<code class="language-plaintext highlighter-rouge">Project</code> names will not represent in <code class="language-plaintext highlighter-rouge">RelNode</code> digest anymore (<a href="https://issues.apache.org/jira/browse/CALCITE-3713">CALCITE-3713</a>)</li>
   <li>
-<code class="highlighter-rouge">RexCall</code>s are default to be normalized in the <code class="highlighter-rouge">RelNode</code> digest (<a href="https://issues.apache.org/jira/browse/CALCITE-2450">CALCITE-2450</a>)</li>
+<code class="language-plaintext highlighter-rouge">RexCall</code>s are default to be normalized in the <code class="language-plaintext highlighter-rouge">RelNode</code> digest (<a href="https://issues.apache.org/jira/browse/CALCITE-2450">CALCITE-2450</a>)</li>
   <li>
-<code class="highlighter-rouge">RelBuilder.aggregate</code> now would prune the unused fields from the input, thus the plan may change (<a href="https://issues.apache.org/jira/browse/CALCITE-3763">CALCITE-3763</a>)</li>
+<code class="language-plaintext highlighter-rouge">RelBuilder.aggregate</code> now would prune the unused fields from the input, thus the plan may change (<a href="https://issues.apache.org/jira/browse/CALCITE-3763">CALCITE-3763</a>)</li>
   <li>
-<code class="highlighter-rouge">RelBuilder.scan</code> and sql-to-rel conversion always invoke <code class="highlighter-rouge">RelOptTable.toRel</code> now, so there may be some plan changes for the <code class="highlighter-rouge">TableScan</code> node if your <code class="highlighter-rouge">RelOptTable.toRel</code> returns a physical rel before</li>
+<code class="language-plaintext highlighter-rouge">RelBuilder.scan</code> and sql-to-rel conversion always invoke <code class="language-plaintext highlighter-rouge">RelOptTable.toRel</code> now, so there may be some plan changes for the <code class="language-plaintext highlighter-rouge">TableScan</code> node if your <code class="language-plaintext highlighter-rouge">RelOptTable.toRel</code> returns a physical rel before</li>
 </ul>
 
 <h4 id="new-features-1-22-0">New features</h4>
 
 <ul>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3771">CALCITE-3771</a>] <code class="highlighter-rouge">TRIM</code> Support for HIVE/SPARK Dialect (Dhirenda Gautam)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3707">CALCITE-3707</a>] Implement <code class="highlighter-rouge">COSH</code> function</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3695">CALCITE-3695</a>] Implement <code class="highlighter-rouge">TANH</code> function</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3640">CALCITE-3640</a>] Oracle <code class="highlighter-rouge">EXISTSNODE</code> Function Support (ritesh-kapoor)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3382">CALCITE-3382</a>] Support <code class="highlighter-rouge">TUMBLE</code> as Table Value Function (Rui Wang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3771">CALCITE-3771</a>] <code class="language-plaintext highlighter-rouge">TRIM</code> Support for HIVE/SPARK Dialect (Dhirenda Gautam)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3707">CALCITE-3707</a>] Implement <code class="language-plaintext highlighter-rouge">COSH</code> function</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3695">CALCITE-3695</a>] Implement <code class="language-plaintext highlighter-rouge">TANH</code> function</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3640">CALCITE-3640</a>] Oracle <code class="language-plaintext highlighter-rouge">EXISTSNODE</code> Function Support (ritesh-kapoor)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3382">CALCITE-3382</a>] Support <code class="language-plaintext highlighter-rouge">TUMBLE</code> as Table Value Function (Rui Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3510">CALCITE-3510</a>] Implement Redis adapter</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3684">CALCITE-3684</a>] Implement <code class="highlighter-rouge">CBRT</code> function (Qianjin Xu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3663">CALCITE-3663</a>] Support for <code class="highlighter-rouge">TRIM</code> function in BigQuery Dialect</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3580">CALCITE-3580</a>] Oracle <code class="highlighter-rouge">EXTRACT(XML)</code> Function Support (ritesh-kapoor)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3579">CALCITE-3579</a>] Oracle <code class="highlighter-rouge">XMLTRANSFORM</code> Function Support (ritesh-kapoor)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3684">CALCITE-3684</a>] Implement <code class="language-plaintext highlighter-rouge">CBRT</code> function (Qianjin Xu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3663">CALCITE-3663</a>] Support for <code class="language-plaintext highlighter-rouge">TRIM</code> function in BigQuery Dialect</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3580">CALCITE-3580</a>] Oracle <code class="language-plaintext highlighter-rouge">EXTRACT(XML)</code> Function Support (ritesh-kapoor)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3579">CALCITE-3579</a>] Oracle <code class="language-plaintext highlighter-rouge">XMLTRANSFORM</code> Function Support (ritesh-kapoor)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3591">CALCITE-3591</a>] Add bit_xor aggregate operator (wangxlong)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3552">CALCITE-3552</a>] Support MySQL <code class="highlighter-rouge">ExtractValue</code> function</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3542">CALCITE-3542</a>] Implement <code class="highlighter-rouge">RepeatUnion</code> All=false</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3552">CALCITE-3552</a>] Support MySQL <code class="language-plaintext highlighter-rouge">ExtractValue</code> function</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3542">CALCITE-3542</a>] Implement <code class="language-plaintext highlighter-rouge">RepeatUnion</code> All=false</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-482">CALCITE-482</a>] Implement sql and planner hints</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3781">CALCITE-3781</a>] <code class="highlighter-rouge">HintStrategy</code> can specify excluded rules for planner</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3730">CALCITE-3730</a>] Add hints to <code class="highlighter-rouge">RelBuilder</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3781">CALCITE-3781</a>] <code class="language-plaintext highlighter-rouge">HintStrategy</code> can specify excluded rules for planner</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3730">CALCITE-3730</a>] Add hints to <code class="language-plaintext highlighter-rouge">RelBuilder</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3719">CALCITE-3719</a>] Add hint option checker to customize the option</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3631">CALCITE-3631</a>] Support SQL hints for <code class="highlighter-rouge">Calc</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3631">CALCITE-3631</a>] Support SQL hints for <code class="language-plaintext highlighter-rouge">Calc</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3590">CALCITE-3590</a>] Support SQL hints for <code class="highlighter-rouge">Aggregate</code> (Shuo Cheng)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3590">CALCITE-3590</a>] Support SQL hints for <code class="language-plaintext highlighter-rouge">Aggregate</code> (Shuo Cheng)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3584">CALCITE-3584</a>] Propagate hints when decorrelating a query</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3736">CALCITE-3736</a>] Add an interface in <code class="highlighter-rouge">RelOptRuleCall</code> to customize the propagation of hints before registering into planner rule</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3736">CALCITE-3736</a>] Add an interface in <code class="language-plaintext highlighter-rouge">RelOptRuleCall</code> to customize the propagation of hints before registering into planner rule</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3496">CALCITE-3496</a>] Hive dialect and MS SQL dialect support with cube and with rollup (dz)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3465">CALCITE-3465</a>] Add support for missing Cassandra 3.x data types (Alessandro Solimando)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3442">CALCITE-3442</a>] In ElasticSearch adapter, set <code class="highlighter-rouge">stored_fields = _none_</code> to prohibit FetchPhase get involved (Yunfeng,Wu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3437">CALCITE-3437</a>] Support <code class="highlighter-rouge">MatchQuery</code> in ElasticSearch adapter (Shlok Srivastava)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3442">CALCITE-3442</a>] In ElasticSearch adapter, set <code class="language-plaintext highlighter-rouge">stored_fields = _none_</code> to prohibit FetchPhase get involved (Yunfeng,Wu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3437">CALCITE-3437</a>] Support <code class="language-plaintext highlighter-rouge">MatchQuery</code> in ElasticSearch adapter (Shlok Srivastava)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3434">CALCITE-3434</a>] ElasticSearch schema with pathPrefix (Jeffery Zhang)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3405">CALCITE-3405</a>] Prune columns for <code class="highlighter-rouge">ProjectableFilterableTable</code> when <code class="highlighter-rouge">Project</code> is not simple mapping (Jin Xing)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3349">CALCITE-3349</a>] Add <code class="highlighter-rouge">CREATE FUNCTION</code> and <code class="highlighter-rouge">DROP FUNCTION</code> ddl (Zhenqiu Huang)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3323">CALCITE-3323</a>] Add mode to <code class="highlighter-rouge">SqlValidator</code> that treats statements as valid if they contain unknown functions (Ryan Fu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3302">CALCITE-3302</a>] Implement <code class="highlighter-rouge">CLASSIFIER</code> and <code class="highlighter-rouge">LAST</code> functions for <code class="highlighter-rouge">MATCH_RECOGNIZE</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3405">CALCITE-3405</a>] Prune columns for <code class="language-plaintext highlighter-rouge">ProjectableFilterableTable</code> when <code class="language-plaintext highlighter-rouge">Project</code> is not simple mapping (Jin Xing)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3349">CALCITE-3349</a>] Add <code class="language-plaintext highlighter-rouge">CREATE FUNCTION</code> and <code class="language-plaintext highlighter-rouge">DROP FUNCTION</code> ddl (Zhenqiu Huang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3323">CALCITE-3323</a>] Add mode to <code class="language-plaintext highlighter-rouge">SqlValidator</code> that treats statements as valid if they contain unknown functions (Ryan Fu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3302">CALCITE-3302</a>] Implement <code class="language-plaintext highlighter-rouge">CLASSIFIER</code> and <code class="language-plaintext highlighter-rouge">LAST</code> functions for <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3112">CALCITE-3112</a>] Support <code class="highlighter-rouge">Window</code> in <code class="highlighter-rouge">RelToSqlConverter</code> (Wenhui Tang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3112">CALCITE-3112</a>] Support <code class="language-plaintext highlighter-rouge">Window</code> in <code class="language-plaintext highlighter-rouge">RelToSqlConverter</code> (Wenhui Tang)</li>
 </ul>
 
 <h4 id="fixes-1-22-0">Bug fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>Following CALCITE-3769: Add BindableTableScanRule into the default ruleset</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3826">CALCITE-3826</a>] <code class="highlighter-rouge">UPDATE</code> assigns wrong type to bind variables</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3830">CALCITE-3830</a>] The ‘approximate’ field should be considered when computing the digest of <code class="highlighter-rouge">AggregateCall</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3826">CALCITE-3826</a>] <code class="language-plaintext highlighter-rouge">UPDATE</code> assigns wrong type to bind variables</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3830">CALCITE-3830</a>] The ‘approximate’ field should be considered when computing the digest of <code class="language-plaintext highlighter-rouge">AggregateCall</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3807">CALCITE-3807</a>] checkForSatisfiedConverters() is unnecessary</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3803">CALCITE-3803</a>] Enhance <code class="highlighter-rouge">RexSimplify</code> to simplify ‘a&gt;1 or (a&lt;3 and b)’ to ‘a&gt;1 or b’ if column a is not nullable</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2707">CALCITE-2707</a>] Information about distinct aggregation is lost in <code class="highlighter-rouge">MATCH_RECOGNIZE</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3803">CALCITE-3803</a>] Enhance <code class="language-plaintext highlighter-rouge">RexSimplify</code> to simplify ‘a&gt;1 or (a&lt;3 and b)’ to ‘a&gt;1 or b’ if column a is not nullable</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2707">CALCITE-2707</a>] Information about distinct aggregation is lost in <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3801">CALCITE-3801</a>] Deprecate <code class="highlighter-rouge">SqlToRelConverter.Config#isConvertTableAccess</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3801">CALCITE-3801</a>] Deprecate <code class="language-plaintext highlighter-rouge">SqlToRelConverter.Config#isConvertTableAccess</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3791">CALCITE-3791</a>] <code class="highlighter-rouge">HepPlanner</code> does not clear metadata cache for the ancestors of discarded node when a transformation happens</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3794">CALCITE-3794</a>] <code class="highlighter-rouge">RexSimplify</code> should return early if there is no pulled up predicate when simplifying using predicates</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3798">CALCITE-3798</a>] Make <code class="highlighter-rouge">RelBuilder</code> view expander pluggable</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3769">CALCITE-3769</a>] Deprecate <code class="highlighter-rouge">TableScanRule</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3791">CALCITE-3791</a>] <code class="language-plaintext highlighter-rouge">HepPlanner</code> does not clear metadata cache for the ancestors of discarded node when a transformation happens</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3794">CALCITE-3794</a>] <code class="language-plaintext highlighter-rouge">RexSimplify</code> should return early if there is no pulled up predicate when simplifying using predicates</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3798">CALCITE-3798</a>] Make <code class="language-plaintext highlighter-rouge">RelBuilder</code> view expander pluggable</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3769">CALCITE-3769</a>] Deprecate <code class="language-plaintext highlighter-rouge">TableScanRule</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3774">CALCITE-3774</a>] In <code class="highlighter-rouge">RelBuilder</code> and <code class="highlighter-rouge">ProjectMergeRule</code>, prevent merges when it would increase expression complexity</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3763">CALCITE-3763</a>] <code class="highlighter-rouge">RelBuilder.aggregate</code> should prune unused fields from the input, if the input is a <code class="highlighter-rouge">Project</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3774">CALCITE-3774</a>] In <code class="language-plaintext highlighter-rouge">RelBuilder</code> and <code class="language-plaintext highlighter-rouge">ProjectMergeRule</code>, prevent merges when it would increase expression complexity</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3763">CALCITE-3763</a>] <code class="language-plaintext highlighter-rouge">RelBuilder.aggregate</code> should prune unused fields from the input, if the input is a <code class="language-plaintext highlighter-rouge">Project</code>
 </li>
-  <li>Add <code class="highlighter-rouge">RelBuilder.transform</code>, which allows you to clone a <code class="highlighter-rouge">RelBuilder</code> with slightly different Config</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3785">CALCITE-3785</a>] <code class="highlighter-rouge">HepPlanner.belongToDag()</code> doesn’t have to use mapDigestToVertex (Xiening Dai)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3783">CALCITE-3783</a>] <code class="highlighter-rouge">PruneEmptyRules#JOIN_RIGHT_INSTANCE</code> wrong behavior for <code class="highlighter-rouge">JoinRelType.ANTI</code>
+  <li>Add <code class="language-plaintext highlighter-rouge">RelBuilder.transform</code>, which allows you to clone a <code class="language-plaintext highlighter-rouge">RelBuilder</code> with slightly different Config</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3785">CALCITE-3785</a>] <code class="language-plaintext highlighter-rouge">HepPlanner.belongToDag()</code> doesn’t have to use mapDigestToVertex (Xiening Dai)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3783">CALCITE-3783</a>] <code class="language-plaintext highlighter-rouge">PruneEmptyRules#JOIN_RIGHT_INSTANCE</code> wrong behavior for <code class="language-plaintext highlighter-rouge">JoinRelType.ANTI</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3773">CALCITE-3773</a>] Wrong parameter in <code class="highlighter-rouge">EnumerableMergeJoin::create</code> `method</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3768">CALCITE-3768</a>] <code class="highlighter-rouge">VolcanoPlanner.changeTraitsUsingConverters()</code> has parameter that’s never used</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3766">CALCITE-3766</a>] Add a Builder to <code class="highlighter-rouge">RelHint</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3773">CALCITE-3773</a>] Wrong parameter in <code class="language-plaintext highlighter-rouge">EnumerableMergeJoin::create</code> `method</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3768">CALCITE-3768</a>] <code class="language-plaintext highlighter-rouge">VolcanoPlanner.changeTraitsUsingConverters()</code> has parameter that’s never used</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3766">CALCITE-3766</a>] Add a Builder to <code class="language-plaintext highlighter-rouge">RelHint</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3765">CALCITE-3765</a>] Returns early when there is an existing operand when assigning operands solve order</li>
-  <li>Switch <code class="highlighter-rouge">RelBuilder.Config</code> to an interface, and deprecate <code class="highlighter-rouge">RelBuilder.ConfigBuilder</code>
+  <li>Switch <code class="language-plaintext highlighter-rouge">RelBuilder.Config</code> to an interface, and deprecate <code class="language-plaintext highlighter-rouge">RelBuilder.ConfigBuilder</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3764">CALCITE-3764</a>] <code class="highlighter-rouge">AggregateCaseToFilterRule</code> handles <code class="highlighter-rouge">NULL</code> values incorrectly</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1824">CALCITE-1824</a>] <code class="highlighter-rouge">GROUP_ID</code> returns wrong result (DonnyZone)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3756">CALCITE-3756</a>] <code class="highlighter-rouge">RelSubset</code> should not match <code class="highlighter-rouge">operand(RelNode.class)</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3764">CALCITE-3764</a>] <code class="language-plaintext highlighter-rouge">AggregateCaseToFilterRule</code> handles <code class="language-plaintext highlighter-rouge">NULL</code> values incorrectly</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1824">CALCITE-1824</a>] <code class="language-plaintext highlighter-rouge">GROUP_ID</code> returns wrong result (DonnyZone)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3756">CALCITE-3756</a>] <code class="language-plaintext highlighter-rouge">RelSubset</code> should not match <code class="language-plaintext highlighter-rouge">operand(RelNode.class)</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3738">CALCITE-3738</a>] Missing order by logical plan for <code class="highlighter-rouge">INSERT</code> statement</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3676">CALCITE-3676</a>] <code class="highlighter-rouge">VolcanoPlanner.dumpGraphviz</code> should handle exception gracefully (Qianjin Xu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3653">CALCITE-3653</a>] Support <code class="highlighter-rouge">TableModify</code> in <code class="highlighter-rouge">ToLogicalConverter</code> (dz)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3668">CALCITE-3668</a>] <code class="highlighter-rouge">VolcanoPlanner</code> does not match all the <code class="highlighter-rouge">RelSubSet</code> in matchRecursive</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3744">CALCITE-3744</a>] Duplicate rule matches when <code class="highlighter-rouge">RelSet</code> gets merged</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3747">CALCITE-3747</a>] Constructing <code class="highlighter-rouge">BETWEEN</code> with <code class="highlighter-rouge">RelBuilder</code> throws class cast exception</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3738">CALCITE-3738</a>] Missing order by logical plan for <code class="language-plaintext highlighter-rouge">INSERT</code> statement</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3676">CALCITE-3676</a>] <code class="language-plaintext highlighter-rouge">VolcanoPlanner.dumpGraphviz</code> should handle exception gracefully (Qianjin Xu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3653">CALCITE-3653</a>] Support <code class="language-plaintext highlighter-rouge">TableModify</code> in <code class="language-plaintext highlighter-rouge">ToLogicalConverter</code> (dz)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3668">CALCITE-3668</a>] <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> does not match all the <code class="language-plaintext highlighter-rouge">RelSubSet</code> in matchRecursive</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3744">CALCITE-3744</a>] Duplicate rule matches when <code class="language-plaintext highlighter-rouge">RelSet</code> gets merged</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3747">CALCITE-3747</a>] Constructing <code class="language-plaintext highlighter-rouge">BETWEEN</code> with <code class="language-plaintext highlighter-rouge">RelBuilder</code> throws class cast exception</li>
   <li>Add HSQLDB data sets (scott, foodmart and chinook) to SQLLine’s path</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3735">CALCITE-3735</a>] In <code class="highlighter-rouge">ImmutableBeans</code>, allow interfaces to have default methods</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3736">CALCITE-3736</a>] Add an interface in <code class="highlighter-rouge">RelOptRuleCall</code> to customize the propagation of hints before registering into planner rule</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3721">CALCITE-3721</a>] <code class="highlighter-rouge">Filter</code> of distinct aggregate call is lost after applying <code class="highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> (Shuo Cheng)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3644">CALCITE-3644</a>] Add <code class="highlighter-rouge">ProjectSetOpTransposeRule</code> to normalize materialized view (xy2953396112)</li>
-  <li>Add method <code class="highlighter-rouge">Pair.forEach(Iterable, Iterable, BiConsumer)</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3735">CALCITE-3735</a>] In <code class="language-plaintext highlighter-rouge">ImmutableBeans</code>, allow interfaces to have default methods</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3736">CALCITE-3736</a>] Add an interface in <code class="language-plaintext highlighter-rouge">RelOptRuleCall</code> to customize the propagation of hints before registering into planner rule</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3721">CALCITE-3721</a>] <code class="language-plaintext highlighter-rouge">Filter</code> of distinct aggregate call is lost after applying <code class="language-plaintext highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> (Shuo Cheng)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3644">CALCITE-3644</a>] Add <code class="language-plaintext highlighter-rouge">ProjectSetOpTransposeRule</code> to normalize materialized view (xy2953396112)</li>
+  <li>Add method <code class="language-plaintext highlighter-rouge">Pair.forEach(Iterable, Iterable, BiConsumer)</code>
 </li>
-  <li>Really deprecate <code class="highlighter-rouge">RelBuilder.groupKey(ImmutableBitSet, ImmutableList&lt;ImmutableBitSet&gt;)</code>
+  <li>Really deprecate <code class="language-plaintext highlighter-rouge">RelBuilder.groupKey(ImmutableBitSet, ImmutableList&lt;ImmutableBitSet&gt;)</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3729">CALCITE-3729</a>] Filters failed to be pushed down when it’s identical to join condition (Jin Xing)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3725">CALCITE-3725</a>] <code class="highlighter-rouge">RelMetadataTest</code> fails with NPE due to unsafe <code class="highlighter-rouge">RelMetadataQuery.instance</code> call (Jin Xing)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3725">CALCITE-3725</a>] <code class="language-plaintext highlighter-rouge">RelMetadataTest</code> fails with NPE due to unsafe <code class="language-plaintext highlighter-rouge">RelMetadataQuery.instance</code> call (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3675">CALCITE-3675</a>] SQL to Rel conversion is broken for coalesce on nullable field (DonnyZone)</li>
   <li>Refine rules so they produce less no-op matches</li>
   <li>Refine logging dependencies: keep slf4j bridges in runtime classpath only</li>
-  <li>Refine <code class="highlighter-rouge">RuleQueue#addMatch</code>: skip the match if it is not required for the phase</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3364">CALCITE-3364</a>] <code class="highlighter-rouge">ClassCastException</code> if group by is used on the result of scalar valued table function (DonnyZone)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3722">CALCITE-3722</a>] Add <code class="highlighter-rouge">Hook#PLAN_BEFORE_IMPLEMENTATION</code> to capture the plan after optimization</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3713">CALCITE-3713</a>] Remove column names from <code class="highlighter-rouge">Project#digest</code>
+  <li>Refine <code class="language-plaintext highlighter-rouge">RuleQueue#addMatch</code>: skip the match if it is not required for the phase</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3364">CALCITE-3364</a>] <code class="language-plaintext highlighter-rouge">ClassCastException</code> if group by is used on the result of scalar valued table function (DonnyZone)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3722">CALCITE-3722</a>] Add <code class="language-plaintext highlighter-rouge">Hook#PLAN_BEFORE_IMPLEMENTATION</code> to capture the plan after optimization</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3713">CALCITE-3713</a>] Remove column names from <code class="language-plaintext highlighter-rouge">Project#digest</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2450">CALCITE-2450</a>] Reorder <code class="highlighter-rouge">RexCall</code> predicates to a canonical form
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2450">CALCITE-2450</a>] Reorder <code class="language-plaintext highlighter-rouge">RexCall</code> predicates to a canonical form
 validation</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3677">CALCITE-3677</a>] Add assertion to <code class="highlighter-rouge">EnumerableTableScan</code> constructor to validate if the table is suitable for enumerable scan</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3715">CALCITE-3715</a>] Add an interface to pass the table hints to <code class="highlighter-rouge">RelOptTable</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3677">CALCITE-3677</a>] Add assertion to <code class="language-plaintext highlighter-rouge">EnumerableTableScan</code> constructor to validate if the table is suitable for enumerable scan</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3715">CALCITE-3715</a>] Add an interface to pass the table hints to <code class="language-plaintext highlighter-rouge">RelOptTable</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3714">CALCITE-3714</a>] <code class="highlighter-rouge">BitString.createFromBytes</code> reverses order of the bits in each byte</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3712">CALCITE-3712</a>] Optimize lossless casts in <code class="highlighter-rouge">RexSimplify</code>: CAST(CAST(intExpr as BIGINT) as INT) =&gt; intExpr</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3587">CALCITE-3587</a>] <code class="highlighter-rouge">RexBuilder</code> may lose decimal fraction for creating literal with <code class="highlighter-rouge">DECIMAL</code> type (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3658">CALCITE-3658</a>] <code class="highlighter-rouge">TableModify</code> of <code class="highlighter-rouge">Update</code> contains correlated variable by mistake (Jin Xing)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3711">CALCITE-3711</a>] <code class="highlighter-rouge">Correlate</code> should override <code class="highlighter-rouge">estimateRowCount</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3714">CALCITE-3714</a>] <code class="language-plaintext highlighter-rouge">BitString.createFromBytes</code> reverses order of the bits in each byte</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3712">CALCITE-3712</a>] Optimize lossless casts in <code class="language-plaintext highlighter-rouge">RexSimplify</code>: CAST(CAST(intExpr as BIGINT) as INT) =&gt; intExpr</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3587">CALCITE-3587</a>] <code class="language-plaintext highlighter-rouge">RexBuilder</code> may lose decimal fraction for creating literal with <code class="language-plaintext highlighter-rouge">DECIMAL</code> type (Wang Yanlin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3658">CALCITE-3658</a>] <code class="language-plaintext highlighter-rouge">TableModify</code> of <code class="language-plaintext highlighter-rouge">Update</code> contains correlated variable by mistake (Jin Xing)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3711">CALCITE-3711</a>] <code class="language-plaintext highlighter-rouge">Correlate</code> should override <code class="language-plaintext highlighter-rouge">estimateRowCount</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3606">CALCITE-3606</a>] Derive target table column list by mistake when convert <code class="highlighter-rouge">TableModify</code> to Sql string (JinXing)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3526">CALCITE-3526</a>] <code class="highlighter-rouge">SqlPrettyWriter</code> should have options to fold/chop long lines, print leading commas</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3606">CALCITE-3606</a>] Derive target table column list by mistake when convert <code class="language-plaintext highlighter-rouge">TableModify</code> to Sql string (JinXing)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3526">CALCITE-3526</a>] <code class="language-plaintext highlighter-rouge">SqlPrettyWriter</code> should have options to fold/chop long lines, print leading commas</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3328">CALCITE-3328</a>] Immutable beans, powered by reflection</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3672">CALCITE-3672</a>] Support implicit type coercion for insert and update</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3651">CALCITE-3651</a>] NPE when convert relational algebra that correlates <code class="highlighter-rouge">TableFunctionScan</code> (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3666">CALCITE-3666</a>] Refine <code class="highlighter-rouge">RelMdColumnUniqueness</code> and <code class="highlighter-rouge">RelMdUniqueKeys</code> for <code class="highlighter-rouge">Calc</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3651">CALCITE-3651</a>] NPE when convert relational algebra that correlates <code class="language-plaintext highlighter-rouge">TableFunctionScan</code> (Wang Yanlin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3666">CALCITE-3666</a>] Refine <code class="language-plaintext highlighter-rouge">RelMdColumnUniqueness</code> and <code class="language-plaintext highlighter-rouge">RelMdUniqueKeys</code> for <code class="language-plaintext highlighter-rouge">Calc</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3655">CALCITE-3655</a>] <code class="highlighter-rouge">SortJoinTransposeRule</code> must not push sort into <code class="highlighter-rouge">Project</code> that contains <code class="highlighter-rouge">OVER</code> expressions</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3655">CALCITE-3655</a>] <code class="language-plaintext highlighter-rouge">SortJoinTransposeRule</code> must not push sort into <code class="language-plaintext highlighter-rouge">Project</code> that contains <code class="language-plaintext highlighter-rouge">OVER</code> expressions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3649">CALCITE-3649</a>] Hints should be propagated correctly in planner rules if original node is transformed to different kind</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3563">CALCITE-3563</a>] When resolving method call in calcite runtime, add type check and match mechanism for input arguments (DonnyZone)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3621">CALCITE-3621</a>] Push down sort to DB, SQL of <code class="highlighter-rouge">Sort</code> rel contains explicit field name instead of * (Lei Jiang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3621">CALCITE-3621</a>] Push down sort to DB, SQL of <code class="language-plaintext highlighter-rouge">Sort</code> rel contains explicit field name instead of * (Lei Jiang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3652">CALCITE-3652</a>] Add org.apiguardian:apiguardian-api to specify API status</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3632">CALCITE-3632</a>] Add IntersectToIntersectUnify Rule in SubstitutionVisitor (xy2953396112)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3643">CALCITE-3643</a>] Prevent matching <code class="highlighter-rouge">JoinCommuteRule</code> when both inputs are the same</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3630">CALCITE-3630</a>] Improve <code class="highlighter-rouge">ReduceExpressionsRule</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3643">CALCITE-3643</a>] Prevent matching <code class="language-plaintext highlighter-rouge">JoinCommuteRule</code> when both inputs are the same</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3630">CALCITE-3630</a>] Improve <code class="language-plaintext highlighter-rouge">ReduceExpressionsRule</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3607">CALCITE-3607</a>] Support <code class="highlighter-rouge">LogicalTableModify</code> in RelShuttle (xy2953396112)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3607">CALCITE-3607</a>] Support <code class="language-plaintext highlighter-rouge">LogicalTableModify</code> in RelShuttle (xy2953396112)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3618">CALCITE-3618</a>] ProjectToWindowRule - correct isDependent checking (lxian2shell)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3635">CALCITE-3635</a>] Supports hint option as string or numeric literal</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3525">CALCITE-3525</a>] <code class="highlighter-rouge">RexSimplify</code>: eliminate redundant rex calls in OR</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3525">CALCITE-3525</a>] <code class="language-plaintext highlighter-rouge">RexSimplify</code>: eliminate redundant rex calls in OR</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3620">CALCITE-3620</a>] Remove implicit lateral operator for temporal table join</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3387">CALCITE-3387</a>] Query with GROUP BY and JOIN … USING wrongly fails with “Column DEPTNO is ambiguous” error</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3604">CALCITE-3604</a>] Fixing <code class="highlighter-rouge">SqlXmlFunctionsTest</code> locale (ritesh-kapoor)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3608">CALCITE-3608</a>] Promote <code class="highlighter-rouge">RelOptUtil.createCastRel</code> to not create new projection if the input rel is already a project</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3603">CALCITE-3603</a>] <code class="highlighter-rouge">SqlLateralOperator</code>’s unparse add additional keyword <code class="highlighter-rouge">LATERAL</code> when the inner operator is <code class="highlighter-rouge">SqlSnapshot</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3604">CALCITE-3604</a>] Fixing <code class="language-plaintext highlighter-rouge">SqlXmlFunctionsTest</code> locale (ritesh-kapoor)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3608">CALCITE-3608</a>] Promote <code class="language-plaintext highlighter-rouge">RelOptUtil.createCastRel</code> to not create new projection if the input rel is already a project</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3603">CALCITE-3603</a>] <code class="language-plaintext highlighter-rouge">SqlLateralOperator</code>’s unparse add additional keyword <code class="language-plaintext highlighter-rouge">LATERAL</code> when the inner operator is <code class="language-plaintext highlighter-rouge">SqlSnapshot</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3599">CALCITE-3599</a>] Override toString() of <code class="highlighter-rouge">RexRangeRef</code> to avoid null string</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3598">CALCITE-3598</a>] <code class="highlighter-rouge">EnumerableTableScan</code>: wrong <code class="highlighter-rouge">JavaRowFormat</code> for elementType String</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3599">CALCITE-3599</a>] Override toString() of <code class="language-plaintext highlighter-rouge">RexRangeRef</code> to avoid null string</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3598">CALCITE-3598</a>] <code class="language-plaintext highlighter-rouge">EnumerableTableScan</code>: wrong <code class="language-plaintext highlighter-rouge">JavaRowFormat</code> for elementType String</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3575">CALCITE-3575</a>] IndexOutOfBoundsException when converting sql to rel</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3462">CALCITE-3462</a>] Add projectExcept method in <code class="highlighter-rouge">RelBuilder</code> for projecting out expressions</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3535">CALCITE-3535</a>] <code class="highlighter-rouge">EnumerableJoinRule</code>: remove unnecessary <code class="highlighter-rouge">Filter</code> on top of <code class="highlighter-rouge">INNER</code> Join</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3462">CALCITE-3462</a>] Add projectExcept method in <code class="language-plaintext highlighter-rouge">RelBuilder</code> for projecting out expressions</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3535">CALCITE-3535</a>] <code class="language-plaintext highlighter-rouge">EnumerableJoinRule</code>: remove unnecessary <code class="language-plaintext highlighter-rouge">Filter</code> on top of <code class="language-plaintext highlighter-rouge">INNER</code> Join</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3520">CALCITE-3520</a>] Type cast from primitive to box is not correct (DonnyZone)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3481">CALCITE-3481</a>] Support convert <code class="highlighter-rouge">TableFunctionScan</code> to <code class="highlighter-rouge">SqlNode</code> (Wang Yanlin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3481">CALCITE-3481</a>] Support convert <code class="language-plaintext highlighter-rouge">TableFunctionScan</code> to <code class="language-plaintext highlighter-rouge">SqlNode</code> (Wang Yanlin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3565">CALCITE-3565</a>] Explicitly cast assignable operand types to decimal for udf (DonnyZone)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3547">CALCITE-3547</a>] SqlValidatorException because Planner cannot find UDFs added to schema (Chenxiao Mao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3246">CALCITE-3246</a>] NullPointerException while deserializing udf operator (Wang Yanlin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3429">CALCITE-3429</a>] AssertionError for user-defined table function with map argument (Wang Yanlin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3560">CALCITE-3560</a>] Additional calcite.util.Source implementation for generic text source (eg. CharSource)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3550">CALCITE-3550</a>] Make <code class="highlighter-rouge">SqlTypeAssignmentRules</code> conversion mapping pluggable</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3546">CALCITE-3546</a>] Improve <code class="highlighter-rouge">EnumerableDefaults</code> nested loop join
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3550">CALCITE-3550</a>] Make <code class="language-plaintext highlighter-rouge">SqlTypeAssignmentRules</code> conversion mapping pluggable</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3546">CALCITE-3546</a>] Improve <code class="language-plaintext highlighter-rouge">EnumerableDefaults</code> nested loop join
 Provide a new implementation of nested loop join that, unlike the existing one, does not
 require to build the complete result as a list before returning it. Instead, it iterates
 through the outer and inner enumerables and returns the results step by step.</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3281">CALCITE-3281</a>] Support mixed Primitive types for <code class="highlighter-rouge">BinaryExpression</code> evaluate method (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3561">CALCITE-3561</a>] Support using unnest in <code class="highlighter-rouge">Interpreter</code> (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3566">CALCITE-3566</a>] <code class="highlighter-rouge">EnumerableIntersect</code> and <code class="highlighter-rouge">EnumerableMinus</code> convert to Logical (xzh_dz)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3567">CALCITE-3567</a>] Unnest support Map wrapped with <code class="highlighter-rouge">RecordType</code> (Wang Yanlin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3281">CALCITE-3281</a>] Support mixed Primitive types for <code class="language-plaintext highlighter-rouge">BinaryExpression</code> evaluate method (Wang Yanlin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3561">CALCITE-3561</a>] Support using unnest in <code class="language-plaintext highlighter-rouge">Interpreter</code> (Wang Yanlin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3566">CALCITE-3566</a>] <code class="language-plaintext highlighter-rouge">EnumerableIntersect</code> and <code class="language-plaintext highlighter-rouge">EnumerableMinus</code> convert to Logical (xzh_dz)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3567">CALCITE-3567</a>] Unnest support Map wrapped with <code class="language-plaintext highlighter-rouge">RecordType</code> (Wang Yanlin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3569">CALCITE-3569</a>] IndexOutOfBoundsException when pushing simplified filter to view</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3536">CALCITE-3536</a>] NPE when executing plan with <code class="highlighter-rouge">Coalesce</code> due to wrong NullAs strategy (Jin Xing)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3355">CALCITE-3355</a>] Deduce whether <code class="highlighter-rouge">CASE</code> and <code class="highlighter-rouge">COALESCE</code> may produce NULL values</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3536">CALCITE-3536</a>] NPE when executing plan with <code class="language-plaintext highlighter-rouge">Coalesce</code> due to wrong NullAs strategy (Jin Xing)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3355">CALCITE-3355</a>] Deduce whether <code class="language-plaintext highlighter-rouge">CASE</code> and <code class="language-plaintext highlighter-rouge">COALESCE</code> may produce NULL values</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3473">CALCITE-3473</a>] Getting unique result for table scan should contain key column(s) (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3544">CALCITE-3544</a>] <code class="highlighter-rouge">RexSimplify</code> does not exploit all known predicates</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3353">CALCITE-3353</a>] <code class="highlighter-rouge">ProjectJoinTransposeRule</code> caused AssertionError when creating a new Join (Wenhui Tang)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3539">CALCITE-3539</a>] <code class="highlighter-rouge">EnumerableDefaults#nestedLoopJoin</code> returns duplicates for JoinType.SEMI</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3521">CALCITE-3521</a>] <code class="highlighter-rouge">CalciteSystemProperty</code> failed to load config file</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3544">CALCITE-3544</a>] <code class="language-plaintext highlighter-rouge">RexSimplify</code> does not exploit all known predicates</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3353">CALCITE-3353</a>] <code class="language-plaintext highlighter-rouge">ProjectJoinTransposeRule</code> caused AssertionError when creating a new Join (Wenhui Tang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3539">CALCITE-3539</a>] <code class="language-plaintext highlighter-rouge">EnumerableDefaults#nestedLoopJoin</code> returns duplicates for JoinType.SEMI</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3521">CALCITE-3521</a>] <code class="language-plaintext highlighter-rouge">CalciteSystemProperty</code> failed to load config file</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3512">CALCITE-3512</a>] Query fails when comparing Time/TimeStamp types (DonnyZone)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3534">CALCITE-3534</a>] Support parse(unparse) alien system non-standard data type</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3454">CALCITE-3454</a>] Support <code class="highlighter-rouge">Exchange</code>, <code class="highlighter-rouge">SetOp</code> and <code class="highlighter-rouge">TableModify</code> for builtin metadata query (xy2953396112)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3527">CALCITE-3527</a>] Enrich tests for SQL hints in <code class="highlighter-rouge">SqlHintsConverterTest</code> (Shuo Cheng)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3245">CALCITE-3245</a>] <code class="highlighter-rouge">CompileException</code> in Janino when a query contains a division between a <code class="highlighter-rouge">Double</code> and a <code class="highlighter-rouge">BigDecimal</code> (DonnyZone)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3492">CALCITE-3492</a>] <code class="highlighter-rouge">RexUtil.simplifyOrs()</code> throws exception if terms has 1 RexNode</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3519">CALCITE-3519</a>] Use List instead of <code class="highlighter-rouge">BitSet</code> to keep inheritPath in RelHint (Shuo Cheng)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3491">CALCITE-3491</a>] Remove unused method <code class="highlighter-rouge">VolcanoPlanner.completeConversion()</code> (Xiening Dai)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3454">CALCITE-3454</a>] Support <code class="language-plaintext highlighter-rouge">Exchange</code>, <code class="language-plaintext highlighter-rouge">SetOp</code> and <code class="language-plaintext highlighter-rouge">TableModify</code> for builtin metadata query (xy2953396112)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3527">CALCITE-3527</a>] Enrich tests for SQL hints in <code class="language-plaintext highlighter-rouge">SqlHintsConverterTest</code> (Shuo Cheng)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3245">CALCITE-3245</a>] <code class="language-plaintext highlighter-rouge">CompileException</code> in Janino when a query contains a division between a <code class="language-plaintext highlighter-rouge">Double</code> and a <code class="language-plaintext highlighter-rouge">BigDecimal</code> (DonnyZone)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3492">CALCITE-3492</a>] <code class="language-plaintext highlighter-rouge">RexUtil.simplifyOrs()</code> throws exception if terms has 1 RexNode</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3519">CALCITE-3519</a>] Use List instead of <code class="language-plaintext highlighter-rouge">BitSet</code> to keep inheritPath in RelHint (Shuo Cheng)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3491">CALCITE-3491</a>] Remove unused method <code class="language-plaintext highlighter-rouge">VolcanoPlanner.completeConversion()</code> (Xiening Dai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3498">CALCITE-3498</a>] Unnest operation’s ordinality should be deterministic (DonnyZone)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3494">CALCITE-3494</a>] Support decimal type aggregate in Interpreter (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3503">CALCITE-3503</a>] NPE at <code class="highlighter-rouge">VolcanoPlanner#isValid</code> when DEBUG is enabled (Xiening Dai)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3448">CALCITE-3448</a>] <code class="highlighter-rouge">AggregateOnCalcToAggUnifyRule</code> may ignore Project incorrectly (Jin Xing)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3476">CALCITE-3476</a>] <code class="highlighter-rouge">ParameterScope</code> should override resolveColumn interface (Jark Wu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3474">CALCITE-3474</a>] NullPointerException in <code class="highlighter-rouge">SqlSimpleParser</code> toke.s.equals() (Xiucheng Qu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3469">CALCITE-3469</a>] Wrong rel used in <code class="highlighter-rouge">SubstitutionVisitor#rowTypesAreEquivalent</code> (Min Dai)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3487">CALCITE-3487</a>] Should not hard code <code class="highlighter-rouge">RelMetadataQuery</code> class in VolcanoPlanner.isValid() (Xiening Dai)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3482">CALCITE-3482</a>] Equality of nested <code class="highlighter-rouge">ROW</code>s returns false for identical literal value</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3503">CALCITE-3503</a>] NPE at <code class="language-plaintext highlighter-rouge">VolcanoPlanner#isValid</code> when DEBUG is enabled (Xiening Dai)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3448">CALCITE-3448</a>] <code class="language-plaintext highlighter-rouge">AggregateOnCalcToAggUnifyRule</code> may ignore Project incorrectly (Jin Xing)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3476">CALCITE-3476</a>] <code class="language-plaintext highlighter-rouge">ParameterScope</code> should override resolveColumn interface (Jark Wu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3474">CALCITE-3474</a>] NullPointerException in <code class="language-plaintext highlighter-rouge">SqlSimpleParser</code> toke.s.equals() (Xiucheng Qu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3469">CALCITE-3469</a>] Wrong rel used in <code class="language-plaintext highlighter-rouge">SubstitutionVisitor#rowTypesAreEquivalent</code> (Min Dai)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3487">CALCITE-3487</a>] Should not hard code <code class="language-plaintext highlighter-rouge">RelMetadataQuery</code> class in VolcanoPlanner.isValid() (Xiening Dai)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3482">CALCITE-3482</a>] Equality of nested <code class="language-plaintext highlighter-rouge">ROW</code>s returns false for identical literal value</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3479">CALCITE-3479</a>] Stack overflow error thrown when running join query (Xiening Dai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3435">CALCITE-3435</a>] Enable decimal modulus operation to allow numeric with non-zero scale (DonnyZone)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3456">CALCITE-3456</a>] AssertionError throws for aggregation with same digest <code class="highlighter-rouge">IN</code> subqueries in same scope</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3456">CALCITE-3456</a>] AssertionError throws for aggregation with same digest <code class="language-plaintext highlighter-rouge">IN</code> subqueries in same scope</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3408">CALCITE-3408</a>] Add support for enumerable intersect/minus all (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3423">CALCITE-3423</a>] Support using <code class="highlighter-rouge">CAST</code> operation and <code class="highlighter-rouge">BOOLEAN</code> type value in table macro (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3458">CALCITE-3458</a>] Remove desc in <code class="highlighter-rouge">AbstractRelNode</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3423">CALCITE-3423</a>] Support using <code class="language-plaintext highlighter-rouge">CAST</code> operation and <code class="language-plaintext highlighter-rouge">BOOLEAN</code> type value in table macro (Wang Yanlin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3458">CALCITE-3458</a>] Remove desc in <code class="language-plaintext highlighter-rouge">AbstractRelNode</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3400">CALCITE-3400</a>] Implement left/right/semi/anti/full join in interpreter (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3254">CALCITE-3254</a>] Exception while deserializing with interval type or with empty partition/order key for <code class="highlighter-rouge">RexOver</code> (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3457">CALCITE-3457</a>] <code class="highlighter-rouge">RexSimplify</code> incorrectly simplifies <code class="highlighter-rouge">IS NOT NULL</code> operator with <code class="highlighter-rouge">ITEM</code> call</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3433">CALCITE-3433</a>] <code class="highlighter-rouge">EQUALS</code> operator between date/timestamp types returns false if the type is nullable (DonnyZone)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3449">CALCITE-3449</a>] Sync the table name logic from <code class="highlighter-rouge">TableScan</code> into the <code class="highlighter-rouge">TableModify</code> (dy.Zhuang)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3376">CALCITE-3376</a>] <code class="highlighter-rouge">VolcanoPlanner</code> CannotPlanException: best rel is null
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3254">CALCITE-3254</a>] Exception while deserializing with interval type or with empty partition/order key for <code class="language-plaintext highlighter-rouge">RexOver</code> (Wang Yanlin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3457">CALCITE-3457</a>] <code class="language-plaintext highlighter-rouge">RexSimplify</code> incorrectly simplifies <code class="language-plaintext highlighter-rouge">IS NOT NULL</code> operator with <code class="language-plaintext highlighter-rouge">ITEM</code> call</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3433">CALCITE-3433</a>] <code class="language-plaintext highlighter-rouge">EQUALS</code> operator between date/timestamp types returns false if the type is nullable (DonnyZone)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3449">CALCITE-3449</a>] Sync the table name logic from <code class="language-plaintext highlighter-rouge">TableScan</code> into the <code class="language-plaintext highlighter-rouge">TableModify</code> (dy.Zhuang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3376">CALCITE-3376</a>] <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> CannotPlanException: best rel is null
 even though there is an option with non-infinite cost Problem
 solved via <a href="https://issues.apache.org/jira/browse/CALCITE-2018">CALCITE-2018</a>,
 just add a unit test for this specific scenario</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3454">CALCITE-3454</a>] Support <code class="highlighter-rouge">Exchange</code> in <code class="highlighter-rouge">RelMdMaxRowCount</code>,<code class="highlighter-rouge">RelMdMinRowCount</code>,<code class="highlighter-rouge">RelMdRowCount</code> (xy2953396112)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3454">CALCITE-3454</a>] Support <code class="language-plaintext highlighter-rouge">Exchange</code> in <code class="language-plaintext highlighter-rouge">RelMdMaxRowCount</code>,<code class="language-plaintext highlighter-rouge">RelMdMinRowCount</code>,<code class="language-plaintext highlighter-rouge">RelMdRowCount</code> (xy2953396112)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2018">CALCITE-2018</a>] Queries failed with AssertionError: rel has lower cost than best cost of subset</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3446">CALCITE-3446</a>] Make <code class="highlighter-rouge">RelMetadataQuery</code> extensible</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3390">CALCITE-3390</a>] Add <code class="highlighter-rouge">ITEM</code> expression to <code class="highlighter-rouge">SqlKind</code> and include it in the policy map for Strong (Aman Sinha)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3446">CALCITE-3446</a>] Make <code class="language-plaintext highlighter-rouge">RelMetadataQuery</code> extensible</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3390">CALCITE-3390</a>] Add <code class="language-plaintext highlighter-rouge">ITEM</code> expression to <code class="language-plaintext highlighter-rouge">SqlKind</code> and include it in the policy map for Strong (Aman Sinha)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3334">CALCITE-3334</a>] Refinement for Substitution-Based MV Matching (Jin Xing)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3439">CALCITE-3439</a>] Support <code class="highlighter-rouge">Intersect</code> and <code class="highlighter-rouge">Minus</code> in <code class="highlighter-rouge">RelMdPredicates</code> (Jin Xing)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3451">CALCITE-3451</a>] Support <code class="highlighter-rouge">TableModify</code> in <code class="highlighter-rouge">RelMdNodeTypes</code> (xy2953396113)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3439">CALCITE-3439</a>] Support <code class="language-plaintext highlighter-rouge">Intersect</code> and <code class="language-plaintext highlighter-rouge">Minus</code> in <code class="language-plaintext highlighter-rouge">RelMdPredicates</code> (Jin Xing)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3451">CALCITE-3451</a>] Support <code class="language-plaintext highlighter-rouge">TableModify</code> in <code class="language-plaintext highlighter-rouge">RelMdNodeTypes</code> (xy2953396113)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3444">CALCITE-3444</a>] Upgrade SQLLine to 1.9.0, and solve “Class path contains multiple SLF4J bindings” problem</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3436">CALCITE-3436</a>] In <code class="highlighter-rouge">CalciteConnectionConfigImpl</code>, add isSet and unset methods (Ryan Fu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3440">CALCITE-3440</a>] <code class="highlighter-rouge">RelToSqlConverter</code> does not properly alias ambiguous <code class="highlighter-rouge">ORDER BY</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3436">CALCITE-3436</a>] In <code class="language-plaintext highlighter-rouge">CalciteConnectionConfigImpl</code>, add isSet and unset methods (Ryan Fu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3440">CALCITE-3440</a>] <code class="language-plaintext highlighter-rouge">RelToSqlConverter</code> does not properly alias ambiguous <code class="language-plaintext highlighter-rouge">ORDER BY</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3441">CALCITE-3441</a>] Remove <code class="highlighter-rouge">SqlTypeExplicitPrecedenceList.COMPACT_NUMERIC_TYPES</code> because the NULL delimiters are useless</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3428">CALCITE-3428</a>] Refine <code class="highlighter-rouge">RelMdColumnUniqueness</code> for <code class="highlighter-rouge">Filter</code> by considering constant columns (Jin Xing)</li>
-  <li>Add <code class="highlighter-rouge">RelBuilder.fields(ImmutableBitSet)</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3441">CALCITE-3441</a>] Remove <code class="language-plaintext highlighter-rouge">SqlTypeExplicitPrecedenceList.COMPACT_NUMERIC_TYPES</code> because the NULL delimiters are useless</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3428">CALCITE-3428</a>] Refine <code class="language-plaintext highlighter-rouge">RelMdColumnUniqueness</code> for <code class="language-plaintext highlighter-rouge">Filter</code> by considering constant columns (Jin Xing)</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">RelBuilder.fields(ImmutableBitSet)</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3424">CALCITE-3424</a>] AssertionError thrown for user-defined table function with array argument (Igor Guzenko)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3414">CALCITE-3414</a>] In calcite-core, use RexToLixTranslator.convert for type conversion code generation uniformly (DonnyZone)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3416">CALCITE-3416</a>] SQL Dialects DEFAULTs should be more extensible</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3393">CALCITE-3393</a>] <code class="highlighter-rouge">RelStructuredTypeFlattener</code>: improve support for functions with struct input (Igor Guzenko)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3318">CALCITE-3318</a>] Preserving <code class="highlighter-rouge">CAST</code> of <code class="highlighter-rouge">STRING</code> operand in binary comparison for BigQuery (soma-mondal)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3393">CALCITE-3393</a>] <code class="language-plaintext highlighter-rouge">RelStructuredTypeFlattener</code>: improve support for functions with struct input (Igor Guzenko)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3318">CALCITE-3318</a>] Preserving <code class="language-plaintext highlighter-rouge">CAST</code> of <code class="language-plaintext highlighter-rouge">STRING</code> operand in binary comparison for BigQuery (soma-mondal)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2792">CALCITE-2792</a>] Stackoverflow while evaluating filter with large number of OR conditions</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3407">CALCITE-3407</a>] Implement <code class="highlighter-rouge">MINUS</code> and <code class="highlighter-rouge">INTERSECT</code> in interpreter (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3420">CALCITE-3420</a>] <code class="highlighter-rouge">NullPointerException</code> throws for implicit type coercion of nested <code class="highlighter-rouge">SET</code> operations</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3403">CALCITE-3403</a>] <code class="highlighter-rouge">RelMetadataQuery</code> reuse (Jin Xing)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3407">CALCITE-3407</a>] Implement <code class="language-plaintext highlighter-rouge">MINUS</code> and <code class="language-plaintext highlighter-rouge">INTERSECT</code> in interpreter (Wang Yanlin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3420">CALCITE-3420</a>] <code class="language-plaintext highlighter-rouge">NullPointerException</code> throws for implicit type coercion of nested <code class="language-plaintext highlighter-rouge">SET</code> operations</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3403">CALCITE-3403</a>] <code class="language-plaintext highlighter-rouge">RelMetadataQuery</code> reuse (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3411">CALCITE-3411</a>] Incorrect code generated for BigDecimal ConstantExpression (DonnyZone)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3410">CALCITE-3410</a>] Simplify <code class="highlighter-rouge">RelOptRulesTest</code> and <code class="highlighter-rouge">HepPlannerTest</code> by making test methods fluent</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3404">CALCITE-3404</a>] In <code class="highlighter-rouge">AggregateExpandDistinctAggregatesRule</code>, treat all the agg expressions as distinct
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3410">CALCITE-3410</a>] Simplify <code class="language-plaintext highlighter-rouge">RelOptRulesTest</code> and <code class="language-plaintext highlighter-rouge">HepPlannerTest</code> by making test methods fluent</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3404">CALCITE-3404</a>] In <code class="language-plaintext highlighter-rouge">AggregateExpandDistinctAggregatesRule</code>, treat all the agg expressions as distinct
 if they have the same arguments
 and the non-distinct expressions distinct constraints can be ignored</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3382">CALCITE-3382</a>] Hard-wire the <code class="highlighter-rouge">TUMBLE</code> grouping function into SQL parser (Rui Wang)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3396">CALCITE-3396</a>] Materialized view matches unexpectedly for <code class="highlighter-rouge">UNION</code> with different ‘all’ property (Jin Xing)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3379">CALCITE-3379</a>] Support expand <code class="highlighter-rouge">STRING</code> column expression of table during sql-to-rel conversion</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3382">CALCITE-3382</a>] Hard-wire the <code class="language-plaintext highlighter-rouge">TUMBLE</code> grouping function into SQL parser (Rui Wang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3396">CALCITE-3396</a>] Materialized view matches unexpectedly for <code class="language-plaintext highlighter-rouge">UNION</code> with different ‘all’ property (Jin Xing)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3379">CALCITE-3379</a>] Support expand <code class="language-plaintext highlighter-rouge">STRING</code> column expression of table during sql-to-rel conversion</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3397">CALCITE-3397</a>] AssertionError for interpretering multiset value (Wang Yanlin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3383">CALCITE-3383</a>] Plural time units</li>
   <li>Re-format and re-organize config.fmpp files that customize the SQL parser</li>
@@ -2459,22 +2459,22 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3386">CALCITE-3386</a>] CyclicMetadataException singleton instance causes confusion when debugging (Zuozhi Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3389">CALCITE-3389</a>] Test may fail if HashSet iterates in different order (contextshuffling)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3361">CALCITE-3361</a>] Add ‘lenientOperatorLookup’ connection property</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3347">CALCITE-3347</a>] IndexOutOfBoundsException in <code class="highlighter-rouge">FixNullabilityShuttle</code> when using <code class="highlighter-rouge">FilterIntoJoinRule</code> (Wang Yanlin, Shuming Li)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3347">CALCITE-3347</a>] IndexOutOfBoundsException in <code class="language-plaintext highlighter-rouge">FixNullabilityShuttle</code> when using <code class="language-plaintext highlighter-rouge">FilterIntoJoinRule</code> (Wang Yanlin, Shuming Li)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3374">CALCITE-3374</a>] Error format check result for explain plan as json (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3363">CALCITE-3363</a>] <code class="highlighter-rouge">JoinUnionTransposeRule.RIGHT_UNION</code> should not match <code class="highlighter-rouge">SEMI</code>/<code class="highlighter-rouge">ANTI</code> Join (Jin Xing)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3369">CALCITE-3369</a>] In <code class="highlighter-rouge">LatticeSuggester</code>, recommend lattices based on <code class="highlighter-rouge">UNION</code> queries</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3365">CALCITE-3365</a>] Don’t require use of <code class="highlighter-rouge">JdbcSchema</code> in <code class="highlighter-rouge">QuerySqlStatisticProvider</code> (Lindsey Meyer)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3239">CALCITE-3239</a>] <code class="highlighter-rouge">Calc#accept(RexShuttle shuttle)</code> does not update rowType. (Jin Xing)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3288">CALCITE-3288</a>] In <code class="highlighter-rouge">ConstantExpression</code> support <code class="highlighter-rouge">SET</code> literals (xy2953396112)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1178">CALCITE-1178</a>] Allow <code class="highlighter-rouge">SqlBetweenOperator</code> to compare <code class="highlighter-rouge">DATE</code> and <code class="highlighter-rouge">TIMESTAMP</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3363">CALCITE-3363</a>] <code class="language-plaintext highlighter-rouge">JoinUnionTransposeRule.RIGHT_UNION</code> should not match <code class="language-plaintext highlighter-rouge">SEMI</code>/<code class="language-plaintext highlighter-rouge">ANTI</code> Join (Jin Xing)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3369">CALCITE-3369</a>] In <code class="language-plaintext highlighter-rouge">LatticeSuggester</code>, recommend lattices based on <code class="language-plaintext highlighter-rouge">UNION</code> queries</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3365">CALCITE-3365</a>] Don’t require use of <code class="language-plaintext highlighter-rouge">JdbcSchema</code> in <code class="language-plaintext highlighter-rouge">QuerySqlStatisticProvider</code> (Lindsey Meyer)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3239">CALCITE-3239</a>] <code class="language-plaintext highlighter-rouge">Calc#accept(RexShuttle shuttle)</code> does not update rowType. (Jin Xing)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3288">CALCITE-3288</a>] In <code class="language-plaintext highlighter-rouge">ConstantExpression</code> support <code class="language-plaintext highlighter-rouge">SET</code> literals (xy2953396112)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1178">CALCITE-1178</a>] Allow <code class="language-plaintext highlighter-rouge">SqlBetweenOperator</code> to compare <code class="language-plaintext highlighter-rouge">DATE</code> and <code class="language-plaintext highlighter-rouge">TIMESTAMP</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3348">CALCITE-3348</a>] AssertionError while determining distribution of Calc (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3287">CALCITE-3287</a>] <code class="highlighter-rouge">Union</code> in <code class="highlighter-rouge">RelMdRowCount.java</code> doesn’t take into account ‘union all’ (Hong Shen)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3357">CALCITE-3357</a>] <code class="highlighter-rouge">Trivial</code> null checking in <code class="highlighter-rouge">RelSet#addAbstractConverters</code> (Jin Xing)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3286">CALCITE-3286</a>] In <code class="highlighter-rouge">LatticeSuggester</code>, allow join conditions that use expressions</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3360">CALCITE-3360</a>] <code class="highlighter-rouge">SqlValidator</code> throws NPE for unregistered function without implicit type coercion</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3316">CALCITE-3316</a>] Exception while deserializing <code class="highlighter-rouge">LogicalCorrelate</code> from json string (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3317">CALCITE-3317</a>] Add a public constructor for <code class="highlighter-rouge">LogicalCalc</code> with RelInput type parameter (Wang Yanlin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3287">CALCITE-3287</a>] <code class="language-plaintext highlighter-rouge">Union</code> in <code class="language-plaintext highlighter-rouge">RelMdRowCount.java</code> doesn’t take into account ‘union all’ (Hong Shen)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3357">CALCITE-3357</a>] <code class="language-plaintext highlighter-rouge">Trivial</code> null checking in <code class="language-plaintext highlighter-rouge">RelSet#addAbstractConverters</code> (Jin Xing)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3286">CALCITE-3286</a>] In <code class="language-plaintext highlighter-rouge">LatticeSuggester</code>, allow join conditions that use expressions</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3360">CALCITE-3360</a>] <code class="language-plaintext highlighter-rouge">SqlValidator</code> throws NPE for unregistered function without implicit type coercion</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3316">CALCITE-3316</a>] Exception while deserializing <code class="language-plaintext highlighter-rouge">LogicalCorrelate</code> from json string (Wang Yanlin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3317">CALCITE-3317</a>] Add a public constructor for <code class="language-plaintext highlighter-rouge">LogicalCalc</code> with RelInput type parameter (Wang Yanlin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3319">CALCITE-3319</a>] AssertionError when reducing decimals (Wang Yanlin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3331">CALCITE-3331</a>] Support implicit type cast for operators that use single operand family checker</li>
 </ul>
@@ -2482,26 +2482,26 @@
 <h5 id="adapters-1-22-0">Adapters</h5>
 
 <ul>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3751">CALCITE-3751</a>] JDBC adapter generates SQL with wrong aliases in <code class="highlighter-rouge">GROUP BY</code> … <code class="highlighter-rouge">ORDER BY</code> query</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3593">CALCITE-3593</a>] JDBC adapter generates incorrect <code class="highlighter-rouge">HAVING</code> clause for BigQuery (Jin Xing)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3466">CALCITE-3466</a>] JDBC adapter incorrectly drops <code class="highlighter-rouge">GROUP BY</code> clause of sub-query (Wang Weidong)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3154">CALCITE-3154</a>] <code class="highlighter-rouge">RelToSqlConverter</code> generates <code class="highlighter-rouge">NULLS LAST</code> and <code class="highlighter-rouge">NULLS FIRST</code> wrongly
-when using <code class="highlighter-rouge">MysqlSqlDialect</code> to convert <code class="highlighter-rouge">RexOver</code> to sql (Wenhui Tang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3751">CALCITE-3751</a>] JDBC adapter generates SQL with wrong aliases in <code class="language-plaintext highlighter-rouge">GROUP BY</code> … <code class="language-plaintext highlighter-rouge">ORDER BY</code> query</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3593">CALCITE-3593</a>] JDBC adapter generates incorrect <code class="language-plaintext highlighter-rouge">HAVING</code> clause for BigQuery (Jin Xing)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3466">CALCITE-3466</a>] JDBC adapter incorrectly drops <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause of sub-query (Wang Weidong)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3154">CALCITE-3154</a>] <code class="language-plaintext highlighter-rouge">RelToSqlConverter</code> generates <code class="language-plaintext highlighter-rouge">NULLS LAST</code> and <code class="language-plaintext highlighter-rouge">NULLS FIRST</code> wrongly
+when using <code class="language-plaintext highlighter-rouge">MysqlSqlDialect</code> to convert <code class="language-plaintext highlighter-rouge">RexOver</code> to sql (Wenhui Tang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2672">CALCITE-2672</a>] Qualifying the common column should not be allowed in Oracle dialect and SQL standard</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3568">CALCITE-3568</a>] BigQuery, Hive, Spark SQL dialects do not support nested aggregates (Divyanshu Srivastava)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3381">CALCITE-3381</a>] In JDBC adapter, when using BigQuery dialect, converts SQL types to BigQuery types correctly(Rui Wang)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3381">CALCITE-3381</a>] Unparse to correct BigQuery integral syntax: <code class="highlighter-rouge">INTERVAL</code> int64 time_unit.
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3381">CALCITE-3381</a>] Unparse to correct BigQuery integral syntax: <code class="language-plaintext highlighter-rouge">INTERVAL</code> int64 time_unit.
 Range time unit is not supported yet by BigQuery (amaliujia)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3486">CALCITE-3486</a>] In JDBC adapter, when generating <code class="highlighter-rouge">ROW </code>value expression,
-generates the <code class="highlighter-rouge">ROW</code> keyword only if the dialect allows it (quxiucheng)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3486">CALCITE-3486</a>] In JDBC adapter, when generating <code class="language-plaintext highlighter-rouge">ROW </code>value expression,
+generates the <code class="language-plaintext highlighter-rouge">ROW</code> keyword only if the dialect allows it (quxiucheng)</li>
   <li>Use proper ClassLoader in SparkHandlerImpl</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3381">CALCITE-3381</a>] When using BigQuery dialect, Rel2SQL converter converts SQL types to BigQuery types (part2) (Rui Wang)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3475">CALCITE-3475</a>] JDBC adapter generates invalid SQL for <code class="highlighter-rouge">UNION ALL</code> on BigQuery (Steven Talbot)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3370">CALCITE-3370</a>] In JDBC adapter for Microsoft SQL Server, emulate <code class="highlighter-rouge">NULLS FIRST</code> using <code class="highlighter-rouge">CASE</code> expression (Justin Swett)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3344">CALCITE-3344</a>] In JDBC adapter, generate <code class="highlighter-rouge">SELECT TOP(n)</code> for MSSQL 2008 and earlier, and for <code class="highlighter-rouge">Sybase</code> ASE</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3475">CALCITE-3475</a>] JDBC adapter generates invalid SQL for <code class="language-plaintext highlighter-rouge">UNION ALL</code> on BigQuery (Steven Talbot)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3370">CALCITE-3370</a>] In JDBC adapter for Microsoft SQL Server, emulate <code class="language-plaintext highlighter-rouge">NULLS FIRST</code> using <code class="language-plaintext highlighter-rouge">CASE</code> expression (Justin Swett)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3344">CALCITE-3344</a>] In JDBC adapter, generate <code class="language-plaintext highlighter-rouge">SELECT TOP(n)</code> for MSSQL 2008 and earlier, and for <code class="language-plaintext highlighter-rouge">Sybase</code> ASE</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3300">CALCITE-3300</a>] In JDBC adapter, when generating SQL for count star, generates the star argument of the call (Wang Weidong)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3247">CALCITE-3247</a>] In JDBC adapter, when generating SQL for Hive, transform <code class="highlighter-rouge">SUBSTRING</code> function to correct format (Jacky Woo)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3282">CALCITE-3282</a>] In JDBC adapter, when generating SQL for Hive, generate <code class="highlighter-rouge">INTEGER</code> type as <code class="highlighter-rouge">INT</code> (huangfeng)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3247">CALCITE-3247</a>] In JDBC adapter, when generating SQL for Hive, transform <code class="language-plaintext highlighter-rouge">SUBSTRING</code> function to correct format (Jacky Woo)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3282">CALCITE-3282</a>] In JDBC adapter, when generating SQL for Hive, generate <code class="language-plaintext highlighter-rouge">INTEGER</code> type as <code class="language-plaintext highlighter-rouge">INT</code> (huangfeng)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3335">CALCITE-3335</a>] In ElasticSearch adapter, introduce configuration parameter “hosts” which deprecates previous “coordinates” (Shikha Somani)</li>
 </ul>
 
@@ -2514,7 +2514,7 @@
   <li>Color test results in Gradle output</li>
   <li>In JDBC adapter tests that check generated SQL, extract SQL from string literals in generated Java</li>
   <li>Refactor MaterializationTest to use a fluent API</li>
-  <li>Allow <code class="highlighter-rouge">CREATE TABLE ... AS SELECT ...</code> in Quidem tests</li>
+  <li>Allow <code class="language-plaintext highlighter-rouge">CREATE TABLE ... AS SELECT ...</code> in Quidem tests</li>
   <li>Increase test coverage for regular CI jobs: move @Tag(slow) annotations to test methods</li>
   <li>Use concurrent test execution by default</li>
   <li>Add gradle task ‘aggregateJavadocIncludingTests’ that builds javadoc for both main and test</li>
@@ -2526,10 +2526,10 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3625">CALCITE-3625</a>] Update mongo tests upgrade from junit4 to junit5 (Qianjin Xu)</li>
   <li>Move PGP signing to com.github.vlsi.stage-vote-release Gradle plugin</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3595">CALCITE-3595</a>] Test infrastructure overwrites reference log with wrong results (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3559">CALCITE-3559</a>] Drop <code class="highlighter-rouge">HydromaticFileSetCheck</code>, upgrade Checkstyle 7.8.2 → 8.27</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3559">CALCITE-3559</a>] Drop <code class="language-plaintext highlighter-rouge">HydromaticFileSetCheck</code>, upgrade Checkstyle 7.8.2 → 8.27</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3540">CALCITE-3540</a>] FoodmartTest produces many warnings due to incorrect use of CalciteAssert.pooled()</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3548">CALCITE-3548</a>] unlock ./gradlew :ubenchmark:jmh to run benchmarks</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3327">CALCITE-3327</a>] Simplify <code class="highlighter-rouge">SqlValidatorTest</code> and <code class="highlighter-rouge">SqlParserTest</code> by making test methods fluent</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3327">CALCITE-3327</a>] Simplify <code class="language-plaintext highlighter-rouge">SqlValidatorTest</code> and <code class="language-plaintext highlighter-rouge">SqlParserTest</code> by making test methods fluent</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2905">CALCITE-2905</a>] Migrate build scripts to Gradle</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2457">CALCITE-2457</a>] JUnit 4 → 5: trivial renames</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2457">CALCITE-2457</a>] Configure build to automatically replace common JUnit4 classes with JUnit5</li>
@@ -2543,13 +2543,13 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2905">CALCITE-2905</a>] Add hydromatic-resource as plain source file</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3457">CALCITE-3457</a>] Ignore fuzzer tests due to known unsolved issue</li>
   <li>Improve folder detection logic in DocumentationTest</li>
-  <li>Ignore <code class="highlighter-rouge">TpcdsLatticeSuggesterTest</code> because it does not work</li>
-  <li>Use <code class="highlighter-rouge">Class#getResource</code> in FileReaderTest instead of hard-coding file name</li>
-  <li>Simplify <code class="highlighter-rouge">RexProgramTest#reproducerFor3457</code> test</li>
-  <li>Add shrinker for <code class="highlighter-rouge">RexProgramFuzzy</code> so the results are simpler to reason about</li>
-  <li>Refactor <code class="highlighter-rouge">SqlPrettyWriterTest</code>, using a fluent API for invoking tests</li>
+  <li>Ignore <code class="language-plaintext highlighter-rouge">TpcdsLatticeSuggesterTest</code> because it does not work</li>
+  <li>Use <code class="language-plaintext highlighter-rouge">Class#getResource</code> in FileReaderTest instead of hard-coding file name</li>
+  <li>Simplify <code class="language-plaintext highlighter-rouge">RexProgramTest#reproducerFor3457</code> test</li>
+  <li>Add shrinker for <code class="language-plaintext highlighter-rouge">RexProgramFuzzy</code> so the results are simpler to reason about</li>
+  <li>Refactor <code class="language-plaintext highlighter-rouge">SqlPrettyWriterTest</code>, using a fluent API for invoking tests</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3362">CALCITE-3362</a>] Add some tests for empty Lattice (Wang Yanlin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3421">CALCITE-3421</a>] Reuse <code class="highlighter-rouge">RelMetadataQuery</code> in test suites</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3421">CALCITE-3421</a>] Reuse <code class="language-plaintext highlighter-rouge">RelMetadataQuery</code> in test suites</li>
 </ul>
 
 <h4 id="dependency-1-22-0">Dependency version upgrade</h4>
@@ -2596,16 +2596,16 @@
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2302">CALCITE-2302</a>);</li>
   <li>allows transformations of Pig Latin scripts into algebraic plans
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3122">CALCITE-3122</a>);</li>
-  <li>provides an implementation for the main features of <code class="highlighter-rouge">MATCH_RECOGNIZE</code> in the
-<code class="highlighter-rouge">Enumerable</code> convention
+  <li>provides an implementation for the main features of <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> in the
+<code class="language-plaintext highlighter-rouge">Enumerable</code> convention
 (<a href="https://issues.apache.org/jira/browse/CALCITE-1935">CALCITE-1935</a>);</li>
-  <li>supports correlated <code class="highlighter-rouge">ANY</code>/<code class="highlighter-rouge">SOME</code>/<code class="highlighter-rouge">ALL</code> sub-queries
+  <li>supports correlated <code class="language-plaintext highlighter-rouge">ANY</code>/<code class="language-plaintext highlighter-rouge">SOME</code>/<code class="language-plaintext highlighter-rouge">ALL</code> sub-queries
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3031">CALCITE-3031</a>);</li>
-  <li>introduces anonymous types based on <code class="highlighter-rouge">ROW</code>, <code class="highlighter-rouge">ARRAY</code>, and nested collection
+  <li>introduces anonymous types based on <code class="language-plaintext highlighter-rouge">ROW</code>, <code class="language-plaintext highlighter-rouge">ARRAY</code>, and nested collection
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3233">CALCITE-3233</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3231">CALCITE-3231</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3250">CALCITE-3250</a>);</li>
-  <li>brings new join algorithms for the <code class="highlighter-rouge">Enumerable</code> convention
+  <li>brings new join algorithms for the <code class="language-plaintext highlighter-rouge">Enumerable</code> convention
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2979">CALCITE-2979</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-2973">CALCITE-2973</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3284">CALCITE-3284</a>).</li>
@@ -2616,18 +2616,18 @@
 using Oracle JDK 8, 9, 10, 11, 12, 13 and OpenJDK 8, 9, 10, 11, 12, 13;
 Guava versions 19.0 to 27.1-jre;
 Apache Druid version 0.14.0-incubating;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <h4 id="breaking-1-21-0">Breaking Changes</h4>
 
 <ul>
-  <li>Core parser config.fmpp#dataTypeParserMethods should return <code class="highlighter-rouge">SqlTypeNameSpec</code>
-instead of <code class="highlighter-rouge">SqlIdentifier</code>.</li>
+  <li>Core parser config.fmpp#dataTypeParserMethods should return <code class="language-plaintext highlighter-rouge">SqlTypeNameSpec</code>
+instead of <code class="language-plaintext highlighter-rouge">SqlIdentifier</code>.</li>
   <li>The description of converter rules has slightly changed
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3115">CALCITE-3115</a>).
-In some rare cases this may lead to a <code class="highlighter-rouge">Rule description ... is not valid</code>
+In some rare cases this may lead to a <code class="language-plaintext highlighter-rouge">Rule description ... is not valid</code>
 exception. The exception can easily disappear by changing the name of the
-<code class="highlighter-rouge">Convention</code> which causes the problem.</li>
+<code class="language-plaintext highlighter-rouge">Convention</code> which causes the problem.</li>
 </ul>
 
 <h4 id="new-features-1-21-0">New features</h4>
@@ -2645,52 +2645,52 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2979">CALCITE-2979</a>]
 Add a block-based nested loop join algorithm (Khawla Mouhoubi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3263">CALCITE-3263</a>]
-Add <code class="highlighter-rouge">MD5</code>, <code class="highlighter-rouge">SHA1</code> SQL functions (Shuming Li)</li>
+Add <code class="language-plaintext highlighter-rouge">MD5</code>, <code class="language-plaintext highlighter-rouge">SHA1</code> SQL functions (Shuming Li)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3204">CALCITE-3204</a>]
-Implement <code class="highlighter-rouge">jps</code> command for OS adapter (Qianjin Xu)</li>
+Implement <code class="language-plaintext highlighter-rouge">jps</code> command for OS adapter (Qianjin Xu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3260">CALCITE-3260</a>]
 Add Expressions.evaluate(Node), a public API for evaluating linq4j expressions
 (Wang Yanlin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3280">CALCITE-3280</a>]
-Add <code class="highlighter-rouge">REGEXP_REPLACE</code> function in Oracle, MySQL libraries (Shuming Li)</li>
+Add <code class="language-plaintext highlighter-rouge">REGEXP_REPLACE</code> function in Oracle, MySQL libraries (Shuming Li)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3111">CALCITE-3111</a>]
-Add <code class="highlighter-rouge">RelBuilder.correlate</code> method, and allow custom implementations of
-<code class="highlighter-rouge">Correlate</code> in <code class="highlighter-rouge">RelDecorrelator</code> (Juhwan Kim)</li>
+Add <code class="language-plaintext highlighter-rouge">RelBuilder.correlate</code> method, and allow custom implementations of
+<code class="language-plaintext highlighter-rouge">Correlate</code> in <code class="language-plaintext highlighter-rouge">RelDecorrelator</code> (Juhwan Kim)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3252">CALCITE-3252</a>]
-Add <code class="highlighter-rouge">CONVERT_TIMEZONE</code>, <code class="highlighter-rouge">TO_DATE</code> and <code class="highlighter-rouge">TO_TIMESTAMP</code> non-standard SQL functions
+Add <code class="language-plaintext highlighter-rouge">CONVERT_TIMEZONE</code>, <code class="language-plaintext highlighter-rouge">TO_DATE</code> and <code class="language-plaintext highlighter-rouge">TO_TIMESTAMP</code> non-standard SQL functions
 (Lindsey Meyer)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3235">CALCITE-3235</a>]
-Add <code class="highlighter-rouge">CONCAT</code> function for Redshift (Ryan Fu)</li>
+Add <code class="language-plaintext highlighter-rouge">CONCAT</code> function for Redshift (Ryan Fu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3250">CALCITE-3250</a>]
-Support nested collection type for <code class="highlighter-rouge">SqlDataTypeSpec</code>
+Support nested collection type for <code class="language-plaintext highlighter-rouge">SqlDataTypeSpec</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1935">CALCITE-1935</a>]
-Implement <code class="highlighter-rouge">MATCH_RECOGNIZE</code> (Julian Feinauer, Zhiqiang-He)</li>
+Implement <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> (Julian Feinauer, Zhiqiang-He)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2843">CALCITE-2843</a>]
-Support PostgreSQL cast operator (<code class="highlighter-rouge">::</code>) (Muhammad Gelbana)</li>
+Support PostgreSQL cast operator (<code class="language-plaintext highlighter-rouge">::</code>) (Muhammad Gelbana)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3233">CALCITE-3233</a>]
-Support <code class="highlighter-rouge">ROW</code> type for <code class="highlighter-rouge">SqlDataTypeSpec</code>
+Support <code class="language-plaintext highlighter-rouge">ROW</code> type for <code class="language-plaintext highlighter-rouge">SqlDataTypeSpec</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3231">CALCITE-3231</a>]
-Support <code class="highlighter-rouge">ARRAY</code> type for <code class="highlighter-rouge">SqlDataTypeSpec</code>
+Support <code class="language-plaintext highlighter-rouge">ARRAY</code> type for <code class="language-plaintext highlighter-rouge">SqlDataTypeSpec</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2624">CALCITE-2624</a>]
 Add a rule to copy a sort below a join operator (Khawla Mouhoubi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3031">CALCITE-3031</a>]
-Support for correlated <code class="highlighter-rouge">ANY</code>/<code class="highlighter-rouge">SOME</code>/<code class="highlighter-rouge">ALL</code> sub-query (Vineet Garg)</li>
+Support for correlated <code class="language-plaintext highlighter-rouge">ANY</code>/<code class="language-plaintext highlighter-rouge">SOME</code>/<code class="language-plaintext highlighter-rouge">ALL</code> sub-query (Vineet Garg)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2510">CALCITE-2510</a>]
-Implement <code class="highlighter-rouge">CHR</code> function (Sergey Tsvetkov, Chunwei Lei)</li>
+Implement <code class="language-plaintext highlighter-rouge">CHR</code> function (Sergey Tsvetkov, Chunwei Lei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3176">CALCITE-3176</a>]
 File adapter for parsing JSON files</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3144">CALCITE-3144</a>]
-Add rule, <code class="highlighter-rouge">AggregateCaseToFilterRule</code>, that converts <code class="highlighter-rouge">SUM(CASE WHEN b THEN x
-END)</code> to <code class="highlighter-rouge">SUM(x) FILTER (WHERE b)</code>
+Add rule, <code class="language-plaintext highlighter-rouge">AggregateCaseToFilterRule</code>, that converts <code class="language-plaintext highlighter-rouge">SUM(CASE WHEN b THEN x
+END)</code> to <code class="language-plaintext highlighter-rouge">SUM(x) FILTER (WHERE b)</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2995">CALCITE-2995</a>]
-Implement <code class="highlighter-rouge">DAYNAME</code>,<code class="highlighter-rouge">MONTHNAME</code> functions; add <code class="highlighter-rouge">locale</code> connection property
+Implement <code class="language-plaintext highlighter-rouge">DAYNAME</code>,<code class="language-plaintext highlighter-rouge">MONTHNAME</code> functions; add <code class="language-plaintext highlighter-rouge">locale</code> connection property
 (xuqianjin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2460">CALCITE-2460</a>]
-[CALCITE-2459] Add <code class="highlighter-rouge">TO_BASE64</code>, <code class="highlighter-rouge">FROM_BASE64</code> SQL functions (Wenhui Tang)</li>
+[CALCITE-2459] Add <code class="language-plaintext highlighter-rouge">TO_BASE64</code>, <code class="language-plaintext highlighter-rouge">FROM_BASE64</code> SQL functions (Wenhui Tang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3063">CALCITE-3063</a>]
 Parse and process PostgreSQL posix regular expressions</li>
 </ul>
@@ -2701,211 +2701,211 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3321">CALCITE-3321</a>]
 Set casing rules for BigQuery SQL dialect (Lindsey Meyer)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3115">CALCITE-3115</a>]
-Cannot add <code class="highlighter-rouge">JdbcRule</code> instances that have different <code class="highlighter-rouge">JdbcConvention</code> to same
-<code class="highlighter-rouge">VolcanoPlanner</code>’s <code class="highlighter-rouge">RuleSet</code> (Wenhui Tang, Igor Guzenko)</li>
+Cannot add <code class="language-plaintext highlighter-rouge">JdbcRule</code> instances that have different <code class="language-plaintext highlighter-rouge">JdbcConvention</code> to same
+<code class="language-plaintext highlighter-rouge">VolcanoPlanner</code>’s <code class="language-plaintext highlighter-rouge">RuleSet</code> (Wenhui Tang, Igor Guzenko)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3309">CALCITE-3309</a>]
-Refactor <code class="highlighter-rouge">generatePredicate</code> method from <code class="highlighter-rouge">EnumerableNestedLoopJoin</code>,
-<code class="highlighter-rouge">EnumerableHashJoin</code>, and <code class="highlighter-rouge">EnumerableBatchNestedLoopJoin</code> into a single location</li>
+Refactor <code class="language-plaintext highlighter-rouge">generatePredicate</code> method from <code class="language-plaintext highlighter-rouge">EnumerableNestedLoopJoin</code>,
+<code class="language-plaintext highlighter-rouge">EnumerableHashJoin</code>, and <code class="language-plaintext highlighter-rouge">EnumerableBatchNestedLoopJoin</code> into a single location</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3310">CALCITE-3310</a>]
 Approximate and exact aggregate calls are recognized as the same during
 SQL-to-RelNode conversion</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3292">CALCITE-3292</a>]
 SqlToRelConverter#substituteSubQuery fails with NullPointerException when
-converting <code class="highlighter-rouge">SqlUpdate</code> (Jin Xing)</li>
+converting <code class="language-plaintext highlighter-rouge">SqlUpdate</code> (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3297">CALCITE-3297</a>]
-<code class="highlighter-rouge">PigToSqlAggregateRule</code> should be applied on multi-set projection to produce an
+<code class="language-plaintext highlighter-rouge">PigToSqlAggregateRule</code> should be applied on multi-set projection to produce an
 optimal plan (Igor Guzenko)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3295">CALCITE-3295</a>]
-Add aggregate call name in serialized json string for <code class="highlighter-rouge">RelNode</code> (Wang Yanlin)</li>
+Add aggregate call name in serialized json string for <code class="language-plaintext highlighter-rouge">RelNode</code> (Wang Yanlin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3296">CALCITE-3296</a>]
 Decorrelator shouldn’t give empty value when fetch and offset values are null
-in <code class="highlighter-rouge">Sort</code> rel (Juhwan Kim)</li>
+in <code class="language-plaintext highlighter-rouge">Sort</code> rel (Juhwan Kim)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3283">CALCITE-3283</a>]
-<code class="highlighter-rouge">RelSubset</code> does not contain its best <code class="highlighter-rouge">RelNode</code> (Xiening Dai)</li>
+<code class="language-plaintext highlighter-rouge">RelSubset</code> does not contain its best <code class="language-plaintext highlighter-rouge">RelNode</code> (Xiening Dai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3210">CALCITE-3210</a>]
-JDBC adapter should generate <code class="highlighter-rouge">CAST(NULL AS type)</code> rather than <code class="highlighter-rouge">NULL</code>
+JDBC adapter should generate <code class="language-plaintext highlighter-rouge">CAST(NULL AS type)</code> rather than <code class="language-plaintext highlighter-rouge">NULL</code>
 conditionally (Wang Weidong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3220">CALCITE-3220</a>]
-JDBC adapter now transforms <code class="highlighter-rouge">TRIM</code> to <code class="highlighter-rouge">TRIM</code>, <code class="highlighter-rouge">LTRIM</code> or <code class="highlighter-rouge">RTRIM</code> when target
+JDBC adapter now transforms <code class="language-plaintext highlighter-rouge">TRIM</code> to <code class="language-plaintext highlighter-rouge">TRIM</code>, <code class="language-plaintext highlighter-rouge">LTRIM</code> or <code class="language-plaintext highlighter-rouge">RTRIM</code> when target
 is Hive (Jacky Woo)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3228">CALCITE-3228</a>]
-Error while applying rule <code class="highlighter-rouge">ProjectScanRule</code>: interpreter</li>
+Error while applying rule <code class="language-plaintext highlighter-rouge">ProjectScanRule</code>: interpreter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3223">CALCITE-3223</a>]
-Materialized view fails to match when there is non-<code class="highlighter-rouge">RexInputRef</code> in the
+Materialized view fails to match when there is non-<code class="language-plaintext highlighter-rouge">RexInputRef</code> in the
 projects (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3257">CALCITE-3257</a>]
-<code class="highlighter-rouge">RelMetadataQuery</code> cache is not invalidated when log trace is enabled
+<code class="language-plaintext highlighter-rouge">RelMetadataQuery</code> cache is not invalidated when log trace is enabled
 (Xiening Dai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3138">CALCITE-3138</a>]
-<code class="highlighter-rouge">RelStructuredTypeFlattener</code> doesn’t restructure <code class="highlighter-rouge">ROW</code> type fields (Igor Guzenko)</li>
+<code class="language-plaintext highlighter-rouge">RelStructuredTypeFlattener</code> doesn’t restructure <code class="language-plaintext highlighter-rouge">ROW</code> type fields (Igor Guzenko)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3251">CALCITE-3251</a>]
-<code class="highlighter-rouge">BinaryExpression</code> evaluate method support full numeric types in <code class="highlighter-rouge">Primitive</code>
+<code class="language-plaintext highlighter-rouge">BinaryExpression</code> evaluate method support full numeric types in <code class="language-plaintext highlighter-rouge">Primitive</code>
 (xy2953396112)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3259">CALCITE-3259</a>]
-Align ‘Property’ in the serialized XML string of <code class="highlighter-rouge">RelXmlWriter</code> (Wang Yanlin)</li>
+Align ‘Property’ in the serialized XML string of <code class="language-plaintext highlighter-rouge">RelXmlWriter</code> (Wang Yanlin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3167">CALCITE-3167</a>]
-Make <code class="highlighter-rouge">equals</code> and <code class="highlighter-rouge">hashCode</code> methods final in <code class="highlighter-rouge">AbstractRelNode</code>, and remove
-overriding methods in <code class="highlighter-rouge">EnumerableTableScan</code> (Jin Xing)</li>
+Make <code class="language-plaintext highlighter-rouge">equals</code> and <code class="language-plaintext highlighter-rouge">hashCode</code> methods final in <code class="language-plaintext highlighter-rouge">AbstractRelNode</code>, and remove
+overriding methods in <code class="language-plaintext highlighter-rouge">EnumerableTableScan</code> (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3089">CALCITE-3089</a>]
-Deprecate <code class="highlighter-rouge">EquiJoin</code>
+Deprecate <code class="language-plaintext highlighter-rouge">EquiJoin</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3267">CALCITE-3267</a>]
-Remove method <code class="highlighter-rouge">SqlDataTypeSpec#deriveType(RelDataTypefactory)</code>
+Remove method <code class="language-plaintext highlighter-rouge">SqlDataTypeSpec#deriveType(RelDataTypefactory)</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3214">CALCITE-3214</a>]
-Add <code class="highlighter-rouge">UnionToUnionRule</code> for materialization matching (refine rule name) (Jin Xing)</li>
+Add <code class="language-plaintext highlighter-rouge">UnionToUnionRule</code> for materialization matching (refine rule name) (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3214">CALCITE-3214</a>]
-Add <code class="highlighter-rouge">UnionToUnionRule</code> for materialization matching (Jin Xing)</li>
+Add <code class="language-plaintext highlighter-rouge">UnionToUnionRule</code> for materialization matching (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3249">CALCITE-3249</a>]
 `Substitution#getRexShuttle does not consider RexLiteral (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3229">CALCITE-3229</a>]
-<code class="highlighter-rouge">UnsupportedOperationException</code> for <code class="highlighter-rouge">UPDATE</code> with <code class="highlighter-rouge">IN</code> query</li>
+<code class="language-plaintext highlighter-rouge">UnsupportedOperationException</code> for <code class="language-plaintext highlighter-rouge">UPDATE</code> with <code class="language-plaintext highlighter-rouge">IN</code> query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3236">CALCITE-3236</a>]
 Handle issues found in static code analysis (DonnyZone)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3238">CALCITE-3238</a>]
-Support Time Zone suffix of DateTime types for <code class="highlighter-rouge">SqlDataTypeSpec</code>
+Support Time Zone suffix of DateTime types for <code class="language-plaintext highlighter-rouge">SqlDataTypeSpec</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3159">CALCITE-3159</a>]
-Remove <code class="highlighter-rouge">DISTINCT</code> flag from calls to <code class="highlighter-rouge">MIN</code>, <code class="highlighter-rouge">MAX</code>, <code class="highlighter-rouge">BIT_OR</code>, <code class="highlighter-rouge">BIT_AND</code>
+Remove <code class="language-plaintext highlighter-rouge">DISTINCT</code> flag from calls to <code class="language-plaintext highlighter-rouge">MIN</code>, <code class="language-plaintext highlighter-rouge">MAX</code>, <code class="language-plaintext highlighter-rouge">BIT_OR</code>, <code class="language-plaintext highlighter-rouge">BIT_AND</code>
 aggregate functions (xuqianjin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3237">CALCITE-3237</a>]
-<code class="highlighter-rouge">IndexOutOfBoundsException</code> when generating deeply nested Java code from linq4j
+<code class="language-plaintext highlighter-rouge">IndexOutOfBoundsException</code> when generating deeply nested Java code from linq4j
 (Sahith Nallapareddy)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3234">CALCITE-3234</a>]
 For boolean properties, empty string should mean “true”</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3226">CALCITE-3226</a>]
-<code class="highlighter-rouge">RelBuilder</code> doesn’t keep the alias when <code class="highlighter-rouge">scan</code> from an expanded view (Jin Xing)</li>
+<code class="language-plaintext highlighter-rouge">RelBuilder</code> doesn’t keep the alias when <code class="language-plaintext highlighter-rouge">scan</code> from an expanded view (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3198">CALCITE-3198</a>]
-Enhance <code class="highlighter-rouge">RexSimplify</code> to handle <code class="highlighter-rouge">(x &lt;&gt; a or x &lt;&gt; b)</code>
+Enhance <code class="language-plaintext highlighter-rouge">RexSimplify</code> to handle <code class="language-plaintext highlighter-rouge">(x &lt;&gt; a or x &lt;&gt; b)</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3101">CALCITE-3101</a>]
-Don’t push non-equi join conditions into <code class="highlighter-rouge">Project</code> below <code class="highlighter-rouge">Join</code>
+Don’t push non-equi join conditions into <code class="language-plaintext highlighter-rouge">Project</code> below <code class="language-plaintext highlighter-rouge">Join</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3227">CALCITE-3227</a>]
-<code class="highlighter-rouge">IndexOutOfBoundsException</code> when checking candidate parent match’s input
-ordinal in <code class="highlighter-rouge">VolcanoRuleCall</code>
+<code class="language-plaintext highlighter-rouge">IndexOutOfBoundsException</code> when checking candidate parent match’s input
+ordinal in <code class="language-plaintext highlighter-rouge">VolcanoRuleCall</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3177">CALCITE-3177</a>]
 Ensure correct deserialization of relational algebra</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3218">CALCITE-3218</a>]
-Syntax error while parsing <code class="highlighter-rouge">DATEADD</code> function (which is valid on Redshift)
+Syntax error while parsing <code class="language-plaintext highlighter-rouge">DATEADD</code> function (which is valid on Redshift)
 (Lindsey Meyer)</li>
-  <li>Deprecate <code class="highlighter-rouge">RexBuilder.constantNull()</code>, because it produces untyped <code class="highlighter-rouge">NULL</code>
+  <li>Deprecate <code class="language-plaintext highlighter-rouge">RexBuilder.constantNull()</code>, because it produces untyped <code class="language-plaintext highlighter-rouge">NULL</code>
 literals that make planning difficult</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3191">CALCITE-3191</a>]
-In JDBC adapter for MySQL, implement <code class="highlighter-rouge">Values</code> by generating <code class="highlighter-rouge">SELECT</code> without
-<code class="highlighter-rouge">FROM</code>
+In JDBC adapter for MySQL, implement <code class="language-plaintext highlighter-rouge">Values</code> by generating <code class="language-plaintext highlighter-rouge">SELECT</code> without
+<code class="language-plaintext highlighter-rouge">FROM</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3147">CALCITE-3147</a>]
 In JDBC adapter, accommodate the idiosyncrasies of how BigQuery (standard SQL)
 quotes character literals and identifiers</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3131">CALCITE-3131</a>]
-In <code class="highlighter-rouge">LatticeSuggester</code>, record whether columns are used as “dimensions” or
+In <code class="language-plaintext highlighter-rouge">LatticeSuggester</code>, record whether columns are used as “dimensions” or
 “measures”</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3175">CALCITE-3175</a>]
-<code class="highlighter-rouge">AssertionError</code> while serializing to JSON a <code class="highlighter-rouge">RexLiteral</code> with <code class="highlighter-rouge">Enum</code> type
+<code class="language-plaintext highlighter-rouge">AssertionError</code> while serializing to JSON a <code class="language-plaintext highlighter-rouge">RexLiteral</code> with <code class="language-plaintext highlighter-rouge">Enum</code> type
 (Wang Yanlin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3225">CALCITE-3225</a>]
-<code class="highlighter-rouge">JoinToMultiJoinRule</code> should not match semi- or anti-LogicalJoin</li>
+<code class="language-plaintext highlighter-rouge">JoinToMultiJoinRule</code> should not match semi- or anti-LogicalJoin</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3215">CALCITE-3215</a>]
-Simplification may have not fully simplified IS <code class="highlighter-rouge">NOT NULL</code> expressions</li>
+Simplification may have not fully simplified IS <code class="language-plaintext highlighter-rouge">NOT NULL</code> expressions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3192">CALCITE-3192</a>]
 Simplification may weaken OR conditions containing inequalities</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3211">CALCITE-3211</a>]
-List of <code class="highlighter-rouge">MutableRel</code> may fail to be identified by <code class="highlighter-rouge">SubstitutionVisitor</code> during
+List of <code class="language-plaintext highlighter-rouge">MutableRel</code> may fail to be identified by <code class="language-plaintext highlighter-rouge">SubstitutionVisitor</code> during
 matching (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3207">CALCITE-3207</a>]
-Fail to convert <code class="highlighter-rouge">Join</code> with <code class="highlighter-rouge">LIKE</code> condition to SQL statement (wojustme)</li>
+Fail to convert <code class="language-plaintext highlighter-rouge">Join</code> with <code class="language-plaintext highlighter-rouge">LIKE</code> condition to SQL statement (wojustme)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2496">CALCITE-2496</a>]
-Return 0 in case of <code class="highlighter-rouge">EXTRACT(MILLI/MICRO/NANOSECOND FROM date)</code>
+Return 0 in case of <code class="language-plaintext highlighter-rouge">EXTRACT(MILLI/MICRO/NANOSECOND FROM date)</code>
 (Sergey Nuyanzin, Chunwei Lei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3109">CALCITE-3109</a>]
-Improvements on algebraic operators to express recursive queries (<code class="highlighter-rouge">RepeatUnion</code>
-and <code class="highlighter-rouge">TableSpool</code>)</li>
+Improvements on algebraic operators to express recursive queries (<code class="language-plaintext highlighter-rouge">RepeatUnion</code>
+and <code class="language-plaintext highlighter-rouge">TableSpool</code>)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3209">CALCITE-3209</a>]
-When calling <code class="highlighter-rouge">MutableMultiRel.setInput</code>, exception thrown (Jin Xing)</li>
+When calling <code class="language-plaintext highlighter-rouge">MutableMultiRel.setInput</code>, exception thrown (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3195">CALCITE-3195</a>]
 Handle a UDF that throws checked exceptions in the Enumerable code generator
 (DonnyZone)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3118">CALCITE-3118</a>]
-<code class="highlighter-rouge">VolcanoRuleCall</code> should look at <code class="highlighter-rouge">RelSubset</code> rather than <code class="highlighter-rouge">RelSet</code> when checking
+<code class="language-plaintext highlighter-rouge">VolcanoRuleCall</code> should look at <code class="language-plaintext highlighter-rouge">RelSubset</code> rather than <code class="language-plaintext highlighter-rouge">RelSet</code> when checking
 child ordinal of a parent operand (Botong Huang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3201">CALCITE-3201</a>]
-<code class="highlighter-rouge">SqlValidator</code> throws exception for SQL insert target table with virtual columns</li>
+<code class="language-plaintext highlighter-rouge">SqlValidator</code> throws exception for SQL insert target table with virtual columns</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3182">CALCITE-3182</a>]
 Trim unused fields for plan of materialized-view before matching (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3174">CALCITE-3174</a>]
-<code class="highlighter-rouge">IS NOT DISTINCT FROM</code> condition pushed from <code class="highlighter-rouge">Filter</code> to <code class="highlighter-rouge">Join</code> is not
+<code class="language-plaintext highlighter-rouge">IS NOT DISTINCT FROM</code> condition pushed from <code class="language-plaintext highlighter-rouge">Filter</code> to <code class="language-plaintext highlighter-rouge">Join</code> is not
 collapsed (Bohdan Kazydub)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3166">CALCITE-3166</a>]
-Make <code class="highlighter-rouge">RelBuilder</code> configurable</li>
+Make <code class="language-plaintext highlighter-rouge">RelBuilder</code> configurable</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3113">CALCITE-3113</a>]
-Equivalent <code class="highlighter-rouge">MutableAggregate</code>s with different row types should match with each
+Equivalent <code class="language-plaintext highlighter-rouge">MutableAggregate</code>s with different row types should match with each
 other (Jin Xing)</li>
   <li>
 <a href="https://issues.apache.org/jira/browse/CALCITE-3187">CALCITE-3187</a>:
 Make decimal type inference overridable (Praveen Kumar)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3145">CALCITE-3145</a>]
-<code class="highlighter-rouge">RelBuilder.aggregate</code> throws <code class="highlighter-rouge">IndexOutOfBoundsException</code> if <code class="highlighter-rouge">groupKey</code> is
+<code class="language-plaintext highlighter-rouge">RelBuilder.aggregate</code> throws <code class="language-plaintext highlighter-rouge">IndexOutOfBoundsException</code> if <code class="language-plaintext highlighter-rouge">groupKey</code> is
 non-empty and there are duplicate aggregate functions</li>
-  <li>Change type of <code class="highlighter-rouge">SqlStdOperatorTable.GROUPING</code> field to public class</li>
+  <li>Change type of <code class="language-plaintext highlighter-rouge">SqlStdOperatorTable.GROUPING</code> field to public class</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3196">CALCITE-3196</a>]
-In <code class="highlighter-rouge">Frameworks</code>, add <code class="highlighter-rouge">interface BasePrepareAction</code> (a functional interface) and
-deprecate <code class="highlighter-rouge">abstract class PrepareAction</code>
+In <code class="language-plaintext highlighter-rouge">Frameworks</code>, add <code class="language-plaintext highlighter-rouge">interface BasePrepareAction</code> (a functional interface) and
+deprecate <code class="language-plaintext highlighter-rouge">abstract class PrepareAction</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3183">CALCITE-3183</a>]
-During field trimming, <code class="highlighter-rouge">Filter</code> is copied with wrong traitSet (Juhwan Kim)</li>
+During field trimming, <code class="language-plaintext highlighter-rouge">Filter</code> is copied with wrong traitSet (Juhwan Kim)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3189">CALCITE-3189</a>]
 Multiple fixes for Oracle SQL dialect</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3165">CALCITE-3165</a>]
-<code class="highlighter-rouge">Project#accept</code>(<code class="highlighter-rouge">RexShuttle</code> shuttle) does not update rowType</li>
+<code class="language-plaintext highlighter-rouge">Project#accept</code>(<code class="language-plaintext highlighter-rouge">RexShuttle</code> shuttle) does not update rowType</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3188">CALCITE-3188</a>]
-<code class="highlighter-rouge">IndexOutOfBoundsException</code> in <code class="highlighter-rouge">ProjectFilterTransposeRule</code> when executing
-<code class="highlighter-rouge">SELECT COUNT</code>
+<code class="language-plaintext highlighter-rouge">IndexOutOfBoundsException</code> in <code class="language-plaintext highlighter-rouge">ProjectFilterTransposeRule</code> when executing
+<code class="language-plaintext highlighter-rouge">SELECT COUNT</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3160">CALCITE-3160</a>]
 Failed to materialize when the aggregate function uses group key (DonnyZone)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3170">CALCITE-3170</a>]
 ANTI join on conditions push down generates wrong plan</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3169">CALCITE-3169</a>]
-decorrelateRel method should return when meeting <code class="highlighter-rouge">SEMI</code>/<code class="highlighter-rouge">ANTI</code> join in
-<code class="highlighter-rouge">RelDecorrelator</code>
+decorrelateRel method should return when meeting <code class="language-plaintext highlighter-rouge">SEMI</code>/<code class="language-plaintext highlighter-rouge">ANTI</code> join in
+<code class="language-plaintext highlighter-rouge">RelDecorrelator</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3171">CALCITE-3171</a>]
-<code class="highlighter-rouge">SemiJoin</code> on conditions push down throws <code class="highlighter-rouge">IndexOutOfBoundsException</code>
+<code class="language-plaintext highlighter-rouge">SemiJoin</code> on conditions push down throws <code class="language-plaintext highlighter-rouge">IndexOutOfBoundsException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3172">CALCITE-3172</a>]
-<code class="highlighter-rouge">RelBuilder#empty</code> does not keep aliases</li>
+<code class="language-plaintext highlighter-rouge">RelBuilder#empty</code> does not keep aliases</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3121">CALCITE-3121</a>]
-<code class="highlighter-rouge">VolcanoPlanner</code> hangs due to sub-query with dynamic star</li>
+<code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> hangs due to sub-query with dynamic star</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3152">CALCITE-3152</a>]
 Unify throws in SQL parser</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3125">CALCITE-3125</a>]
-Remove completely <code class="highlighter-rouge">class CorrelateJoinType</code>
+Remove completely <code class="language-plaintext highlighter-rouge">class CorrelateJoinType</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3133">CALCITE-3133</a>]
-Remove completely <code class="highlighter-rouge">class SemiJoinType</code>
+Remove completely <code class="language-plaintext highlighter-rouge">class SemiJoinType</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3126">CALCITE-3126</a>]
-Remove deprecated <code class="highlighter-rouge">SemiJoin</code> usage completely</li>
+Remove deprecated <code class="language-plaintext highlighter-rouge">SemiJoin</code> usage completely</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3146">CALCITE-3146</a>]
-Support the detection of nested aggregations for <code class="highlighter-rouge">JdbcAggregate</code> in
-<code class="highlighter-rouge">SqlImplementor</code> (Wenhui Tang)</li>
+Support the detection of nested aggregations for <code class="language-plaintext highlighter-rouge">JdbcAggregate</code> in
+<code class="language-plaintext highlighter-rouge">SqlImplementor</code> (Wenhui Tang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3155">CALCITE-3155</a>]
-Empty <code class="highlighter-rouge">LogicalValues</code> can not be converted to <code class="highlighter-rouge">UNION ALL</code> without operands which
+Empty <code class="language-plaintext highlighter-rouge">LogicalValues</code> can not be converted to <code class="language-plaintext highlighter-rouge">UNION ALL</code> without operands which
 can not be unparsed (Musbah EL FIL)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3151">CALCITE-3151</a>]
 RexCall’s Monotonicity is not considered in determining a Calc’s collation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2801">CALCITE-2801</a>]
-Check input type in <code class="highlighter-rouge">AggregateUnionAggregateRule</code> when remove the bottom
-<code class="highlighter-rouge">Aggregate</code> (Hequn Cheng)</li>
+Check input type in <code class="language-plaintext highlighter-rouge">AggregateUnionAggregateRule</code> when remove the bottom
+<code class="language-plaintext highlighter-rouge">Aggregate</code> (Hequn Cheng)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3149">CALCITE-3149</a>]
-<code class="highlighter-rouge">RelDataType</code> CACHE in <code class="highlighter-rouge">RelDataTypeFactoryImpl</code> can’t be garbage collected</li>
+<code class="language-plaintext highlighter-rouge">RelDataType</code> CACHE in <code class="language-plaintext highlighter-rouge">RelDataTypeFactoryImpl</code> can’t be garbage collected</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3060">CALCITE-3060</a>]
-<code class="highlighter-rouge">MutableProject</code> should be generated based on INVERSE_SURJECTION mapping
+<code class="language-plaintext highlighter-rouge">MutableProject</code> should be generated based on INVERSE_SURJECTION mapping
 (DonnyZone)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3148">CALCITE-3148</a>]
-Validator throws <code class="highlighter-rouge">IndexOutOfBoundsException</code> for <code class="highlighter-rouge">SqlInsert</code> when source and
+Validator throws <code class="language-plaintext highlighter-rouge">IndexOutOfBoundsException</code> for <code class="language-plaintext highlighter-rouge">SqlInsert</code> when source and
 sink have non-equal number of fields</li>
 </ul>
 
@@ -2913,7 +2913,7 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3322">CALCITE-3322</a>]
-Remove duplicate test case in <code class="highlighter-rouge">RelMetadataTest</code>
+Remove duplicate test case in <code class="language-plaintext highlighter-rouge">RelMetadataTest</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3314">CALCITE-3314</a>]
 CVSS dependency-check-maven fails for calcite-pig, calcite-piglet,
@@ -2921,8 +2921,8 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3315">CALCITE-3315</a>]
 Multiple failures in Druid IT tests due to implicit casts</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3307">CALCITE-3307</a>]
-<code class="highlighter-rouge">PigRelExTest</code>, <code class="highlighter-rouge">PigRelOpTest</code> and <code class="highlighter-rouge">PigScriptTest</code> fail on Windows</li>
-  <li>In <code class="highlighter-rouge">SqlFunctionsTest</code>, replace <code class="highlighter-rouge">assertEquals</code> and <code class="highlighter-rouge">assertNull</code> with <code class="highlighter-rouge">assertThat</code>
+<code class="language-plaintext highlighter-rouge">PigRelExTest</code>, <code class="language-plaintext highlighter-rouge">PigRelOpTest</code> and <code class="language-plaintext highlighter-rouge">PigScriptTest</code> fail on Windows</li>
+  <li>In <code class="language-plaintext highlighter-rouge">SqlFunctionsTest</code>, replace <code class="language-plaintext highlighter-rouge">assertEquals</code> and <code class="language-plaintext highlighter-rouge">assertNull</code> with <code class="language-plaintext highlighter-rouge">assertThat</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3258">CALCITE-3258</a>]
 Upgrade jackson-databind from 2.9.9 to 2.9.9.3, and kafka-clients from 2.0.0
@@ -2935,9 +2935,9 @@
   <li>Following
 [<a href="https://issues.apache.org/jira/browse/CALCITE-2804">CALCITE-2804</a>],
 fix incorrect expected Druid query in test case
-<code class="highlighter-rouge">DruidAdapterIT#testCastToTimestamp</code> (Justin Szeluga)</li>
+<code class="language-plaintext highlighter-rouge">DruidAdapterIT#testCastToTimestamp</code> (Justin Szeluga)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3153">CALCITE-3153</a>]
-Improve testing in <code class="highlighter-rouge">TpcdsTest</code> using <code class="highlighter-rouge">assertEqual</code> instead of printing results</li>
+Improve testing in <code class="language-plaintext highlighter-rouge">TpcdsTest</code> using <code class="language-plaintext highlighter-rouge">assertEqual</code> instead of printing results</li>
   <li>Fix javadoc error</li>
   <li>Fix compilation warnings after Mongo java driver upgrade</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3179">CALCITE-3179</a>]
@@ -2958,13 +2958,13 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3311">CALCITE-3311</a>]
 Add doc to site for implicit type coercion</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3262">CALCITE-3262</a>]
-Refine doc of <code class="highlighter-rouge">SubstitutionVisitor</code> (Jin Xing)</li>
+Refine doc of <code class="language-plaintext highlighter-rouge">SubstitutionVisitor</code> (Jin Xing)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2835">CALCITE-2835</a>]
 Markdown errors on the Geode adapter page</li>
   <li>Site: Update Apache links on homepage to HTTPS</li>
   <li>Update favicon for new logo</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3136">CALCITE-3136</a>]
-Fix the default rule description of <code class="highlighter-rouge">ConverterRule</code> (TANG Wen-hui)</li>
+Fix the default rule description of <code class="language-plaintext highlighter-rouge">ConverterRule</code> (TANG Wen-hui)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3184">CALCITE-3184</a>]
 Add the new logo to the website</li>
   <li>Update example announcement</li>
@@ -2986,27 +2986,27 @@
 using Oracle JDK 8, 9, 10, 11, 12, 13 and OpenJDK 8, 9, 10, 11, 12, 13;
 Guava versions 19.0 to 27.1-jre;
 Apache Druid version 0.14.0-incubating;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <h4 id="breaking-1-20-0">Breaking Changes</h4>
 
 <ul>
-  <li>Make <code class="highlighter-rouge">EnumerableMergeJoin</code> extend <code class="highlighter-rouge">Join</code> instead of <code class="highlighter-rouge">EquiJoin</code>
+  <li>Make <code class="language-plaintext highlighter-rouge">EnumerableMergeJoin</code> extend <code class="language-plaintext highlighter-rouge">Join</code> instead of <code class="language-plaintext highlighter-rouge">EquiJoin</code>
 </li>
   <li>
-<code class="highlighter-rouge">Correlate</code> use <code class="highlighter-rouge">JoinRelType</code> instead of <code class="highlighter-rouge">SemiJoinType</code>
+<code class="language-plaintext highlighter-rouge">Correlate</code> use <code class="language-plaintext highlighter-rouge">JoinRelType</code> instead of <code class="language-plaintext highlighter-rouge">SemiJoinType</code>
 </li>
-  <li>Rename <code class="highlighter-rouge">EnumerableThetaJoin</code> to <code class="highlighter-rouge">EnumerableNestedLoopJoin</code>
+  <li>Rename <code class="language-plaintext highlighter-rouge">EnumerableThetaJoin</code> to <code class="language-plaintext highlighter-rouge">EnumerableNestedLoopJoin</code>
 </li>
-  <li>Rename <code class="highlighter-rouge">EnumerableJoin</code> to <code class="highlighter-rouge">EnumerableHashJoin</code>
+  <li>Rename <code class="language-plaintext highlighter-rouge">EnumerableJoin</code> to <code class="language-plaintext highlighter-rouge">EnumerableHashJoin</code>
 </li>
-  <li>Remove <code class="highlighter-rouge">SemiJoinFactory</code> from <code class="highlighter-rouge">RelBuilder</code>, method <code class="highlighter-rouge">semiJoin</code> now returns a <code class="highlighter-rouge">LogicalJoin</code>
-with join type <code class="highlighter-rouge">JoinRelType.SEMI</code> instead of a <code class="highlighter-rouge">SemiJoin</code>
+  <li>Remove <code class="language-plaintext highlighter-rouge">SemiJoinFactory</code> from <code class="language-plaintext highlighter-rouge">RelBuilder</code>, method <code class="language-plaintext highlighter-rouge">semiJoin</code> now returns a <code class="language-plaintext highlighter-rouge">LogicalJoin</code>
+with join type <code class="language-plaintext highlighter-rouge">JoinRelType.SEMI</code> instead of a <code class="language-plaintext highlighter-rouge">SemiJoin</code>
 </li>
-  <li>Rules: <code class="highlighter-rouge">SemiJoinFilterTransposeRule</code>, <code class="highlighter-rouge">SemiJoinJoinTransposeRule</code>, <code class="highlighter-rouge">SemiJoinProjectTransposeRule</code>
-and <code class="highlighter-rouge">SemiJoinRemoveRule</code> match <code class="highlighter-rouge">LogicalJoin</code> with join type <code class="highlighter-rouge">SEMI</code> instead of <code class="highlighter-rouge">SemiJoin</code>.</li>
+  <li>Rules: <code class="language-plaintext highlighter-rouge">SemiJoinFilterTransposeRule</code>, <code class="language-plaintext highlighter-rouge">SemiJoinJoinTransposeRule</code>, <code class="language-plaintext highlighter-rouge">SemiJoinProjectTransposeRule</code>
+and <code class="language-plaintext highlighter-rouge">SemiJoinRemoveRule</code> match <code class="language-plaintext highlighter-rouge">LogicalJoin</code> with join type <code class="language-plaintext highlighter-rouge">SEMI</code> instead of <code class="language-plaintext highlighter-rouge">SemiJoin</code>.</li>
   <li>
-<code class="highlighter-rouge">SemiJoin</code>, <code class="highlighter-rouge">EnumerableSemiJoin</code>, <code class="highlighter-rouge">SemiJoinType</code> and <code class="highlighter-rouge">CorrelateJoinType</code>, and methods that use them,
+<code class="language-plaintext highlighter-rouge">SemiJoin</code>, <code class="language-plaintext highlighter-rouge">EnumerableSemiJoin</code>, <code class="language-plaintext highlighter-rouge">SemiJoinType</code> and <code class="language-plaintext highlighter-rouge">CorrelateJoinType</code>, and methods that use them,
 are deprecated for quick removal in 1.21</li>
   <li>The Elasticsearch adapter no longer supports <a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.0/removal-of-types.html">Elasticsearch types</a>.
 Calcite table names will reflect index names in Elasticsearch (as opposed to types).
@@ -3016,55 +3016,55 @@
 <h4 id="new-features-1-20-0">New features</h4>
 
 <ul>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2822">CALCITE-2822</a>] Allow <code class="highlighter-rouge">MultiJoin</code> rules with any project/filter (Siddharth Teotia)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2968">CALCITE-2968</a>] New <code class="highlighter-rouge">AntiJoin</code> relational expression</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2822">CALCITE-2822</a>] Allow <code class="language-plaintext highlighter-rouge">MultiJoin</code> rules with any project/filter (Siddharth Teotia)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2968">CALCITE-2968</a>] New <code class="language-plaintext highlighter-rouge">AntiJoin</code> relational expression</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2721">CALCITE-2721</a>] Support parsing record-type [DOT] member-functions</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3005">CALCITE-3005</a>] Implement string functions: <code class="highlighter-rouge">LEFT</code>, <code class="highlighter-rouge">RIGHT</code> (xuqianjin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3005">CALCITE-3005</a>] Implement string functions: <code class="language-plaintext highlighter-rouge">LEFT</code>, <code class="language-plaintext highlighter-rouge">RIGHT</code> (xuqianjin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2812">CALCITE-2812</a>] Add algebraic operators to allow expressing recursive queries</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2913">CALCITE-2913</a>] Adapter for Apache Kafka (Mingmin Xu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3084">CALCITE-3084</a>] Implement JDBC string functions: <code class="highlighter-rouge">ASCII</code>, <code class="highlighter-rouge">REPEAT</code>, <code class="highlighter-rouge">SPACE</code>, <code class="highlighter-rouge">SOUNDEX</code>, <code class="highlighter-rouge">DIFFERENC</code> (pingle wang)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2985">CALCITE-2985</a>] Implement <code class="highlighter-rouge">JSON_STORAGE_SIZE</code> function (xuqianjin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2601">CALCITE-2601</a>] Add <code class="highlighter-rouge">REVERSE</code> function (pingle wang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3084">CALCITE-3084</a>] Implement JDBC string functions: <code class="language-plaintext highlighter-rouge">ASCII</code>, <code class="language-plaintext highlighter-rouge">REPEAT</code>, <code class="language-plaintext highlighter-rouge">SPACE</code>, <code class="language-plaintext highlighter-rouge">SOUNDEX</code>, <code class="language-plaintext highlighter-rouge">DIFFERENC</code> (pingle wang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2985">CALCITE-2985</a>] Implement <code class="language-plaintext highlighter-rouge">JSON_STORAGE_SIZE</code> function (xuqianjin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2601">CALCITE-2601</a>] Add <code class="language-plaintext highlighter-rouge">REVERSE</code> function (pingle wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2712">CALCITE-2712</a>] Add rule to remove null-generating side of a Join</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2965">CALCITE-2965</a>] Implement string functions: <code class="highlighter-rouge">REPEAT</code>, <code class="highlighter-rouge">SPACE</code>, <code class="highlighter-rouge">SOUNDEX</code>, <code class="highlighter-rouge">DIFFERENCE</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2965">CALCITE-2965</a>] Implement string functions: <code class="language-plaintext highlighter-rouge">REPEAT</code>, <code class="language-plaintext highlighter-rouge">SPACE</code>, <code class="language-plaintext highlighter-rouge">SOUNDEX</code>, <code class="language-plaintext highlighter-rouge">DIFFERENCE</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2975">CALCITE-2975</a>] Implement <code class="highlighter-rouge">JSON_REMOVE</code> function (xuqianjin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2975">CALCITE-2975</a>] Implement <code class="language-plaintext highlighter-rouge">JSON_REMOVE</code> function (xuqianjin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2933">CALCITE-2933</a>] Add timestamp extract for casts from timestamp type to other types</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3011">CALCITE-3011</a>] Support left and right outer joins with <code class="highlighter-rouge">AggregateJoinTransposeRule</code> (Vineet Garg)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3011">CALCITE-3011</a>] Support left and right outer joins with <code class="language-plaintext highlighter-rouge">AggregateJoinTransposeRule</code> (Vineet Garg)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2427">CALCITE-2427</a>] Allow sub-queries in DML statements (Pressenna Sockalingasamy)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2914">CALCITE-2914</a>] Add a new statistic provider, to improve how <code class="highlighter-rouge">LatticeSuggester</code> deduces foreign keys</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2754">CALCITE-2754</a>] Implement <code class="highlighter-rouge">LISTAGG</code> function (Sergey Nuyanzin, Chunwei Lei)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2914">CALCITE-2914</a>] Add a new statistic provider, to improve how <code class="language-plaintext highlighter-rouge">LatticeSuggester</code> deduces foreign keys</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2754">CALCITE-2754</a>] Implement <code class="language-plaintext highlighter-rouge">LISTAGG</code> function (Sergey Nuyanzin, Chunwei Lei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1172">CALCITE-1172</a>] Add rule to flatten two Aggregate operators into one</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2892">CALCITE-2892</a>] Add the <code class="highlighter-rouge">JSON_KEYS</code> function (xuqianjin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-883">CALCITE-883</a>] Support <code class="highlighter-rouge">RESPECT NULLS</code>, <code class="highlighter-rouge">IGNORE NULLS</code> option for <code class="highlighter-rouge">LEAD</code>, <code class="highlighter-rouge">LAG</code>, <code class="highlighter-rouge">FIRST_VALUE</code>, <code class="highlighter-rouge">LAST_VALUE</code>, <code class="highlighter-rouge">NTH_VALUE</code> functions (Chunwei Lei)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2920">CALCITE-2920</a>] In <code class="highlighter-rouge">RelBuilder</code>, add <code class="highlighter-rouge">antiJoin</code> method (Ruben Quesada Lopez)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1515">CALCITE-1515</a>] In <code class="highlighter-rouge">RelBuilder</code>, add <code class="highlighter-rouge">functionScan</code> method to create <code class="highlighter-rouge">TableFunctionScan</code> (Chunwei Lei)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2658">CALCITE-2658</a>] Add <code class="highlighter-rouge">ExchangeRemoveConstantKeysRule</code> that removes constant keys from <code class="highlighter-rouge">Exchange</code> or <code class="highlighter-rouge">SortExchange</code> (Chunwei Lei)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2729">CALCITE-2729</a>] Introducing <code class="highlighter-rouge">WindowReduceExpressionsRule</code> (Chunwei Lei)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2808">CALCITE-2808</a>] Add the <code class="highlighter-rouge">JSON_LENGTH</code> function (xuqianjin)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-589">CALCITE-589</a>] Extend <code class="highlighter-rouge">unifyAggregates</code> method to work with Grouping Sets</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2908">CALCITE-2908</a>] Implement SQL <code class="highlighter-rouge">LAST_DAY</code> function (Chunwei Lei)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2892">CALCITE-2892</a>] Add the <code class="language-plaintext highlighter-rouge">JSON_KEYS</code> function (xuqianjin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-883">CALCITE-883</a>] Support <code class="language-plaintext highlighter-rouge">RESPECT NULLS</code>, <code class="language-plaintext highlighter-rouge">IGNORE NULLS</code> option for <code class="language-plaintext highlighter-rouge">LEAD</code>, <code class="language-plaintext highlighter-rouge">LAG</code>, <code class="language-plaintext highlighter-rouge">FIRST_VALUE</code>, <code class="language-plaintext highlighter-rouge">LAST_VALUE</code>, <code class="language-plaintext highlighter-rouge">NTH_VALUE</code> functions (Chunwei Lei)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2920">CALCITE-2920</a>] In <code class="language-plaintext highlighter-rouge">RelBuilder</code>, add <code class="language-plaintext highlighter-rouge">antiJoin</code> method (Ruben Quesada Lopez)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1515">CALCITE-1515</a>] In <code class="language-plaintext highlighter-rouge">RelBuilder</code>, add <code class="language-plaintext highlighter-rouge">functionScan</code> method to create <code class="language-plaintext highlighter-rouge">TableFunctionScan</code> (Chunwei Lei)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2658">CALCITE-2658</a>] Add <code class="language-plaintext highlighter-rouge">ExchangeRemoveConstantKeysRule</code> that removes constant keys from <code class="language-plaintext highlighter-rouge">Exchange</code> or <code class="language-plaintext highlighter-rouge">SortExchange</code> (Chunwei Lei)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2729">CALCITE-2729</a>] Introducing <code class="language-plaintext highlighter-rouge">WindowReduceExpressionsRule</code> (Chunwei Lei)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2808">CALCITE-2808</a>] Add the <code class="language-plaintext highlighter-rouge">JSON_LENGTH</code> function (xuqianjin)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-589">CALCITE-589</a>] Extend <code class="language-plaintext highlighter-rouge">unifyAggregates</code> method to work with Grouping Sets</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2908">CALCITE-2908</a>] Implement SQL <code class="language-plaintext highlighter-rouge">LAST_DAY</code> function (Chunwei Lei)</li>
 </ul>
 
 <h4 id="fixes-1-20-0">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3119">CALCITE-3119</a>] Deprecate Linq4j <code class="highlighter-rouge">CorrelateJoinType</code> (in favor of <code class="highlighter-rouge">JoinType</code>)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3087">CALCITE-3087</a>] <code class="highlighter-rouge">AggregateOnProjectToAggregateUnifyRule</code> ignores Project incorrectly when its Mapping breaks ordering (DonnyZone)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2744">CALCITE-2744</a>] Remove usage of deprecated API in <code class="highlighter-rouge">MockSqlOperatorTable</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3119">CALCITE-3119</a>] Deprecate Linq4j <code class="language-plaintext highlighter-rouge">CorrelateJoinType</code> (in favor of <code class="language-plaintext highlighter-rouge">JoinType</code>)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3087">CALCITE-3087</a>] <code class="language-plaintext highlighter-rouge">AggregateOnProjectToAggregateUnifyRule</code> ignores Project incorrectly when its Mapping breaks ordering (DonnyZone)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2744">CALCITE-2744</a>] Remove usage of deprecated API in <code class="language-plaintext highlighter-rouge">MockSqlOperatorTable</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3123">CALCITE-3123</a>] In <code class="highlighter-rouge">RelBuilder</code>, eliminate duplicate aggregate calls</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3123">CALCITE-3123</a>] In <code class="language-plaintext highlighter-rouge">RelBuilder</code>, eliminate duplicate aggregate calls</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3116">CALCITE-3116</a>] Upgrade to Avatica 1.15</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2744">CALCITE-2744</a>] <code class="highlighter-rouge">RelDecorrelator</code> use wrong output map for <code class="highlighter-rouge">LogicalAggregate</code> decorrelate (godfreyhe and Danny Chan)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2744">CALCITE-2744</a>] <code class="language-plaintext highlighter-rouge">RelDecorrelator</code> use wrong output map for <code class="language-plaintext highlighter-rouge">LogicalAggregate</code> decorrelate (godfreyhe and Danny Chan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2804">CALCITE-2804</a>] Fix casting to timestamps in Druid</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3107">CALCITE-3107</a>] Upgrade commons-dbcp2 from 2.5.0 to 2.6.0 (Fokko Driesprong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3106">CALCITE-3106</a>] Upgrade commons-pool2 from 2.6.0 to 2.6.2 (Fokko Driesprong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2944">CALCITE-2944</a>] Deprecate Aggregate indicator and remove fields where possible</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3098">CALCITE-3098</a>] Upgrade SQLLine to 1.8.0</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2742">CALCITE-2742</a>] Read values of <code class="highlighter-rouge">USER</code> and <code class="highlighter-rouge">SYSTEM_USER</code> variables from <code class="highlighter-rouge">DataContext</code> (Siddharth Teotia, Jacques Nadeau)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3082">CALCITE-3082</a>] Fix NPE in <code class="highlighter-rouge">SqlUtil#getSelectListItem</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2742">CALCITE-2742</a>] Read values of <code class="language-plaintext highlighter-rouge">USER</code> and <code class="language-plaintext highlighter-rouge">SYSTEM_USER</code> variables from <code class="language-plaintext highlighter-rouge">DataContext</code> (Siddharth Teotia, Jacques Nadeau)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3082">CALCITE-3082</a>] Fix NPE in <code class="language-plaintext highlighter-rouge">SqlUtil#getSelectListItem</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3093">CALCITE-3093</a>] Remove JDBC connection calls from <code class="highlighter-rouge">PlannerImpl</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3093">CALCITE-3093</a>] Remove JDBC connection calls from <code class="language-plaintext highlighter-rouge">PlannerImpl</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3095">CALCITE-3095</a>] Add several system properties to control enabling/disabling of rules and traits</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2696">CALCITE-2696</a>] Improve design of join-like relational expressions</li>
@@ -3073,90 +3073,90 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3047">CALCITE-3047</a>] In JDBC adapter, expose multiple schemas of the back-end database</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3048">CALCITE-3048</a>] Improve how JDBC adapter deduces current schema on Redshift</li>
   <li>Javadoc typos (Wenhui Tang, Muhammad Gelbana)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3096">CALCITE-3096</a>] In <code class="highlighter-rouge">RelBuilder</code>, make alias method idempotent</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3055">CALCITE-3055</a>] Use pair of <code class="highlighter-rouge">relNode</code>’s <code class="highlighter-rouge">rowType</code> and digest as unique key for cache in <code class="highlighter-rouge">RelOptPlanner</code> (KazydubB)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3077">CALCITE-3077</a>] Rewrite <code class="highlighter-rouge">CUBE</code>&amp;<code class="highlighter-rouge">ROLLUP</code> queries in <code class="highlighter-rouge">SparkSqlDialect</code> (DonnyZone)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3096">CALCITE-3096</a>] In <code class="language-plaintext highlighter-rouge">RelBuilder</code>, make alias method idempotent</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3055">CALCITE-3055</a>] Use pair of <code class="language-plaintext highlighter-rouge">relNode</code>’s <code class="language-plaintext highlighter-rouge">rowType</code> and digest as unique key for cache in <code class="language-plaintext highlighter-rouge">RelOptPlanner</code> (KazydubB)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3077">CALCITE-3077</a>] Rewrite <code class="language-plaintext highlighter-rouge">CUBE</code>&amp;<code class="language-plaintext highlighter-rouge">ROLLUP</code> queries in <code class="language-plaintext highlighter-rouge">SparkSqlDialect</code> (DonnyZone)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3090">CALCITE-3090</a>] Remove Central configuration</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2807">CALCITE-2807</a>] Fix <code class="highlighter-rouge">IS NOT DISTINCT FROM</code> expression identification in <code class="highlighter-rouge">RelOptUtil#pushDownJoinConditions</code>()</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3050">CALCITE-3050</a>] Integrate <code class="highlighter-rouge">SqlDialect</code> and <code class="highlighter-rouge">SqlParser.Config</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2807">CALCITE-2807</a>] Fix <code class="language-plaintext highlighter-rouge">IS NOT DISTINCT FROM</code> expression identification in <code class="language-plaintext highlighter-rouge">RelOptUtil#pushDownJoinConditions</code>()</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3050">CALCITE-3050</a>] Integrate <code class="language-plaintext highlighter-rouge">SqlDialect</code> and <code class="language-plaintext highlighter-rouge">SqlParser.Config</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3023">CALCITE-3023</a>] Upgrade elastic search to 7.x (Takako Shimamoto)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3067">CALCITE-3067</a>] Splunk adapter cannot parse right session keys from Splunk 7.2 (Shawn Chen)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3076">CALCITE-3076</a>] <code class="highlighter-rouge">AggregateJoinTransposeRule</code> throws error for unique under aggregate keys when generating merged calls</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3068">CALCITE-3068</a>] <code class="highlighter-rouge">testSubprogram()</code> does not test whether subprogram gets re-executed</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3072">CALCITE-3072</a>] Generate right SQL for <code class="highlighter-rouge">FLOOR&amp;SUBSTRING</code> functions in <code class="highlighter-rouge">SparkSqlDialect</code> (DonnyZone)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3074">CALCITE-3074</a>] Move MySQL’s JSON operators to <code class="highlighter-rouge">SqlLibraryOperators</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3076">CALCITE-3076</a>] <code class="language-plaintext highlighter-rouge">AggregateJoinTransposeRule</code> throws error for unique under aggregate keys when generating merged calls</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3068">CALCITE-3068</a>] <code class="language-plaintext highlighter-rouge">testSubprogram()</code> does not test whether subprogram gets re-executed</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3072">CALCITE-3072</a>] Generate right SQL for <code class="language-plaintext highlighter-rouge">FLOOR&amp;SUBSTRING</code> functions in <code class="language-plaintext highlighter-rouge">SparkSqlDialect</code> (DonnyZone)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3074">CALCITE-3074</a>] Move MySQL’s JSON operators to <code class="language-plaintext highlighter-rouge">SqlLibraryOperators</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3062">CALCITE-3062</a>] Do not populate <code class="highlighter-rouge">provenanceMap</code> if not debug</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3062">CALCITE-3062</a>] Do not populate <code class="language-plaintext highlighter-rouge">provenanceMap</code> if not debug</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2282">CALCITE-2282</a>] Remove sql operator table from parser</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3052">CALCITE-3052</a>] Error while applying rule <code class="highlighter-rouge">MaterializedViewAggregateRule</code>(Project-Aggregate): <code class="highlighter-rouge">ArrayIndexOutOfBoundsException</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3052">CALCITE-3052</a>] Error while applying rule <code class="language-plaintext highlighter-rouge">MaterializedViewAggregateRule</code>(Project-Aggregate): <code class="language-plaintext highlighter-rouge">ArrayIndexOutOfBoundsException</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3066">CALCITE-3066</a>] <code class="highlighter-rouge">RelToSqlConverter</code> may incorrectly throw an <code class="highlighter-rouge">AssertionError</code> for some decimal literals</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3028">CALCITE-3028</a>] Support FULL OUTER JOIN with <code class="highlighter-rouge">AggregateJoinTransposeRule</code> (Vineet Garg)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3017">CALCITE-3017</a>] Improve null handling of <code class="highlighter-rouge">JsonValueExpressionOperator</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3066">CALCITE-3066</a>] <code class="language-plaintext highlighter-rouge">RelToSqlConverter</code> may incorrectly throw an <code class="language-plaintext highlighter-rouge">AssertionError</code> for some decimal literals</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3028">CALCITE-3028</a>] Support FULL OUTER JOIN with <code class="language-plaintext highlighter-rouge">AggregateJoinTransposeRule</code> (Vineet Garg)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3017">CALCITE-3017</a>] Improve null handling of <code class="language-plaintext highlighter-rouge">JsonValueExpressionOperator</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2936">CALCITE-2936</a>] Simplify EXISTS or NOT EXISTS sub-query that has “GROUP BY ()”</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2803">CALCITE-2803</a>] <code class="highlighter-rouge">ProjectTransposeJoinRule</code> messes INDF expressions</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2803">CALCITE-2803</a>] <code class="language-plaintext highlighter-rouge">ProjectTransposeJoinRule</code> messes INDF expressions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3061">CALCITE-3061</a>] Query with WITH clause fails when alias is the same as the table with rolled up column</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3017">CALCITE-3017</a>] Re-organize how we represent built-in operators that are not in the standard operator table</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3056">CALCITE-3056</a>] Elasticsearch adapter. Invalid result with cast function on raw queries</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3046">CALCITE-3046</a>] <code class="highlighter-rouge">CompileException</code> when inserting casted value of composited user defined type into table</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3046">CALCITE-3046</a>] <code class="language-plaintext highlighter-rouge">CompileException</code> when inserting casted value of composited user defined type into table</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3054">CALCITE-3054</a>] Elasticsearch adapter. Avoid scripting for simple projections</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3039">CALCITE-3039</a>] In Interpreter, min() incorrectly returns maximum double value (dijkspicy)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3049">CALCITE-3049</a>] When simplifying “IS NULL” and “IS NOT NULL”, simplify the operand first</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3003">CALCITE-3003</a>] <code class="highlighter-rouge">AssertionError</code> when GROUP BY nested field (Will Yu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3012">CALCITE-3012</a>] Column uniqueness metadata provider may return wrong result for <code class="highlighter-rouge">FULL OUTER JOIN</code> operator (Vineet Garg)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3045">CALCITE-3045</a>] <code class="highlighter-rouge">NullPointerException</code> when casting null literal to composite user defined type</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3030">CALCITE-3030</a>] <code class="highlighter-rouge">SqlParseException</code> when using component identifier for setting in merge statements (Danny Chan)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3003">CALCITE-3003</a>] <code class="language-plaintext highlighter-rouge">AssertionError</code> when GROUP BY nested field (Will Yu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3012">CALCITE-3012</a>] Column uniqueness metadata provider may return wrong result for <code class="language-plaintext highlighter-rouge">FULL OUTER JOIN</code> operator (Vineet Garg)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3045">CALCITE-3045</a>] <code class="language-plaintext highlighter-rouge">NullPointerException</code> when casting null literal to composite user defined type</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3030">CALCITE-3030</a>] <code class="language-plaintext highlighter-rouge">SqlParseException</code> when using component identifier for setting in merge statements (Danny Chan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3029">CALCITE-3029</a>] Java-oriented field type is wrongly forced to be NOT NULL after being converted to SQL-oriented</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2292">CALCITE-2292</a>] Query result is wrong when table is implemented with <code class="highlighter-rouge">FilterableTable</code> and the sql has multiple where conditions</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2998">CALCITE-2998</a>] <code class="highlighter-rouge">RexCopier</code> should support all rex types (Chunwei Lei, Alexander Shilov)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2982">CALCITE-2982</a>] <code class="highlighter-rouge">SqlItemOperator</code> should throw understandable exception message for incorrect operand type (pengzhiwei)</li>
-  <li>Revert “[<a href="https://issues.apache.org/jira/browse/CALCITE-3021">CALCITE-3021</a>] <code class="highlighter-rouge">ArrayEqualityComparer</code> should use <code class="highlighter-rouge">Arrays#deepEquals</code>/<code class="highlighter-rouge">deepHashCode</code> instead of <code class="highlighter-rouge">Arrays#equals</code>/<code class="highlighter-rouge">hashCode</code> (Ruben Quesada Lopez)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3021">CALCITE-3021</a>] <code class="highlighter-rouge">ArrayEqualityComparer</code> should use <code class="highlighter-rouge">Arrays#deepEquals</code>/<code class="highlighter-rouge">deepHashCode</code> instead of <code class="highlighter-rouge">Arrays#equals</code>/<code class="highlighter-rouge">hashCode</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2292">CALCITE-2292</a>] Query result is wrong when table is implemented with <code class="language-plaintext highlighter-rouge">FilterableTable</code> and the sql has multiple where conditions</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2998">CALCITE-2998</a>] <code class="language-plaintext highlighter-rouge">RexCopier</code> should support all rex types (Chunwei Lei, Alexander Shilov)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2982">CALCITE-2982</a>] <code class="language-plaintext highlighter-rouge">SqlItemOperator</code> should throw understandable exception message for incorrect operand type (pengzhiwei)</li>
+  <li>Revert “[<a href="https://issues.apache.org/jira/browse/CALCITE-3021">CALCITE-3021</a>] <code class="language-plaintext highlighter-rouge">ArrayEqualityComparer</code> should use <code class="language-plaintext highlighter-rouge">Arrays#deepEquals</code>/<code class="language-plaintext highlighter-rouge">deepHashCode</code> instead of <code class="language-plaintext highlighter-rouge">Arrays#equals</code>/<code class="language-plaintext highlighter-rouge">hashCode</code> (Ruben Quesada Lopez)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3021">CALCITE-3021</a>] <code class="language-plaintext highlighter-rouge">ArrayEqualityComparer</code> should use <code class="language-plaintext highlighter-rouge">Arrays#deepEquals</code>/<code class="language-plaintext highlighter-rouge">deepHashCode</code> instead of <code class="language-plaintext highlighter-rouge">Arrays#equals</code>/<code class="language-plaintext highlighter-rouge">hashCode</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2453">CALCITE-2453</a>] Parse list of SQL statements separated with a semicolon (Chunwei Lei, charbel yazbeck)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3004">CALCITE-3004</a>] <code class="highlighter-rouge">RexOver</code> is incorrectly pushed down in <code class="highlighter-rouge">ProjectSetOpTransposeRule</code> and <code class="highlighter-rouge">ProjectCorrelateTransposeRule</code> (Chunwei Lei)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3004">CALCITE-3004</a>] <code class="language-plaintext highlighter-rouge">RexOver</code> is incorrectly pushed down in <code class="language-plaintext highlighter-rouge">ProjectSetOpTransposeRule</code> and <code class="language-plaintext highlighter-rouge">ProjectCorrelateTransposeRule</code> (Chunwei Lei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3001">CALCITE-3001</a>] Upgrade to Apache Druid 0.14.0-incubating</li>
   <li>Following [<a href="https://issues.apache.org/jira/browse/CALCITE-3010">CALCITE-3010</a>], remove redundant non-reserved keyword definitions</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2993">CALCITE-2993</a>] <code class="highlighter-rouge">ParseException</code> may be thrown for legal SQL queries due to incorrect “LOOKAHEAD(1)” hints</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3010">CALCITE-3010</a>] In SQL parser, move <code class="highlighter-rouge">JsonValueExpression</code> into Expression</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3009">CALCITE-3009</a>] <code class="highlighter-rouge">DiffRepository</code> should ensure that XML resource file does not contain duplicate test names</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2986">CALCITE-2986</a>] Wrong results with <code class="highlighter-rouge">= ANY</code> sub-query (Vineet Garg)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2962">CALCITE-2962</a>] <code class="highlighter-rouge">RelStructuredTypeFlattener</code> generates wrong types for nested column when <code class="highlighter-rouge">flattenProjection</code> (Will Yu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3007">CALCITE-3007</a>] Type mismatch for <code class="highlighter-rouge">ANY</code> sub-query in project (Vineet Garg)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2865">CALCITE-2865</a>] <code class="highlighter-rouge">FilterProjectTransposeRule</code> generates wrong <code class="highlighter-rouge">traitSet</code> when <code class="highlighter-rouge">copyFilter</code>/<code class="highlighter-rouge">Project</code> is true (Ruben Quesada Lopez)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2343">CALCITE-2343</a>] <code class="highlighter-rouge">PushProjector</code> with OVER expression causes infinite loop (Chunwei Lei)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2993">CALCITE-2993</a>] <code class="language-plaintext highlighter-rouge">ParseException</code> may be thrown for legal SQL queries due to incorrect “LOOKAHEAD(1)” hints</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3010">CALCITE-3010</a>] In SQL parser, move <code class="language-plaintext highlighter-rouge">JsonValueExpression</code> into Expression</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3009">CALCITE-3009</a>] <code class="language-plaintext highlighter-rouge">DiffRepository</code> should ensure that XML resource file does not contain duplicate test names</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2986">CALCITE-2986</a>] Wrong results with <code class="language-plaintext highlighter-rouge">= ANY</code> sub-query (Vineet Garg)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2962">CALCITE-2962</a>] <code class="language-plaintext highlighter-rouge">RelStructuredTypeFlattener</code> generates wrong types for nested column when <code class="language-plaintext highlighter-rouge">flattenProjection</code> (Will Yu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3007">CALCITE-3007</a>] Type mismatch for <code class="language-plaintext highlighter-rouge">ANY</code> sub-query in project (Vineet Garg)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2865">CALCITE-2865</a>] <code class="language-plaintext highlighter-rouge">FilterProjectTransposeRule</code> generates wrong <code class="language-plaintext highlighter-rouge">traitSet</code> when <code class="language-plaintext highlighter-rouge">copyFilter</code>/<code class="language-plaintext highlighter-rouge">Project</code> is true (Ruben Quesada Lopez)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2343">CALCITE-2343</a>] <code class="language-plaintext highlighter-rouge">PushProjector</code> with OVER expression causes infinite loop (Chunwei Lei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2994">CALCITE-2994</a>] Least restrictive type among structs does not consider nullability</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2991">CALCITE-2991</a>] <code class="highlighter-rouge">getMaxRowCount</code> should return 1 for an Aggregate with constant keys (Vineet Garg)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1338">CALCITE-1338</a>] <code class="highlighter-rouge">JoinProjectTransposeRule</code> should not pull a literal up through the null-generating side of a join (Chunwei Lei)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2991">CALCITE-2991</a>] <code class="language-plaintext highlighter-rouge">getMaxRowCount</code> should return 1 for an Aggregate with constant keys (Vineet Garg)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1338">CALCITE-1338</a>] <code class="language-plaintext highlighter-rouge">JoinProjectTransposeRule</code> should not pull a literal up through the null-generating side of a join (Chunwei Lei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2977">CALCITE-2977</a>] Exception is not thrown when there are ambiguous field in select list</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2739">CALCITE-2739</a>] NPE is thrown if the DEFINE statement contains IN in <code class="highlighter-rouge">MATCH_RECOGNIZE</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2739">CALCITE-2739</a>] NPE is thrown if the DEFINE statement contains IN in <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-896">CALCITE-896</a>] Remove Aggregate if grouping columns are unique and all functions are splittable</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2456">CALCITE-2456</a>] <code class="highlighter-rouge">VolcanoRuleCall</code> doesn’t match unordered child operand when the operand is not the first operand. <code class="highlighter-rouge">PruneEmptyRules</code> <code class="highlighter-rouge">UNION</code> and <code class="highlighter-rouge">MINUS</code> with empty inputs cause infinite cycle. (Zuozhi Wang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2456">CALCITE-2456</a>] <code class="language-plaintext highlighter-rouge">VolcanoRuleCall</code> doesn’t match unordered child operand when the operand is not the first operand. <code class="language-plaintext highlighter-rouge">PruneEmptyRules</code> <code class="language-plaintext highlighter-rouge">UNION</code> and <code class="language-plaintext highlighter-rouge">MINUS</code> with empty inputs cause infinite cycle. (Zuozhi Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2847">CALCITE-2847</a>] Optimize global LOOKAHEAD for SQL parsers</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2976">CALCITE-2976</a>] Improve materialized view rewriting coverage with disjunctive predicates</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2954">CALCITE-2954</a>] <code class="highlighter-rouge">SubQueryJoinRemoveRule</code> and <code class="highlighter-rouge">SubQueryProjectRemoveRule</code> passing on empty set instead of set of correlation id (Vineet Garg)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2930">CALCITE-2930</a>] <code class="highlighter-rouge">IllegalStateException</code> when <code class="highlighter-rouge">FilterCorrelateRule</code> matches a SEMI or ANTI Correlate (Ruben Quesada Lopez)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2954">CALCITE-2954</a>] <code class="language-plaintext highlighter-rouge">SubQueryJoinRemoveRule</code> and <code class="language-plaintext highlighter-rouge">SubQueryProjectRemoveRule</code> passing on empty set instead of set of correlation id (Vineet Garg)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2930">CALCITE-2930</a>] <code class="language-plaintext highlighter-rouge">IllegalStateException</code> when <code class="language-plaintext highlighter-rouge">FilterCorrelateRule</code> matches a SEMI or ANTI Correlate (Ruben Quesada Lopez)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2004">CALCITE-2004</a>] Push join predicate down into inner relation for lateral join</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2820">CALCITE-2820</a>] Avoid reducing certain aggregate functions when it is not necessary (Siddharth Teotia)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2928">CALCITE-2928</a>] When resolving user-defined functions (UDFs), use the case-sensitivity of the current connection (Danny Chan)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2900">CALCITE-2900</a>] <code class="highlighter-rouge">RelStructuredTypeFlattener</code> generates wrong types on nested columns (Will Yu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2941">CALCITE-2941</a>] <code class="highlighter-rouge">EnumerableLimitRule</code> on Sort with no collation creates <code class="highlighter-rouge">EnumerableLimit</code> with wrong <code class="highlighter-rouge">traitSet</code> and <code class="highlighter-rouge">cluster</code> (Ruben Quesada Lopez)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2909">CALCITE-2909</a>] Optimize Enumerable <code class="highlighter-rouge">SemiJoin</code> with lazy computation of <code class="highlighter-rouge">innerLookup</code> (Ruben Quesada Lopez)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2903">CALCITE-2903</a>] Exception thrown when decorrelating query with <code class="highlighter-rouge">TEMPORAL TABLE</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2900">CALCITE-2900</a>] <code class="language-plaintext highlighter-rouge">RelStructuredTypeFlattener</code> generates wrong types on nested columns (Will Yu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2941">CALCITE-2941</a>] <code class="language-plaintext highlighter-rouge">EnumerableLimitRule</code> on Sort with no collation creates <code class="language-plaintext highlighter-rouge">EnumerableLimit</code> with wrong <code class="language-plaintext highlighter-rouge">traitSet</code> and <code class="language-plaintext highlighter-rouge">cluster</code> (Ruben Quesada Lopez)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2909">CALCITE-2909</a>] Optimize Enumerable <code class="language-plaintext highlighter-rouge">SemiJoin</code> with lazy computation of <code class="language-plaintext highlighter-rouge">innerLookup</code> (Ruben Quesada Lopez)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2903">CALCITE-2903</a>] Exception thrown when decorrelating query with <code class="language-plaintext highlighter-rouge">TEMPORAL TABLE</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2958">CALCITE-2958</a>] Upgrade SQLLine to 1.7.0</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2796">CALCITE-2796</a>] JDBC adapter fix for <code class="highlighter-rouge">ROLLUP</code> on MySQL 5</li>
-  <li>In <code class="highlighter-rouge">RelFieldCollation</code>, add a <code class="highlighter-rouge">withX</code> copy method</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2953">CALCITE-2953</a>] <code class="highlighter-rouge">LatticeTest.testTileAlgorithm2</code> and <code class="highlighter-rouge">LatticeTest.testTileAlgorithm3</code> fail intermittently</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-574">CALCITE-574</a>] Remove <code class="highlighter-rouge">org.apache.calcite.util.Bug.CALCITE_461_FIXED</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2796">CALCITE-2796</a>] JDBC adapter fix for <code class="language-plaintext highlighter-rouge">ROLLUP</code> on MySQL 5</li>
+  <li>In <code class="language-plaintext highlighter-rouge">RelFieldCollation</code>, add a <code class="language-plaintext highlighter-rouge">withX</code> copy method</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2953">CALCITE-2953</a>] <code class="language-plaintext highlighter-rouge">LatticeTest.testTileAlgorithm2</code> and <code class="language-plaintext highlighter-rouge">LatticeTest.testTileAlgorithm3</code> fail intermittently</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-574">CALCITE-574</a>] Remove <code class="language-plaintext highlighter-rouge">org.apache.calcite.util.Bug.CALCITE_461_FIXED</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2951">CALCITE-2951</a>] Support decorrelating a sub-query that has aggregate with grouping sets (Haisheng Yuan)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2946">CALCITE-2946</a>] <code class="highlighter-rouge">RelBuilder</code> wrongly skips creation of Aggregate that prunes columns if input produces one row at most</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2942">CALCITE-2943</a>] Materialized view rewriting logic calls <code class="highlighter-rouge">getApplicableMaterializations</code> each time the rule is triggered</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2942">CALCITE-2942</a>] Materialized view rewriting logic instantiates <code class="highlighter-rouge">RelMetadataQuery</code> each time the rule is triggered</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2946">CALCITE-2946</a>] <code class="language-plaintext highlighter-rouge">RelBuilder</code> wrongly skips creation of Aggregate that prunes columns if input produces one row at most</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2942">CALCITE-2943</a>] Materialized view rewriting logic calls <code class="language-plaintext highlighter-rouge">getApplicableMaterializations</code> each time the rule is triggered</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2942">CALCITE-2942</a>] Materialized view rewriting logic instantiates <code class="language-plaintext highlighter-rouge">RelMetadataQuery</code> each time the rule is triggered</li>
 </ul>
 
 <h4 id="build-1-20-0">Build and test suite</h4>
@@ -3177,13 +3177,13 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2952">CALCITE-2952</a>] Document JDK 12 support</li>
   <li>Site: Add Danny Chan as committer</li>
   <li>Site: Improve contribution guidelines for JIRA</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2846">CALCITE-2846</a>] Document Oracle-specific functions, such as <code class="highlighter-rouge">NVL</code> and <code class="highlighter-rouge">LTRIM</code>, in the SQL reference</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2846">CALCITE-2846</a>] Document Oracle-specific functions, such as <code class="language-plaintext highlighter-rouge">NVL</code> and <code class="language-plaintext highlighter-rouge">LTRIM</code>, in the SQL reference</li>
   <li>Site: Add new committers and PMC (Chunwei Lei, Ruben Quesada Lopez, Zhiwei Peng and Stamatis Zampetakis)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3006">CALCITE-3006</a>] Example code on site cannot compile (Chunwei Lei)</li>
   <li>Site: Add guidelines for JIRA’s fix version field</li>
   <li>Site: Update content of “Not implemented” since JSON_LENGH has already been added</li>
   <li>Site: Improve documentation for MySQL-specific JSON operators</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2927">CALCITE-2927</a>] The Javadoc and implement of <code class="highlighter-rouge">RuleQueue.computeImportance()</code> is inconsistent (Meng Wang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2927">CALCITE-2927</a>] The Javadoc and implement of <code class="language-plaintext highlighter-rouge">RuleQueue.computeImportance()</code> is inconsistent (Meng Wang)</li>
   <li>Update instructions for publishing site; we previously used subversion, now we use git</li>
   <li>Site: Add Alibaba MaxCompute to powered-by page</li>
   <li>Site: Add new committers (Haisheng Yuan, Hongze Zhang and Stamatis Zampetakis)</li>
@@ -3203,40 +3203,40 @@
 using Oracle JDK 8, 9, 10, 11, 12 and OpenJDK 8, 9, 10, 11, 12;
 Guava versions 19.0 to 27.1-jre;
 Druid version 0.11.0;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <h4 id="new-features-1-19-0">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1912">CALCITE-1912</a>]
-Support <code class="highlighter-rouge">FOR SYSTEM_TIME AS OF</code> in regular queries</li>
+Support <code class="language-plaintext highlighter-rouge">FOR SYSTEM_TIME AS OF</code> in regular queries</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2786">CALCITE-2786</a>]
-Add order by clause support for <code class="highlighter-rouge">JSON_ARRAYAGG</code>
+Add order by clause support for <code class="language-plaintext highlighter-rouge">JSON_ARRAYAGG</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2791">CALCITE-2791</a>]
-Add the <code class="highlighter-rouge">JSON_TYPE</code> function</li>
+Add the <code class="language-plaintext highlighter-rouge">JSON_TYPE</code> function</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2864">CALCITE-2864</a>]
-Add the <code class="highlighter-rouge">JSON_DEPTH</code> function</li>
+Add the <code class="language-plaintext highlighter-rouge">JSON_DEPTH</code> function</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2881">CALCITE-2881</a>]
-Add the <code class="highlighter-rouge">JSON_PRETTY</code> function</li>
+Add the <code class="language-plaintext highlighter-rouge">JSON_PRETTY</code> function</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2770">CALCITE-2770</a>]
-Add bitwise aggregate functions <code class="highlighter-rouge">BIT_AND</code>, <code class="highlighter-rouge">BIT_OR</code>
+Add bitwise aggregate functions <code class="language-plaintext highlighter-rouge">BIT_AND</code>, <code class="language-plaintext highlighter-rouge">BIT_OR</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2799">CALCITE-2799</a>]
-Allow alias in <code class="highlighter-rouge">HAVING</code> clause for aggregate functions</li>
+Allow alias in <code class="language-plaintext highlighter-rouge">HAVING</code> clause for aggregate functions</li>
 </ul>
 
 <h4 id="fixes-1-19-0">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1513">CALCITE-1513</a>]
-Correlated <code class="highlighter-rouge">NOT IN</code> query throws <code class="highlighter-rouge">AssertionError</code>
+Correlated <code class="language-plaintext highlighter-rouge">NOT IN</code> query throws <code class="language-plaintext highlighter-rouge">AssertionError</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1726">CALCITE-1726</a>]
-Sub-query in <code class="highlighter-rouge">FILTER</code> is left untransformed</li>
+Sub-query in <code class="language-plaintext highlighter-rouge">FILTER</code> is left untransformed</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2249">CALCITE-2249</a>]
-<code class="highlighter-rouge">AggregateJoinTransposeRule</code> generates non-equivalent nodes if <code class="highlighter-rouge">Aggregate</code>
-contains a <code class="highlighter-rouge">DISTINCT</code> aggregate function</li>
+<code class="language-plaintext highlighter-rouge">AggregateJoinTransposeRule</code> generates non-equivalent nodes if <code class="language-plaintext highlighter-rouge">Aggregate</code>
+contains a <code class="language-plaintext highlighter-rouge">DISTINCT</code> aggregate function</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2288">CALCITE-2288</a>]
 Type assertion error when reducing partially-constant expression</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2290">CALCITE-2290</a>]
@@ -3246,90 +3246,90 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2338">CALCITE-2338</a>]
 Make simplification API more conservative</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2344">CALCITE-2344</a>]
-Avoid inferring <code class="highlighter-rouge">$0 = null</code> predicate from <code class="highlighter-rouge">$0 IS NULL</code> when <code class="highlighter-rouge">$0</code> is not
+Avoid inferring <code class="language-plaintext highlighter-rouge">$0 = null</code> predicate from <code class="language-plaintext highlighter-rouge">$0 IS NULL</code> when <code class="language-plaintext highlighter-rouge">$0</code> is not
 nullable</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2375">CALCITE-2375</a>]
-<code class="highlighter-rouge">EnumerableDefaults.join_()</code> leaks connections</li>
+<code class="language-plaintext highlighter-rouge">EnumerableDefaults.join_()</code> leaks connections</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2437">CALCITE-2437</a>]
-<code class="highlighter-rouge">FilterMultiJoinMergeRule</code> doesn’t combine postFilterCondition</li>
+<code class="language-plaintext highlighter-rouge">FilterMultiJoinMergeRule</code> doesn’t combine postFilterCondition</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2454">CALCITE-2454</a>]
-Avoid treating <code class="highlighter-rouge">Project(x=1)</code> and <code class="highlighter-rouge">Project(x=1)</code> equal when the type of <code class="highlighter-rouge">1</code> is
-<code class="highlighter-rouge">int</code> in the first rel and <code class="highlighter-rouge">long</code> in the second</li>
+Avoid treating <code class="language-plaintext highlighter-rouge">Project(x=1)</code> and <code class="language-plaintext highlighter-rouge">Project(x=1)</code> equal when the type of <code class="language-plaintext highlighter-rouge">1</code> is
+<code class="language-plaintext highlighter-rouge">int</code> in the first rel and <code class="language-plaintext highlighter-rouge">long</code> in the second</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2463">CALCITE-2463</a>]
-Silence ERROR logs from <code class="highlighter-rouge">CalciteException</code>, <code class="highlighter-rouge">SqlValidatorException</code>
+Silence ERROR logs from <code class="language-plaintext highlighter-rouge">CalciteException</code>, <code class="language-plaintext highlighter-rouge">SqlValidatorException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2464">CALCITE-2464</a>]
 Allow to set nullability for columns of structured types</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2471">CALCITE-2471</a>]
-<code class="highlighter-rouge">RelNode</code> description includes all tree when recomputed</li>
+<code class="language-plaintext highlighter-rouge">RelNode</code> description includes all tree when recomputed</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2554">CALCITE-2554</a>]
 Enrich enumerable join operators with order-preserving information</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2582">CALCITE-2582</a>]
-<code class="highlighter-rouge">FilterProjectTransposeRule</code> does not always simplify the new filter condition</li>
+<code class="language-plaintext highlighter-rouge">FilterProjectTransposeRule</code> does not always simplify the new filter condition</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2599">CALCITE-2599</a>]
-Support <code class="highlighter-rouge">ASCII(string)</code> in <code class="highlighter-rouge">SqlFunctions</code>
+Support <code class="language-plaintext highlighter-rouge">ASCII(string)</code> in <code class="language-plaintext highlighter-rouge">SqlFunctions</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2621">CALCITE-2621</a>]
 Add rule to execute semi-joins with correlation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2623">CALCITE-2623</a>]
-Add specific translation for <code class="highlighter-rouge">POSITION</code>, <code class="highlighter-rouge">MOD</code> and set operators in BigQuery
+Add specific translation for <code class="language-plaintext highlighter-rouge">POSITION</code>, <code class="language-plaintext highlighter-rouge">MOD</code> and set operators in BigQuery
 and Hive SQL dialects</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2625">CALCITE-2625</a>]
-<code class="highlighter-rouge">ROW_NUMBER</code>, <code class="highlighter-rouge">RANK</code> generating invalid SQL</li>
+<code class="language-plaintext highlighter-rouge">ROW_NUMBER</code>, <code class="language-plaintext highlighter-rouge">RANK</code> generating invalid SQL</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2629">CALCITE-2629</a>]
-Unnecessary call to <code class="highlighter-rouge">CatalogReader#getAllSchemaObjects</code> in <code class="highlighter-rouge">CatalogScope</code>
+Unnecessary call to <code class="language-plaintext highlighter-rouge">CatalogReader#getAllSchemaObjects</code> in <code class="language-plaintext highlighter-rouge">CatalogScope</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2635">CALCITE-2635</a>]
-<code class="highlighter-rouge">getMonotonocity</code> is slow on wide tables</li>
+<code class="language-plaintext highlighter-rouge">getMonotonocity</code> is slow on wide tables</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2674">CALCITE-2674</a>]
-<code class="highlighter-rouge">SqlIdentifier</code> same name with built-in function but with escape character
+<code class="language-plaintext highlighter-rouge">SqlIdentifier</code> same name with built-in function but with escape character
 should be still resolved as an identifier</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2677">CALCITE-2677</a>]
 Struct types with one field are not mapped correctly to Java classes</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2703">CALCITE-2703</a>]
 Reduce code generation and class loading overhead when executing queries in
-<code class="highlighter-rouge">EnumerableConvention</code>
+<code class="language-plaintext highlighter-rouge">EnumerableConvention</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2722">CALCITE-2722</a>]
-<code class="highlighter-rouge">SqlImplementor.createLeftCall</code> method throws <code class="highlighter-rouge">StackOverflowError</code>
+<code class="language-plaintext highlighter-rouge">SqlImplementor.createLeftCall</code> method throws <code class="language-plaintext highlighter-rouge">StackOverflowError</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2727">CALCITE-2727</a>]
 Materialized view rewriting bails out incorrectly when a view does not contain
 any table reference</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2733">CALCITE-2733</a>]
-Use <code class="highlighter-rouge">catalog</code> and <code class="highlighter-rouge">schema</code> from JDBC connect string to retrieve tables if specified</li>
+Use <code class="language-plaintext highlighter-rouge">catalog</code> and <code class="language-plaintext highlighter-rouge">schema</code> from JDBC connect string to retrieve tables if specified</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2750">CALCITE-2750</a>]
-<code class="highlighter-rouge">PI</code> operator is incorrectly identified as dynamic function</li>
+<code class="language-plaintext highlighter-rouge">PI</code> operator is incorrectly identified as dynamic function</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2755">CALCITE-2755</a>]
-Expose document <code class="highlighter-rouge">_id</code> field when querying ElasticSearch</li>
+Expose document <code class="language-plaintext highlighter-rouge">_id</code> field when querying ElasticSearch</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2762">CALCITE-2762</a>]
 Quidem env variable is always false if its name is separated by dot(“.”)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2778">CALCITE-2778</a>]
-Remove <code class="highlighter-rouge">ClosableAllocation</code>, <code class="highlighter-rouge">ClosableAllocationOwner</code>,
-<code class="highlighter-rouge">CompoundClosableAllocation</code>
+Remove <code class="language-plaintext highlighter-rouge">ClosableAllocation</code>, <code class="language-plaintext highlighter-rouge">ClosableAllocationOwner</code>,
+<code class="language-plaintext highlighter-rouge">CompoundClosableAllocation</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2782">CALCITE-2782</a>]
 Use server time zone by default if time zone is not specified in the user connection string</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2783">CALCITE-2783</a>]
 “COALESCE(s, TRUE) = TRUE” and “(s OR s IS UNKNOWN) = TRUE” causes
-<code class="highlighter-rouge">NullPointerException</code>
+<code class="language-plaintext highlighter-rouge">NullPointerException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2785">CALCITE-2785</a>]
-In <code class="highlighter-rouge">EnumerableAggregate</code>, wrong result produced If there are sorted aggregates
+In <code class="language-plaintext highlighter-rouge">EnumerableAggregate</code>, wrong result produced If there are sorted aggregates
 and non-sorted aggregates at the same time</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2787">CALCITE-2787</a>]
 JSON aggregate calls with different null clause get incorrectly merged while
 converting from SQL to relational algebra</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2790">CALCITE-2790</a>]
-<code class="highlighter-rouge">AggregateJoinTransposeRule</code> incorrectly pushes down distinct count into join</li>
+<code class="language-plaintext highlighter-rouge">AggregateJoinTransposeRule</code> incorrectly pushes down distinct count into join</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2797">CALCITE-2797</a>]
-Support <code class="highlighter-rouge">APPROX_COUNT_DISTINCT</code> aggregate function in ElasticSearch</li>
+Support <code class="language-plaintext highlighter-rouge">APPROX_COUNT_DISTINCT</code> aggregate function in ElasticSearch</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2798">CALCITE-2798</a>]
-Optimizer should remove <code class="highlighter-rouge">ORDER BY</code> in sub-query, provided it has no <code class="highlighter-rouge">LIMIT</code> or
-<code class="highlighter-rouge">OFFSET</code>
+Optimizer should remove <code class="language-plaintext highlighter-rouge">ORDER BY</code> in sub-query, provided it has no <code class="language-plaintext highlighter-rouge">LIMIT</code> or
+<code class="language-plaintext highlighter-rouge">OFFSET</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2802">CALCITE-2802</a>]
-In Druid adapter, use of range conditions like <code class="highlighter-rouge">'2010-01-01' &lt; TIMESTAMP</code> leads
+In Druid adapter, use of range conditions like <code class="language-plaintext highlighter-rouge">'2010-01-01' &lt; TIMESTAMP</code> leads
 to incorrect results</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2805">CALCITE-2805</a>]
 Can’t specify port with Cassandra adapter in connection string</li>
@@ -3338,65 +3338,65 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2811">CALCITE-2811</a>]
 Update version of Cassandra driver</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2814">CALCITE-2814</a>]
-In ElasticSearch adapter, fix <code class="highlighter-rouge">GROUP BY</code> when using raw item access
-(e.g. <code class="highlighter-rouge">_MAP*</code> [‘a.b.c’])</li>
+In ElasticSearch adapter, fix <code class="language-plaintext highlighter-rouge">GROUP BY</code> when using raw item access
+(e.g. <code class="language-plaintext highlighter-rouge">_MAP*</code> [‘a.b.c’])</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2817">CALCITE-2817</a>]
-Make <code class="highlighter-rouge">CannotPlanException</code> more informative</li>
+Make <code class="language-plaintext highlighter-rouge">CannotPlanException</code> more informative</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2827">CALCITE-2827</a>]
-Allow <code class="highlighter-rouge">CONVENTION.NONE</code> planning with <code class="highlighter-rouge">VolcanoPlanner</code>
+Allow <code class="language-plaintext highlighter-rouge">CONVENTION.NONE</code> planning with <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2838">CALCITE-2838</a>]
-Simplification: Remove redundant <code class="highlighter-rouge">IS TRUE</code> checks</li>
+Simplification: Remove redundant <code class="language-plaintext highlighter-rouge">IS TRUE</code> checks</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2839">CALCITE-2839</a>]
-Simplify comparisons against <code class="highlighter-rouge">BOOLEAN</code> literals</li>
+Simplify comparisons against <code class="language-plaintext highlighter-rouge">BOOLEAN</code> literals</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2840">CALCITE-2840</a>]
-<code class="highlighter-rouge">RexNode</code> simplification logic should use more specific <code class="highlighter-rouge">UnknownAs</code> modes</li>
+<code class="language-plaintext highlighter-rouge">RexNode</code> simplification logic should use more specific <code class="language-plaintext highlighter-rouge">UnknownAs</code> modes</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2841">CALCITE-2841</a>]
 Simplification: push negation into Case expression</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2842">CALCITE-2842</a>]
-Computing <code class="highlighter-rouge">RexCall</code> digest containing <code class="highlighter-rouge">IN</code> expressions leads to exceptions</li>
+Computing <code class="language-plaintext highlighter-rouge">RexCall</code> digest containing <code class="language-plaintext highlighter-rouge">IN</code> expressions leads to exceptions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2848">CALCITE-2848</a>]
 Simplifying a CASE statement's first branch should ignore its safety</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2850">CALCITE-2850</a>]
-Geode adapter: support <code class="highlighter-rouge">BOOLEAN</code> column as filter operand</li>
+Geode adapter: support <code class="language-plaintext highlighter-rouge">BOOLEAN</code> column as filter operand</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2852">CALCITE-2852</a>]
 RexNode simplification does not traverse unknown functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2856">CALCITE-2856</a>]
-Emulating <code class="highlighter-rouge">COMMA JOIN</code> as <code class="highlighter-rouge">CROSS JOIN</code> for <code class="highlighter-rouge">SparkSqlDialect</code>
+Emulating <code class="language-plaintext highlighter-rouge">COMMA JOIN</code> as <code class="language-plaintext highlighter-rouge">CROSS JOIN</code> for <code class="language-plaintext highlighter-rouge">SparkSqlDialect</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2858">CALCITE-2858</a>]
 Improvements in JSON writer and reader for plans</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2859">CALCITE-2859</a>]
 Centralize Calcite system properties</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2863">CALCITE-2863</a>]
-In ElasticSearch adapter, query fails when filtering directly on <code class="highlighter-rouge">_MAP</code>
+In ElasticSearch adapter, query fails when filtering directly on <code class="language-plaintext highlighter-rouge">_MAP</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2887">CALCITE-2887</a>]
-Improve performance of <code class="highlighter-rouge">RexLiteral.toJavaString()</code>
+Improve performance of <code class="language-plaintext highlighter-rouge">RexLiteral.toJavaString()</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2897">CALCITE-2897</a>]
-Reduce expensive calls to <code class="highlighter-rouge">Class.getSimpleName()</code>
+Reduce expensive calls to <code class="language-plaintext highlighter-rouge">Class.getSimpleName()</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2899">CALCITE-2899</a>]
-Deprecate <code class="highlighter-rouge">RelTraitPropagationVisitor</code> and remove its usages</li>
+Deprecate <code class="language-plaintext highlighter-rouge">RelTraitPropagationVisitor</code> and remove its usages</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2890">CALCITE-2890</a>]
-In ElasticSearch adapter, combine <code class="highlighter-rouge">any_value</code> with other aggregation functions
+In ElasticSearch adapter, combine <code class="language-plaintext highlighter-rouge">any_value</code> with other aggregation functions
 failed</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2891">CALCITE-2891</a>]
 Alias suggester failed to suggest name based on original name incrementally</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2894">CALCITE-2894</a>]
-<code class="highlighter-rouge">RelMdPercentageOriginalRows</code> throws <code class="highlighter-rouge">NullPointerException</code> when explaining
+<code class="language-plaintext highlighter-rouge">RelMdPercentageOriginalRows</code> throws <code class="language-plaintext highlighter-rouge">NullPointerException</code> when explaining
 plan with all attributes</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2902">CALCITE-2902</a>]
-Improve performance of <code class="highlighter-rouge">AbstractRelNode.computeDigest()</code>
+Improve performance of <code class="language-plaintext highlighter-rouge">AbstractRelNode.computeDigest()</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2929">CALCITE-2929</a>]
-Simplification of <code class="highlighter-rouge">IS NULL</code> checks are incorrectly assuming that <code class="highlighter-rouge">CAST</code>s are
+Simplification of <code class="language-plaintext highlighter-rouge">IS NULL</code> checks are incorrectly assuming that <code class="language-plaintext highlighter-rouge">CAST</code>s are
 possible</li>
-  <li>Improve Graphviz dump in <code class="highlighter-rouge">CannotPlanException</code>: make boxes shorter, print
+  <li>Improve Graphviz dump in <code class="language-plaintext highlighter-rouge">CannotPlanException</code>: make boxes shorter, print
 composite traits if they were simplified</li>
-  <li>Make <code class="highlighter-rouge">SparkHandlerImpl</code> singleton thread-safe</li>
-  <li>Remove usage of <code class="highlighter-rouge">userConfig</code> attribute in ElasticSearch adapter</li>
+  <li>Make <code class="language-plaintext highlighter-rouge">SparkHandlerImpl</code> singleton thread-safe</li>
+  <li>Remove usage of <code class="language-plaintext highlighter-rouge">userConfig</code> attribute in ElasticSearch adapter</li>
   <li>In ElasticSearch adapter, remove dead (or unnecessary) code</li>
 </ul>
 
@@ -3406,55 +3406,55 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2732">CALCITE-2732</a>]
 Upgrade PostgreSQL driver version</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2759">CALCITE-2759</a>]
-Update <code class="highlighter-rouge">maven-remote-resources-plugin</code> to 1.6.0</li>
+Update <code class="language-plaintext highlighter-rouge">maven-remote-resources-plugin</code> to 1.6.0</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2765">CALCITE-2765</a>]
 Bump Janino compiler dependency to 3.0.11</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2768">CALCITE-2768</a>]
-<code class="highlighter-rouge">PlannerTest</code> ignores top-level <code class="highlighter-rouge">ORDER BY</code> clause (<code class="highlighter-rouge">RootRel.collation</code>)</li>
+<code class="language-plaintext highlighter-rouge">PlannerTest</code> ignores top-level <code class="language-plaintext highlighter-rouge">ORDER BY</code> clause (<code class="language-plaintext highlighter-rouge">RootRel.collation</code>)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2788">CALCITE-2788</a>]
-Building error for sub-project of calcite on <code class="highlighter-rouge">maven-checkstyle-plugin</code>
+Building error for sub-project of calcite on <code class="language-plaintext highlighter-rouge">maven-checkstyle-plugin</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2779">CALCITE-2779</a>]
-Remove references to <code class="highlighter-rouge">StringBuffer</code>
+Remove references to <code class="language-plaintext highlighter-rouge">StringBuffer</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2875">CALCITE-2875</a>]
-Some misspellings in <code class="highlighter-rouge">RelOptListener</code>
+Some misspellings in <code class="language-plaintext highlighter-rouge">RelOptListener</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2895">CALCITE-2895</a>]
-Some arguments are undocumented in constructor of <code class="highlighter-rouge">LogicalAggregate</code>
+Some arguments are undocumented in constructor of <code class="language-plaintext highlighter-rouge">LogicalAggregate</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2836">CALCITE-2836</a>]
-Remove <code class="highlighter-rouge">maven-compiler-plugin</code> from <code class="highlighter-rouge">calcite-plus</code> module <code class="highlighter-rouge">pom.xml</code>
+Remove <code class="language-plaintext highlighter-rouge">maven-compiler-plugin</code> from <code class="language-plaintext highlighter-rouge">calcite-plus</code> module <code class="language-plaintext highlighter-rouge">pom.xml</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2878">CALCITE-2878</a>]
-Avoid <code class="highlighter-rouge">throw new RuntimeException(e)</code> in tests</li>
+Avoid <code class="language-plaintext highlighter-rouge">throw new RuntimeException(e)</code> in tests</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2916">CALCITE-2916</a>]
 Upgrade jackson to 2.9.8</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2925">CALCITE-2925</a>]
-Exclude <code class="highlighter-rouge">maven-wrapper.jar</code> from source distribution</li>
+Exclude <code class="language-plaintext highlighter-rouge">maven-wrapper.jar</code> from source distribution</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2931">CALCITE-2931</a>]
 In Mongo adapter, compare Bson (not string) query representation in tests</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2932">CALCITE-2932</a>]
-<code class="highlighter-rouge">DruidAdapterIT</code> regression after 1.17 release</li>
-  <li>Improve messages for tests based on <code class="highlighter-rouge">CalciteAssert</code>
+<code class="language-plaintext highlighter-rouge">DruidAdapterIT</code> regression after 1.17 release</li>
+  <li>Improve messages for tests based on <code class="language-plaintext highlighter-rouge">CalciteAssert</code>
 </li>
   <li>Add JUnit category for extremely slow tests, launch them in a separate Travis job</li>
-  <li>Fix sqlline by removing redundant slf4j dependency (<code class="highlighter-rouge">log4j-over-slf4j</code>) from
-<code class="highlighter-rouge">cassandra-all</code>
+  <li>Fix sqlline by removing redundant slf4j dependency (<code class="language-plaintext highlighter-rouge">log4j-over-slf4j</code>) from
+<code class="language-plaintext highlighter-rouge">cassandra-all</code>
 </li>
 </ul>
 
 <h4 id="site-1-19-0">Web site and documentation</h4>
 
 <ul>
-  <li>Switch from <code class="highlighter-rouge">maven:alpine</code> to <code class="highlighter-rouge">maven</code> image for generating javadoc when
+  <li>Switch from <code class="language-plaintext highlighter-rouge">maven:alpine</code> to <code class="language-plaintext highlighter-rouge">maven</code> image for generating javadoc when
 building the site</li>
   <li>Update instructions for pushing to the git site repository</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2734">CALCITE-2734</a>]
 Site: Update mongo documentation to reflect filename changes</li>
   <li>Site: Add commit message guidelines for contributors (Stamatis Zampetakis)</li>
   <li>Site: Add Zoltan Haindrich as committer</li>
-  <li>Site: Elastic query example on <code class="highlighter-rouge">_MAP</code>
+  <li>Site: Elastic query example on <code class="language-plaintext highlighter-rouge">_MAP</code>
 </li>
   <li>Site: fix JSON syntax error at file adapter page (Marc Prud’hommeaux)</li>
   <li>Site: fix typo at the main page (Marc Prud’hommeaux)</li>
@@ -3491,108 +3491,108 @@
 using Oracle JDK 8, 9, 10, 11 and OpenJDK 10, 11;
 Guava versions 19.0 to 27.0.1-jre;
 Druid version 0.11.0;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <h4 id="new-features-1-18-0">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2662">CALCITE-2662</a>]
-In <code class="highlighter-rouge">Planner</code>, allow parsing a stream (<code class="highlighter-rouge">Reader</code>) instead of a <code class="highlighter-rouge">String</code>
+In <code class="language-plaintext highlighter-rouge">Planner</code>, allow parsing a stream (<code class="language-plaintext highlighter-rouge">Reader</code>) instead of a <code class="language-plaintext highlighter-rouge">String</code>
 (Enrico Olivelli)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2699">CALCITE-2699</a>]
-<code class="highlighter-rouge">TIMESTAMPADD</code> function now applies to <code class="highlighter-rouge">DATE</code> and <code class="highlighter-rouge">TIME</code> as well as <code class="highlighter-rouge">TIMESTAMP</code>
+<code class="language-plaintext highlighter-rouge">TIMESTAMPADD</code> function now applies to <code class="language-plaintext highlighter-rouge">DATE</code> and <code class="language-plaintext highlighter-rouge">TIME</code> as well as <code class="language-plaintext highlighter-rouge">TIMESTAMP</code>
 (xuqianjin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-563">CALCITE-563</a>]
 In JDBC adapter, push bindable parameters down to the underlying JDBC data
 source (Vladimir Sitnikov, Piotr Bojko)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2663">CALCITE-2663</a>]
-In DDL parser, add <code class="highlighter-rouge">CREATE</code> and <code class="highlighter-rouge">DROP FUNCTION</code> (ambition119)</li>
+In DDL parser, add <code class="language-plaintext highlighter-rouge">CREATE</code> and <code class="language-plaintext highlighter-rouge">DROP FUNCTION</code> (ambition119)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2266">CALCITE-2266</a>]
-Implement SQL:2016 JSON functions: <code class="highlighter-rouge">JSON_EXISTS</code>, <code class="highlighter-rouge">JSON_VALUE</code>, <code class="highlighter-rouge">JSON_QUERY</code>,
-<code class="highlighter-rouge">JSON_OBJECT</code>, <code class="highlighter-rouge">JSON_OBJECTAGG</code>, <code class="highlighter-rouge">JSON_ARRAY</code>, <code class="highlighter-rouge">JSON_ARRAYAGG</code>, <code class="highlighter-rouge">x IS JSON</code>
+Implement SQL:2016 JSON functions: <code class="language-plaintext highlighter-rouge">JSON_EXISTS</code>, <code class="language-plaintext highlighter-rouge">JSON_VALUE</code>, <code class="language-plaintext highlighter-rouge">JSON_QUERY</code>,
+<code class="language-plaintext highlighter-rouge">JSON_OBJECT</code>, <code class="language-plaintext highlighter-rouge">JSON_OBJECTAGG</code>, <code class="language-plaintext highlighter-rouge">JSON_ARRAY</code>, <code class="language-plaintext highlighter-rouge">JSON_ARRAYAGG</code>, <code class="language-plaintext highlighter-rouge">x IS JSON</code>
 predicate (Hongze Zhang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2224">CALCITE-2224</a>]
-Support <code class="highlighter-rouge">WITHIN GROUP</code> clause for aggregate functions (Hongze Zhang)</li>
+Support <code class="language-plaintext highlighter-rouge">WITHIN GROUP</code> clause for aggregate functions (Hongze Zhang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2405">CALCITE-2405</a>]
-In Babel parser, make 400 reserved keywords including <code class="highlighter-rouge">YEAR</code>, <code class="highlighter-rouge">SECOND</code>, <code class="highlighter-rouge">DESC</code>
+In Babel parser, make 400 reserved keywords including <code class="language-plaintext highlighter-rouge">YEAR</code>, <code class="language-plaintext highlighter-rouge">SECOND</code>, <code class="language-plaintext highlighter-rouge">DESC</code>
 non-reserved</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1870">CALCITE-1870</a>]
 Lattice suggester</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2571">CALCITE-2571</a>]
-<code class="highlighter-rouge">TRIM</code> function now trims more than one character (Andrew Pilloud)</li>
+<code class="language-plaintext highlighter-rouge">TRIM</code> function now trims more than one character (Andrew Pilloud)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2112">CALCITE-2112</a>]
 Add Maven wrapper for Calcite (Ratandeep S. Ratti)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1026">CALCITE-1026</a>]
 Allow models in YAML format</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2402">CALCITE-2402</a>]
-Implement regression functions: <code class="highlighter-rouge">COVAR_POP</code>, <code class="highlighter-rouge">COVAR_SAMP</code>, <code class="highlighter-rouge">REGR_COUNT</code>,
-<code class="highlighter-rouge">REGR_SXX</code>, <code class="highlighter-rouge">REGR_SYY</code>
+Implement regression functions: <code class="language-plaintext highlighter-rouge">COVAR_POP</code>, <code class="language-plaintext highlighter-rouge">COVAR_SAMP</code>, <code class="language-plaintext highlighter-rouge">REGR_COUNT</code>,
+<code class="language-plaintext highlighter-rouge">REGR_SXX</code>, <code class="language-plaintext highlighter-rouge">REGR_SYY</code>
 </li>
-  <li>SQL advisor (<code class="highlighter-rouge">SqlAdvisor</code>):
+  <li>SQL advisor (<code class="language-plaintext highlighter-rouge">SqlAdvisor</code>):
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2479">CALCITE-2479</a>]
 Automatically quote identifiers that look like SQL keywords</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2478">CALCITE-2478</a>]
-Purge <code class="highlighter-rouge">from_clause</code> when <code class="highlighter-rouge">_suggest_</code> token is located in one of the
-<code class="highlighter-rouge">FROM</code> sub-queries</li>
+Purge <code class="language-plaintext highlighter-rouge">from_clause</code> when <code class="language-plaintext highlighter-rouge">_suggest_</code> token is located in one of the
+<code class="language-plaintext highlighter-rouge">FROM</code> sub-queries</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2477">CALCITE-2477</a>]
 Scalar sub-queries</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2476">CALCITE-2476</a>]
-Produce hints when sub-query with <code class="highlighter-rouge">*</code> is present in query</li>
+Produce hints when sub-query with <code class="language-plaintext highlighter-rouge">*</code> is present in query</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2475">CALCITE-2475</a>]
-Support <code class="highlighter-rouge">MINUS</code>
+Support <code class="language-plaintext highlighter-rouge">MINUS</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2473">CALCITE-2473</a>]
-Support <code class="highlighter-rouge">--</code> comments</li>
+Support <code class="language-plaintext highlighter-rouge">--</code> comments</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2434">CALCITE-2434</a>]
 Hints for nested tables and schemas</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2433">CALCITE-2433</a>]
 Configurable quoting characters</li>
     </ul>
   </li>
-  <li>Relational algebra builder (<code class="highlighter-rouge">RelBuilder</code>):
+  <li>Relational algebra builder (<code class="language-plaintext highlighter-rouge">RelBuilder</code>):
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2661">CALCITE-2661</a>]
-Add methods for creating <code class="highlighter-rouge">Exchange</code> and <code class="highlighter-rouge">SortExchange</code>
+Add methods for creating <code class="language-plaintext highlighter-rouge">Exchange</code> and <code class="language-plaintext highlighter-rouge">SortExchange</code>
 relational expressions (Chunwei Lei)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2654">CALCITE-2654</a>]
 Add a fluent API for building complex aggregate calls</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2441">CALCITE-2441</a>]
-<code class="highlighter-rouge">RelBuilder.scan</code> should expand <code class="highlighter-rouge">TranslatableTable</code> and views</li>
+<code class="language-plaintext highlighter-rouge">RelBuilder.scan</code> should expand <code class="language-plaintext highlighter-rouge">TranslatableTable</code> and views</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2647">CALCITE-2647</a>]
-Add a <code class="highlighter-rouge">groupKey</code> method that assumes only one grouping set</li>
+Add a <code class="language-plaintext highlighter-rouge">groupKey</code> method that assumes only one grouping set</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2470">CALCITE-2470</a>]
-<code class="highlighter-rouge">project</code> method should combine expressions if the underlying
-node is a <code class="highlighter-rouge">Project</code>
+<code class="language-plaintext highlighter-rouge">project</code> method should combine expressions if the underlying
+node is a <code class="language-plaintext highlighter-rouge">Project</code>
 </li>
     </ul>
   </li>
   <li>Elasticsearch adapter:
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2679">CALCITE-2679</a>]
-Implement <code class="highlighter-rouge">DISTINCT</code> and <code class="highlighter-rouge">GROUP BY</code> without aggregate functions (Siyuan Liu)</li>
+Implement <code class="language-plaintext highlighter-rouge">DISTINCT</code> and <code class="language-plaintext highlighter-rouge">GROUP BY</code> without aggregate functions (Siyuan Liu)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2689">CALCITE-2689</a>]
-Allow grouping on non-textual fields like <code class="highlighter-rouge">DATE</code> and <code class="highlighter-rouge">NUMBER</code>
+Allow grouping on non-textual fields like <code class="language-plaintext highlighter-rouge">DATE</code> and <code class="language-plaintext highlighter-rouge">NUMBER</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2651">CALCITE-2651</a>]
 Enable scrolling for basic search queries</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2585">CALCITE-2585</a>]
-Support <code class="highlighter-rouge">NOT</code> operator</li>
+Support <code class="language-plaintext highlighter-rouge">NOT</code> operator</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2578">CALCITE-2578</a>]
-Support <code class="highlighter-rouge">ANY_VALUE</code> aggregate function</li>
+Support <code class="language-plaintext highlighter-rouge">ANY_VALUE</code> aggregate function</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2528">CALCITE-2528</a>]
-Support <code class="highlighter-rouge">Aggregate</code> (Andrei Sereda)</li>
+Support <code class="language-plaintext highlighter-rouge">Aggregate</code> (Andrei Sereda)</li>
     </ul>
   </li>
   <li>Apache Geode adapter:
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2709">CALCITE-2709</a>]
-Allow filtering on <code class="highlighter-rouge">DATE</code>, <code class="highlighter-rouge">TIME</code>, <code class="highlighter-rouge">TIMESTAMP</code> fields (Sandeep Chada)</li>
+Allow filtering on <code class="language-plaintext highlighter-rouge">DATE</code>, <code class="language-plaintext highlighter-rouge">TIME</code>, <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> fields (Sandeep Chada)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2671">CALCITE-2671</a>]
-<code class="highlighter-rouge">GeodeFilter</code> now converts multiple <code class="highlighter-rouge">OR</code> predicates (on same attribute) into
-a single <code class="highlighter-rouge">IN SET</code> (Sandeep Chada)</li>
+<code class="language-plaintext highlighter-rouge">GeodeFilter</code> now converts multiple <code class="language-plaintext highlighter-rouge">OR</code> predicates (on same attribute) into
+a single <code class="language-plaintext highlighter-rouge">IN SET</code> (Sandeep Chada)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2498">CALCITE-2498</a>]
-Geode adapter wrongly quotes <code class="highlighter-rouge">BOOLEAN</code> values as strings (Andrei Sereda)</li>
+Geode adapter wrongly quotes <code class="language-plaintext highlighter-rouge">BOOLEAN</code> values as strings (Andrei Sereda)</li>
     </ul>
   </li>
 </ul>
@@ -3603,197 +3603,197 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2670">CALCITE-2670</a>]
 Combine similar JSON aggregate functions in operator table</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2468">CALCITE-2468</a>]
-Validator throws <code class="highlighter-rouge">IndexOutOfBoundsException</code> when trying to infer operand type
-from <code class="highlighter-rouge">STRUCT</code> return type (Rong Rong)</li>
+Validator throws <code class="language-plaintext highlighter-rouge">IndexOutOfBoundsException</code> when trying to infer operand type
+from <code class="language-plaintext highlighter-rouge">STRUCT</code> return type (Rong Rong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2596">CALCITE-2596</a>]
 When translating correlated variables in enumerable convention, convert
 not-null boxed primitive values to primitive (Stamatis Zampetakis)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2684">CALCITE-2684</a>]
-<code class="highlighter-rouge">RexBuilder</code> gives <code class="highlighter-rouge">AssertionError</code> when creating integer literal larger than
+<code class="language-plaintext highlighter-rouge">RexBuilder</code> gives <code class="language-plaintext highlighter-rouge">AssertionError</code> when creating integer literal larger than
 2<sup>63</sup> (Ruben Quesada Lopez)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2719">CALCITE-2719</a>]
-In JDBC adapter for MySQL, fix cast to <code class="highlighter-rouge">INTEGER</code> and <code class="highlighter-rouge">BIGINT</code> (Piotr Bojko)</li>
+In JDBC adapter for MySQL, fix cast to <code class="language-plaintext highlighter-rouge">INTEGER</code> and <code class="language-plaintext highlighter-rouge">BIGINT</code> (Piotr Bojko)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2713">CALCITE-2713</a>]
-JDBC adapter may generate casts on PostgreSQL for <code class="highlighter-rouge">VARCHAR</code> type exceeding max
+JDBC adapter may generate casts on PostgreSQL for <code class="language-plaintext highlighter-rouge">VARCHAR</code> type exceeding max
 length</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2529">CALCITE-2529</a>]
 All numbers are in the same type family (Andrew Pilloud)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2701">CALCITE-2701</a>]
-Make generated <code class="highlighter-rouge">Baz</code> classes immutable (Stamatis Zampetakis)</li>
+Make generated <code class="language-plaintext highlighter-rouge">Baz</code> classes immutable (Stamatis Zampetakis)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2619">CALCITE-2619</a>]
 Reduce string literal creation cost by deferring and caching charset
 conversion (Ted Xu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2720">CALCITE-2720</a>]
-<code class="highlighter-rouge">RelMetadataQuery.getTableOrigin</code> throws <code class="highlighter-rouge">IndexOutOfBoundsException</code> if
-<code class="highlighter-rouge">RelNode</code> has no columns (Zoltan Haindrich)</li>
+<code class="language-plaintext highlighter-rouge">RelMetadataQuery.getTableOrigin</code> throws <code class="language-plaintext highlighter-rouge">IndexOutOfBoundsException</code> if
+<code class="language-plaintext highlighter-rouge">RelNode</code> has no columns (Zoltan Haindrich)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2717">CALCITE-2717</a>]
-Use <code class="highlighter-rouge">Interner</code> instead of <code class="highlighter-rouge">LoadingCache</code> to cache traits, and so allow traits
+Use <code class="language-plaintext highlighter-rouge">Interner</code> instead of <code class="language-plaintext highlighter-rouge">LoadingCache</code> to cache traits, and so allow traits
 to be garbage-collected (Haisheng Yuan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2542">CALCITE-2542</a>]
-In SQL parser, allow <code class="highlighter-rouge">.field</code> to follow any expression, not just tables and
+In SQL parser, allow <code class="language-plaintext highlighter-rouge">.field</code> to follow any expression, not just tables and
 columns (Rong Rong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2637">CALCITE-2637</a>]
-In SQL parser, allow prefix ‘-‘ between <code class="highlighter-rouge">BETWEEN</code> and <code class="highlighter-rouge">AND</code> (Qi Yu)</li>
+In SQL parser, allow prefix ‘-‘ between <code class="language-plaintext highlighter-rouge">BETWEEN</code> and <code class="language-plaintext highlighter-rouge">AND</code> (Qi Yu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2632">CALCITE-2632</a>]
-Ensure that <code class="highlighter-rouge">RexNode</code> and its sub-classes implement <code class="highlighter-rouge">hashCode</code> and <code class="highlighter-rouge">equals</code>
+Ensure that <code class="language-plaintext highlighter-rouge">RexNode</code> and its sub-classes implement <code class="language-plaintext highlighter-rouge">hashCode</code> and <code class="language-plaintext highlighter-rouge">equals</code>
 methods (Zoltan Haindrich)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2494">CALCITE-2494</a>]
-<code class="highlighter-rouge">RexFieldAccess</code> should implement <code class="highlighter-rouge">equals</code> and <code class="highlighter-rouge">hashCode</code> methods</li>
+<code class="language-plaintext highlighter-rouge">RexFieldAccess</code> should implement <code class="language-plaintext highlighter-rouge">equals</code> and <code class="language-plaintext highlighter-rouge">hashCode</code> methods</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2715">CALCITE-2715</a>]
 In JDBC adapter, do not generate character set in data types for MS SQL Server
 (Piotr Bojko)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2714">CALCITE-2714</a>]
-Make <code class="highlighter-rouge">BasicSqlType</code> immutable, and now <code class="highlighter-rouge">SqlTypeFactory.createWithNullability</code>
+Make <code class="language-plaintext highlighter-rouge">BasicSqlType</code> immutable, and now <code class="language-plaintext highlighter-rouge">SqlTypeFactory.createWithNullability</code>
 can reuse existing type if possible (Ruben Quesada Lopez)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2687">CALCITE-2687</a>]
-<code class="highlighter-rouge">IS DISTINCT FROM</code> could lead to exceptions in <code class="highlighter-rouge">ReduceExpressionsRule</code>
+<code class="language-plaintext highlighter-rouge">IS DISTINCT FROM</code> could lead to exceptions in <code class="language-plaintext highlighter-rouge">ReduceExpressionsRule</code>
 (Zoltan Haindrich)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2673">CALCITE-2673</a>]
-<code class="highlighter-rouge">SqlDialect</code> supports pushing of all functions by default</li>
+<code class="language-plaintext highlighter-rouge">SqlDialect</code> supports pushing of all functions by default</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2675">CALCITE-2675</a>]
-Type validation error as <code class="highlighter-rouge">ReduceExpressionsRule</code> fails to preserve type
+Type validation error as <code class="language-plaintext highlighter-rouge">ReduceExpressionsRule</code> fails to preserve type
 nullability (Zoltan Haindrich)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2669">CALCITE-2669</a>]
-<code class="highlighter-rouge">RelMdTableReferences</code> should check whether references inferred from input are
-null for <code class="highlighter-rouge">Union</code>/<code class="highlighter-rouge">Join</code> operators</li>
+<code class="language-plaintext highlighter-rouge">RelMdTableReferences</code> should check whether references inferred from input are
+null for <code class="language-plaintext highlighter-rouge">Union</code>/<code class="language-plaintext highlighter-rouge">Join</code> operators</li>
   <li>Following
 [<a href="https://issues.apache.org/jira/browse/CALCITE-2031">CALCITE-2031</a>]
 remove incorrect “Not implemented” message</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2668">CALCITE-2668</a>]
-Support for left/right outer join in <code class="highlighter-rouge">RelMdExpressionLineage</code>
+Support for left/right outer join in <code class="language-plaintext highlighter-rouge">RelMdExpressionLineage</code>
 </li>
-  <li>Fix invocation of deprecated constructor of <code class="highlighter-rouge">SqlAggFunction</code> (Hongze Zhang)</li>
+  <li>Fix invocation of deprecated constructor of <code class="language-plaintext highlighter-rouge">SqlAggFunction</code> (Hongze Zhang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2652">CALCITE-2652</a>]
-<code class="highlighter-rouge">SqlNode</code> to SQL conversion fails if the join condition references a <code class="highlighter-rouge">BOOLEAN</code>
+<code class="language-plaintext highlighter-rouge">SqlNode</code> to SQL conversion fails if the join condition references a <code class="language-plaintext highlighter-rouge">BOOLEAN</code>
 column (Zoltan Haindrich)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2657">CALCITE-2657</a>]
-In <code class="highlighter-rouge">RexShuttle</code>, use <code class="highlighter-rouge">RexCall.clone</code> instead of <code class="highlighter-rouge">new RexCall</code> (Chunwei Lei)</li>
+In <code class="language-plaintext highlighter-rouge">RexShuttle</code>, use <code class="language-plaintext highlighter-rouge">RexCall.clone</code> instead of <code class="language-plaintext highlighter-rouge">new RexCall</code> (Chunwei Lei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2605">CALCITE-2605</a>]
-Support semi-join via <code class="highlighter-rouge">EnumerableCorrelate</code> (Ruben Quesada Lopez)</li>
+Support semi-join via <code class="language-plaintext highlighter-rouge">EnumerableCorrelate</code> (Ruben Quesada Lopez)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2605">CALCITE-2605</a>]
-Support left outer join via <code class="highlighter-rouge">EnumerableCorrelate</code>
+Support left outer join via <code class="language-plaintext highlighter-rouge">EnumerableCorrelate</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1174">CALCITE-1174</a>]
-When generating SQL, translate <code class="highlighter-rouge">SUM0(x)</code> to <code class="highlighter-rouge">COALESCE(SUM(x), 0)</code>
+When generating SQL, translate <code class="language-plaintext highlighter-rouge">SUM0(x)</code> to <code class="language-plaintext highlighter-rouge">COALESCE(SUM(x), 0)</code>
 </li>
-  <li><code class="highlighter-rouge">RelBuilder.toString()</code></li>
+  <li><code class="language-plaintext highlighter-rouge">RelBuilder.toString()</code></li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2617">CALCITE-2617</a>]
-Add a variant of <code class="highlighter-rouge">FilterProjectTransposeRule</code> that can push down a <code class="highlighter-rouge">Filter</code>
+Add a variant of <code class="language-plaintext highlighter-rouge">FilterProjectTransposeRule</code> that can push down a <code class="language-plaintext highlighter-rouge">Filter</code>
 that contains correlated variables (Stamatis Zampetakis)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2638">CALCITE-2638</a>]
-Constant reducer should not treat as constant an <code class="highlighter-rouge">RexInputRef</code> that points to a
+Constant reducer should not treat as constant an <code class="language-plaintext highlighter-rouge">RexInputRef</code> that points to a
 call to a dynamic or non-deterministic function (Danny Chan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2628">CALCITE-2628</a>]
-JDBC adapter throws <code class="highlighter-rouge">NullPointerException</code> while generating <code class="highlighter-rouge">GROUP BY</code> query
+JDBC adapter throws <code class="language-plaintext highlighter-rouge">NullPointerException</code> while generating <code class="language-plaintext highlighter-rouge">GROUP BY</code> query
 for MySQL</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2404">CALCITE-2404</a>]
 Implement access to structured-types in enumerable runtime
 (Stamatis Zampetakis)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2622">CALCITE-2622</a>]
-<code class="highlighter-rouge">RexFieldCollation.toString()</code> method is not deterministic</li>
+<code class="language-plaintext highlighter-rouge">RexFieldCollation.toString()</code> method is not deterministic</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2611">CALCITE-2611</a>]
-Linq4j code generation failure if one side of an <code class="highlighter-rouge">OR</code> contains <code class="highlighter-rouge">UNKNOWN</code>
+Linq4j code generation failure if one side of an <code class="language-plaintext highlighter-rouge">OR</code> contains <code class="language-plaintext highlighter-rouge">UNKNOWN</code>
 (Zoltan Haindrich)</li>
   <li>Canonize simple cases for composite traits in trait factory</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2591">CALCITE-2591</a>]
-<code class="highlighter-rouge">EnumerableDefaults#mergeJoin</code> should throw error and not return incorrect
+<code class="language-plaintext highlighter-rouge">EnumerableDefaults#mergeJoin</code> should throw error and not return incorrect
 results when inputs are not ordered (Enrico Olivelli)</li>
   <li>Test case for
 [<a href="https://issues.apache.org/jira/browse/CALCITE-2592">CALCITE-2592</a>]
-<code class="highlighter-rouge">EnumerableMergeJoin</code> is never taken</li>
+<code class="language-plaintext highlighter-rouge">EnumerableMergeJoin</code> is never taken</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2526">CALCITE-2526</a>]
-Add test for <code class="highlighter-rouge">OR</code> with nullable comparisons (pengzhiwei)</li>
+Add test for <code class="language-plaintext highlighter-rouge">OR</code> with nullable comparisons (pengzhiwei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2413">CALCITE-2413</a>]
 Use raw signatures for classes with generics when producing Java code</li>
   <li>In Elasticsearch adapter, remove redundant null check in
-<code class="highlighter-rouge">CompoundQueryExpression</code>
+<code class="language-plaintext highlighter-rouge">CompoundQueryExpression</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2562">CALCITE-2562</a>]
-Remove dead code in <code class="highlighter-rouge">StandardConvertletTable#convertDatetimeMinus</code>
+Remove dead code in <code class="language-plaintext highlighter-rouge">StandardConvertletTable#convertDatetimeMinus</code>
 </li>
-  <li>Avoid <code class="highlighter-rouge">NullPointerException</code> when <code class="highlighter-rouge">FlatList</code> contains null elements</li>
+  <li>Avoid <code class="language-plaintext highlighter-rouge">NullPointerException</code> when <code class="language-plaintext highlighter-rouge">FlatList</code> contains null elements</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2561">CALCITE-2561</a>]
-Remove dead code in <code class="highlighter-rouge">Lattice</code> constructor</li>
+Remove dead code in <code class="language-plaintext highlighter-rouge">Lattice</code> constructor</li>
   <li>Apply small refactorings to Calcite codebase (Java 5, Java 7, Java 8)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2572">CALCITE-2572</a>]
-SQL standard semantics for <code class="highlighter-rouge">SUBSTRING</code> function (Andrew Pilloud)</li>
-  <li>Remove dead code: <code class="highlighter-rouge">Compatible</code>, <code class="highlighter-rouge">CompatibleGuava11</code>
+SQL standard semantics for <code class="language-plaintext highlighter-rouge">SUBSTRING</code> function (Andrew Pilloud)</li>
+  <li>Remove dead code: <code class="language-plaintext highlighter-rouge">Compatible</code>, <code class="language-plaintext highlighter-rouge">CompatibleGuava11</code>
 </li>
   <li>Remove “Now, do something with table” from standard output when implementing
 sequences</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2444">CALCITE-2444</a>]
-Handle <code class="highlighter-rouge">IN</code> expressions when converting <code class="highlighter-rouge">SqlNode</code> to SQL (Zoltan Haindrich)</li>
+Handle <code class="language-plaintext highlighter-rouge">IN</code> expressions when converting <code class="language-plaintext highlighter-rouge">SqlNode</code> to SQL (Zoltan Haindrich)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2537">CALCITE-2537</a>]
-Use litmus for <code class="highlighter-rouge">VolcanoPlanner#validate</code>
+Use litmus for <code class="language-plaintext highlighter-rouge">VolcanoPlanner#validate</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2546">CALCITE-2546</a>]
-Reduce precision of <code class="highlighter-rouge">Profiler</code>’s <code class="highlighter-rouge">surprise</code> and <code class="highlighter-rouge">cardinality</code> attributes to
+Reduce precision of <code class="language-plaintext highlighter-rouge">Profiler</code>’s <code class="language-plaintext highlighter-rouge">surprise</code> and <code class="language-plaintext highlighter-rouge">cardinality</code> attributes to
 avoid floating point discrepancies (Alisha Prabhu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2563">CALCITE-2563</a>]
 Materialized view rewriting may swap columns in equivalent classes incorrectly</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2551">CALCITE-2551</a>]
-<code class="highlighter-rouge">SqlToRelConverter</code> gives <code class="highlighter-rouge">ClassCastException</code> while handling <code class="highlighter-rouge">IN</code> inside
-<code class="highlighter-rouge">WHERE NOT CASE</code> (pengzhiwei)</li>
-  <li>Remove redundant <code class="highlighter-rouge">new</code> expression in constant array creation</li>
+<code class="language-plaintext highlighter-rouge">SqlToRelConverter</code> gives <code class="language-plaintext highlighter-rouge">ClassCastException</code> while handling <code class="language-plaintext highlighter-rouge">IN</code> inside
+<code class="language-plaintext highlighter-rouge">WHERE NOT CASE</code> (pengzhiwei)</li>
+  <li>Remove redundant <code class="language-plaintext highlighter-rouge">new</code> expression in constant array creation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2474">CALCITE-2474</a>]
 SqlAdvisor: avoid NPE in lookupFromHints where FROM is empty</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2418">CALCITE-2418</a>]
-Remove <code class="highlighter-rouge">matchRecognize</code> field of <code class="highlighter-rouge">SqlSelect</code>
+Remove <code class="language-plaintext highlighter-rouge">matchRecognize</code> field of <code class="language-plaintext highlighter-rouge">SqlSelect</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2514">CALCITE-2514</a>]
-Add <code class="highlighter-rouge">SqlIdentifier</code> conversion to <code class="highlighter-rouge">ITEM</code> operator for dynamic tables in
-<code class="highlighter-rouge">ExtendedExpander</code> (Arina Ielchiieva)</li>
+Add <code class="language-plaintext highlighter-rouge">SqlIdentifier</code> conversion to <code class="language-plaintext highlighter-rouge">ITEM</code> operator for dynamic tables in
+<code class="language-plaintext highlighter-rouge">ExtendedExpander</code> (Arina Ielchiieva)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2491">CALCITE-2491</a>]
-Refactor <code class="highlighter-rouge">NameSet</code>, <code class="highlighter-rouge">NameMap</code>, and <code class="highlighter-rouge">NameMultimap</code>
+Refactor <code class="language-plaintext highlighter-rouge">NameSet</code>, <code class="language-plaintext highlighter-rouge">NameMap</code>, and <code class="language-plaintext highlighter-rouge">NameMultimap</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2520">CALCITE-2520</a>]
-Make <code class="highlighter-rouge">SparkHandlerImpl#compile</code> silent by default, print code in
-<code class="highlighter-rouge">calcite.debug=true</code> mode only</li>
+Make <code class="language-plaintext highlighter-rouge">SparkHandlerImpl#compile</code> silent by default, print code in
+<code class="language-plaintext highlighter-rouge">calcite.debug=true</code> mode only</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1026">CALCITE-1026</a>]
 Remove unused import</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2483">CALCITE-2483</a>]
 Druid adapter, when querying Druid segment metadata, throws when row number is
-larger than <code class="highlighter-rouge">Integer.MAX_VALUE</code> (Hongze Zhang)</li>
-  <li>Support <code class="highlighter-rouge">AND</code>, <code class="highlighter-rouge">OR</code>, <code class="highlighter-rouge">COALESCE</code>, <code class="highlighter-rouge">IS [NOT] DISTINCT</code> in <code class="highlighter-rouge">RexUtil#op</code>
+larger than <code class="language-plaintext highlighter-rouge">Integer.MAX_VALUE</code> (Hongze Zhang)</li>
+  <li>Support <code class="language-plaintext highlighter-rouge">AND</code>, <code class="language-plaintext highlighter-rouge">OR</code>, <code class="language-plaintext highlighter-rouge">COALESCE</code>, <code class="language-plaintext highlighter-rouge">IS [NOT] DISTINCT</code> in <code class="language-plaintext highlighter-rouge">RexUtil#op</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2495">CALCITE-2495</a>]
-Support encoded URLs in <code class="highlighter-rouge">org.apache.calcite.util.Source</code>, and use it for URL
+Support encoded URLs in <code class="language-plaintext highlighter-rouge">org.apache.calcite.util.Source</code>, and use it for URL
 → File conversion in tests</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2271">CALCITE-2271</a>]
 Join of two views with window aggregates produces incorrect results or throws
-<code class="highlighter-rouge">NullPointerException</code>
+<code class="language-plaintext highlighter-rouge">NullPointerException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2481">CALCITE-2481</a>]
-<code class="highlighter-rouge">NameSet</code> assumes lower-case characters have greater codes, which does not hold
+<code class="language-plaintext highlighter-rouge">NameSet</code> assumes lower-case characters have greater codes, which does not hold
 for certain characters</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2480">CALCITE-2480</a>]
-<code class="highlighter-rouge">NameSet.contains</code> wrongly returns <code class="highlighter-rouge">false</code> when element in set is upper-case
-and <code class="highlighter-rouge">seek</code> is lower-case</li>
+<code class="language-plaintext highlighter-rouge">NameSet.contains</code> wrongly returns <code class="language-plaintext highlighter-rouge">false</code> when element in set is upper-case
+and <code class="language-plaintext highlighter-rouge">seek</code> is lower-case</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2465">CALCITE-2465</a>]
 Enable use of materialized views for any planner</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2446">CALCITE-2446</a>]
 Lateral joins do not work when saved as custom views (Piotr Bojko)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2447">CALCITE-2447</a>]
-<code class="highlighter-rouge">POWER</code>, <code class="highlighter-rouge">ATAN2</code> functions fail with <code class="highlighter-rouge">NoSuchMethodException</code>
+<code class="language-plaintext highlighter-rouge">POWER</code>, <code class="language-plaintext highlighter-rouge">ATAN2</code> functions fail with <code class="language-plaintext highlighter-rouge">NoSuchMethodException</code>
 </li>
-  <li>Typo in <code class="highlighter-rouge">HepPlanner</code> trace message (Dylan)</li>
+  <li>Typo in <code class="language-plaintext highlighter-rouge">HepPlanner</code> trace message (Dylan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2416">CALCITE-2416</a>]
-<code class="highlighter-rouge">AssertionError</code> when determining monotonicity (Alina Ipatina)</li>
-  <li>Java 8: use <code class="highlighter-rouge">Map.computeIfAbsent</code> when possible</li>
+<code class="language-plaintext highlighter-rouge">AssertionError</code> when determining monotonicity (Alina Ipatina)</li>
+  <li>Java 8: use <code class="language-plaintext highlighter-rouge">Map.computeIfAbsent</code> when possible</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2431">CALCITE-2431</a>]
-<code class="highlighter-rouge">SqlUtil.getAncestry</code> throws <code class="highlighter-rouge">AssertionError</code> when providing completion hints
+<code class="language-plaintext highlighter-rouge">SqlUtil.getAncestry</code> throws <code class="language-plaintext highlighter-rouge">AssertionError</code> when providing completion hints
 for sub-schema</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2430">CALCITE-2430</a>]
-<code class="highlighter-rouge">RelDataTypeImpl.getFieldList</code> throws <code class="highlighter-rouge">AssertionError</code> when SQL Advisor inspects
+<code class="language-plaintext highlighter-rouge">RelDataTypeImpl.getFieldList</code> throws <code class="language-plaintext highlighter-rouge">AssertionError</code> when SQL Advisor inspects
 non-struct field</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2429">CALCITE-2429</a>]
-<code class="highlighter-rouge">SqlValidatorImpl.lookupFieldNamespace</code> throws <code class="highlighter-rouge">NullPointerException</code> when SQL
+<code class="language-plaintext highlighter-rouge">SqlValidatorImpl.lookupFieldNamespace</code> throws <code class="language-plaintext highlighter-rouge">NullPointerException</code> when SQL
 Advisor observes non-existing field</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2422">CALCITE-2422</a>]
 Query with unnest of column from nested sub-query fails when dynamic table is
 used</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2417">CALCITE-2417</a>]
-<code class="highlighter-rouge">RelToSqlConverter</code> throws <code class="highlighter-rouge">ClassCastException</code> with structs (Benoit Hanotte)</li>
+<code class="language-plaintext highlighter-rouge">RelToSqlConverter</code> throws <code class="language-plaintext highlighter-rouge">ClassCastException</code> with structs (Benoit Hanotte)</li>
   <li>Upgrades:
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2716">CALCITE-2716</a>]
@@ -3801,87 +3801,87 @@
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2711">CALCITE-2711</a>]
 Upgrade SQLLine to 1.6.0</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2570">CALCITE-2570</a>]
-Upgrade <code class="highlighter-rouge">forbiddenapis</code> to 2.6 for JDK 11 support</li>
+Upgrade <code class="language-plaintext highlighter-rouge">forbiddenapis</code> to 2.6 for JDK 11 support</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2486">CALCITE-2486</a>]
 Upgrade Apache parent POM to version 21</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2467">CALCITE-2467</a>]
-Upgrade <code class="highlighter-rouge">owasp-dependency-check</code> maven plugin to 3.3.1</li>
+Upgrade <code class="language-plaintext highlighter-rouge">owasp-dependency-check</code> maven plugin to 3.3.1</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2559">CALCITE-2559</a>]
 Update Checkstyle to 7.8.2</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2497">CALCITE-2497</a>]
 Update Janino version to 3.0.9</li>
     </ul>
   </li>
-  <li>Expression simplification (<code class="highlighter-rouge">RexSimplify</code>):
+  <li>Expression simplification (<code class="language-plaintext highlighter-rouge">RexSimplify</code>):
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2731">CALCITE-2731</a>]
-<code class="highlighter-rouge">RexProgramBuilder</code> makes unsafe simplifications to <code class="highlighter-rouge">CASE</code> expressions (Zoltan
+<code class="language-plaintext highlighter-rouge">RexProgramBuilder</code> makes unsafe simplifications to <code class="language-plaintext highlighter-rouge">CASE</code> expressions (Zoltan
 Haindrich)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2730">CALCITE-2730</a>]
-<code class="highlighter-rouge">RelBuilder</code> incorrectly simplifies a <code class="highlighter-rouge">Filter</code> with duplicate conjunction to
+<code class="language-plaintext highlighter-rouge">RelBuilder</code> incorrectly simplifies a <code class="language-plaintext highlighter-rouge">Filter</code> with duplicate conjunction to
 empty (Stamatis Zampetakis)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2726">CALCITE-2726</a>]
-<code class="highlighter-rouge">ReduceExpressionRule</code> may oversimplify filter conditions containing <code class="highlighter-rouge">NULL</code>
+<code class="language-plaintext highlighter-rouge">ReduceExpressionRule</code> may oversimplify filter conditions containing <code class="language-plaintext highlighter-rouge">NULL</code>
 values</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2695">CALCITE-2695</a>]
 Simplify casts that are only widening nullability (Zoltan Haindrich)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2631">CALCITE-2631</a>]
-General improvements in simplifying <code class="highlighter-rouge">CASE</code>
+General improvements in simplifying <code class="language-plaintext highlighter-rouge">CASE</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2639">CALCITE-2639</a>]
-<code class="highlighter-rouge">FilterReduceExpressionsRule</code> causes <code class="highlighter-rouge">ArithmeticException</code> at execution time</li>
+<code class="language-plaintext highlighter-rouge">FilterReduceExpressionsRule</code> causes <code class="language-plaintext highlighter-rouge">ArithmeticException</code> at execution time</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2620">CALCITE-2620</a>]
-Simplify <code class="highlighter-rouge">COALESCE(NULL, x)</code> → <code class="highlighter-rouge">x</code> (pengzhiwei)</li>
+Simplify <code class="language-plaintext highlighter-rouge">COALESCE(NULL, x)</code> → <code class="language-plaintext highlighter-rouge">x</code> (pengzhiwei)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1413">CALCITE-1413</a>]
 Enhance boolean case statement simplifications (Zoltan Haindrich)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2615">CALCITE-2615</a>]
-When simplifying <code class="highlighter-rouge">NOT-AND-OR</code>, <code class="highlighter-rouge">RexSimplify</code> incorrectly applies predicates
+When simplifying <code class="language-plaintext highlighter-rouge">NOT-AND-OR</code>, <code class="language-plaintext highlighter-rouge">RexSimplify</code> incorrectly applies predicates
 deduced for operands to the same operands (Zoltan Haindrich)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2604">CALCITE-2604</a>]
-When simplifying an expression, say whether an <code class="highlighter-rouge">UNKNOWN</code> value will be
-interpreted as is, or as <code class="highlighter-rouge">TRUE</code> or <code class="highlighter-rouge">FALSE</code>
+When simplifying an expression, say whether an <code class="language-plaintext highlighter-rouge">UNKNOWN</code> value will be
+interpreted as is, or as <code class="language-plaintext highlighter-rouge">TRUE</code> or <code class="language-plaintext highlighter-rouge">FALSE</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2438">CALCITE-2438</a>]
-Fix wrong results for <code class="highlighter-rouge">IS NOT FALSE(FALSE)</code> (zhiwei.pzw) (Zoltan Haindrich)</li>
+Fix wrong results for <code class="language-plaintext highlighter-rouge">IS NOT FALSE(FALSE)</code> (zhiwei.pzw) (Zoltan Haindrich)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2506">CALCITE-2506</a>]
-Simplifying <code class="highlighter-rouge">COALESCE(+ nullInt, +vInt())</code> results in
-<code class="highlighter-rouge">AssertionError: result mismatch</code> (pengzhiwei)</li>
+Simplifying <code class="language-plaintext highlighter-rouge">COALESCE(+ nullInt, +vInt())</code> results in
+<code class="language-plaintext highlighter-rouge">AssertionError: result mismatch</code> (pengzhiwei)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2580">CALCITE-2580</a>]
-Simplifying <code class="highlighter-rouge">COALESCE(NULL &gt; NULL, TRUE)</code> produces wrong result filter
+Simplifying <code class="language-plaintext highlighter-rouge">COALESCE(NULL &gt; NULL, TRUE)</code> produces wrong result filter
 expressions (pengzhiwei)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2586">CALCITE-2586</a>]
-<code class="highlighter-rouge">CASE</code> with repeated branches gives <code class="highlighter-rouge">AssertionError</code>
+<code class="language-plaintext highlighter-rouge">CASE</code> with repeated branches gives <code class="language-plaintext highlighter-rouge">AssertionError</code>
 (pengzhiwei)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2590">CALCITE-2590</a>]
-Remove redundant <code class="highlighter-rouge">CAST</code> when operand has exactly the same type as it is casted to</li>
-      <li>Implement fuzzy generator for <code class="highlighter-rouge">CASE</code> expressions</li>
+Remove redundant <code class="language-plaintext highlighter-rouge">CAST</code> when operand has exactly the same type as it is casted to</li>
+      <li>Implement fuzzy generator for <code class="language-plaintext highlighter-rouge">CASE</code> expressions</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2556">CALCITE-2556</a>]
-Simplify <code class="highlighter-rouge">NOT TRUE</code> → <code class="highlighter-rouge">FALSE</code>, and <code class="highlighter-rouge">NOT FALSE</code> → <code class="highlighter-rouge">TRUE</code> (pengzhiwei)</li>
+Simplify <code class="language-plaintext highlighter-rouge">NOT TRUE</code> → <code class="language-plaintext highlighter-rouge">FALSE</code>, and <code class="language-plaintext highlighter-rouge">NOT FALSE</code> → <code class="language-plaintext highlighter-rouge">TRUE</code> (pengzhiwei)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2581">CALCITE-2581</a>]
-Avoid errors in simplifying <code class="highlighter-rouge">UNKNOWN AND NOT (UNKNOWN OR ...)</code> (pengzhiwei)</li>
+Avoid errors in simplifying <code class="language-plaintext highlighter-rouge">UNKNOWN AND NOT (UNKNOWN OR ...)</code> (pengzhiwei)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2527">CALCITE-2527</a>]
-Simplify <code class="highlighter-rouge">(c IS NULL) OR (c IS ...)</code> might result in AssertionError: result
+Simplify <code class="language-plaintext highlighter-rouge">(c IS NULL) OR (c IS ...)</code> might result in AssertionError: result
 mismatch (pengzhiwei)</li>
       <li>Display random failure of Rex fuzzer in build logs to inspire further fixes</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2567">CALCITE-2567</a>]
-Simplify <code class="highlighter-rouge">IS NULL(NULL)</code> to <code class="highlighter-rouge">TRUE</code> (pengzhiwei)</li>
+Simplify <code class="language-plaintext highlighter-rouge">IS NULL(NULL)</code> to <code class="language-plaintext highlighter-rouge">TRUE</code> (pengzhiwei)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2555">CALCITE-2555</a>]
-RexSimplify: Simplify <code class="highlighter-rouge">x &gt;= NULL</code> to <code class="highlighter-rouge">UNKNOWN</code> (pengzhiwei)</li>
+RexSimplify: Simplify <code class="language-plaintext highlighter-rouge">x &gt;= NULL</code> to <code class="language-plaintext highlighter-rouge">UNKNOWN</code> (pengzhiwei)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2504">CALCITE-2504</a>]
 Add randomized test for better code coverage of rex node create and
 simplification</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2469">CALCITE-2469</a>]
-Simplify <code class="highlighter-rouge">(NOT x) IS NULL</code> → <code class="highlighter-rouge">x IS NULL</code> (pengzhiwei);
-also, simplify <code class="highlighter-rouge">f(x, y) IS NULL</code> → <code class="highlighter-rouge">x IS NULL OR y IS NULL</code> if <code class="highlighter-rouge">f</code> is a
+Simplify <code class="language-plaintext highlighter-rouge">(NOT x) IS NULL</code> → <code class="language-plaintext highlighter-rouge">x IS NULL</code> (pengzhiwei);
+also, simplify <code class="language-plaintext highlighter-rouge">f(x, y) IS NULL</code> → <code class="language-plaintext highlighter-rouge">x IS NULL OR y IS NULL</code> if <code class="language-plaintext highlighter-rouge">f</code> is a
 strong operator</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2327">CALCITE-2327</a>]
-Simplify <code class="highlighter-rouge">AND(x, y, NOT(y))</code> → <code class="highlighter-rouge">AND(x, null, IS NULL(y))</code>
+Simplify <code class="language-plaintext highlighter-rouge">AND(x, y, NOT(y))</code> → <code class="language-plaintext highlighter-rouge">AND(x, null, IS NULL(y))</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2327">CALCITE-2327</a>]
-Avoid simplification of <code class="highlighter-rouge">x AND NOT(x)</code> to <code class="highlighter-rouge">FALSE</code> for nullable <code class="highlighter-rouge">x</code>
+Avoid simplification of <code class="language-plaintext highlighter-rouge">x AND NOT(x)</code> to <code class="language-plaintext highlighter-rouge">FALSE</code> for nullable <code class="language-plaintext highlighter-rouge">x</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2505">CALCITE-2505</a>]
-<code class="highlighter-rouge">AssertionError</code> when simplifying <code class="highlighter-rouge">IS [NOT] DISTINCT</code> expressions
+<code class="language-plaintext highlighter-rouge">AssertionError</code> when simplifying <code class="language-plaintext highlighter-rouge">IS [NOT] DISTINCT</code> expressions
 (Haisheng Yuan)</li>
     </ul>
   </li>
@@ -3891,89 +3891,89 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2678">CALCITE-2678</a>]
-<code class="highlighter-rouge">RelBuilderTest#testRelBuilderToString</code> fails on Windows (Stamatis Zampetakis)</li>
+<code class="language-plaintext highlighter-rouge">RelBuilderTest#testRelBuilderToString</code> fails on Windows (Stamatis Zampetakis)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2660">CALCITE-2660</a>]
-<code class="highlighter-rouge">OsAdapterTest</code> now checks whether required commands are available</li>
+<code class="language-plaintext highlighter-rouge">OsAdapterTest</code> now checks whether required commands are available</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2655">CALCITE-2655</a>]
 Enable Travis to test against JDK 12</li>
-  <li>Ensure that tests are not calling <code class="highlighter-rouge">checkSimplify3</code> with <code class="highlighter-rouge">expected</code>,
-<code class="highlighter-rouge">expectedFalse</code>, <code class="highlighter-rouge">expectedTrue</code> all the same</li>
-  <li>Geode adapter tests: Removed unnecessary <code class="highlighter-rouge">try/final</code> block in <code class="highlighter-rouge">RefCountPolicy</code>
+  <li>Ensure that tests are not calling <code class="language-plaintext highlighter-rouge">checkSimplify3</code> with <code class="language-plaintext highlighter-rouge">expected</code>,
+<code class="language-plaintext highlighter-rouge">expectedFalse</code>, <code class="language-plaintext highlighter-rouge">expectedTrue</code> all the same</li>
+  <li>Geode adapter tests: Removed unnecessary <code class="language-plaintext highlighter-rouge">try/final</code> block in <code class="language-plaintext highlighter-rouge">RefCountPolicy</code>
 </li>
-  <li>Add license to <code class="highlighter-rouge">TestKtTest</code> and add <code class="highlighter-rouge">apache-rat:check</code> to Travis CI</li>
+  <li>Add license to <code class="language-plaintext highlighter-rouge">TestKtTest</code> and add <code class="language-plaintext highlighter-rouge">apache-rat:check</code> to Travis CI</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2112">CALCITE-2112</a>]
-Add Apache license header to <code class="highlighter-rouge">maven-wrapper.properties</code>
+Add Apache license header to <code class="language-plaintext highlighter-rouge">maven-wrapper.properties</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2588">CALCITE-2588</a>]
 Run Geode adapter tests with an embedded instance</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2594">CALCITE-2594</a>]
-Ensure <code class="highlighter-rouge">forbiddenapis</code> and <code class="highlighter-rouge">maven-compiler</code> use the correct JDK version</li>
+Ensure <code class="language-plaintext highlighter-rouge">forbiddenapis</code> and <code class="language-plaintext highlighter-rouge">maven-compiler</code> use the correct JDK version</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2642">CALCITE-2642</a>]
-Checkstyle complains that <code class="highlighter-rouge">maven-wrapper.properties</code> is missing a header</li>
+Checkstyle complains that <code class="language-plaintext highlighter-rouge">maven-wrapper.properties</code> is missing a header</li>
   <li>
-<code class="highlighter-rouge">commons:commons-pool2</code> is used in tests only, so use <code class="highlighter-rouge">scope=test</code> for it</li>
-  <li>Make <code class="highlighter-rouge">findbugs:jsr305</code> dependency optional</li>
+<code class="language-plaintext highlighter-rouge">commons:commons-pool2</code> is used in tests only, so use <code class="language-plaintext highlighter-rouge">scope=test</code> for it</li>
+  <li>Make <code class="language-plaintext highlighter-rouge">findbugs:jsr305</code> dependency optional</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2458">CALCITE-2458</a>]
 Add Kotlin as a test dependency</li>
   <li>Make build scripts Maven 3.3 compatible</li>
   <li>Fix JavaDoc warnings for Java 9+, and check JavaDoc in Travis CI</li>
   <li>Unwrap invocation target exception from QuidemTest#test</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2518">CALCITE-2518</a>]
-Add <code class="highlighter-rouge">failOnWarnings</code> to <code class="highlighter-rouge">maven-javadoc-plugin</code> configuration</li>
+Add <code class="language-plaintext highlighter-rouge">failOnWarnings</code> to <code class="language-plaintext highlighter-rouge">maven-javadoc-plugin</code> configuration</li>
   <li>Silence Pig, Spark, and Elasticsearch logs in tests</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1894">CALCITE-1894</a>]
-<code class="highlighter-rouge">CsvTest.testCsvStream</code> failing often: add <code class="highlighter-rouge">@Ignore</code> since the test is known to
+<code class="language-plaintext highlighter-rouge">CsvTest.testCsvStream</code> failing often: add <code class="language-plaintext highlighter-rouge">@Ignore</code> since the test is known to
 fail</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2535">CALCITE-2535</a>]
-Enable <code class="highlighter-rouge">SqlTester.checkFails</code> (previously it was a no-op) (Hongze Zhang)</li>
+Enable <code class="language-plaintext highlighter-rouge">SqlTester.checkFails</code> (previously it was a no-op) (Hongze Zhang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2558">CALCITE-2558</a>]
-Improve re-compilation times by skipping <code class="highlighter-rouge">parser.java</code> update on each build</li>
-  <li>Increase timeout for Cassandra daemon startup for <code class="highlighter-rouge">CassandraAdapterTest</code>
+Improve re-compilation times by skipping <code class="language-plaintext highlighter-rouge">parser.java</code> update on each build</li>
+  <li>Increase timeout for Cassandra daemon startup for <code class="language-plaintext highlighter-rouge">CassandraAdapterTest</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2412">CALCITE-2412</a>]
 Add Windows CI via AppVeyor (Sergey Nuyanzin)</li>
-  <li>Reduce <code class="highlighter-rouge">HepPlannerTest#testRuleApplyCount</code> complexity</li>
+  <li>Reduce <code class="language-plaintext highlighter-rouge">HepPlannerTest#testRuleApplyCount</code> complexity</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2523">CALCITE-2523</a>]
-Guard <code class="highlighter-rouge">PartiallyOrderedSetTest#testPosetBitsLarge</code> with
-<code class="highlighter-rouge">CalciteAssert.ENABLE_SLOW</code>
+Guard <code class="language-plaintext highlighter-rouge">PartiallyOrderedSetTest#testPosetBitsLarge</code> with
+<code class="language-plaintext highlighter-rouge">CalciteAssert.ENABLE_SLOW</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2521">CALCITE-2521</a>]
-Guard <code class="highlighter-rouge">RelMetadataTest#testMetadataHandlerCacheLimit</code> with
-<code class="highlighter-rouge">CalciteAssert.ENABLE_SLOW</code>
+Guard <code class="language-plaintext highlighter-rouge">RelMetadataTest#testMetadataHandlerCacheLimit</code> with
+<code class="language-plaintext highlighter-rouge">CalciteAssert.ENABLE_SLOW</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2484">CALCITE-2484</a>]
-Add <code class="highlighter-rouge">SqlValidatorDynamicTest</code> to <code class="highlighter-rouge">CalciteSuite</code>
+Add <code class="language-plaintext highlighter-rouge">SqlValidatorDynamicTest</code> to <code class="language-plaintext highlighter-rouge">CalciteSuite</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2484">CALCITE-2484</a>]
-Move dynamic tests to a separate class like <code class="highlighter-rouge">SqlValidatorDynamicTest</code>, and
-avoid reuse of <code class="highlighter-rouge">MockCatalogReaderDynamic</code>
+Move dynamic tests to a separate class like <code class="language-plaintext highlighter-rouge">SqlValidatorDynamicTest</code>, and
+avoid reuse of <code class="language-plaintext highlighter-rouge">MockCatalogReaderDynamic</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2522">CALCITE-2522</a>]
-Remove <code class="highlighter-rouge">e.printStackTrace()</code> from <code class="highlighter-rouge">CalciteAssert#returns</code>
+Remove <code class="language-plaintext highlighter-rouge">e.printStackTrace()</code> from <code class="language-plaintext highlighter-rouge">CalciteAssert#returns</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2512">CALCITE-2512</a>]
-Move <code class="highlighter-rouge">StreamTest#ROW_GENERATOR</code> to <code class="highlighter-rouge">Table.scan().iterator</code> to make it not
+Move <code class="language-plaintext highlighter-rouge">StreamTest#ROW_GENERATOR</code> to <code class="language-plaintext highlighter-rouge">Table.scan().iterator</code> to make it not
 shared between threads (Sergey Nuyanzin)</li>
   <li>Skip second Checkstyle execution during Travis CI build</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2519">CALCITE-2519</a>]
-Silence ERROR logs from <code class="highlighter-rouge">CalciteException</code>, <code class="highlighter-rouge">SqlValidatorException</code> during
+Silence ERROR logs from <code class="language-plaintext highlighter-rouge">CalciteException</code>, <code class="language-plaintext highlighter-rouge">SqlValidatorException</code> during
 tests</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1026">CALCITE-1026</a>]
-Fix <code class="highlighter-rouge">ModelTest#testYamlFileDetection</code> when source folder has spaces</li>
+Fix <code class="language-plaintext highlighter-rouge">ModelTest#testYamlFileDetection</code> when source folder has spaces</li>
   <li>
-<code class="highlighter-rouge">MockCatalogReader</code> is used in testing, so cache should be disabled there to
+<code class="language-plaintext highlighter-rouge">MockCatalogReader</code> is used in testing, so cache should be disabled there to
 avoid thread conflicts and/or stale results</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-311">CALCITE-311</a>]
 Add a test-case for Filter after Window aggregate</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2462">CALCITE-2462</a>]
-<code class="highlighter-rouge">RexProgramTest</code>: replace <code class="highlighter-rouge">nullLiteral</code> → <code class="highlighter-rouge">nullInt</code>,
-<code class="highlighter-rouge">unknownLiteral</code> → <code class="highlighter-rouge">nullBool</code> for brevity</li>
+<code class="language-plaintext highlighter-rouge">RexProgramTest</code>: replace <code class="language-plaintext highlighter-rouge">nullLiteral</code> → <code class="language-plaintext highlighter-rouge">nullInt</code>,
+<code class="language-plaintext highlighter-rouge">unknownLiteral</code> → <code class="language-plaintext highlighter-rouge">nullBool</code> for brevity</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2462">CALCITE-2462</a>]
-<code class="highlighter-rouge">RexProgramTest</code>: move “rex building” methods to base class</li>
+<code class="language-plaintext highlighter-rouge">RexProgramTest</code>: move “rex building” methods to base class</li>
   <li>
-<code class="highlighter-rouge">SqlTestFactory</code>: use lazy initialization of objects</li>
+<code class="language-plaintext highlighter-rouge">SqlTestFactory</code>: use lazy initialization of objects</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2435">CALCITE-2435</a>]
-Refactor <code class="highlighter-rouge">SqlTestFactory</code>
+Refactor <code class="language-plaintext highlighter-rouge">SqlTestFactory</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2428">CALCITE-2428</a>]
 Cassandra unit test fails to parse JDK version string (Andrei Sereda)</li>
@@ -3990,7 +3990,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2574">CALCITE-2574</a>]
 Update download page to include instructions for verifying a downloaded
 artifact</li>
-  <li>Update build status badges in <code class="highlighter-rouge">README.md</code>
+  <li>Update build status badges in <code class="language-plaintext highlighter-rouge">README.md</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2705">CALCITE-2705</a>]
 Site: Remove duplicate “selectivity” in list of metadata types (Alan Jin)</li>
@@ -4011,7 +4011,7 @@
 using Oracle JDK 8, 9, 10;
 Guava versions 19.0 to 23.0;
 Druid version 0.11.0;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <p>This release comes four months after 1.16.0. It includes more than 90 resolved
 issues, comprising a large number of new features as well as general improvements
@@ -4026,59 +4026,59 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-873">CALCITE-873</a>]
-Add a planner rule, <code class="highlighter-rouge">SortRemoveConstantKeysRule</code>, that removes constant keys from Sort (Atri Sharma)</li>
+Add a planner rule, <code class="language-plaintext highlighter-rouge">SortRemoveConstantKeysRule</code>, that removes constant keys from Sort (Atri Sharma)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2045">CALCITE-2045</a>]
-<code class="highlighter-rouge">CREATE TYPE</code> (Shuyi Chen)</li>
+<code class="language-plaintext highlighter-rouge">CREATE TYPE</code> (Shuyi Chen)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2216">CALCITE-2216</a>]
-Improve extensibility of <code class="highlighter-rouge">AggregateReduceFunctionsRule</code> (Fabian Hueske)</li>
+Improve extensibility of <code class="language-plaintext highlighter-rouge">AggregateReduceFunctionsRule</code> (Fabian Hueske)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2227">CALCITE-2227</a>]
-Standards-compliant column ordering for <code class="highlighter-rouge">NATURAL JOIN</code> and <code class="highlighter-rouge">JOIN USING</code>
+Standards-compliant column ordering for <code class="language-plaintext highlighter-rouge">NATURAL JOIN</code> and <code class="language-plaintext highlighter-rouge">JOIN USING</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2280">CALCITE-2280</a>]
 Babel SQL parser</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2286">CALCITE-2286</a>]
 Support timestamp type for Druid adapter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2304">CALCITE-2304</a>]
-In Babel parser, allow Hive-style syntax <code class="highlighter-rouge">LEFT SEMI JOIN</code>
+In Babel parser, allow Hive-style syntax <code class="language-plaintext highlighter-rouge">LEFT SEMI JOIN</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2321">CALCITE-2321</a>]
-A union of <code class="highlighter-rouge">CHAR</code> columns of different lengths can now (based on a conformance setting) yield a <code class="highlighter-rouge">VARCHAR</code> column (Hequn Cheng)</li>
+A union of <code class="language-plaintext highlighter-rouge">CHAR</code> columns of different lengths can now (based on a conformance setting) yield a <code class="language-plaintext highlighter-rouge">VARCHAR</code> column (Hequn Cheng)</li>
 </ul>
 
 <h4 id="fixes-1-17-0">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-531">CALCITE-531</a>]
-<code class="highlighter-rouge">LATERAL</code> combined with window function or table function</li>
+<code class="language-plaintext highlighter-rouge">LATERAL</code> combined with window function or table function</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1167">CALCITE-1167</a>]
-<code class="highlighter-rouge">OVERLAPS</code> should match even if operands are in (high, low) order</li>
+<code class="language-plaintext highlighter-rouge">OVERLAPS</code> should match even if operands are in (high, low) order</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1436">CALCITE-1436</a>]
-Support <code class="highlighter-rouge">MIN</code>/<code class="highlighter-rouge">MAX</code> functions (Muhammad Gelbana)</li>
+Support <code class="language-plaintext highlighter-rouge">MIN</code>/<code class="language-plaintext highlighter-rouge">MAX</code> functions (Muhammad Gelbana)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1866">CALCITE-1866</a>]
-JDBC adapter generates incorrect code when pushing <code class="highlighter-rouge">FLOOR</code> to MySQL (Kang Wang, Sergey Nuyanzin)</li>
+JDBC adapter generates incorrect code when pushing <code class="language-plaintext highlighter-rouge">FLOOR</code> to MySQL (Kang Wang, Sergey Nuyanzin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1916">CALCITE-1916</a>]
 Use Teradata’s TPC-DS generator and run tests against TPC-DS at small scale</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1949">CALCITE-1949</a>]
-<code class="highlighter-rouge">CalciteStatement</code> should call <code class="highlighter-rouge">AvaticaStatement</code> close_(), to avoid memory leak (Kevin Risden)</li>
+<code class="language-plaintext highlighter-rouge">CalciteStatement</code> should call <code class="language-plaintext highlighter-rouge">AvaticaStatement</code> close_(), to avoid memory leak (Kevin Risden)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2053">CALCITE-2053</a>]
-Resolve Java user-defined functions that have <code class="highlighter-rouge">Double</code> and <code class="highlighter-rouge">BigDecimal</code> arguments (余启)</li>
+Resolve Java user-defined functions that have <code class="language-plaintext highlighter-rouge">Double</code> and <code class="language-plaintext highlighter-rouge">BigDecimal</code> arguments (余启)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2063">CALCITE-2063</a>]
-Add JDK 10 to <code class="highlighter-rouge">.travis.yml</code>
+Add JDK 10 to <code class="language-plaintext highlighter-rouge">.travis.yml</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2159">CALCITE-2159</a>]
-Support dynamic row type in <code class="highlighter-rouge">UNNEST</code> (Chunhui Shi)</li>
+Support dynamic row type in <code class="language-plaintext highlighter-rouge">UNNEST</code> (Chunhui Shi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2164">CALCITE-2164</a>]
 Fix alerts raised by lgtm.com (Malcolm Taylor)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2188">CALCITE-2188</a>]
-JDBC adapter generates invalid SQL for <code class="highlighter-rouge">DATE</code>/<code class="highlighter-rouge">INTERVAL</code> arithmetic (Rahul Raj)</li>
+JDBC adapter generates invalid SQL for <code class="language-plaintext highlighter-rouge">DATE</code>/<code class="language-plaintext highlighter-rouge">INTERVAL</code> arithmetic (Rahul Raj)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2201">CALCITE-2201</a>]
-Pass <code class="highlighter-rouge">RelBuilder</code> into <code class="highlighter-rouge">RelDecorrelator</code> and <code class="highlighter-rouge">RelStructuredTypeFlattener</code> (Volodymyr Vysotskyi)</li>
+Pass <code class="language-plaintext highlighter-rouge">RelBuilder</code> into <code class="language-plaintext highlighter-rouge">RelDecorrelator</code> and <code class="language-plaintext highlighter-rouge">RelStructuredTypeFlattener</code> (Volodymyr Vysotskyi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2205">CALCITE-2205</a>]
-<code class="highlighter-rouge">JoinPushTransitivePredicatesRule</code> should not create <code class="highlighter-rouge">Filter</code> on top of equivalent <code class="highlighter-rouge">Filter</code> (Vitalii Diravka)</li>
+<code class="language-plaintext highlighter-rouge">JoinPushTransitivePredicatesRule</code> should not create <code class="language-plaintext highlighter-rouge">Filter</code> on top of equivalent <code class="language-plaintext highlighter-rouge">Filter</code> (Vitalii Diravka)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2206">CALCITE-2206</a>]
 JDBC adapter incorrectly pushes windowed aggregates down to HSQLDB (Pavel Gubin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2220">CALCITE-2220</a>]
-<code class="highlighter-rouge">SqlToRelConverter</code> generates incorrect ordinal while flattening a record-valued field (Shuyi Chen)</li>
+<code class="language-plaintext highlighter-rouge">SqlToRelConverter</code> generates incorrect ordinal while flattening a record-valued field (Shuyi Chen)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2222">CALCITE-2222</a>]
 Add Quarter timeunit as a valid unit to pushdown to Druid</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2225">CALCITE-2225</a>]
@@ -4088,7 +4088,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2229">CALCITE-2229</a>]
 Allow sqlsh to be run from path, not just current directory</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2232">CALCITE-2232</a>]
-Assertion error on <code class="highlighter-rouge">AggregatePullUpConstantsRule</code> while adjusting <code class="highlighter-rouge">Aggregate</code> indices</li>
+Assertion error on <code class="language-plaintext highlighter-rouge">AggregatePullUpConstantsRule</code> while adjusting <code class="language-plaintext highlighter-rouge">Aggregate</code> indices</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2236">CALCITE-2236</a>]
 Druid adapter: Avoid duplication of fields names during Druid query planing</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2237">CALCITE-2237</a>]
@@ -4096,13 +4096,13 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2238">CALCITE-2238</a>]
 Fix Pig and Spark adapter failures with JDK 10</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2240">CALCITE-2240</a>]
-Extend rule to push predicates into <code class="highlighter-rouge">CASE</code> statement (Zoltan Haindrich)</li>
+Extend rule to push predicates into <code class="language-plaintext highlighter-rouge">CASE</code> statement (Zoltan Haindrich)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2242">CALCITE-2242</a>]
-Using custom <code class="highlighter-rouge">RelBuilder</code> for <code class="highlighter-rouge">FilterRemoveIsNotDistinctFromRule</code> (Vitalii Diravka)</li>
+Using custom <code class="language-plaintext highlighter-rouge">RelBuilder</code> for <code class="language-plaintext highlighter-rouge">FilterRemoveIsNotDistinctFromRule</code> (Vitalii Diravka)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2247">CALCITE-2247</a>]
-Simplify <code class="highlighter-rouge">AND</code> and <code class="highlighter-rouge">OR</code> conditions using predicates (Zoltan Haindrich)</li>
+Simplify <code class="language-plaintext highlighter-rouge">AND</code> and <code class="language-plaintext highlighter-rouge">OR</code> conditions using predicates (Zoltan Haindrich)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2253">CALCITE-2253</a>]
-Fix matching predicate for <code class="highlighter-rouge">JdbcProjectRule</code> rule</li>
+Fix matching predicate for <code class="language-plaintext highlighter-rouge">JdbcProjectRule</code> rule</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2255">CALCITE-2255</a>]
 Add JDK 11 to Travis CI</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2259">CALCITE-2259</a>]
@@ -4116,31 +4116,31 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2265">CALCITE-2265</a>]
 Allow comparison of ROW values (Dylan Adams)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2267">CALCITE-2267</a>]
-Thread-safe generation of <code class="highlighter-rouge">AbstractRelNode.id</code> (Zhong Yu)</li>
+Thread-safe generation of <code class="language-plaintext highlighter-rouge">AbstractRelNode.id</code> (Zhong Yu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2275">CALCITE-2275</a>]
-Do not push down <code class="highlighter-rouge">NOT</code> condition in <code class="highlighter-rouge">JOIN</code> (Vitalii Diravka)</li>
+Do not push down <code class="language-plaintext highlighter-rouge">NOT</code> condition in <code class="language-plaintext highlighter-rouge">JOIN</code> (Vitalii Diravka)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2276">CALCITE-2276</a>]
-Allow explicit <code class="highlighter-rouge">ROW</code> value constructor in <code class="highlighter-rouge">SELECT</code> clause and elsewhere (Danny Chan)</li>
+Allow explicit <code class="language-plaintext highlighter-rouge">ROW</code> value constructor in <code class="language-plaintext highlighter-rouge">SELECT</code> clause and elsewhere (Danny Chan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2277">CALCITE-2277</a>]
-Skip <code class="highlighter-rouge">SemiJoin</code> operator in materialized view-based rewriting algorithm</li>
+Skip <code class="language-plaintext highlighter-rouge">SemiJoin</code> operator in materialized view-based rewriting algorithm</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2278">CALCITE-2278</a>]
-<code class="highlighter-rouge">AggregateJoinTransposeRule</code> fails to split aggregate call if input contains an aggregate call and has distinct rows (Haisheng Yuan)</li>
+<code class="language-plaintext highlighter-rouge">AggregateJoinTransposeRule</code> fails to split aggregate call if input contains an aggregate call and has distinct rows (Haisheng Yuan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2281">CALCITE-2281</a>]
-Return type of the <code class="highlighter-rouge">TIMESTAMPADD</code> function has wrong precision (Sudheesh Katkam)</li>
+Return type of the <code class="language-plaintext highlighter-rouge">TIMESTAMPADD</code> function has wrong precision (Sudheesh Katkam)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2287">CALCITE-2287</a>]
-<code class="highlighter-rouge">FlatList.equals()</code> throws <code class="highlighter-rouge">StackOverflowError</code> (Zhen Wang, Zhong Yu)</li>
+<code class="language-plaintext highlighter-rouge">FlatList.equals()</code> throws <code class="language-plaintext highlighter-rouge">StackOverflowError</code> (Zhen Wang, Zhong Yu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2291">CALCITE-2291</a>]
 Support Push Project past Correlate (Chunhui Shi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2293">CALCITE-2293</a>]
 Upgrade forbidden-apis to 2.5 (for JDK 10)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2299">CALCITE-2299</a>]
-<code class="highlighter-rouge">TIMESTAMPADD</code>(<code class="highlighter-rouge">SQL_TSI_FRAC_SECOND</code>) should be nanoseconds (Sergey Nuyanzin)</li>
+<code class="language-plaintext highlighter-rouge">TIMESTAMPADD</code>(<code class="language-plaintext highlighter-rouge">SQL_TSI_FRAC_SECOND</code>) should be nanoseconds (Sergey Nuyanzin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2303">CALCITE-2303</a>]
-In <code class="highlighter-rouge">EXTRACT</code> function, support <code class="highlighter-rouge">MICROSECONDS</code>, <code class="highlighter-rouge">MILLISECONDS</code>, <code class="highlighter-rouge">EPOCH</code>, <code class="highlighter-rouge">ISODOW</code>, <code class="highlighter-rouge">ISOYEAR</code> and <code class="highlighter-rouge">DECADE</code> time units (Sergey Nuyanzin)</li>
+In <code class="language-plaintext highlighter-rouge">EXTRACT</code> function, support <code class="language-plaintext highlighter-rouge">MICROSECONDS</code>, <code class="language-plaintext highlighter-rouge">MILLISECONDS</code>, <code class="language-plaintext highlighter-rouge">EPOCH</code>, <code class="language-plaintext highlighter-rouge">ISODOW</code>, <code class="language-plaintext highlighter-rouge">ISOYEAR</code> and <code class="language-plaintext highlighter-rouge">DECADE</code> time units (Sergey Nuyanzin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2305">CALCITE-2305</a>]
-JDBC adapter generates invalid casts on PostgreSQL, because PostgreSQL does not have <code class="highlighter-rouge">TINYINT</code> and <code class="highlighter-rouge">DOUBLE</code> types</li>
+JDBC adapter generates invalid casts on PostgreSQL, because PostgreSQL does not have <code class="language-plaintext highlighter-rouge">TINYINT</code> and <code class="language-plaintext highlighter-rouge">DOUBLE</code> types</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2306">CALCITE-2306</a>]
-AssertionError in <code class="highlighter-rouge">RexLiteral.getValue3</code> with null literal of type <code class="highlighter-rouge">DECIMAL</code> (Godfrey He)</li>
+AssertionError in <code class="language-plaintext highlighter-rouge">RexLiteral.getValue3</code> with null literal of type <code class="language-plaintext highlighter-rouge">DECIMAL</code> (Godfrey He)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2309">CALCITE-2309</a>]
 Dialects: Hive dialect does not support charsets in constants</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2314">CALCITE-2314</a>]
@@ -4148,28 +4148,28 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2316">CALCITE-2316</a>]
 Elasticsearch adapter should not convert queries to lower-case (Andrei Sereda)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2318">CALCITE-2318</a>]
-<code class="highlighter-rouge">NumberFormatException</code> while starting SQLLine</li>
+<code class="language-plaintext highlighter-rouge">NumberFormatException</code> while starting SQLLine</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2319">CALCITE-2319</a>]
 Set correct dimension type for druid expressions with result type boolean (nsihantmonu51)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2320">CALCITE-2320</a>]
-Filtering UDF when converting <code class="highlighter-rouge">Filter</code> to <code class="highlighter-rouge">JDBCFilter</code> (Piotr Bojko)</li>
+Filtering UDF when converting <code class="language-plaintext highlighter-rouge">Filter</code> to <code class="language-plaintext highlighter-rouge">JDBCFilter</code> (Piotr Bojko)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2323">CALCITE-2323</a>]
-Apply “<code class="highlighter-rouge">defaultNullCollation</code>” configuration parameter when translating <code class="highlighter-rouge">ORDER BY</code> inside <code class="highlighter-rouge">OVER</code> (John Fang)</li>
+Apply “<code class="language-plaintext highlighter-rouge">defaultNullCollation</code>” configuration parameter when translating <code class="language-plaintext highlighter-rouge">ORDER BY</code> inside <code class="language-plaintext highlighter-rouge">OVER</code> (John Fang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2324">CALCITE-2324</a>]
-<code class="highlighter-rouge">EXTRACT</code> function: <code class="highlighter-rouge">HOUR</code>, <code class="highlighter-rouge">MINUTE</code> and <code class="highlighter-rouge">SECOND</code> parts of a <code class="highlighter-rouge">DATE</code> must be zero (Sergey Nuyanzin)</li>
+<code class="language-plaintext highlighter-rouge">EXTRACT</code> function: <code class="language-plaintext highlighter-rouge">HOUR</code>, <code class="language-plaintext highlighter-rouge">MINUTE</code> and <code class="language-plaintext highlighter-rouge">SECOND</code> parts of a <code class="language-plaintext highlighter-rouge">DATE</code> must be zero (Sergey Nuyanzin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2329">CALCITE-2329</a>]
 Improve rewrite for “constant IN (sub-query)”</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2331">CALCITE-2331</a>]
-Evaluation of predicate <code class="highlighter-rouge">(A or B) and C</code> fails for Elasticsearch adapter (Andrei Sereda)</li>
+Evaluation of predicate <code class="language-plaintext highlighter-rouge">(A or B) and C</code> fails for Elasticsearch adapter (Andrei Sereda)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2332">CALCITE-2332</a>]
-Wrong simplification of <code class="highlighter-rouge">FLOOR(CEIL(x))</code> to <code class="highlighter-rouge">FLOOR(x)</code>
+Wrong simplification of <code class="language-plaintext highlighter-rouge">FLOOR(CEIL(x))</code> to <code class="language-plaintext highlighter-rouge">FLOOR(x)</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2333">CALCITE-2333</a>]
 Stop releasing zips</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2334">CALCITE-2334</a>]
-Extend simplification of expressions with <code class="highlighter-rouge">CEIL</code> function over date types</li>
+Extend simplification of expressions with <code class="language-plaintext highlighter-rouge">CEIL</code> function over date types</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2341">CALCITE-2341</a>]
-Fix <code class="highlighter-rouge">ImmutableBitSetTest</code> for jdk11</li>
+Fix <code class="language-plaintext highlighter-rouge">ImmutableBitSetTest</code> for jdk11</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2342">CALCITE-2342</a>]
 Fix improper use of assert</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2345">CALCITE-2345</a>]
@@ -4177,7 +4177,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2347">CALCITE-2347</a>]
 Running ElasticSearch in embedded mode for unit tests of ES adapter (Andrei Sereda)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2353">CALCITE-2353</a>]
-Allow user to override <code class="highlighter-rouge">SqlSetOption</code> (Andrew Pilloud)</li>
+Allow user to override <code class="language-plaintext highlighter-rouge">SqlSetOption</code> (Andrew Pilloud)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2355">CALCITE-2355</a>]
 Implement multiset operations (Sergey Nuyanzin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2357">CALCITE-2357</a>]
@@ -4191,11 +4191,11 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2365">CALCITE-2365</a>]
 Upgrade avatica to 1.12</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2366">CALCITE-2366</a>]
-Add support for <code class="highlighter-rouge">ANY_VALUE</code> aggregate function (Gautam Parai)</li>
+Add support for <code class="language-plaintext highlighter-rouge">ANY_VALUE</code> aggregate function (Gautam Parai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2368">CALCITE-2368</a>]
-Fix <code class="highlighter-rouge">misc.iq</code> and <code class="highlighter-rouge">scalar.iq</code> quidem unit tests failures on Windows</li>
+Fix <code class="language-plaintext highlighter-rouge">misc.iq</code> and <code class="language-plaintext highlighter-rouge">scalar.iq</code> quidem unit tests failures on Windows</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2369">CALCITE-2369</a>]
-Fix <code class="highlighter-rouge">OsAdapterTest</code> failure on windows (Sergey Nuyanzin)</li>
+Fix <code class="language-plaintext highlighter-rouge">OsAdapterTest</code> failure on windows (Sergey Nuyanzin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2370">CALCITE-2370</a>]
 Fix failing mongo IT tests when explicit order was not specified (Andrei Sereda)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2376">CALCITE-2376</a>]
@@ -4209,26 +4209,26 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2382">CALCITE-2382</a>]
 Sub-query join lateral table function (pengzhiwei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2383">CALCITE-2383</a>]
-<code class="highlighter-rouge">NTH_VALUE</code> window function (Sergey Nuyanzin)</li>
+<code class="language-plaintext highlighter-rouge">NTH_VALUE</code> window function (Sergey Nuyanzin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2384">CALCITE-2384</a>]
-Performance issue in <code class="highlighter-rouge">getPulledUpPredicates</code> (Zoltan Haindrich)</li>
+Performance issue in <code class="language-plaintext highlighter-rouge">getPulledUpPredicates</code> (Zoltan Haindrich)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2387">CALCITE-2387</a>]
-Fix for <code class="highlighter-rouge">date</code>/<code class="highlighter-rouge">timestamp</code> cast expressions in Druid adapter</li>
+Fix for <code class="language-plaintext highlighter-rouge">date</code>/<code class="language-plaintext highlighter-rouge">timestamp</code> cast expressions in Druid adapter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2388">CALCITE-2388</a>]
-Upgrade from <code class="highlighter-rouge">commons-dbcp</code> to <code class="highlighter-rouge">commons-dbcp2</code> version 2.4.0</li>
+Upgrade from <code class="language-plaintext highlighter-rouge">commons-dbcp</code> to <code class="language-plaintext highlighter-rouge">commons-dbcp2</code> version 2.4.0</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2391">CALCITE-2391</a>]
-Aggregate query with <code class="highlighter-rouge">UNNEST</code> or <code class="highlighter-rouge">LATERAL</code> fails with <code class="highlighter-rouge">ClassCastException</code>
+Aggregate query with <code class="language-plaintext highlighter-rouge">UNNEST</code> or <code class="language-plaintext highlighter-rouge">LATERAL</code> fails with <code class="language-plaintext highlighter-rouge">ClassCastException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2392">CALCITE-2392</a>]
-Prevent columns permutation for <code class="highlighter-rouge">NATURAL JOIN</code> and <code class="highlighter-rouge">JOIN USING</code> when dynamic table is used</li>
+Prevent columns permutation for <code class="language-plaintext highlighter-rouge">NATURAL JOIN</code> and <code class="language-plaintext highlighter-rouge">JOIN USING</code> when dynamic table is used</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2396">CALCITE-2396</a>]
-Allow <code class="highlighter-rouge">NULL</code> intervals in <code class="highlighter-rouge">TIMESTAMPADD</code> and <code class="highlighter-rouge">DATETIME_PLUS</code> functions (James Duong)</li>
+Allow <code class="language-plaintext highlighter-rouge">NULL</code> intervals in <code class="language-plaintext highlighter-rouge">TIMESTAMPADD</code> and <code class="language-plaintext highlighter-rouge">DATETIME_PLUS</code> functions (James Duong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2398">CALCITE-2398</a>]
-<code class="highlighter-rouge">SqlSelect</code> must call into <code class="highlighter-rouge">SqlDialect</code> for unparse (James Duong)</li>
+<code class="language-plaintext highlighter-rouge">SqlSelect</code> must call into <code class="language-plaintext highlighter-rouge">SqlDialect</code> for unparse (James Duong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2403">CALCITE-2403</a>]
 Upgrade quidem to 0.9</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2409">CALCITE-2409</a>]
-<code class="highlighter-rouge">SparkAdapterTest</code> fails on Windows when ‘/tmp’ directory does not exist
+<code class="language-plaintext highlighter-rouge">SparkAdapterTest</code> fails on Windows when ‘/tmp’ directory does not exist
 (Sergey Nuyanzin)</li>
 </ul>
 
@@ -4240,7 +4240,7 @@
 using Oracle JDK 8, 9, 10;
 Guava versions 19.0 to 23.0;
 Druid version 0.11.0;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <p>This release comes three months after 1.15.0. It includes more than 80 resolved
 issues, comprising a large number of new features as well as general improvements
@@ -4254,7 +4254,7 @@
 <a href="https://issues.apache.org/jira/browse/CALCITE-2059">read data from Apache Geode</a>
 was added in this release. In addition, more progress has been made for the existing adapters,
 e.g., the Druid adapter can generate
-<a href="https://issues.apache.org/jira/browse/CALCITE-2077"><code class="highlighter-rouge">SCAN</code> queries rather than <code class="highlighter-rouge">SELECT</code> queries</a>
+<a href="https://issues.apache.org/jira/browse/CALCITE-2077"><code class="language-plaintext highlighter-rouge">SCAN</code> queries rather than <code class="language-plaintext highlighter-rouge">SELECT</code> queries</a>
 for more efficient execution and it can push
 <a href="https://issues.apache.org/jira/browse/CALCITE-2170">more work to Druid using its new expressions capabilities</a>,
 and the JDBC adapter now <a href="https://issues.apache.org/jira/browse/CALCITE-2128">supports the SQL dialect used by Jethro Data</a>.</li>
@@ -4267,11 +4267,11 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1265">CALCITE-1265</a>]
-In JDBC adapter, push <code class="highlighter-rouge">OFFSET</code> and <code class="highlighter-rouge">FETCH</code> to data source</li>
+In JDBC adapter, push <code class="language-plaintext highlighter-rouge">OFFSET</code> and <code class="language-plaintext highlighter-rouge">FETCH</code> to data source</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2059">CALCITE-2059</a>]
 Apache Geode adapter (Christian Tzolov)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2077">CALCITE-2077</a>]
-Druid adapter: Use <code class="highlighter-rouge">SCAN</code> query rather than <code class="highlighter-rouge">SELECT</code> query (Nishant Bangarwa)</li>
+Druid adapter: Use <code class="language-plaintext highlighter-rouge">SCAN</code> query rather than <code class="language-plaintext highlighter-rouge">SELECT</code> query (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2128">CALCITE-2128</a>]
 In JDBC adapter, add SQL dialect for Jethro Data (Jonathan Doron)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2170">CALCITE-2170</a>]
@@ -4284,27 +4284,27 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1054">CALCITE-1054</a>]
 NPE caused by wrong code generation for Timestamp fields</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1188">CALCITE-1188</a>]
-NullPointerException in <code class="highlighter-rouge">EXTRACT</code> with <code class="highlighter-rouge">WHERE ... IN</code> clause if field has null value</li>
+NullPointerException in <code class="language-plaintext highlighter-rouge">EXTRACT</code> with <code class="language-plaintext highlighter-rouge">WHERE ... IN</code> clause if field has null value</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1427">CALCITE-1427</a>]
 Code generation incorrect (does not compile) for DATE, TIME and TIMESTAMP fields</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1658">CALCITE-1658</a>]
-DateRangeRules incorrectly rewrites <code class="highlighter-rouge">EXTRACT</code> calls (Nishant Bangarwa)</li>
+DateRangeRules incorrectly rewrites <code class="language-plaintext highlighter-rouge">EXTRACT</code> calls (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1697">CALCITE-1697</a>]
 Update Mongo driver version to 3.5.0 (Vladimir Dolzhenko)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2002">CALCITE-2002</a>]
-<code class="highlighter-rouge">DISTINCT</code> applied to <code class="highlighter-rouge">VALUES</code> returns wrong result</li>
+<code class="language-plaintext highlighter-rouge">DISTINCT</code> applied to <code class="language-plaintext highlighter-rouge">VALUES</code> returns wrong result</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2009">CALCITE-2009</a>]
-Possible bug in interpreting <code class="highlighter-rouge">( IN ) OR ( IN )</code> logic</li>
+Possible bug in interpreting <code class="language-plaintext highlighter-rouge">( IN ) OR ( IN )</code> logic</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2020">CALCITE-2020</a>]
 Upgrade org.incava java-diff</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2027">CALCITE-2027</a>]
 Drop support for Java 7 (JDK 1.7)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2034">CALCITE-2034</a>]
-<code class="highlighter-rouge">FileReaderTest</code> fails with path containing spaces</li>
+<code class="language-plaintext highlighter-rouge">FileReaderTest</code> fails with path containing spaces</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2066">CALCITE-2066</a>]
-<code class="highlighter-rouge">RelOptUtil.splitJoinCondition()</code> could not split condition with case after applying <code class="highlighter-rouge">FilterReduceExpressionsRule</code> (Volodymyr Vysotskyi)</li>
+<code class="language-plaintext highlighter-rouge">RelOptUtil.splitJoinCondition()</code> could not split condition with case after applying <code class="language-plaintext highlighter-rouge">FilterReduceExpressionsRule</code> (Volodymyr Vysotskyi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2071">CALCITE-2071</a>]
-Query with <code class="highlighter-rouge">IN</code> and <code class="highlighter-rouge">OR</code> in <code class="highlighter-rouge">WHERE</code> clause returns wrong result (Vineet Garg)</li>
+Query with <code class="language-plaintext highlighter-rouge">IN</code> and <code class="language-plaintext highlighter-rouge">OR</code> in <code class="language-plaintext highlighter-rouge">WHERE</code> clause returns wrong result (Vineet Garg)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2072">CALCITE-2072</a>]
 Enable spatial functions by adding ‘fun=spatial’ to JDBC connect string</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2075">CALCITE-2075</a>]
@@ -4312,73 +4312,73 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2076">CALCITE-2076</a>]
 Upgrade to Druid 0.11.0 (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2080">CALCITE-2080</a>]
-Query with <code class="highlighter-rouge">NOT IN</code> operator and literal throws <code class="highlighter-rouge">AssertionError</code>: ‘Cast for just nullability not allowed’ (Volodymyr Vysotskyi)</li>
+Query with <code class="language-plaintext highlighter-rouge">NOT IN</code> operator and literal throws <code class="language-plaintext highlighter-rouge">AssertionError</code>: ‘Cast for just nullability not allowed’ (Volodymyr Vysotskyi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2081">CALCITE-2081</a>]
-Query with windowed aggregates under both sides of a <code class="highlighter-rouge">JOIN</code> throws <code class="highlighter-rouge">NullPointerException</code> (Zhen Wang)</li>
+Query with windowed aggregates under both sides of a <code class="language-plaintext highlighter-rouge">JOIN</code> throws <code class="language-plaintext highlighter-rouge">NullPointerException</code> (Zhen Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2084">CALCITE-2084</a>]
-<code class="highlighter-rouge">SqlValidatorImpl.findTable()</code> method incorrectly handles table schema with few schema levels (Volodymyr Vysotskyi)</li>
+<code class="language-plaintext highlighter-rouge">SqlValidatorImpl.findTable()</code> method incorrectly handles table schema with few schema levels (Volodymyr Vysotskyi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2088">CALCITE-2088</a>]
 Add more complex end-to-end tests in “plus” module, using Chinook data set (Piotr Bojko)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2089">CALCITE-2089</a>]
-Druid adapter: Push filter on <code class="highlighter-rouge">floor(time)</code> to Druid (Nishant Bangarwa)</li>
+Druid adapter: Push filter on <code class="language-plaintext highlighter-rouge">floor(time)</code> to Druid (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2090">CALCITE-2090</a>]
 Extend Druid Range Rules to extract interval from Floor (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2091">CALCITE-2091</a>]
-Improve DruidQuery cost function, to ensure that <code class="highlighter-rouge">EXTRACT</code> gets pushed as an interval if possible</li>
+Improve DruidQuery cost function, to ensure that <code class="language-plaintext highlighter-rouge">EXTRACT</code> gets pushed as an interval if possible</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2092">CALCITE-2092</a>]
-Allow passing custom <code class="highlighter-rouge">RelBuilder</code> into <code class="highlighter-rouge">SqlToRelConverter</code>
+Allow passing custom <code class="language-plaintext highlighter-rouge">RelBuilder</code> into <code class="language-plaintext highlighter-rouge">SqlToRelConverter</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2093">CALCITE-2093</a>]
-<code class="highlighter-rouge">OsAdapterTest</code> in Calcite Plus does not respect locale (Piotr Bojko)</li>
+<code class="language-plaintext highlighter-rouge">OsAdapterTest</code> in Calcite Plus does not respect locale (Piotr Bojko)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2094">CALCITE-2094</a>]
-Druid adapter: <code class="highlighter-rouge">Count(*)</code> returns null instead of 0 when condition filters all rows</li>
+Druid adapter: <code class="language-plaintext highlighter-rouge">Count(*)</code> returns null instead of 0 when condition filters all rows</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2095">CALCITE-2095</a>]
 Druid adapter: Push always true and always true expressions as Expression Filters</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2096">CALCITE-2096</a>]
-Druid adapter: Remove extra <code class="highlighter-rouge">dummy_aggregator</code>
+Druid adapter: Remove extra <code class="language-plaintext highlighter-rouge">dummy_aggregator</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2097">CALCITE-2097</a>]
 Druid adapter: Push Aggregate and Filter operators containing metric columns to Druid</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2098">CALCITE-2098</a>]
-Push filters to Druid Query Scan when we have <code class="highlighter-rouge">OR</code> of <code class="highlighter-rouge">AND</code> clauses</li>
+Push filters to Druid Query Scan when we have <code class="language-plaintext highlighter-rouge">OR</code> of <code class="language-plaintext highlighter-rouge">AND</code> clauses</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2099">CALCITE-2099</a>]
-Code generated for <code class="highlighter-rouge">GROUP BY</code> inside <code class="highlighter-rouge">UNION</code> does not compile (Zhen Wang)</li>
+Code generated for <code class="language-plaintext highlighter-rouge">GROUP BY</code> inside <code class="language-plaintext highlighter-rouge">UNION</code> does not compile (Zhen Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2101">CALCITE-2101</a>]
 Druid adapter: Push count(column) using Druid filtered aggregate</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2102">CALCITE-2102</a>]
-Ignore duplicate <code class="highlighter-rouge">ORDER BY</code> keys, and ensure RelCollation contains no duplicates (John Fang)</li>
+Ignore duplicate <code class="language-plaintext highlighter-rouge">ORDER BY</code> keys, and ensure RelCollation contains no duplicates (John Fang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2104">CALCITE-2104</a>]
-Add separate rules for <code class="highlighter-rouge">AggregateUnionAggregateRule</code> to reduce potential matching cost in <code class="highlighter-rouge">VolcanoPlanner</code> (lincoln-lil)</li>
+Add separate rules for <code class="language-plaintext highlighter-rouge">AggregateUnionAggregateRule</code> to reduce potential matching cost in <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> (lincoln-lil)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2105">CALCITE-2105</a>]
-<code class="highlighter-rouge">AggregateJoinTransposeRule</code> fails when process aggregate without group keys (jingzhang)</li>
+<code class="language-plaintext highlighter-rouge">AggregateJoinTransposeRule</code> fails when process aggregate without group keys (jingzhang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2107">CALCITE-2107</a>]
-Timezone not passed as part of granularity when passing <code class="highlighter-rouge">TimeExtractionFunction</code> to Druid (Nishant Bangarwa)</li>
+Timezone not passed as part of granularity when passing <code class="language-plaintext highlighter-rouge">TimeExtractionFunction</code> to Druid (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2108">CALCITE-2108</a>]
-<code class="highlighter-rouge">AggregateJoinTransposeRule</code> fails when process aggregateCall above <code class="highlighter-rouge">SqlSumEmptyIsZeroAggFunction</code> without groupKeys (jingzhang)</li>
+<code class="language-plaintext highlighter-rouge">AggregateJoinTransposeRule</code> fails when process aggregateCall above <code class="language-plaintext highlighter-rouge">SqlSumEmptyIsZeroAggFunction</code> without groupKeys (jingzhang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2110">CALCITE-2110</a>]
-<code class="highlighter-rouge">ArrayIndexOutOfBoundsException</code> in RexSimplify when using <code class="highlighter-rouge">ReduceExpressionsRule.JOIN_INSTANCE</code>
+<code class="language-plaintext highlighter-rouge">ArrayIndexOutOfBoundsException</code> in RexSimplify when using <code class="language-plaintext highlighter-rouge">ReduceExpressionsRule.JOIN_INSTANCE</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2111">CALCITE-2111</a>]
 Make HepPlanner more efficient by applying rules depth-first</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2113">CALCITE-2113</a>]
 Push column pruning to druid when Aggregate cannot be pushed (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2114">CALCITE-2114</a>]
-Re-enable <code class="highlighter-rouge">DruidAggregateFilterTransposeRule</code>
+Re-enable <code class="language-plaintext highlighter-rouge">DruidAggregateFilterTransposeRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2116">CALCITE-2116</a>]
 The digests are not same for the common sub-expressions in HepPlanner (LeoWangLZ)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2118">CALCITE-2118</a>]
 RelToSqlConverter should only generate “*” if field names match (Sam Waggoner)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2122">CALCITE-2122</a>]
-In DateRangeRules, make either <code class="highlighter-rouge">TIMESTAMP</code> or <code class="highlighter-rouge">DATE</code> literal, according to target type (Nishant Bangarwa)</li>
+In DateRangeRules, make either <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> or <code class="language-plaintext highlighter-rouge">DATE</code> literal, according to target type (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2124">CALCITE-2124</a>]
-<code class="highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> should make <code class="highlighter-rouge">SUM</code> nullable if there is no <code class="highlighter-rouge">GROUP BY</code> (Godfrey He)</li>
+<code class="language-plaintext highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> should make <code class="language-plaintext highlighter-rouge">SUM</code> nullable if there is no <code class="language-plaintext highlighter-rouge">GROUP BY</code> (Godfrey He)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2127">CALCITE-2127</a>]
 In Interpreter, allow a node to have more than one consumer</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2133">CALCITE-2133</a>]
 Allow SqlGroupedWindowFunction to specify returnTypeInference in its constructor (Shuyi Chen)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2135">CALCITE-2135</a>]
-If there is an aggregate function inside an <code class="highlighter-rouge">OVER</code> clause, validator should treat query as an aggregate query (Volodymyr Tkach)</li>
+If there is an aggregate function inside an <code class="language-plaintext highlighter-rouge">OVER</code> clause, validator should treat query as an aggregate query (Volodymyr Tkach)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2137">CALCITE-2137</a>]
 Materialized view rewriting not being triggered for some join queries</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2139">CALCITE-2139</a>]
@@ -4390,21 +4390,21 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2154">CALCITE-2154</a>]
 Upgrade jackson to 2.9.4</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2156">CALCITE-2156</a>]
-In DateRangeRules, compute <code class="highlighter-rouge">FLOOR</code> and <code class="highlighter-rouge">CEIL</code> of <code class="highlighter-rouge">TIMESTAMP WITH LOCAL TIMEZONE</code> in local time zone (Nishant Bangarwa)</li>
+In DateRangeRules, compute <code class="language-plaintext highlighter-rouge">FLOOR</code> and <code class="language-plaintext highlighter-rouge">CEIL</code> of <code class="language-plaintext highlighter-rouge">TIMESTAMP WITH LOCAL TIMEZONE</code> in local time zone (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2162">CALCITE-2162</a>]
 Exception when accessing sub-field of sub-field of composite Array element (Shuyi Chen)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2178">CALCITE-2178</a>]
-Extend expression simplifier to work on datetime <code class="highlighter-rouge">CEIL</code>/<code class="highlighter-rouge">FLOOR</code> functions</li>
+Extend expression simplifier to work on datetime <code class="language-plaintext highlighter-rouge">CEIL</code>/<code class="language-plaintext highlighter-rouge">FLOOR</code> functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2179">CALCITE-2179</a>]
 General improvements for materialized view rewriting rule</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2180">CALCITE-2180</a>]
 Invalid code generated for negative of byte and short values</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2183">CALCITE-2183</a>]
-Implement <code class="highlighter-rouge">RelSubset.copy</code> method (Alessandro Solimando)</li>
+Implement <code class="language-plaintext highlighter-rouge">RelSubset.copy</code> method (Alessandro Solimando)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2185">CALCITE-2185</a>]
 Additional unit tests for Spark Adapter (Alessandro Solimando)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2187">CALCITE-2187</a>]
-Fix build issue caused by <code class="highlighter-rouge">CALCITE-2170</code>
+Fix build issue caused by <code class="language-plaintext highlighter-rouge">CALCITE-2170</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2189">CALCITE-2189</a>]
 RelMdAllPredicates fast bail out creates mismatch with RelMdTableReferences</li>
@@ -4415,7 +4415,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2192">CALCITE-2192</a>]
 RelBuilder wrongly skips creating an Aggregate that prunes columns, if input is unique</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2195">CALCITE-2195</a>]
-<code class="highlighter-rouge">AggregateJoinTransposeRule</code> fails to aggregate over unique column (Zhong Yu)</li>
+<code class="language-plaintext highlighter-rouge">AggregateJoinTransposeRule</code> fails to aggregate over unique column (Zhong Yu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2196">CALCITE-2196</a>]
 Tweak janino code generation to allow debugging (jingzhang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2197">CALCITE-2197</a>]
@@ -4445,7 +4445,7 @@
 using Oracle JDK 7, 8, 9, 10;
 Guava versions 14.0 to 23.0;
 Druid version 0.10.0;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <p>This release comes three months after 1.14.0. It includes than 44 resolved
 issues, mostly modest improvements and bug-fixes, but here are some
@@ -4458,7 +4458,7 @@
 We know that DDL syntax is a matter of taste, so we added the extensions to a
 <em>new “server” module</em>, leaving the “core” parser unchanged;</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2061">CALCITE-2061</a>]
-allows <em>dynamic parameters</em> in the <code class="highlighter-rouge">LIMIT</code> and <code class="highlighter-rouge">OFFSET</code> and clauses;</li>
+allows <em>dynamic parameters</em> in the <code class="language-plaintext highlighter-rouge">LIMIT</code> and <code class="language-plaintext highlighter-rouge">OFFSET</code> and clauses;</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1913">CALCITE-1913</a>]
 refactors the JDBC adapter to make it easier to <em>plug in a new SQL dialect</em>;</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1616">CALCITE-1616</a>]
@@ -4483,30 +4483,30 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1616">CALCITE-1616</a>]
 Data profiler</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2061">CALCITE-2061</a>]
-Dynamic parameters in <code class="highlighter-rouge">OFFSET</code>, <code class="highlighter-rouge">FETCH</code> and <code class="highlighter-rouge">LIMIT</code> clauses (Enrico Olivelli)</li>
+Dynamic parameters in <code class="language-plaintext highlighter-rouge">OFFSET</code>, <code class="language-plaintext highlighter-rouge">FETCH</code> and <code class="language-plaintext highlighter-rouge">LIMIT</code> clauses (Enrico Olivelli)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-707">CALCITE-707</a>]
 Add “server” module, with built-in support for simple DDL statements</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2041">CALCITE-2041</a>]
-When <code class="highlighter-rouge">ReduceExpressionRule</code> simplifies a nullable expression, allow the result
-to change type to <code class="highlighter-rouge">NOT NULL</code>
+When <code class="language-plaintext highlighter-rouge">ReduceExpressionRule</code> simplifies a nullable expression, allow the result
+to change type to <code class="language-plaintext highlighter-rouge">NOT NULL</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2058">CALCITE-2058</a>]
 Support JDK 10</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2016">CALCITE-2016</a>]
-Make item + dot operators work for array (e.g. <code class="highlighter-rouge">SELECT orders[5].color FROM t</code>
+Make item + dot operators work for array (e.g. <code class="language-plaintext highlighter-rouge">SELECT orders[5].color FROM t</code>
 (Shuyi Chen)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2035">CALCITE-2035</a>]
-Allow approximate aggregate functions, and add <code class="highlighter-rouge">APPROX_COUNT_DISTINCT</code>
+Allow approximate aggregate functions, and add <code class="language-plaintext highlighter-rouge">APPROX_COUNT_DISTINCT</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1990">CALCITE-1990</a>]
-Make <code class="highlighter-rouge">RelDistribution</code> extend <code class="highlighter-rouge">RelMultipleTrait</code> (LeoWangLZ)</li>
+Make <code class="language-plaintext highlighter-rouge">RelDistribution</code> extend <code class="language-plaintext highlighter-rouge">RelMultipleTrait</code> (LeoWangLZ)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1867">CALCITE-1867</a>]
 Allow user-defined grouped window functions (Timo Walther)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2031">CALCITE-2031</a>]
-<code class="highlighter-rouge">ST_X</code> and <code class="highlighter-rouge">ST_Y</code> GIS functions</li>
+<code class="language-plaintext highlighter-rouge">ST_X</code> and <code class="language-plaintext highlighter-rouge">ST_Y</code> GIS functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1913">CALCITE-1913</a>]
-Pluggable SQL dialects for JDBC adapter: Replace usages of <code class="highlighter-rouge">DatabaseProduct</code>
-with dialect methods, and introduce a configurable <code class="highlighter-rouge">SqlDialectFactory</code>
+Pluggable SQL dialects for JDBC adapter: Replace usages of <code class="language-plaintext highlighter-rouge">DatabaseProduct</code>
+with dialect methods, and introduce a configurable <code class="language-plaintext highlighter-rouge">SqlDialectFactory</code>
 (Christian Beikov)</li>
 </ul>
 
@@ -4514,105 +4514,105 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2078">CALCITE-2078</a>]
-Aggregate functions in <code class="highlighter-rouge">OVER</code> clause (Liao Xintao)</li>
+Aggregate functions in <code class="language-plaintext highlighter-rouge">OVER</code> clause (Liao Xintao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2070">CALCITE-2070</a>]
 Git test fails when run from source distro</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1808">CALCITE-1808</a>]
-<code class="highlighter-rouge">JaninoRelMetadataProvider</code> loading cache might cause <code class="highlighter-rouge">OutOfMemoryError</code>
+<code class="language-plaintext highlighter-rouge">JaninoRelMetadataProvider</code> loading cache might cause <code class="language-plaintext highlighter-rouge">OutOfMemoryError</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2069">CALCITE-2069</a>]
-<code class="highlighter-rouge">RexSimplify.removeNullabilityCast()</code> always removes cast for operand with
-<code class="highlighter-rouge">ANY</code> type (Volodymyr Vysotskyi)</li>
+<code class="language-plaintext highlighter-rouge">RexSimplify.removeNullabilityCast()</code> always removes cast for operand with
+<code class="language-plaintext highlighter-rouge">ANY</code> type (Volodymyr Vysotskyi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2074">CALCITE-2074</a>]
 Simplification of point ranges that are open above or below yields wrong
 results</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2005">CALCITE-2005</a>]
 Test failures on Windows</li>
-  <li>Add <code class="highlighter-rouge">ImmutableBitSet.set(int, boolean)</code>
+  <li>Add <code class="language-plaintext highlighter-rouge">ImmutableBitSet.set(int, boolean)</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2054">CALCITE-2054</a>]
-Error while validating <code class="highlighter-rouge">UPDATE</code> with dynamic parameter in <code class="highlighter-rouge">SET</code> clause (Enrico
+Error while validating <code class="language-plaintext highlighter-rouge">UPDATE</code> with dynamic parameter in <code class="language-plaintext highlighter-rouge">SET</code> clause (Enrico
 Olivelli)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2055">CALCITE-2055</a>]
 Check year, month, day, hour, minute and second ranges for date and time
 literals (Volodymyr Vysotskyi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2051">CALCITE-2051</a>]
-Rules using <code class="highlighter-rouge">Aggregate</code> might check for simple grouping sets incorrectly</li>
-  <li>Add parameter to <code class="highlighter-rouge">SqlCallBinding.getOperandLiteralValue(int)</code> to specify
+Rules using <code class="language-plaintext highlighter-rouge">Aggregate</code> might check for simple grouping sets incorrectly</li>
+  <li>Add parameter to <code class="language-plaintext highlighter-rouge">SqlCallBinding.getOperandLiteralValue(int)</code> to specify
 desired value type</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2039">CALCITE-2039</a>]
-<code class="highlighter-rouge">AssertionError</code> when pushing project to <code class="highlighter-rouge">ProjectableFilterableTable</code>
+<code class="language-plaintext highlighter-rouge">AssertionError</code> when pushing project to <code class="language-plaintext highlighter-rouge">ProjectableFilterableTable</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2050">CALCITE-2050</a>]
 Exception when pushing post-aggregates into Druid</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2043">CALCITE-2043</a>]
-Use custom <code class="highlighter-rouge">RelBuilder</code> implementation in some rules (Volodymyr Vysotskyi)</li>
+Use custom <code class="language-plaintext highlighter-rouge">RelBuilder</code> implementation in some rules (Volodymyr Vysotskyi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2044">CALCITE-2044</a>]
-Tweak cost of <code class="highlighter-rouge">BindableTableScan</code> to make sure <code class="highlighter-rouge">Project</code> is pushed through
-<code class="highlighter-rouge">Aggregate</code> (Luis Fernando Kauer)</li>
+Tweak cost of <code class="language-plaintext highlighter-rouge">BindableTableScan</code> to make sure <code class="language-plaintext highlighter-rouge">Project</code> is pushed through
+<code class="language-plaintext highlighter-rouge">Aggregate</code> (Luis Fernando Kauer)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2012">CALCITE-2012</a>]
-Replace <code class="highlighter-rouge">LocalInterval</code> by <code class="highlighter-rouge">Interval</code> in Druid adapter</li>
+Replace <code class="language-plaintext highlighter-rouge">LocalInterval</code> by <code class="language-plaintext highlighter-rouge">Interval</code> in Druid adapter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1984">CALCITE-1984</a>]
-Incorrect rewriting with materialized views using <code class="highlighter-rouge">DISTINCT</code> in aggregate
+Incorrect rewriting with materialized views using <code class="language-plaintext highlighter-rouge">DISTINCT</code> in aggregate
 functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1876">CALCITE-1876</a>]
-In CSV example, tweak cost to ensure that <code class="highlighter-rouge">Project</code> is pushed through
-<code class="highlighter-rouge">Aggregate</code> (Luis Fernando Kauer)</li>
+In CSV example, tweak cost to ensure that <code class="language-plaintext highlighter-rouge">Project</code> is pushed through
+<code class="language-plaintext highlighter-rouge">Aggregate</code> (Luis Fernando Kauer)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2037">CALCITE-2037</a>]
-Modify parser template to allow sub-projects to override <code class="highlighter-rouge">SqlStmt</code> syntax
+Modify parser template to allow sub-projects to override <code class="language-plaintext highlighter-rouge">SqlStmt</code> syntax
 (Roman Kulyk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2019">CALCITE-2019</a>]
-Druid’s time column is NOT NULL, so push <code class="highlighter-rouge">COUNT(druid_time_column)</code> as if it
-were <code class="highlighter-rouge">COUNT(*)</code>
+Druid’s time column is NOT NULL, so push <code class="language-plaintext highlighter-rouge">COUNT(druid_time_column)</code> as if it
+were <code class="language-plaintext highlighter-rouge">COUNT(*)</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2034">CALCITE-2034</a>]
-<code class="highlighter-rouge">FileReaderTest</code> fails with path containing spaces (Marc Prud’hommeaux)</li>
+<code class="language-plaintext highlighter-rouge">FileReaderTest</code> fails with path containing spaces (Marc Prud’hommeaux)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2028">CALCITE-2028</a>]
-<code class="highlighter-rouge">SubQueryRemoveRule</code> should create <code class="highlighter-rouge">Join</code>, not <code class="highlighter-rouge">Correlate</code>, for un-correlated
+<code class="language-plaintext highlighter-rouge">SubQueryRemoveRule</code> should create <code class="language-plaintext highlighter-rouge">Join</code>, not <code class="language-plaintext highlighter-rouge">Correlate</code>, for un-correlated
 sub-queries (Liao Xintao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2029">CALCITE-2029</a>]
-Query with <code class="highlighter-rouge">IS DISTINCT FROM</code> condition in <code class="highlighter-rouge">WHERE</code> or <code class="highlighter-rouge">JOIN</code> clause fails with
-<code class="highlighter-rouge">AssertionError</code>, “Cast for just nullability not allowed” (Volodymyr Vysotskyi)</li>
+Query with <code class="language-plaintext highlighter-rouge">IS DISTINCT FROM</code> condition in <code class="language-plaintext highlighter-rouge">WHERE</code> or <code class="language-plaintext highlighter-rouge">JOIN</code> clause fails with
+<code class="language-plaintext highlighter-rouge">AssertionError</code>, “Cast for just nullability not allowed” (Volodymyr Vysotskyi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1998">CALCITE-1998</a>]
-Hive <code class="highlighter-rouge">ORDER BY</code> null values (Abbas Gadhia)</li>
+Hive <code class="language-plaintext highlighter-rouge">ORDER BY</code> null values (Abbas Gadhia)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2014">CALCITE-2014</a>]
-Look for <code class="highlighter-rouge">saffron.properties</code> file in classpath rather than in working
+Look for <code class="language-plaintext highlighter-rouge">saffron.properties</code> file in classpath rather than in working
 directory (Arina Ielchiieva)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1910">CALCITE-1910</a>]
-<code class="highlighter-rouge">NullPointerException</code> on filtered aggregators using <code class="highlighter-rouge">IN</code>
+<code class="language-plaintext highlighter-rouge">NullPointerException</code> on filtered aggregators using <code class="language-plaintext highlighter-rouge">IN</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1762">CALCITE-1762</a>]
 Upgrade to Spark 2.X</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2008">CALCITE-2008</a>]
-Fix braces in <code class="highlighter-rouge">TRIM</code> signature</li>
+Fix braces in <code class="language-plaintext highlighter-rouge">TRIM</code> signature</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2007">CALCITE-2007</a>]
-Fix <code class="highlighter-rouge">RexSimplify</code> behavior when literals come first</li>
+Fix <code class="language-plaintext highlighter-rouge">RexSimplify</code> behavior when literals come first</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2006">CALCITE-2006</a>]
-Push <code class="highlighter-rouge">IS NULL</code> and <code class="highlighter-rouge">IS NOT NULL</code> predicates to Druid</li>
+Push <code class="language-plaintext highlighter-rouge">IS NULL</code> and <code class="language-plaintext highlighter-rouge">IS NOT NULL</code> predicates to Druid</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1996">CALCITE-1996</a>]
-In JDBC adapter, generate correct <code class="highlighter-rouge">VALUES</code> syntax</li>
+In JDBC adapter, generate correct <code class="language-plaintext highlighter-rouge">VALUES</code> syntax</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2001">CALCITE-2001</a>]
 JDBC driver should return “SYSTEM TABLE” rather than “SYSTEM_TABLE”</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1995">CALCITE-1995</a>]
-Remove terms from <code class="highlighter-rouge">Filter</code> if predicates indicate they are always true or
+Remove terms from <code class="language-plaintext highlighter-rouge">Filter</code> if predicates indicate they are always true or
 false</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1983">CALCITE-1983</a>]
-Push <code class="highlighter-rouge">=</code>and <code class="highlighter-rouge">&lt;&gt;</code> operations with numeric cast on dimensions to Druid</li>
+Push <code class="language-plaintext highlighter-rouge">=</code>and <code class="language-plaintext highlighter-rouge">&lt;&gt;</code> operations with numeric cast on dimensions to Druid</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1960">CALCITE-1960</a>]
-<code class="highlighter-rouge">RelMdPredicates.getPredicates</code> is slow if there are many equivalent columns
+<code class="language-plaintext highlighter-rouge">RelMdPredicates.getPredicates</code> is slow if there are many equivalent columns
 (Rheet Wong)</li>
   <li>Make Travis CI builds work (Christian Beikov)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1987">CALCITE-1987</a>]
-Implement <code class="highlighter-rouge">EXTRACT</code> for JDBC (Pavel Gubin)</li>
+Implement <code class="language-plaintext highlighter-rouge">EXTRACT</code> for JDBC (Pavel Gubin)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1988">CALCITE-1988</a>]
 Various code quality issues</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1986">CALCITE-1986</a>]
-Add <code class="highlighter-rouge">RelBuilder.match</code> and methods for building patterns (Dian Fu)</li>
+Add <code class="language-plaintext highlighter-rouge">RelBuilder.match</code> and methods for building patterns (Dian Fu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1980">CALCITE-1980</a>]
-<code class="highlighter-rouge">RelBuilder.aggregate</code> should rename underlying fields if <code class="highlighter-rouge">groupKey</code> contains
+<code class="language-plaintext highlighter-rouge">RelBuilder.aggregate</code> should rename underlying fields if <code class="language-plaintext highlighter-rouge">groupKey</code> contains
  an alias</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1946">CALCITE-1946</a>]
-JDBC adapter should generate sub-<code class="highlighter-rouge">SELECT</code> if dialect does not support nested
+JDBC adapter should generate sub-<code class="language-plaintext highlighter-rouge">SELECT</code> if dialect does not support nested
 aggregate functions (Pawel Ruchaj)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1976">CALCITE-1976</a>]
 linq4j: support List and Map literals</li>
@@ -4633,7 +4633,7 @@
 Document the interfaces that you can use to extend Calcite</li>
   <li>Javadoc fixes (Alexey Roytman)</li>
   <li>Add two talks, and committer Christian Beikov</li>
-  <li>Fix URL in <code class="highlighter-rouge">FileSchemaFactory</code> javadoc (Marc Prud’hommeaux)</li>
+  <li>Fix URL in <code class="language-plaintext highlighter-rouge">FileSchemaFactory</code> javadoc (Marc Prud’hommeaux)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1989">CALCITE-1989</a>]
 Check dependencies for vulnerabilities each release</li>
 </ul>
@@ -4642,45 +4642,45 @@
 <a href="https://github.com/apache/calcite/releases/tag/calcite-1.14.0">1.14.0</a> / 2017-09-06</h2>
 
 <p>This release brings some big new features.
-The <code class="highlighter-rouge">GEOMETRY</code> data type was added along with 35 associated functions as the start of support for Simple Feature Access.
+The <code class="language-plaintext highlighter-rouge">GEOMETRY</code> data type was added along with 35 associated functions as the start of support for Simple Feature Access.
 There are also two new adapters.
 Firstly, the Elasticsearch 5 adapter which now exists in parallel with the previous Elasticsearch 2 adapter.
 Additionally there is now an <a href="/docs/os_adapter.html">OS adapter</a> which exposes operating system metrics as relational tables.
-<code class="highlighter-rouge">ThetaSketch</code> and <code class="highlighter-rouge">HyperUnique</code> support has also been added to the Druid adapter.</p>
+<code class="language-plaintext highlighter-rouge">ThetaSketch</code> and <code class="language-plaintext highlighter-rouge">HyperUnique</code> support has also been added to the Druid adapter.</p>
 
-<p>Several minor improvements are added as well including improved <code class="highlighter-rouge">MATCH_RECOGNIZE</code> support, quantified comparison predicates, and <code class="highlighter-rouge">ARRAY</code> and <code class="highlighter-rouge">MULTISET</code> support for UDFs.
+<p>Several minor improvements are added as well including improved <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> support, quantified comparison predicates, and <code class="language-plaintext highlighter-rouge">ARRAY</code> and <code class="language-plaintext highlighter-rouge">MULTISET</code> support for UDFs.
 A full list of new features is given below.</p>
 
 <p>There are also a few breaking changes.
-The return type of <code class="highlighter-rouge">RANK</code> and other aggregate functions has been changed.
-There also changes to <code class="highlighter-rouge">Aggregate</code> in order to improve compatibility with Apache Hive.
-Finally, the <code class="highlighter-rouge">Schema#snapshot()</code> interface has been upgraded to allow for more flexible versioning.</p>
+The return type of <code class="language-plaintext highlighter-rouge">RANK</code> and other aggregate functions has been changed.
+There also changes to <code class="language-plaintext highlighter-rouge">Aggregate</code> in order to improve compatibility with Apache Hive.
+Finally, the <code class="language-plaintext highlighter-rouge">Schema#snapshot()</code> interface has been upgraded to allow for more flexible versioning.</p>
 
 <p>Compatibility: This release is tested
 on Linux, macOS, Microsoft Windows;
 using Oracle JDK 1.7, 1.8, 9;
 Guava versions 14.0 to 21.0;
 Druid version 0.11.0;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <h4 id="new-features-1-14-0">New features</h4>
 
 <ul>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1968">CALCITE-1968</a>]  OpenGIS Simple Feature Access SQL 1.2.1: add <code class="highlighter-rouge">GEOMETRY</code> data type and first 35 functions
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1968">CALCITE-1968</a>]  OpenGIS Simple Feature Access SQL 1.2.1: add <code class="language-plaintext highlighter-rouge">GEOMETRY</code> data type and first 35 functions
 Add Spatial page, document GIS functions in SQL reference (indicating
 which ones are implemented), and add “countries” data set for testing.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1967">CALCITE-1967</a>]  Elasticsearch 5 adapter (Christian Beikov)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1911">CALCITE-1911</a>]  In <code class="highlighter-rouge">MATCH_RECOGNIZE</code>, support <code class="highlighter-rouge">WITHIN</code> sub-clause (Dian Fu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1911">CALCITE-1911</a>]  In <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code>, support <code class="language-plaintext highlighter-rouge">WITHIN</code> sub-clause (Dian Fu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1897">CALCITE-1897</a>]  Add ‘%’ operator as an alternative to ‘MOD’ (sunjincheng)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1787">CALCITE-1787</a>]  Add <code class="highlighter-rouge">ThetaSketch</code> and <code class="highlighter-rouge">HyperUnique</code> support to Calcite via rolled up columns (Zain Humayun)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1896">CALCITE-1896</a>]  OS adapter and <code class="highlighter-rouge">sqlsh</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1787">CALCITE-1787</a>]  Add <code class="language-plaintext highlighter-rouge">ThetaSketch</code> and <code class="language-plaintext highlighter-rouge">HyperUnique</code> support to Calcite via rolled up columns (Zain Humayun)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1896">CALCITE-1896</a>]  OS adapter and <code class="language-plaintext highlighter-rouge">sqlsh</code>
     <ul>
       <li>Vmstat table function for sqlsh</li>
     </ul>
   </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1864">CALCITE-1864</a>]  Allow <code class="highlighter-rouge">NULL</code> literal as argument</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1834">CALCITE-1834</a>]  Allow user-defined functions to have arguments that are <code class="highlighter-rouge">ARRAY</code> or <code class="highlighter-rouge">MULTISET</code> (Ankit Singhal)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1886">CALCITE-1886</a>]  Support <code class="highlighter-rouge">"LIMIT [offset,] row_count"</code>, per MySQL (Kaiwang Chen)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1864">CALCITE-1864</a>]  Allow <code class="language-plaintext highlighter-rouge">NULL</code> literal as argument</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1834">CALCITE-1834</a>]  Allow user-defined functions to have arguments that are <code class="language-plaintext highlighter-rouge">ARRAY</code> or <code class="language-plaintext highlighter-rouge">MULTISET</code> (Ankit Singhal)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1886">CALCITE-1886</a>]  Support <code class="language-plaintext highlighter-rouge">"LIMIT [offset,] row_count"</code>, per MySQL (Kaiwang Chen)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1845">CALCITE-1845</a>]  Quantified comparison predicates (SOME, ANY, ALL)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1709">CALCITE-1709</a>]  Support mixing table columns with extended columns in DML (Rajeshbabu Chintaguntla)</li>
 </ul>
@@ -4689,63 +4689,63 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1931">CALCITE-1931</a>]
-Change the return type of <code class="highlighter-rouge">RANK</code> and other aggregate functions.
-Various aggregate functions that used to return <code class="highlighter-rouge">INTEGER</code> now return other
-types: <code class="highlighter-rouge">RANK</code>, <code class="highlighter-rouge">DENSE_RANK</code>, and <code class="highlighter-rouge">NTILE</code> now return <code class="highlighter-rouge">BIGINT</code>;
-<code class="highlighter-rouge">CUME_DIST</code> and <code class="highlighter-rouge">PERCENT_RANK</code> now return <code class="highlighter-rouge">DOUBLE</code>.
+Change the return type of <code class="language-plaintext highlighter-rouge">RANK</code> and other aggregate functions.
+Various aggregate functions that used to return <code class="language-plaintext highlighter-rouge">INTEGER</code> now return other
+types: <code class="language-plaintext highlighter-rouge">RANK</code>, <code class="language-plaintext highlighter-rouge">DENSE_RANK</code>, and <code class="language-plaintext highlighter-rouge">NTILE</code> now return <code class="language-plaintext highlighter-rouge">BIGINT</code>;
+<code class="language-plaintext highlighter-rouge">CUME_DIST</code> and <code class="language-plaintext highlighter-rouge">PERCENT_RANK</code> now return <code class="language-plaintext highlighter-rouge">DOUBLE</code>.
 (<strong>This is a breaking change</strong>.)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1947">CALCITE-1947</a>]  Add <code class="highlighter-rouge">TIME</code>/<code class="highlighter-rouge">TIMESTAMP</code> with local time zone types to optimizer</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1972">CALCITE-1972</a>]  Create <code class="highlighter-rouge">.sha512</code> and <code class="highlighter-rouge">.md5</code> digests for release artifacts</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1941">CALCITE-1941</a>]  Refine interface <code class="highlighter-rouge">Schema#snapshot()</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1947">CALCITE-1947</a>]  Add <code class="language-plaintext highlighter-rouge">TIME</code>/<code class="language-plaintext highlighter-rouge">TIMESTAMP</code> with local time zone types to optimizer</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1972">CALCITE-1972</a>]  Create <code class="language-plaintext highlighter-rouge">.sha512</code> and <code class="language-plaintext highlighter-rouge">.md5</code> digests for release artifacts</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1941">CALCITE-1941</a>]  Refine interface <code class="language-plaintext highlighter-rouge">Schema#snapshot()</code>
 (<strong>This is a breaking change</strong>.)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1069">CALCITE-1069</a>]  In <code class="highlighter-rouge">Aggregate</code>, deprecate indicators, and allow <code class="highlighter-rouge">GROUPING</code> to be used as an aggregate function
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1069">CALCITE-1069</a>]  In <code class="language-plaintext highlighter-rouge">Aggregate</code>, deprecate indicators, and allow <code class="language-plaintext highlighter-rouge">GROUPING</code> to be used as an aggregate function
 (<strong>This is a breaking change</strong>.)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1969">CALCITE-1969</a>]  Annotate user-defined functions as strict and semi-strict</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1945">CALCITE-1945</a>]  Make return types of <code class="highlighter-rouge">AVG</code>, <code class="highlighter-rouge">VARIANCE</code>, <code class="highlighter-rouge">STDDEV</code> and <code class="highlighter-rouge">COVAR</code> customizable via RelDataTypeSystem</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1945">CALCITE-1945</a>]  Make return types of <code class="language-plaintext highlighter-rouge">AVG</code>, <code class="language-plaintext highlighter-rouge">VARIANCE</code>, <code class="language-plaintext highlighter-rouge">STDDEV</code> and <code class="language-plaintext highlighter-rouge">COVAR</code> customizable via RelDataTypeSystem</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1966">CALCITE-1966</a>]  Allow normal views to act as materialization table (Christian Beikov)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1953">CALCITE-1953</a>]  Rewrite <code class="highlighter-rouge">"NOT (x IS FALSE)" to "x IS NOT FALSE"; "x IS TRUE"</code> would be wrong</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1943">CALCITE-1943</a>]  Add back <code class="highlighter-rouge">NavigationExpander</code> and <code class="highlighter-rouge">NavigationReplacer</code> in <code class="highlighter-rouge">SqlValidatorImpl</code> (Dian Fu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1953">CALCITE-1953</a>]  Rewrite <code class="language-plaintext highlighter-rouge">"NOT (x IS FALSE)" to "x IS NOT FALSE"; "x IS TRUE"</code> would be wrong</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1943">CALCITE-1943</a>]  Add back <code class="language-plaintext highlighter-rouge">NavigationExpander</code> and <code class="language-plaintext highlighter-rouge">NavigationReplacer</code> in <code class="language-plaintext highlighter-rouge">SqlValidatorImpl</code> (Dian Fu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1963">CALCITE-1963</a>]  Upgrade checkstyle, and fix code to comply</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1944">CALCITE-1944</a>]  Window function applied to sub-query that returns dynamic star gets wrong plan (Volodymyr Vysotskyi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1954">CALCITE-1954</a>]  Column from outer join should be null, whether or not it is aliased</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1959">CALCITE-1959</a>]  Reduce the amount of metadata and <code class="highlighter-rouge">tableName</code> calls in Druid (Zain Humayun)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1930">CALCITE-1930</a>]  Fix <code class="highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> when there are multiple <code class="highlighter-rouge">AggregateCalls</code> referring to the same input</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1936">CALCITE-1936</a>]  Allow <code class="highlighter-rouge">ROUND()</code> and <code class="highlighter-rouge">TRUNCATE()</code> to take one operand, defaulting scale to 0</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1959">CALCITE-1959</a>]  Reduce the amount of metadata and <code class="language-plaintext highlighter-rouge">tableName</code> calls in Druid (Zain Humayun)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1930">CALCITE-1930</a>]  Fix <code class="language-plaintext highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> when there are multiple <code class="language-plaintext highlighter-rouge">AggregateCalls</code> referring to the same input</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1936">CALCITE-1936</a>]  Allow <code class="language-plaintext highlighter-rouge">ROUND()</code> and <code class="language-plaintext highlighter-rouge">TRUNCATE()</code> to take one operand, defaulting scale to 0</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1931">CALCITE-1931</a>]  Change the return type of RANK and other aggregate functions</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1932">CALCITE-1932</a>]  <code class="highlighter-rouge">Project.getPermutation()</code> should return null if not a permutation (e.g. repeated <code class="highlighter-rouge">InputRef</code>)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1925">CALCITE-1925</a>]  In <code class="highlighter-rouge">JaninoRelMetadataProvider</code>, cache null values (Ted Xu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1849">CALCITE-1849</a>]  Support <code class="highlighter-rouge">RexSubQuery</code> in <code class="highlighter-rouge">RelToSqlConverter</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1932">CALCITE-1932</a>]  <code class="language-plaintext highlighter-rouge">Project.getPermutation()</code> should return null if not a permutation (e.g. repeated <code class="language-plaintext highlighter-rouge">InputRef</code>)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1925">CALCITE-1925</a>]  In <code class="language-plaintext highlighter-rouge">JaninoRelMetadataProvider</code>, cache null values (Ted Xu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1849">CALCITE-1849</a>]  Support <code class="language-plaintext highlighter-rouge">RexSubQuery</code> in <code class="language-plaintext highlighter-rouge">RelToSqlConverter</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1909">CALCITE-1909</a>]  Output <code class="highlighter-rouge">rowType</code> of Match should include <code class="highlighter-rouge">PARTITION BY</code> and <code class="highlighter-rouge">ORDER BY</code> columns</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1929">CALCITE-1929</a>]  Deprecate class <code class="highlighter-rouge">RelDataTypeFactory.FieldInfoBuilder</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1909">CALCITE-1909</a>]  Output <code class="language-plaintext highlighter-rouge">rowType</code> of Match should include <code class="language-plaintext highlighter-rouge">PARTITION BY</code> and <code class="language-plaintext highlighter-rouge">ORDER BY</code> columns</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1929">CALCITE-1929</a>]  Deprecate class <code class="language-plaintext highlighter-rouge">RelDataTypeFactory.FieldInfoBuilder</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1895">CALCITE-1895</a>]  MSSQL’s SUBSTRING operator has different syntax (Chris Baynes)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1919">CALCITE-1919</a>]  <code class="highlighter-rouge">NullPointerException</code> when target in <code class="highlighter-rouge">ReflectiveSchema</code> belongs to root package (Lim Chee Hau)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1907">CALCITE-1907</a>]  Table function with 1 column gives <code class="highlighter-rouge">ClassCastException</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1919">CALCITE-1919</a>]  <code class="language-plaintext highlighter-rouge">NullPointerException</code> when target in <code class="language-plaintext highlighter-rouge">ReflectiveSchema</code> belongs to root package (Lim Chee Hau)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1907">CALCITE-1907</a>]  Table function with 1 column gives <code class="language-plaintext highlighter-rouge">ClassCastException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1841">CALCITE-1841</a>]  Create handlers for JDBC dialect-specific generated SQL (Chris Baynes)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1898">CALCITE-1898</a>]  <code class="highlighter-rouge">LIKE</code> must match ‘.’ (period) literally</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1898">CALCITE-1898</a>]  <code class="language-plaintext highlighter-rouge">LIKE</code> must match ‘.’ (period) literally</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1900">CALCITE-1900</a>]  Detect cyclic views and give useful error message</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1893">CALCITE-1893</a>]  Add MYSQL_5 conformance</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1883">CALCITE-1883</a>]  <code class="highlighter-rouge">HepPlanner</code> should force garbage collect whenever a root registered (Ted Xu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1889">CALCITE-1889</a>]  Accept compound identifiers in <code class="highlighter-rouge">SqlValidatorUtil.checkIdentifierListForDuplicates()</code> (Rajeshbabu Chintaguntla)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1883">CALCITE-1883</a>]  <code class="language-plaintext highlighter-rouge">HepPlanner</code> should force garbage collect whenever a root registered (Ted Xu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1889">CALCITE-1889</a>]  Accept compound identifiers in <code class="language-plaintext highlighter-rouge">SqlValidatorUtil.checkIdentifierListForDuplicates()</code> (Rajeshbabu Chintaguntla)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1881">CALCITE-1881</a>]  Can’t distinguish overloaded user-defined functions that have DATE and TIMESTAMP arguments (余启)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1803">CALCITE-1803</a>]  Push Project that follows Aggregate down to Druid (Junxian Wu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1828">CALCITE-1828</a>]  Push the FILTER clause into Druid as a Filtered Aggregator (Zain Humayun)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1871">CALCITE-1871</a>]  Nesting <code class="highlighter-rouge">LAST</code> within <code class="highlighter-rouge">PREV</code> is not parsed correctly for <code class="highlighter-rouge">MATCH_RECOGNIZE</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1871">CALCITE-1871</a>]  Nesting <code class="language-plaintext highlighter-rouge">LAST</code> within <code class="language-plaintext highlighter-rouge">PREV</code> is not parsed correctly for <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1877">CALCITE-1877</a>]  Move the Pig test data files into target for the test runtime</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1815">CALCITE-1815</a>]  Switch Pig adapter to depend on avatica-core instead of full avatica</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1826">CALCITE-1826</a>]  Generate dialect-specific SQL for <code class="highlighter-rouge">FLOOR</code> operator when in a <code class="highlighter-rouge">GROUP BY</code> (Chris Baynes)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1842">CALCITE-1842</a>]  <code class="highlighter-rouge">Sort.computeSelfCost()</code><code class="highlighter-rouge"> calls </code>makeCost()`` with arguments in wrong order (Junxian Wu)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1874">CALCITE-1874</a>]  In Frameworks, make <code class="highlighter-rouge">SqlToRelConverter</code> configurable</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1826">CALCITE-1826</a>]  Generate dialect-specific SQL for <code class="language-plaintext highlighter-rouge">FLOOR</code> operator when in a <code class="language-plaintext highlighter-rouge">GROUP BY</code> (Chris Baynes)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1842">CALCITE-1842</a>]  <code class="language-plaintext highlighter-rouge">Sort.computeSelfCost()</code><code class="language-plaintext highlighter-rouge"> calls </code>makeCost()`` with arguments in wrong order (Junxian Wu)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1874">CALCITE-1874</a>]  In Frameworks, make <code class="language-plaintext highlighter-rouge">SqlToRelConverter</code> configurable</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1873">CALCITE-1873</a>]  In a “GROUP BY ordinal” query, validator gives invalid “Expression is not being grouped” error if column has alias</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1833">CALCITE-1833</a>]  User-defined aggregate functions with more than one parameter (hzyuemeng1)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1860">CALCITE-1860</a>]  Duplicate null predicates cause <code class="highlighter-rouge">NullPointerException</code> in <code class="highlighter-rouge">RexUtil</code> (Ruidong Li)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1859">CALCITE-1859</a>]  NPE in validate method of <code class="highlighter-rouge">VolcanoPlanner</code>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1860">CALCITE-1860</a>]  Duplicate null predicates cause <code class="language-plaintext highlighter-rouge">NullPointerException</code> in <code class="language-plaintext highlighter-rouge">RexUtil</code> (Ruidong Li)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1859">CALCITE-1859</a>]  NPE in validate method of <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code>
 </li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1818">CALCITE-1818</a>]  Handle <code class="highlighter-rouge">SqlKind.DYNAMIC</code> (parameters) in <code class="highlighter-rouge">SqlImplementor</code> (Dylan Adams)</li>
-  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1856">CALCITE-1856</a>]  Add option <code class="highlighter-rouge">StructKind.PEEK_FIELDS_NO_EXPAND</code>, similar to <code class="highlighter-rouge">PEEK_FIELDS</code> but is not expanded in <code class="highlighter-rouge">"SELECT *"</code> (Shuyi Chen)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1818">CALCITE-1818</a>]  Handle <code class="language-plaintext highlighter-rouge">SqlKind.DYNAMIC</code> (parameters) in <code class="language-plaintext highlighter-rouge">SqlImplementor</code> (Dylan Adams)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1856">CALCITE-1856</a>]  Add option <code class="language-plaintext highlighter-rouge">StructKind.PEEK_FIELDS_NO_EXPAND</code>, similar to <code class="language-plaintext highlighter-rouge">PEEK_FIELDS</code> but is not expanded in <code class="language-plaintext highlighter-rouge">"SELECT *"</code> (Shuyi Chen)</li>
 </ul>
 
 <h4 id="site-1-14-0">Web site and documentation</h4>
@@ -4773,7 +4773,7 @@
 should prove useful for data processing systems relying on Calcite.</p>
 
 <p>In this release, we have also completed the work to
-<a href="https://issues.apache.org/jira/browse/CALCITE-1570">support the <code class="highlighter-rouge">MATCH_RECOGNIZE</code> clause</a>
+<a href="https://issues.apache.org/jira/browse/CALCITE-1570">support the <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> clause</a>
 used in complex-event processing (CEP).</p>
 
 <p>In addition, more progress has been made for the different adapters.
@@ -4792,43 +4792,43 @@
 using Oracle JDK 1.7, 1.8, 9;
 Guava versions 14.0 to 21.0;
 Druid version 0.10.0;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <h4 id="new-features-1-13-0">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1570">CALCITE-1570</a>]
-Add <code class="highlighter-rouge">MATCH_RECOGNIZE</code> operator, for event pattern-matching
+Add <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> operator, for event pattern-matching
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1647">CALCITE-1647</a>]
-Classifier and <code class="highlighter-rouge">match_number</code> syntax support for <code class="highlighter-rouge">MATCH_RECOGNIZE</code>
+Classifier and <code class="language-plaintext highlighter-rouge">match_number</code> syntax support for <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1646">CALCITE-1646</a>]
-Partition by and order by syntax support for <code class="highlighter-rouge">MATCH_RECOGNIZE</code> (Zhiqiang-He)</li>
+Partition by and order by syntax support for <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> (Zhiqiang-He)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1645">CALCITE-1645</a>]
-Row per match syntax support for <code class="highlighter-rouge">MATCH_RECOGNIZE</code> (Zhiqiang-He)</li>
+Row per match syntax support for <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> (Zhiqiang-He)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1644">CALCITE-1644</a>]
-Subset clause syntax support for <code class="highlighter-rouge">MATCH_RECOGNIZE</code> (Zhiqiang-He)</li>
+Subset clause syntax support for <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> (Zhiqiang-He)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1643">CALCITE-1643</a>]
-<code class="highlighter-rouge">AFTER MATCH</code> sub-clause of <code class="highlighter-rouge">MATCH_RECOGNIZE</code> clause (Zhiqiang-He)</li>
+<code class="language-plaintext highlighter-rouge">AFTER MATCH</code> sub-clause of <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> clause (Zhiqiang-He)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1642">CALCITE-1642</a>]
-Support <code class="highlighter-rouge">MEASURES</code> clause in <code class="highlighter-rouge">MATCH_RECOGNIZE</code> (Zhiqiang-He)</li>
+Support <code class="language-plaintext highlighter-rouge">MEASURES</code> clause in <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> (Zhiqiang-He)</li>
     </ul>
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1853">CALCITE-1853</a>]
 Push Count distinct into Druid when approximate results are acceptable (Zain Humayun)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1829">CALCITE-1829</a>]
-Add <code class="highlighter-rouge">TIME</code>/<code class="highlighter-rouge">TIMESTAMP</code>/<code class="highlighter-rouge">DATE</code> datatype handling to <code class="highlighter-rouge">RexImplicationChecker</code>
+Add <code class="language-plaintext highlighter-rouge">TIME</code>/<code class="language-plaintext highlighter-rouge">TIMESTAMP</code>/<code class="language-plaintext highlighter-rouge">DATE</code> datatype handling to <code class="language-plaintext highlighter-rouge">RexImplicationChecker</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1613">CALCITE-1613</a>]
-Implement <code class="highlighter-rouge">EXTRACT</code> for time unit <code class="highlighter-rouge">DOW</code>, <code class="highlighter-rouge">DOY</code>; and fix <code class="highlighter-rouge">CENTURY</code>
+Implement <code class="language-plaintext highlighter-rouge">EXTRACT</code> for time unit <code class="language-plaintext highlighter-rouge">DOW</code>, <code class="language-plaintext highlighter-rouge">DOY</code>; and fix <code class="language-plaintext highlighter-rouge">CENTURY</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1807">CALCITE-1807</a>]
 Upgrade to Avatica 1.10</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1802">CALCITE-1802</a>]
 Add post-aggregation step for Union in materialized view rewriting</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1795">CALCITE-1795</a>]
-Extend materialized view rewriting to produce rewritings using <code class="highlighter-rouge">Union</code> operators</li>
+Extend materialized view rewriting to produce rewritings using <code class="language-plaintext highlighter-rouge">Union</code> operators</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1797">CALCITE-1797</a>]
 Support view partial rewriting in aggregate materialized view rewriting</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1791">CALCITE-1791</a>]
@@ -4836,16 +4836,16 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1731">CALCITE-1731</a>]
 Rewriting of queries using materialized views with joins and aggregates</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1780">CALCITE-1780</a>]
-Add <code class="highlighter-rouge">required Order</code> and <code class="highlighter-rouge">requiresOver</code> parameters to the constructor of <code class="highlighter-rouge">SqlUserDefinedAggregate Function</code> (SunJincheng)</li>
+Add <code class="language-plaintext highlighter-rouge">required Order</code> and <code class="language-plaintext highlighter-rouge">requiresOver</code> parameters to the constructor of <code class="language-plaintext highlighter-rouge">SqlUserDefinedAggregate Function</code> (SunJincheng)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1306">CALCITE-1306</a>]
-Allow <code class="highlighter-rouge">GROUP BY</code> and <code class="highlighter-rouge">HAVING</code> to reference <code class="highlighter-rouge">SELECT</code> expressions by ordinal and alias (Rajeshbabu Chintaguntla)</li>
+Allow <code class="language-plaintext highlighter-rouge">GROUP BY</code> and <code class="language-plaintext highlighter-rouge">HAVING</code> to reference <code class="language-plaintext highlighter-rouge">SELECT</code> expressions by ordinal and alias (Rajeshbabu Chintaguntla)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1781">CALCITE-1781</a>]
-Allow expression in <code class="highlighter-rouge">CUBE</code> and <code class="highlighter-rouge">ROLLUP</code>
+Allow expression in <code class="language-plaintext highlighter-rouge">CUBE</code> and <code class="language-plaintext highlighter-rouge">ROLLUP</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1771">CALCITE-1771</a>]
 Upgrade to Druid 0.10.0 (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1772">CALCITE-1772</a>]
-Add a hook to allow <code class="highlighter-rouge">RelNode</code> expressions to be executed by JDBC driver</li>
+Add a hook to allow <code class="language-plaintext highlighter-rouge">RelNode</code> expressions to be executed by JDBC driver</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1766">CALCITE-1766</a>]
 Support system functions having no args with parenthesis too (Ankit Singhal)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1760">CALCITE-1760</a>]
@@ -4859,15 +4859,15 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-476">CALCITE-476</a>]
 Support distinct aggregates in window functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1738">CALCITE-1738</a>]
-Support <code class="highlighter-rouge">CAST</code> of literal values in filters pushed to Druid (Remus Rusanu)</li>
+Support <code class="language-plaintext highlighter-rouge">CAST</code> of literal values in filters pushed to Druid (Remus Rusanu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1758">CALCITE-1758</a>]
-Push to Druid <code class="highlighter-rouge">OrderBy</code>/<code class="highlighter-rouge">Limit</code> operation over time dimension and additional columns (Slim Bouguerra)</li>
+Push to Druid <code class="language-plaintext highlighter-rouge">OrderBy</code>/<code class="language-plaintext highlighter-rouge">Limit</code> operation over time dimension and additional columns (Slim Bouguerra)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1707">CALCITE-1707</a>]
-Push <code class="highlighter-rouge">Extraction</code> filter on <code class="highlighter-rouge">Year</code>/<code class="highlighter-rouge">Month</code>/<code class="highlighter-rouge">Day</code> to druid (Slim Bouguerra)</li>
+Push <code class="language-plaintext highlighter-rouge">Extraction</code> filter on <code class="language-plaintext highlighter-rouge">Year</code>/<code class="language-plaintext highlighter-rouge">Month</code>/<code class="language-plaintext highlighter-rouge">Day</code> to druid (Slim Bouguerra)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1725">CALCITE-1725</a>]
 Push project aggregate of time extract to druid (Slim Bouguerra)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1747">CALCITE-1747</a>]
-<code class="highlighter-rouge">RelMdColumnUniqueness</code> for <code class="highlighter-rouge">HepRelVertex</code>
+<code class="language-plaintext highlighter-rouge">RelMdColumnUniqueness</code> for <code class="language-plaintext highlighter-rouge">HepRelVertex</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1749">CALCITE-1749</a>]
 Push filter conditions partially into Druid</li>
@@ -4885,54 +4885,54 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1848">CALCITE-1848</a>]
 Rename MySource to FileSource (Darion Yaphet)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1852">CALCITE-1852</a>]
-Fix for <code class="highlighter-rouge">UnionMergeRule</code> to deal correctly with <code class="highlighter-rouge">EXCEPT</code>
+Fix for <code class="language-plaintext highlighter-rouge">UnionMergeRule</code> to deal correctly with <code class="language-plaintext highlighter-rouge">EXCEPT</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1850">CALCITE-1850</a>]
-Extend <code class="highlighter-rouge">UnionMergeRule</code> to deal with more than 2 branches (Pengcheng Xiong)</li>
+Extend <code class="language-plaintext highlighter-rouge">UnionMergeRule</code> to deal with more than 2 branches (Pengcheng Xiong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1805">CALCITE-1805</a>]
-Druid adapter incorrectly pushes down <code class="highlighter-rouge">COUNT(c)</code>; Druid only supports <code class="highlighter-rouge">COUNT(*)</code>
+Druid adapter incorrectly pushes down <code class="language-plaintext highlighter-rouge">COUNT(c)</code>; Druid only supports <code class="language-plaintext highlighter-rouge">COUNT(*)</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1846">CALCITE-1846</a>]
 Metadata pulled up predicates should skip non-deterministic calls (Ted Xu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1819">CALCITE-1819</a>]
-Druid Adapter does not push the boolean operator <code class="highlighter-rouge">&lt;&gt;</code> as a filter correctly (Zain Humayun)</li>
+Druid Adapter does not push the boolean operator <code class="language-plaintext highlighter-rouge">&lt;&gt;</code> as a filter correctly (Zain Humayun)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1798">CALCITE-1798</a>]
-In JDBC adapter, generate dialect-specific SQL for <code class="highlighter-rouge">FLOOR</code> operator (Chris Baynes)</li>
+In JDBC adapter, generate dialect-specific SQL for <code class="language-plaintext highlighter-rouge">FLOOR</code> operator (Chris Baynes)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1812">CALCITE-1812</a>]
-Provide <code class="highlighter-rouge">RelMetadataQuery</code> from planner to rules and invalidate in <code class="highlighter-rouge">transformTo</code> (Remus Rusanu)</li>
+Provide <code class="language-plaintext highlighter-rouge">RelMetadataQuery</code> from planner to rules and invalidate in <code class="language-plaintext highlighter-rouge">transformTo</code> (Remus Rusanu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1804">CALCITE-1804</a>]
-Cannot assign <code class="highlighter-rouge">NOT NULL</code> array to <code class="highlighter-rouge">NULLABLE</code> array (Ankit Singhal)</li>
+Cannot assign <code class="language-plaintext highlighter-rouge">NOT NULL</code> array to <code class="language-plaintext highlighter-rouge">NULLABLE</code> array (Ankit Singhal)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1810">CALCITE-1810</a>]
-Allow <code class="highlighter-rouge">NULL</code> for <code class="highlighter-rouge">ARRAY</code> constructor (Ankit Singhal)</li>
+Allow <code class="language-plaintext highlighter-rouge">NULL</code> for <code class="language-plaintext highlighter-rouge">ARRAY</code> constructor (Ankit Singhal)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1830">CALCITE-1830</a>]
-<code class="highlighter-rouge">ProcessBuilder</code> is security sensitive; move it to test suite to prevent accidents</li>
+<code class="language-plaintext highlighter-rouge">ProcessBuilder</code> is security sensitive; move it to test suite to prevent accidents</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1816">CALCITE-1816</a>]
-<code class="highlighter-rouge">JaninoRelMetadataProvider</code> generated classes leak ACTIVE nodes on exception (Remus Rusanu)</li>
+<code class="language-plaintext highlighter-rouge">JaninoRelMetadataProvider</code> generated classes leak ACTIVE nodes on exception (Remus Rusanu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1690">CALCITE-1690</a>]
-Calcite timestamp literals cannot express precision above millisecond, <code class="highlighter-rouge">TIMESTAMP(3)</code>
+Calcite timestamp literals cannot express precision above millisecond, <code class="language-plaintext highlighter-rouge">TIMESTAMP(3)</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1664">CALCITE-1664</a>]
-<code class="highlighter-rouge">CAST(&lt;string&gt; as TIMESTAMP)</code> adds part of sub-second fraction to the value</li>
+<code class="language-plaintext highlighter-rouge">CAST(&lt;string&gt; as TIMESTAMP)</code> adds part of sub-second fraction to the value</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1742">CALCITE-1742</a>]
 Create a read-consistent view of CalciteSchema for each statement compilation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1800">CALCITE-1800</a>]
-JDBC adapter fails on query with <code class="highlighter-rouge">UNION</code> in <code class="highlighter-rouge">FROM</code> clause (Viktor Batytskyi, Minji Kim)</li>
+JDBC adapter fails on query with <code class="language-plaintext highlighter-rouge">UNION</code> in <code class="language-plaintext highlighter-rouge">FROM</code> clause (Viktor Batytskyi, Minji Kim)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1788">CALCITE-1788</a>]
 Simplify handling of position in the parser</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1782">CALCITE-1782</a>]
-<code class="highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> should work on <code class="highlighter-rouge">Aggregate</code> instead of <code class="highlighter-rouge">LogicalAggregate</code> (Haohui Mai)</li>
+<code class="language-plaintext highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> should work on <code class="language-plaintext highlighter-rouge">Aggregate</code> instead of <code class="language-plaintext highlighter-rouge">LogicalAggregate</code> (Haohui Mai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1293">CALCITE-1293</a>]
-Bad code generated when argument to <code class="highlighter-rouge">COUNT(DISTINCT)</code> is a <code class="highlighter-rouge">GROUP BY</code> column</li>
+Bad code generated when argument to <code class="language-plaintext highlighter-rouge">COUNT(DISTINCT)</code> is a <code class="language-plaintext highlighter-rouge">GROUP BY</code> column</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1770">CALCITE-1770</a>]
-<code class="highlighter-rouge">CAST(NULL AS ...)</code> gives NPE (Slim Bouguerra)</li>
+<code class="language-plaintext highlighter-rouge">CAST(NULL AS ...)</code> gives NPE (Slim Bouguerra)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1777">CALCITE-1777</a>]
-<code class="highlighter-rouge">WHERE FALSE</code> causes <code class="highlighter-rouge">AssertionError</code> (Slim Bouguerra)</li>
+<code class="language-plaintext highlighter-rouge">WHERE FALSE</code> causes <code class="language-plaintext highlighter-rouge">AssertionError</code> (Slim Bouguerra)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1778">CALCITE-1778</a>]
-Query with <code class="highlighter-rouge">WHERE CASE</code> throws <code class="highlighter-rouge">AssertionError</code> “Cast for just nullability not allowed”</li>
+Query with <code class="language-plaintext highlighter-rouge">WHERE CASE</code> throws <code class="language-plaintext highlighter-rouge">AssertionError</code> “Cast for just nullability not allowed”</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1773">CALCITE-1773</a>]
-Add Test sql validator test for Pattern skip syntax in <code class="highlighter-rouge">MATCH_RECOGNIZE</code> (Zhiqiang-He)</li>
+Add Test sql validator test for Pattern skip syntax in <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> (Zhiqiang-He)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1761">CALCITE-1761</a>]
-<code class="highlighter-rouge">TUMBLE</code>/<code class="highlighter-rouge">HOP</code>/<code class="highlighter-rouge">SESSION_START</code>/<code class="highlighter-rouge">END</code> do not resolve time field correctly</li>
+<code class="language-plaintext highlighter-rouge">TUMBLE</code>/<code class="language-plaintext highlighter-rouge">HOP</code>/<code class="language-plaintext highlighter-rouge">SESSION_START</code>/<code class="language-plaintext highlighter-rouge">END</code> do not resolve time field correctly</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1765">CALCITE-1765</a>]
 Druid adapter fail when the extract granularity is not supported (Slim Bouguerra)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1767">CALCITE-1767</a>]
@@ -4940,17 +4940,17 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1764">CALCITE-1764</a>]
 Adding sort ordering type for druid sort json field (Slim Bouguerra)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-715">CALCITE-715</a>]
-Add <code class="highlighter-rouge">PERIOD</code> type constructor and period operators (<code class="highlighter-rouge">CONTAINS</code>, <code class="highlighter-rouge">PRECEDES</code>, etc.)</li>
+Add <code class="language-plaintext highlighter-rouge">PERIOD</code> type constructor and period operators (<code class="language-plaintext highlighter-rouge">CONTAINS</code>, <code class="language-plaintext highlighter-rouge">PRECEDES</code>, etc.)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1456">CALCITE-1456</a>]
-Change <code class="highlighter-rouge">SubstitutionVisitor</code> to use generic <code class="highlighter-rouge">RelBuilder</code> instead of Logical instances of the operators when possible</li>
+Change <code class="language-plaintext highlighter-rouge">SubstitutionVisitor</code> to use generic <code class="language-plaintext highlighter-rouge">RelBuilder</code> instead of Logical instances of the operators when possible</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1763">CALCITE-1763</a>]
 Recognize lossless casts in join/aggregate materialized view rewriting rule</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1639">CALCITE-1639</a>]
-<code class="highlighter-rouge">TIMESTAMPADD(MONTH, ...)</code> should return last day of month if the day overflows</li>
+<code class="language-plaintext highlighter-rouge">TIMESTAMPADD(MONTH, ...)</code> should return last day of month if the day overflows</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1754">CALCITE-1754</a>]
-In Csv adapter, convert <code class="highlighter-rouge">DATE</code> and <code class="highlighter-rouge">TIME</code> values to <code class="highlighter-rouge">int</code>, and <code class="highlighter-rouge">TIMESTAMP</code> values to <code class="highlighter-rouge">long</code> (Hongbin Ma)</li>
+In Csv adapter, convert <code class="language-plaintext highlighter-rouge">DATE</code> and <code class="language-plaintext highlighter-rouge">TIME</code> values to <code class="language-plaintext highlighter-rouge">int</code>, and <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> values to <code class="language-plaintext highlighter-rouge">long</code> (Hongbin Ma)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1751">CALCITE-1751</a>]
-<code class="highlighter-rouge">PigRelBuilderStyleTest</code> test cases are flapping</li>
+<code class="language-plaintext highlighter-rouge">PigRelBuilderStyleTest</code> test cases are flapping</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1750">CALCITE-1750</a>]
 Fix unit test failures when the path to the repository contains spaces</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1724">CALCITE-1724</a>]
@@ -4958,11 +4958,11 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1734">CALCITE-1734</a>]
 Select query result not parsed correctly with druid 0.9.2 (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1732">CALCITE-1732</a>]
-<code class="highlighter-rouge">IndexOutOfBoundsException</code> when using <code class="highlighter-rouge">LATERAL TABLE</code> with more than one field (Godfrey He)</li>
+<code class="language-plaintext highlighter-rouge">IndexOutOfBoundsException</code> when using <code class="language-plaintext highlighter-rouge">LATERAL TABLE</code> with more than one field (Godfrey He)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1722">CALCITE-1722</a>]
-Druid adapter uses un-scaled value of <code class="highlighter-rouge">DECIMAL</code> literals (Slim Bouguerra)</li>
+Druid adapter uses un-scaled value of <code class="language-plaintext highlighter-rouge">DECIMAL</code> literals (Slim Bouguerra)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1723">CALCITE-1723</a>]
-Match <code class="highlighter-rouge">DruidProjectFilterTransposeRule</code> against <code class="highlighter-rouge">DruidQuery</code> (Nishant Bangarwa)</li>
+Match <code class="language-plaintext highlighter-rouge">DruidProjectFilterTransposeRule</code> against <code class="language-plaintext highlighter-rouge">DruidQuery</code> (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1714">CALCITE-1714</a>]
 Do not push group by on druid metrics fields (Slim Bouguerra)</li>
 </ul>
@@ -4975,7 +4975,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1854">CALCITE-1854</a>]
 Fix value range of TINYINT in documentation (James Xu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1827">CALCITE-1827</a>]
-Document <code class="highlighter-rouge">TIMESTAMPADD</code>, <code class="highlighter-rouge">TIMESTAMPDIFF</code> functions (SunJincheng)</li>
+Document <code class="language-plaintext highlighter-rouge">TIMESTAMPADD</code>, <code class="language-plaintext highlighter-rouge">TIMESTAMPDIFF</code> functions (SunJincheng)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1796">CALCITE-1796</a>]
 Update materialized views documentation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1566">CALCITE-1566</a>]
@@ -4991,8 +4991,8 @@
 general improvements to the Druid adapter,
 more helpful error messages if you get a table or column name wrong,
 improved the plans for correlated sub-queries,
-support for <code class="highlighter-rouge">TUMBLE</code>, <code class="highlighter-rouge">HOP</code> and <code class="highlighter-rouge">SESSION</code> window functions in streaming and regular queries,
-experimental support for <code class="highlighter-rouge">MATCH_RECOGNIZE</code> clause for complex-event processing (CEP),
+support for <code class="language-plaintext highlighter-rouge">TUMBLE</code>, <code class="language-plaintext highlighter-rouge">HOP</code> and <code class="language-plaintext highlighter-rouge">SESSION</code> window functions in streaming and regular queries,
+experimental support for <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> clause for complex-event processing (CEP),
 several new built-in functions to comply with the ODBC/JDBC standard.</p>
 
 <p>Compatibility: This release is tested
@@ -5000,7 +5000,7 @@
 using Oracle JDK 1.7, 1.8, 9;
 Guava versions 14.0 to 21.0;
 Druid version 0.9.1.1;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <h3 id="new-features-1-12-0">New features</h3>
 
@@ -5008,46 +5008,46 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1666">CALCITE-1666</a>]
 Support for modifiable views with extended columns (Kevin Liew)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1655">CALCITE-1655</a>]
-Druid adapter: add <code class="highlighter-rouge">IN</code> filter (Slim Bouguerra)</li>
+Druid adapter: add <code class="language-plaintext highlighter-rouge">IN</code> filter (Slim Bouguerra)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1641">CALCITE-1641</a>]
-Add parser and validator support for <code class="highlighter-rouge">MATCH_RECOGNIZE</code>, a new clause for
+Add parser and validator support for <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code>, a new clause for
 complex-event processing (CEP) (Zhiqiang-He)
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1686">CALCITE-1686</a>]
-Only allow <code class="highlighter-rouge">FINAL</code> and other functions inside <code class="highlighter-rouge">MATCH_RECOGNIZE</code> (Zhiqiang-He)</li>
+Only allow <code class="language-plaintext highlighter-rouge">FINAL</code> and other functions inside <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> (Zhiqiang-He)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1689">CALCITE-1689</a>]
-Remove <code class="highlighter-rouge">PATTERN_DEFINE_AS</code> in SqlStdOperatorTable; <code class="highlighter-rouge">MATCH_RECOGNIZE</code> now uses
-<code class="highlighter-rouge">AS</code> (Zhiqiang-He)</li>
+Remove <code class="language-plaintext highlighter-rouge">PATTERN_DEFINE_AS</code> in SqlStdOperatorTable; <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> now uses
+<code class="language-plaintext highlighter-rouge">AS</code> (Zhiqiang-He)</li>
     </ul>
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1668">CALCITE-1668</a>]
-Simplify <code class="highlighter-rouge">1 = 1</code> to <code class="highlighter-rouge">TRUE</code>, <code class="highlighter-rouge">1 &gt; 2</code> to <code class="highlighter-rouge">FALSE</code> (Kevin Risden)</li>
+Simplify <code class="language-plaintext highlighter-rouge">1 = 1</code> to <code class="language-plaintext highlighter-rouge">TRUE</code>, <code class="language-plaintext highlighter-rouge">1 &gt; 2</code> to <code class="language-plaintext highlighter-rouge">FALSE</code> (Kevin Risden)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1598">CALCITE-1598</a>]
 Pig adapter (Eli Levine)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1661">CALCITE-1661</a>]
-Druid adapter: Support aggregation functions on <code class="highlighter-rouge">DECIMAL</code> columns</li>
+Druid adapter: Support aggregation functions on <code class="language-plaintext highlighter-rouge">DECIMAL</code> columns</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1615">CALCITE-1615</a>]
-Support <code class="highlighter-rouge">HOP</code> and <code class="highlighter-rouge">SESSION</code> functions in the <code class="highlighter-rouge">GROUP BY</code> clause
+Support <code class="language-plaintext highlighter-rouge">HOP</code> and <code class="language-plaintext highlighter-rouge">SESSION</code> functions in the <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause
 (Julian Hyde and Haohui Mai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1494">CALCITE-1494</a>]
 More efficient plan for correlated sub-queries, omitting value-generating
 scans where possible</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1638">CALCITE-1638</a>]
-Simplify <code class="highlighter-rouge">$x = $x</code> to <code class="highlighter-rouge">$x is not null</code>
+Simplify <code class="language-plaintext highlighter-rouge">$x = $x</code> to <code class="language-plaintext highlighter-rouge">$x is not null</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-884">CALCITE-884</a>]
 File adapter (Henry Olson)
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1704">CALCITE-1704</a>]
-Execute queries on CSV files using simple <code class="highlighter-rouge">sqlline</code> command</li>
+Execute queries on CSV files using simple <code class="language-plaintext highlighter-rouge">sqlline</code> command</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1676">CALCITE-1676</a>]
 Scan directory for .csv, .json and .gz files</li>
       <li>Allow multiple Calcite columns to be derived from one HTML column,
 e.g. Location → Lat, Lon</li>
-      <li>Improved pattern match: added <code class="highlighter-rouge">matchSeq</code> to allow selection of
+      <li>Improved pattern match: added <code class="language-plaintext highlighter-rouge">matchSeq</code> to allow selection of
 <i>n</i>th match</li>
       <li>Add replace patterns to cell parsing logic</li>
-      <li>Add handling for tables without <code class="highlighter-rouge">&lt;TH&gt;</code> elements</li>
+      <li>Add handling for tables without <code class="language-plaintext highlighter-rouge">&lt;TH&gt;</code> elements</li>
       <li>Unit tests using local files (URL tests are contingent on network
 access)</li>
       <li>Ability to parse HTML, CSV and JSON from local files</li>
@@ -5058,22 +5058,22 @@
     </ul>
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1652">CALCITE-1652</a>]
-Allow <code class="highlighter-rouge">GROUPING</code> function to have multiple arguments, like <code class="highlighter-rouge">GROUPING_ID</code>
+Allow <code class="language-plaintext highlighter-rouge">GROUPING</code> function to have multiple arguments, like <code class="language-plaintext highlighter-rouge">GROUPING_ID</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1634">CALCITE-1634</a>]
-Make <code class="highlighter-rouge">RelBuilder.distinct</code> no-op if input is already distinct; use it in
-<code class="highlighter-rouge">RelDecorrelator</code>
+Make <code class="language-plaintext highlighter-rouge">RelBuilder.distinct</code> no-op if input is already distinct; use it in
+<code class="language-plaintext highlighter-rouge">RelDecorrelator</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1635">CALCITE-1635</a>]
-Add <code class="highlighter-rouge">MinRowCount</code> metadata</li>
+Add <code class="language-plaintext highlighter-rouge">MinRowCount</code> metadata</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1628">CALCITE-1628</a>]
-Add an alternative match pattern for <code class="highlighter-rouge">SemiJoinRule</code>
+Add an alternative match pattern for <code class="language-plaintext highlighter-rouge">SemiJoinRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1618">CALCITE-1618</a>]
-<code class="highlighter-rouge">SortProjectTransposeRule</code> should check for monotonicity preserving <code class="highlighter-rouge">CAST</code>
+<code class="language-plaintext highlighter-rouge">SortProjectTransposeRule</code> should check for monotonicity preserving <code class="language-plaintext highlighter-rouge">CAST</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1510">CALCITE-1510</a>]
-In <code class="highlighter-rouge">INSERT</code>/<code class="highlighter-rouge">UPSERT</code> without an explicit target column list, allow fewer source
+In <code class="language-plaintext highlighter-rouge">INSERT</code>/<code class="language-plaintext highlighter-rouge">UPSERT</code> without an explicit target column list, allow fewer source
 columns than table (Kevin Liew)
     <ul>
       <li>Check for default value only when target field is null
@@ -5081,16 +5081,16 @@
     </ul>
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1603">CALCITE-1603</a>]
-Support <code class="highlighter-rouge">TUMBLE</code> window function in the <code class="highlighter-rouge">GROUP BY</code> clause (Julian Hyde and
+Support <code class="language-plaintext highlighter-rouge">TUMBLE</code> window function in the <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause (Julian Hyde and
 Haohui Mai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1606">CALCITE-1606</a>]
 Add datetime scalar functions (Laurent Goujon)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1604">CALCITE-1604</a>]
-Add JDBC/ODBC scalar functions <code class="highlighter-rouge">DATABASE</code>, <code class="highlighter-rouge">IFNULL</code>, <code class="highlighter-rouge">USER</code> (Laurent Goujon)</li>
+Add JDBC/ODBC scalar functions <code class="language-plaintext highlighter-rouge">DATABASE</code>, <code class="language-plaintext highlighter-rouge">IFNULL</code>, <code class="language-plaintext highlighter-rouge">USER</code> (Laurent Goujon)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1549">CALCITE-1549</a>]
 More helpful error message when schema, table or column not found</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-420">CALCITE-420</a>]
-Add <code class="highlighter-rouge">REPLACE</code> function, callable with and without JDBC escape syntax (Riccardo
+Add <code class="language-plaintext highlighter-rouge">REPLACE</code> function, callable with and without JDBC escape syntax (Riccardo
 Tommasini)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1557">CALCITE-1557</a>]
 Add numeric scalar functions (Laurent Goujon)</li>
@@ -5106,147 +5106,147 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1715">CALCITE-1715</a>]
 Downgrade to Guava 19.0 to fix Cassandra incompatibility</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1706">CALCITE-1706</a>]
-Disable <code class="highlighter-rouge">DruidAggregateFilterTransposeRule</code>, because it causes fine-grained
+Disable <code class="language-plaintext highlighter-rouge">DruidAggregateFilterTransposeRule</code>, because it causes fine-grained
 aggregations to be pushed to Druid</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1695">CALCITE-1695</a>]
-Add class <code class="highlighter-rouge">RexSimplify</code>, providing an explicit <code class="highlighter-rouge">RexExecutor</code> for methods to
-simplify <code class="highlighter-rouge">RexNode</code>s</li>
+Add class <code class="language-plaintext highlighter-rouge">RexSimplify</code>, providing an explicit <code class="language-plaintext highlighter-rouge">RexExecutor</code> for methods to
+simplify <code class="language-plaintext highlighter-rouge">RexNode</code>s</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1694">CALCITE-1694</a>]
 Pig adapter: Use the shaded Avatica dependency instead</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1561">CALCITE-1561</a>]
-Make <code class="highlighter-rouge">PigTest</code> cluster aware of data files; hopefully this will prevent
+Make <code class="language-plaintext highlighter-rouge">PigTest</code> cluster aware of data files; hopefully this will prevent
 intermittent test failures (Eli Levine)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1696">CALCITE-1696</a>]
-Support <code class="highlighter-rouge">RexLocalRef</code> for <code class="highlighter-rouge">EXPLAIN PLAN AS JSON</code>
+Support <code class="language-plaintext highlighter-rouge">RexLocalRef</code> for <code class="language-plaintext highlighter-rouge">EXPLAIN PLAN AS JSON</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1683">CALCITE-1683</a>]
-Druid-specific rules to transpose <code class="highlighter-rouge">Filter</code> with other relations
+Druid-specific rules to transpose <code class="language-plaintext highlighter-rouge">Filter</code> with other relations
 (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1684">CALCITE-1684</a>]
-Change default precision of <code class="highlighter-rouge">VARCHAR</code> and <code class="highlighter-rouge">VARBINARY</code> types from 1 to
+Change default precision of <code class="language-plaintext highlighter-rouge">VARCHAR</code> and <code class="language-plaintext highlighter-rouge">VARBINARY</code> types from 1 to
 “unspecified” (Kevin Liew)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1691">CALCITE-1691</a>]
-<code class="highlighter-rouge">ClassCastException</code> in <code class="highlighter-rouge">RelOptUtil.containsNullableFields</code>, attempting to
-convert executor to <code class="highlighter-rouge">RexExecutorImpl</code>
+<code class="language-plaintext highlighter-rouge">ClassCastException</code> in <code class="language-plaintext highlighter-rouge">RelOptUtil.containsNullableFields</code>, attempting to
+convert executor to <code class="language-plaintext highlighter-rouge">RexExecutorImpl</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1688">CALCITE-1688</a>]
-Infinite loop during materialization substitution if query contains <code class="highlighter-rouge">Union</code>,
-<code class="highlighter-rouge">Minus</code> or <code class="highlighter-rouge">Intersect</code>
+Infinite loop during materialization substitution if query contains <code class="language-plaintext highlighter-rouge">Union</code>,
+<code class="language-plaintext highlighter-rouge">Minus</code> or <code class="language-plaintext highlighter-rouge">Intersect</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1665">CALCITE-1665</a>]
-<code class="highlighter-rouge">HAVING</code> support in <code class="highlighter-rouge">RelToSqlConverter</code> (Zhiqiang He)</li>
+<code class="language-plaintext highlighter-rouge">HAVING</code> support in <code class="language-plaintext highlighter-rouge">RelToSqlConverter</code> (Zhiqiang He)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1673">CALCITE-1673</a>]
-In CSV adapter, query with <code class="highlighter-rouge">ORDER BY</code> or <code class="highlighter-rouge">GROUP BY</code> on <code class="highlighter-rouge">TIMESTAMP</code> column
+In CSV adapter, query with <code class="language-plaintext highlighter-rouge">ORDER BY</code> or <code class="language-plaintext highlighter-rouge">GROUP BY</code> on <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> column
 throws CompileException (Gangadhar Kairi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1674">CALCITE-1674</a>]
-<code class="highlighter-rouge">LIKE</code> does not match value that contains newline (Mark Payne)</li>
+<code class="language-plaintext highlighter-rouge">LIKE</code> does not match value that contains newline (Mark Payne)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1675">CALCITE-1675</a>]
-Two-level column name cannot be resolved in <code class="highlighter-rouge">ORDER BY</code>
+Two-level column name cannot be resolved in <code class="language-plaintext highlighter-rouge">ORDER BY</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1667">CALCITE-1667</a>]
 Forbid calls to JDK APIs that use the default locale, time zone or character
 set</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1656">CALCITE-1656</a>]
-Improve cost function in <code class="highlighter-rouge">DruidQuery</code> to encourage early column pruning
+Improve cost function in <code class="language-plaintext highlighter-rouge">DruidQuery</code> to encourage early column pruning
 (Nishant Bangarwa)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1664">CALCITE-1664</a>]
-<code class="highlighter-rouge">CAST('&lt;string&gt;' as TIMESTAMP)</code> wrongly adds part of sub-second fraction to the
+<code class="language-plaintext highlighter-rouge">CAST('&lt;string&gt;' as TIMESTAMP)</code> wrongly adds part of sub-second fraction to the
 value</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1659">CALCITE-1659</a>]
-Simplifying <code class="highlighter-rouge">CAST('YYYY-MM-DD hh:mm:ss.SSS' as TIMESTAMP)</code> should round the
+Simplifying <code class="language-plaintext highlighter-rouge">CAST('YYYY-MM-DD hh:mm:ss.SSS' as TIMESTAMP)</code> should round the
 sub-second fraction (Remus Rusanu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1439">CALCITE-1439</a>]
 Handle errors during constant reduction</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1653">CALCITE-1653</a>]
-Pass an expression executor to <code class="highlighter-rouge">RexUtil.simplify</code> for constant reduction (Remus
+Pass an expression executor to <code class="language-plaintext highlighter-rouge">RexUtil.simplify</code> for constant reduction (Remus
 Rusanu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1601">CALCITE-1601</a>]
-<code class="highlighter-rouge">DateRangeRules</code> loses OR filters</li>
+<code class="language-plaintext highlighter-rouge">DateRangeRules</code> loses OR filters</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1637">CALCITE-1637</a>]
-Add mutable equivalents for all relational expressions (e.g. <code class="highlighter-rouge">MutableFilter</code>)</li>
+Add mutable equivalents for all relational expressions (e.g. <code class="language-plaintext highlighter-rouge">MutableFilter</code>)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1621">CALCITE-1621</a>]
 Add a cast around the NULL literal in aggregate rules (Anton Mushin)
     <ul>
-      <li>Add <code class="highlighter-rouge">RexBuilder.makeNullLiteral(RelDataType)</code>
+      <li>Add <code class="language-plaintext highlighter-rouge">RexBuilder.makeNullLiteral(RelDataType)</code>
 </li>
     </ul>
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1649">CALCITE-1649</a>]
-Data type mismatch in <code class="highlighter-rouge">EnumerableMergeJoin</code>
+Data type mismatch in <code class="language-plaintext highlighter-rouge">EnumerableMergeJoin</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1636">CALCITE-1636</a>]
 JDBC adapter generates wrong SQL for self join with sub-query (Zhiqiang-He)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1633">CALCITE-1633</a>]
-In plans, output <code class="highlighter-rouge">Correlate.joinType</code> attribute in lower-case, same as
-<code class="highlighter-rouge">Join.joinType</code>
+In plans, output <code class="language-plaintext highlighter-rouge">Correlate.joinType</code> attribute in lower-case, same as
+<code class="language-plaintext highlighter-rouge">Join.joinType</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1632">CALCITE-1632</a>]
 Return type of “datetime + interval” expression</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-365">CALCITE-365</a>]
-<code class="highlighter-rouge">AssertionError</code> while translating query with <code class="highlighter-rouge">WITH</code> and correlated sub-query</li>
+<code class="language-plaintext highlighter-rouge">AssertionError</code> while translating query with <code class="language-plaintext highlighter-rouge">WITH</code> and correlated sub-query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1623">CALCITE-1623</a>]
-Make sure <code class="highlighter-rouge">DATE</code>, <code class="highlighter-rouge">TIME</code> and <code class="highlighter-rouge">TIMESTAMP</code> literals have <code class="highlighter-rouge">Calendar</code> with GMT
+Make sure <code class="language-plaintext highlighter-rouge">DATE</code>, <code class="language-plaintext highlighter-rouge">TIME</code> and <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> literals have <code class="language-plaintext highlighter-rouge">Calendar</code> with GMT
 timezone</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1619">CALCITE-1619</a>]
-<code class="highlighter-rouge">CAST</code> is ignored by rules pushing operators into <code class="highlighter-rouge">DruidQuery</code>
+<code class="language-plaintext highlighter-rouge">CAST</code> is ignored by rules pushing operators into <code class="language-plaintext highlighter-rouge">DruidQuery</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1617">CALCITE-1617</a>]
 Druid adapter: Send timestamp literals to Druid as local time, not UTC</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1500">CALCITE-1500</a>]
-Decouple materialization and lattice substitution from <code class="highlighter-rouge">VolcanoPlanner</code>
+Decouple materialization and lattice substitution from <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1589">CALCITE-1589</a>]
-Druid adapter: <code class="highlighter-rouge">timeseries</code> query shows all days, even if no data</li>
+Druid adapter: <code class="language-plaintext highlighter-rouge">timeseries</code> query shows all days, even if no data</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1572">CALCITE-1572</a>]
-<code class="highlighter-rouge">JdbcSchema</code> throws exception when detecting nullable columns (Wu Xiang)</li>
+<code class="language-plaintext highlighter-rouge">JdbcSchema</code> throws exception when detecting nullable columns (Wu Xiang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1610">CALCITE-1610</a>]
-<code class="highlighter-rouge">RelBuilder</code> sort-combining optimization treats aliases incorrectly (Jess
+<code class="language-plaintext highlighter-rouge">RelBuilder</code> sort-combining optimization treats aliases incorrectly (Jess
 Balint)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1595">CALCITE-1595</a>]
-<code class="highlighter-rouge">RelBuilder.call</code> throws <code class="highlighter-rouge">NullPointerException</code> if argument types are invalid
+<code class="language-plaintext highlighter-rouge">RelBuilder.call</code> throws <code class="language-plaintext highlighter-rouge">NullPointerException</code> if argument types are invalid
 (Jess Balint)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1602">CALCITE-1602</a>]
 Remove uses of deprecated APIs</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1569">CALCITE-1569</a>]
-Code generation for fields of type <code class="highlighter-rouge">java.sql.Date</code> (Zhen Wang)</li>
+Code generation for fields of type <code class="language-plaintext highlighter-rouge">java.sql.Date</code> (Zhen Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1582">CALCITE-1582</a>]
-<code class="highlighter-rouge">RelToSqlConverter</code> doesn’t handle cartesian join (Jess Balint)</li>
+<code class="language-plaintext highlighter-rouge">RelToSqlConverter</code> doesn’t handle cartesian join (Jess Balint)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1597">CALCITE-1597</a>]
-Obsolete <code class="highlighter-rouge">Util.newInternal</code>, <code class="highlighter-rouge">.pre</code>, <code class="highlighter-rouge">.post</code>, <code class="highlighter-rouge">.permAssert</code> and
-<code class="highlighter-rouge">Throwables.propagate</code>
+Obsolete <code class="language-plaintext highlighter-rouge">Util.newInternal</code>, <code class="language-plaintext highlighter-rouge">.pre</code>, <code class="language-plaintext highlighter-rouge">.post</code>, <code class="language-plaintext highlighter-rouge">.permAssert</code> and
+<code class="language-plaintext highlighter-rouge">Throwables.propagate</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1586">CALCITE-1586</a>]
-JDBC adapter generates wrong SQL if <code class="highlighter-rouge">UNION</code> has more than two inputs (Zhiqiang
+JDBC adapter generates wrong SQL if <code class="language-plaintext highlighter-rouge">UNION</code> has more than two inputs (Zhiqiang
 He)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1535">CALCITE-1535</a>]
-Give error if column referenced in <code class="highlighter-rouge">ORDER BY</code> is ambiguous (Zhen Wang)</li>
+Give error if column referenced in <code class="language-plaintext highlighter-rouge">ORDER BY</code> is ambiguous (Zhen Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1594">CALCITE-1594</a>]
-<code class="highlighter-rouge">ConventionTraitDef.getConversionData()</code> is not thread-safe</li>
+<code class="language-plaintext highlighter-rouge">ConventionTraitDef.getConversionData()</code> is not thread-safe</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1577">CALCITE-1577</a>]
 Druid adapter: Incorrect result - limit on timestamp disappears</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1587">CALCITE-1587</a>]
-Druid adapter: <code class="highlighter-rouge">topN</code> query returns approximate results</li>
+Druid adapter: <code class="language-plaintext highlighter-rouge">topN</code> query returns approximate results</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1578">CALCITE-1578</a>]
-Druid adapter: wrong semantics of <code class="highlighter-rouge">topN</code> query limit with granularity</li>
-  <li>Druid adapter: Add <code class="highlighter-rouge">enum Granularity</code>
+Druid adapter: wrong semantics of <code class="language-plaintext highlighter-rouge">topN</code> query limit with granularity</li>
+  <li>Druid adapter: Add <code class="language-plaintext highlighter-rouge">enum Granularity</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1592">CALCITE-1592</a>]
-<code class="highlighter-rouge">SqlToRelConverter</code> throws <code class="highlighter-rouge">UnsupportedOperationException</code> if query has
-<code class="highlighter-rouge">NOT ... NOT IN</code>
+<code class="language-plaintext highlighter-rouge">SqlToRelConverter</code> throws <code class="language-plaintext highlighter-rouge">UnsupportedOperationException</code> if query has
+<code class="language-plaintext highlighter-rouge">NOT ... NOT IN</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1590">CALCITE-1590</a>]
 Support Guava version 21.0</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1575">CALCITE-1575</a>]
 Literals may lose precision during expression reduction</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1546">CALCITE-1546</a>]
-Wrong plan for <code class="highlighter-rouge">NOT IN</code> sub-queries with disjunction</li>
+Wrong plan for <code class="language-plaintext highlighter-rouge">NOT IN</code> sub-queries with disjunction</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1574">CALCITE-1574</a>]
 Memory leak in maven</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1571">CALCITE-1571</a>]
-Could not resolve view with <code class="highlighter-rouge">SimpleCalciteSchema</code>
+Could not resolve view with <code class="language-plaintext highlighter-rouge">SimpleCalciteSchema</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1558">CALCITE-1558</a>]
-<code class="highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> gets field mapping wrong if group key
+<code class="language-plaintext highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> gets field mapping wrong if group key
 is used in aggregate function (Zhenghua Gao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1562">CALCITE-1562</a>]
 Update jsr305 from 1.3.9 to 3.0.1</li>
@@ -5254,9 +5254,9 @@
 In case-insensitive connection, non-existent tables use alphabetically
 preceding table</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1544">CALCITE-1544</a>]
-<code class="highlighter-rouge">AggregateJoinTransposeRule</code> fails to preserve row type (Kurt Young)</li>
+<code class="language-plaintext highlighter-rouge">AggregateJoinTransposeRule</code> fails to preserve row type (Kurt Young)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1543">CALCITE-1543</a>]
-Correlated scalar sub-query with multiple aggregates gives <code class="highlighter-rouge">AssertionError</code>
+Correlated scalar sub-query with multiple aggregates gives <code class="language-plaintext highlighter-rouge">AssertionError</code>
 (Kurt Young)</li>
 </ul>
 
@@ -5270,7 +5270,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1677">CALCITE-1677</a>]
 Replace duplicate avatica docs with a redirect</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1685">CALCITE-1685</a>]
-Site: <code class="highlighter-rouge">defaultNullCollation</code> key listed as <code class="highlighter-rouge">materializationsEnabled</code>
+Site: <code class="language-plaintext highlighter-rouge">defaultNullCollation</code> key listed as <code class="language-plaintext highlighter-rouge">materializationsEnabled</code>
 (Kevin Liew)</li>
   <li>Add MapD to <a href="/docs/powered_by.html">Powered by
 Calcite</a> page (Todd Mostak)</li>
@@ -5289,8 +5289,8 @@
 <p>Several adapters have improvements:</p>
 
 <ul>
-  <li>The JDBC adapter can now push down DML (<code class="highlighter-rouge">INSERT</code>, <code class="highlighter-rouge">UPDATE</code>, <code class="highlighter-rouge">DELETE</code>),
-windowed aggregates (<code class="highlighter-rouge">OVER</code>), <code class="highlighter-rouge">IS NULL</code> and <code class="highlighter-rouge">IS NOT NULL</code> operators.</li>
+  <li>The JDBC adapter can now push down DML (<code class="language-plaintext highlighter-rouge">INSERT</code>, <code class="language-plaintext highlighter-rouge">UPDATE</code>, <code class="language-plaintext highlighter-rouge">DELETE</code>),
+windowed aggregates (<code class="language-plaintext highlighter-rouge">OVER</code>), <code class="language-plaintext highlighter-rouge">IS NULL</code> and <code class="language-plaintext highlighter-rouge">IS NOT NULL</code> operators.</li>
   <li>The Cassandra adapter now supports authentication.</li>
   <li>Several key bug-fixes in the Druid adapter.</li>
 </ul>
@@ -5305,25 +5305,25 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">CROSS APPLY</code> and <code class="highlighter-rouge">OUTER APPLY</code>;</li>
+<code class="language-plaintext highlighter-rouge">CROSS APPLY</code> and <code class="language-plaintext highlighter-rouge">OUTER APPLY</code>;</li>
   <li>
-<code class="highlighter-rouge">MINUS</code> as a synonym for <code class="highlighter-rouge">EXCEPT</code>;</li>
-  <li>an <code class="highlighter-rouge">AS JSON</code> option for the <code class="highlighter-rouge">EXPLAIN</code> command;</li>
-  <li>compound identifiers in the target list of <code class="highlighter-rouge">INSERT</code>, allowing you to
+<code class="language-plaintext highlighter-rouge">MINUS</code> as a synonym for <code class="language-plaintext highlighter-rouge">EXCEPT</code>;</li>
+  <li>an <code class="language-plaintext highlighter-rouge">AS JSON</code> option for the <code class="language-plaintext highlighter-rouge">EXPLAIN</code> command;</li>
+  <li>compound identifiers in the target list of <code class="language-plaintext highlighter-rouge">INSERT</code>, allowing you to
 insert into individual fields of record-valued columns (or column
 families if you are using the Apache Phoenix adapter).</li>
 </ul>
 
-<p>A variety of new and extended built-in functions: <code class="highlighter-rouge">CONVERT</code>, <code class="highlighter-rouge">LTRIM</code>,
-<code class="highlighter-rouge">RTRIM</code>, 3-parameter <code class="highlighter-rouge">LOCATE</code> and <code class="highlighter-rouge">POSITION</code>, <code class="highlighter-rouge">RAND</code>, <code class="highlighter-rouge">RAND_INTEGER</code>,
-and <code class="highlighter-rouge">SUBSTRING</code> applied to binary types.</p>
+<p>A variety of new and extended built-in functions: <code class="language-plaintext highlighter-rouge">CONVERT</code>, <code class="language-plaintext highlighter-rouge">LTRIM</code>,
+<code class="language-plaintext highlighter-rouge">RTRIM</code>, 3-parameter <code class="language-plaintext highlighter-rouge">LOCATE</code> and <code class="language-plaintext highlighter-rouge">POSITION</code>, <code class="language-plaintext highlighter-rouge">RAND</code>, <code class="language-plaintext highlighter-rouge">RAND_INTEGER</code>,
+and <code class="language-plaintext highlighter-rouge">SUBSTRING</code> applied to binary types.</p>
 
 <p>There are minor but potentially breaking API changes in
 [<a href="https://issues.apache.org/jira/browse/CALCITE-1519">CALCITE-1519</a>]
-(interface <code class="highlighter-rouge">SubqueryConverter</code> becomes <code class="highlighter-rouge">SubQueryConverter</code> and some
+(interface <code class="language-plaintext highlighter-rouge">SubqueryConverter</code> becomes <code class="language-plaintext highlighter-rouge">SubQueryConverter</code> and some
 similar changes in the case of classes and methods) and
 [<a href="https://issues.apache.org/jira/browse/CALCITE-1530">CALCITE-1530</a>]
-(rename <code class="highlighter-rouge">Shuttle</code> to <code class="highlighter-rouge">Visitor</code>, and create a new class <code class="highlighter-rouge">Visitor&lt;R&gt;</code>).
+(rename <code class="language-plaintext highlighter-rouge">Shuttle</code> to <code class="language-plaintext highlighter-rouge">Visitor</code>, and create a new class <code class="language-plaintext highlighter-rouge">Visitor&lt;R&gt;</code>).
 See the cases for more details.</p>
 
 <p>Compatibility: This release is tested
@@ -5331,89 +5331,89 @@
 using Oracle JDK 1.7, 1.8;
 Guava versions 14.0 to 19.0;
 Druid version 0.9.1.1;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <h4 id="new-features-1-11-0">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1551">CALCITE-1551</a>]
-Preserve alias in <code class="highlighter-rouge">RelBuilder.project</code> (Jess Balint)</li>
+Preserve alias in <code class="language-plaintext highlighter-rouge">RelBuilder.project</code> (Jess Balint)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1552">CALCITE-1552</a>]
-Add <code class="highlighter-rouge">RAND</code> function, returning <code class="highlighter-rouge">DOUBLE</code> values in the range 0..1</li>
+Add <code class="language-plaintext highlighter-rouge">RAND</code> function, returning <code class="language-plaintext highlighter-rouge">DOUBLE</code> values in the range 0..1</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1414">CALCITE-1414</a>]
-Add <code class="highlighter-rouge">RAND_INTEGER</code> function, which returns a random integer modulo N (Julian
+Add <code class="language-plaintext highlighter-rouge">RAND_INTEGER</code> function, which returns a random integer modulo N (Julian
 Feinauer)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1540">CALCITE-1540</a>]
-Support multiple columns in <code class="highlighter-rouge">PARTITION BY</code> clause of window function
+Support multiple columns in <code class="language-plaintext highlighter-rouge">PARTITION BY</code> clause of window function
 (Hongbin Ma)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1534">CALCITE-1534</a>]
-Allow compound identifiers in <code class="highlighter-rouge">INSERT</code> target column list</li>
+Allow compound identifiers in <code class="language-plaintext highlighter-rouge">INSERT</code> target column list</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1529">CALCITE-1529</a>]
-Support <code class="highlighter-rouge">CREATE TABLE</code> in tests (and only in tests)</li>
+Support <code class="language-plaintext highlighter-rouge">CREATE TABLE</code> in tests (and only in tests)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1527">CALCITE-1527</a>]
 Support DML in the JDBC adapter (Christian Tzolov)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1523">CALCITE-1523</a>]
-In <code class="highlighter-rouge">RelBuilder</code>, add <code class="highlighter-rouge">field</code> method to reference input to join by alias (Jess
+In <code class="language-plaintext highlighter-rouge">RelBuilder</code>, add <code class="language-plaintext highlighter-rouge">field</code> method to reference input to join by alias (Jess
 Balint)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1524">CALCITE-1524</a>]
 Add a project to the planner root so that rules know which output fields are
 used</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1425">CALCITE-1425</a>]
-Support two-level column structure in <code class="highlighter-rouge">INSERT</code>/<code class="highlighter-rouge">UPDATE</code>/<code class="highlighter-rouge">MERGE</code>
+Support two-level column structure in <code class="language-plaintext highlighter-rouge">INSERT</code>/<code class="language-plaintext highlighter-rouge">UPDATE</code>/<code class="language-plaintext highlighter-rouge">MERGE</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1472">CALCITE-1472</a>]
-Support <code class="highlighter-rouge">CROSS</code>/<code class="highlighter-rouge">OUTER APPLY</code> syntax (Jark Wu)</li>
+Support <code class="language-plaintext highlighter-rouge">CROSS</code>/<code class="language-plaintext highlighter-rouge">OUTER APPLY</code> syntax (Jark Wu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1506">CALCITE-1506</a>]
-Push <code class="highlighter-rouge">OVER</code> clause to underlying SQL via JDBC adapter (Christian Tzolov)</li>
+Push <code class="language-plaintext highlighter-rouge">OVER</code> clause to underlying SQL via JDBC adapter (Christian Tzolov)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1509">CALCITE-1509</a>]
 Allow overriding the convertlet table in CalcitePrepareImpl (Gian Merlino)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1483">CALCITE-1483</a>]
-Generate simpler logic for <code class="highlighter-rouge">NOT IN</code> if we can deduce that the key is never null</li>
+Generate simpler logic for <code class="language-plaintext highlighter-rouge">NOT IN</code> if we can deduce that the key is never null</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1497">CALCITE-1497</a>]
-Infer <code class="highlighter-rouge">IS NOT NULL</code>, and project predicates</li>
+Infer <code class="language-plaintext highlighter-rouge">IS NOT NULL</code>, and project predicates</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1489">CALCITE-1489</a>]
-Add rule, <code class="highlighter-rouge">AggregateValuesRule</code>, that applies to an <code class="highlighter-rouge">Aggregate</code> on an empty
+Add rule, <code class="language-plaintext highlighter-rouge">AggregateValuesRule</code>, that applies to an <code class="language-plaintext highlighter-rouge">Aggregate</code> on an empty
 relation (Gian Merlino)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1447">CALCITE-1447</a>]
-Implement <code class="highlighter-rouge">INTERSECT DISTINCT</code> by rewriting to <code class="highlighter-rouge">UNION ALL</code> and counting
+Implement <code class="language-plaintext highlighter-rouge">INTERSECT DISTINCT</code> by rewriting to <code class="language-plaintext highlighter-rouge">UNION ALL</code> and counting
 (Pengcheng Xiong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1389">CALCITE-1389</a>]
 Add a rewrite rule to use materialized views with joins</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1125">CALCITE-1125</a>]
-<code class="highlighter-rouge">MINUS</code> as a synonym for <code class="highlighter-rouge">EXCEPT</code> (enabled in Oracle10 conformance)
+<code class="language-plaintext highlighter-rouge">MINUS</code> as a synonym for <code class="language-plaintext highlighter-rouge">EXCEPT</code> (enabled in Oracle10 conformance)
 (Chandni Singh)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1453">CALCITE-1453</a>]
-Support <code class="highlighter-rouge">ANY</code> type with binary comparison and arithmetic operators
+Support <code class="language-plaintext highlighter-rouge">ANY</code> type with binary comparison and arithmetic operators
 (Jungtaek Lim)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1444">CALCITE-1444</a>]
-Add <code class="highlighter-rouge">CONVERT</code> function (Laurent Goujon)</li>
+Add <code class="language-plaintext highlighter-rouge">CONVERT</code> function (Laurent Goujon)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1448">CALCITE-1448</a>]
-Add rules to flatten and prune <code class="highlighter-rouge">Intersect</code> and <code class="highlighter-rouge">Minus</code>;
-flatten set-operators if the top is <code class="highlighter-rouge">DISTINCT</code> and bottom is <code class="highlighter-rouge">ALL</code>
+Add rules to flatten and prune <code class="language-plaintext highlighter-rouge">Intersect</code> and <code class="language-plaintext highlighter-rouge">Minus</code>;
+flatten set-operators if the top is <code class="language-plaintext highlighter-rouge">DISTINCT</code> and bottom is <code class="language-plaintext highlighter-rouge">ALL</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1426">CALCITE-1426</a>]
-Support customized star expansion in <code class="highlighter-rouge">Table</code>
+Support customized star expansion in <code class="language-plaintext highlighter-rouge">Table</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1454">CALCITE-1454</a>]
-Allow custom implementations of <code class="highlighter-rouge">SqlConformance</code>
+Allow custom implementations of <code class="language-plaintext highlighter-rouge">SqlConformance</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1417">CALCITE-1417</a>]
-In <code class="highlighter-rouge">RelBuilder</code>, simplify “CAST(literal TO type)” to a literal when possible</li>
+In <code class="language-plaintext highlighter-rouge">RelBuilder</code>, simplify “CAST(literal TO type)” to a literal when possible</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1443">CALCITE-1443</a>]
 Add authentication support in Cassandra adapter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1404">CALCITE-1404</a>]
-Implement <code class="highlighter-rouge">FILTER</code> on aggregate functions in <code class="highlighter-rouge">Interpreter</code>
+Implement <code class="language-plaintext highlighter-rouge">FILTER</code> on aggregate functions in <code class="language-plaintext highlighter-rouge">Interpreter</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1418">CALCITE-1418</a>]
-Implement <code class="highlighter-rouge">SUBSTRING</code> function for <code class="highlighter-rouge">BINARY</code> and <code class="highlighter-rouge">VARBINARY</code> (Jungtaek Lim)</li>
+Implement <code class="language-plaintext highlighter-rouge">SUBSTRING</code> function for <code class="language-plaintext highlighter-rouge">BINARY</code> and <code class="language-plaintext highlighter-rouge">VARBINARY</code> (Jungtaek Lim)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1422">CALCITE-1422</a>]
-In JDBC adapter, allow <code class="highlighter-rouge">IS NULL</code> and <code class="highlighter-rouge">IS NOT NULL</code> operators in generated SQL
+In JDBC adapter, allow <code class="language-plaintext highlighter-rouge">IS NULL</code> and <code class="language-plaintext highlighter-rouge">IS NOT NULL</code> operators in generated SQL
 join condition (Viktor Batytskyi)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1419">CALCITE-1419</a>]
-Implement JDBC functions: <code class="highlighter-rouge">LTRIM</code>, <code class="highlighter-rouge">RTRIM</code> and 3-parameter <code class="highlighter-rouge">LOCATE</code> and
-<code class="highlighter-rouge">POSITION</code> (Jungtaek Lim)</li>
+Implement JDBC functions: <code class="language-plaintext highlighter-rouge">LTRIM</code>, <code class="language-plaintext highlighter-rouge">RTRIM</code> and 3-parameter <code class="language-plaintext highlighter-rouge">LOCATE</code> and
+<code class="language-plaintext highlighter-rouge">POSITION</code> (Jungtaek Lim)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-917">CALCITE-917</a>]
-Add <code class="highlighter-rouge">AS JSON</code> as output option for <code class="highlighter-rouge">EXPLAIN</code>
+Add <code class="language-plaintext highlighter-rouge">AS JSON</code> as output option for <code class="language-plaintext highlighter-rouge">EXPLAIN</code>
 </li>
 </ul>
 
@@ -5423,95 +5423,95 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1559">CALCITE-1559</a>]
 Convert example models to stricter JSON</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1560">CALCITE-1560</a>]
-Remove <code class="highlighter-rouge">avatica</code> directory from <code class="highlighter-rouge">sqlline</code>’s class path</li>
+Remove <code class="language-plaintext highlighter-rouge">avatica</code> directory from <code class="language-plaintext highlighter-rouge">sqlline</code>’s class path</li>
   <li>Remove non-ASCII characters from Java source files</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1511">CALCITE-1511</a>]
-Decorrelation fails if query has more than one <code class="highlighter-rouge">EXISTS</code> in <code class="highlighter-rouge">WHERE</code> clause</li>
+Decorrelation fails if query has more than one <code class="language-plaintext highlighter-rouge">EXISTS</code> in <code class="language-plaintext highlighter-rouge">WHERE</code> clause</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1555">CALCITE-1555</a>]
-Improve <code class="highlighter-rouge">RelNode</code> validation</li>
+Improve <code class="language-plaintext highlighter-rouge">RelNode</code> validation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1548">CALCITE-1548</a>]
 Instantiate function objects once per query</li>
-  <li>Add lock to <code class="highlighter-rouge">JdbcAdapterTest</code>, to ensure that tests that modify data run in
+  <li>Add lock to <code class="language-plaintext highlighter-rouge">JdbcAdapterTest</code>, to ensure that tests that modify data run in
 series</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1519">CALCITE-1519</a>]
 Standardize on “sub-query” rather than “subquery” in class names and comments</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1493">CALCITE-1493</a>]
-Wrong plan for <code class="highlighter-rouge">NOT IN</code> correlated queries</li>
+Wrong plan for <code class="language-plaintext highlighter-rouge">NOT IN</code> correlated queries</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1526">CALCITE-1526</a>]
-Use <code class="highlighter-rouge">Strong</code> to infer whether a predicate’s inputs may be null</li>
+Use <code class="language-plaintext highlighter-rouge">Strong</code> to infer whether a predicate’s inputs may be null</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1530">CALCITE-1530</a>]
 Create a visitor to traverse linq4j expressions without mutating them, and
-rename <code class="highlighter-rouge">Visitor</code> to <code class="highlighter-rouge">Shuttle</code>
+rename <code class="language-plaintext highlighter-rouge">Visitor</code> to <code class="language-plaintext highlighter-rouge">Shuttle</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1507">CALCITE-1507</a>]
-<code class="highlighter-rouge">OFFSET</code> cannot be pushed through a <code class="highlighter-rouge">JOIN</code> if the non-preserved side of outer
+<code class="language-plaintext highlighter-rouge">OFFSET</code> cannot be pushed through a <code class="language-plaintext highlighter-rouge">JOIN</code> if the non-preserved side of outer
 join is not count-preserving</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1522">CALCITE-1522</a>]
-Fix error message for <code class="highlighter-rouge">SetOp</code> with incompatible args (Jess Balint)</li>
+Fix error message for <code class="language-plaintext highlighter-rouge">SetOp</code> with incompatible args (Jess Balint)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1532">CALCITE-1532</a>]
-In <code class="highlighter-rouge">HttpUtils</code>, don’t log HTTP requests; they may contain user name, password</li>
+In <code class="language-plaintext highlighter-rouge">HttpUtils</code>, don’t log HTTP requests; they may contain user name, password</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1037">CALCITE-1037</a>]
-Column uniqueness is calculated incorrectly for <code class="highlighter-rouge">Correlate</code> (Alexey Makhmutov)</li>
+Column uniqueness is calculated incorrectly for <code class="language-plaintext highlighter-rouge">Correlate</code> (Alexey Makhmutov)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1495">CALCITE-1495</a>]
-<code class="highlighter-rouge">SemiJoinRule</code> should not apply to <code class="highlighter-rouge">RIGHT</code> and <code class="highlighter-rouge">FULL JOIN</code>, and should strip
-<code class="highlighter-rouge">LEFT JOIN</code>
+<code class="language-plaintext highlighter-rouge">SemiJoinRule</code> should not apply to <code class="language-plaintext highlighter-rouge">RIGHT</code> and <code class="language-plaintext highlighter-rouge">FULL JOIN</code>, and should strip
+<code class="language-plaintext highlighter-rouge">LEFT JOIN</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1516">CALCITE-1516</a>]
-Upgrade <code class="highlighter-rouge">hydromatic-resource-maven-plugin</code>, and re-work <code class="highlighter-rouge">SaffronProperties</code>
+Upgrade <code class="language-plaintext highlighter-rouge">hydromatic-resource-maven-plugin</code>, and re-work <code class="language-plaintext highlighter-rouge">SaffronProperties</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1498">CALCITE-1498</a>]
-Avoid <code class="highlighter-rouge">LIMIT</code> with trivial <code class="highlighter-rouge">ORDER BY</code> being pushed through <code class="highlighter-rouge">JOIN</code> endlessly</li>
+Avoid <code class="language-plaintext highlighter-rouge">LIMIT</code> with trivial <code class="language-plaintext highlighter-rouge">ORDER BY</code> being pushed through <code class="language-plaintext highlighter-rouge">JOIN</code> endlessly</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1501">CALCITE-1501</a>]
-<code class="highlighter-rouge">EnumerableUnion</code> should use array comparator when row format is <code class="highlighter-rouge">ARRAY</code> (Dayue
+<code class="language-plaintext highlighter-rouge">EnumerableUnion</code> should use array comparator when row format is <code class="language-plaintext highlighter-rouge">ARRAY</code> (Dayue
 Gao)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1502">CALCITE-1502</a>]
-<code class="highlighter-rouge">AssertionError</code> in <code class="highlighter-rouge">ReduceExpressionsRule</code> when <code class="highlighter-rouge">CASE</code> is used with optional
+<code class="language-plaintext highlighter-rouge">AssertionError</code> in <code class="language-plaintext highlighter-rouge">ReduceExpressionsRule</code> when <code class="language-plaintext highlighter-rouge">CASE</code> is used with optional
 value and literal (Serhii Harnyk)</li>
   <li>Cosmetic changes, and deprecate some methods</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1486">CALCITE-1486</a>]
 Invalid “Invalid literal” error for complex expression</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1488">CALCITE-1488</a>]
-<code class="highlighter-rouge">ValuesReduceRule</code> should ignore empty <code class="highlighter-rouge">Values</code>
+<code class="language-plaintext highlighter-rouge">ValuesReduceRule</code> should ignore empty <code class="language-plaintext highlighter-rouge">Values</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1384">CALCITE-1384</a>]
-Extension point for <code class="highlighter-rouge">ALTER</code> statements (Gabriel Reid)</li>
+Extension point for <code class="language-plaintext highlighter-rouge">ALTER</code> statements (Gabriel Reid)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1484">CALCITE-1484</a>]
 Upgrade Apache parent POM to version 18</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1482">CALCITE-1482</a>]
 Fix leak on CassandraSchema creation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1479">CALCITE-1479</a>]
-<code class="highlighter-rouge">AssertionError</code> in <code class="highlighter-rouge">ReduceExpressionsRule</code> on multi-column <code class="highlighter-rouge">IN</code> sub-query
+<code class="language-plaintext highlighter-rouge">AssertionError</code> in <code class="language-plaintext highlighter-rouge">ReduceExpressionsRule</code> on multi-column <code class="language-plaintext highlighter-rouge">IN</code> sub-query
 (Gian Merlino)</li>
-  <li>Upgrade <code class="highlighter-rouge">Quidem</code>
+  <li>Upgrade <code class="language-plaintext highlighter-rouge">Quidem</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1416">CALCITE-1416</a>]
-Make classes implement <code class="highlighter-rouge">AutoCloseable</code> where possible (Chinmay Kolhatkar)</li>
+Make classes implement <code class="language-plaintext highlighter-rouge">AutoCloseable</code> where possible (Chinmay Kolhatkar)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1474">CALCITE-1474</a>]
-Upgrade <code class="highlighter-rouge">aggdesigner</code>
+Upgrade <code class="language-plaintext highlighter-rouge">aggdesigner</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1270">CALCITE-1270</a>]
-Upgrade to <code class="highlighter-rouge">avatica-1.9</code>, <code class="highlighter-rouge">sqlline-1.2.0</code>
+Upgrade to <code class="language-plaintext highlighter-rouge">avatica-1.9</code>, <code class="language-plaintext highlighter-rouge">sqlline-1.2.0</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1461">CALCITE-1461</a>]
-Hard-coded class name in <code class="highlighter-rouge">JaninoRelMetadataProvider</code> breaks shading (Jark Wu)</li>
+Hard-coded class name in <code class="language-plaintext highlighter-rouge">JaninoRelMetadataProvider</code> breaks shading (Jark Wu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1465">CALCITE-1465</a>]
-Store constants as a derived field in <code class="highlighter-rouge">RelOptPredicateList</code>
+Store constants as a derived field in <code class="language-plaintext highlighter-rouge">RelOptPredicateList</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1429">CALCITE-1429</a>]
-Druid adapter must send <code class="highlighter-rouge">fromNext</code> when requesting rows from Druid (Jiarong
+Druid adapter must send <code class="language-plaintext highlighter-rouge">fromNext</code> when requesting rows from Druid (Jiarong
 Wei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1430">CALCITE-1430</a>]
-In Druid adapter, <code class="highlighter-rouge">pagingIdentifiers</code> might have more than one value (Jiarong
+In Druid adapter, <code class="language-plaintext highlighter-rouge">pagingIdentifiers</code> might have more than one value (Jiarong
 Wei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1442">CALCITE-1442</a>]
 Interval fractional second precision returns wrong value (Laurent Goujon)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1434">CALCITE-1434</a>]
 User-defined aggregate function that uses a generic interface (Arun Mahadevan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1431">CALCITE-1431</a>]
-<code class="highlighter-rouge">RelDataTypeFactoryImpl.copyType()</code> did not copy <code class="highlighter-rouge">StructKind</code>
+<code class="language-plaintext highlighter-rouge">RelDataTypeFactoryImpl.copyType()</code> did not copy <code class="language-plaintext highlighter-rouge">StructKind</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1424">CALCITE-1424</a>]
-Druid type is called <code class="highlighter-rouge">FLOAT</code>, not <code class="highlighter-rouge">DOUBLE</code> (Jiarong Wei)</li>
+Druid type is called <code class="language-plaintext highlighter-rouge">FLOAT</code>, not <code class="language-plaintext highlighter-rouge">DOUBLE</code> (Jiarong Wei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1415">CALCITE-1415</a>]
 Add sub-query support for RelStructuredTypeFlattener</li>
 </ul>
@@ -5537,13 +5537,13 @@
 using Oracle JDK 1.7, 1.8;
 Guava versions 14.0 to 19.0;
 Druid version 0.9.1.1;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <h4 id="new-features-1-10-0">New feature</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1374">CALCITE-1374</a>]
-Support operator <code class="highlighter-rouge">!=</code> as an alternative to <code class="highlighter-rouge">&lt;&gt;</code>
+Support operator <code class="language-plaintext highlighter-rouge">!=</code> as an alternative to <code class="language-plaintext highlighter-rouge">&lt;&gt;</code>
 </li>
 </ul>
 
@@ -5551,32 +5551,32 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1378">CALCITE-1378</a>]
-<code class="highlighter-rouge">ArrayIndexOutOfBoundsException</code> in sql-to-rel conversion for two-level columns</li>
+<code class="language-plaintext highlighter-rouge">ArrayIndexOutOfBoundsException</code> in sql-to-rel conversion for two-level columns</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1379">CALCITE-1379</a>]
-When expanding <code class="highlighter-rouge">STAR</code>, expand sub-fields in <code class="highlighter-rouge">RecordType</code> columns of <code class="highlighter-rouge">StructKind.PEEK_FIELDS</code> and <code class="highlighter-rouge">StructKind.PEEK_FIELDS_DEFAULT</code>
+When expanding <code class="language-plaintext highlighter-rouge">STAR</code>, expand sub-fields in <code class="language-plaintext highlighter-rouge">RecordType</code> columns of <code class="language-plaintext highlighter-rouge">StructKind.PEEK_FIELDS</code> and <code class="language-plaintext highlighter-rouge">StructKind.PEEK_FIELDS_DEFAULT</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1381">CALCITE-1381</a>]
 Function quantifier should be retained in a cloned Sql call (zhengdong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1386">CALCITE-1386</a>]
-<code class="highlighter-rouge">ITEM</code> operator ignores the value type of the collection, assigns to Object variable (Jungtaek Lim)</li>
+<code class="language-plaintext highlighter-rouge">ITEM</code> operator ignores the value type of the collection, assigns to Object variable (Jungtaek Lim)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1392">CALCITE-1392</a>]
 Druid default time column not properly recognized</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1394">CALCITE-1394</a>]
-Using <code class="highlighter-rouge">CoreMatchers.containsString</code> causes javadoc errors</li>
+Using <code class="language-plaintext highlighter-rouge">CoreMatchers.containsString</code> causes javadoc errors</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1396">CALCITE-1396</a>]
-<code class="highlighter-rouge">isDeterministic</code> only explores top <code class="highlighter-rouge">RexCall</code>
+<code class="language-plaintext highlighter-rouge">isDeterministic</code> only explores top <code class="language-plaintext highlighter-rouge">RexCall</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1397">CALCITE-1397</a>]
-<code class="highlighter-rouge">ClassCastException</code> in <code class="highlighter-rouge">FilterReduceExpressionsRule</code>
+<code class="language-plaintext highlighter-rouge">ClassCastException</code> in <code class="language-plaintext highlighter-rouge">FilterReduceExpressionsRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1398">CALCITE-1398</a>]
-Change visibility of <code class="highlighter-rouge">RelFieldTrimmer</code> utility methods</li>
+Change visibility of <code class="language-plaintext highlighter-rouge">RelFieldTrimmer</code> utility methods</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1400">CALCITE-1400</a>]
-<code class="highlighter-rouge">AggregatePullUpConstantsRule</code> might adjust aggregation function parameters indices wrongly</li>
+<code class="language-plaintext highlighter-rouge">AggregatePullUpConstantsRule</code> might adjust aggregation function parameters indices wrongly</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1402">CALCITE-1402</a>]
 Druid Filter translation incorrect if input reference is in RHS of comparison</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1403">CALCITE-1403</a>]
-<code class="highlighter-rouge">DruidAdapterIT</code> broken</li>
+<code class="language-plaintext highlighter-rouge">DruidAdapterIT</code> broken</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1420">CALCITE-1420</a>]
 Allow Calcite JDBC Driver minor version to be greater than 9</li>
 </ul>
@@ -5585,7 +5585,7 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1393">CALCITE-1393</a>]
-Exclude packages <code class="highlighter-rouge">org.apache.calcite.benchmarks.generated</code>, <code class="highlighter-rouge">org.openjdk.jmh</code> from javadoc</li>
+Exclude packages <code class="language-plaintext highlighter-rouge">org.apache.calcite.benchmarks.generated</code>, <code class="language-plaintext highlighter-rouge">org.openjdk.jmh</code> from javadoc</li>
 </ul>
 
 <h2 id="v1-9-0">
@@ -5599,14 +5599,14 @@
 which demonstrates the good reception of the adapter by that community.</p>
 
 <p>We have added new SQL features too, e.g.,
-<a href="https://issues.apache.org/jira/browse/CALCITE-1309">support for <code class="highlighter-rouge">LATERAL TABLE</code></a>.
+<a href="https://issues.apache.org/jira/browse/CALCITE-1309">support for <code class="language-plaintext highlighter-rouge">LATERAL TABLE</code></a>.
 There are multiple interesting extensions to the planner rules that should contribute to
 obtain better plans, such as
 <a href="https://issues.apache.org/jira/browse/CALCITE-1288">avoiding doing the same join twice</a>
-in the presence of <code class="highlighter-rouge">COUNT DISTINCT</code>, or being able to
+in the presence of <code class="language-plaintext highlighter-rouge">COUNT DISTINCT</code>, or being able to
 <a href="https://issues.apache.org/jira/browse/CALCITE-1220">simplify the expressions</a>
 in the plan further. In addition, we implemented a rule to
-<a href="https://issues.apache.org/jira/browse/CALCITE-1334">convert predicates on <code class="highlighter-rouge">EXTRACT</code> function calls into date ranges</a>.
+<a href="https://issues.apache.org/jira/browse/CALCITE-1334">convert predicates on <code class="language-plaintext highlighter-rouge">EXTRACT</code> function calls into date ranges</a>.
 The rule is not specific to Druid; however, in principle, it will be useful to identify
 filter conditions on the time dimension of Druid data sources.</p>
 
@@ -5617,7 +5617,7 @@
 on Linux, Mac OS X, Microsoft Windows;
 using Oracle JDK 1.7, 1.8;
 Guava versions 14.0 to 19.0;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <h4 id="new-features-1-9-0">New features</h4>
 
@@ -5627,7 +5627,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1227">CALCITE-1227</a>]
 Add streaming CSV table (Zhen Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1309">CALCITE-1309</a>]
-Support <code class="highlighter-rouge">LATERAL TABLE</code> (Jark Wu)</li>
+Support <code class="language-plaintext highlighter-rouge">LATERAL TABLE</code> (Jark Wu)</li>
 </ul>
 
 <h4 id="druid-adapter-1-9-0">Druid adapter</h4>
@@ -5640,9 +5640,9 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1343">CALCITE-1343</a>]
 Broken Druid query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1348">CALCITE-1348</a>]
-In Druid adapter, adjust how <code class="highlighter-rouge">SegmentMetadataQuery</code> is used to detect types (Gian Merlino)</li>
+In Druid adapter, adjust how <code class="language-plaintext highlighter-rouge">SegmentMetadataQuery</code> is used to detect types (Gian Merlino)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1357">CALCITE-1357</a>]
-Recognize Druid <code class="highlighter-rouge">Timeseries</code> and <code class="highlighter-rouge">TopN</code> queries in <code class="highlighter-rouge">DruidQuery</code>
+Recognize Druid <code class="language-plaintext highlighter-rouge">Timeseries</code> and <code class="language-plaintext highlighter-rouge">TopN</code> queries in <code class="language-plaintext highlighter-rouge">DruidQuery</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1358">CALCITE-1358</a>]
 Push filters on time dimension to Druid</li>
@@ -5656,15 +5656,15 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1288">CALCITE-1288</a>]
 Avoid doing the same join twice if count(distinct) exists (Gautam Parai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1289">CALCITE-1289</a>]
-<code class="highlighter-rouge">RexUtil.simplifyCase()</code> should account for nullability</li>
+<code class="language-plaintext highlighter-rouge">RexUtil.simplifyCase()</code> should account for nullability</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1290">CALCITE-1290</a>]
 When converting to CNF, fail if the expression size exceeds a threshold</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1334">CALCITE-1334</a>]
-Convert predicates on <code class="highlighter-rouge">EXTRACT</code> function calls into date ranges</li>
+Convert predicates on <code class="language-plaintext highlighter-rouge">EXTRACT</code> function calls into date ranges</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1342">CALCITE-1342</a>]
-<code class="highlighter-rouge">ProjectPusher</code> should use rel factories when creating new rels, e.g. project/filter</li>
+<code class="language-plaintext highlighter-rouge">ProjectPusher</code> should use rel factories when creating new rels, e.g. project/filter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1365">CALCITE-1365</a>]
-Introduce <code class="highlighter-rouge">UnionPullUpConstantsRule</code>
+Introduce <code class="language-plaintext highlighter-rouge">UnionPullUpConstantsRule</code>
 </li>
 </ul>
 
@@ -5672,49 +5672,49 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-30">CALCITE-30</a>]
-Implement <code class="highlighter-rouge">Statement.cancel</code> method</li>
+Implement <code class="language-plaintext highlighter-rouge">Statement.cancel</code> method</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-308">CALCITE-308</a>]
-Wrong result when using <code class="highlighter-rouge">DATE</code>+<code class="highlighter-rouge">INTERVAL</code> arithmetics</li>
+Wrong result when using <code class="language-plaintext highlighter-rouge">DATE</code>+<code class="language-plaintext highlighter-rouge">INTERVAL</code> arithmetics</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-319">CALCITE-319</a>]
 Table aliases should follow case-sensitivity policy</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-528">CALCITE-528</a>]
 Creating output row type of a Join does not obey case-sensitivity flags</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-991">CALCITE-991</a>]
-Create separate <code class="highlighter-rouge">SqlFunctionCategory</code> values for table functions and macros (Julien Le Dem)</li>
+Create separate <code class="language-plaintext highlighter-rouge">SqlFunctionCategory</code> values for table functions and macros (Julien Le Dem)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1043">CALCITE-1043</a>]
-<code class="highlighter-rouge">RexOptUtil</code> does not support function table other than <code class="highlighter-rouge">SqlStdOperatorTable</code>
+<code class="language-plaintext highlighter-rouge">RexOptUtil</code> does not support function table other than <code class="language-plaintext highlighter-rouge">SqlStdOperatorTable</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1095">CALCITE-1095</a>]
-<code class="highlighter-rouge">NOT</code> precedence</li>
+<code class="language-plaintext highlighter-rouge">NOT</code> precedence</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1148">CALCITE-1148</a>]
-Trait conversion broken for <code class="highlighter-rouge">RelTraits</code> other than <code class="highlighter-rouge">Convention</code>
+Trait conversion broken for <code class="language-plaintext highlighter-rouge">RelTraits</code> other than <code class="language-plaintext highlighter-rouge">Convention</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1278">CALCITE-1278</a>]
-CalciteSignature’s ColumnMetaData for <code class="highlighter-rouge">DELETE</code> should be same as <code class="highlighter-rouge">INSERT</code>
+CalciteSignature’s ColumnMetaData for <code class="language-plaintext highlighter-rouge">DELETE</code> should be same as <code class="language-plaintext highlighter-rouge">INSERT</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1283">CALCITE-1283</a>]
-Nullability incorrectly assigned in <code class="highlighter-rouge">SqlTypeFactory.leastRestrictiveSqlType()</code>
+Nullability incorrectly assigned in <code class="language-plaintext highlighter-rouge">SqlTypeFactory.leastRestrictiveSqlType()</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1284">CALCITE-1284</a>]
-Move <code class="highlighter-rouge">Quidem</code> tests from <code class="highlighter-rouge">JdbcTest</code> into their own class</li>
+Move <code class="language-plaintext highlighter-rouge">Quidem</code> tests from <code class="language-plaintext highlighter-rouge">JdbcTest</code> into their own class</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1297">CALCITE-1297</a>]
-<code class="highlighter-rouge">RelBuilder</code> should rename fields without creating an identity Project (Jark Wu)</li>
+<code class="language-plaintext highlighter-rouge">RelBuilder</code> should rename fields without creating an identity Project (Jark Wu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1302">CALCITE-1302</a>]
-Create <code class="highlighter-rouge">SqlTypeName</code> values for each interval range, e.g. <code class="highlighter-rouge">YEAR_MONTH</code>
+Create <code class="language-plaintext highlighter-rouge">SqlTypeName</code> values for each interval range, e.g. <code class="language-plaintext highlighter-rouge">YEAR_MONTH</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1305">CALCITE-1305</a>]
-Case-insensitive table aliases and <code class="highlighter-rouge">GROUP BY</code>
+Case-insensitive table aliases and <code class="language-plaintext highlighter-rouge">GROUP BY</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1310">CALCITE-1310</a>]
-Infer type of arguments to <code class="highlighter-rouge">BETWEEN</code> operator (Yiming Liu)</li>
+Infer type of arguments to <code class="language-plaintext highlighter-rouge">BETWEEN</code> operator (Yiming Liu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1312">CALCITE-1312</a>]
-Return type of <code class="highlighter-rouge">TIMESTAMP_ADD</code> applied to a <code class="highlighter-rouge">DATE</code> should be <code class="highlighter-rouge">TIMESTAMP</code> if unit is smaller than <code class="highlighter-rouge">DAY</code>
+Return type of <code class="language-plaintext highlighter-rouge">TIMESTAMP_ADD</code> applied to a <code class="language-plaintext highlighter-rouge">DATE</code> should be <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> if unit is smaller than <code class="language-plaintext highlighter-rouge">DAY</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1313">CALCITE-1313</a>]
-Validator should derive type of expression in <code class="highlighter-rouge">ORDER BY</code>
+Validator should derive type of expression in <code class="language-plaintext highlighter-rouge">ORDER BY</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1314">CALCITE-1314</a>]
-Intermittent failure in <code class="highlighter-rouge">SqlParserTest.testGenerateKeyWords</code>
+Intermittent failure in <code class="language-plaintext highlighter-rouge">SqlParserTest.testGenerateKeyWords</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1321">CALCITE-1321</a>]
 In-list to join optimization should have configurable in-list size (Gautam Parai)</li>
@@ -5723,28 +5723,28 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1330">CALCITE-1330</a>]
 DB2 does not support character sets in data type</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1332">CALCITE-1332</a>]
-JDBC adapter for DB2 should always use aliases for tables: <code class="highlighter-rouge">x.y.z AS z</code>
+JDBC adapter for DB2 should always use aliases for tables: <code class="language-plaintext highlighter-rouge">x.y.z AS z</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1333">CALCITE-1333</a>]
-<code class="highlighter-rouge">AggFunctions</code> supported by <code class="highlighter-rouge">JdbcAggregate</code> should depend on <code class="highlighter-rouge">SqlKind</code>, instead of operator instance</li>
+<code class="language-plaintext highlighter-rouge">AggFunctions</code> supported by <code class="language-plaintext highlighter-rouge">JdbcAggregate</code> should depend on <code class="language-plaintext highlighter-rouge">SqlKind</code>, instead of operator instance</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1336">CALCITE-1336</a>]
-Add view name to the <code class="highlighter-rouge">ViewExpander</code> (Julien Le Dem)</li>
+Add view name to the <code class="language-plaintext highlighter-rouge">ViewExpander</code> (Julien Le Dem)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1337">CALCITE-1337</a>]
-Lazy evaluate <code class="highlighter-rouge">RexCall</code> digests (Ted Xu)</li>
+Lazy evaluate <code class="language-plaintext highlighter-rouge">RexCall</code> digests (Ted Xu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1340">CALCITE-1340</a>]
 Window aggregates invalid error/error messages in some cases (Gautam Parai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1344">CALCITE-1344</a>]
-Incorrect inferred precision when <code class="highlighter-rouge">BigDecimal</code> value is less than 1</li>
+Incorrect inferred precision when <code class="language-plaintext highlighter-rouge">BigDecimal</code> value is less than 1</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1346">CALCITE-1346</a>]
 Invalid nested window aggregate query with alias (Gautam Parai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1360">CALCITE-1360</a>]
-Custom schema in file in current directory gives <code class="highlighter-rouge">NullPointerException</code>
+Custom schema in file in current directory gives <code class="language-plaintext highlighter-rouge">NullPointerException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1366">CALCITE-1366</a>]
-Metadata provider should not pull predicates up through <code class="highlighter-rouge">GROUP BY</code>
+Metadata provider should not pull predicates up through <code class="language-plaintext highlighter-rouge">GROUP BY</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1370">CALCITE-1370</a>]
-In <code class="highlighter-rouge">SqlKind</code>, add <code class="highlighter-rouge">OTHER_DDL</code> to <code class="highlighter-rouge">DDL</code> enum set (Rajeshbabu Chintaguntla)</li>
+In <code class="language-plaintext highlighter-rouge">SqlKind</code>, add <code class="language-plaintext highlighter-rouge">OTHER_DDL</code> to <code class="language-plaintext highlighter-rouge">DDL</code> enum set (Rajeshbabu Chintaguntla)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1372">CALCITE-1372</a>]
 Calcite generate wrong field names in JDBC adapter</li>
 </ul>
@@ -5769,7 +5769,7 @@
 It is also now easier to
 <a href="https://issues.apache.org/jira/browse/CALCITE-1259">make a JDBC connection based upon a single adapter</a>.</p>
 
-<p>There are several new SQL features: <code class="highlighter-rouge">UNNEST</code> with
+<p>There are several new SQL features: <code class="language-plaintext highlighter-rouge">UNNEST</code> with
 <a href="https://issues.apache.org/jira/browse/CALCITE-855">multiple arguments</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-1250">MAP arguments</a>
 and <a href="https://issues.apache.org/jira/browse/CALCITE-1225">with a JOIN</a>;
@@ -5778,7 +5778,7 @@
 function like the one in Oracle and PostgreSQL.
 We also added support for
 <a href="https://issues.apache.org/jira/browse/CALCITE-1120">SELECT without FROM</a>
-(equivalent to the <code class="highlighter-rouge">VALUES</code> clause, and widely used in MySQL and PostgreSQL),
+(equivalent to the <code class="language-plaintext highlighter-rouge">VALUES</code> clause, and widely used in MySQL and PostgreSQL),
 and added a
 <a href="/docs/adapter.html#jdbc-connect-string-parameters">conformance</a>
 parameter to allow you to selectively enable this and other SQL features.</p>
@@ -5789,37 +5789,37 @@
 on Linux, Mac OS X, Microsoft Windows;
 using Oracle JDK 1.7, 1.8;
 Guava versions 14.0 to 19.0;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <h4 id="new-features-1-8-0">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1177">CALCITE-1177</a>]
-Extend list of supported time units in <code class="highlighter-rouge">EXTRACT</code>, <code class="highlighter-rouge">CEIL</code> and <code class="highlighter-rouge">FLOOR</code> functions
+Extend list of supported time units in <code class="language-plaintext highlighter-rouge">EXTRACT</code>, <code class="language-plaintext highlighter-rouge">CEIL</code> and <code class="language-plaintext highlighter-rouge">FLOOR</code> functions
 (Venki Korukanti)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1259">CALCITE-1259</a>]
 Allow connecting to a single schema without writing a model</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-750">CALCITE-750</a>]
 Support aggregates within windowed aggregates (Gautam Parai)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1250">CALCITE-1250</a>]
-<code class="highlighter-rouge">UNNEST</code> applied to <code class="highlighter-rouge">MAP</code> data type (Johannes Schulte)</li>
+<code class="language-plaintext highlighter-rouge">UNNEST</code> applied to <code class="language-plaintext highlighter-rouge">MAP</code> data type (Johannes Schulte)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1253">CALCITE-1253</a>]
 Elasticsearch adapter (Subhobrata Dey)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1228">CALCITE-1228</a>]
-Bind parameters in <code class="highlighter-rouge">INSERT</code>
+Bind parameters in <code class="language-plaintext highlighter-rouge">INSERT</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1120">CALCITE-1120</a>]
-<code class="highlighter-rouge">SELECT</code> without <code class="highlighter-rouge">FROM</code> (Jimmy Xiang)</li>
+<code class="language-plaintext highlighter-rouge">SELECT</code> without <code class="language-plaintext highlighter-rouge">FROM</code> (Jimmy Xiang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-855">CALCITE-855</a>]
-<code class="highlighter-rouge">UNNEST</code> with multiple arguments</li>
+<code class="language-plaintext highlighter-rouge">UNNEST</code> with multiple arguments</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1225">CALCITE-1225</a>]
-<code class="highlighter-rouge">UNNEST</code> with <code class="highlighter-rouge">JOIN</code>
+<code class="language-plaintext highlighter-rouge">UNNEST</code> with <code class="language-plaintext highlighter-rouge">JOIN</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1115">CALCITE-1115</a>]
-Add <code class="highlighter-rouge">TRANSLATE</code> function with 3 parameters, like the one in Oracle (Javanshir
+Add <code class="language-plaintext highlighter-rouge">TRANSLATE</code> function with 3 parameters, like the one in Oracle (Javanshir
 Yelchiyev)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1168">CALCITE-1168</a>]
-Add <code class="highlighter-rouge">DESCRIBE</code> statement (Arina Ielchiieva)</li>
+Add <code class="language-plaintext highlighter-rouge">DESCRIBE</code> statement (Arina Ielchiieva)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1121">CALCITE-1121</a>]
 Druid adapter
     <ul>
@@ -5835,19 +5835,19 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1235">CALCITE-1235</a>]
-Fully push down <code class="highlighter-rouge">LIMIT</code> + <code class="highlighter-rouge">OFFSET</code> in Cassandra</li>
+Fully push down <code class="language-plaintext highlighter-rouge">LIMIT</code> + <code class="language-plaintext highlighter-rouge">OFFSET</code> in Cassandra</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1216">CALCITE-1216</a>]
-Rule to convert <code class="highlighter-rouge">Filter</code>-on-<code class="highlighter-rouge">Scan</code> to materialized view (Amogh Margoor)</li>
+Rule to convert <code class="language-plaintext highlighter-rouge">Filter</code>-on-<code class="language-plaintext highlighter-rouge">Scan</code> to materialized view (Amogh Margoor)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1200">CALCITE-1200</a>]
-Extend <code class="highlighter-rouge">RelOptUtil.splitJoinCondition</code> to handle <code class="highlighter-rouge">IS NOT DISTINCT FROM</code>
+Extend <code class="language-plaintext highlighter-rouge">RelOptUtil.splitJoinCondition</code> to handle <code class="language-plaintext highlighter-rouge">IS NOT DISTINCT FROM</code>
 (Venki Korukanti)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1211">CALCITE-1211</a>]
-Allow free use of <code class="highlighter-rouge">CassandraSort</code> for <code class="highlighter-rouge">LIMIT</code>
+Allow free use of <code class="language-plaintext highlighter-rouge">CassandraSort</code> for <code class="language-plaintext highlighter-rouge">LIMIT</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1210">CALCITE-1210</a>]
 Allow UUID filtering in Cassandra</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1182">CALCITE-1182</a>]
-Add <code class="highlighter-rouge">ProjectRemoveRule</code> to pre-processing program of materialization
+Add <code class="language-plaintext highlighter-rouge">ProjectRemoveRule</code> to pre-processing program of materialization
 substitution</li>
 </ul>
 
@@ -5855,65 +5855,65 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1281">CALCITE-1281</a>]
-Druid adapter wrongly returns all numeric values as <code class="highlighter-rouge">int</code> or <code class="highlighter-rouge">float</code>
+Druid adapter wrongly returns all numeric values as <code class="language-plaintext highlighter-rouge">int</code> or <code class="language-plaintext highlighter-rouge">float</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1279">CALCITE-1279</a>]
-Druid “select” query gives <code class="highlighter-rouge">ClassCastException</code>
+Druid “select” query gives <code class="language-plaintext highlighter-rouge">ClassCastException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1277">CALCITE-1277</a>]
-Rat fails on source distribution due to <code class="highlighter-rouge">git.properties</code>
+Rat fails on source distribution due to <code class="language-plaintext highlighter-rouge">git.properties</code>
 </li>
   <li>Update KEYS</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1252">CALCITE-1252</a>]
-Handle <code class="highlighter-rouge">ANY</code> type in <code class="highlighter-rouge">RexBuilder.ensureType</code> and <code class="highlighter-rouge">TypeFactory.leastRestrictive</code>
+Handle <code class="language-plaintext highlighter-rouge">ANY</code> type in <code class="language-plaintext highlighter-rouge">RexBuilder.ensureType</code> and <code class="language-plaintext highlighter-rouge">TypeFactory.leastRestrictive</code>
 (Mehand Baid, Minji Kim)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1151">CALCITE-1151</a>]
-Fix <code class="highlighter-rouge">SqlSetOption</code> to correctly handle <code class="highlighter-rouge">SqlOperator.createCall</code>
+Fix <code class="language-plaintext highlighter-rouge">SqlSetOption</code> to correctly handle <code class="language-plaintext highlighter-rouge">SqlOperator.createCall</code>
 (Sudheesh Katkam, Minji Kim)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1106">CALCITE-1106</a>]
-Expose constructor for <code class="highlighter-rouge">ProjectJoinTransposeRule</code> (Minji Kim)</li>
+Expose constructor for <code class="language-plaintext highlighter-rouge">ProjectJoinTransposeRule</code> (Minji Kim)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1107">CALCITE-1107</a>]
-Make <code class="highlighter-rouge">SqlSumEmptyIsZeroAggFunction</code> constructor public (Minji Kim)</li>
+Make <code class="language-plaintext highlighter-rouge">SqlSumEmptyIsZeroAggFunction</code> constructor public (Minji Kim)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1269">CALCITE-1269</a>]
-Replace <code class="highlighter-rouge">IntList</code> with Guava <code class="highlighter-rouge">Ints</code> class</li>
+Replace <code class="language-plaintext highlighter-rouge">IntList</code> with Guava <code class="language-plaintext highlighter-rouge">Ints</code> class</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1239">CALCITE-1239</a>]
 Upgrade to avatica-1.8.0</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1266">CALCITE-1266</a>]
-<code class="highlighter-rouge">RelBuilder.field</code> gets offsets wrong</li>
+<code class="language-plaintext highlighter-rouge">RelBuilder.field</code> gets offsets wrong</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1264">CALCITE-1264</a>]
-<code class="highlighter-rouge">Litmus</code> argument interpolation (Chris Baynes)</li>
+<code class="language-plaintext highlighter-rouge">Litmus</code> argument interpolation (Chris Baynes)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1245">CALCITE-1245</a>]
-Allow <code class="highlighter-rouge">RelBuilder.scan</code> to take qualified table name (Chris Baynes)</li>
-  <li>Move code from <code class="highlighter-rouge">Enumerables</code> to <code class="highlighter-rouge">EnumerableDefaults</code>
+Allow <code class="language-plaintext highlighter-rouge">RelBuilder.scan</code> to take qualified table name (Chris Baynes)</li>
+  <li>Move code from <code class="language-plaintext highlighter-rouge">Enumerables</code> to <code class="language-plaintext highlighter-rouge">EnumerableDefaults</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1246">CALCITE-1246</a>]
-Cleanup duplicate variables in <code class="highlighter-rouge">JoinPushThroughJoinRule</code> (Yi Xinglu)</li>
+Cleanup duplicate variables in <code class="language-plaintext highlighter-rouge">JoinPushThroughJoinRule</code> (Yi Xinglu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1241">CALCITE-1241</a>]
-Add a Freemarker variable for adding non reserved keyword list to <code class="highlighter-rouge">Parser.jj</code>
+Add a Freemarker variable for adding non reserved keyword list to <code class="language-plaintext highlighter-rouge">Parser.jj</code>
 template (Venki Korukanti)
     <ul>
-      <li>Create a table in <code class="highlighter-rouge">SqlParserTest</code> of reserved keywords from various versions
+      <li>Create a table in <code class="language-plaintext highlighter-rouge">SqlParserTest</code> of reserved keywords from various versions
 of the SQL standard</li>
     </ul>
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1150">CALCITE-1150</a>]
 Add dynamic record type and dynamic star for schema-on-read table</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1238">CALCITE-1238</a>]
-Unparsing a query with <code class="highlighter-rouge">LIMIT</code> but no <code class="highlighter-rouge">ORDER BY</code> gives invalid SQL (Emmanuel
+Unparsing a query with <code class="language-plaintext highlighter-rouge">LIMIT</code> but no <code class="language-plaintext highlighter-rouge">ORDER BY</code> gives invalid SQL (Emmanuel
 Bastien)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1230">CALCITE-1230</a>]
-Add SQLSTATE reference data as <code class="highlighter-rouge">enum SqlState</code> in Avatica, and
-deprecate <code class="highlighter-rouge">SqlStateCodes</code> in Calcite</li>
+Add SQLSTATE reference data as <code class="language-plaintext highlighter-rouge">enum SqlState</code> in Avatica, and
+deprecate <code class="language-plaintext highlighter-rouge">SqlStateCodes</code> in Calcite</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1199">CALCITE-1199</a>]
-Incorrect trimming of <code class="highlighter-rouge">CHAR</code> when performing cast to <code class="highlighter-rouge">VARCHAR</code>
+Incorrect trimming of <code class="language-plaintext highlighter-rouge">CHAR</code> when performing cast to <code class="language-plaintext highlighter-rouge">VARCHAR</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1219">CALCITE-1219</a>]
-Add method <code class="highlighter-rouge">SqlOperatorBinding.isOperandLiteral()</code> (Hsuan-Yi Chu)</li>
+Add method <code class="language-plaintext highlighter-rouge">SqlOperatorBinding.isOperandLiteral()</code> (Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1222">CALCITE-1222</a>]
-<code class="highlighter-rouge">DatabaseMetaData.getColumnLabel</code> returns null when query has <code class="highlighter-rouge">ORDER BY</code>
+<code class="language-plaintext highlighter-rouge">DatabaseMetaData.getColumnLabel</code> returns null when query has <code class="language-plaintext highlighter-rouge">ORDER BY</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1215">CALCITE-1215</a>]
-Fix missing override in <code class="highlighter-rouge">CassandraTable</code>
+Fix missing override in <code class="language-plaintext highlighter-rouge">CassandraTable</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1212">CALCITE-1212</a>]
 Fix NPE on some Cassandra projects</li>
@@ -5921,20 +5921,20 @@
   <li>Move HTTP utilities from Splunk adapter to core</li>
   <li>Test case for
 [<a href="https://issues.apache.org/jira/browse/PHOENIX-2767">PHOENIX-2767</a>],
-non-constant in <code class="highlighter-rouge">IN</code>
+non-constant in <code class="language-plaintext highlighter-rouge">IN</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1166">CALCITE-1166</a>]
-Disallow sub-classes of <code class="highlighter-rouge">RelOptRuleOperand</code>
+Disallow sub-classes of <code class="language-plaintext highlighter-rouge">RelOptRuleOperand</code>
 </li>
   <li>Remove all calls to deprecated methods</li>
-  <li>Add class <code class="highlighter-rouge">ConsList</code>
+  <li>Add class <code class="language-plaintext highlighter-rouge">ConsList</code>
 </li>
   <li>More of [<a href="https://issues.apache.org/jira/browse/CALCITE-999">CALCITE-999</a>]
 Clean up maven POM files</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1204">CALCITE-1204</a>]
 Fix invalid Javadoc and suppress checkstyle “errors”</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1170">CALCITE-1170</a>]
-Allow <code class="highlighter-rouge">SqlSetOperator</code> to be overridden, as a regular <code class="highlighter-rouge">SqlOperator</code> can
+Allow <code class="language-plaintext highlighter-rouge">SqlSetOperator</code> to be overridden, as a regular <code class="language-plaintext highlighter-rouge">SqlOperator</code> can
 (Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-746">CALCITE-746</a>]
 Allow apache-rat to be run outside of release process</li>
@@ -5946,7 +5946,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1273">CALCITE-1273</a>]
 Following
 [<a href="https://issues.apache.org/jira/browse/CALCITE-306">CALCITE-306</a>],
-update references to <code class="highlighter-rouge">EnumerableTableAccessRel</code> to <code class="highlighter-rouge">EnumerableTableScan</code>
+update references to <code class="language-plaintext highlighter-rouge">EnumerableTableAccessRel</code> to <code class="language-plaintext highlighter-rouge">EnumerableTableScan</code>
 </li>
   <li>Fix typo in SQL (Yi Xinglu)</li>
   <li>Site: add committer, and post slides/video from Polyalgebra talk</li>
@@ -5979,13 +5979,13 @@
 
 <p>This release adds an
 <a href="https://issues.apache.org/jira/browse/CALCITE-1066">Oracle-compatibility mode</a>.
-If you add <code class="highlighter-rouge">fun=oracle</code> to your JDBC connect string, you get all of
+If you add <code class="language-plaintext highlighter-rouge">fun=oracle</code> to your JDBC connect string, you get all of
 the standard operators and functions plus Oracle-specific functions
-<code class="highlighter-rouge">DECODE</code>, <code class="highlighter-rouge">NVL</code>, <code class="highlighter-rouge">LTRIM</code>, <code class="highlighter-rouge">RTRIM</code>, <code class="highlighter-rouge">GREATEST</code> and <code class="highlighter-rouge">LEAST</code>. We look
+<code class="language-plaintext highlighter-rouge">DECODE</code>, <code class="language-plaintext highlighter-rouge">NVL</code>, <code class="language-plaintext highlighter-rouge">LTRIM</code>, <code class="language-plaintext highlighter-rouge">RTRIM</code>, <code class="language-plaintext highlighter-rouge">GREATEST</code> and <code class="language-plaintext highlighter-rouge">LEAST</code>. We look
 forward to adding more functions, and compatibility modes for other
 databases, in future releases.</p>
 
-<p>We’ve replaced our use of JUL (<code class="highlighter-rouge">java.util.logging</code>)
+<p>We’ve replaced our use of JUL (<code class="language-plaintext highlighter-rouge">java.util.logging</code>)
 with <a href="https://slf4j.org/">SLF4J</a>. SLF4J provides an API which Calcite can use
 independent of the logging implementation. This ultimately provides additional
 flexibility to users, allowing them to configure Calcite’s logging within their
@@ -5993,24 +5993,24 @@
 [<a href="https://issues.apache.org/jira/browse/CALCITE-669">CALCITE-669</a>].</p>
 
 <p>For users experienced with configuring JUL in Calcite previously, there are some
-differences as some the JUL logging levels do not exist in SLF4J: <code class="highlighter-rouge">FINE</code>,
-<code class="highlighter-rouge">FINER</code>, and <code class="highlighter-rouge">FINEST</code>, specifically. To deal with this, <code class="highlighter-rouge">FINE</code> was mapped
-to SLF4J’s <code class="highlighter-rouge">DEBUG</code> level, while <code class="highlighter-rouge">FINER</code> and <code class="highlighter-rouge">FINEST</code> were mapped to SLF4J’s <code class="highlighter-rouge">TRACE</code>.</p>
+differences as some the JUL logging levels do not exist in SLF4J: <code class="language-plaintext highlighter-rouge">FINE</code>,
+<code class="language-plaintext highlighter-rouge">FINER</code>, and <code class="language-plaintext highlighter-rouge">FINEST</code>, specifically. To deal with this, <code class="language-plaintext highlighter-rouge">FINE</code> was mapped
+to SLF4J’s <code class="language-plaintext highlighter-rouge">DEBUG</code> level, while <code class="language-plaintext highlighter-rouge">FINER</code> and <code class="language-plaintext highlighter-rouge">FINEST</code> were mapped to SLF4J’s <code class="language-plaintext highlighter-rouge">TRACE</code>.</p>
 
 <p>Compatibility: This release is tested
 on Linux, Mac OS X, Microsoft Windows;
 using Oracle JDK 1.7, 1.8;
 Guava versions 12.0.1 to 19.0;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <h4 id="new-features-1-7-0">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1124">CALCITE-1124</a>]
-Add <code class="highlighter-rouge">TIMESTAMPADD</code>, <code class="highlighter-rouge">TIMESTAMPDIFF</code> functions (Arina Ielchiieva)</li>
+Add <code class="language-plaintext highlighter-rouge">TIMESTAMPADD</code>, <code class="language-plaintext highlighter-rouge">TIMESTAMPDIFF</code> functions (Arina Ielchiieva)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1066">CALCITE-1066</a>]
-Add Oracle function table, and functions <code class="highlighter-rouge">DECODE</code>, <code class="highlighter-rouge">NVL</code>, <code class="highlighter-rouge">LTRIM</code>, <code class="highlighter-rouge">RTRIM</code>,
-<code class="highlighter-rouge">GREATEST</code>, <code class="highlighter-rouge">LEAST</code>
+Add Oracle function table, and functions <code class="language-plaintext highlighter-rouge">DECODE</code>, <code class="language-plaintext highlighter-rouge">NVL</code>, <code class="language-plaintext highlighter-rouge">LTRIM</code>, <code class="language-plaintext highlighter-rouge">RTRIM</code>,
+<code class="language-plaintext highlighter-rouge">GREATEST</code>, <code class="language-plaintext highlighter-rouge">LEAST</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1080">CALCITE-1080</a>]
 Cassandra adapter (Michael Mior)</li>
@@ -6025,28 +6025,28 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1158">CALCITE-1158</a>]
-Make <code class="highlighter-rouge">AggregateRemoveRule</code> extensible</li>
+Make <code class="language-plaintext highlighter-rouge">AggregateRemoveRule</code> extensible</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1116">CALCITE-1116</a>]
-Extend <code class="highlighter-rouge">simplify</code> for reducing expressions</li>
+Extend <code class="language-plaintext highlighter-rouge">simplify</code> for reducing expressions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1104">CALCITE-1104</a>]
 Materialized views in Cassandra (Michael Mior)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1130">CALCITE-1130</a>]
-Add support for operators <code class="highlighter-rouge">IS NULL</code> and <code class="highlighter-rouge">IS NOT NULL</code> in
-<code class="highlighter-rouge">RexImplicationChecker</code> (Amogh Margoor)</li>
+Add support for operators <code class="language-plaintext highlighter-rouge">IS NULL</code> and <code class="language-plaintext highlighter-rouge">IS NOT NULL</code> in
+<code class="language-plaintext highlighter-rouge">RexImplicationChecker</code> (Amogh Margoor)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1129">CALCITE-1129</a>]
-Extend <code class="highlighter-rouge">JoinUnionTransposeRule</code> to match <code class="highlighter-rouge">Union</code> instead of <code class="highlighter-rouge">LogicalUnion</code>
+Extend <code class="language-plaintext highlighter-rouge">JoinUnionTransposeRule</code> to match <code class="language-plaintext highlighter-rouge">Union</code> instead of <code class="language-plaintext highlighter-rouge">LogicalUnion</code>
 (Vasia Kalavri)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1109">CALCITE-1109</a>]
-Fix up condition when pushing <code class="highlighter-rouge">Filter</code> through <code class="highlighter-rouge">Aggregate</code> (Amogh Margoor)</li>
+Fix up condition when pushing <code class="language-plaintext highlighter-rouge">Filter</code> through <code class="language-plaintext highlighter-rouge">Aggregate</code> (Amogh Margoor)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1100">CALCITE-1100</a>]
-If constant reduction no-ops, don’t create a new <code class="highlighter-rouge">RelNode</code> (Hsuan-Yi Chu)</li>
+If constant reduction no-ops, don’t create a new <code class="language-plaintext highlighter-rouge">RelNode</code> (Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1076">CALCITE-1076</a>]
-Update <code class="highlighter-rouge">RelMdDistribution</code> to match other metadata APIs (Ted Xu)</li>
+Update <code class="language-plaintext highlighter-rouge">RelMdDistribution</code> to match other metadata APIs (Ted Xu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1056">CALCITE-1056</a>]
-In <code class="highlighter-rouge">RelBuilder</code>, simplify predicates, and optimize away <code class="highlighter-rouge">WHERE FALSE</code>
+In <code class="language-plaintext highlighter-rouge">RelBuilder</code>, simplify predicates, and optimize away <code class="language-plaintext highlighter-rouge">WHERE FALSE</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1059">CALCITE-1059</a>]
-Not valid to convert <code class="highlighter-rouge">Aggregate</code> on empty to empty if its <code class="highlighter-rouge">GROUP BY</code> key is empty</li>
+Not valid to convert <code class="language-plaintext highlighter-rouge">Aggregate</code> on empty to empty if its <code class="language-plaintext highlighter-rouge">GROUP BY</code> key is empty</li>
 </ul>
 
 <h4 id="fixes-1-7-0">Bug-fixes, API changes and minor enhancements</h4>
@@ -6061,18 +6061,18 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1156">CALCITE-1156</a>]
 Increase Jetty version to 9.2.15.v20160210</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1064">CALCITE-1064</a>]
-Address problematic <code class="highlighter-rouge">maven-remote-resources-plugin</code>
+Address problematic <code class="language-plaintext highlighter-rouge">maven-remote-resources-plugin</code>
 </li>
-  <li>In <code class="highlighter-rouge">TimeUnit</code> add <code class="highlighter-rouge">WEEK</code>, <code class="highlighter-rouge">QUARTER</code>, <code class="highlighter-rouge">MICROSECOND</code> values, and change type of
-<code class="highlighter-rouge">multiplier</code>
+  <li>In <code class="language-plaintext highlighter-rouge">TimeUnit</code> add <code class="language-plaintext highlighter-rouge">WEEK</code>, <code class="language-plaintext highlighter-rouge">QUARTER</code>, <code class="language-plaintext highlighter-rouge">MICROSECOND</code> values, and change type of
+<code class="language-plaintext highlighter-rouge">multiplier</code>
 </li>
-  <li>Deprecate <code class="highlighter-rouge">SqlLiteral.SqlSymbol</code>; <code class="highlighter-rouge">SqlSymbol</code> can now wrap any enum</li>
+  <li>Deprecate <code class="language-plaintext highlighter-rouge">SqlLiteral.SqlSymbol</code>; <code class="language-plaintext highlighter-rouge">SqlSymbol</code> can now wrap any enum</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1078">CALCITE-1078</a>]
 Detach avatica from the core calcite Maven project
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1077">CALCITE-1077</a>]
 Switch Calcite to the released Avatica 1.7.1</li>
-      <li>Update <code class="highlighter-rouge">groupId</code> when Calcite POMs reference Avatica modules</li>
+      <li>Update <code class="language-plaintext highlighter-rouge">groupId</code> when Calcite POMs reference Avatica modules</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1137">CALCITE-1137</a>]
 Exclude Avatica from Calcite source release</li>
     </ul>
@@ -6080,7 +6080,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1111">CALCITE-1111</a>]
 Upgrade Guava, and test on a range of Guava versions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1054">CALCITE-1054</a>]
-Wrong code generation for <code class="highlighter-rouge">TIMESTAMP</code> values that may be <code class="highlighter-rouge">NULL</code>
+Wrong code generation for <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> values that may be <code class="language-plaintext highlighter-rouge">NULL</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-604">CALCITE-604</a>]
 Tune metadata by generating a dispatcher at runtime</li>
@@ -6093,21 +6093,21 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-553">CALCITE-553</a>]
 In maven, enable compiler profiles by default</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1031">CALCITE-1031</a>]
-In prepared statement, <code class="highlighter-rouge">CsvScannableTable.scan</code> is called twice</li>
+In prepared statement, <code class="language-plaintext highlighter-rouge">CsvScannableTable.scan</code> is called twice</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1046">CALCITE-1046</a>]
 Matchers for testing SQL query results</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1083">CALCITE-1083</a>]
-<code class="highlighter-rouge">SqlNode.equalsDeep</code> has O(n ^ 2) performance</li>
+<code class="language-plaintext highlighter-rouge">SqlNode.equalsDeep</code> has O(n ^ 2) performance</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-998">CALCITE-998</a>]
-Exception when calling <code class="highlighter-rouge">STDDEV_SAMP</code>, <code class="highlighter-rouge">STDDEV_POP</code> (Matthew Shaer)</li>
+Exception when calling <code class="language-plaintext highlighter-rouge">STDDEV_SAMP</code>, <code class="language-plaintext highlighter-rouge">STDDEV_POP</code> (Matthew Shaer)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1071">CALCITE-1071</a>]
 Improve hash functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1072">CALCITE-1072</a>]
-CSV adapter incorrectly parses <code class="highlighter-rouge">TIMESTAMP</code> values after noon (Chris Albright)</li>
+CSV adapter incorrectly parses <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> values after noon (Chris Albright)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-669">CALCITE-669</a>]
 Mass removal of Java Logging for SLF4J</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1068">CALCITE-1068</a>]
-Deprecate <code class="highlighter-rouge">Stacks</code>
+Deprecate <code class="language-plaintext highlighter-rouge">Stacks</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1067">CALCITE-1067</a>]
 Test failures due to clashing temporary table names</li>
@@ -6147,8 +6147,8 @@
 couple of features make it easier to handle complex queries.</p>
 
 <p>[<a href="https://issues.apache.org/jira/browse/CALCITE-816">CALCITE-816</a>]
-allows you to represent sub-queries (<code class="highlighter-rouge">EXISTS</code>, <code class="highlighter-rouge">IN</code> and scalar) as
-<code class="highlighter-rouge">RexSubQuery</code>, a kind of expression in the relational algebra. Until
+allows you to represent sub-queries (<code class="language-plaintext highlighter-rouge">EXISTS</code>, <code class="language-plaintext highlighter-rouge">IN</code> and scalar) as
+<code class="language-plaintext highlighter-rouge">RexSubQuery</code>, a kind of expression in the relational algebra. Until
 now, the sql-to-rel converter was burdened with expanding sub-queries,
 and people creating relational algebra directly (or via RelBuilder)
 could only create ‘flat’ relational expressions. Now we have planner
@@ -6161,10 +6161,10 @@
 expression’s output rows. From the predicates we can deduce which
 columns are constant, and following
 [<a href="https://issues.apache.org/jira/browse/CALCITE-1023">CALCITE-1023</a>]
-we can now remove constant columns from <code class="highlighter-rouge">GROUP BY</code> keys.</p>
+we can now remove constant columns from <code class="language-plaintext highlighter-rouge">GROUP BY</code> keys.</p>
 
 <p>Metadata is often computed recursively, and it is hard to safely and
-efficiently calculate metadata on a graph of <code class="highlighter-rouge">RelNode</code>s that is large,
+efficiently calculate metadata on a graph of <code class="language-plaintext highlighter-rouge">RelNode</code>s that is large,
 frequently cyclic, and constantly changing.
 [<a href="https://issues.apache.org/jira/browse/CALCITE-794">CALCITE-794</a>]
 introduces a context to each metadata call. That context can detect
@@ -6175,45 +6175,45 @@
 <p>Compatibility: This release is tested
 on Linux, Mac OS X, Microsoft Windows;
 using Oracle JDK 1.7, 1.8;
-other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
+other software versions as specified in <code class="language-plaintext highlighter-rouge">pom.xml</code>.</p>
 
 <h4 id="new-features-1-6-0">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-816">CALCITE-816</a>]
-Represent sub-query as a <code class="highlighter-rouge">RexNode</code>
+Represent sub-query as a <code class="language-plaintext highlighter-rouge">RexNode</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-854">CALCITE-854</a>]
-Implement <code class="highlighter-rouge">UNNEST ... WITH ORDINALITY</code>
+Implement <code class="language-plaintext highlighter-rouge">UNNEST ... WITH ORDINALITY</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1003">CALCITE-1003</a>]
-Utility to convert <code class="highlighter-rouge">RelNode</code> to SQL (Amogh Margoor)
+Utility to convert <code class="language-plaintext highlighter-rouge">RelNode</code> to SQL (Amogh Margoor)
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1010">CALCITE-1010</a>]
-<code class="highlighter-rouge">FETCH/LIMIT</code> and <code class="highlighter-rouge">OFFSET</code> in RelToSqlConverter (Amogh Margoor)</li>
-      <li>Move code from <code class="highlighter-rouge">JdbcImplementor</code> and <code class="highlighter-rouge">JdbcRules</code> to new class
-<code class="highlighter-rouge">SqlImplementor</code>
+<code class="language-plaintext highlighter-rouge">FETCH/LIMIT</code> and <code class="language-plaintext highlighter-rouge">OFFSET</code> in RelToSqlConverter (Amogh Margoor)</li>
+      <li>Move code from <code class="language-plaintext highlighter-rouge">JdbcImplementor</code> and <code class="language-plaintext highlighter-rouge">JdbcRules</code> to new class
+<code class="language-plaintext highlighter-rouge">SqlImplementor</code>
 </li>
-      <li>Deduce dialect’s null collation from <code class="highlighter-rouge">DatabaseMetaData</code>
+      <li>Deduce dialect’s null collation from <code class="language-plaintext highlighter-rouge">DatabaseMetaData</code>
 </li>
-      <li>Fix <code class="highlighter-rouge">RelToSqlConverterTest</code> on Windows</li>
+      <li>Fix <code class="language-plaintext highlighter-rouge">RelToSqlConverterTest</code> on Windows</li>
     </ul>
   </li>
   <li>Following
 [<a href="https://issues.apache.org/jira/browse/CALCITE-897">CALCITE-897</a>],
-empty string for <code class="highlighter-rouge">boolean</code> properties means true</li>
+empty string for <code class="language-plaintext highlighter-rouge">boolean</code> properties means true</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-992">CALCITE-992</a>]
-Validate and resolve sequence reference as a <code class="highlighter-rouge">Table</code> object</li>
+Validate and resolve sequence reference as a <code class="language-plaintext highlighter-rouge">Table</code> object</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-968">CALCITE-968</a>]
 Stream-to-relation and stream-to-stream joins (Milinda Pathirage)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1041">CALCITE-1041</a>]
-User-defined function that returns <code class="highlighter-rouge">DATE</code> or <code class="highlighter-rouge">TIMESTAMP</code> value</li>
+User-defined function that returns <code class="language-plaintext highlighter-rouge">DATE</code> or <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> value</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-986">CALCITE-986</a>]
-User-defined function with <code class="highlighter-rouge">DATE</code> or <code class="highlighter-rouge">TIMESTAMP</code> parameters</li>
+User-defined function with <code class="language-plaintext highlighter-rouge">DATE</code> or <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> parameters</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-958">CALCITE-958</a>]
 Overloaded Table Functions with named arguments (Julien Le Dem)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-970">CALCITE-970</a>]
-If <code class="highlighter-rouge">NULLS FIRST</code>/<code class="highlighter-rouge">NULLS LAST</code> not specified, sort <code class="highlighter-rouge">NULL</code> values high</li>
+If <code class="language-plaintext highlighter-rouge">NULLS FIRST</code>/<code class="language-plaintext highlighter-rouge">NULLS LAST</code> not specified, sort <code class="language-plaintext highlighter-rouge">NULL</code> values high</li>
 </ul>
 
 <h4 id="avatica-1-6-0">Avatica features and bug-fixes</h4>
@@ -6222,18 +6222,18 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1040">CALCITE-1040</a>]
 Differentiate better between arrays and scalars in protobuf</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-934">CALCITE-934</a>]
-Use an OS-assigned ephemeral port for <code class="highlighter-rouge">CalciteRemoteDriverTest</code>
+Use an OS-assigned ephemeral port for <code class="language-plaintext highlighter-rouge">CalciteRemoteDriverTest</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-767">CALCITE-767</a>]
 Create Avatica RPC endpoints for commit and rollback commands</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-983">CALCITE-983</a>]
-Handle nulls in <code class="highlighter-rouge">ErrorResponse</code>’s protobuf representation better</li>
+Handle nulls in <code class="language-plaintext highlighter-rouge">ErrorResponse</code>’s protobuf representation better</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-989">CALCITE-989</a>]
 Add server’s address in each response</li>
   <li>Fix some bugs found by static analysis</li>
-  <li>Make all <code class="highlighter-rouge">equals</code> and <code class="highlighter-rouge">hashCode</code> methods uniform</li>
+  <li>Make all <code class="language-plaintext highlighter-rouge">equals</code> and <code class="language-plaintext highlighter-rouge">hashCode</code> methods uniform</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-962">CALCITE-962</a>]
-Propagate the cause, not just the cause’s message, from <code class="highlighter-rouge">JdbcMeta</code>
+Propagate the cause, not just the cause’s message, from <code class="language-plaintext highlighter-rouge">JdbcMeta</code>
 </li>
 </ul>
 
@@ -6241,65 +6241,65 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1057">CALCITE-1057</a>]
-Add <code class="highlighter-rouge">RelMetadataProvider</code> parameter to standard planner <code class="highlighter-rouge">Program</code>s</li>
+Add <code class="language-plaintext highlighter-rouge">RelMetadataProvider</code> parameter to standard planner <code class="language-plaintext highlighter-rouge">Program</code>s</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1055">CALCITE-1055</a>]
-<code class="highlighter-rouge">SubQueryRemoveRule</code> should create <code class="highlighter-rouge">Correlate</code>, not <code class="highlighter-rouge">Join</code>, for correlated
+<code class="language-plaintext highlighter-rouge">SubQueryRemoveRule</code> should create <code class="language-plaintext highlighter-rouge">Correlate</code>, not <code class="language-plaintext highlighter-rouge">Join</code>, for correlated
 sub-queries</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-978">CALCITE-978</a>]
-Enable customizing constant folding rule behavior when a <code class="highlighter-rouge">Filter</code> simplifies
+Enable customizing constant folding rule behavior when a <code class="language-plaintext highlighter-rouge">Filter</code> simplifies
 to false (Jason Altekruse)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-977">CALCITE-977</a>]
-Make the constant expression <code class="highlighter-rouge">Executor</code> configurable in <code class="highlighter-rouge">FrameworkConfig</code>
+Make the constant expression <code class="language-plaintext highlighter-rouge">Executor</code> configurable in <code class="language-plaintext highlighter-rouge">FrameworkConfig</code>
 (Jason Altekruse)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1058">CALCITE-1058</a>]
-Add method <code class="highlighter-rouge">RelBuilder.empty</code>, and rewrite LIMIT 0 and WHERE FALSE to it</li>
+Add method <code class="language-plaintext highlighter-rouge">RelBuilder.empty</code>, and rewrite LIMIT 0 and WHERE FALSE to it</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-996">CALCITE-996</a>]
-Simplify predicate when we create a <code class="highlighter-rouge">Filter</code> operator</li>
-  <li>Simplify <code class="highlighter-rouge">RexProgram</code>, in particular <code class="highlighter-rouge">(NOT CASE ... END) IS TRUE</code>, which
-occurs in when <code class="highlighter-rouge">NOT IN</code> is expanded</li>
+Simplify predicate when we create a <code class="language-plaintext highlighter-rouge">Filter</code> operator</li>
+  <li>Simplify <code class="language-plaintext highlighter-rouge">RexProgram</code>, in particular <code class="language-plaintext highlighter-rouge">(NOT CASE ... END) IS TRUE</code>, which
+occurs in when <code class="language-plaintext highlighter-rouge">NOT IN</code> is expanded</li>
   <li>Fix variant of
 [<a href="https://issues.apache.org/jira/browse/CALCITE-923">CALCITE-923</a>]
-that occurs in <code class="highlighter-rouge">RelOptRulesTest.testPushFilterPastProject</code>
+that occurs in <code class="language-plaintext highlighter-rouge">RelOptRulesTest.testPushFilterPastProject</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1023">CALCITE-1023</a>]
 and
 [<a href="https://issues.apache.org/jira/browse/CALCITE-1038">CALCITE-1038</a>]
-Planner rule that removes <code class="highlighter-rouge">Aggregate</code> keys that are constant</li>
+Planner rule that removes <code class="language-plaintext highlighter-rouge">Aggregate</code> keys that are constant</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1018">CALCITE-1018</a>]
-<code class="highlighter-rouge">SortJoinTransposeRule</code> not firing due to <code class="highlighter-rouge">getMaxRowCount(RelSubset)</code> returning
+<code class="language-plaintext highlighter-rouge">SortJoinTransposeRule</code> not firing due to <code class="language-plaintext highlighter-rouge">getMaxRowCount(RelSubset)</code> returning
 null</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1019">CALCITE-1019</a>]
-<code class="highlighter-rouge">RelMdUtil.checkInputForCollationAndLimit()</code> was wrong with <code class="highlighter-rouge">alreadySorted</code>
+<code class="language-plaintext highlighter-rouge">RelMdUtil.checkInputForCollationAndLimit()</code> was wrong with <code class="language-plaintext highlighter-rouge">alreadySorted</code>
 check</li>
   <li>Not safe to use ‘=’ for predicates on constant expressions that might be null</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-993">CALCITE-993</a>]
 Pull up all constant expressions, not just literals, as predicates</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1005">CALCITE-1005</a>]
-Handle null in <code class="highlighter-rouge">getMaxRowCount</code> for <code class="highlighter-rouge">Aggregate</code> (Mike Hinchey)</li>
+Handle null in <code class="language-plaintext highlighter-rouge">getMaxRowCount</code> for <code class="language-plaintext highlighter-rouge">Aggregate</code> (Mike Hinchey)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-995">CALCITE-995</a>]
 Sort transpose rules might fall in an infinite loop</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-987">CALCITE-987</a>]
-Pushing <code class="highlighter-rouge">LIMIT 0</code> results in an infinite loop (Pengcheng Xiong)</li>
+Pushing <code class="language-plaintext highlighter-rouge">LIMIT 0</code> results in an infinite loop (Pengcheng Xiong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-988">CALCITE-988</a>]
-<code class="highlighter-rouge">FilterToProjectUnifyRule.invert(MutableRel, MutableRel, MutableProject)</code>
+<code class="language-plaintext highlighter-rouge">FilterToProjectUnifyRule.invert(MutableRel, MutableRel, MutableProject)</code>
 works incorrectly</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-969">CALCITE-969</a>]
-Composite <code class="highlighter-rouge">EnumerableSort</code> with <code class="highlighter-rouge">DESC</code> wrongly sorts <code class="highlighter-rouge">NULL</code> values low</li>
+Composite <code class="language-plaintext highlighter-rouge">EnumerableSort</code> with <code class="language-plaintext highlighter-rouge">DESC</code> wrongly sorts <code class="language-plaintext highlighter-rouge">NULL</code> values low</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-959">CALCITE-959</a>]
-Add description to <code class="highlighter-rouge">SortProjectTransposeRule</code>’s constructor</li>
+Add description to <code class="language-plaintext highlighter-rouge">SortProjectTransposeRule</code>’s constructor</li>
 </ul>
 
 <h4 id="fixes-1-6-0">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1060">CALCITE-1060</a>]
-Fix test deadlock by initializing <code class="highlighter-rouge">DriverManager</code> before registering <code class="highlighter-rouge">AlternatingDriver</code>
+Fix test deadlock by initializing <code class="language-plaintext highlighter-rouge">DriverManager</code> before registering <code class="language-plaintext highlighter-rouge">AlternatingDriver</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1047">CALCITE-1047</a>]
-<code class="highlighter-rouge">ChunkList.clear</code> throws <code class="highlighter-rouge">AssertionError</code>
+<code class="language-plaintext highlighter-rouge">ChunkList.clear</code> throws <code class="language-plaintext highlighter-rouge">AssertionError</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1053">CALCITE-1053</a>]
-CPU spin, <code class="highlighter-rouge">ReflectiveRelMetadataProvider.apply</code> waiting for <code class="highlighter-rouge">HashMap.get</code>
+CPU spin, <code class="language-plaintext highlighter-rouge">ReflectiveRelMetadataProvider.apply</code> waiting for <code class="language-plaintext highlighter-rouge">HashMap.get</code>
 </li>
   <li>Upgrade toolbox, to fix line length issue on Windows</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1051">CALCITE-1051</a>]
@@ -6307,43 +6307,43 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-975">CALCITE-975</a>]
 Allow Planner to return validated row type together with SqlNode</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1020">CALCITE-1020</a>]
-Add <code class="highlighter-rouge">MILLISECOND</code> in <code class="highlighter-rouge">TimeUnit</code> (Pengcheng Xiong)</li>
+Add <code class="language-plaintext highlighter-rouge">MILLISECOND</code> in <code class="language-plaintext highlighter-rouge">TimeUnit</code> (Pengcheng Xiong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-794">CALCITE-794</a>]
 Detect cycles when computing statistics
 (<strong>This is a breaking change</strong>.)</li>
-  <li>Tune algorithm that deduces the return type of <code class="highlighter-rouge">AND</code> expression</li>
+  <li>Tune algorithm that deduces the return type of <code class="language-plaintext highlighter-rouge">AND</code> expression</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-842">CALCITE-842</a>]
 Decorrelator gets field offsets confused if fields have been trimmed</li>
-  <li>Fix <code class="highlighter-rouge">NullPointerException</code> in <code class="highlighter-rouge">SqlJoin.toString()</code>
+  <li>Fix <code class="language-plaintext highlighter-rouge">NullPointerException</code> in <code class="language-plaintext highlighter-rouge">SqlJoin.toString()</code>
 </li>
-  <li>Add <code class="highlighter-rouge">ImmutableBitSet.rebuild()</code>
+  <li>Add <code class="language-plaintext highlighter-rouge">ImmutableBitSet.rebuild()</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-915">CALCITE-915</a>]
-Tests now unset <code class="highlighter-rouge">ThreadLocal</code> values on exit</li>
+Tests now unset <code class="language-plaintext highlighter-rouge">ThreadLocal</code> values on exit</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1036">CALCITE-1036</a>]
-<code class="highlighter-rouge">DiffRepository</code> should not insert new resources at the end of the repository</li>
+<code class="language-plaintext highlighter-rouge">DiffRepository</code> should not insert new resources at the end of the repository</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-955">CALCITE-955</a>]
-<code class="highlighter-rouge">Litmus</code> (continuation-passing style for methods that check invariants)</li>
+<code class="language-plaintext highlighter-rouge">Litmus</code> (continuation-passing style for methods that check invariants)</li>
   <li>
-<code class="highlighter-rouge">RelBuilder.project</code> now does nothing if asked to project the identity with
+<code class="language-plaintext highlighter-rouge">RelBuilder.project</code> now does nothing if asked to project the identity with
 the same field names</li>
-  <li>Deprecate some <code class="highlighter-rouge">Util</code> methods, and upgrade last Maven modules to JDK 1.7</li>
-  <li>Document <code class="highlighter-rouge">RelOptPredicateList</code>
+  <li>Deprecate some <code class="language-plaintext highlighter-rouge">Util</code> methods, and upgrade last Maven modules to JDK 1.7</li>
+  <li>Document <code class="language-plaintext highlighter-rouge">RelOptPredicateList</code>
 </li>
-  <li>Add <code class="highlighter-rouge">ImmutableNullableList.copyOf(Iterable)</code>
+  <li>Add <code class="language-plaintext highlighter-rouge">ImmutableNullableList.copyOf(Iterable)</code>
 </li>
-  <li>Fix “endPosTable already set” error from <code class="highlighter-rouge">javac</code>
+  <li>Fix “endPosTable already set” error from <code class="language-plaintext highlighter-rouge">javac</code>
 </li>
-  <li>Add benchmark of <code class="highlighter-rouge">Parser.create(sql).parseQuery()</code>
+  <li>Add benchmark of <code class="language-plaintext highlighter-rouge">Parser.create(sql).parseQuery()</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1042">CALCITE-1042</a>]
-Ensure that <code class="highlighter-rouge">FILTER</code> is <code class="highlighter-rouge">BOOLEAN NOT NULL</code>
+Ensure that <code class="language-plaintext highlighter-rouge">FILTER</code> is <code class="language-plaintext highlighter-rouge">BOOLEAN NOT NULL</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1039">CALCITE-1039</a>]
-Assign a <code class="highlighter-rouge">SqlKind</code> value for each built-in aggregate function</li>
+Assign a <code class="language-plaintext highlighter-rouge">SqlKind</code> value for each built-in aggregate function</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1030">CALCITE-1030</a>]
-JSON <code class="highlighter-rouge">ModelHandler</code> calling <code class="highlighter-rouge">SchemaPlus.setCacheEnabled()</code> causes
-<code class="highlighter-rouge">UnsupportedOperationException</code> when using <code class="highlighter-rouge">SimpleCalciteSchema</code>
+JSON <code class="language-plaintext highlighter-rouge">ModelHandler</code> calling <code class="language-plaintext highlighter-rouge">SchemaPlus.setCacheEnabled()</code> causes
+<code class="language-plaintext highlighter-rouge">UnsupportedOperationException</code> when using <code class="language-plaintext highlighter-rouge">SimpleCalciteSchema</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1028">CALCITE-1028</a>]
 Move populate materializations after sql-to-rel conversion</li>
@@ -6352,38 +6352,38 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1032">CALCITE-1032</a>]
 Verify javadoc of private methods</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1015">CALCITE-1015</a>]
-<code class="highlighter-rouge">OFFSET 0</code> causes <code class="highlighter-rouge">AssertionError</code> (Zhen Wang)</li>
+<code class="language-plaintext highlighter-rouge">OFFSET 0</code> causes <code class="language-plaintext highlighter-rouge">AssertionError</code> (Zhen Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1024">CALCITE-1024</a>]
 In a planner test, if a rule should have no effect, state that explicitly</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1016">CALCITE-1016</a>]
-<code class="highlighter-rouge">GROUP BY *constant*</code> on empty relation should return 0 rows</li>
+<code class="language-plaintext highlighter-rouge">GROUP BY *constant*</code> on empty relation should return 0 rows</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1022">CALCITE-1022</a>]
-Rename <code class="highlighter-rouge">.oq</code> Quidem files to <code class="highlighter-rouge">.iq</code>
+Rename <code class="language-plaintext highlighter-rouge">.oq</code> Quidem files to <code class="language-plaintext highlighter-rouge">.iq</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-980">CALCITE-980</a>]
-Fix <code class="highlighter-rouge">AND</code> and <code class="highlighter-rouge">OR</code> implementation in <code class="highlighter-rouge">Enumerable</code> convention</li>
+Fix <code class="language-plaintext highlighter-rouge">AND</code> and <code class="language-plaintext highlighter-rouge">OR</code> implementation in <code class="language-plaintext highlighter-rouge">Enumerable</code> convention</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-459">CALCITE-459</a>]
 When parsing SQL, allow single line comment on last line (Zhen Wang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1009">CALCITE-1009</a>]
-<code class="highlighter-rouge">SelfPopulatingList</code> is not thread-safe</li>
+<code class="language-plaintext highlighter-rouge">SelfPopulatingList</code> is not thread-safe</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1008">CALCITE-1008</a>]
-Replace <code class="highlighter-rouge">Closeable</code> with <code class="highlighter-rouge">AutoCloseable</code>
+Replace <code class="language-plaintext highlighter-rouge">Closeable</code> with <code class="language-plaintext highlighter-rouge">AutoCloseable</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1001">CALCITE-1001</a>]
 Upgrade to quidem-0.7</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-990">CALCITE-990</a>]
-In <code class="highlighter-rouge">VolcanoPlanner</code>, populate <code class="highlighter-rouge">RelOptRuleCall.nodeInputs</code> for operands of type
+In <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code>, populate <code class="language-plaintext highlighter-rouge">RelOptRuleCall.nodeInputs</code> for operands of type
 “any”</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-966">CALCITE-966</a>]
-<code class="highlighter-rouge">VolcanoPlanner</code> now clears <code class="highlighter-rouge">ruleNames</code> in order to avoid rule name
+<code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> now clears <code class="language-plaintext highlighter-rouge">ruleNames</code> in order to avoid rule name
 conflicting error</li>
-  <li>Factor user-defined function tests from <code class="highlighter-rouge">JdbcTest</code> to <code class="highlighter-rouge">UdfTest</code>, and classes
-into <code class="highlighter-rouge">Smalls</code>
+  <li>Factor user-defined function tests from <code class="language-plaintext highlighter-rouge">JdbcTest</code> to <code class="language-plaintext highlighter-rouge">UdfTest</code>, and classes
+into <code class="language-plaintext highlighter-rouge">Smalls</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-974">CALCITE-974</a>]
-Exception while validating <code class="highlighter-rouge">DELETE</code> (Yuri Au Yong)</li>
+Exception while validating <code class="language-plaintext highlighter-rouge">DELETE</code> (Yuri Au Yong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-964">CALCITE-964</a>]
-Rename <code class="highlighter-rouge">timezone</code> connection property to <code class="highlighter-rouge">timeZone</code>
+Rename <code class="language-plaintext highlighter-rouge">timezone</code> connection property to <code class="language-plaintext highlighter-rouge">timeZone</code>
 </li>
 </ul>
 
@@ -6401,7 +6401,7 @@
     </ul>
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-861">CALCITE-861</a>]
-Be explicit that <code class="highlighter-rouge">mvn test</code> needs to be invoked</li>
+Be explicit that <code class="language-plaintext highlighter-rouge">mvn test</code> needs to be invoked</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-997">CALCITE-997</a>]
 Document keywords</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-979">CALCITE-979</a>]
@@ -6409,7 +6409,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-961">CALCITE-961</a>]
 Web site: Add downloads and Apache navigation links</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-960">CALCITE-960</a>]
-Download links for pgp, md5, <code class="highlighter-rouge">KEYS</code> files, and direct from mirrors</li>
+Download links for pgp, md5, <code class="language-plaintext highlighter-rouge">KEYS</code> files, and direct from mirrors</li>
   <li>Remove embedded date-stamps from javadoc; add javadoc for test classes</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-965">CALCITE-965</a>]
 Link to downloads page from each release news item</li>
@@ -6431,12 +6431,12 @@
 
 <p>We continue to find more uses for
 <a href="/docs/algebra.html">RelBuilder</a>.
-We now recommend that you use <code class="highlighter-rouge">RelBuilder</code> whenever you create
+We now recommend that you use <code class="language-plaintext highlighter-rouge">RelBuilder</code> whenever you create
 relational expressions within a planner rule; the rule can then be
 re-used to create different sub-classes of relational expression, and
 the builder will perform simple optimizations automatically.</p>
 
-<p>Using <code class="highlighter-rouge">RelBuilder</code> we built Piglet,
+<p>Using <code class="language-plaintext highlighter-rouge">RelBuilder</code> we built Piglet,
 a subset of the classic Hadoop language
 <a href="https://pig.apache.org/">Pig</a>.
 Pig is particularly interesting because it makes heavy use of nested
@@ -6448,38 +6448,38 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-911">CALCITE-911</a>]
-Add a variant of <code class="highlighter-rouge">CalciteSchema</code> that does not cache sub-objects</li>
+Add a variant of <code class="language-plaintext highlighter-rouge">CalciteSchema</code> that does not cache sub-objects</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-845">CALCITE-845</a>]
-Derive <code class="highlighter-rouge">SUM</code>’s return type by a customizable policy (Maryann Xue)</li>
+Derive <code class="language-plaintext highlighter-rouge">SUM</code>’s return type by a customizable policy (Maryann Xue)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-916">CALCITE-916</a>]
-Support table function that implements <code class="highlighter-rouge">ScannableTable</code>
+Support table function that implements <code class="language-plaintext highlighter-rouge">ScannableTable</code>
     <ul>
       <li>Example table function that generates mazes and their solutions</li>
     </ul>
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-941">CALCITE-941</a>]
-Named, optional and <code class="highlighter-rouge">DEFAULT</code> arguments to function calls;
+Named, optional and <code class="language-plaintext highlighter-rouge">DEFAULT</code> arguments to function calls;
 support named arguments when calling table functions and table macros</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-910">CALCITE-910</a>]
-Improve handling of <code class="highlighter-rouge">ARRAY</code>, <code class="highlighter-rouge">MULTISET</code>, <code class="highlighter-rouge">STRUCT</code> types</li>
+Improve handling of <code class="language-plaintext highlighter-rouge">ARRAY</code>, <code class="language-plaintext highlighter-rouge">MULTISET</code>, <code class="language-plaintext highlighter-rouge">STRUCT</code> types</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-879">CALCITE-879</a>]
-<code class="highlighter-rouge">COLLECT</code> aggregate function</li>
+<code class="language-plaintext highlighter-rouge">COLLECT</code> aggregate function</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-546">CALCITE-546</a>]
 Allow table, column and field called ‘*’</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-893">CALCITE-893</a>]
 Theta join in JDBC adapter</li>
-  <li>Linq4j: Implement <code class="highlighter-rouge">EnumerableDefaults</code> methods (MiNG)</li>
+  <li>Linq4j: Implement <code class="language-plaintext highlighter-rouge">EnumerableDefaults</code> methods (MiNG)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-823">CALCITE-823</a>]
-Add <code class="highlighter-rouge">ALTER ... RESET</code> statement (Sudheesh Katkam)</li>
+Add <code class="language-plaintext highlighter-rouge">ALTER ... RESET</code> statement (Sudheesh Katkam)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-881">CALCITE-881</a>]
-Allow schema.table.column references in <code class="highlighter-rouge">GROUP BY</code>
+Allow schema.table.column references in <code class="language-plaintext highlighter-rouge">GROUP BY</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-852">CALCITE-852</a>]
 DDL statements</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-851">CALCITE-851</a>]
 Add original SQL string as a field in the parser</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-819">CALCITE-819</a>]
-Add <code class="highlighter-rouge">RelRoot</code>, a contract for the result of a relational expression</li>
+Add <code class="language-plaintext highlighter-rouge">RelRoot</code>, a contract for the result of a relational expression</li>
 </ul>
 
 <h4 id="avatica-1-5-0">Avatica features and bug-fixes</h4>
@@ -6492,33 +6492,33 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-903">CALCITE-903</a>]
 Enable Avatica client to recover from missing server-side state (Josh Elser)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-921">CALCITE-921</a>]
-Fix incorrectness when calling <code class="highlighter-rouge">getString()</code> on binary data (Josh Elser)</li>
+Fix incorrectness when calling <code class="language-plaintext highlighter-rouge">getString()</code> on binary data (Josh Elser)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-913">CALCITE-913</a>]
-Construct proper <code class="highlighter-rouge">ColumnMetaData</code> for arrays (Josh Elser)</li>
+Construct proper <code class="language-plaintext highlighter-rouge">ColumnMetaData</code> for arrays (Josh Elser)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-871">CALCITE-871</a>]
-In <code class="highlighter-rouge">JdbcMeta</code>, register each statement using an id from a generator (Bruno
+In <code class="language-plaintext highlighter-rouge">JdbcMeta</code>, register each statement using an id from a generator (Bruno
 Dumon)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-645">CALCITE-645</a>]
-Implement <code class="highlighter-rouge">AvaticaSqlException</code> to pass server-side exception information to
+Implement <code class="language-plaintext highlighter-rouge">AvaticaSqlException</code> to pass server-side exception information to
 clients (Josh Elser)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-912">CALCITE-912</a>]
-Add Avatica <code class="highlighter-rouge">OpenConnectionRequest</code> (Bruno Dumon)</li>
+Add Avatica <code class="language-plaintext highlighter-rouge">OpenConnectionRequest</code> (Bruno Dumon)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-919">CALCITE-919</a>]
-Avoid <code class="highlighter-rouge">setScale</code> on <code class="highlighter-rouge">BigDecimal</code> when scale is 0 (Josh Elser)</li>
+Avoid <code class="language-plaintext highlighter-rouge">setScale</code> on <code class="language-plaintext highlighter-rouge">BigDecimal</code> when scale is 0 (Josh Elser)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-927">CALCITE-927</a>]
 Call finagle for all calls that return ResultSetResponses (Josh Elser)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-705">CALCITE-705</a>]
-DML in Avatica, and split <code class="highlighter-rouge">Execute</code> out from <code class="highlighter-rouge">Fetch</code> request (Yeong Wei)</li>
+DML in Avatica, and split <code class="language-plaintext highlighter-rouge">Execute</code> out from <code class="language-plaintext highlighter-rouge">Fetch</code> request (Yeong Wei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-914">CALCITE-914</a>]
-Add <code class="highlighter-rouge">JsonSubType</code> for <code class="highlighter-rouge">ExecuteResponse</code>, and fix JSON docs (Josh Elser)</li>
+Add <code class="language-plaintext highlighter-rouge">JsonSubType</code> for <code class="language-plaintext highlighter-rouge">ExecuteResponse</code>, and fix JSON docs (Josh Elser)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-905">CALCITE-905</a>]
-<code class="highlighter-rouge">getTables</code> returns empty result in <code class="highlighter-rouge">JdbcMeta</code> (Jan Van Besien)</li>
+<code class="language-plaintext highlighter-rouge">getTables</code> returns empty result in <code class="language-plaintext highlighter-rouge">JdbcMeta</code> (Jan Van Besien)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-906">CALCITE-906</a>]
-Avatica <code class="highlighter-rouge">JdbcMeta</code> statement IDs are not unique</li>
+Avatica <code class="language-plaintext highlighter-rouge">JdbcMeta</code> statement IDs are not unique</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-866">CALCITE-866</a>]
 Break out Avatica documentation and add JSON reference (Josh Elser)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-843">CALCITE-843</a>]
-<code class="highlighter-rouge">AvaticaConnection.getAutoCommit</code> throws <code class="highlighter-rouge">NullPointerException</code>
+<code class="language-plaintext highlighter-rouge">AvaticaConnection.getAutoCommit</code> throws <code class="language-plaintext highlighter-rouge">NullPointerException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-840">CALCITE-840</a>]
 Protocol buffer serialization over HTTP for Avatica Server (Josh Elser)</li>
@@ -6533,7 +6533,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-890">CALCITE-890</a>]
 Register all combinations of materialization substitutions (Maryann Xue)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-891">CALCITE-891</a>]
-When substituting materializations, match <code class="highlighter-rouge">TableScan</code> without <code class="highlighter-rouge">Project</code>
+When substituting materializations, match <code class="language-plaintext highlighter-rouge">TableScan</code> without <code class="language-plaintext highlighter-rouge">Project</code>
 (Maryann Xue)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-890">CALCITE-890</a>]
 Register all combinations of materialization substitutions (Maryann Xue)</li>
@@ -6544,7 +6544,7 @@
 Planner requires unnecessary collation when using materialized view (Maryann
 Xue)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-825">CALCITE-825</a>]
-Allow user to specify sort order of an <code class="highlighter-rouge">ArrayTable</code>
+Allow user to specify sort order of an <code class="language-plaintext highlighter-rouge">ArrayTable</code>
 </li>
 </ul>
 
@@ -6552,47 +6552,47 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-953">CALCITE-953</a>]
-Improve <code class="highlighter-rouge">RelMdPredicates</code> to deal with <code class="highlighter-rouge">RexLiteral</code> (Pengcheng Xiong)</li>
+Improve <code class="language-plaintext highlighter-rouge">RelMdPredicates</code> to deal with <code class="language-plaintext highlighter-rouge">RexLiteral</code> (Pengcheng Xiong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-939">CALCITE-939</a>]
-Variant of <code class="highlighter-rouge">SortUnionTransposeRule</code> for order-preserving <code class="highlighter-rouge">Union</code>
+Variant of <code class="language-plaintext highlighter-rouge">SortUnionTransposeRule</code> for order-preserving <code class="language-plaintext highlighter-rouge">Union</code>
 (Maryann Xue)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-931">CALCITE-931</a>]
-Wrong collation trait in <code class="highlighter-rouge">SortJoinTransposeRule</code> for right joins
+Wrong collation trait in <code class="language-plaintext highlighter-rouge">SortJoinTransposeRule</code> for right joins
 (Maryann Xue)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-938">CALCITE-938</a>]
-More accurate rowCount for <code class="highlighter-rouge">Aggregate</code> applied to already unique keys
+More accurate rowCount for <code class="language-plaintext highlighter-rouge">Aggregate</code> applied to already unique keys
 (Maryann Xue)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-935">CALCITE-935</a>]
-Improve how <code class="highlighter-rouge">ReduceExpressionsRule</code> handles duplicate constraints (Pengcheng
+Improve how <code class="language-plaintext highlighter-rouge">ReduceExpressionsRule</code> handles duplicate constraints (Pengcheng
 Xiong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-922">CALCITE-922</a>]
-Extract value of an <code class="highlighter-rouge">INTERVAL</code> literal (Hsuan-Yi Chu)</li>
+Extract value of an <code class="language-plaintext highlighter-rouge">INTERVAL</code> literal (Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-889">CALCITE-889</a>]
-Implement <code class="highlighter-rouge">SortUnionTransposeRule</code> (Pengcheng Xiong)</li>
+Implement <code class="language-plaintext highlighter-rouge">SortUnionTransposeRule</code> (Pengcheng Xiong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-909">CALCITE-909</a>]
-Make <code class="highlighter-rouge">ReduceExpressionsRule</code> extensible</li>
+Make <code class="language-plaintext highlighter-rouge">ReduceExpressionsRule</code> extensible</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-856">CALCITE-856</a>]
 Make more rules extensible</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-902">CALCITE-902</a>]
-Match nullability when reducing expressions in a <code class="highlighter-rouge">Project</code>
+Match nullability when reducing expressions in a <code class="language-plaintext highlighter-rouge">Project</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-895">CALCITE-895</a>]
-Simplify “(<code class="highlighter-rouge">CASE</code> … <code class="highlighter-rouge">END</code>) = constant” inside <code class="highlighter-rouge">AND</code> or <code class="highlighter-rouge">OR</code> (Hsuan-Yi Chu)</li>
+Simplify “(<code class="language-plaintext highlighter-rouge">CASE</code> … <code class="language-plaintext highlighter-rouge">END</code>) = constant” inside <code class="language-plaintext highlighter-rouge">AND</code> or <code class="language-plaintext highlighter-rouge">OR</code> (Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-828">CALCITE-828</a>]
 Use RelBuilder in rules rather than type-specific RelNode factories</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-892">CALCITE-892</a>]
-Implement <code class="highlighter-rouge">SortJoinTransposeRule</code>
+Implement <code class="language-plaintext highlighter-rouge">SortJoinTransposeRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-876">CALCITE-876</a>]
-After pushing <code class="highlighter-rouge">LogicalProject</code> past <code class="highlighter-rouge">LogicalWindow</code>, adjust references to
+After pushing <code class="language-plaintext highlighter-rouge">LogicalProject</code> past <code class="language-plaintext highlighter-rouge">LogicalWindow</code>, adjust references to
 constants properly (Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-844">CALCITE-844</a>]
-Push <code class="highlighter-rouge">Project</code> through <code class="highlighter-rouge">Window</code> (Hsuan-Yi Chu)</li>
+Push <code class="language-plaintext highlighter-rouge">Project</code> through <code class="language-plaintext highlighter-rouge">Window</code> (Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-841">CALCITE-841</a>]
 Redundant windows when window function arguments are expressions (Hsuan-Yi
 Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-846">CALCITE-846</a>]
-Push <code class="highlighter-rouge">Aggregate</code> with <code class="highlighter-rouge">Filter</code> through <code class="highlighter-rouge">Union(all)</code>
+Push <code class="language-plaintext highlighter-rouge">Aggregate</code> with <code class="language-plaintext highlighter-rouge">Filter</code> through <code class="language-plaintext highlighter-rouge">Union(all)</code>
 </li>
 </ul>
 
@@ -6600,16 +6600,16 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-933">CALCITE-933</a>]
-<code class="highlighter-rouge">RelBuilder.scan()</code> now gives a nice exception if the table does not exist
+<code class="language-plaintext highlighter-rouge">RelBuilder.scan()</code> now gives a nice exception if the table does not exist
 (Andy Grove)</li>
-  <li>Fix Piglet <code class="highlighter-rouge">DUMP</code> applied to multisets and structs</li>
-  <li>Multisets and <code class="highlighter-rouge">COLLECT</code> in Piglet</li>
+  <li>Fix Piglet <code class="language-plaintext highlighter-rouge">DUMP</code> applied to multisets and structs</li>
+  <li>Multisets and <code class="language-plaintext highlighter-rouge">COLLECT</code> in Piglet</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-785">CALCITE-785</a>]
 Add “Piglet”, a subset of Pig Latin on top of Calcite algebra</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-869">CALCITE-869</a>]
-Add <code class="highlighter-rouge">VALUES</code> command to Piglet</li>
+Add <code class="language-plaintext highlighter-rouge">VALUES</code> command to Piglet</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-868">CALCITE-868</a>]
-Add API to execute queries expressed as <code class="highlighter-rouge">RelNode</code>
+Add API to execute queries expressed as <code class="language-plaintext highlighter-rouge">RelNode</code>
 </li>
   <li>In RelBuilder, build expressions by table alias</li>
 </ul>
@@ -6618,7 +6618,7 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-948">CALCITE-948</a>]
-Indicator columns not preserved by <code class="highlighter-rouge">RelFieldTrimmer</code>
+Indicator columns not preserved by <code class="language-plaintext highlighter-rouge">RelFieldTrimmer</code>
 </li>
   <li>Fix Windows issues (line endings and checkstyle suppressions)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-937">CALCITE-937</a>]
@@ -6629,36 +6629,36 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-908">CALCITE-908</a>]
 Bump protobuf to 3.0.0-beta-1, fix deprecations and update docs (Josh Elser)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-932">CALCITE-932</a>]
-Fix muddled columns when <code class="highlighter-rouge">RelFieldTrimmer</code> is applied to <code class="highlighter-rouge">Aggregate</code>
+Fix muddled columns when <code class="language-plaintext highlighter-rouge">RelFieldTrimmer</code> is applied to <code class="language-plaintext highlighter-rouge">Aggregate</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-930">CALCITE-930</a>]
 Now Calcite is a top-level project, remove references to “incubating”</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-929">CALCITE-929</a>]
-Calls to <code class="highlighter-rouge">AbstractRelNode</code> may result in NPE</li>
+Calls to <code class="language-plaintext highlighter-rouge">AbstractRelNode</code> may result in NPE</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-923">CALCITE-923</a>]
-Type mismatch when converting <code class="highlighter-rouge">LEFT JOIN</code> to <code class="highlighter-rouge">INNER</code>
+Type mismatch when converting <code class="language-plaintext highlighter-rouge">LEFT JOIN</code> to <code class="language-plaintext highlighter-rouge">INNER</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-666">CALCITE-666</a>]
 Anti-semi-joins against JDBC adapter give wrong results (Yeong Wei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-918">CALCITE-918</a>]
-<code class="highlighter-rouge">createProject</code> in <code class="highlighter-rouge">RelOptUtil</code> should uniquify field names</li>
+<code class="language-plaintext highlighter-rouge">createProject</code> in <code class="language-plaintext highlighter-rouge">RelOptUtil</code> should uniquify field names</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-792">CALCITE-792</a>]
-Obsolete <code class="highlighter-rouge">RelNode.isKey</code> and <code class="highlighter-rouge">isDistinct</code> methods</li>
+Obsolete <code class="language-plaintext highlighter-rouge">RelNode.isKey</code> and <code class="language-plaintext highlighter-rouge">isDistinct</code> methods</li>
   <li>Allow FlatLists of different length to be compared</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-898">CALCITE-898</a>]
 Type of ‘Java<long> * `INTEGER`' should be `BIGINT`</long>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-894">CALCITE-894</a>]
 Do not generate redundant column alias for the left relation when
-translating <code class="highlighter-rouge">IN</code> sub-query (Maryann Xue)</li>
+translating <code class="language-plaintext highlighter-rouge">IN</code> sub-query (Maryann Xue)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-897">CALCITE-897</a>]
 Enable debugging using “-Dcalcite.debug”</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-885">CALCITE-885</a>]
 Add Oracle test environment</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-888">CALCITE-888</a>]
-Overlay window loses <code class="highlighter-rouge">PARTITION BY</code> list (Hsuan-Yi Chu)</li>
+Overlay window loses <code class="language-plaintext highlighter-rouge">PARTITION BY</code> list (Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-886">CALCITE-886</a>]
-System functions in <code class="highlighter-rouge">GROUP BY</code> clause</li>
+System functions in <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-860">CALCITE-860</a>]
 Correct LICENSE file for generated web site</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-882">CALCITE-882</a>]
@@ -6669,37 +6669,37 @@
 Synchronize HSQLDB at a coarse level using a Lock (Josh Elser)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-870">CALCITE-870</a>]
 Remove copyright content from archers.json</li>
-  <li>Replace <code class="highlighter-rouge">Stack</code> with <code class="highlighter-rouge">ArrayDeque</code>
+  <li>Replace <code class="language-plaintext highlighter-rouge">Stack</code> with <code class="language-plaintext highlighter-rouge">ArrayDeque</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-874">CALCITE-874</a>]
-<code class="highlighter-rouge">ReflectiveRelMetadataProvider</code> is not thread-safe</li>
-  <li>Add <code class="highlighter-rouge">LogicalWindow.create()</code>
+<code class="language-plaintext highlighter-rouge">ReflectiveRelMetadataProvider</code> is not thread-safe</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">LogicalWindow.create()</code>
 </li>
-  <li>Add <code class="highlighter-rouge">ImmutableBitSet.get(int, int)</code>
+  <li>Add <code class="language-plaintext highlighter-rouge">ImmutableBitSet.get(int, int)</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-865">CALCITE-865</a>]
-Unknown table type causes <code class="highlighter-rouge">NullPointerException</code> in <code class="highlighter-rouge">JdbcSchema</code>
+Unknown table type causes <code class="language-plaintext highlighter-rouge">NullPointerException</code> in <code class="language-plaintext highlighter-rouge">JdbcSchema</code>
     <ul>
       <li>Add table types used by Oracle and DB2</li>
     </ul>
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-862">CALCITE-862</a>]
-<code class="highlighter-rouge">JdbcSchema</code> gives <code class="highlighter-rouge">NullPointerException</code> on non-standard column type (Marc
+<code class="language-plaintext highlighter-rouge">JdbcSchema</code> gives <code class="language-plaintext highlighter-rouge">NullPointerException</code> on non-standard column type (Marc
 Prud’hommeaux)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-847">CALCITE-847</a>]
-<code class="highlighter-rouge">AVG</code> window function in <code class="highlighter-rouge">GROUP BY</code> gives <code class="highlighter-rouge">AssertionError</code> (Hsuan-Yi Chu)</li>
+<code class="language-plaintext highlighter-rouge">AVG</code> window function in <code class="language-plaintext highlighter-rouge">GROUP BY</code> gives <code class="language-plaintext highlighter-rouge">AssertionError</code> (Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-827">CALCITE-827</a>]
-Calcite incorrectly permutes columns of <code class="highlighter-rouge">OVER</code> query (Hsuan-Yi Chu)</li>
+Calcite incorrectly permutes columns of <code class="language-plaintext highlighter-rouge">OVER</code> query (Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-809">CALCITE-809</a>]
-<code class="highlighter-rouge">TableScan</code> does not support large/infinite scans (Jesse Yates)</li>
+<code class="language-plaintext highlighter-rouge">TableScan</code> does not support large/infinite scans (Jesse Yates)</li>
   <li>Lazily create exception only when it needs to be thrown (Marc Prud’hommeaux)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-812">CALCITE-812</a>]
 Make JSON reader and writer use properly quoted key names (Marc
 Prud’hommeaux)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-820">CALCITE-820</a>]
-Validate that window functions have <code class="highlighter-rouge">OVER</code> clause (Hsuan-Yi Chu)</li>
+Validate that window functions have <code class="language-plaintext highlighter-rouge">OVER</code> clause (Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-824">CALCITE-824</a>]
-Type inference when converting <code class="highlighter-rouge">IN</code> clause to semijoin (Josh Wills)</li>
+Type inference when converting <code class="language-plaintext highlighter-rouge">IN</code> clause to semijoin (Josh Wills)</li>
 </ul>
 
 <h2 id="v1-4-0">
@@ -6714,7 +6714,7 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-748">CALCITE-748</a>]
-    Add <code class="highlighter-rouge">RelBuilder</code>, builder for expressions in relational algebra</li>
+    Add <code class="language-plaintext highlighter-rouge">RelBuilder</code>, builder for expressions in relational algebra</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-758">CALCITE-758</a>]
     Use more than one lattice in the same query (Rajat Venkatesh)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-761">CALCITE-761</a>]
@@ -6723,9 +6723,9 @@
     Detect if materialized view can be used to rewrite a query in
 non-trivial cases (Amogh Margoor)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-732">CALCITE-732</a>]
-    Implement multiple distinct-<code class="highlighter-rouge">COUNT</code> using <code class="highlighter-rouge">GROUPING SETS</code>
+    Implement multiple distinct-<code class="language-plaintext highlighter-rouge">COUNT</code> using <code class="language-plaintext highlighter-rouge">GROUPING SETS</code>
 </li>
-  <li>Add various <code class="highlighter-rouge">BitSet</code> and <code class="highlighter-rouge">ImmutableBitSet</code> utilities</li>
+  <li>Add various <code class="language-plaintext highlighter-rouge">BitSet</code> and <code class="language-plaintext highlighter-rouge">ImmutableBitSet</code> utilities</li>
 </ul>
 
 <h4 id="site-1-4-0">Web site updates</h4>
@@ -6751,63 +6751,63 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-741">CALCITE-741</a>]
-    Ensure that the source release’s <code class="highlighter-rouge">DEPENDENCIES</code> file includes all module
+    Ensure that the source release’s <code class="language-plaintext highlighter-rouge">DEPENDENCIES</code> file includes all module
 dependencies</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-743">CALCITE-743</a>]
     Ensure only a single source assembly is executed</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-850">CALCITE-850</a>]
-    Remove push down expressions from <code class="highlighter-rouge">FilterJoinRule</code> and create a new rule
+    Remove push down expressions from <code class="language-plaintext highlighter-rouge">FilterJoinRule</code> and create a new rule
 for it</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-834">CALCITE-834</a>]
-    <code class="highlighter-rouge">StackOverflowError</code> getting predicates from the metadata provider</li>
+    <code class="language-plaintext highlighter-rouge">StackOverflowError</code> getting predicates from the metadata provider</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-833">CALCITE-833</a>]
-    <code class="highlighter-rouge">RelOptUtil.splitJoinCondition</code> incorrectly splits a join condition
+    <code class="language-plaintext highlighter-rouge">RelOptUtil.splitJoinCondition</code> incorrectly splits a join condition
 (Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-822">CALCITE-822</a>]
-    Add a unit test case to test collation of <code class="highlighter-rouge">LogicalAggregate</code>
+    Add a unit test case to test collation of <code class="language-plaintext highlighter-rouge">LogicalAggregate</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-822">CALCITE-822</a>]
-    Revert incorrect <code class="highlighter-rouge">LogicalAggregate</code> collation inferring logic made in
+    Revert incorrect <code class="language-plaintext highlighter-rouge">LogicalAggregate</code> collation inferring logic made in
 [<a href="https://issues.apache.org/jira/browse/CALCITE-783">CALCITE-783</a>]
 (Milinda Pathirage)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-826">CALCITE-826</a>]
-    Use <code class="highlighter-rouge">ProjectFactory</code> in <code class="highlighter-rouge">AggregateJoinTranposeRule</code> and <code class="highlighter-rouge">FilterJoinRule</code>
+    Use <code class="language-plaintext highlighter-rouge">ProjectFactory</code> in <code class="language-plaintext highlighter-rouge">AggregateJoinTranposeRule</code> and <code class="language-plaintext highlighter-rouge">FilterJoinRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-821">CALCITE-821</a>]
-    <code class="highlighter-rouge">Frameworks</code> gives NPE when <code class="highlighter-rouge">FrameworkConfig</code> has no default schema</li>
+    <code class="language-plaintext highlighter-rouge">Frameworks</code> gives NPE when <code class="language-plaintext highlighter-rouge">FrameworkConfig</code> has no default schema</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-811">CALCITE-811</a>]
-    Extend <code class="highlighter-rouge">JoinProjectTransposeRule</code> with option to support outer joins</li>
+    Extend <code class="language-plaintext highlighter-rouge">JoinProjectTransposeRule</code> with option to support outer joins</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-805">CALCITE-805</a>]
     Add support for using an alternative grammar specification for left and
 right curly braces. Additionally, add support for including addition token
 manager declarations</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-803">CALCITE-803</a>]
-    Add <code class="highlighter-rouge">MYSQL_ANSI</code> Lexing policy</li>
+    Add <code class="language-plaintext highlighter-rouge">MYSQL_ANSI</code> Lexing policy</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-717">CALCITE-717</a>]
     Compare BINARY and VARBINARY on unsigned byte values (Low Chin Wei)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-814">CALCITE-814</a>]
-    <code class="highlighter-rouge">RexBuilder</code> reverses precision and scale of <code class="highlighter-rouge">DECIMAL</code> literal</li>
+    <code class="language-plaintext highlighter-rouge">RexBuilder</code> reverses precision and scale of <code class="language-plaintext highlighter-rouge">DECIMAL</code> literal</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-813">CALCITE-813</a>]
-    Upgrade <code class="highlighter-rouge">updateCount</code>, <code class="highlighter-rouge">maxRows</code> from int to long</li>
+    Upgrade <code class="language-plaintext highlighter-rouge">updateCount</code>, <code class="language-plaintext highlighter-rouge">maxRows</code> from int to long</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-714">CALCITE-714</a>]
     When de-correlating, push join condition into sub-query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-751">CALCITE-751</a>]
     Push aggregate with aggregate functions through join</li>
-  <li>Add <code class="highlighter-rouge">RelBuilder.avg</code>
+  <li>Add <code class="language-plaintext highlighter-rouge">RelBuilder.avg</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-806">CALCITE-806</a>]
-    <code class="highlighter-rouge">ROW_NUMBER</code> should emit distinct values</li>
+    <code class="language-plaintext highlighter-rouge">ROW_NUMBER</code> should emit distinct values</li>
   <li>Document JSON model, making javadoc consistent with the model reference</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-808">CALCITE-808</a>]
-    Optimize <code class="highlighter-rouge">ProjectMergeRule</code>
+    Optimize <code class="language-plaintext highlighter-rouge">ProjectMergeRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-791">CALCITE-791</a>]
-    Optimize <code class="highlighter-rouge">RelOptUtil.pushFilterPastProject</code>
+    Optimize <code class="language-plaintext highlighter-rouge">RelOptUtil.pushFilterPastProject</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-783">CALCITE-783</a>]
-    Infer collation of <code class="highlighter-rouge">Project</code> using monotonicity (Milinda Pathirage)</li>
-  <li>Change the argument types of <code class="highlighter-rouge">SqlOperator.getMonotonicity</code> to allow it to be
-used for <code class="highlighter-rouge">RexNode</code> as well as <code class="highlighter-rouge">SqlNode</code>
+    Infer collation of <code class="language-plaintext highlighter-rouge">Project</code> using monotonicity (Milinda Pathirage)</li>
+  <li>Change the argument types of <code class="language-plaintext highlighter-rouge">SqlOperator.getMonotonicity</code> to allow it to be
+used for <code class="language-plaintext highlighter-rouge">RexNode</code> as well as <code class="language-plaintext highlighter-rouge">SqlNode</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-800">CALCITE-800</a>]
     Window function defined within another window function should be invalid
@@ -6819,43 +6819,43 @@
     Loss of precision when sending a decimal number via the remote JSON
 service (Lukáš Lalinský)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-774">CALCITE-774</a>]
-    When <code class="highlighter-rouge">GROUP BY</code> is present, ensure that window function operands only
+    When <code class="language-plaintext highlighter-rouge">GROUP BY</code> is present, ensure that window function operands only
 refer to grouping keys (Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-799">CALCITE-799</a>]
-    Incorrect result for <code class="highlighter-rouge">HAVING count(*) &gt; 1</code>
+    Incorrect result for <code class="language-plaintext highlighter-rouge">HAVING count(*) &gt; 1</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-801">CALCITE-801</a>]
-    <code class="highlighter-rouge">NullPointerException</code> using <code class="highlighter-rouge">USING</code> on table alias with column aliases</li>
+    <code class="language-plaintext highlighter-rouge">NullPointerException</code> using <code class="language-plaintext highlighter-rouge">USING</code> on table alias with column aliases</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-390">CALCITE-390</a>]
     Infer predicates for semi-join</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-789">CALCITE-789</a>]
-    <code class="highlighter-rouge">MetaImpl.MetaCatalog</code> should expose <code class="highlighter-rouge">TABLE_CAT</code> instead of
-    <code class="highlighter-rouge">TABLE_CATALOG</code>
+    <code class="language-plaintext highlighter-rouge">MetaImpl.MetaCatalog</code> should expose <code class="language-plaintext highlighter-rouge">TABLE_CAT</code> instead of
+    <code class="language-plaintext highlighter-rouge">TABLE_CATALOG</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-752">CALCITE-752</a>]
     Add back sqlline as a dependency to csv example</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-780">CALCITE-780</a>]
     HTTP error 413 when sending a long string to the Avatica server</li>
-  <li>In <code class="highlighter-rouge">RelBuilder</code>, calling <code class="highlighter-rouge">sort</code> then <code class="highlighter-rouge">limit</code> has same effect as calling
-<code class="highlighter-rouge">sortLimit</code>
+  <li>In <code class="language-plaintext highlighter-rouge">RelBuilder</code>, calling <code class="language-plaintext highlighter-rouge">sort</code> then <code class="language-plaintext highlighter-rouge">limit</code> has same effect as calling
+<code class="language-plaintext highlighter-rouge">sortLimit</code>
 </li>
-  <li>Add <code class="highlighter-rouge">Ord.reverse</code>
+  <li>Add <code class="language-plaintext highlighter-rouge">Ord.reverse</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-788">CALCITE-788</a>]
-    Allow <code class="highlighter-rouge">EnumerableJoin</code> to be sub-classed (Li Yang)</li>
+    Allow <code class="language-plaintext highlighter-rouge">EnumerableJoin</code> to be sub-classed (Li Yang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-280">CALCITE-280</a>]
-    <code class="highlighter-rouge">BigDecimal</code> underflow (Li Yang)</li>
+    <code class="language-plaintext highlighter-rouge">BigDecimal</code> underflow (Li Yang)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-763">CALCITE-763</a>]
-    Missing translation from <code class="highlighter-rouge">Sort</code> to <code class="highlighter-rouge">MutableSort</code> (Maryann Xue)</li>
+    Missing translation from <code class="language-plaintext highlighter-rouge">Sort</code> to <code class="language-plaintext highlighter-rouge">MutableSort</code> (Maryann Xue)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-770">CALCITE-770</a>]
     Ignore window aggregates and ranking functions when finding aggregate
 functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-765">CALCITE-765</a>]
-    Set <code class="highlighter-rouge">Content-Type</code> from the RPC server to <code class="highlighter-rouge">application/json</code> (Lukáš Lalinský)</li>
-  <li>Fix Windows line-endings in <code class="highlighter-rouge">RelBuilderTest</code>
+    Set <code class="language-plaintext highlighter-rouge">Content-Type</code> from the RPC server to <code class="language-plaintext highlighter-rouge">application/json</code> (Lukáš Lalinský)</li>
+  <li>Fix Windows line-endings in <code class="language-plaintext highlighter-rouge">RelBuilderTest</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-727">CALCITE-727</a>]
-    Constant folding involving <code class="highlighter-rouge">CASE</code> and <code class="highlighter-rouge">NULL</code>
+    Constant folding involving <code class="language-plaintext highlighter-rouge">CASE</code> and <code class="language-plaintext highlighter-rouge">NULL</code>
 </li>
   <li>Related to
 [<a href="https://issues.apache.org/jira/browse/CALCITE-758">CALCITE-758</a>],
@@ -6863,42 +6863,42 @@
 materialized views</li>
   <li>Test case and workaround for
 [<a href="https://issues.apache.org/jira/browse/CALCITE-760">CALCITE-760</a>]
-    <code class="highlighter-rouge">Aggregate</code> recommender blows up if row count estimate is too high</li>
+    <code class="language-plaintext highlighter-rouge">Aggregate</code> recommender blows up if row count estimate is too high</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-753">CALCITE-753</a>]
-    <code class="highlighter-rouge">Aggregate</code> operators may derive row types with duplicate column names</li>
+    <code class="language-plaintext highlighter-rouge">Aggregate</code> operators may derive row types with duplicate column names</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-457">CALCITE-457</a>]
     Push condition of non-ansi join into join operator</li>
   <li>Change jsonRequest encoding to UTF-8 (Guitao Ding)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-757">CALCITE-757</a>]
     Fix expansion of view of another view (Venki Korukanti)</li>
   <li>Fix coverity warnings</li>
-  <li>Remove deprecated <code class="highlighter-rouge">SqlTypeName</code> methods</li>
+  <li>Remove deprecated <code class="language-plaintext highlighter-rouge">SqlTypeName</code> methods</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-754">CALCITE-754</a>]
-    Validator error when resolving <code class="highlighter-rouge">OVER</code> clause of <code class="highlighter-rouge">JOIN</code> query</li>
+    Validator error when resolving <code class="language-plaintext highlighter-rouge">OVER</code> clause of <code class="language-plaintext highlighter-rouge">JOIN</code> query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-429">CALCITE-429</a>]
     Cardinality provider for use by lattice algorithm</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-740">CALCITE-740</a>]
-    Redundant <code class="highlighter-rouge">WHERE</code> clause causes wrong result in MongoDB adapter</li>
+    Redundant <code class="language-plaintext highlighter-rouge">WHERE</code> clause causes wrong result in MongoDB adapter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-665">CALCITE-665</a>]
-    <code class="highlighter-rouge">ClassCastException</code> in MongoDB adapter</li>
-  <li>Separate <code class="highlighter-rouge">TableFactory</code> from suggested table name, so one <code class="highlighter-rouge">TableFactory</code> can be
+    <code class="language-plaintext highlighter-rouge">ClassCastException</code> in MongoDB adapter</li>
+  <li>Separate <code class="language-plaintext highlighter-rouge">TableFactory</code> from suggested table name, so one <code class="language-plaintext highlighter-rouge">TableFactory</code> can be
 used for several tables</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-749">CALCITE-749</a>]
-    Add <code class="highlighter-rouge">MaterializationService.TableFactory</code> (Rajat Venkatesh)</li>
+    Add <code class="language-plaintext highlighter-rouge">MaterializationService.TableFactory</code> (Rajat Venkatesh)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-718">CALCITE-718</a>]
-    Enable fetch to work for <code class="highlighter-rouge">Statement.execute()</code> for Avatica (Xavier Leong)</li>
+    Enable fetch to work for <code class="language-plaintext highlighter-rouge">Statement.execute()</code> for Avatica (Xavier Leong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-712">CALCITE-712</a>]
-    Obey <code class="highlighter-rouge">setMaxRows</code> for statement execute (Xavier Leong)</li>
-  <li>Add <code class="highlighter-rouge">LoggingLocalJsonService</code>, to make it easier to test that JDBC requests
+    Obey <code class="language-plaintext highlighter-rouge">setMaxRows</code> for statement execute (Xavier Leong)</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">LoggingLocalJsonService</code>, to make it easier to test that JDBC requests
 cause the right RPCs</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-708">CALCITE-708</a>]
-    Implement <code class="highlighter-rouge">DatabaseMetaData.getTypeInfo</code> (Xavier Leong)</li>
+    Implement <code class="language-plaintext highlighter-rouge">DatabaseMetaData.getTypeInfo</code> (Xavier Leong)</li>
   <li>Enable Travis CI on new-master branch and bug-fix branches named
 “NNN-description”</li>
   <li>Clean up</li>
   <li>Upgrade tpcds</li>
-  <li>Make <code class="highlighter-rouge">JdbcTest.testVersion</code> more permissive, so that <code class="highlighter-rouge">version.major</code> and
-<code class="highlighter-rouge">version.minor</code> can be set just before a release, rather than just after as at
+  <li>Make <code class="language-plaintext highlighter-rouge">JdbcTest.testVersion</code> more permissive, so that <code class="language-plaintext highlighter-rouge">version.major</code> and
+<code class="language-plaintext highlighter-rouge">version.minor</code> can be set just before a release, rather than just after as at
 present</li>
 </ul>
 
@@ -6917,7 +6917,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-505">CALCITE-505</a>]
 Support modifiable view</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-704">CALCITE-704</a>]
-<code class="highlighter-rouge">FILTER</code> clause for aggregate functions</li>
+<code class="language-plaintext highlighter-rouge">FILTER</code> clause for aggregate functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-522">CALCITE-522</a>]
 In remote JDBC driver, transmit static database properties as a map</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-661">CALCITE-661</a>]
@@ -6931,42 +6931,42 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-722">CALCITE-722</a>]
 Rename markdown files to lower-case</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-697">CALCITE-697</a>]
-Obsolete class <code class="highlighter-rouge">RelOptQuery</code>
+Obsolete class <code class="language-plaintext highlighter-rouge">RelOptQuery</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-693">CALCITE-693</a>]
-Allow clients to control creation of <code class="highlighter-rouge">RelOptCluster</code>
+Allow clients to control creation of <code class="language-plaintext highlighter-rouge">RelOptCluster</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-691">CALCITE-691</a>]
 Allow projects to supply alternate SQL parser</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-675">CALCITE-675</a>]
-Enable <code class="highlighter-rouge">AggregateProjectMergeRule</code> in standard rule set</li>
+Enable <code class="language-plaintext highlighter-rouge">AggregateProjectMergeRule</code> in standard rule set</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-679">CALCITE-679</a>]
-Factory method for <code class="highlighter-rouge">SemiJoin</code>
+Factory method for <code class="language-plaintext highlighter-rouge">SemiJoin</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-674">CALCITE-674</a>]
-Add a <code class="highlighter-rouge">SWAP_OUTER</code> static instance to <code class="highlighter-rouge">JoinCommuteRule</code> (Maryann Xue)</li>
+Add a <code class="language-plaintext highlighter-rouge">SWAP_OUTER</code> static instance to <code class="language-plaintext highlighter-rouge">JoinCommuteRule</code> (Maryann Xue)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-735">CALCITE-735</a>]
-<code class="highlighter-rouge">Primitive.DOUBLE.min</code> should be large and negative</li>
+<code class="language-plaintext highlighter-rouge">Primitive.DOUBLE.min</code> should be large and negative</li>
 </ul>
 
 <h4 id="fixes-1-3-0">Bug-fixes and internal changes</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-688">CALCITE-688</a>]
-<code class="highlighter-rouge">splitCondition</code> does not behave correctly when one side of the condition
+<code class="language-plaintext highlighter-rouge">splitCondition</code> does not behave correctly when one side of the condition
 references columns from different inputs</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-259">CALCITE-259</a>]
-Using sub-queries in <code class="highlighter-rouge">CASE</code> statement against JDBC tables generates invalid
+Using sub-queries in <code class="language-plaintext highlighter-rouge">CASE</code> statement against JDBC tables generates invalid
 Oracle SQL (Yeong Wei)</li>
   <li>In sample code in README.md, rename optiq to calcite (Ethan)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-720">CALCITE-720</a>]
-<code class="highlighter-rouge">VolcanoPlanner.ambitious</code> comment doc is inconsistent (Santiago M. Mola)</li>
+<code class="language-plaintext highlighter-rouge">VolcanoPlanner.ambitious</code> comment doc is inconsistent (Santiago M. Mola)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-729">CALCITE-729</a>]
-<code class="highlighter-rouge">IndexOutOfBoundsException</code> in <code class="highlighter-rouge">ROLLUP</code> query on JDBC data source</li>
+<code class="language-plaintext highlighter-rouge">IndexOutOfBoundsException</code> in <code class="language-plaintext highlighter-rouge">ROLLUP</code> query on JDBC data source</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-733">CALCITE-733</a>]
-Multiple distinct-<code class="highlighter-rouge">COUNT</code> query gives wrong results</li>
+Multiple distinct-<code class="language-plaintext highlighter-rouge">COUNT</code> query gives wrong results</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-730">CALCITE-730</a>]
-<code class="highlighter-rouge">ClassCastException</code> in table from <code class="highlighter-rouge">CloneSchema</code>
+<code class="language-plaintext highlighter-rouge">ClassCastException</code> in table from <code class="language-plaintext highlighter-rouge">CloneSchema</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-728">CALCITE-728</a>]
 Test suite hangs on Windows</li>
@@ -6976,21 +6976,21 @@
 Add Apache headers to markdown files</li>
   <li>Upgrade quidem</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-716">CALCITE-716</a>]
-Scalar sub-query and aggregate function in <code class="highlighter-rouge">SELECT</code> or <code class="highlighter-rouge">HAVING</code> clause gives
-<code class="highlighter-rouge">AssertionError</code>
+Scalar sub-query and aggregate function in <code class="language-plaintext highlighter-rouge">SELECT</code> or <code class="language-plaintext highlighter-rouge">HAVING</code> clause gives
+<code class="language-plaintext highlighter-rouge">AssertionError</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-694">CALCITE-694</a>]
-Scan <code class="highlighter-rouge">HAVING</code> clause for sub-queries and <code class="highlighter-rouge">IN</code>-lists (Hsuan-Yi Chu)</li>
+Scan <code class="language-plaintext highlighter-rouge">HAVING</code> clause for sub-queries and <code class="language-plaintext highlighter-rouge">IN</code>-lists (Hsuan-Yi Chu)</li>
   <li>Upgrade hydromatic-resource-maven-plugin</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-710">CALCITE-710</a>]
-Identical conditions in the <code class="highlighter-rouge">WHERE</code> clause cause <code class="highlighter-rouge">AssertionError</code> (Sean
+Identical conditions in the <code class="language-plaintext highlighter-rouge">WHERE</code> clause cause <code class="language-plaintext highlighter-rouge">AssertionError</code> (Sean
 Hsuan-Yi Chu)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-695">CALCITE-695</a>]
-Do not add <code class="highlighter-rouge">SINGLE_VALUE</code> aggregate function to a sub-query that will never
+Do not add <code class="language-plaintext highlighter-rouge">SINGLE_VALUE</code> aggregate function to a sub-query that will never
 return more than one row (Hsuan-Yi Chu)</li>
   <li>Add tests for scalar sub-queries, including test cases for
 [<a href="https://issues.apache.org/jira/browse/CALCITE-709">CALCITE-709</a>]
-Errors with <code class="highlighter-rouge">LIMIT</code> inside scalar sub-query</li>
+Errors with <code class="language-plaintext highlighter-rouge">LIMIT</code> inside scalar sub-query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-702">CALCITE-702</a>]
 Add validator test for monotonic expressions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-699">CALCITE-699</a>]
@@ -6998,35 +6998,35 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-700">CALCITE-700</a>]
 Pass time zone into tests</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-698">CALCITE-698</a>]
-For <code class="highlighter-rouge">GROUP BY ()</code>, <code class="highlighter-rouge">areColumnsUnique()</code> should return true for any key</li>
+For <code class="language-plaintext highlighter-rouge">GROUP BY ()</code>, <code class="language-plaintext highlighter-rouge">areColumnsUnique()</code> should return true for any key</li>
   <li>Disable tests that fail under JDK 1.7 due to
 [<a href="https://issues.apache.org/jira/browse/CALCITE-687">CALCITE-687</a>]</li>
   <li>Add “getting started” to HOWTO</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-692">CALCITE-692</a>]
 Add back sqlline as a dependency</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-677">CALCITE-677</a>]
-<code class="highlighter-rouge">RemoteDriverTest.testTypeHandling</code> fails east of Greenwich</li>
+<code class="language-plaintext highlighter-rouge">RemoteDriverTest.testTypeHandling</code> fails east of Greenwich</li>
   <li>Disable test for
 [<a href="https://issues.apache.org/jira/browse/CALCITE-687">CALCITE-687</a>]
-Make <code class="highlighter-rouge">RemoteDriverTest.testStatementLifecycle</code> thread-safe</li>
+Make <code class="language-plaintext highlighter-rouge">RemoteDriverTest.testStatementLifecycle</code> thread-safe</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-686">CALCITE-686</a>]
-<code class="highlighter-rouge">SqlNode.unparse</code> produces invalid SQL</li>
+<code class="language-plaintext highlighter-rouge">SqlNode.unparse</code> produces invalid SQL</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-507">CALCITE-507</a>]
 Update HOWTO.md with running integration tests</li>
   <li>Add H2 integration test</li>
   <li>Add PostgreSQL integration test</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-590">CALCITE-590</a>]
 Update MongoDB test suite to calcite-test-dataset</li>
-  <li>Add <code class="highlighter-rouge">CalciteAssert.assertArrayEqual</code> for more user-friendly asserts</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">CalciteAssert.assertArrayEqual</code> for more user-friendly asserts</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-585">CALCITE-585</a>]
-Avatica JDBC methods should throw <code class="highlighter-rouge">SQLFeatureNotSupportedException</code> (Ng Jiunn
+Avatica JDBC methods should throw <code class="language-plaintext highlighter-rouge">SQLFeatureNotSupportedException</code> (Ng Jiunn
 Jye)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-671">CALCITE-671</a>]
-<code class="highlighter-rouge">ByteString</code> does not deserialize properly as a <code class="highlighter-rouge">FetchRequest</code> parameter value</li>
+<code class="language-plaintext highlighter-rouge">ByteString</code> does not deserialize properly as a <code class="language-plaintext highlighter-rouge">FetchRequest</code> parameter value</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-676">CALCITE-676</a>]
-<code class="highlighter-rouge">AssertionError</code> in <code class="highlighter-rouge">GROUPING SETS</code> query</li>
+<code class="language-plaintext highlighter-rouge">AssertionError</code> in <code class="language-plaintext highlighter-rouge">GROUPING SETS</code> query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-678">CALCITE-678</a>]
-<code class="highlighter-rouge">SemiJoinRule</code> mixes up fields when <code class="highlighter-rouge">Aggregate.groupSet</code> is not field #0</li>
+<code class="language-plaintext highlighter-rouge">SemiJoinRule</code> mixes up fields when <code class="language-plaintext highlighter-rouge">Aggregate.groupSet</code> is not field #0</li>
 </ul>
 
 <h2 id="v1-2-0">
@@ -7035,7 +7035,7 @@
 <p>A short release, less than a month after 1.1.</p>
 
 <p>There have been many changes to Avatica, hugely improving its coverage of the
-JDBC API and overall robustness. A new provider, <code class="highlighter-rouge">JdbcMeta</code>, allows
+JDBC API and overall robustness. A new provider, <code class="language-plaintext highlighter-rouge">JdbcMeta</code>, allows
 you to remote an existing JDBC driver.</p>
 
 <p>[<a href="https://issues.apache.org/jira/browse/CALCITE-606">CALCITE-606</a>]
@@ -7054,31 +7054,31 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-613">CALCITE-613</a>]
 Implicitly convert character values in comparisons</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-307">CALCITE-307</a>]
-Implement <code class="highlighter-rouge">CAST</code> between date-time types</li>
+Implement <code class="language-plaintext highlighter-rouge">CAST</code> between date-time types</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-634">CALCITE-634</a>]
-Allow <code class="highlighter-rouge">ORDER BY</code> aggregate function in <code class="highlighter-rouge">SELECT DISTINCT</code>, provided that it
-occurs in <code class="highlighter-rouge">SELECT</code> clause (Sean Hsuan-Yi Chu)</li>
-  <li>In linq4j, implement <code class="highlighter-rouge">firstOrDefault</code>, <code class="highlighter-rouge">single</code>, and <code class="highlighter-rouge">singleOrDefault</code> methods
+Allow <code class="language-plaintext highlighter-rouge">ORDER BY</code> aggregate function in <code class="language-plaintext highlighter-rouge">SELECT DISTINCT</code>, provided that it
+occurs in <code class="language-plaintext highlighter-rouge">SELECT</code> clause (Sean Hsuan-Yi Chu)</li>
+  <li>In linq4j, implement <code class="language-plaintext highlighter-rouge">firstOrDefault</code>, <code class="language-plaintext highlighter-rouge">single</code>, and <code class="language-plaintext highlighter-rouge">singleOrDefault</code> methods
 (Daniel Cooper)</li>
   <li>JDBC adapter
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-631">CALCITE-631</a>]
 Push theta joins down to JDBC adapter (Ng Jiunn Jye)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-657">CALCITE-657</a>]
-<code class="highlighter-rouge">NullPointerException</code> when executing <code class="highlighter-rouge">JdbcAggregate.implement</code>
+<code class="language-plaintext highlighter-rouge">NullPointerException</code> when executing <code class="language-plaintext highlighter-rouge">JdbcAggregate.implement</code>
 method (Yuri Au Yong)</li>
     </ul>
   </li>
   <li>Metadata
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-659">CALCITE-659</a>]
-Missing types in <code class="highlighter-rouge">averageTypeValueSize</code> method in <code class="highlighter-rouge">RelMdSize</code>
+Missing types in <code class="language-plaintext highlighter-rouge">averageTypeValueSize</code> method in <code class="language-plaintext highlighter-rouge">RelMdSize</code>
 (Jesus Camacho Rodriguez)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-650">CALCITE-650</a>]
-Add metadata for average size of a tuple in <code class="highlighter-rouge">SemiJoin</code> (Jesus
+Add metadata for average size of a tuple in <code class="language-plaintext highlighter-rouge">SemiJoin</code> (Jesus
 Camacho Rodriguez)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-649">CALCITE-649</a>]
-Extend <code class="highlighter-rouge">splitCondition</code> method in <code class="highlighter-rouge">RelOptUtil</code> to handle multiple
+Extend <code class="language-plaintext highlighter-rouge">splitCondition</code> method in <code class="language-plaintext highlighter-rouge">RelOptUtil</code> to handle multiple
 joins on the same key (Jesus Camacho Rodriguez)</li>
     </ul>
   </li>
@@ -7088,65 +7088,65 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-670">CALCITE-670</a>]
-<code class="highlighter-rouge">AvaticaPreparedStatement</code> should support <code class="highlighter-rouge">execute()</code> and
-<code class="highlighter-rouge">executeUpdate()</code> (Nick Dimiduk)</li>
+<code class="language-plaintext highlighter-rouge">AvaticaPreparedStatement</code> should support <code class="language-plaintext highlighter-rouge">execute()</code> and
+<code class="language-plaintext highlighter-rouge">executeUpdate()</code> (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-641">CALCITE-641</a>]
 Implement logging throughout Avatica server (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-646">CALCITE-646</a>]
-<code class="highlighter-rouge">AvaticaStatement.execute</code> method broken over remote JDBC (Yeong Wei
+<code class="language-plaintext highlighter-rouge">AvaticaStatement.execute</code> method broken over remote JDBC (Yeong Wei
 and Julian Hyde)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-660">CALCITE-660</a>]
 Improve Avatica date support</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-655">CALCITE-655</a>]
-Implement <code class="highlighter-rouge">ConnectionSync</code> RPC (Nick Dimiduk)</li>
+Implement <code class="language-plaintext highlighter-rouge">ConnectionSync</code> RPC (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-654">CALCITE-654</a>]
-Tighten up <code class="highlighter-rouge">AvaticaStatement.execute</code> semantics (Nick Dimiduk)</li>
+Tighten up <code class="language-plaintext highlighter-rouge">AvaticaStatement.execute</code> semantics (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-658">CALCITE-658</a>]
 Cleanup dependency usage (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-652">CALCITE-652</a>]
-Move server pieces of <code class="highlighter-rouge">avatica</code> into <code class="highlighter-rouge">avatica-server</code> (Nick Dimiduk)</li>
+Move server pieces of <code class="language-plaintext highlighter-rouge">avatica</code> into <code class="language-plaintext highlighter-rouge">avatica-server</code> (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-651">CALCITE-651</a>]
-In <code class="highlighter-rouge">JdbcMeta</code>, convert property definitions to an enum (Nick Dimiduk)</li>
+In <code class="language-plaintext highlighter-rouge">JdbcMeta</code>, convert property definitions to an enum (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-640">CALCITE-640</a>]
 Avatica server should expire stale connections/statements (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-639">CALCITE-639</a>]
 Open up permissions on avatica server components (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-637">CALCITE-637</a>]
-Implement Avatica <code class="highlighter-rouge">CloseConnection</code> RPC (Nick Dimiduk)</li>
+Implement Avatica <code class="language-plaintext highlighter-rouge">CloseConnection</code> RPC (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-636">CALCITE-636</a>]
 Connection isolation for Avatica clients (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-626">CALCITE-626</a>]
-Implement <code class="highlighter-rouge">CloseStatement</code> RPC (Nick Dimiduk)</li>
+Implement <code class="language-plaintext highlighter-rouge">CloseStatement</code> RPC (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-630">CALCITE-630</a>]
-Flesh out <code class="highlighter-rouge">AvaticaParameter.setObject</code> (Nick Dimiduk)</li>
+Flesh out <code class="language-plaintext highlighter-rouge">AvaticaParameter.setObject</code> (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-627">CALCITE-627</a>]
-Add Avatica support for <code class="highlighter-rouge">getTableTypes</code>, <code class="highlighter-rouge">getColumns</code> (Xavier FH Leong)</li>
+Add Avatica support for <code class="language-plaintext highlighter-rouge">getTableTypes</code>, <code class="language-plaintext highlighter-rouge">getColumns</code> (Xavier FH Leong)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-618">CALCITE-618</a>]
-Add Avatica support for <code class="highlighter-rouge">getTables</code> (Julian Hyde and Nick Dimiduk)</li>
+Add Avatica support for <code class="language-plaintext highlighter-rouge">getTables</code> (Julian Hyde and Nick Dimiduk)</li>
 </ul>
 
 <h4 id="api-1-2-0">API changes</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-617">CALCITE-617</a>]
-Check at initialization time in <code class="highlighter-rouge">CachingInvocationHandler</code> that MD provider
+Check at initialization time in <code class="language-plaintext highlighter-rouge">CachingInvocationHandler</code> that MD provider
 is not null (Jesus Camacho Rodriguez)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-638">CALCITE-638</a>]
-SQL standard <code class="highlighter-rouge">REAL</code> is 4 bytes, <code class="highlighter-rouge">FLOAT</code> is 8 bytes</li>
+SQL standard <code class="language-plaintext highlighter-rouge">REAL</code> is 4 bytes, <code class="language-plaintext highlighter-rouge">FLOAT</code> is 8 bytes</li>
 </ul>
 
 <h4 id="fixes-1-2-0">Bug-fixes and internal changes</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-672">CALCITE-672</a>]
-SQL <code class="highlighter-rouge">ANY</code> type should be nullable (Jinfeng Ni)</li>
+SQL <code class="language-plaintext highlighter-rouge">ANY</code> type should be nullable (Jinfeng Ni)</li>
   <li>Disable tests, pending
 [<a href="https://issues.apache.org/jira/browse/CALCITE-673">CALCITE-673</a>]
 Timeout executing joins against MySQL</li>
-  <li>Fix traits in MongoDB adapter, and <code class="highlighter-rouge">NullPointerException</code> in <code class="highlighter-rouge">JdbcTest</code>
+  <li>Fix traits in MongoDB adapter, and <code class="language-plaintext highlighter-rouge">NullPointerException</code> in <code class="language-plaintext highlighter-rouge">JdbcTest</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-662">CALCITE-662</a>]
-Query validation fails when an <code class="highlighter-rouge">ORDER BY</code> clause is used with <code class="highlighter-rouge">WITH CLAUSE</code>
+Query validation fails when an <code class="language-plaintext highlighter-rouge">ORDER BY</code> clause is used with <code class="language-plaintext highlighter-rouge">WITH CLAUSE</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-606">CALCITE-606</a>]
 Fix trait propagation and add test case</li>
@@ -7154,24 +7154,24 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-644">CALCITE-644</a>]
 Increase check style line limit to 100 chars (Nick Dimiduk)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-648">CALCITE-648</a>]
-Update <code class="highlighter-rouge">ProjectMergeRule</code> description for new naming convention (Jinfeng Ni)</li>
+Update <code class="language-plaintext highlighter-rouge">ProjectMergeRule</code> description for new naming convention (Jinfeng Ni)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-625">CALCITE-625</a>]
-<code class="highlighter-rouge">README.md</code> linking to the wrong page of <code class="highlighter-rouge">optiq-csv</code> (hongbin ma)</li>
+<code class="language-plaintext highlighter-rouge">README.md</code> linking to the wrong page of <code class="language-plaintext highlighter-rouge">optiq-csv</code> (hongbin ma)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-632">CALCITE-632</a>]
-Sort order returned by <code class="highlighter-rouge">SUPERCLASS_COMPARATOR</code> in
-<code class="highlighter-rouge">ReflectiveRelMetadataProvider</code> is inconsistent (Jesus Camacho
+Sort order returned by <code class="language-plaintext highlighter-rouge">SUPERCLASS_COMPARATOR</code> in
+<code class="language-plaintext highlighter-rouge">ReflectiveRelMetadataProvider</code> is inconsistent (Jesus Camacho
 Rodriguez)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-335">CALCITE-335</a>]
-Remove uses of linq4j <code class="highlighter-rouge">Functions.adapt</code>
+Remove uses of linq4j <code class="language-plaintext highlighter-rouge">Functions.adapt</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-592">CALCITE-592</a>]
 Upgrade to Guava 14.0.1</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-596">CALCITE-596</a>]
 JDBC adapter incorrectly reads null values as 0 (Ng Jiunn Jye)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-633">CALCITE-633</a>]
-<code class="highlighter-rouge">WITH ... ORDER BY</code> cannot find table</li>
+<code class="language-plaintext highlighter-rouge">WITH ... ORDER BY</code> cannot find table</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-614">CALCITE-614</a>]
-<code class="highlighter-rouge">IN</code> clause in <code class="highlighter-rouge">CASE</code> in <code class="highlighter-rouge">GROUP BY</code> gives <code class="highlighter-rouge">AssertionError</code>
+<code class="language-plaintext highlighter-rouge">IN</code> clause in <code class="language-plaintext highlighter-rouge">CASE</code> in <code class="language-plaintext highlighter-rouge">GROUP BY</code> gives <code class="language-plaintext highlighter-rouge">AssertionError</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-619">CALCITE-619</a>]
 Slim down dependencies in parent POM</li>
@@ -7182,7 +7182,7 @@
 
 <p>This Calcite release makes it possible to exploit physical properties
 of relational expressions to produce more efficient plans, introducing
-collation and distribution as traits, <code class="highlighter-rouge">Exchange</code> relational operator,
+collation and distribution as traits, <code class="language-plaintext highlighter-rouge">Exchange</code> relational operator,
 and several new forms of metadata.</p>
 
 <p>We add experimental support for streaming SQL.</p>
@@ -7190,8 +7190,8 @@
 <p>This release drops support for JDK 1.6; Calcite now requires 1.7 or
 later.</p>
 
-<p>We have introduced static <code class="highlighter-rouge">create</code> methods for many sub-classes of
-<code class="highlighter-rouge">RelNode</code>. We strongly suggest that you use these rather than
+<p>We have introduced static <code class="language-plaintext highlighter-rouge">create</code> methods for many sub-classes of
+<code class="language-plaintext highlighter-rouge">RelNode</code>. We strongly suggest that you use these rather than
 calling constructors directly.</p>
 
 <h4 id="new-features-1-1-0">New features</h4>
@@ -7202,18 +7202,18 @@
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-602">CALCITE-602</a>]
 Streaming queries (experimental)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-588">CALCITE-588</a>]
-Allow <code class="highlighter-rouge">TableMacro</code> to consume maps and collections</li>
+Allow <code class="language-plaintext highlighter-rouge">TableMacro</code> to consume maps and collections</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-583">CALCITE-583</a>]
-Operator <code class="highlighter-rouge">||</code> mishandles <code class="highlighter-rouge">ANY</code> type (Sean Hsuan-Yi Chu)</li>
+Operator <code class="language-plaintext highlighter-rouge">||</code> mishandles <code class="language-plaintext highlighter-rouge">ANY</code> type (Sean Hsuan-Yi Chu)</li>
     </ul>
   </li>
   <li>Planner rule improvements
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-445">CALCITE-445</a>]
-Pull up filters rejected by a <code class="highlighter-rouge">ProjectableFilterableTable</code>
+Pull up filters rejected by a <code class="language-plaintext highlighter-rouge">ProjectableFilterableTable</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-600">CALCITE-600</a>]
-Use <code class="highlighter-rouge">SetOpFactory</code> in rules containing <code class="highlighter-rouge">Union</code> operator (Jesus
+Use <code class="language-plaintext highlighter-rouge">SetOpFactory</code> in rules containing <code class="language-plaintext highlighter-rouge">Union</code> operator (Jesus
 Camacho Rodriguez)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-603">CALCITE-603</a>]
 Metadata providers for size, memory, parallelism
@@ -7222,7 +7222,7 @@
 Change visibility of constructor in metadata providers for size,
 memory, parallelism (Jesus Camacho Rodriguez)</li>
           <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-608">CALCITE-608</a>]
-Exception is thrown when <code class="highlighter-rouge">RelMdDistribution</code> for <code class="highlighter-rouge">Project</code>
+Exception is thrown when <code class="language-plaintext highlighter-rouge">RelMdDistribution</code> for <code class="language-plaintext highlighter-rouge">Project</code>
 operator is called (Jesus Camacho Rodriguez)</li>
         </ul>
       </li>
@@ -7231,24 +7231,24 @@
   <li>Collation and distribution as traits
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-88">CALCITE-88</a>]
-Add collation as a trait and a kind of <code class="highlighter-rouge">RelNode</code> metadata</li>
+Add collation as a trait and a kind of <code class="language-plaintext highlighter-rouge">RelNode</code> metadata</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-569">CALCITE-569</a>]
-<code class="highlighter-rouge">ArrayIndexOutOfBoundsException</code> when deducing collation (Aman Sinha)</li>
+<code class="language-plaintext highlighter-rouge">ArrayIndexOutOfBoundsException</code> when deducing collation (Aman Sinha)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-581">CALCITE-581</a>]
-Add <code class="highlighter-rouge">LogicalSort</code> relational expression, and make <code class="highlighter-rouge">Sort</code> abstract</li>
+Add <code class="language-plaintext highlighter-rouge">LogicalSort</code> relational expression, and make <code class="language-plaintext highlighter-rouge">Sort</code> abstract</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-526">CALCITE-526</a>]
-Add <code class="highlighter-rouge">EnumerableMergeJoin</code>, which exploits sorted inputs</li>
+Add <code class="language-plaintext highlighter-rouge">EnumerableMergeJoin</code>, which exploits sorted inputs</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-71">CALCITE-71</a>]
 Provide a way to declare that tables are sorted</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-576">CALCITE-576</a>]
-Make <code class="highlighter-rouge">RelCollation</code> trait and <code class="highlighter-rouge">AbstractRelNode.getCollationList</code> consistent</li>
+Make <code class="language-plaintext highlighter-rouge">RelCollation</code> trait and <code class="language-plaintext highlighter-rouge">AbstractRelNode.getCollationList</code> consistent</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-254">CALCITE-254</a>]
-Propagate <code class="highlighter-rouge">RelCollation</code> on aliased columns in <code class="highlighter-rouge">JoinRule</code>
+Propagate <code class="language-plaintext highlighter-rouge">RelCollation</code> on aliased columns in <code class="language-plaintext highlighter-rouge">JoinRule</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-569">CALCITE-569</a>]
-<code class="highlighter-rouge">ArrayIndexOutOfBoundsException</code> when deducing collation</li>
+<code class="language-plaintext highlighter-rouge">ArrayIndexOutOfBoundsException</code> when deducing collation</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-594">CALCITE-594</a>]
-Add <code class="highlighter-rouge">RelDistribution</code> trait and <code class="highlighter-rouge">Exchange</code> relational expression</li>
+Add <code class="language-plaintext highlighter-rouge">RelDistribution</code> trait and <code class="language-plaintext highlighter-rouge">Exchange</code> relational expression</li>
     </ul>
   </li>
 </ul>
@@ -7256,33 +7256,33 @@
 <h4 id="api-1-1-0">API changes</h4>
 
 <ul>
-  <li>Many sub-classes of <code class="highlighter-rouge">RelNode</code> now have a static <code class="highlighter-rouge">create</code> method
+  <li>Many sub-classes of <code class="language-plaintext highlighter-rouge">RelNode</code> now have a static <code class="language-plaintext highlighter-rouge">create</code> method
 which automatically sets up traits such as collation and
 distribution. The constructors are not marked deprecated, but we
-strongly suggest that you use the <code class="highlighter-rouge">create</code> method if it exists.</li>
+strongly suggest that you use the <code class="language-plaintext highlighter-rouge">create</code> method if it exists.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-591">CALCITE-591</a>]
 Drop support for Java 1.6 (and JDBC 4.0)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-587">CALCITE-587</a>]
-Upgrade <code class="highlighter-rouge">jetty-server</code> to 9.2.7.v20150116 and port avatica-server <code class="highlighter-rouge">HttpServer</code>
+Upgrade <code class="language-plaintext highlighter-rouge">jetty-server</code> to 9.2.7.v20150116 and port avatica-server <code class="language-plaintext highlighter-rouge">HttpServer</code>
 (Trevor Hartman)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-577">CALCITE-577</a>]
 Revert temporary API changes introduced in
 [<a href="https://issues.apache.org/jira/browse/CALCITE-575">CALCITE-575</a>]</li>
-  <li>Add means to create <code class="highlighter-rouge">Context</code> instances by wrapping objects and by chaining
+  <li>Add means to create <code class="language-plaintext highlighter-rouge">Context</code> instances by wrapping objects and by chaining
 contexts</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-599">CALCITE-599</a>]
-<code class="highlighter-rouge">EquiJoin</code> in wrong package (Jesus Camacho Rodriguez)</li>
+<code class="language-plaintext highlighter-rouge">EquiJoin</code> in wrong package (Jesus Camacho Rodriguez)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-573">CALCITE-573</a>]
-Use user-given names in <code class="highlighter-rouge">RelOptUtil.createProject</code> and <code class="highlighter-rouge">createRename</code>
+Use user-given names in <code class="language-plaintext highlighter-rouge">RelOptUtil.createProject</code> and <code class="language-plaintext highlighter-rouge">createRename</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-572">CALCITE-572</a>]
-Remove <code class="highlighter-rouge">Project.flags</code> (methods are deprecated, to be removed before 2.0)</li>
+Remove <code class="language-plaintext highlighter-rouge">Project.flags</code> (methods are deprecated, to be removed before 2.0)</li>
 </ul>
 
 <h4 id="fixes-1-1-0">Bug-fixes and internal changes</h4>
 
 <ul>
-  <li>Remove the <code class="highlighter-rouge">LICENSE</code> file of calcite-example-csv (the former
+  <li>Remove the <code class="language-plaintext highlighter-rouge">LICENSE</code> file of calcite-example-csv (the former
 optiq-csv) and move its history into main history</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-615">CALCITE-615</a>]
 AvaticaParameter should be Jackson serializable (Nick Dimiduk)</li>
@@ -7291,21 +7291,21 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-605">CALCITE-605</a>]
 Reduce dependency on third-party maven repositories</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-611">CALCITE-611</a>]
-Method <code class="highlighter-rouge">setAggChildKeys</code> should take into account indicator columns of
-<code class="highlighter-rouge">Aggregate</code> operator (Jesus Camacho Rodriguez)</li>
+Method <code class="language-plaintext highlighter-rouge">setAggChildKeys</code> should take into account indicator columns of
+<code class="language-plaintext highlighter-rouge">Aggregate</code> operator (Jesus Camacho Rodriguez)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-566">CALCITE-566</a>]
-<code class="highlighter-rouge">ReduceExpressionsRule</code> requires planner to have an <code class="highlighter-rouge">Executor</code>
+<code class="language-plaintext highlighter-rouge">ReduceExpressionsRule</code> requires planner to have an <code class="language-plaintext highlighter-rouge">Executor</code>
 </li>
-  <li>Refactor <code class="highlighter-rouge">TableScanNode.create</code> method</li>
+  <li>Refactor <code class="language-plaintext highlighter-rouge">TableScanNode.create</code> method</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-593">CALCITE-593</a>]
-Validator in <code class="highlighter-rouge">Frameworks</code> should expand identifiers (Jinfeng Ni)</li>
-  <li>Australian time-zones changed in <code class="highlighter-rouge">tzdata2014f</code>, Java 1.8.0_31</li>
+Validator in <code class="language-plaintext highlighter-rouge">Frameworks</code> should expand identifiers (Jinfeng Ni)</li>
+  <li>Australian time-zones changed in <code class="language-plaintext highlighter-rouge">tzdata2014f</code>, Java 1.8.0_31</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-580">CALCITE-580</a>]
-Average aggregation on an <code class="highlighter-rouge">Integer</code> column throws <code class="highlighter-rouge">ClassCastException</code>
+Average aggregation on an <code class="language-plaintext highlighter-rouge">Integer</code> column throws <code class="language-plaintext highlighter-rouge">ClassCastException</code>
 </li>
   <li>In Travis, ask Surefire to print results to screen</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-586">CALCITE-586</a>]
-Prevent JSON serialization of <code class="highlighter-rouge">Signature.internalParameters</code>
+Prevent JSON serialization of <code class="language-plaintext highlighter-rouge">Signature.internalParameters</code>
 </li>
 </ul>
 
@@ -7314,13 +7314,13 @@
 
 <p>Calcite’s first major release.</p>
 
-<p>Since the previous release we have re-organized the into the <code class="highlighter-rouge">org.apache.calcite</code>
+<p>Since the previous release we have re-organized the into the <code class="language-plaintext highlighter-rouge">org.apache.calcite</code>
 namespace. To make migration of your code easier, we have described the
 <a href="https://issues.apache.org/jira/secure/attachment/12681620/mapping.txt">mapping from old to new class names</a>
 as an attachment to
 [<a href="https://issues.apache.org/jira/browse/CALCITE-296">CALCITE-296</a>].</p>
 
-<p>The release adds SQL support for <code class="highlighter-rouge">GROUPING SETS</code>, <code class="highlighter-rouge">EXTEND</code>, <code class="highlighter-rouge">UPSERT</code> and sequences;
+<p>The release adds SQL support for <code class="language-plaintext highlighter-rouge">GROUPING SETS</code>, <code class="language-plaintext highlighter-rouge">EXTEND</code>, <code class="language-plaintext highlighter-rouge">UPSERT</code> and sequences;
 a remote JDBC driver;
 improvements to the planner engine and built-in planner rules;
 improvements to the algorithms that implement the relational algebra,
@@ -7333,26 +7333,26 @@
   <li>SQL
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-494">CALCITE-494</a>]
-Support <code class="highlighter-rouge">NEXT</code>/<code class="highlighter-rouge">CURRENT VALUE FOR</code> syntax for using sequences</li>
+Support <code class="language-plaintext highlighter-rouge">NEXT</code>/<code class="language-plaintext highlighter-rouge">CURRENT VALUE FOR</code> syntax for using sequences</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-492">CALCITE-492</a>]
-Support <code class="highlighter-rouge">UPSERT</code> statement in parser</li>
+Support <code class="language-plaintext highlighter-rouge">UPSERT</code> statement in parser</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-493">CALCITE-493</a>]
-Add <code class="highlighter-rouge">EXTEND</code> clause, for defining columns and their types at query/DML time</li>
+Add <code class="language-plaintext highlighter-rouge">EXTEND</code> clause, for defining columns and their types at query/DML time</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-497">CALCITE-497</a>]
 Support optional qualifier for column name references</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-356">CALCITE-356</a>]
-Allow column references of the form <code class="highlighter-rouge">schema.table.column</code>
+Allow column references of the form <code class="language-plaintext highlighter-rouge">schema.table.column</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-462">CALCITE-462</a>]
-Allow table functions in <code class="highlighter-rouge">LATERAL</code> expression</li>
+Allow table functions in <code class="language-plaintext highlighter-rouge">LATERAL</code> expression</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-282">CALCITE-282</a>]
-Add <code class="highlighter-rouge">{fn QUARTER(date)}</code> function (Benoy Antony)</li>
+Add <code class="language-plaintext highlighter-rouge">{fn QUARTER(date)}</code> function (Benoy Antony)</li>
       <li>Grouping sets
         <ul>
           <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-370">CALCITE-370</a>]
-Support <code class="highlighter-rouge">GROUPING SETS</code>, <code class="highlighter-rouge">CUBE</code>, <code class="highlighter-rouge">ROLLUP</code> in SQL and algebra</li>
+Support <code class="language-plaintext highlighter-rouge">GROUPING SETS</code>, <code class="language-plaintext highlighter-rouge">CUBE</code>, <code class="language-plaintext highlighter-rouge">ROLLUP</code> in SQL and algebra</li>
           <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-512">CALCITE-512</a>]
-Add <code class="highlighter-rouge">GROUP_ID</code>,<code class="highlighter-rouge">GROUPING_ID</code>, <code class="highlighter-rouge">GROUPING</code> functions</li>
+Add <code class="language-plaintext highlighter-rouge">GROUP_ID</code>,<code class="language-plaintext highlighter-rouge">GROUPING_ID</code>, <code class="language-plaintext highlighter-rouge">GROUPING</code> functions</li>
         </ul>
       </li>
     </ul>
@@ -7360,11 +7360,11 @@
   <li>Planner rule improvements
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-92">CALCITE-92</a>]
-Optimize away <code class="highlighter-rouge">Project</code> that merely renames fields</li>
-      <li>Detect and merge duplicate predicates <code class="highlighter-rouge">AND(x, y, x)</code> to <code class="highlighter-rouge">AND(x, y)</code> in more
+Optimize away <code class="language-plaintext highlighter-rouge">Project</code> that merely renames fields</li>
+      <li>Detect and merge duplicate predicates <code class="language-plaintext highlighter-rouge">AND(x, y, x)</code> to <code class="language-plaintext highlighter-rouge">AND(x, y)</code> in more
 circumstances</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-557">CALCITE-557</a>]
-Speed up planning by never creating <code class="highlighter-rouge">AbstractConverter</code>
+Speed up planning by never creating <code class="language-plaintext highlighter-rouge">AbstractConverter</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-545">CALCITE-545</a>]
 When a projected expression can only have one value, replace with that
@@ -7372,25 +7372,25 @@
       <li>Grouping sets
         <ul>
           <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-542">CALCITE-542</a>]
-Support for <code class="highlighter-rouge">Aggregate</code> with grouping sets in <code class="highlighter-rouge">RelMdColumnOrigins</code> (Jesus
+Support for <code class="language-plaintext highlighter-rouge">Aggregate</code> with grouping sets in <code class="language-plaintext highlighter-rouge">RelMdColumnOrigins</code> (Jesus
 Camacho Rodriguez)</li>
           <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-533">CALCITE-533</a>]
-Support for grouping sets in <code class="highlighter-rouge">FilterAggregateTransposeRule</code> (Jesus Camacho
+Support for grouping sets in <code class="language-plaintext highlighter-rouge">FilterAggregateTransposeRule</code> (Jesus Camacho
 Rodriguez)</li>
           <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-532">CALCITE-532</a>]
-Support for grouping sets in <code class="highlighter-rouge">AggregateFilterTransposeRule</code> (Jesus Camacho
+Support for grouping sets in <code class="language-plaintext highlighter-rouge">AggregateFilterTransposeRule</code> (Jesus Camacho
 Rodriguez)</li>
           <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-513">CALCITE-513</a>]
-Support for grouping sets in <code class="highlighter-rouge">AggregateProjectMergeRule</code> (Jesus Camacho
+Support for grouping sets in <code class="language-plaintext highlighter-rouge">AggregateProjectMergeRule</code> (Jesus Camacho
 Rodriguez)</li>
           <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-510">CALCITE-510</a>]
-Support for grouping sets in <code class="highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> (Jesus
+Support for grouping sets in <code class="language-plaintext highlighter-rouge">AggregateExpandDistinctAggregatesRule</code> (Jesus
 Camacho Rodriguez)</li>
           <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-502">CALCITE-502</a>]
-Support for grouping sets in <code class="highlighter-rouge">AggregateUnionTransposeRule</code> (Jesus Camacho
+Support for grouping sets in <code class="language-plaintext highlighter-rouge">AggregateUnionTransposeRule</code> (Jesus Camacho
 Rodriguez)</li>
           <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-503">CALCITE-503</a>]
-Tests to check rules on <code class="highlighter-rouge">Aggregate</code> operator without grouping sets (Jesus
+Tests to check rules on <code class="language-plaintext highlighter-rouge">Aggregate</code> operator without grouping sets (Jesus
 Camacho Rodriguez)</li>
         </ul>
       </li>
@@ -7401,19 +7401,19 @@
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-451">CALCITE-451</a>]
 Implement theta join, inner and outer, in enumerable convention</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-489">CALCITE-489</a>]
-Update <code class="highlighter-rouge">Correlate</code> mechanics and implement <code class="highlighter-rouge">EnumerableCorrelate</code> (aka nested
+Update <code class="language-plaintext highlighter-rouge">Correlate</code> mechanics and implement <code class="language-plaintext highlighter-rouge">EnumerableCorrelate</code> (aka nested
 loops join)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-544">CALCITE-544</a>]
-Implement <code class="highlighter-rouge">Union</code> in interpreter</li>
+Implement <code class="language-plaintext highlighter-rouge">Union</code> in interpreter</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-562">CALCITE-562</a>]
-Implement inner <code class="highlighter-rouge">Join</code> in interpreter and improve handling of scalar expressions</li>
+Implement inner <code class="language-plaintext highlighter-rouge">Join</code> in interpreter and improve handling of scalar expressions</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-543">CALCITE-543</a>]
-Implement <code class="highlighter-rouge">Aggregate</code> (including <code class="highlighter-rouge">GROUPING SETS</code>) in interpreter (Jacques
+Implement <code class="language-plaintext highlighter-rouge">Aggregate</code> (including <code class="language-plaintext highlighter-rouge">GROUPING SETS</code>) in interpreter (Jacques
 Nadeau)</li>
       <li>In progress towards
 [<a href="https://issues.apache.org/jira/browse/CALCITE-558">CALCITE-558</a>]
-add <code class="highlighter-rouge">BINDABLE</code> convention (but <code class="highlighter-rouge">ENUMERABLE</code> is still the default), and add
-<code class="highlighter-rouge">ArrayBindable</code> and <code class="highlighter-rouge">Scalar</code> interfaces</li>
+add <code class="language-plaintext highlighter-rouge">BINDABLE</code> convention (but <code class="language-plaintext highlighter-rouge">ENUMERABLE</code> is still the default), and add
+<code class="language-plaintext highlighter-rouge">ArrayBindable</code> and <code class="language-plaintext highlighter-rouge">Scalar</code> interfaces</li>
     </ul>
   </li>
   <li>Remote driver
@@ -7422,7 +7422,7 @@
 Calcite RPC server</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-94">CALCITE-94</a>]
 Remote JDBC driver</li>
-      <li>Make <code class="highlighter-rouge">JsonHandler</code> and <code class="highlighter-rouge">JsonService</code> thread-safe</li>
+      <li>Make <code class="language-plaintext highlighter-rouge">JsonHandler</code> and <code class="language-plaintext highlighter-rouge">JsonService</code> thread-safe</li>
     </ul>
   </li>
 </ul>
@@ -7441,13 +7441,13 @@
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-474">CALCITE-474</a>]
 Clean up rule naming in order to support enabling/disabling rules</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-460">CALCITE-460</a>]
-Add <code class="highlighter-rouge">ImmutableBitSet</code> and replace uses of <code class="highlighter-rouge">BitSet</code>
+Add <code class="language-plaintext highlighter-rouge">ImmutableBitSet</code> and replace uses of <code class="language-plaintext highlighter-rouge">BitSet</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-479">CALCITE-479</a>]
-Migrate <code class="highlighter-rouge">RelNode.getChildExps</code> to <code class="highlighter-rouge">RelNode.accept(RexShuttle)</code>
+Migrate <code class="language-plaintext highlighter-rouge">RelNode.getChildExps</code> to <code class="language-plaintext highlighter-rouge">RelNode.accept(RexShuttle)</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-527">CALCITE-527</a>]
-Drop <code class="highlighter-rouge">rowType</code> field and constructor/copy argument of <code class="highlighter-rouge">Calc</code>
+Drop <code class="language-plaintext highlighter-rouge">rowType</code> field and constructor/copy argument of <code class="language-plaintext highlighter-rouge">Calc</code>
 </li>
     </ul>
   </li>
@@ -7464,7 +7464,7 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-464">CALCITE-464</a>]
 Make parser accept configurable max length for SQL identifier</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-465">CALCITE-465</a>]
-Remove <code class="highlighter-rouge">OneRow</code> and <code class="highlighter-rouge">Empty</code> relational expressions; <code class="highlighter-rouge">Values</code> will suffice</li>
+Remove <code class="language-plaintext highlighter-rouge">OneRow</code> and <code class="language-plaintext highlighter-rouge">Empty</code> relational expressions; <code class="language-plaintext highlighter-rouge">Values</code> will suffice</li>
 </ul>
 
 <h4 id="fixes-1-0-0">Bug-fixes and internal changes</h4>
@@ -7475,63 +7475,63 @@
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-541">CALCITE-541</a>]
 Update maven-source-plugin to 2.4 to get speedup in jdk 1.8</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-537">CALCITE-537</a>]
-Skip overwrite of <code class="highlighter-rouge">NOTICE</code>, <code class="highlighter-rouge">DEPENDENCIES</code>, and <code class="highlighter-rouge">LICENSE</code> files</li>
+Skip overwrite of <code class="language-plaintext highlighter-rouge">NOTICE</code>, <code class="language-plaintext highlighter-rouge">DEPENDENCIES</code>, and <code class="language-plaintext highlighter-rouge">LICENSE</code> files</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-538">CALCITE-538</a>]
-Generate <code class="highlighter-rouge">Parser.jj</code> only at first build</li>
+Generate <code class="language-plaintext highlighter-rouge">Parser.jj</code> only at first build</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-539">CALCITE-539</a>]
-Avoid rewrite of <code class="highlighter-rouge">org-apache-calcite-jdbc.properties</code>
+Avoid rewrite of <code class="language-plaintext highlighter-rouge">org-apache-calcite-jdbc.properties</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-540">CALCITE-540</a>]
 Create git.properties file only at first build. This saves time in
-development at a cost of stale <code class="highlighter-rouge">git.properties</code>
+development at a cost of stale <code class="language-plaintext highlighter-rouge">git.properties</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-536">CALCITE-536</a>]
-Add <code class="highlighter-rouge">@PackageMarker</code> to <code class="highlighter-rouge">package-info.java</code> so maven-compiler skips
+Add <code class="language-plaintext highlighter-rouge">@PackageMarker</code> to <code class="language-plaintext highlighter-rouge">package-info.java</code> so maven-compiler skips
 compilation when the sources are unchanged</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-535">CALCITE-535</a>]
 Support skip overwrite in hydromatic-resource</li>
     </ul>
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-582">CALCITE-582</a>]
-<code class="highlighter-rouge">EnumerableTableScan</code> broken when table has single column</li>
+<code class="language-plaintext highlighter-rouge">EnumerableTableScan</code> broken when table has single column</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-575">CALCITE-575</a>]
-Variant of <code class="highlighter-rouge">ProjectRemoveRule</code> that considers a project trivial only if its
+Variant of <code class="language-plaintext highlighter-rouge">ProjectRemoveRule</code> that considers a project trivial only if its
 field names are identical (John Pullokkaran)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-571">CALCITE-571</a>]
-<code class="highlighter-rouge">ReduceExpressionsRule</code> tries to reduce <code class="highlighter-rouge">SemiJoin</code> condition to non-equi
+<code class="language-plaintext highlighter-rouge">ReduceExpressionsRule</code> tries to reduce <code class="language-plaintext highlighter-rouge">SemiJoin</code> condition to non-equi
 condition</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-568">CALCITE-568</a>]
-Upgrade to a version of <code class="highlighter-rouge">pentaho-aggdesigner</code> that does not pull in
-<code class="highlighter-rouge">servlet-api</code>
+Upgrade to a version of <code class="language-plaintext highlighter-rouge">pentaho-aggdesigner</code> that does not pull in
+<code class="language-plaintext highlighter-rouge">servlet-api</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-567">CALCITE-567</a>]
-Make <code class="highlighter-rouge">quidem</code> dependency have scope “test”</li>
+Make <code class="language-plaintext highlighter-rouge">quidem</code> dependency have scope “test”</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-570">CALCITE-570</a>]
-<code class="highlighter-rouge">ReduceExpressionsRule</code> throws “duplicate key” exception</li>
+<code class="language-plaintext highlighter-rouge">ReduceExpressionsRule</code> throws “duplicate key” exception</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-561">CALCITE-561</a>]
 Upgrade parent POM</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-458">CALCITE-458</a>]
 ArrayIndexOutOfBoundsException when using just a single column in interpreter</li>
-  <li>Fix spurious extra row from <code class="highlighter-rouge">FULL JOIN</code>
+  <li>Fix spurious extra row from <code class="language-plaintext highlighter-rouge">FULL JOIN</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-554">CALCITE-554</a>]
 Outer join over NULL keys generates wrong result</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-489">CALCITE-489</a>]
-Teach <code class="highlighter-rouge">CalciteAssert</code> to respect multiple settings</li>
+Teach <code class="language-plaintext highlighter-rouge">CalciteAssert</code> to respect multiple settings</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-516">CALCITE-516</a>]
-<code class="highlighter-rouge">GROUP BY</code> on a <code class="highlighter-rouge">CASE</code> expression containing <code class="highlighter-rouge">IN</code> predicate fails (Aman Sinha)</li>
+<code class="language-plaintext highlighter-rouge">GROUP BY</code> on a <code class="language-plaintext highlighter-rouge">CASE</code> expression containing <code class="language-plaintext highlighter-rouge">IN</code> predicate fails (Aman Sinha)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-552">CALCITE-552</a>]
 Upgrade tpcds (which depends on an old version of guava)</li>
   <li>Copy identifier when fully-qualifying, so column aliases have the right case</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-548">CALCITE-548</a>]
-Extend <code class="highlighter-rouge">induce</code> method to return <code class="highlighter-rouge">CUBE</code> and <code class="highlighter-rouge">ROLLUP</code> (Jesus Camacho Rodriguez)
+Extend <code class="language-plaintext highlighter-rouge">induce</code> method to return <code class="language-plaintext highlighter-rouge">CUBE</code> and <code class="language-plaintext highlighter-rouge">ROLLUP</code> (Jesus Camacho Rodriguez)
     <ul>
-      <li>Simplify <code class="highlighter-rouge">Group.induce</code> by assuming that group sets are sorted</li>
+      <li>Simplify <code class="language-plaintext highlighter-rouge">Group.induce</code> by assuming that group sets are sorted</li>
     </ul>
   </li>
   <li>Test case for
 [<a href="https://issues.apache.org/jira/browse/CALCITE-212">CALCITE-212</a>]
-Join condition with <code class="highlighter-rouge">OR</code>
+Join condition with <code class="language-plaintext highlighter-rouge">OR</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-550">CALCITE-550</a>]
 Case-insensitive matching of sub-query columns fails
@@ -7540,52 +7540,52 @@
     </ul>
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-448">CALCITE-448</a>]
-<code class="highlighter-rouge">FilterIntoJoinRule</code> creates filters containing invalid <code class="highlighter-rouge">RexInputRef</code>
+<code class="language-plaintext highlighter-rouge">FilterIntoJoinRule</code> creates filters containing invalid <code class="language-plaintext highlighter-rouge">RexInputRef</code>
 </li>
-  <li>When registering a <code class="highlighter-rouge">RelNode</code>, be tolerant if it is equivalent to a <code class="highlighter-rouge">RelNode</code>
+  <li>When registering a <code class="language-plaintext highlighter-rouge">RelNode</code>, be tolerant if it is equivalent to a <code class="language-plaintext highlighter-rouge">RelNode</code>
 with different traits</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-547">CALCITE-547</a>]
-Set nullability while inferring return type of <code class="highlighter-rouge">item(any,...)</code> operator</li>
-  <li>In Travis CI, enable containers, and cache <code class="highlighter-rouge">.m2</code> directory</li>
+Set nullability while inferring return type of <code class="language-plaintext highlighter-rouge">item(any,...)</code> operator</li>
+  <li>In Travis CI, enable containers, and cache <code class="language-plaintext highlighter-rouge">.m2</code> directory</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-534">CALCITE-534</a>]
-Missing implementation of <code class="highlighter-rouge">ResultSetMetaData.getColumnClassName</code> (Knut
+Missing implementation of <code class="language-plaintext highlighter-rouge">ResultSetMetaData.getColumnClassName</code> (Knut
 Forkalsrud)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-506">CALCITE-506</a>]
-Update <code class="highlighter-rouge">EnumerableRelImplementor.stash</code> so it is suitable for all kinds of
+Update <code class="language-plaintext highlighter-rouge">EnumerableRelImplementor.stash</code> so it is suitable for all kinds of
 classes</li>
-  <li>Merge join algorithm for <code class="highlighter-rouge">Enumerable</code>s</li>
-  <li>Efficient <code class="highlighter-rouge">Enumerable</code> over random-access list</li>
+  <li>Merge join algorithm for <code class="language-plaintext highlighter-rouge">Enumerable</code>s</li>
+  <li>Efficient <code class="language-plaintext highlighter-rouge">Enumerable</code> over random-access list</li>
   <li>Add a test that calls all functions with arguments of all types that they
 claim to accept</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-511">CALCITE-511</a>]
-<code class="highlighter-rouge">copy</code> method in <code class="highlighter-rouge">LogicalAggregate</code> not copying the indicator value properly</li>
+<code class="language-plaintext highlighter-rouge">copy</code> method in <code class="language-plaintext highlighter-rouge">LogicalAggregate</code> not copying the indicator value properly</li>
   <li>Add a model that has lattices and works against HSQLDB</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-509">CALCITE-509</a>]
-<code class="highlighter-rouge">RelMdColumnUniqueness</code> uses <code class="highlighter-rouge">ImmutableBitSet.Builder</code> twice, gets
-<code class="highlighter-rouge">NullPointerException</code>
+<code class="language-plaintext highlighter-rouge">RelMdColumnUniqueness</code> uses <code class="language-plaintext highlighter-rouge">ImmutableBitSet.Builder</code> twice, gets
+<code class="language-plaintext highlighter-rouge">NullPointerException</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-488">CALCITE-488</a>]
-<code class="highlighter-rouge">Enumerable&lt;Holder&gt;</code> does not work if where <code class="highlighter-rouge">Holder</code> is a custom class
-with a single field; Calcite tries to treat it as <code class="highlighter-rouge">SCALAR</code> due to premature
-<code class="highlighter-rouge">JavaRowFormat.optimize</code>
+<code class="language-plaintext highlighter-rouge">Enumerable&lt;Holder&gt;</code> does not work if where <code class="language-plaintext highlighter-rouge">Holder</code> is a custom class
+with a single field; Calcite tries to treat it as <code class="language-plaintext highlighter-rouge">SCALAR</code> due to premature
+<code class="language-plaintext highlighter-rouge">JavaRowFormat.optimize</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-352">CALCITE-352</a>]
-Throw exception if <code class="highlighter-rouge">ResultSet.next()</code> is called after <code class="highlighter-rouge">close()</code>
+Throw exception if <code class="language-plaintext highlighter-rouge">ResultSet.next()</code> is called after <code class="language-plaintext highlighter-rouge">close()</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-403">CALCITE-403</a>]
-<code class="highlighter-rouge">Enumerable</code> gives <code class="highlighter-rouge">NullPointerException</code> with <code class="highlighter-rouge">NOT</code> on nullable expression</li>
+<code class="language-plaintext highlighter-rouge">Enumerable</code> gives <code class="language-plaintext highlighter-rouge">NullPointerException</code> with <code class="language-plaintext highlighter-rouge">NOT</code> on nullable expression</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-469">CALCITE-469</a>]
 Update example/csv README.md instructions</li>
-  <li>Document <code class="highlighter-rouge">WITH</code>, <code class="highlighter-rouge">LATERAL</code>, <code class="highlighter-rouge">GROUPING SETS</code>, <code class="highlighter-rouge">CUBE</code>, <code class="highlighter-rouge">ROLLUP</code>;
+  <li>Document <code class="language-plaintext highlighter-rouge">WITH</code>, <code class="language-plaintext highlighter-rouge">LATERAL</code>, <code class="language-plaintext highlighter-rouge">GROUPING SETS</code>, <code class="language-plaintext highlighter-rouge">CUBE</code>, <code class="language-plaintext highlighter-rouge">ROLLUP</code>;
 add descriptions for all built-in functions and operators</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-470">CALCITE-470</a>]
 Print warning when column type hint is not understood;
-Update <code class="highlighter-rouge">EMPS.deptno</code> column Integer → int</li>
-  <li>Fix <code class="highlighter-rouge">Linq4j.product</code>; the cartesian product of 0 attributes is one row of 0
+Update <code class="language-plaintext highlighter-rouge">EMPS.deptno</code> column Integer → int</li>
+  <li>Fix <code class="language-plaintext highlighter-rouge">Linq4j.product</code>; the cartesian product of 0 attributes is one row of 0
 attributes</li>
   <li>Update link optiq-mat-plugin → mat-calcite-plugin</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-467">CALCITE-467</a>]
-Incorrect namespace in <code class="highlighter-rouge">package-info.java</code>
+Incorrect namespace in <code class="language-plaintext highlighter-rouge">package-info.java</code>
 </li>
   <li>Add headers, to appease the RAT</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-446">CALCITE-446</a>]
@@ -7593,7 +7593,7 @@
   <li>Add examples of scannable and filterable tables, matching
 [<a href="https://issues.apache.org/jira/browse/CALCITE-436">CALCITE-436</a>]
 Simpler SPI to query Table</li>
-  <li>Fix <code class="highlighter-rouge">JdbcTest.testVersion</code> now that version is 1.0</li>
+  <li>Fix <code class="language-plaintext highlighter-rouge">JdbcTest.testVersion</code> now that version is 1.0</li>
   <li>Update release HOWTO</li>
 </ul>
 
@@ -7609,7 +7609,7 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-436">CALCITE-436</a>]
-Simpler SPI to query <code class="highlighter-rouge">Table</code>
+Simpler SPI to query <code class="language-plaintext highlighter-rouge">Table</code>
 </li>
 </ul>
 
@@ -7619,39 +7619,39 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-447">CALCITE-447</a>]
 Change semi-join rules to make use of factories</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-442">CALCITE-442</a>
-Add <code class="highlighter-rouge">RelOptRuleOperand</code> constructor that takes a predicate</li>
+Add <code class="language-plaintext highlighter-rouge">RelOptRuleOperand</code> constructor that takes a predicate</li>
 </ul>
 
 <h4 id="fixes-0-9-2">Bug-fixes and internal changes</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-397">CALCITE-397</a>]
-<code class="highlighter-rouge">SELECT DISTINCT *</code> on reflective schema gives <code class="highlighter-rouge">ClassCastException</code> at runtime</li>
+<code class="language-plaintext highlighter-rouge">SELECT DISTINCT *</code> on reflective schema gives <code class="language-plaintext highlighter-rouge">ClassCastException</code> at runtime</li>
   <li>Various lattice improvements.</li>
   <li>sqlline: Looking for class-path in inconsistent locations.</li>
   <li>Re-order test suite, so that fast tests are run first.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-444">CALCITE-444</a>]
 Filters wrongly pushed into full outer join</li>
-  <li>Make it more convenient to unit test <code class="highlighter-rouge">RelMetadataQuery</code>, and add some more
+  <li>Make it more convenient to unit test <code class="language-plaintext highlighter-rouge">RelMetadataQuery</code>, and add some more
 tests for
 [<a href="https://issues.apache.org/jira/browse/CALCITE-443">CALCITE-443</a>]</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-443">CALCITE-443</a>]
-<code class="highlighter-rouge">getPredicates</code> from a Union is not correct</li>
+<code class="language-plaintext highlighter-rouge">getPredicates</code> from a Union is not correct</li>
   <li>Update references to web sites, git repositories, jira, mailing lists,
 travis CI now that [INFRA-8413] is fixed</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-434">CALCITE-435</a>]
-<code class="highlighter-rouge">FilterAggregateTransposeRule</code> loses conditions that cannot be pushed</li>
+<code class="language-plaintext highlighter-rouge">FilterAggregateTransposeRule</code> loses conditions that cannot be pushed</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-435">CALCITE-435</a>]
-<code class="highlighter-rouge">LoptOptimizeJoinRule</code> incorrectly re-orders outer joins</li>
+<code class="language-plaintext highlighter-rouge">LoptOptimizeJoinRule</code> incorrectly re-orders outer joins</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-439">CALCITE-439</a>]
-<code class="highlighter-rouge">SqlValidatorUtil.uniquify()</code> may not terminate under some conditions</li>
+<code class="language-plaintext highlighter-rouge">SqlValidatorUtil.uniquify()</code> may not terminate under some conditions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-438">CALCITE-438</a>]
-Push predicates through <code class="highlighter-rouge">SemiJoinRel</code>
+Push predicates through <code class="language-plaintext highlighter-rouge">SemiJoinRel</code>
 </li>
-  <li>Add test case for <code class="highlighter-rouge">LIKE ... ESCAPE</code>.</li>
+  <li>Add test case for <code class="language-plaintext highlighter-rouge">LIKE ... ESCAPE</code>.</li>
   <li>HOWTO: Modify release instructions.</li>
-  <li>Update <code class="highlighter-rouge">DiffRepository</code> documentation.</li>
-  <li>Add tests for windowed aggregates without <code class="highlighter-rouge">ORDER BY</code>. (Works already.)</li>
+  <li>Update <code class="language-plaintext highlighter-rouge">DiffRepository</code> documentation.</li>
+  <li>Add tests for windowed aggregates without <code class="language-plaintext highlighter-rouge">ORDER BY</code>. (Works already.)</li>
 </ul>
 
 <h2 id="v0-9-1">
@@ -7667,36 +7667,36 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-426">CALCITE-426</a>]
 Pool JDBC data sources, to make it easier to pool connections</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-416">CALCITE-416</a>]
-Execute logical <code class="highlighter-rouge">RelNode</code>s using an interpreter</li>
+Execute logical <code class="language-plaintext highlighter-rouge">RelNode</code>s using an interpreter</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-376">CALCITE-376</a>]
-Move <code class="highlighter-rouge">SqlRun</code> into its own artifact,
+Move <code class="language-plaintext highlighter-rouge">SqlRun</code> into its own artifact,
 <a href="https://github.com/julianhyde/quidem">Quidem</a>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-269">CALCITE-269</a>]
 MongoDB result sets larger than 16MB</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-373">CALCITE-373</a>]
-<code class="highlighter-rouge">NULL</code> values in <code class="highlighter-rouge">NOT IN</code> sub-queries</li>
+<code class="language-plaintext highlighter-rouge">NULL</code> values in <code class="language-plaintext highlighter-rouge">NOT IN</code> sub-queries</li>
   <li>SQL functions:
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-422">CALCITE-422</a>]
-Add <code class="highlighter-rouge">REGR_SXX</code> and <code class="highlighter-rouge">REGR_SYY</code> regression functions</li>
+Add <code class="language-plaintext highlighter-rouge">REGR_SXX</code> and <code class="language-plaintext highlighter-rouge">REGR_SYY</code> regression functions</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-421">CALCITE-421</a>]
-Add <code class="highlighter-rouge">COVAR_POP</code> and <code class="highlighter-rouge">COVAR_SAMP</code> aggregate functions</li>
+Add <code class="language-plaintext highlighter-rouge">COVAR_POP</code> and <code class="language-plaintext highlighter-rouge">COVAR_SAMP</code> aggregate functions</li>
     </ul>
   </li>
   <li>Planner rules:
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-425">CALCITE-425</a>]
-Add <code class="highlighter-rouge">FilterAggregateTransposeRule</code>, that pushes a filter through an
+Add <code class="language-plaintext highlighter-rouge">FilterAggregateTransposeRule</code>, that pushes a filter through an
 aggregate</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-399">CALCITE-399</a>]
-Factorize common <code class="highlighter-rouge">AND</code> factors out of <code class="highlighter-rouge">OR</code> predicates</li>
+Factorize common <code class="language-plaintext highlighter-rouge">AND</code> factors out of <code class="language-plaintext highlighter-rouge">OR</code> predicates</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-404">CALCITE-404</a>]
-<code class="highlighter-rouge">MergeProjectRule</code> should not construct <code class="highlighter-rouge">RexProgram</code>s for simple mappings</li>
+<code class="language-plaintext highlighter-rouge">MergeProjectRule</code> should not construct <code class="language-plaintext highlighter-rouge">RexProgram</code>s for simple mappings</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-394">CALCITE-394</a>]
-Add <code class="highlighter-rouge">RexUtil.toCnf()</code>, to convert expressions to conjunctive normal form
+Add <code class="language-plaintext highlighter-rouge">RexUtil.toCnf()</code>, to convert expressions to conjunctive normal form
 (CNF)</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-389">CALCITE-389</a>]
-<code class="highlighter-rouge">MergeFilterRule</code> should flatten <code class="highlighter-rouge">AND</code> condition</li>
+<code class="language-plaintext highlighter-rouge">MergeFilterRule</code> should flatten <code class="language-plaintext highlighter-rouge">AND</code> condition</li>
     </ul>
   </li>
   <li>Lattices:
@@ -7719,12 +7719,12 @@
   <li>Field trimmer:
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-408">CALCITE-408</a>]
-Make <code class="highlighter-rouge">FieldTrimmer</code> work with <code class="highlighter-rouge">RelNode</code> base classes</li>
+Make <code class="language-plaintext highlighter-rouge">FieldTrimmer</code> work with <code class="language-plaintext highlighter-rouge">RelNode</code> base classes</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-388">CALCITE-388</a>]
 Handle semi-joins in field trimmer</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-395">CALCITE-395</a>]
-Make <code class="highlighter-rouge">FieldTrimmer.trimFields(SetOp)</code> generate <code class="highlighter-rouge">ProjectRel</code> instead of
-<code class="highlighter-rouge">CalcRel</code>
+Make <code class="language-plaintext highlighter-rouge">FieldTrimmer.trimFields(SetOp)</code> generate <code class="language-plaintext highlighter-rouge">ProjectRel</code> instead of
+<code class="language-plaintext highlighter-rouge">CalcRel</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-393">CALCITE-393</a>]
 If no fields are projected from a table, field trimmer should project a
@@ -7737,22 +7737,22 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-413">CALCITE-413</a>]
-Add <code class="highlighter-rouge">RelDataTypeSystem</code> plugin, allowing different max precision of a
-<code class="highlighter-rouge">DECIMAL</code>
+Add <code class="language-plaintext highlighter-rouge">RelDataTypeSystem</code> plugin, allowing different max precision of a
+<code class="language-plaintext highlighter-rouge">DECIMAL</code>
 </li>
-  <li>In <code class="highlighter-rouge">Planner</code>, query de-correlation no longer requires state in a
-<code class="highlighter-rouge">SqlToRelConverter</code>.</li>
+  <li>In <code class="language-plaintext highlighter-rouge">Planner</code>, query de-correlation no longer requires state in a
+<code class="language-plaintext highlighter-rouge">SqlToRelConverter</code>.</li>
   <li>Factories:
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-392">CALCITE-392</a>]
-<code class="highlighter-rouge">RelFieldTrimmer</code> should use factory to create new rel nodes</li>
+<code class="language-plaintext highlighter-rouge">RelFieldTrimmer</code> should use factory to create new rel nodes</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-382">CALCITE-382</a>]
 Refactoring rules to use factories</li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-398">CALCITE-398</a>]
-Move <code class="highlighter-rouge">CalcRel.createProject</code> methods to <code class="highlighter-rouge">RelOptUtil</code>
+Move <code class="language-plaintext highlighter-rouge">CalcRel.createProject</code> methods to <code class="language-plaintext highlighter-rouge">RelOptUtil</code>
 </li>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-396">CALCITE-396</a>]
-Change return type of <code class="highlighter-rouge">JoinFactory.createJoin()</code>; add <code class="highlighter-rouge">SemiJoinFactory</code>
+Change return type of <code class="language-plaintext highlighter-rouge">JoinFactory.createJoin()</code>; add <code class="language-plaintext highlighter-rouge">SemiJoinFactory</code>
 </li>
     </ul>
   </li>
@@ -7766,27 +7766,27 @@
   <li>Add tests inspired by Derby bugs.</li>
   <li>Add recent presentation to README.md.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-427">CALCITE-427</a>]
-Off-by-one issues in <code class="highlighter-rouge">RemoveDistinctAggregateRule</code>,
-<code class="highlighter-rouge">AggregateFilterTransposeRule</code>
+Off-by-one issues in <code class="language-plaintext highlighter-rouge">RemoveDistinctAggregateRule</code>,
+<code class="language-plaintext highlighter-rouge">AggregateFilterTransposeRule</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-414">CALCITE-414</a>]
-Bad class name in <code class="highlighter-rouge">sqlline</code> shell script</li>
-  <li>Bad package name in <code class="highlighter-rouge">package-info.java</code> was causing errors in Eclipse.</li>
+Bad class name in <code class="language-plaintext highlighter-rouge">sqlline</code> shell script</li>
+  <li>Bad package name in <code class="language-plaintext highlighter-rouge">package-info.java</code> was causing errors in Eclipse.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-412">CALCITE-412</a>]
-<code class="highlighter-rouge">RelFieldTrimmer</code>: when trimming <code class="highlighter-rouge">SortRel</code>, the collation and trait set don’t
+<code class="language-plaintext highlighter-rouge">RelFieldTrimmer</code>: when trimming <code class="language-plaintext highlighter-rouge">SortRel</code>, the collation and trait set don’t
 match</li>
   <li>Add test case for
 [<a href="https://issues.apache.org/jira/browse/CALCITE-411">CALCITE-411</a>]
 Duplicate column aliases</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-407">CALCITE-407</a>]
-<code class="highlighter-rouge">RemoveTrivialProjectRule</code> drops child node’s traits</li>
+<code class="language-plaintext highlighter-rouge">RemoveTrivialProjectRule</code> drops child node’s traits</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-409">CALCITE-409</a>]
-<code class="highlighter-rouge">PushFilterPastProjectRule</code> should not push filters past windowed aggregates</li>
+<code class="language-plaintext highlighter-rouge">PushFilterPastProjectRule</code> should not push filters past windowed aggregates</li>
   <li>Fix tests on Windows.</li>
-  <li>Don’t load <code class="highlighter-rouge">FoodMartQuerySet</code> unless we have to. It’s big.</li>
+  <li>Don’t load <code class="language-plaintext highlighter-rouge">FoodMartQuerySet</code> unless we have to. It’s big.</li>
   <li>Enable connection pooling in test suite.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-384">CALCITE-384</a>]
-Add <code class="highlighter-rouge">apache-</code> prefix to tarball and directory within tarball</li>
+Add <code class="language-plaintext highlighter-rouge">apache-</code> prefix to tarball and directory within tarball</li>
   <li>Freeze hive fmpp &gt; freemarker plugin dependency.</li>
   <li>Upgrade Janino</li>
   <li>Removed hardcoded foodmart schema information</li>
@@ -7794,16 +7794,16 @@
 CompileException when cast TRUE to nullable boolean</li>
   <li>Temporary fix for
 [<a href="https://issues.apache.org/jira/browse/CALCITE-390">CALCITE-390</a>]
-Transitive inference (<code class="highlighter-rouge">RelMdPredicates</code>) doesn’t handle semi-join</li>
+Transitive inference (<code class="language-plaintext highlighter-rouge">RelMdPredicates</code>) doesn’t handle semi-join</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-385">CALCITE-385</a>]
 Change comment style for Java headers</li>
   <li>Disable test that is inconistent between JDK 1.7 and 1.8.</li>
-  <li>Fix <code class="highlighter-rouge">git-commit-id-plugin</code> error when running in Travis-CI.</li>
+  <li>Fix <code class="language-plaintext highlighter-rouge">git-commit-id-plugin</code> error when running in Travis-CI.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-381">CALCITE-381</a>]
-Remove plugin versions from the <code class="highlighter-rouge">&lt;plugins&gt;</code> tag in root pom</li>
+Remove plugin versions from the <code class="language-plaintext highlighter-rouge">&lt;plugins&gt;</code> tag in root pom</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-383">CALCITE-383</a>]
-Each jar should have a <code class="highlighter-rouge">git.properties</code> file describing its exact version</li>
-  <li>Fix <code class="highlighter-rouge">mvn site</code> on JDK 1.8 and enable in Travis-CI.</li>
+Each jar should have a <code class="language-plaintext highlighter-rouge">git.properties</code> file describing its exact version</li>
+  <li>Fix <code class="language-plaintext highlighter-rouge">mvn site</code> on JDK 1.8 and enable in Travis-CI.</li>
   <li>Status icon based on master branch, not whichever branch happened to build
 most recently.</li>
   <li>HOWTO:
@@ -7826,18 +7826,18 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-371">CALCITE-371</a>]
-Implement <code class="highlighter-rouge">JOIN</code> whose <code class="highlighter-rouge">ON</code> clause contains mixed equi and theta</li>
+Implement <code class="language-plaintext highlighter-rouge">JOIN</code> whose <code class="language-plaintext highlighter-rouge">ON</code> clause contains mixed equi and theta</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-369">CALCITE-369</a>]
-Add <code class="highlighter-rouge">EnumerableSemiJoinRel</code>, implementation of semi-join in enumerable
+Add <code class="language-plaintext highlighter-rouge">EnumerableSemiJoinRel</code>, implementation of semi-join in enumerable
 convention</li>
-  <li>Add class <code class="highlighter-rouge">Strong</code>, for detecting null-rejecting predicates.</li>
+  <li>Add class <code class="language-plaintext highlighter-rouge">Strong</code>, for detecting null-rejecting predicates.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-368">CALCITE-368</a>]
 Add SemiJoinRule, planner rule to convert project-join-aggregate into semi-join</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-367">CALCITE-367</a>]
-<code class="highlighter-rouge">PushFilterPastJoinRule</code> should strengthen join type</li>
-  <li>Add <code class="highlighter-rouge">EquiJoinRel</code>, base class for joins known to be equi-joins.</li>
-  <li>Implement <code class="highlighter-rouge">CAST(&lt;string&gt; AS &lt;datetime&gt;)</code> and
-<code class="highlighter-rouge">&lt;datetime&gt; + &lt;interval&gt;</code>.</li>
+<code class="language-plaintext highlighter-rouge">PushFilterPastJoinRule</code> should strengthen join type</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">EquiJoinRel</code>, base class for joins known to be equi-joins.</li>
+  <li>Implement <code class="language-plaintext highlighter-rouge">CAST(&lt;string&gt; AS &lt;datetime&gt;)</code> and
+<code class="language-plaintext highlighter-rouge">&lt;datetime&gt; + &lt;interval&gt;</code>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-360">CALCITE-360</a>]
 Introduce a rule to infer predicates from equi-join conditions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-349">CALCITE-349</a>]
@@ -7845,16 +7845,16 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-346">CALCITE-346</a>]
 Add commutative join rule</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-347">CALCITE-347</a>]
-In <code class="highlighter-rouge">SqlRun</code>, add <code class="highlighter-rouge">!plan</code> command</li>
+In <code class="language-plaintext highlighter-rouge">SqlRun</code>, add <code class="language-plaintext highlighter-rouge">!plan</code> command</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-314">CALCITE-314</a>]
 Allow simple UDFs based on methods</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-327">CALCITE-327</a>]
 Rules should use base class to find rule match &amp; use factory for object
 creation</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-316">CALCITE-316</a>]
-In <code class="highlighter-rouge">SqlRun</code>, match output regardless of order if <code class="highlighter-rouge">ORDER BY</code> not present</li>
+In <code class="language-plaintext highlighter-rouge">SqlRun</code>, match output regardless of order if <code class="language-plaintext highlighter-rouge">ORDER BY</code> not present</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-300">CALCITE-300</a>]
-Support multiple parameters in <code class="highlighter-rouge">COUNT(DISTINCT x, y, ...)</code>
+Support multiple parameters in <code class="language-plaintext highlighter-rouge">COUNT(DISTINCT x, y, ...)</code>
 </li>
 </ul>
 
@@ -7864,22 +7864,22 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-343">CALCITE-343</a>]
 RelDecorrelator should build its own mappings, not inherit from SqlToRelConverter</li>
   <li>Remove deprecated methods.</li>
-  <li>Convert <code class="highlighter-rouge">Hook</code> to use Guava <code class="highlighter-rouge">Function</code> (was linq4j <code class="highlighter-rouge">Function1</code>).</li>
-  <li>Add fluent method <code class="highlighter-rouge">withHook</code>, to more easily add hooks in tests.</li>
+  <li>Convert <code class="language-plaintext highlighter-rouge">Hook</code> to use Guava <code class="language-plaintext highlighter-rouge">Function</code> (was linq4j <code class="language-plaintext highlighter-rouge">Function1</code>).</li>
+  <li>Add fluent method <code class="language-plaintext highlighter-rouge">withHook</code>, to more easily add hooks in tests.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-321">CALCITE-321</a>]
-Add support for overriding implementation of <code class="highlighter-rouge">CompoundIdentifier</code> in
-<code class="highlighter-rouge">SqlParser</code>.</li>
+Add support for overriding implementation of <code class="language-plaintext highlighter-rouge">CompoundIdentifier</code> in
+<code class="language-plaintext highlighter-rouge">SqlParser</code>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-322">CALCITE-322</a>]
-Add support for <code class="highlighter-rouge">SqlExplain</code>, <code class="highlighter-rouge">SqlOrderBy</code> and <code class="highlighter-rouge">SqlWith</code> to support
-<code class="highlighter-rouge">SqlShuttle</code> use.</li>
+Add support for <code class="language-plaintext highlighter-rouge">SqlExplain</code>, <code class="language-plaintext highlighter-rouge">SqlOrderBy</code> and <code class="language-plaintext highlighter-rouge">SqlWith</code> to support
+<code class="language-plaintext highlighter-rouge">SqlShuttle</code> use.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-323">CALCITE-323</a>]
-Override <code class="highlighter-rouge">SqlUnresolvedFunction.inferReturnType()</code> to return <code class="highlighter-rouge">ANY</code> type
+Override <code class="language-plaintext highlighter-rouge">SqlUnresolvedFunction.inferReturnType()</code> to return <code class="language-plaintext highlighter-rouge">ANY</code> type
 so framework implementors can support late bound function implementations.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-324">CALCITE-324</a>]
-Add <code class="highlighter-rouge">ViewExpander</code> for <code class="highlighter-rouge">Planner</code> in <code class="highlighter-rouge">Frameworks</code>. Expose additional
-properties of <code class="highlighter-rouge">ViewTable</code> to allow subclassing.</li>
+Add <code class="language-plaintext highlighter-rouge">ViewExpander</code> for <code class="language-plaintext highlighter-rouge">Planner</code> in <code class="language-plaintext highlighter-rouge">Frameworks</code>. Expose additional
+properties of <code class="language-plaintext highlighter-rouge">ViewTable</code> to allow subclassing.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-247">CALCITE-247</a>]
-Add <code class="highlighter-rouge">Context</code> and <code class="highlighter-rouge">FrameworkConfig</code>
+Add <code class="language-plaintext highlighter-rouge">Context</code> and <code class="language-plaintext highlighter-rouge">FrameworkConfig</code>
 </li>
 </ul>
 
@@ -7898,61 +7898,61 @@
 [<a href="https://issues.apache.org/jira/browse/CALCITE-373">CALCITE-373</a>]
 NOT IN and NULL values</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-372">CALCITE-372</a>]
-Change <code class="highlighter-rouge">LoptOptimizeJoinRule</code> &amp; <code class="highlighter-rouge">PushFilterPast</code>* rules to use factory</li>
-  <li>Upgrade <code class="highlighter-rouge">maven-checkstyle-plugin</code>.</li>
-  <li>Add class <code class="highlighter-rouge">Holder</code>, a mutable slot that can contain one object.</li>
+Change <code class="language-plaintext highlighter-rouge">LoptOptimizeJoinRule</code> &amp; <code class="language-plaintext highlighter-rouge">PushFilterPast</code>* rules to use factory</li>
+  <li>Upgrade <code class="language-plaintext highlighter-rouge">maven-checkstyle-plugin</code>.</li>
+  <li>Add class <code class="language-plaintext highlighter-rouge">Holder</code>, a mutable slot that can contain one object.</li>
   <li>Remove the 2-minute wait at the top of the hour for tests of
-<code class="highlighter-rouge">CURRENT_TIME</code>, etc.</li>
-  <li>Tune <code class="highlighter-rouge">ImmutableIntList</code>’s iterators.</li>
+<code class="language-plaintext highlighter-rouge">CURRENT_TIME</code>, etc.</li>
+  <li>Tune <code class="language-plaintext highlighter-rouge">ImmutableIntList</code>’s iterators.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-364">CALCITE-364</a>]
-Validator rejects valid <code class="highlighter-rouge">WITH ... ORDER BY</code> query</li>
+Validator rejects valid <code class="language-plaintext highlighter-rouge">WITH ... ORDER BY</code> query</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-363">CALCITE-363</a>]
-Use <code class="highlighter-rouge">dependencyManagement</code> and <code class="highlighter-rouge">pluginManagement</code> in POM files</li>
-  <li>Add <code class="highlighter-rouge">FilterFactory</code>.</li>
-  <li>Add <code class="highlighter-rouge">README</code> file, incubation disclaimers, and how-to build and running tests.</li>
-  <li>Add <code class="highlighter-rouge">KEYS</code> and start how-to for making snapshots and releases.</li>
+Use <code class="language-plaintext highlighter-rouge">dependencyManagement</code> and <code class="language-plaintext highlighter-rouge">pluginManagement</code> in POM files</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">FilterFactory</code>.</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">README</code> file, incubation disclaimers, and how-to build and running tests.</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">KEYS</code> and start how-to for making snapshots and releases.</li>
   <li>Capital case component names; inherit license info from Apache parent POM.</li>
-  <li>Only run <code class="highlighter-rouge">apache-rat</code> and <code class="highlighter-rouge">git-commit-id-plugin</code> in “release” maven profile.</li>
+  <li>Only run <code class="language-plaintext highlighter-rouge">apache-rat</code> and <code class="language-plaintext highlighter-rouge">git-commit-id-plugin</code> in “release” maven profile.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-348">CALCITE-348</a>]
 Add Apache RAT as maven plugin</li>
   <li>Change license headers from “Julian Hyde” to “ASF”; add headers where missing.</li>
-  <li>Fix build breakage on JDK 1.6 due to missing method <code class="highlighter-rouge">BitSet.previousClearBit</code>.</li>
+  <li>Fix build breakage on JDK 1.6 due to missing method <code class="language-plaintext highlighter-rouge">BitSet.previousClearBit</code>.</li>
   <li>Refactor test infrastructure to allow testing against heuristic bushy-join
 optimizer.</li>
   <li>Add methods and tests for BitSets, and re-organize tests.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-354">CALCITE-354</a>]
 Change maven groupId to “org.apache.optiq”</li>
-  <li>Specify return type when calling <code class="highlighter-rouge">RexBuilder.makeCall</code>, if possible.</li>
-  <li>Eliminate duplicate conditions in <code class="highlighter-rouge">RexProgramBuilder.addCondition</code>, not
-<code class="highlighter-rouge">RexBuilder.makeCall</code> as previously.</li>
+  <li>Specify return type when calling <code class="language-plaintext highlighter-rouge">RexBuilder.makeCall</code>, if possible.</li>
+  <li>Eliminate duplicate conditions in <code class="language-plaintext highlighter-rouge">RexProgramBuilder.addCondition</code>, not
+<code class="language-plaintext highlighter-rouge">RexBuilder.makeCall</code> as previously.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-345">CALCITE-345</a>]
-<code class="highlighter-rouge">AssertionError</code> in <code class="highlighter-rouge">RexToLixTranslator</code> comparing to date literal</li>
-  <li>Restore <code class="highlighter-rouge">PushFilterPastJoinRule</code> to <code class="highlighter-rouge">RelDecorrelator</code>; interim pending
+<code class="language-plaintext highlighter-rouge">AssertionError</code> in <code class="language-plaintext highlighter-rouge">RexToLixTranslator</code> comparing to date literal</li>
+  <li>Restore <code class="language-plaintext highlighter-rouge">PushFilterPastJoinRule</code> to <code class="language-plaintext highlighter-rouge">RelDecorrelator</code>; interim pending
 [<a href="https://issues.apache.org/jira/browse/CALCITE-343">CALCITE-343</a>]
 fix.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-340">CALCITE-340</a>]
-Fix bug in <code class="highlighter-rouge">SqlToRelConverter</code> when push expressions in join conditions into
-<code class="highlighter-rouge">ProjectRel</code>.</li>
+Fix bug in <code class="language-plaintext highlighter-rouge">SqlToRelConverter</code> when push expressions in join conditions into
+<code class="language-plaintext highlighter-rouge">ProjectRel</code>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-313">CALCITE-313</a>]
 Query decorrelation fails</li>
-  <li>While unifying a <code class="highlighter-rouge">RelNode</code> tree with a materialized view expression,
-switch representation to <code class="highlighter-rouge">MutableRel</code>s.</li>
+  <li>While unifying a <code class="language-plaintext highlighter-rouge">RelNode</code> tree with a materialized view expression,
+switch representation to <code class="language-plaintext highlighter-rouge">MutableRel</code>s.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-305">CALCITE-305</a>]
 Unit test failure on release candidates</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-325">CALCITE-325</a>]
 Use Java list instead of Guava list to avoid null checks in case of
-<code class="highlighter-rouge">SqlTypeExplicitPrecedenceList</code>.</li>
+<code class="language-plaintext highlighter-rouge">SqlTypeExplicitPrecedenceList</code>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-326">CALCITE-326</a>]
-Fix <code class="highlighter-rouge">RelOptUtil</code> <code class="highlighter-rouge">ANY</code> type check.</li>
+Fix <code class="language-plaintext highlighter-rouge">RelOptUtil</code> <code class="language-plaintext highlighter-rouge">ANY</code> type check.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-303">CALCITE-303</a>]
 Migrate issue URLs</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-331">CALCITE-331</a>]
-Precision/scale compatibility checks should always succeed for <code class="highlighter-rouge">ANY</code> type</li>
-  <li>In <code class="highlighter-rouge">SqlRun</code>, allow <code class="highlighter-rouge">!plan</code> after <code class="highlighter-rouge">!ok</code> for same SQL statement.</li>
+Precision/scale compatibility checks should always succeed for <code class="language-plaintext highlighter-rouge">ANY</code> type</li>
+  <li>In <code class="language-plaintext highlighter-rouge">SqlRun</code>, allow <code class="language-plaintext highlighter-rouge">!plan</code> after <code class="language-plaintext highlighter-rouge">!ok</code> for same SQL statement.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-318">CALCITE-318</a>]
-Add unit test for <code class="highlighter-rouge">SqlRun</code>
+Add unit test for <code class="language-plaintext highlighter-rouge">SqlRun</code>
 </li>
-  <li>Fix a bug where composite <code class="highlighter-rouge">SELECT DISTINCT</code> would return duplicate rows.</li>
+  <li>Fix a bug where composite <code class="language-plaintext highlighter-rouge">SELECT DISTINCT</code> would return duplicate rows.</li>
 </ul>
 
 <h2 id="v0-8">
@@ -7963,7 +7963,7 @@
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-310">CALCITE-310</a>]
  Implement LEAD, LAG and NTILE windowed aggregates</li>
-  <li>Reduce <code class="highlighter-rouge">COUNT(not-null-expression)</code> to <code class="highlighter-rouge">COUNT()</code>
+  <li>Reduce <code class="language-plaintext highlighter-rouge">COUNT(not-null-expression)</code> to <code class="language-plaintext highlighter-rouge">COUNT()</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-292">CALCITE-292</a>]
  Improve windowed aggregate return types</li>
@@ -7976,7 +7976,7 @@
   <li>SqlRun utility
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-290">CALCITE-290</a>]
-Add <code class="highlighter-rouge">SqlRun</code>, an idempotent utility for running SQL test scripts</li>
+Add <code class="language-plaintext highlighter-rouge">SqlRun</code>, an idempotent utility for running SQL test scripts</li>
       <li>Add “!skip” command to SqlRun.</li>
       <li>Add MySQL formatting mode to SqlRun.</li>
     </ul>
@@ -7989,15 +7989,15 @@
   <li>Re-organize planner initialization,
 to make it easier to use heuristic join order.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-301">CALCITE-301</a>]
-Add <code class="highlighter-rouge">Program</code> interface, a planner phase more general than current <code class="highlighter-rouge">RuleSet</code>
+Add <code class="language-plaintext highlighter-rouge">Program</code> interface, a planner phase more general than current <code class="language-plaintext highlighter-rouge">RuleSet</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-263">CALCITE-263</a>]
 Add operand type that will cause a rule to fire when a new subset is created</li>
   <li>Clean up and document SqlKind.
     <ul>
-      <li>Add <code class="highlighter-rouge">IS_NOT_TRUE</code> and <code class="highlighter-rouge">IS_NOT_FALSE</code> <code class="highlighter-rouge">SqlKind</code> enums.</li>
-      <li>Add <code class="highlighter-rouge">SqlKind.IS_NOT_NULL</code> enum value, and use where possible,
-including for <code class="highlighter-rouge">IS_NOT_UNKNOWN</code> operator.</li>
+      <li>Add <code class="language-plaintext highlighter-rouge">IS_NOT_TRUE</code> and <code class="language-plaintext highlighter-rouge">IS_NOT_FALSE</code> <code class="language-plaintext highlighter-rouge">SqlKind</code> enums.</li>
+      <li>Add <code class="language-plaintext highlighter-rouge">SqlKind.IS_NOT_NULL</code> enum value, and use where possible,
+including for <code class="language-plaintext highlighter-rouge">IS_NOT_UNKNOWN</code> operator.</li>
     </ul>
   </li>
 </ul>
@@ -8006,19 +8006,19 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-312">CALCITE-312</a>]
-Trim non-required fields before <code class="highlighter-rouge">WindowRel</code>
+Trim non-required fields before <code class="language-plaintext highlighter-rouge">WindowRel</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-311">CALCITE-311</a>]
 Wrong results when filtering the results of windowed aggregation</li>
-  <li>More tests for <code class="highlighter-rouge">WITH ... ORDER BY</code>
+  <li>More tests for <code class="language-plaintext highlighter-rouge">WITH ... ORDER BY</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-309">CALCITE-309</a>]
-<code class="highlighter-rouge">WITH ... ORDER BY</code> query gives <code class="highlighter-rouge">AssertionError</code>
+<code class="language-plaintext highlighter-rouge">WITH ... ORDER BY</code> query gives <code class="language-plaintext highlighter-rouge">AssertionError</code>
 </li>
-  <li>Enable <code class="highlighter-rouge">MultiJoinRel</code> and some other planner rule tests.</li>
-  <li>Add <code class="highlighter-rouge">ImmutableNullableList</code> and <code class="highlighter-rouge">UnmodifiableArrayList</code>,
-and remove calls to <code class="highlighter-rouge">Arrays.asList</code>.</li>
-  <li>Add method <code class="highlighter-rouge">IntPair.zip</code>.</li>
+  <li>Enable <code class="language-plaintext highlighter-rouge">MultiJoinRel</code> and some other planner rule tests.</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">ImmutableNullableList</code> and <code class="language-plaintext highlighter-rouge">UnmodifiableArrayList</code>,
+and remove calls to <code class="language-plaintext highlighter-rouge">Arrays.asList</code>.</li>
+  <li>Add method <code class="language-plaintext highlighter-rouge">IntPair.zip</code>.</li>
   <li>Reimplement regular and windowed aggregates</li>
   <li>Switch from github to Apache JIRA for issues tracking.
     <ul>
@@ -8027,21 +8027,21 @@
   </li>
   <li>The Apache mailing list is now the official mailing list. Add presentations.</li>
   <li>Add test for overloaded UDF.</li>
-  <li>Add tests for <code class="highlighter-rouge">NOT IN</code> where sub-query returns NULL values.</li>
+  <li>Add tests for <code class="language-plaintext highlighter-rouge">NOT IN</code> where sub-query returns NULL values.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-288">CALCITE-288</a>]
 Add tests for windowed aggregation based on Postgres reference queries</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-286">CALCITE-286</a>]
 Error casting MongoDB date</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-284">CALCITE-284</a>]
-Window functions range defaults to <code class="highlighter-rouge">CURRENT ROW</code>
+Window functions range defaults to <code class="language-plaintext highlighter-rouge">CURRENT ROW</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-285">CALCITE-285</a>]
-Window functions throw exception without <code class="highlighter-rouge">ORDER BY</code>
+Window functions throw exception without <code class="language-plaintext highlighter-rouge">ORDER BY</code>
 </li>
   <li>Test case for
 [&lt;a href=“https://issues.apache.org/jira/browse/CALCITE-285”&gt;CALCITE-285&lt;/a&gt;].</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-281">CALCITE-281</a>]
-<code class="highlighter-rouge">EXTRACT</code> function’s SQL return type is <code class="highlighter-rouge">BIGINT</code> but implemented as Java <code class="highlighter-rouge">int</code>
+<code class="language-plaintext highlighter-rouge">EXTRACT</code> function’s SQL return type is <code class="language-plaintext highlighter-rouge">BIGINT</code> but implemented as Java <code class="language-plaintext highlighter-rouge">int</code>
 </li>
 </ul>
 
@@ -8057,32 +8057,32 @@
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-267">CALCITE-267</a>]
 Improve support for ARRAY data type</li>
       <li>Better type information for JDBC Array; nested array now possible.</li>
-      <li>Implement <code class="highlighter-rouge">JOIN LATERAL</code> and <code class="highlighter-rouge">JOIN UNNEST</code>.</li>
-      <li>Implement the <code class="highlighter-rouge">UNNEST</code> relational operator, and various improvements
-to <code class="highlighter-rouge">ARRAY</code> and <code class="highlighter-rouge">MULTISET</code> data types.</li>
-      <li>Represent <code class="highlighter-rouge">ARRAY</code> columns as Java lists.</li>
-      <li>Implement <code class="highlighter-rouge">CARDINALITY(ARRAY)</code> SQL operator.</li>
+      <li>Implement <code class="language-plaintext highlighter-rouge">JOIN LATERAL</code> and <code class="language-plaintext highlighter-rouge">JOIN UNNEST</code>.</li>
+      <li>Implement the <code class="language-plaintext highlighter-rouge">UNNEST</code> relational operator, and various improvements
+to <code class="language-plaintext highlighter-rouge">ARRAY</code> and <code class="language-plaintext highlighter-rouge">MULTISET</code> data types.</li>
+      <li>Represent <code class="language-plaintext highlighter-rouge">ARRAY</code> columns as Java lists.</li>
+      <li>Implement <code class="language-plaintext highlighter-rouge">CARDINALITY(ARRAY)</code> SQL operator.</li>
     </ul>
   </li>
-  <li>Implement scalar sub-query in <code class="highlighter-rouge">SELECT</code> clause.</li>
+  <li>Implement scalar sub-query in <code class="language-plaintext highlighter-rouge">SELECT</code> clause.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-273">CALCITE-273</a>]
 Support column alias in WITH queries (common table expressions)</li>
   <li>Windowed aggregates:
     <ul>
-      <li>Aggregate over constants, e.g. <code class="highlighter-rouge">SUM(1) OVER (ROWS 10 PRECEDING)</code>;</li>
+      <li>Aggregate over constants, e.g. <code class="language-plaintext highlighter-rouge">SUM(1) OVER (ROWS 10 PRECEDING)</code>;</li>
       <li>
-<code class="highlighter-rouge">UNBOUNDED PRECEDING</code> window range;</li>
+<code class="language-plaintext highlighter-rouge">UNBOUNDED PRECEDING</code> window range;</li>
       <li>Windowed aggregates computed over primitive scalars.</li>
     </ul>
   </li>
-  <li>Fix return type inference for aggregate calls. If the <code class="highlighter-rouge">GROUP BY</code> clause is
-empty, <code class="highlighter-rouge">SUM</code> may return null.</li>
+  <li>Fix return type inference for aggregate calls. If the <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause is
+empty, <code class="language-plaintext highlighter-rouge">SUM</code> may return null.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-37">CALCITE-37</a>]
-Document JSON model file format (as <a href="https://github.com/apache/calcite/blob/master/site/_docs/model.md">model.md</a>).</li>
+Document JSON model file format (as <a href="https://github.com/apache/calcite/blob/main/site/_docs/model.md">model.md</a>).</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-238">CALCITE-238</a>]
 Add adapter that generates TPC-H data</li>
-  <li>Improve exception message in <code class="highlighter-rouge">AvaticaConnection</code>; add
-<code class="highlighter-rouge">ExceptionMessageTest</code>.</li>
+  <li>Improve exception message in <code class="language-plaintext highlighter-rouge">AvaticaConnection</code>; add
+<code class="language-plaintext highlighter-rouge">ExceptionMessageTest</code>.</li>
   <li>Implement micro-benchmarks via
 <a href="https://openjdk.java.net/projects/code-tools/jmh/">JMH</a>.</li>
 </ul>
@@ -8095,7 +8095,7 @@
     <ul>
       <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-175">CALCITE-175</a>]
 Modify Schema SPI to allow caching</li>
-      <li>Get sub-schemas defined by a Schema SPI, and cache their <code class="highlighter-rouge">OptiqSchema</code>
+      <li>Get sub-schemas defined by a Schema SPI, and cache their <code class="language-plaintext highlighter-rouge">OptiqSchema</code>
 wrappers. (Tobi Vollebregt and Julian Hyde)</li>
     </ul>
   </li>
@@ -8112,20 +8112,20 @@
   <li>Code generation improvements:</li>
   <li>Move code-generation optimizer to linq4j;</li>
   <li>Improve translation of strict functions;</li>
-  <li>Mark most methods in <code class="highlighter-rouge">SqlFunctions</code> as <code class="highlighter-rouge">@Deterministic</code>;</li>
-  <li>Support <code class="highlighter-rouge">static final</code> constants generated by linq4j.</li>
-  <li>Avoid excessive box and unbox of primitives when using <code class="highlighter-rouge">Object[]</code> storage.</li>
+  <li>Mark most methods in <code class="language-plaintext highlighter-rouge">SqlFunctions</code> as <code class="language-plaintext highlighter-rouge">@Deterministic</code>;</li>
+  <li>Support <code class="language-plaintext highlighter-rouge">static final</code> constants generated by linq4j.</li>
+  <li>Avoid excessive box and unbox of primitives when using <code class="language-plaintext highlighter-rouge">Object[]</code> storage.</li>
   <li>In JDBC result set, avoid row computation on each accessor call.</li>
   <li>Test composite join conditions in various flavors of outer join.</li>
-  <li>Use <code class="highlighter-rouge">fromTrait</code> of the just previously converted <code class="highlighter-rouge">RelNode</code> instead
-of the original <code class="highlighter-rouge">RelNode</code>.</li>
+  <li>Use <code class="language-plaintext highlighter-rouge">fromTrait</code> of the just previously converted <code class="language-plaintext highlighter-rouge">RelNode</code> instead
+of the original <code class="language-plaintext highlighter-rouge">RelNode</code>.</li>
   <li>Disable a MongoDB test, pending
 [<a href="https://issues.apache.org/jira/browse/CALCITE-270">CALCITE-270</a>].</li>
-  <li>Hush warnings from <code class="highlighter-rouge">SplunkAdapterTest</code> if Splunk is not available.</li>
+  <li>Hush warnings from <code class="language-plaintext highlighter-rouge">SplunkAdapterTest</code> if Splunk is not available.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-252">CALCITE-252</a>]
 Scalar sub-query that returns 0 rows should become NULL value</li>
   <li>
-<code class="highlighter-rouge">SplunkAdapterTest</code> now uses the same Foodmart database as <code class="highlighter-rouge">JdbcTest</code>.</li>
+<code class="language-plaintext highlighter-rouge">SplunkAdapterTest</code> now uses the same Foodmart database as <code class="language-plaintext highlighter-rouge">JdbcTest</code>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-242">CALCITE-242</a>]
 SplunkAdapterTest fails</li>
   <li>Remove some obsolete classes.</li>
@@ -8141,17 +8141,17 @@
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-214">CALCITE-214</a>]
 Modify Frameworks to allow Schema to be re-used
-Obsoletes <code class="highlighter-rouge">name</code> field of <code class="highlighter-rouge">ReflectiveSchema</code>.</li>
+Obsoletes <code class="language-plaintext highlighter-rouge">name</code> field of <code class="language-plaintext highlighter-rouge">ReflectiveSchema</code>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-237">CALCITE-237</a>]
 Allow user-defined aggregate functions (UDAs) to be defined in a model</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-227">CALCITE-227</a>]
-Extend <code class="highlighter-rouge">EXTRACT</code> function to support <code class="highlighter-rouge">DATE</code>, <code class="highlighter-rouge">TIME</code> and <code class="highlighter-rouge">TIMESTAMP</code> values</li>
+Extend <code class="language-plaintext highlighter-rouge">EXTRACT</code> function to support <code class="language-plaintext highlighter-rouge">DATE</code>, <code class="language-plaintext highlighter-rouge">TIME</code> and <code class="language-plaintext highlighter-rouge">TIMESTAMP</code> values</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-222">CALCITE-222</a>]
 User-defined table macros</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-179">CALCITE-179</a>]
 Optiq on Windows
     <ul>
-      <li>Add <code class="highlighter-rouge">sqlline.bat</code> and fix issues running <code class="highlighter-rouge">sqlline</code> under Cygwin.</li>
+      <li>Add <code class="language-plaintext highlighter-rouge">sqlline.bat</code> and fix issues running <code class="language-plaintext highlighter-rouge">sqlline</code> under Cygwin.</li>
     </ul>
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-195">CALCITE-195</a>]
@@ -8166,17 +8166,17 @@
 <h4 id="api-0-6">API changes</h4>
 
 <ul>
-  <li>Obsolete <code class="highlighter-rouge">RexImpTable.AggregateImplementor</code> and rename <code class="highlighter-rouge">AggImplementor2</code>.
+  <li>Obsolete <code class="language-plaintext highlighter-rouge">RexImpTable.AggregateImplementor</code> and rename <code class="language-plaintext highlighter-rouge">AggImplementor2</code>.
 (<strong>This is a breaking change</strong>.)</li>
-  <li>Convert <code class="highlighter-rouge">CombinedParser.jj</code> into freemarker template to allow
+  <li>Convert <code class="language-plaintext highlighter-rouge">CombinedParser.jj</code> into freemarker template to allow
 custom parser implementations. (Venki Korukanti)</li>
-  <li>Extend <code class="highlighter-rouge">Planner</code> to pass a custom <code class="highlighter-rouge">ConvertletTable</code> and custom SQL parser.</li>
-  <li>In <code class="highlighter-rouge">Frameworks</code>, add a way to specify list of <code class="highlighter-rouge">TraitDef</code>s that will be used
+  <li>Extend <code class="language-plaintext highlighter-rouge">Planner</code> to pass a custom <code class="language-plaintext highlighter-rouge">ConvertletTable</code> and custom SQL parser.</li>
+  <li>In <code class="language-plaintext highlighter-rouge">Frameworks</code>, add a way to specify list of <code class="language-plaintext highlighter-rouge">TraitDef</code>s that will be used
 by planner. (Jinfeng Ni)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-198">CALCITE-198</a>]
-Use <code class="highlighter-rouge">RexExecutor</code> to evaluate projections and filters</li>
+Use <code class="language-plaintext highlighter-rouge">RexExecutor</code> to evaluate projections and filters</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-219">CALCITE-219</a>]
-Parse <code class="highlighter-rouge">ALTER scope SET option = value</code> statement</li>
+Parse <code class="language-plaintext highlighter-rouge">ALTER scope SET option = value</code> statement</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-215">CALCITE-215</a>]
 A Schema should not have to remember its name and parent
 (<strong>This is a breaking change</strong>.)</li>
@@ -8184,8 +8184,8 @@
 Common base class for TableFunction, ScalarFunction
 (<strong>This is a breaking change</strong>.)</li>
   <li>Add methods for dealing with symbols; deprecate
-<code class="highlighter-rouge">SqlLiteral.booleanValue(SqlNode)</code>, <code class="highlighter-rouge">SqlLiteral.symbolValue(SqlNode)</code>.</li>
-  <li>Add <code class="highlighter-rouge">RelOptPlanner.clear()</code>; now it is safe to call <code class="highlighter-rouge">transform</code> twice.
+<code class="language-plaintext highlighter-rouge">SqlLiteral.booleanValue(SqlNode)</code>, <code class="language-plaintext highlighter-rouge">SqlLiteral.symbolValue(SqlNode)</code>.</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">RelOptPlanner.clear()</code>; now it is safe to call <code class="language-plaintext highlighter-rouge">transform</code> twice.
 (Jinfeng Ni)</li>
   <li>Remove APIs deprecated for 0.5.</li>
   <li>Move around some operator classes and singletons.</li>
@@ -8196,31 +8196,31 @@
 <ul>
   <li>Upgrade to linq4j-0.2.</li>
   <li>
-<code class="highlighter-rouge">FETCH</code> and <code class="highlighter-rouge">LIMIT</code> are ignored during SQL-to-RelNode translation.
+<code class="language-plaintext highlighter-rouge">FETCH</code> and <code class="language-plaintext highlighter-rouge">LIMIT</code> are ignored during SQL-to-RelNode translation.
 (Venki Korukanti)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-245">CALCITE-245</a>]
 Off-by-one translation of ON clause of JOIN</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-191">CALCITE-191</a>]
 Rotate time/date/timestamp vals to local timezone</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-244">CALCITE-244</a>]
-<code class="highlighter-rouge">RelOptTableImpl.create</code> always expects <code class="highlighter-rouge">QueryableTable</code> type in
-<code class="highlighter-rouge">OptiqSchema.TableEntry</code>
+<code class="language-plaintext highlighter-rouge">RelOptTableImpl.create</code> always expects <code class="language-plaintext highlighter-rouge">QueryableTable</code> type in
+<code class="language-plaintext highlighter-rouge">OptiqSchema.TableEntry</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-225">CALCITE-225</a>]
 Optiq doesn’t correctly decorrelate queries</li>
   <li>Clean up package-info.  Remove duplicates in test packages so they
 don’t conflict with those in non-test packages.</li>
-  <li>Add <code class="highlighter-rouge">Pair.adjacents(Iterable)</code>.</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">Pair.adjacents(Iterable)</code>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-199">CALCITE-199</a>]
-Various <code class="highlighter-rouge">ANY</code> type conditions aren’t correctly being considered
+Various <code class="language-plaintext highlighter-rouge">ANY</code> type conditions aren’t correctly being considered
 (Jacques Nadeau)</li>
-  <li>Add files to <code class="highlighter-rouge">.gitignore</code> that shouldn’t be checked in when using
+  <li>Add files to <code class="language-plaintext highlighter-rouge">.gitignore</code> that shouldn’t be checked in when using
 Eclipse. (Jacques Nadeau)</li>
-  <li>Add class <code class="highlighter-rouge">ControlFlowException</code>, and make it base class of
+  <li>Add class <code class="language-plaintext highlighter-rouge">ControlFlowException</code>, and make it base class of
 existing control-flow exception classes.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-232">CALCITE-232</a>]
 Sum and avg of empty set should be null as per SQL specification</li>
-  <li>Add <code class="highlighter-rouge">SqlUnresolvedFunction</code>, to improve how return type of
+  <li>Add <code class="language-plaintext highlighter-rouge">SqlUnresolvedFunction</code>, to improve how return type of
 user-defined functions is resolved. (Vladimir Sitnikov)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-228">CALCITE-228</a>]
 Error while compiling generated Java code when using UDF in expression</li>
@@ -8230,35 +8230,35 @@
 Join between different JDBC schemas not implementable</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-230">CALCITE-230</a>]
 RemoveSortRule derives trait set from sort, should derive it from sort’s child</li>
-  <li>Test view and sub-query with <code class="highlighter-rouge">ORDER BY</code> and <code class="highlighter-rouge">LIMIT</code>.</li>
+  <li>Test view and sub-query with <code class="language-plaintext highlighter-rouge">ORDER BY</code> and <code class="language-plaintext highlighter-rouge">LIMIT</code>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-223">CALCITE-223</a>]
-Add <code class="highlighter-rouge">NOTICE</code> and <code class="highlighter-rouge">LICENSE</code> files in all generated JAR files</li>
+Add <code class="language-plaintext highlighter-rouge">NOTICE</code> and <code class="language-plaintext highlighter-rouge">LICENSE</code> files in all generated JAR files</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-209">CALCITE-209</a>]
 Consistent strategy for line-endings in tests
-Convert uses of <code class="highlighter-rouge">NL</code> in tests to Linux newline “\n”.
+Convert uses of <code class="language-plaintext highlighter-rouge">NL</code> in tests to Linux newline “\n”.
 This makes string constants simpler.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-218">CALCITE-218</a>]
-Functions case sensitive when using <code class="highlighter-rouge">Lex.MYSQL</code>
+Functions case sensitive when using <code class="language-plaintext highlighter-rouge">Lex.MYSQL</code>
 </li>
-  <li>Add tests that a query with aggregate expressions in the <code class="highlighter-rouge">SELECT</code>
-clause is considered an aggregate query, even if there is no <code class="highlighter-rouge">GROUP BY</code>.</li>
+  <li>Add tests that a query with aggregate expressions in the <code class="language-plaintext highlighter-rouge">SELECT</code>
+clause is considered an aggregate query, even if there is no <code class="language-plaintext highlighter-rouge">GROUP BY</code>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-216">CALCITE-216</a>]
 Inconsistent use of provided operator table causes inability to
 add aggregate functions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-200">CALCITE-200</a>]
 Javadoc generation fails under JDK 1.8</li>
-  <li>Add class <code class="highlighter-rouge">XmlOutput</code> (based on <code class="highlighter-rouge">org.eigenbase.xom.XMLOutput</code>) and remove
+  <li>Add class <code class="language-plaintext highlighter-rouge">XmlOutput</code> (based on <code class="language-plaintext highlighter-rouge">org.eigenbase.xom.XMLOutput</code>) and remove
 dependency on eigenbase-xom.</li>
   <li>Performance: Don’t create stack-trace for exceptions used for control-flow.
 (Vladimir Sitnikov)</li>
-  <li>Performance: Tune <code class="highlighter-rouge">RexProgramBuilder</code> by using <code class="highlighter-rouge">Pair</code> rather than <code class="highlighter-rouge">String</code> as
+  <li>Performance: Tune <code class="language-plaintext highlighter-rouge">RexProgramBuilder</code> by using <code class="language-plaintext highlighter-rouge">Pair</code> rather than <code class="language-plaintext highlighter-rouge">String</code> as
 expression key. (Vladimir Sitnikov)</li>
   <li>Fix NPE using TRIM function with JDBC. (Bruno Dumon)</li>
   <li>Add dependency on
 <a href="https://github.com/julianhyde/hydromatic-resource">hydromatic-resource-maven-plugin</a>
 and obsolete our copy of the resource framework.</li>
-  <li>Fix race condition in <code class="highlighter-rouge">SpaceList</code>.</li>
-  <li>In planner, use <code class="highlighter-rouge">RelTrait.subsumes</code> rather than <code class="highlighter-rouge">equals</code> in an assert.
+  <li>Fix race condition in <code class="language-plaintext highlighter-rouge">SpaceList</code>.</li>
+  <li>In planner, use <code class="language-plaintext highlighter-rouge">RelTrait.subsumes</code> rather than <code class="language-plaintext highlighter-rouge">equals</code> in an assert.
 (Jinfeng Ni)</li>
 </ul>
 
@@ -8268,14 +8268,14 @@
 <h4 id="new-features-0-5">New features</h4>
 
 <ul>
-  <li>Allow <code class="highlighter-rouge">quoting</code>, <code class="highlighter-rouge">quotedCasing</code>, <code class="highlighter-rouge">unquotedCasing</code>, and <code class="highlighter-rouge">caseSensitive</code>
+  <li>Allow <code class="language-plaintext highlighter-rouge">quoting</code>, <code class="language-plaintext highlighter-rouge">quotedCasing</code>, <code class="language-plaintext highlighter-rouge">unquotedCasing</code>, and <code class="language-plaintext highlighter-rouge">caseSensitive</code>
 properties to be specified explicitly (Vladimir Sitnikov)</li>
   <li>Recognize more kinds of materializations, including filter-on-project (where
 project contains expressions) and some kinds of aggregation.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-128">CALCITE-128</a>]
-Support <code class="highlighter-rouge">WITH</code> queries (common table expressions)</li>
+Support <code class="language-plaintext highlighter-rouge">WITH</code> queries (common table expressions)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-53">CALCITE-53</a>]
-Allow <code class="highlighter-rouge">WHEN</code> clause in simple <code class="highlighter-rouge">CASE</code> expression to have multiple values</li>
+Allow <code class="language-plaintext highlighter-rouge">WHEN</code> clause in simple <code class="language-plaintext highlighter-rouge">CASE</code> expression to have multiple values</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-156">CALCITE-156</a>]
 Optiq should recognize ‘SYSTEM TABLE’, ‘JOIN’, ‘INDEX’ as table types</li>
   <li>Support querying ARRAY columns from JDBC source. (Gabriel Reid)</li>
@@ -8285,23 +8285,23 @@
 
 <ul>
   <li>Add
-<code class="highlighter-rouge">ProjectRelBase.copy(RelTraitSet, RelNode, List&lt;RexNode&gt;, RelDataType)</code>
-and make <code class="highlighter-rouge">ProjectRelBase.copy(RelTraitSet, RelNode)</code> final.
-(<strong>This is a breaking change</strong> for sub-classes of <code class="highlighter-rouge">ProjectRelBase</code>.)</li>
-  <li>Change <code class="highlighter-rouge">RexBuilder.makeRangeReference</code> parameter type.</li>
+<code class="language-plaintext highlighter-rouge">ProjectRelBase.copy(RelTraitSet, RelNode, List&lt;RexNode&gt;, RelDataType)</code>
+and make <code class="language-plaintext highlighter-rouge">ProjectRelBase.copy(RelTraitSet, RelNode)</code> final.
+(<strong>This is a breaking change</strong> for sub-classes of <code class="language-plaintext highlighter-rouge">ProjectRelBase</code>.)</li>
+  <li>Change <code class="language-plaintext highlighter-rouge">RexBuilder.makeRangeReference</code> parameter type.</li>
   <li>
-<code class="highlighter-rouge">RexBuilder.makeInputRef</code> replaces <code class="highlighter-rouge">RelOptUtil.createInputRef</code>.</li>
+<code class="language-plaintext highlighter-rouge">RexBuilder.makeInputRef</code> replaces <code class="language-plaintext highlighter-rouge">RelOptUtil.createInputRef</code>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-160">CALCITE-160</a>]
 Allow comments in schema definitions</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-147">CALCITE-147</a>]
-Create a new kind of <code class="highlighter-rouge">SqlCall</code> that keeps operands in fields, not an operands
+Create a new kind of <code class="language-plaintext highlighter-rouge">SqlCall</code> that keeps operands in fields, not an operands
 array
     <ul>
       <li>Very widely used parse tree nodes with complex operands, including
-<code class="highlighter-rouge">SqlSelect</code>, <code class="highlighter-rouge">SqlJoin</code>, <code class="highlighter-rouge">SqlInsert</code>, and a new node type <code class="highlighter-rouge">SqlOrderBy</code>, are
-now sub-classes of <code class="highlighter-rouge">SqlCall</code> but not <code class="highlighter-rouge">SqlBasicCall</code>.</li>
+<code class="language-plaintext highlighter-rouge">SqlSelect</code>, <code class="language-plaintext highlighter-rouge">SqlJoin</code>, <code class="language-plaintext highlighter-rouge">SqlInsert</code>, and a new node type <code class="language-plaintext highlighter-rouge">SqlOrderBy</code>, are
+now sub-classes of <code class="language-plaintext highlighter-rouge">SqlCall</code> but not <code class="language-plaintext highlighter-rouge">SqlBasicCall</code>.</li>
       <li>(<strong>This is a breaking change</strong> to code that assumes that, say,
-<code class="highlighter-rouge">SqlSelect</code> has an <code class="highlighter-rouge">operands</code> field.)</li>
+<code class="language-plaintext highlighter-rouge">SqlSelect</code> has an <code class="language-plaintext highlighter-rouge">operands</code> field.)</li>
     </ul>
   </li>
   <li>Convert all enum constants to upper-case.
@@ -8318,49 +8318,49 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-143">CALCITE-143</a>]
 Remove dependency on eigenbase-resgen</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-173">CALCITE-173</a>]
-Case-insensitive table names are not supported for <code class="highlighter-rouge">Casing.UNCHANGED</code>
+Case-insensitive table names are not supported for <code class="language-plaintext highlighter-rouge">Casing.UNCHANGED</code>
 </li>
   <li>
-<code class="highlighter-rouge">DATE.getLimit</code> now returns <code class="highlighter-rouge">Calendar</code> in GMT time zone (Vladimir Sitnikov)</li>
-  <li>Set <code class="highlighter-rouge">en_US</code> locale in tests that match against error numbers, dates
+<code class="language-plaintext highlighter-rouge">DATE.getLimit</code> now returns <code class="language-plaintext highlighter-rouge">Calendar</code> in GMT time zone (Vladimir Sitnikov)</li>
+  <li>Set <code class="language-plaintext highlighter-rouge">en_US</code> locale in tests that match against error numbers, dates
 (Vladimir Sitnikov)</li>
   <li>Use 1 test thread per CPU to avoid thread starvation on dual core CPUs
 (Vladimir Sitnikov)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-174">CALCITE-174</a>]
 Move hsqldb to test scope</li>
-  <li>Add unit tests for <code class="highlighter-rouge">RexExecutorImpl</code>.</li>
+  <li>Add unit tests for <code class="language-plaintext highlighter-rouge">RexExecutorImpl</code>.</li>
   <li>Correct JSON model examples in Javadoc comments. (Karel Vervaeke)</li>
-  <li>Move test reference logs from <code class="highlighter-rouge">src/test/java</code> to <code class="highlighter-rouge">src/test/resources</code>
+  <li>Move test reference logs from <code class="language-plaintext highlighter-rouge">src/test/java</code> to <code class="language-plaintext highlighter-rouge">src/test/resources</code>
 (reduces the number of ‘untracked files’ reported by git)</li>
-  <li>Tune <code class="highlighter-rouge">Util.SpaceList</code>, fix race condition, and move into new utility class
-<code class="highlighter-rouge">Spaces</code>.</li>
+  <li>Tune <code class="language-plaintext highlighter-rouge">Util.SpaceList</code>, fix race condition, and move into new utility class
+<code class="language-plaintext highlighter-rouge">Spaces</code>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-163">CALCITE-163</a>]
 Equi-join warning</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-157">CALCITE-157</a>]
-Handle <code class="highlighter-rouge">SQLFeatureNotSupported</code> when calling <code class="highlighter-rouge">setQueryTimeout</code>
+Handle <code class="language-plaintext highlighter-rouge">SQLFeatureNotSupported</code> when calling <code class="language-plaintext highlighter-rouge">setQueryTimeout</code>
 (Karel Vervaeke)</li>
   <li>Fix Optiq on Windows. (All tests and checkstyle checks pass.)</li>
   <li>In checkstyle, support Windows-style file separator, otherwise build fails in
 Windows due to suppressions not used. (Vladimir Sitnikov)</li>
-  <li>Enable MongoDB tests when <code class="highlighter-rouge">-Dcalcite.test.mongodb=true</code>.</li>
+  <li>Enable MongoDB tests when <code class="language-plaintext highlighter-rouge">-Dcalcite.test.mongodb=true</code>.</li>
   <li>Cleanup cache exception-handling and an assert.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-153">CALCITE-153</a>]
 Error using MongoDB adapter: Failed to set setXIncludeAware(true)</li>
   <li>Disable spark engine unless Spark libraries are on the class path and
-<code class="highlighter-rouge">spark=true</code> is specified in the connect string.</li>
-  <li>Fix path to <code class="highlighter-rouge">mongo-zips-model.json</code> in HOWTO. (Mariano Luna)</li>
+<code class="language-plaintext highlighter-rouge">spark=true</code> is specified in the connect string.</li>
+  <li>Fix path to <code class="language-plaintext highlighter-rouge">mongo-zips-model.json</code> in HOWTO. (Mariano Luna)</li>
   <li>Fix bug deriving the type of a join-key.</li>
-  <li>Fix the value of <code class="highlighter-rouge">ONE_MINUS_EPSILON</code>.</li>
+  <li>Fix the value of <code class="language-plaintext highlighter-rouge">ONE_MINUS_EPSILON</code>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-158">CALCITE-158</a>]
-Optiq fails when call <code class="highlighter-rouge">Planner.transform()</code> multiple times, each with
+Optiq fails when call <code class="language-plaintext highlighter-rouge">Planner.transform()</code> multiple times, each with
 different ruleset</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-148">CALCITE-148</a>]
- Less verbose description of collation. Also, optimize <code class="highlighter-rouge">RelTraitSet</code> creation
- and amortize <code class="highlighter-rouge">RelTraitSet.toString()</code>.</li>
+ Less verbose description of collation. Also, optimize <code class="language-plaintext highlighter-rouge">RelTraitSet</code> creation
+ and amortize <code class="language-plaintext highlighter-rouge">RelTraitSet.toString()</code>.</li>
   <li>Add generics to SQL parser.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-145">CALCITE-145</a>]
 Unexpected upper-casing of keywords when using java lexer</li>
-  <li>Remove duplicate <code class="highlighter-rouge">maven-source-plugin</code>.</li>
+  <li>Remove duplicate <code class="language-plaintext highlighter-rouge">maven-source-plugin</code>.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-141">CALCITE-141</a>]
 Downgrade to guava-11.0.2. (This is necessary for Hadoop compatibility.
 Later versions of Guava can also be used.)</li>
@@ -8400,34 +8400,34 @@
   </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-135">CALCITE-115</a>]
 Add a PARSE_TREE hook point with SqlNode parameter</li>
-  <li>Change planner rules to use <code class="highlighter-rouge">ProjectFactory</code> for creating
+  <li>Change planner rules to use <code class="language-plaintext highlighter-rouge">ProjectFactory</code> for creating
 projects. (John Pullokkaran)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-131">CALCITE-131</a>]
 Add interfaces for metadata (statistics)
 (<strong>This is a breaking change</strong>.)</li>
-  <li>Update Avatica to allow <code class="highlighter-rouge">Cursor</code> &amp; <code class="highlighter-rouge">Accessor</code> implementations to throw
-<code class="highlighter-rouge">SQLException</code>. (Jacques Nadeau)</li>
-  <li>Separate cost model (<code class="highlighter-rouge">RelOptCostFactory</code>) from planner. Allow
-<code class="highlighter-rouge">VolcanoPlanner</code> to be sub-classed with different cost factory.
+  <li>Update Avatica to allow <code class="language-plaintext highlighter-rouge">Cursor</code> &amp; <code class="language-plaintext highlighter-rouge">Accessor</code> implementations to throw
+<code class="language-plaintext highlighter-rouge">SQLException</code>. (Jacques Nadeau)</li>
+  <li>Separate cost model (<code class="language-plaintext highlighter-rouge">RelOptCostFactory</code>) from planner. Allow
+<code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> to be sub-classed with different cost factory.
     <ul>
       <li>Remove references to VolcanoCost from RelSubset, so clients can
-use a different <code class="highlighter-rouge">RelOptCost</code>. (Harish Butani)</li>
-      <li>Make <code class="highlighter-rouge">VolcanoCost</code> immutable.</li>
+use a different <code class="language-plaintext highlighter-rouge">RelOptCost</code>. (Harish Butani)</li>
+      <li>Make <code class="language-plaintext highlighter-rouge">VolcanoCost</code> immutable.</li>
     </ul>
   </li>
-  <li>Break <code class="highlighter-rouge">SqlTypeStrategies</code> into <code class="highlighter-rouge">OperandTypes</code>, <code class="highlighter-rouge">ReturnTypes</code> and
-<code class="highlighter-rouge">InferTypes</code>, and rename its static members to upper-case, per
+  <li>Break <code class="language-plaintext highlighter-rouge">SqlTypeStrategies</code> into <code class="language-plaintext highlighter-rouge">OperandTypes</code>, <code class="language-plaintext highlighter-rouge">ReturnTypes</code> and
+<code class="language-plaintext highlighter-rouge">InferTypes</code>, and rename its static members to upper-case, per
 checkstyle. (<strong>This is a breaking change</strong>.)</li>
   <li>Add a mechanism for defining configuration parameters and have them
-appear in the responses to <code class="highlighter-rouge">AvaticaDatabaseMetaData</code> methods.</li>
+appear in the responses to <code class="language-plaintext highlighter-rouge">AvaticaDatabaseMetaData</code> methods.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-113">CALCITE-113</a>]
 User-defined scalar functions</li>
-  <li>Add rules to short-cut a query if <code class="highlighter-rouge">LIMIT 0</code> is present. Also remove
+  <li>Add rules to short-cut a query if <code class="language-plaintext highlighter-rouge">LIMIT 0</code> is present. Also remove
 sort, aggregation, join if their inputs are known to be empty, and
 propagate the fact that the relational expressions are known to be
 empty up the tree. (We already do this for union, filter, project.)</li>
   <li>
-<code class="highlighter-rouge">RexNode</code> and its sub-classes are now immutable.</li>
+<code class="language-plaintext highlighter-rouge">RexNode</code> and its sub-classes are now immutable.</li>
 </ul>
 
 <h4 id="fixes-0-4-18">Bug-fixes and internal changes</h4>
@@ -8452,10 +8452,10 @@
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-127">CALCITE-127</a>]
 EnumerableCalcRel can’t support 3+ AND conditions (Harish Butani)</li>
   <li>Fix push-down of datetime literals to JDBC data sources.</li>
-  <li>Add <code class="highlighter-rouge">Util.startsWith(List, List)</code> and <code class="highlighter-rouge">Util.hashCode(double)</code>.</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">Util.startsWith(List, List)</code> and <code class="language-plaintext highlighter-rouge">Util.hashCode(double)</code>.</li>
   <li>Add maven-checkstyle-plugin, enable in “verify” phase, and fix exceptions.</li>
-  <li>Fix <code class="highlighter-rouge">SqlValidator</code> to rely on <code class="highlighter-rouge">RelDataType</code> to do field name matching.  Fix
-<code class="highlighter-rouge">RelDataTypeImpl</code> to correctly use the case sensitive flag rather than
+  <li>Fix <code class="language-plaintext highlighter-rouge">SqlValidator</code> to rely on <code class="language-plaintext highlighter-rouge">RelDataType</code> to do field name matching.  Fix
+<code class="language-plaintext highlighter-rouge">RelDataTypeImpl</code> to correctly use the case sensitive flag rather than
 ignoring it.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-119">CALCITE-119</a>]
 Comparing Java type long with SQL type INTEGER gives wrong answer</li>
@@ -8467,12 +8467,12 @@
 instance.</li>
     </ul>
   </li>
-  <li>Convert files to <code class="highlighter-rouge">us-ascii</code>.</li>
+  <li>Convert files to <code class="language-plaintext highlighter-rouge">us-ascii</code>.</li>
   <li>Work around
 [<a href="https://jira.codehaus.org/browse/JANINO-169">JANINO-169</a>].</li>
   <li>Refactor SQL validator testing infrastructure so SQL parser is
 configurable.</li>
-  <li>Add <code class="highlighter-rouge">optiq-mat-plugin</code> to README.</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">optiq-mat-plugin</code> to README.</li>
   <li>Fix the check for duplicate subsets in a rule match.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-112">CALCITE-112</a>]
 Java boolean column should be treated as SQL boolean</li>
@@ -8487,25 +8487,25 @@
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-106">CALCITE-106</a>]
-Make <code class="highlighter-rouge">Schema</code> and <code class="highlighter-rouge">Table</code> SPIs simpler to implement, and make them
+Make <code class="language-plaintext highlighter-rouge">Schema</code> and <code class="language-plaintext highlighter-rouge">Table</code> SPIs simpler to implement, and make them
 re-usable across connections
 (<strong>This is a breaking change</strong>.)</li>
   <li>Make it easier to define sub-classes of rule operands. The new class
-<code class="highlighter-rouge">RelOptRuleOperandChildren</code> contains the children of an operand and
+<code class="language-plaintext highlighter-rouge">RelOptRuleOperandChildren</code> contains the children of an operand and
 the policy for dealing with them. Existing rules now use the new
-methods to construct operands: <code class="highlighter-rouge">operand()</code>, <code class="highlighter-rouge">leaf()</code>, <code class="highlighter-rouge">any()</code>, <code class="highlighter-rouge">none()</code>,
-<code class="highlighter-rouge">unordered()</code>. The previous methods are now deprecated and will be
+methods to construct operands: <code class="language-plaintext highlighter-rouge">operand()</code>, <code class="language-plaintext highlighter-rouge">leaf()</code>, <code class="language-plaintext highlighter-rouge">any()</code>, <code class="language-plaintext highlighter-rouge">none()</code>,
+<code class="language-plaintext highlighter-rouge">unordered()</code>. The previous methods are now deprecated and will be
 removed before 0.4.18. (<strong>This is a breaking change</strong>.)</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-101">CALCITE-101</a>]
 Enable phased access to the Optiq engine</li>
-  <li>List-handling methods in <code class="highlighter-rouge">Util</code>: add methods <code class="highlighter-rouge">skipLast</code>, <code class="highlighter-rouge">last</code>, <code class="highlighter-rouge">skip</code>;
-remove <code class="highlighter-rouge">subList</code>, <code class="highlighter-rouge">butLast</code>.</li>
-  <li>Convert <code class="highlighter-rouge">SqlIdentifier.names</code> from <code class="highlighter-rouge">String[]</code> to <code class="highlighter-rouge">ImmutableList&lt;String&gt;</code>.</li>
-  <li>Rename <code class="highlighter-rouge">OptiqAssert.assertThat()</code> to <code class="highlighter-rouge">that()</code>, to avoid clash with junit’s
-<code class="highlighter-rouge">Assert.assertThat()</code>.</li>
-  <li>Usability improvements for <code class="highlighter-rouge">RelDataTypeFactory.FieldInfoBuilder</code>. It
-now has a type-factory, so you can just call <code class="highlighter-rouge">build()</code>.</li>
-  <li>Rework <code class="highlighter-rouge">HepProgramBuilder</code> into a fluent API.</li>
+  <li>List-handling methods in <code class="language-plaintext highlighter-rouge">Util</code>: add methods <code class="language-plaintext highlighter-rouge">skipLast</code>, <code class="language-plaintext highlighter-rouge">last</code>, <code class="language-plaintext highlighter-rouge">skip</code>;
+remove <code class="language-plaintext highlighter-rouge">subList</code>, <code class="language-plaintext highlighter-rouge">butLast</code>.</li>
+  <li>Convert <code class="language-plaintext highlighter-rouge">SqlIdentifier.names</code> from <code class="language-plaintext highlighter-rouge">String[]</code> to <code class="language-plaintext highlighter-rouge">ImmutableList&lt;String&gt;</code>.</li>
+  <li>Rename <code class="language-plaintext highlighter-rouge">OptiqAssert.assertThat()</code> to <code class="language-plaintext highlighter-rouge">that()</code>, to avoid clash with junit’s
+<code class="language-plaintext highlighter-rouge">Assert.assertThat()</code>.</li>
+  <li>Usability improvements for <code class="language-plaintext highlighter-rouge">RelDataTypeFactory.FieldInfoBuilder</code>. It
+now has a type-factory, so you can just call <code class="language-plaintext highlighter-rouge">build()</code>.</li>
+  <li>Rework <code class="language-plaintext highlighter-rouge">HepProgramBuilder</code> into a fluent API.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-105">CALCITE-105</a>]
 Externalize RelNode to and from JSON</li>
 </ul>
@@ -8513,20 +8513,20 @@
 <h4 id="tuning-0-4-17">Tuning</h4>
 
 <ul>
-  <li>If <code class="highlighter-rouge">EnumerableAggregateRel</code> has no aggregate functions, generate a
- call to <code class="highlighter-rouge">Enumerable.distinct()</code>, thereby saving the effort of
+  <li>If <code class="language-plaintext highlighter-rouge">EnumerableAggregateRel</code> has no aggregate functions, generate a
+ call to <code class="language-plaintext highlighter-rouge">Enumerable.distinct()</code>, thereby saving the effort of
  building trivial accumulators.</li>
-  <li>Default rule set now does not introduce <code class="highlighter-rouge">CalcRel</code> until a later phase
+  <li>Default rule set now does not introduce <code class="language-plaintext highlighter-rouge">CalcRel</code> until a later phase
 of planning. This reduces the number of trivial projects and calcs
 created, merged, and elimated.</li>
   <li>Reduce the amount of time spent creating record types that
 already exist.</li>
-  <li>More efficient implementation of <code class="highlighter-rouge">Util.isDistinct</code> for small lists.</li>
+  <li>More efficient implementation of <code class="language-plaintext highlighter-rouge">Util.isDistinct</code> for small lists.</li>
   <li>When an internal record has 0 fields, rather than generating a
 synthetic class and lots of instances that are all the same, use the
-new <code class="highlighter-rouge">Unit</code> class, which is a singleton.</li>
+new <code class="language-plaintext highlighter-rouge">Unit</code> class, which is a singleton.</li>
   <li>To take advantage of asymmetric hash join added recently in linq4j,
-tweak cost of <code class="highlighter-rouge">EnumerableJoinRel</code> so that join is cheaper if the
+tweak cost of <code class="language-plaintext highlighter-rouge">EnumerableJoinRel</code> so that join is cheaper if the
 larger input is on the left, and more expensive if it is a cartesian
 product.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-70">CALCITE-70</a>]
@@ -8534,7 +8534,7 @@
   <li>Make planning process more efficient by not sorting the list of
 matched rules each cycle. It is sorted if tracing is enabled;
 otherwise we scan to find the most important element. For this list,
-replace <code class="highlighter-rouge">LinkedList</code> with <code class="highlighter-rouge">ChunkList</code>, which has an O(1) remove and add,
+replace <code class="language-plaintext highlighter-rouge">LinkedList</code> with <code class="language-plaintext highlighter-rouge">ChunkList</code>, which has an O(1) remove and add,
 a fast O(n) get, and fast scan.</li>
 </ul>
 
@@ -8545,31 +8545,31 @@
 Constant folding
     <ul>
       <li>Rules for constant-expression reduction, and to simplify/eliminate
-<code class="highlighter-rouge">VALUES</code> operator.</li>
+<code class="language-plaintext highlighter-rouge">VALUES</code> operator.</li>
     </ul>
   </li>
   <li>Graph algorithms: Implement breadth-first iterator and cycle-detector.</li>
-  <li>Fix bug in planner which occurred when two <code class="highlighter-rouge">RelNode</code>s have identical
+  <li>Fix bug in planner which occurred when two <code class="language-plaintext highlighter-rouge">RelNode</code>s have identical
 digest but different row-type.</li>
   <li>Fix link to optiq-csv tutorial.</li>
-  <li>Fix bugs in <code class="highlighter-rouge">RemoveTrivialProjectRule.strip</code>, <code class="highlighter-rouge">JdbcProjectRel.implement</code>
-and <code class="highlighter-rouge">SortRel.computeSelfCost</code>.</li>
-  <li>Reformat code, and remove <code class="highlighter-rouge">@author</code> tags.</li>
+  <li>Fix bugs in <code class="language-plaintext highlighter-rouge">RemoveTrivialProjectRule.strip</code>, <code class="language-plaintext highlighter-rouge">JdbcProjectRel.implement</code>
+and <code class="language-plaintext highlighter-rouge">SortRel.computeSelfCost</code>.</li>
+  <li>Reformat code, and remove <code class="language-plaintext highlighter-rouge">@author</code> tags.</li>
   <li>Upgrade to eigenbase-xom-1.3.4, eigenbase-properties-1.1.4,
 eigenbase-resgen-1.3.6.</li>
   <li>Upgrade to linq4j-0.1.12.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-97">CALCITE-97</a>]
 Correlated EXISTS</li>
-  <li>Fix a bug in <code class="highlighter-rouge">VolcanoCost</code>.</li>
-  <li>Add class <code class="highlighter-rouge">FoodMartQuerySet</code>, that contains the 6,700 foodmart queries.</li>
-  <li>Fix factory class names in <code class="highlighter-rouge">UnregisteredDriver</code>
+  <li>Fix a bug in <code class="language-plaintext highlighter-rouge">VolcanoCost</code>.</li>
+  <li>Add class <code class="language-plaintext highlighter-rouge">FoodMartQuerySet</code>, that contains the 6,700 foodmart queries.</li>
+  <li>Fix factory class names in <code class="language-plaintext highlighter-rouge">UnregisteredDriver</code>
 </li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-96">CALCITE-96</a>]
 LIMIT against a table in a clone schema causes UnsupportedOperationException</li>
   <li>Disable spark module by default.</li>
-  <li>Allow <code class="highlighter-rouge">CloneSchema</code> to be specified in terms of url, driver, user,
+  <li>Allow <code class="language-plaintext highlighter-rouge">CloneSchema</code> to be specified in terms of url, driver, user,
 password; not just dataSource.</li>
-  <li>Wrap internal error in <code class="highlighter-rouge">SQLException</code>.</li>
+  <li>Wrap internal error in <code class="language-plaintext highlighter-rouge">SQLException</code>.</li>
 </ul>
 
 <h2 id="v0-4-16">
@@ -8601,7 +8601,7 @@
 materializations and end-user queries are canonized in terms of star tables.
 Matching (not done yet) will then be a matter of looking for sort, groupBy,
 project. It is not yet possible to define a star in an Optiq model file.</li>
-  <li>Add section to <a href="https://github.com/apache/calcite/blob/master/site/_docs/howto.md">HOWTO</a>
+  <li>Add section to <a href="https://github.com/apache/calcite/blob/main/site/_docs/howto.md">HOWTO</a>
 on implementing adapters.</li>
   <li>Fix data type conversions when creating a clone table in memory.</li>
   <li>Fix how strings are escaped in JsonBuilder.</li>
@@ -8636,8 +8636,8 @@
 
 <ul>
   <li>Lots of good stuff that this margin is too small to contain. See
-<a href="https://github.com/apache/calcite/blob/master/site/_docs/reference.md">SQL language reference</a> and
-<a href="https://github.com/apache/calcite/blob/master/site/_docs/model.md">JSON model reference</a>.</li>
+<a href="https://github.com/apache/calcite/blob/main/site/_docs/reference.md">SQL language reference</a> and
+<a href="https://github.com/apache/calcite/blob/main/site/_docs/model.md">JSON model reference</a>.</li>
 </ul>
 
 <h1 id="optiq-csv-release-history">Optiq-csv release history</h1>
@@ -8665,9 +8665,9 @@
   <li>Upgrade to optiq-0.5</li>
   <li>Add workaround to
 [<a href="https://github.com/jline/jline2/issues/62">JLINE2-62</a>]
-to <code class="highlighter-rouge">sqlline.bat</code> (windows) and <code class="highlighter-rouge">sqlline</code> (windows using cygwin)</li>
-  <li>Fix classpath construction: <code class="highlighter-rouge">sqlline.bat</code> copies dependencies to
-<code class="highlighter-rouge">target/dependencies</code>; <code class="highlighter-rouge">sqlline</code> constructs <code class="highlighter-rouge">target/classpath.txt</code>
+to <code class="language-plaintext highlighter-rouge">sqlline.bat</code> (windows) and <code class="language-plaintext highlighter-rouge">sqlline</code> (windows using cygwin)</li>
+  <li>Fix classpath construction: <code class="language-plaintext highlighter-rouge">sqlline.bat</code> copies dependencies to
+<code class="language-plaintext highlighter-rouge">target/dependencies</code>; <code class="language-plaintext highlighter-rouge">sqlline</code> constructs <code class="language-plaintext highlighter-rouge">target/classpath.txt</code>
 </li>
   <li>Build, checkstyle and tests now succeed on windows (both native and cygwin)</li>
   <li>Models can now contain comments</li>
@@ -8681,7 +8681,7 @@
 <ul>
   <li>Add test case for
 [<a href="https://issues.apache.org/jira/browse/CALCITE-112">CALCITE-112</a>]</li>
-  <li>Add <code class="highlighter-rouge">sqlline.bat</code>, Windows SQL shell (based on fix for
+  <li>Add <code class="language-plaintext highlighter-rouge">sqlline.bat</code>, Windows SQL shell (based on fix for
 [<a href="https://issues.apache.org/jira/browse/DRILL-338">DRILL-338</a>])</li>
   <li>Upgrade to optiq-0.4.18, sqlline-1.1.7</li>
   <li>Return a single object for single-col enumerator (Gabriel Reid)</li>
@@ -8701,12 +8701,12 @@
   <li>Enable oraclejdk8 in Travis CI</li>
   <li>Fix bug where non-existent directory would give NPE; instead print warning</li>
   <li>Add an example of a planner rule</li>
-  <li>Add <code class="highlighter-rouge">CsvTableFactory</code>, an example of a custom table</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">CsvTableFactory</code>, an example of a custom table</li>
   <li>Add a view to tutorial</li>
   <li>Split into scenario with a “simple” schema that generates tables
-(<code class="highlighter-rouge">CsvTable</code>) that just execute and a “smart” schema that generates
-tables (<code class="highlighter-rouge">CsvSmartTable</code>) that undergo optimization</li>
-  <li>Make <code class="highlighter-rouge">CsvEnumerator</code> a top-level class</li>
+(<code class="language-plaintext highlighter-rouge">CsvTable</code>) that just execute and a “smart” schema that generates
+tables (<code class="language-plaintext highlighter-rouge">CsvSmartTable</code>) that undergo optimization</li>
+  <li>Make <code class="language-plaintext highlighter-rouge">CsvEnumerator</code> a top-level class</li>
   <li>Implement the algorithms to sniff names and types from the first
 row, and to return an enumerator of all rows</li>
   <li>Read column types from header of CSV file</li>
@@ -8726,8 +8726,8 @@
   <li>Fix <a href="https://github.com/julianhyde/linq4j/issues/27">#27</a>,
 “Incorrectly inlines non-final variable”.</li>
   <li>Maven build process now deploys web site.</li>
-  <li>Implement <code class="highlighter-rouge">Enumerable</code> methods: <code class="highlighter-rouge">any</code>, <code class="highlighter-rouge">all</code>,
-<code class="highlighter-rouge">contains</code> with <code class="highlighter-rouge">EqualityComparer</code>, <code class="highlighter-rouge">first</code>, <code class="highlighter-rouge">first</code> with predicate.</li>
+  <li>Implement <code class="language-plaintext highlighter-rouge">Enumerable</code> methods: <code class="language-plaintext highlighter-rouge">any</code>, <code class="language-plaintext highlighter-rouge">all</code>,
+<code class="language-plaintext highlighter-rouge">contains</code> with <code class="language-plaintext highlighter-rouge">EqualityComparer</code>, <code class="language-plaintext highlighter-rouge">first</code>, <code class="language-plaintext highlighter-rouge">first</code> with predicate.</li>
 </ul>
 
 <h2 id="linq4j-v0-3">
@@ -8735,17 +8735,17 @@
 
 <ul>
   <li>Move optimizer visitor from optiq to linq4j; add
-<code class="highlighter-rouge">ExpressionType.modifiesLvalue</code> to avoid invalid inlining.</li>
+<code class="language-plaintext highlighter-rouge">ExpressionType.modifiesLvalue</code> to avoid invalid inlining.</li>
   <li>Fix <a href="https://github.com/julianhyde/linq4j/issues/17">#17</a>,
 “Assign constant expressions to ‘static final’ members”;
-add <code class="highlighter-rouge">@Deterministic</code> annotation to help deduce which expressions are
+add <code class="language-plaintext highlighter-rouge">@Deterministic</code> annotation to help deduce which expressions are
 constant.</li>
   <li>Multi-pass optimization: some of the variables might be avoided and
 inlined after the first pass.</li>
-  <li>Various other peephole optimizations: <code class="highlighter-rouge">Boolean.valueOf(const)</code>,
-‘not’ expressions (<code class="highlighter-rouge">!const</code>, <code class="highlighter-rouge">!!a</code>, <code class="highlighter-rouge">!(a==b)</code>, <code class="highlighter-rouge">!(a!=b)</code>, <code class="highlighter-rouge">!(a&gt;b)</code>,
+  <li>Various other peephole optimizations: <code class="language-plaintext highlighter-rouge">Boolean.valueOf(const)</code>,
+‘not’ expressions (<code class="language-plaintext highlighter-rouge">!const</code>, <code class="language-plaintext highlighter-rouge">!!a</code>, <code class="language-plaintext highlighter-rouge">!(a==b)</code>, <code class="language-plaintext highlighter-rouge">!(a!=b)</code>, <code class="language-plaintext highlighter-rouge">!(a&gt;b)</code>,
 etc.),
-‘?’ expressions coming from <code class="highlighter-rouge">CASE</code> (<code class="highlighter-rouge">a ? booleanConstant : b</code> and <code class="highlighter-rouge">a
+‘?’ expressions coming from <code class="language-plaintext highlighter-rouge">CASE</code> (<code class="language-plaintext highlighter-rouge">a ? booleanConstant : b</code> and <code class="language-plaintext highlighter-rouge">a
 ? b : booleanConstant</code>).</li>
   <li>Implement left, right and full outer join.</li>
   <li>Clean build on cygwin/Windows.</li>
@@ -8758,21 +8758,21 @@
   <li>Fix <a href="https://github.com/julianhyde/linq4j/issues/8">#8</a>,
 “Javadoc generation fails under JDK 1.8”.</li>
   <li>Fix <a href="https://github.com/julianhyde/linq4j/issues/15">#15</a>,
-“<code class="highlighter-rouge">Expressions.ifThenElse</code> does not work”.</li>
-  <li>Use <code class="highlighter-rouge">HashMap</code> for searching of declarations to reuse; consider both
-<code class="highlighter-rouge">optimizing</code> and <code class="highlighter-rouge">optimize</code> flags when reusing.</li>
-  <li>Implement <code class="highlighter-rouge">equals</code> and <code class="highlighter-rouge">hashCode</code> for expressions. Hash codes for
+“<code class="language-plaintext highlighter-rouge">Expressions.ifThenElse</code> does not work”.</li>
+  <li>Use <code class="language-plaintext highlighter-rouge">HashMap</code> for searching of declarations to reuse; consider both
+<code class="language-plaintext highlighter-rouge">optimizing</code> and <code class="language-plaintext highlighter-rouge">optimize</code> flags when reusing.</li>
+  <li>Implement <code class="language-plaintext highlighter-rouge">equals</code> and <code class="language-plaintext highlighter-rouge">hashCode</code> for expressions. Hash codes for
 complex expressions are cached into a field of the expression.</li>
-  <li>Add example, <code class="highlighter-rouge">com.example.Linq4jExample</code>.</li>
+  <li>Add example, <code class="language-plaintext highlighter-rouge">com.example.Linq4jExample</code>.</li>
   <li>Fix optimizing away parameter declarations in assignment target.</li>
   <li>Support Windows path names in checkstyle-suppresions.</li>
-  <li>Support <code class="highlighter-rouge">Statement.toString</code> via <code class="highlighter-rouge">ExpressionWriter</code>.</li>
-  <li>Use <code class="highlighter-rouge">AtomicInteger</code> for naming of <code class="highlighter-rouge">ParameterExpression</code>s to avoid
+  <li>Support <code class="language-plaintext highlighter-rouge">Statement.toString</code> via <code class="language-plaintext highlighter-rouge">ExpressionWriter</code>.</li>
+  <li>Use <code class="language-plaintext highlighter-rouge">AtomicInteger</code> for naming of <code class="language-plaintext highlighter-rouge">ParameterExpression</code>s to avoid
 conflicts in multithreaded usage</li>
-  <li>Cleanup: use <code class="highlighter-rouge">Functions.adapt</code> rather than <code class="highlighter-rouge">new AbstractList</code>
+  <li>Cleanup: use <code class="language-plaintext highlighter-rouge">Functions.adapt</code> rather than <code class="language-plaintext highlighter-rouge">new AbstractList</code>
 </li>
-  <li>Add <code class="highlighter-rouge">NOTICE</code> and <code class="highlighter-rouge">LICENSE</code> files in generated JAR file.</li>
-  <li>Optimize <code class="highlighter-rouge">select()</code> if selector is identity.</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">NOTICE</code> and <code class="language-plaintext highlighter-rouge">LICENSE</code> files in generated JAR file.</li>
+  <li>Optimize <code class="language-plaintext highlighter-rouge">select()</code> if selector is identity.</li>
   <li>Enable checkstyle.</li>
 </ul>
 
@@ -8782,8 +8782,8 @@
 <ul>
   <li>Remove spurious “null” generated when converting expression to string.</li>
   <li>Allow a field declaration to not have an initializer.</li>
-  <li>Add <code class="highlighter-rouge">Primitive.defaultValue</code>.</li>
-  <li>Enable <code class="highlighter-rouge">oraclejdk8</code> in <a href="https://travis-ci.org/julianhyde/linq4j">Travis CI</a>.</li>
+  <li>Add <code class="language-plaintext highlighter-rouge">Primitive.defaultValue</code>.</li>
+  <li>Enable <code class="language-plaintext highlighter-rouge">oraclejdk8</code> in <a href="https://travis-ci.org/julianhyde/linq4j">Travis CI</a>.</li>
 </ul>
 
 <h2 id="linq4j-v0-1-12">
@@ -8791,9 +8791,9 @@
 
 <ul>
   <li>Add release notes.</li>
-  <li>Fix implementation of <code class="highlighter-rouge">Enumerable.asEnumerable</code> in
-<code class="highlighter-rouge">DefaultQueryable</code> (inherited by most classes that implement
-<code class="highlighter-rouge">Queryable</code>).</li>
+  <li>Fix implementation of <code class="language-plaintext highlighter-rouge">Enumerable.asEnumerable</code> in
+<code class="language-plaintext highlighter-rouge">DefaultQueryable</code> (inherited by most classes that implement
+<code class="language-plaintext highlighter-rouge">Queryable</code>).</li>
 </ul>
 
 <h2 id="linq4j-v0-1-11">
@@ -9125,7 +9125,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/howto.html b/docs/howto.html
index c88795c..4dd482c 100644
--- a/docs/howto.html
+++ b/docs/howto.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>HOWTO</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -147,8 +147,8 @@
 <p>Prerequisite is Java (JDK 8, 9, 10, 11, 12, 13, 14, 15, 16 or 17)
 and Gradle (version 7.3) on your path.</p>
 
-<p>Unpack the source distribution <code class="highlighter-rouge">.tar.gz</code> file,
-<code class="highlighter-rouge">cd</code> to the root directory of the unpacked source,
+<p>Unpack the source distribution <code class="language-plaintext highlighter-rouge">.tar.gz</code> file,
+<code class="language-plaintext highlighter-rouge">cd</code> to the root directory of the unpacked source,
 then build using Gradle:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span><span class="nb">tar </span>xvfz apache-calcite-1.30.0-src.tar.gz
@@ -156,8 +156,8 @@
 <span class="nv">$ </span>gradle build</code></pre></figure>
 
 <p><a href="#running-tests">Running tests</a> describes how to run more or fewer
-tests  (but you should use the <code class="highlighter-rouge">gradle</code> command rather than
-<code class="highlighter-rouge">./gradlew</code>).</p>
+tests  (but you should use the <code class="language-plaintext highlighter-rouge">gradle</code> command rather than
+<code class="language-plaintext highlighter-rouge">./gradlew</code>).</p>
 
 <h2 id="building-from-git">Building from Git</h2>
 
@@ -165,7 +165,7 @@
 and Java (JDK 8, 9, 10, 11, 12, 13, 14, 15, 16 or 17) on your path.</p>
 
 <p>Create a local copy of the GitHub repository,
-<code class="highlighter-rouge">cd</code> to its root directory,
+<code class="language-plaintext highlighter-rouge">cd</code> to its root directory,
 then build using the included Gradle wrapper:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>git clone git://github.com/apache/calcite.git
@@ -179,8 +179,8 @@
 
 <p>Typically re-generation is called automatically when the relevant templates
 are changed, and it should work transparently.
-However, if your IDE does not generate sources (e.g. <code class="highlighter-rouge">core/build/javacc/javaCCMain/org/apache/calcite/sql/parser/impl/SqlParserImpl.java</code>),
-then you can call <code class="highlighter-rouge">./gradlew generateSources</code> tasks manually.</p>
+However, if your IDE does not generate sources (e.g. <code class="language-plaintext highlighter-rouge">core/build/javacc/javaCCMain/org/apache/calcite/sql/parser/impl/SqlParserImpl.java</code>),
+then you can call <code class="language-plaintext highlighter-rouge">./gradlew generateSources</code> tasks manually.</p>
 
 <p><a href="#running-tests">Running tests</a> describes how to run more or fewer
 tests.</p>
@@ -189,7 +189,7 @@
 
 <p>Calcite uses Gradle wrapper to make a consistent build environment.
 In the typical case you don’t need to install Gradle manually, and
-<code class="highlighter-rouge">./gradlew</code> would download the proper version for you and verify the expected checksum.</p>
+<code class="language-plaintext highlighter-rouge">./gradlew</code> would download the proper version for you and verify the expected checksum.</p>
 
 <p>You can install Gradle manually, however please note that there might
 be impedance mismatch between different versions.</p>
@@ -201,7 +201,7 @@
 <h2 id="running-tests">Running tests</h2>
 
 <p>The test suite will run by default when you build, unless you specify
-<code class="highlighter-rouge">-x test</code></p>
+<code class="language-plaintext highlighter-rouge">-x test</code></p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./gradlew assemble <span class="c"># build the artifacts</span>
 <span class="nv">$ </span>./gradlew build <span class="nt">-x</span> <span class="nb">test</span> <span class="c"># build the artifacts, verify code style, skip tests</span>
@@ -211,58 +211,58 @@
 <span class="nv">$ </span>./gradlew autostyleCheck checkstyleAll <span class="c"># report code style violations</span>
 <span class="nv">$ </span>./gradlew <span class="nt">-PenableErrorprone</span> classes <span class="c"># verify Java code with Error Prone compiler, requires Java 11</span></code></pre></figure>
 
-<p>You can use <code class="highlighter-rouge">./gradlew assemble</code> to build the artifacts and skip all tests and verifications.</p>
+<p>You can use <code class="language-plaintext highlighter-rouge">./gradlew assemble</code> to build the artifacts and skip all tests and verifications.</p>
 
 <p>There are other options that control which tests are run, and in what
 environment, as follows.</p>
 
 <ul>
   <li>
-<code class="highlighter-rouge">-Dcalcite.test.db=DB</code> (where DB is <code class="highlighter-rouge">h2</code>, <code class="highlighter-rouge">hsqldb</code>, <code class="highlighter-rouge">mysql</code>, or <code class="highlighter-rouge">postgresql</code>) allows you
+<code class="language-plaintext highlighter-rouge">-Dcalcite.test.db=DB</code> (where DB is <code class="language-plaintext highlighter-rouge">h2</code>, <code class="language-plaintext highlighter-rouge">hsqldb</code>, <code class="language-plaintext highlighter-rouge">mysql</code>, or <code class="language-plaintext highlighter-rouge">postgresql</code>) allows you
 to change the JDBC data source for the test suite. Calcite’s test
 suite requires a JDBC data source populated with the foodmart data
 set.
     <ul>
       <li>
-<code class="highlighter-rouge">hsqldb</code>, the default, uses an in-memory hsqldb database.</li>
+<code class="language-plaintext highlighter-rouge">hsqldb</code>, the default, uses an in-memory hsqldb database.</li>
       <li>All others access a test virtual machine
 (see <a href="#running-integration-tests">integration tests</a> below).
-<code class="highlighter-rouge">mysql</code> and <code class="highlighter-rouge">postgresql</code> might be somewhat faster than hsqldb, but you need
+<code class="language-plaintext highlighter-rouge">mysql</code> and <code class="language-plaintext highlighter-rouge">postgresql</code> might be somewhat faster than hsqldb, but you need
 to populate it (i.e. provision a VM).</li>
     </ul>
   </li>
   <li>
-<code class="highlighter-rouge">-Dcalcite.debug</code> prints extra debugging information to stdout.</li>
+<code class="language-plaintext highlighter-rouge">-Dcalcite.debug</code> prints extra debugging information to stdout.</li>
   <li>
-<code class="highlighter-rouge">-Dcalcite.test.splunk</code> enables tests that run against Splunk.
+<code class="language-plaintext highlighter-rouge">-Dcalcite.test.splunk</code> enables tests that run against Splunk.
 Splunk must be installed and running.</li>
   <li>
-<code class="highlighter-rouge">./gradlew testSlow</code> runs tests that take longer to execute. For
+<code class="language-plaintext highlighter-rouge">./gradlew testSlow</code> runs tests that take longer to execute. For
 example, there are tests that create virtual TPC-H and TPC-DS schemas
 in-memory and run tests from those benchmarks.</li>
 </ul>
 
 <p>Note: tests are executed in a forked JVM, so system properties are not passed automatically
 when running tests with Gradle.
-By default, the build script passes the following <code class="highlighter-rouge">-D...</code> properties
-(see <code class="highlighter-rouge">passProperty</code> in <code class="highlighter-rouge">build.gradle.kts</code>):</p>
+By default, the build script passes the following <code class="language-plaintext highlighter-rouge">-D...</code> properties
+(see <code class="language-plaintext highlighter-rouge">passProperty</code> in <code class="language-plaintext highlighter-rouge">build.gradle.kts</code>):</p>
 
 <ul>
-  <li><code class="highlighter-rouge">java.awt.headless</code></li>
+  <li><code class="language-plaintext highlighter-rouge">java.awt.headless</code></li>
   <li>
-<code class="highlighter-rouge">junit.jupiter.execution.parallel.enabled</code>, default: <code class="highlighter-rouge">true</code>
+<code class="language-plaintext highlighter-rouge">junit.jupiter.execution.parallel.enabled</code>, default: <code class="language-plaintext highlighter-rouge">true</code>
 </li>
   <li>
-<code class="highlighter-rouge">junit.jupiter.execution.timeout.default</code>, default: <code class="highlighter-rouge">5 m</code>
+<code class="language-plaintext highlighter-rouge">junit.jupiter.execution.timeout.default</code>, default: <code class="language-plaintext highlighter-rouge">5 m</code>
 </li>
   <li>
-<code class="highlighter-rouge">user.language</code>, default: <code class="highlighter-rouge">TR</code>
+<code class="language-plaintext highlighter-rouge">user.language</code>, default: <code class="language-plaintext highlighter-rouge">TR</code>
 </li>
   <li>
-<code class="highlighter-rouge">user.country</code>, default: <code class="highlighter-rouge">tr</code>
+<code class="language-plaintext highlighter-rouge">user.country</code>, default: <code class="language-plaintext highlighter-rouge">tr</code>
 </li>
   <li>
-<code class="highlighter-rouge">calcite.**</code> (to enable <code class="highlighter-rouge">calcite.test.db</code> and others above)</li>
+<code class="language-plaintext highlighter-rouge">calcite.**</code> (to enable <code class="language-plaintext highlighter-rouge">calcite.test.db</code> and others above)</li>
 </ul>
 
 <h2 id="running-integration-tests">Running integration tests</h2>
@@ -291,11 +291,11 @@
 
 <p>2) Build and start the VM:</p>
 
-<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">cd </span>calcite-test-dataset <span class="o">&amp;&amp;</span> mvn install</code></pre></figure>
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">cd </span>calcite-test-dataset <span class="o">&amp;&amp;</span> mvn <span class="nb">install</span></code></pre></figure>
 
 <h3 id="vm-management">VM management</h3>
 
-<p>Test VM is provisioned by Vagrant, so regular Vagrant <code class="highlighter-rouge">vagrant up</code> and <code class="highlighter-rouge">vagrant halt</code> should be used to start and stop the VM.
+<p>Test VM is provisioned by Vagrant, so regular Vagrant <code class="language-plaintext highlighter-rouge">vagrant up</code> and <code class="language-plaintext highlighter-rouge">vagrant halt</code> should be used to start and stop the VM.
 The connection strings for different databases are listed in <a href="https://github.com/vlsi/calcite-test-dataset">calcite-test-dataset</a> readme.</p>
 
 <h3 id="suggested-test-flow">Suggested test flow</h3>
@@ -305,13 +305,13 @@
 <p>Command line:</p>
 
 <ul>
-  <li>Executing regular unit tests (does not require external data): no change. <code class="highlighter-rouge">./gradlew test</code> or <code class="highlighter-rouge">./gradlew build</code>.</li>
-  <li>Executing all tests, for all the DBs: <code class="highlighter-rouge">./gradlew test integTestAll</code>.</li>
-  <li>Executing just tests for external DBs, excluding unit tests: <code class="highlighter-rouge">./gradlew integTestAll</code>
+  <li>Executing regular unit tests (does not require external data): no change. <code class="language-plaintext highlighter-rouge">./gradlew test</code> or <code class="language-plaintext highlighter-rouge">./gradlew build</code>.</li>
+  <li>Executing all tests, for all the DBs: <code class="language-plaintext highlighter-rouge">./gradlew test integTestAll</code>.</li>
+  <li>Executing just tests for external DBs, excluding unit tests: <code class="language-plaintext highlighter-rouge">./gradlew integTestAll</code>
 </li>
-  <li>Executing PostgreSQL JDBC tests: <code class="highlighter-rouge">./gradlew integTestPostgresql</code>
+  <li>Executing PostgreSQL JDBC tests: <code class="language-plaintext highlighter-rouge">./gradlew integTestPostgresql</code>
 </li>
-  <li>Executing just MongoDB tests: <code class="highlighter-rouge">./gradlew :mongo:build</code>
+  <li>Executing just MongoDB tests: <code class="language-plaintext highlighter-rouge">./gradlew :mongo:build</code>
 </li>
 </ul>
 
@@ -319,10 +319,10 @@
 
 <ul>
   <li>Executing regular unit tests: no change.</li>
-  <li>Executing MongoDB tests: run <code class="highlighter-rouge">MongoAdapterTest.java</code> with <code class="highlighter-rouge">calcite.integrationTest=true</code> system property</li>
-  <li>Executing MySQL tests: run <code class="highlighter-rouge">JdbcTest</code> and <code class="highlighter-rouge">JdbcAdapterTest</code> with setting <code class="highlighter-rouge">-Dcalcite.test.db=mysql</code>
+  <li>Executing MongoDB tests: run <code class="language-plaintext highlighter-rouge">MongoAdapterTest.java</code> with <code class="language-plaintext highlighter-rouge">calcite.integrationTest=true</code> system property</li>
+  <li>Executing MySQL tests: run <code class="language-plaintext highlighter-rouge">JdbcTest</code> and <code class="language-plaintext highlighter-rouge">JdbcAdapterTest</code> with setting <code class="language-plaintext highlighter-rouge">-Dcalcite.test.db=mysql</code>
 </li>
-  <li>Executing PostgreSQL tests: run <code class="highlighter-rouge">JdbcTest</code> and <code class="highlighter-rouge">JdbcAdapterTest</code> with setting <code class="highlighter-rouge">-Dcalcite.test.db=postgresql</code>
+  <li>Executing PostgreSQL tests: run <code class="language-plaintext highlighter-rouge">JdbcTest</code> and <code class="language-plaintext highlighter-rouge">JdbcAdapterTest</code> with setting <code class="language-plaintext highlighter-rouge">-Dcalcite.test.db=postgresql</code>
 </li>
 </ul>
 
@@ -331,7 +331,7 @@
 <p>Tests with external data are executed during Gradle’s integration-test phase.
 We do not currently use pre-integration-test/post-integration-test, however, we could use that in the future.
 The verification of build pass/failure is performed during the verify phase.
-Integration tests should be named <code class="highlighter-rouge">...IT.java</code>, so they are not picked up on unit test execution.</p>
+Integration tests should be named <code class="language-plaintext highlighter-rouge">...IT.java</code>, so they are not picked up on unit test execution.</p>
 
 <h2 id="contributing">Contributing</h2>
 
@@ -353,7 +353,7 @@
 
 <p>Start with <a href="#building-from-a-source-distribution">building Calcite from the command line</a>.</p>
 
-<p>Go to <em>File &gt; Open…</em> and open up Calcite’s root <code class="highlighter-rouge">build.gradle.kts</code> file.
+<p>Go to <em>File &gt; Open…</em> and open up Calcite’s root <code class="language-plaintext highlighter-rouge">build.gradle.kts</code> file.
 When IntelliJ asks if you want to open it as a project or a file, select project.
 Also, say yes when it asks if you want a new window.
 IntelliJ’s Gradle project importer should handle the rest.</p>
@@ -365,38 +365,38 @@
 then <em>Import Scheme &gt; IntelliJ IDEA Code Style XML</em>.</p>
 
 <p>Once the importer is finished, test the project setup.
-For example, navigate to the method <code class="highlighter-rouge">JdbcTest.testWinAgg</code> with
-<em>Navigate &gt; Symbol</em> and enter <code class="highlighter-rouge">testWinAgg</code>. Run <code class="highlighter-rouge">testWinAgg</code> by right-clicking and selecting <em>Run</em> (or the equivalent keyboard shortcut).</p>
+For example, navigate to the method <code class="language-plaintext highlighter-rouge">JdbcTest.testWinAgg</code> with
+<em>Navigate &gt; Symbol</em> and enter <code class="language-plaintext highlighter-rouge">testWinAgg</code>. Run <code class="language-plaintext highlighter-rouge">testWinAgg</code> by right-clicking and selecting <em>Run</em> (or the equivalent keyboard shortcut).</p>
 
 <h3 id="setting-up-netbeans">Setting up NetBeans</h3>
 
 <p>From the main menu, select <em>File &gt; Open Project</em> and navigate to a name of the project (Calcite) with a small Gradle icon, and choose to open.
 Wait for NetBeans to finish importing all dependencies.</p>
 
-<p>To ensure that the project is configured successfully, navigate to the method <code class="highlighter-rouge">testWinAgg</code> in <code class="highlighter-rouge">org.apache.calcite.test.JdbcTest</code>.
+<p>To ensure that the project is configured successfully, navigate to the method <code class="language-plaintext highlighter-rouge">testWinAgg</code> in <code class="language-plaintext highlighter-rouge">org.apache.calcite.test.JdbcTest</code>.
 Right-click on the method and select to <em>Run Focused Test Method</em>.
 NetBeans will run a Gradle process, and you should see in the command output window a line with
- <code class="highlighter-rouge">Running org.apache.calcite.test.JdbcTest</code> followed by <code class="highlighter-rouge">"BUILD SUCCESS"</code>.</p>
+ <code class="language-plaintext highlighter-rouge">Running org.apache.calcite.test.JdbcTest</code> followed by <code class="language-plaintext highlighter-rouge">"BUILD SUCCESS"</code>.</p>
 
 <p>Note: it is not clear if NetBeans automatically generates relevant sources on project import,
-so you might need to run <code class="highlighter-rouge">./gradlew generateSources</code> before importing the project (and when you
+so you might need to run <code class="language-plaintext highlighter-rouge">./gradlew generateSources</code> before importing the project (and when you
 update template parser sources, and project version)</p>
 
 <h2 id="tracing">Tracing</h2>
 
 <p>To enable tracing, add the following flags to the java command line:</p>
 
-<p><code class="highlighter-rouge">-Dcalcite.debug=true</code></p>
+<p><code class="language-plaintext highlighter-rouge">-Dcalcite.debug=true</code></p>
 
 <p>The first flag causes Calcite to print the Java code it generates
 (to execute queries) to stdout. It is especially useful if you are debugging
 mysterious problems like this:</p>
 
-<p><code class="highlighter-rouge">Exception in thread "main" java.lang.ClassCastException: Integer cannot be cast to Long
+<p><code class="language-plaintext highlighter-rouge">Exception in thread "main" java.lang.ClassCastException: Integer cannot be cast to Long
   at Baz$1$1.current(Unknown Source)</code></p>
 
 <p>By default, Calcite uses the Log4j bindings for SLF4J. There is a provided configuration
-file which outputs logging at the INFO level to the console in <code class="highlighter-rouge">core/src/test/resources/log4j.properties</code>.
+file which outputs logging at the INFO level to the console in <code class="language-plaintext highlighter-rouge">core/src/test/resources/log4j.properties</code>.
 You can modify the level for the rootLogger to increase verbosity or change the level
 for a specific class if you so choose.</p>
 
@@ -416,16 +416,16 @@
 <p>To debug generated classes, set two system properties when starting the JVM:</p>
 
 <ul>
-  <li><code class="highlighter-rouge">-Dorg.codehaus.janino.source_debugging.enable=true</code></li>
+  <li><code class="language-plaintext highlighter-rouge">-Dorg.codehaus.janino.source_debugging.enable=true</code></li>
   <li>
-<code class="highlighter-rouge">-Dorg.codehaus.janino.source_debugging.dir=C:\tmp</code> (This property is optional;
+<code class="language-plaintext highlighter-rouge">-Dorg.codehaus.janino.source_debugging.dir=C:\tmp</code> (This property is optional;
 if not set, Janino will create temporary files in the system’s default location
-for temporary files, such as <code class="highlighter-rouge">/tmp</code> on Unix-based systems.)</li>
+for temporary files, such as <code class="language-plaintext highlighter-rouge">/tmp</code> on Unix-based systems.)</li>
 </ul>
 
 <p>After code is generated, either go into Intellij and mark the folder that
 contains generated temporary files as generated sources root or sources root,
-or directly set the value of <code class="highlighter-rouge">org.codehaus.janino.source_debugging.dir</code> to an
+or directly set the value of <code class="language-plaintext highlighter-rouge">org.codehaus.janino.source_debugging.dir</code> to an
 existing source root when starting the JVM.</p>
 
 <h2 id="csv-adapter">CSV adapter</h2>
@@ -459,7 +459,7 @@
 </span>bye</code></pre></figure>
 
 <p>Connect using the
-<a href="https://github.com/apache/calcite/blob/master/mongodb/src/test/resources/mongo-model.json">mongo-model.json</a>
+<a href="https://github.com/apache/calcite/blob/main/mongodb/src/test/resources/mongo-model.json">mongo-model.json</a>
 Calcite model:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlline
@@ -493,30 +493,30 @@
 <h2 id="splunk-adapter">Splunk adapter</h2>
 
 <p>To run the test suite and sample queries against Splunk,
-load Splunk’s <code class="highlighter-rouge">tutorialdata.zip</code> data set as described in
+load Splunk’s <code class="language-plaintext highlighter-rouge">tutorialdata.zip</code> data set as described in
 <a href="https://docs.splunk.com/Documentation/Splunk/6.0.2/PivotTutorial/GetthetutorialdataintoSplunk">the Splunk tutorial</a>.</p>
 
 <p>(This step is optional, but it provides some interesting data for the sample
 queries. It is also necessary if you intend to run the test suite, using
-<code class="highlighter-rouge">-Dcalcite.test.splunk=true</code>.)</p>
+<code class="language-plaintext highlighter-rouge">-Dcalcite.test.splunk=true</code>.)</p>
 
 <h2 id="implementing-an-adapter">Implementing an adapter</h2>
 
-<p>New adapters can be created by implementing <code class="highlighter-rouge">CalcitePrepare.Context</code>:</p>
+<p>New adapters can be created by implementing <code class="language-plaintext highlighter-rouge">CalcitePrepare.Context</code>:</p>
 
 <figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">import</span> <span class="nn">org.apache.calcite.adapter.java.JavaTypeFactory</span><span class="o">;</span>
 <span class="kn">import</span> <span class="nn">org.apache.calcite.jdbc.CalcitePrepare</span><span class="o">;</span>
 <span class="kn">import</span> <span class="nn">org.apache.calcite.jdbc.CalciteSchema</span><span class="o">;</span>
 
-<span class="kd">public</span> <span class="kd">class</span> <span class="nc">AdapterContext</span> <span class="kd">implements</span> <span class="n">CalcitePrepare</span><span class="o">.</span><span class="na">Context</span> <span class="o">{</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">AdapterContext</span> <span class="kd">implements</span> <span class="nc">CalcitePrepare</span><span class="o">.</span><span class="na">Context</span> <span class="o">{</span>
   <span class="nd">@Override</span>
-  <span class="kd">public</span> <span class="n">JavaTypeFactory</span> <span class="nf">getTypeFactory</span><span class="o">()</span> <span class="o">{</span>
+  <span class="kd">public</span> <span class="nc">JavaTypeFactory</span> <span class="nf">getTypeFactory</span><span class="o">()</span> <span class="o">{</span>
     <span class="c1">// adapter implementation</span>
     <span class="k">return</span> <span class="n">typeFactory</span><span class="o">;</span>
   <span class="o">}</span>
 
   <span class="nd">@Override</span>
-  <span class="kd">public</span> <span class="n">CalciteSchema</span> <span class="nf">getRootSchema</span><span class="o">()</span> <span class="o">{</span>
+  <span class="kd">public</span> <span class="nc">CalciteSchema</span> <span class="nf">getRootSchema</span><span class="o">()</span> <span class="o">{</span>
     <span class="c1">// adapter implementation</span>
     <span class="k">return</span> <span class="n">rootSchema</span><span class="o">;</span>
   <span class="o">}</span>
@@ -525,9 +525,9 @@
 <h3 id="testing-adapter-in-java">Testing adapter in Java</h3>
 
 <p>The example below shows how SQL query can be submitted to
-<code class="highlighter-rouge">CalcitePrepare</code> with a custom context (<code class="highlighter-rouge">AdapterContext</code> in this
+<code class="language-plaintext highlighter-rouge">CalcitePrepare</code> with a custom context (<code class="language-plaintext highlighter-rouge">AdapterContext</code> in this
 case). Calcite prepares and implements the query execution, using the
-resources provided by the <code class="highlighter-rouge">Context</code>. <code class="highlighter-rouge">CalcitePrepare.PrepareResult</code>
+resources provided by the <code class="language-plaintext highlighter-rouge">Context</code>. <code class="language-plaintext highlighter-rouge">CalcitePrepare.PrepareResult</code>
 provides access to the underlying enumerable and methods for
 enumeration. The enumerable itself can naturally be some adapter
 specific implementation.</p>
@@ -539,12 +539,12 @@
 <span class="kd">public</span> <span class="kd">class</span> <span class="nc">AdapterContextTest</span> <span class="o">{</span>
   <span class="nd">@Test</span>
   <span class="kd">public</span> <span class="kt">void</span> <span class="nf">testSelectAllFromTable</span><span class="o">()</span> <span class="o">{</span>
-    <span class="n">AdapterContext</span> <span class="n">ctx</span> <span class="o">=</span> <span class="k">new</span> <span class="n">AdapterContext</span><span class="o">();</span>
-    <span class="n">String</span> <span class="n">sql</span> <span class="o">=</span> <span class="s">"SELECT * FROM TABLENAME"</span><span class="o">;</span>
-    <span class="n">Class</span> <span class="n">elementType</span> <span class="o">=</span> <span class="n">Object</span><span class="o">[].</span><span class="na">class</span><span class="o">;</span>
-    <span class="n">CalcitePrepare</span><span class="o">.</span><span class="na">PrepareResult</span><span class="o">&lt;</span><span class="n">Object</span><span class="o">&gt;</span> <span class="n">prepared</span> <span class="o">=</span>
+    <span class="nc">AdapterContext</span> <span class="n">ctx</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">AdapterContext</span><span class="o">();</span>
+    <span class="nc">String</span> <span class="n">sql</span> <span class="o">=</span> <span class="s">"SELECT * FROM TABLENAME"</span><span class="o">;</span>
+    <span class="nc">Class</span> <span class="n">elementType</span> <span class="o">=</span> <span class="nc">Object</span><span class="o">[].</span><span class="na">class</span><span class="o">;</span>
+    <span class="nc">CalcitePrepare</span><span class="o">.</span><span class="na">PrepareResult</span><span class="o">&lt;</span><span class="nc">Object</span><span class="o">&gt;</span> <span class="n">prepared</span> <span class="o">=</span>
         <span class="k">new</span> <span class="nf">CalcitePrepareImpl</span><span class="o">().</span><span class="na">prepareSql</span><span class="o">(</span><span class="n">ctx</span><span class="o">,</span> <span class="n">sql</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="n">elementType</span><span class="o">,</span> <span class="o">-</span><span class="mi">1</span><span class="o">);</span>
-    <span class="n">Object</span> <span class="n">enumerable</span> <span class="o">=</span> <span class="n">prepared</span><span class="o">.</span><span class="na">getExecutable</span><span class="o">();</span>
+    <span class="nc">Object</span> <span class="n">enumerable</span> <span class="o">=</span> <span class="n">prepared</span><span class="o">.</span><span class="na">getExecutable</span><span class="o">();</span>
     <span class="c1">// etc.</span>
   <span class="o">}</span>
 <span class="o">}</span></code></pre></figure>
@@ -557,13 +557,13 @@
 
 <h2 id="javatypefactory">JavaTypeFactory</h2>
 
-<p>When Calcite compares types (instances of <code class="highlighter-rouge">RelDataType</code>), it requires them to be the same
+<p>When Calcite compares types (instances of <code class="language-plaintext highlighter-rouge">RelDataType</code>), it requires them to be the same
 object. If there are two distinct type instances that refer to the
 same Java type, Calcite may fail to recognize that they match.  It is
 recommended to:</p>
 
 <ul>
-  <li>Use a single instance of <code class="highlighter-rouge">JavaTypeFactory</code> within the calcite context;</li>
+  <li>Use a single instance of <code class="language-plaintext highlighter-rouge">JavaTypeFactory</code> within the calcite context;</li>
   <li>Store the types so that the same object is always returned for the same type.</li>
 </ul>
 
@@ -587,7 +587,7 @@
 <span class="nv">$ </span><span class="nb">tar </span>xf protobuf-java-3.0.0-beta-1.tar.gz <span class="o">&amp;&amp;</span> <span class="nb">cd </span>protobuf-3.0.0-beta-1
 <span class="nv">$ </span>./configure
 <span class="nv">$ </span>make
-<span class="nv">$ </span><span class="nb">sudo </span>make install</code></pre></figure>
+<span class="nv">$ </span><span class="nb">sudo </span>make <span class="nb">install</span></code></pre></figure>
 
 <p>Then, re-generate the compiled code:</p>
 
@@ -596,62 +596,62 @@
 
 <h2 id="create-a-planner-rule">Create a planner rule</h2>
 
-<p>Create a class that extends <code class="highlighter-rouge">RelRule</code> (or occasionally a sub-class).</p>
+<p>Create a class that extends <code class="language-plaintext highlighter-rouge">RelRule</code> (or occasionally a sub-class).</p>
 
 <figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="cm">/** Planner rule that matches a {@link Filter} and futzes with it.
  *
  * @see CoreRules#FILTER_FUTZ
  */</span>
-<span class="kd">class</span> <span class="nc">FilterFutzRule</span> <span class="kd">extends</span> <span class="n">RelRule</span><span class="o">&lt;</span><span class="n">FilterFutzRule</span><span class="o">.</span><span class="na">Config</span><span class="o">&gt;</span> <span class="o">{</span>
+<span class="kd">class</span> <span class="nc">FilterFutzRule</span> <span class="kd">extends</span> <span class="nc">RelRule</span><span class="o">&lt;</span><span class="nc">FilterFutzRule</span><span class="o">.</span><span class="na">Config</span><span class="o">&gt;</span> <span class="o">{</span>
   <span class="cm">/** Creates a FilterFutzRule. */</span>
-  <span class="kd">protected</span> <span class="nf">FilterFutzRule</span><span class="o">(</span><span class="n">Config</span> <span class="n">config</span><span class="o">)</span> <span class="o">{</span>
+  <span class="kd">protected</span> <span class="nf">FilterFutzRule</span><span class="o">(</span><span class="nc">Config</span> <span class="n">config</span><span class="o">)</span> <span class="o">{</span>
     <span class="kd">super</span><span class="o">(</span><span class="n">config</span><span class="o">);</span>
   <span class="o">}</span>
 
-  <span class="nd">@Override</span> <span class="n">onMatch</span><span class="o">(</span><span class="n">RelOptRuleCall</span> <span class="n">call</span><span class="o">)</span> <span class="o">{</span>
-    <span class="kd">final</span> <span class="n">Filter</span> <span class="n">filter</span> <span class="o">=</span> <span class="n">call</span><span class="o">.</span><span class="na">rels</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
-    <span class="kd">final</span> <span class="n">RelNode</span> <span class="n">newRel</span> <span class="o">=</span> <span class="o">...;</span>
+  <span class="nd">@Override</span> <span class="n">onMatch</span><span class="o">(</span><span class="nc">RelOptRuleCall</span> <span class="n">call</span><span class="o">)</span> <span class="o">{</span>
+    <span class="kd">final</span> <span class="nc">Filter</span> <span class="n">filter</span> <span class="o">=</span> <span class="n">call</span><span class="o">.</span><span class="na">rels</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
+    <span class="kd">final</span> <span class="nc">RelNode</span> <span class="n">newRel</span> <span class="o">=</span> <span class="o">...;</span>
     <span class="n">call</span><span class="o">.</span><span class="na">transformTo</span><span class="o">(</span><span class="n">newRel</span><span class="o">);</span>
   <span class="o">}</span>
 
   <span class="cm">/** Rule configuration. */</span>
-  <span class="kd">interface</span> <span class="nc">Config</span> <span class="kd">extends</span> <span class="n">RelRule</span><span class="o">.</span><span class="na">Config</span> <span class="o">{</span>
-    <span class="n">Config</span> <span class="n">DEFAULT</span> <span class="o">=</span> <span class="n">EMPTY</span><span class="o">.</span><span class="na">as</span><span class="o">(</span><span class="n">Config</span><span class="o">.</span><span class="na">class</span><span class="o">)</span>
+  <span class="kd">interface</span> <span class="nc">Config</span> <span class="kd">extends</span> <span class="nc">RelRule</span><span class="o">.</span><span class="na">Config</span> <span class="o">{</span>
+    <span class="nc">Config</span> <span class="no">DEFAULT</span> <span class="o">=</span> <span class="no">EMPTY</span><span class="o">.</span><span class="na">as</span><span class="o">(</span><span class="nc">Config</span><span class="o">.</span><span class="na">class</span><span class="o">)</span>
         <span class="o">.</span><span class="na">withOperandSupplier</span><span class="o">(</span><span class="n">b0</span> <span class="o">-&gt;</span>
-            <span class="n">b0</span><span class="o">.</span><span class="na">operand</span><span class="o">(</span><span class="n">LogicalFilter</span><span class="o">.</span><span class="na">class</span><span class="o">).</span><span class="na">anyInputs</span><span class="o">())</span>
-        <span class="o">.</span><span class="na">as</span><span class="o">(</span><span class="n">Config</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
+            <span class="n">b0</span><span class="o">.</span><span class="na">operand</span><span class="o">(</span><span class="nc">LogicalFilter</span><span class="o">.</span><span class="na">class</span><span class="o">).</span><span class="na">anyInputs</span><span class="o">())</span>
+        <span class="o">.</span><span class="na">as</span><span class="o">(</span><span class="nc">Config</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
 
-    <span class="nd">@Override</span> <span class="k">default</span> <span class="n">FilterFutzRule</span> <span class="nf">toRule</span><span class="o">()</span> <span class="o">{</span>
+    <span class="nd">@Override</span> <span class="k">default</span> <span class="nc">FilterFutzRule</span> <span class="nf">toRule</span><span class="o">()</span> <span class="o">{</span>
       <span class="k">return</span> <span class="k">new</span> <span class="nf">FilterFutzRule</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
     <span class="o">}</span>
   <span class="o">}</span>
 <span class="o">}</span></code></pre></figure>
 
 <p>The <em>class name</em> should indicate the basic RelNode types that are matched,
-sometimes followed by what the rule does, then the word <code class="highlighter-rouge">Rule</code>.
-Examples: <code class="highlighter-rouge">ProjectFilterTransposeRule</code>, <code class="highlighter-rouge">FilterMergeRule</code>.</p>
+sometimes followed by what the rule does, then the word <code class="language-plaintext highlighter-rouge">Rule</code>.
+Examples: <code class="language-plaintext highlighter-rouge">ProjectFilterTransposeRule</code>, <code class="language-plaintext highlighter-rouge">FilterMergeRule</code>.</p>
 
-<p>The rule must have a constructor that takes a <code class="highlighter-rouge">Config</code> as an argument.
-It should be <code class="highlighter-rouge">protected</code>, and will only be called from <code class="highlighter-rouge">Config.toRule()</code>.</p>
+<p>The rule must have a constructor that takes a <code class="language-plaintext highlighter-rouge">Config</code> as an argument.
+It should be <code class="language-plaintext highlighter-rouge">protected</code>, and will only be called from <code class="language-plaintext highlighter-rouge">Config.toRule()</code>.</p>
 
-<p>The class must contain an interface called <code class="highlighter-rouge">Config</code> that extends
-<code class="highlighter-rouge">RelRule.Config</code> (or the config of the rule’s super-class).</p>
+<p>The class must contain an interface called <code class="language-plaintext highlighter-rouge">Config</code> that extends
+<code class="language-plaintext highlighter-rouge">RelRule.Config</code> (or the config of the rule’s super-class).</p>
 
-<p><code class="highlighter-rouge">Config</code> must implement the <code class="highlighter-rouge">toRule</code> method and create a rule.</p>
+<p><code class="language-plaintext highlighter-rouge">Config</code> must implement the <code class="language-plaintext highlighter-rouge">toRule</code> method and create a rule.</p>
 
-<p><code class="highlighter-rouge">Config</code> must have a member called <code class="highlighter-rouge">DEFAULT</code> that creates a typical
-configuration. At a minimum, it must call <code class="highlighter-rouge">withOperandSupplier</code> to create
+<p><code class="language-plaintext highlighter-rouge">Config</code> must have a member called <code class="language-plaintext highlighter-rouge">DEFAULT</code> that creates a typical
+configuration. At a minimum, it must call <code class="language-plaintext highlighter-rouge">withOperandSupplier</code> to create
 a typical tree of operands.</p>
 
-<p>The rule <em>should not</em> have a static <code class="highlighter-rouge">INSTANCE</code> field.
-There <em>should</em> be an instance of the rule in a holder class such as <code class="highlighter-rouge">CoreRules</code>
-or <code class="highlighter-rouge">EnumerableRules</code>:</p>
+<p>The rule <em>should not</em> have a static <code class="language-plaintext highlighter-rouge">INSTANCE</code> field.
+There <em>should</em> be an instance of the rule in a holder class such as <code class="language-plaintext highlighter-rouge">CoreRules</code>
+or <code class="language-plaintext highlighter-rouge">EnumerableRules</code>:</p>
 
 <figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">CoreRules</span> <span class="o">{</span>
   <span class="o">...</span>
 
   <span class="cm">/** Rule that matches a {@link Filter} and futzes with it. */</span>
-  <span class="kd">public</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">FILTER_FUTZ</span> <span class="o">=</span> <span class="n">FilterFutzRule</span><span class="o">.</span><span class="na">Config</span><span class="o">.</span><span class="na">DEFAULT</span><span class="o">.</span><span class="na">toRule</span><span class="o">();</span>
+  <span class="kd">public</span> <span class="kd">static</span> <span class="kd">final</span> <span class="no">FILTER_FUTZ</span> <span class="o">=</span> <span class="nc">FilterFutzRule</span><span class="o">.</span><span class="na">Config</span><span class="o">.</span><span class="na">DEFAULT</span><span class="o">.</span><span class="na">toRule</span><span class="o">();</span>
 <span class="o">}</span></code></pre></figure>
 
 <p>The holder class <em>may</em> contain other instances of the rule with
@@ -659,9 +659,9 @@
 
 <p>If the rule is instantiated with several patterns of operands
 (for instance, with different sub-classes of the same base RelNode classes,
-or with different predicates) the config <em>may</em> contain a method <code class="highlighter-rouge">withOperandFor</code>
+or with different predicates) the config <em>may</em> contain a method <code class="language-plaintext highlighter-rouge">withOperandFor</code>
 to make it easier to build common operand patterns.
-(See <code class="highlighter-rouge">FilterAggregateTransposeRule</code> for an example.)</p>
+(See <code class="language-plaintext highlighter-rouge">FilterAggregateTransposeRule</code> for an example.)</p>
 
 <h1 id="advanced-topics-for-committers">Advanced topics for committers</h1>
 
@@ -699,14 +699,14 @@
 <h2 id="merging-pull-requests">Merging pull requests</h2>
 
 <p>These are instructions for a Calcite committer who has reviewed a pull request
-from a contributor, found it satisfactory, and is about to merge it to master.
+from a contributor, found it satisfactory, and is about to merge it to main.
 Usually the contributor is not a committer (otherwise they would be committing
 it themselves, after you gave approval in a review).</p>
 
 <p>There are certain kinds of continuous integration tests that are not run
 automatically against the PR. These tests can be triggered explicitly by adding
 an appropriate label to the PR. For instance, you can run slow tests by adding
-the <code class="highlighter-rouge">slow-tests-needed</code> label. It is up to you to decide if these additional
+the <code class="language-plaintext highlighter-rouge">slow-tests-needed</code> label. It is up to you to decide if these additional
 tests need to run before merging.</p>
 
 <p>If the PR has multiple commits, squash them into a single commit. The
@@ -735,14 +735,14 @@
 <h2 id="set-up-pgp-signing-keys">Set up PGP signing keys</h2>
 
 <p>Follow instructions <a href="https://www.apache.org/dev/release-signing">here</a> to
-create a key pair. (On macOS, I did <code class="highlighter-rouge">brew install gpg</code> and
-<code class="highlighter-rouge">gpg --full-generate-key</code>.)</p>
+create a key pair. (On macOS, I did <code class="language-plaintext highlighter-rouge">brew install gpg</code> and
+<code class="language-plaintext highlighter-rouge">gpg --full-generate-key</code>.)</p>
 
 <p>Add your public key to the
-<a href="https://dist.apache.org/repos/dist/release/calcite/KEYS"><code class="highlighter-rouge">KEYS</code></a>
-file by following instructions in the <code class="highlighter-rouge">KEYS</code> file. If you don’t have
-the permission to update the <code class="highlighter-rouge">KEYS</code> file, ask PMC for help.
-(The <code class="highlighter-rouge">KEYS</code> file is not present in the git repo or in a release tar
+<a href="https://dist.apache.org/repos/dist/release/calcite/KEYS"><code class="language-plaintext highlighter-rouge">KEYS</code></a>
+file by following instructions in the <code class="language-plaintext highlighter-rouge">KEYS</code> file. If you don’t have
+the permission to update the <code class="language-plaintext highlighter-rouge">KEYS</code> file, ask PMC for help.
+(The <code class="language-plaintext highlighter-rouge">KEYS</code> file is not present in the git repo or in a release tar
 ball because that would be
 <a href="https://issues.apache.org/jira/browse/CALCITE-1746">redundant</a>.)</p>
 
@@ -753,7 +753,7 @@
 <h2 id="set-up-nexus-repository-credentials">Set up Nexus repository credentials</h2>
 
 <p>Gradle provides multiple ways to <a href="https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties">configure project properties</a>.
-For instance, you could update <code class="highlighter-rouge">$HOME/.gradle/gradle.properties</code>.</p>
+For instance, you could update <code class="language-plaintext highlighter-rouge">$HOME/.gradle/gradle.properties</code>.</p>
 
 <p>Note: the build script would print the missing properties, so you can try running it and let it complain on the missing ones.</p>
 
@@ -769,18 +769,18 @@
 <span class="py">asfGitSourceUsername</span><span class="p">=</span>
 <span class="py">asfGitSourcePassword</span><span class="p">=</span></code></pre></figure>
 
-<p>Note: Both <code class="highlighter-rouge">asfNexusUsername</code> and <code class="highlighter-rouge">asfSvnUsername</code> are your apache id with <code class="highlighter-rouge">asfNexusPassword</code> and
-<code class="highlighter-rouge">asfSvnPassword</code> are corresponding password.</p>
+<p>Note: Both <code class="language-plaintext highlighter-rouge">asfNexusUsername</code> and <code class="language-plaintext highlighter-rouge">asfSvnUsername</code> are your apache id with <code class="language-plaintext highlighter-rouge">asfNexusPassword</code> and
+<code class="language-plaintext highlighter-rouge">asfSvnPassword</code> are corresponding password.</p>
 
 <p>When
 <a href="https://github.com/vlsi/asflike-release-environment">asflike-release-environment</a>
 is used, the credentials are taken from
-<code class="highlighter-rouge">asfTest...</code> (e.g. <code class="highlighter-rouge">asfTestNexusUsername=test</code>)</p>
+<code class="language-plaintext highlighter-rouge">asfTest...</code> (e.g. <code class="language-plaintext highlighter-rouge">asfTestNexusUsername=test</code>)</p>
 
-<p>Note: <code class="highlighter-rouge">asfGitSourceUsername</code> is your GitHub id while <code class="highlighter-rouge">asfGitSourcePassword</code> is not your GitHub password.
-You need to generate it in https://github.com/settings/tokens choosing <code class="highlighter-rouge">Personal access tokens</code>.</p>
+<p>Note: <code class="language-plaintext highlighter-rouge">asfGitSourceUsername</code> is your GitHub id while <code class="language-plaintext highlighter-rouge">asfGitSourcePassword</code> is not your GitHub password.
+You need to generate it in https://github.com/settings/tokens choosing <code class="language-plaintext highlighter-rouge">Personal access tokens</code>.</p>
 
-<p>Note: if you want to use <code class="highlighter-rouge">gpg-agent</code>, you need to pass some more properties:</p>
+<p>Note: if you want to use <code class="language-plaintext highlighter-rouge">gpg-agent</code>, you need to pass some more properties:</p>
 
 <figure class="highlight"><pre><code class="language-properties" data-lang="properties"><span class="py">useGpgCmd</span><span class="p">=</span><span class="s">true</span>
 <span class="py">signing.gnupg.keyName</span><span class="p">=</span>
@@ -792,7 +792,7 @@
 
 <ul>
   <li>Make sure you are using JDK 8. Note: you need Java 8u202 or later in case you use OpenJDK-based Java.</li>
-  <li>Make sure build and tests succeed with <code class="highlighter-rouge">-Dcalcite.test.db=hsqldb</code> (the default)</li>
+  <li>Make sure build and tests succeed with <code class="language-plaintext highlighter-rouge">-Dcalcite.test.db=hsqldb</code> (the default)</li>
 </ul>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Make sure that there are no junk files in the sandbox</span>
@@ -809,45 +809,40 @@
 
 <ul>
   <li>Send an email to <a href="mailto:dev@calcite.apache.org">dev@calcite.apache.org</a> notifying that RC build process
-is starting and therefore <code class="highlighter-rouge">master</code> branch is in code freeze until further notice.</li>
+is starting and therefore <code class="language-plaintext highlighter-rouge">main</code> branch is in code freeze until further notice.</li>
   <li>Set up signing keys as described above.</li>
   <li>Make sure you are using JDK 8 (not 9 or 10).</li>
-  <li>Make sure <code class="highlighter-rouge">master</code> branch and <code class="highlighter-rouge">site</code> branch are in sync, i.e. there is no
-commit on <code class="highlighter-rouge">site</code> that has not been applied also to <code class="highlighter-rouge">master</code>.
-We are talking about the commit content, you need to pay attention to the commit message
-and change, not hash: it is normal to have the same change in <code class="highlighter-rouge">site</code> and
-<code class="highlighter-rouge">master</code>, but with different hashes. If you spot missing commits then port them to <code class="highlighter-rouge">master</code>.</li>
-  <li>Check that <code class="highlighter-rouge">README</code> and <code class="highlighter-rouge">site/_docs/howto.md</code> have the correct version number.</li>
-  <li>Check that <code class="highlighter-rouge">site/_docs/howto.md</code> has the correct Gradle version.</li>
-  <li>Check that <code class="highlighter-rouge">NOTICE</code> has the current copyright year.</li>
-  <li>Check that <code class="highlighter-rouge">calcite.version</code> has the proper value in <code class="highlighter-rouge">/gradle.properties</code>.</li>
+  <li>Check that <code class="language-plaintext highlighter-rouge">README</code> and <code class="language-plaintext highlighter-rouge">site/_docs/howto.md</code> have the correct version number.</li>
+  <li>Check that <code class="language-plaintext highlighter-rouge">site/_docs/howto.md</code> has the correct Gradle version.</li>
+  <li>Check that <code class="language-plaintext highlighter-rouge">NOTICE</code> has the current copyright year.</li>
+  <li>Check that <code class="language-plaintext highlighter-rouge">calcite.version</code> has the proper value in <code class="language-plaintext highlighter-rouge">/gradle.properties</code>.</li>
   <li>Make sure build and tests succeed</li>
-  <li>Make sure that <code class="highlighter-rouge">./gradlew javadoc</code> succeeds
+  <li>Make sure that <code class="language-plaintext highlighter-rouge">./gradlew javadoc</code> succeeds
 (i.e. gives no errors; warnings are OK)</li>
   <li>Generate a report of vulnerabilities that occur among dependencies,
-using <code class="highlighter-rouge">./gradlew dependencyCheckUpdate dependencyCheckAggregate</code>.
+using <code class="language-plaintext highlighter-rouge">./gradlew dependencyCheckUpdate dependencyCheckAggregate</code>.
 Report to <a href="mailto:private@calcite.apache.org">private@calcite.apache.org</a>
 if new critical vulnerabilities are found among dependencies.</li>
   <li>Decide the supported configurations of JDK, operating system and
 Guava.  These will probably be the same as those described in the
 release notes of the previous release.  Document them in the release
-notes.  To test Guava version <em>x.y</em>, specify <code class="highlighter-rouge">-Pguava.version=x.y</code>
+notes.  To test Guava version <em>x.y</em>, specify <code class="language-plaintext highlighter-rouge">-Pguava.version=x.y</code>
 </li>
   <li>Optional tests using properties:
     <ul>
-      <li><code class="highlighter-rouge">-Dcalcite.test.db=mysql</code></li>
-      <li><code class="highlighter-rouge">-Dcalcite.test.db=hsqldb</code></li>
-      <li><code class="highlighter-rouge">-Dcalcite.test.mongodb</code></li>
-      <li><code class="highlighter-rouge">-Dcalcite.test.splunk</code></li>
+      <li><code class="language-plaintext highlighter-rouge">-Dcalcite.test.db=mysql</code></li>
+      <li><code class="language-plaintext highlighter-rouge">-Dcalcite.test.db=hsqldb</code></li>
+      <li><code class="language-plaintext highlighter-rouge">-Dcalcite.test.mongodb</code></li>
+      <li><code class="language-plaintext highlighter-rouge">-Dcalcite.test.splunk</code></li>
     </ul>
   </li>
   <li>Optional tests using tasks:
     <ul>
-      <li><code class="highlighter-rouge">./gradlew testSlow</code></li>
+      <li><code class="language-plaintext highlighter-rouge">./gradlew testSlow</code></li>
     </ul>
   </li>
-  <li>Add release notes to <code class="highlighter-rouge">site/_docs/history.md</code>. If release notes already exist for the version to be released, but
-are commented out, remove the comments (``). Include the commit history,
+  <li>Add release notes to <code class="language-plaintext highlighter-rouge">site/_docs/history.md</code>. If release notes already exist for the version to be released, but
+are commented out, remove the comments (<code class="language-plaintext highlighter-rouge">{% comment %}</code> and <code class="language-plaintext highlighter-rouge">{% endcomment %}</code>). Include the commit history,
 names of people who contributed to the release, and say which versions of Java, Guava and operating systems the
 release is tested against.</li>
   <li>Make sure that
@@ -859,7 +854,7 @@
 
 <p>Generate a list of contributors by running the following (changing the
 date literal to the date of the previous release):</p>
-<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code># distinct authors
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># distinct authors
 ./sqlsh "select distinct author from git_commits where author_timestamp &gt; DATE '2021-06-03' order by 1"
 # most prolific authors
 ./sqlsh "select author, count(*) from git_commits where commit_timestamp &gt; DATE '2021-06-03' group by author order by 2"
@@ -867,7 +862,7 @@
 ./sqlsh "select count(*) as c, count(distinct author) as a, count(*) filter (where message like '%CALCITE-%') as j from git_commits where commit_timestamp &gt; DATE '2021-06-03' order by 1"
 </code></pre></div></div>
 
-<p>Smoke-test <code class="highlighter-rouge">sqlline</code> with Spatial and Oracle function tables:</p>
+<p>Smoke-test <code class="language-plaintext highlighter-rouge">sqlline</code> with Spatial and Oracle function tables:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="err">$</span> <span class="p">.</span><span class="o">/</span><span class="n">sqlline</span>
 <span class="o">&gt;</span> <span class="o">!</span><span class="k">connect</span> <span class="n">jdbc</span><span class="p">:</span><span class="n">calcite</span><span class="p">:</span><span class="n">fun</span><span class="o">=</span><span class="n">spatial</span><span class="p">,</span><span class="n">oracle</span> <span class="nv">"sa"</span> <span class="nv">""</span>
@@ -881,7 +876,7 @@
 <span class="o">&gt;</span> <span class="o">!</span><span class="n">quit</span></code></pre></figure>
 
 <p>The release candidate process does not add commits,
-so there’s no harm if it fails. It might leave <code class="highlighter-rouge">-rc</code> tag behind
+so there’s no harm if it fails. It might leave <code class="language-plaintext highlighter-rouge">-rc</code> tag behind
 which can be removed if required.</p>
 
 <p>You can perform a dry-run release with a help of
@@ -896,7 +891,7 @@
 <p>Pick a release candidate index and ensure it does not interfere with previous candidates for the version.</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># Tell GPG how to read a password from your terminal</span>
-<span class="nb">export </span><span class="nv">GPG_TTY</span><span class="o">=</span><span class="k">$(</span>tty<span class="k">)</span>
+<span class="nb">export </span><span class="nv">GPG_TTY</span><span class="o">=</span><span class="si">$(</span><span class="nb">tty</span><span class="si">)</span>
 
 <span class="c"># Make sure that there are no junk files in the sandbox</span>
 git clean <span class="nt">-xn</span>
@@ -911,47 +906,47 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">net.rubygrapefruit.platform.NativeException: Could not start 'svnmucc'</code>: Make sure you have <code class="highlighter-rouge">svnmucc</code> command
+<code class="language-plaintext highlighter-rouge">net.rubygrapefruit.platform.NativeException: Could not start 'svnmucc'</code>: Make sure you have <code class="language-plaintext highlighter-rouge">svnmucc</code> command
 installed in your machine.</li>
   <li>
-<code class="highlighter-rouge">Execution failed for task ':closeRepository' ... Possible staging rules violation. Check repository status using Nexus UI</code>:
+<code class="language-plaintext highlighter-rouge">Execution failed for task ':closeRepository' ... Possible staging rules violation. Check repository status using Nexus UI</code>:
 Log into <a href="https://repository.apache.org/#stagingRepositories">Nexus UI</a> to see the actual error. In case of
-<code class="highlighter-rouge">Failed: Signature Validation. No public key: Key with id: ... was not able to be located</code>, make sure you have uploaded
+<code class="language-plaintext highlighter-rouge">Failed: Signature Validation. No public key: Key with id: ... was not able to be located</code>, make sure you have uploaded
 your key to the keyservers used by Nexus, see above.</li>
 </ul>
 
 <h4 id="checking-the-artifacts">Checking the artifacts</h4>
 
 <ul>
-  <li>In the <code class="highlighter-rouge">release/build/distributions</code> directory should be these 3 files, among others:
+  <li>In the <code class="language-plaintext highlighter-rouge">release/build/distributions</code> directory should be these 3 files, among others:
     <ul>
-      <li><code class="highlighter-rouge">apache-calcite-X.Y.Z-src.tar.gz</code></li>
-      <li><code class="highlighter-rouge">apache-calcite-X.Y.Z-src.tar.gz.asc</code></li>
-      <li><code class="highlighter-rouge">apache-calcite-X.Y.Z-src.tar.gz.sha256</code></li>
+      <li><code class="language-plaintext highlighter-rouge">apache-calcite-X.Y.Z-src.tar.gz</code></li>
+      <li><code class="language-plaintext highlighter-rouge">apache-calcite-X.Y.Z-src.tar.gz.asc</code></li>
+      <li><code class="language-plaintext highlighter-rouge">apache-calcite-X.Y.Z-src.tar.gz.sha256</code></li>
     </ul>
   </li>
-  <li>Note that the file names start <code class="highlighter-rouge">apache-calcite-</code>.</li>
-  <li>In the source distro <code class="highlighter-rouge">.tar.gz</code> (currently there is
+  <li>Note that the file names start <code class="language-plaintext highlighter-rouge">apache-calcite-</code>.</li>
+  <li>In the source distro <code class="language-plaintext highlighter-rouge">.tar.gz</code> (currently there is
 no binary distro), check that all files belong to a directory called
-<code class="highlighter-rouge">apache-calcite-X.Y.Z-src</code>.</li>
-  <li>That directory must contain files <code class="highlighter-rouge">NOTICE</code>, <code class="highlighter-rouge">LICENSE</code>,
-<code class="highlighter-rouge">README</code>, <code class="highlighter-rouge">README.md</code>
+<code class="language-plaintext highlighter-rouge">apache-calcite-X.Y.Z-src</code>.</li>
+  <li>That directory must contain files <code class="language-plaintext highlighter-rouge">NOTICE</code>, <code class="language-plaintext highlighter-rouge">LICENSE</code>,
+<code class="language-plaintext highlighter-rouge">README</code>, <code class="language-plaintext highlighter-rouge">README.md</code>
     <ul>
-      <li>Check that the version in <code class="highlighter-rouge">README</code> is correct</li>
-      <li>Check that the copyright year in <code class="highlighter-rouge">NOTICE</code> is correct</li>
-      <li>Check that <code class="highlighter-rouge">LICENSE</code> is identical to the file checked into git</li>
+      <li>Check that the version in <code class="language-plaintext highlighter-rouge">README</code> is correct</li>
+      <li>Check that the copyright year in <code class="language-plaintext highlighter-rouge">NOTICE</code> is correct</li>
+      <li>Check that <code class="language-plaintext highlighter-rouge">LICENSE</code> is identical to the file checked into git</li>
     </ul>
   </li>
   <li>Make sure that the following files do not occur in the source
-distros: <code class="highlighter-rouge">KEYS</code>, <code class="highlighter-rouge">gradlew</code>, <code class="highlighter-rouge">gradlew.bat</code>, <code class="highlighter-rouge">gradle-wrapper.jar</code>,
-<code class="highlighter-rouge">gradle-wrapper.properties</code>
+distros: <code class="language-plaintext highlighter-rouge">KEYS</code>, <code class="language-plaintext highlighter-rouge">gradlew</code>, <code class="language-plaintext highlighter-rouge">gradlew.bat</code>, <code class="language-plaintext highlighter-rouge">gradle-wrapper.jar</code>,
+<code class="language-plaintext highlighter-rouge">gradle-wrapper.properties</code>
 </li>
-  <li>Make sure that there is no <code class="highlighter-rouge">KEYS</code> file in the source distros</li>
+  <li>Make sure that there is no <code class="language-plaintext highlighter-rouge">KEYS</code> file in the source distros</li>
   <li>In each .jar (for example
-<code class="highlighter-rouge">core/build/libs/calcite-core-X.Y.Z.jar</code> and
-<code class="highlighter-rouge">mongodb/build/libs/calcite-mongodb-X.Y.Z-sources.jar</code>), check
-that the <code class="highlighter-rouge">META-INF</code> directory contains <code class="highlighter-rouge">LICENSE</code>,
-<code class="highlighter-rouge">NOTICE</code>
+<code class="language-plaintext highlighter-rouge">core/build/libs/calcite-core-X.Y.Z.jar</code> and
+<code class="language-plaintext highlighter-rouge">mongodb/build/libs/calcite-mongodb-X.Y.Z-sources.jar</code>), check
+that the <code class="language-plaintext highlighter-rouge">META-INF</code> directory contains <code class="language-plaintext highlighter-rouge">LICENSE</code>,
+<code class="language-plaintext highlighter-rouge">NOTICE</code>
 </li>
   <li>Check PGP, per <a href="https://httpd.apache.org/dev/verification.html">this</a>
 </li>
@@ -961,9 +956,9 @@
 
 <ul>
   <li>Go to <a href="https://repository.apache.org/">https://repository.apache.org/</a> and login</li>
-  <li>Under <code class="highlighter-rouge">Build Promotion</code>, click <code class="highlighter-rouge">Staging Repositories</code>
+  <li>Under <code class="language-plaintext highlighter-rouge">Build Promotion</code>, click <code class="language-plaintext highlighter-rouge">Staging Repositories</code>
 </li>
-  <li>In the <code class="highlighter-rouge">Staging Repositories</code> tab there should be a line with profile <code class="highlighter-rouge">org.apache.calcite</code>
+  <li>In the <code class="language-plaintext highlighter-rouge">Staging Repositories</code> tab there should be a line with profile <code class="language-plaintext highlighter-rouge">org.apache.calcite</code>
 </li>
   <li>Navigate through the artifact tree and make sure the .jar, .pom, .asc files are present</li>
   <li>Check the box on in the first column of the row,
@@ -994,7 +989,7 @@
       continue
     fi
     if</span> <span class="o">[</span> <span class="nt">-f</span> <span class="nv">$i</span>.sha512 <span class="o">]</span><span class="p">;</span> <span class="k">then
-      if</span> <span class="o">[</span> <span class="s2">"</span><span class="k">$(</span><span class="nb">cat</span> <span class="nv">$i</span>.sha512<span class="k">)</span><span class="s2">"</span> <span class="o">=</span> <span class="s2">"</span><span class="k">$(</span>shasum <span class="nt">-a</span> 512 <span class="nv">$i</span><span class="k">)</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
+      if</span> <span class="o">[</span> <span class="s2">"</span><span class="si">$(</span><span class="nb">cat</span> <span class="nv">$i</span>.sha512<span class="si">)</span><span class="s2">"</span> <span class="o">=</span> <span class="s2">"</span><span class="si">$(</span>shasum <span class="nt">-a</span> 512 <span class="nv">$i</span><span class="si">)</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
         </span><span class="nb">echo</span> <span class="nv">$i</span>.sha512 present and correct
       <span class="k">else
         </span><span class="nb">echo</span> <span class="nv">$i</span>.sha512 does not match
@@ -1009,9 +1004,9 @@
 
 <h2 id="get-approval-for-a-release-via-apache-voting-process">Get approval for a release via Apache voting process</h2>
 
-<p>Start a vote by sending an email to the dev list. The Gradle <code class="highlighter-rouge">prepareVote</code> task
+<p>Start a vote by sending an email to the dev list. The Gradle <code class="language-plaintext highlighter-rouge">prepareVote</code> task
 prints a draft mail at the end, if it completes successfully. You can find the
-draft in <code class="highlighter-rouge">/build/prepareVote/mail.txt</code>.</p>
+draft in <code class="language-plaintext highlighter-rouge">/build/prepareVote/mail.txt</code>.</p>
 
 <p>After vote finishes, send out the result:</p>
 
@@ -1070,7 +1065,7 @@
 <p>If there are now more than 2 releases, clear out the oldest ones:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">cd</span> ~/dist/release/calcite
-svn rm apache-calcite-X.Y.Z
+svn <span class="nb">rm </span>apache-calcite-X.Y.Z
 svn ci</code></pre></figure>
 
 <p>The old releases will remain available in the
@@ -1081,17 +1076,17 @@
 
 <p>Update the site with the release note, the release announcement, and the javadoc of the new version.
 Add a release announcement by copying
-<a href="https://github.com/apache/calcite/blob/master/site/_posts/2016-10-12-release-1.10.0.md">site/_posts/2016-10-12-release-1.10.0.md</a>.
+<a href="https://github.com/apache/calcite/blob/main/site/_posts/2016-10-12-release-1.10.0.md">site/_posts/2016-10-12-release-1.10.0.md</a>.
 Generate the javadoc, and <a href="http://localhost:4000/news/">preview</a> the site by following the
-instructions in <a href="https://github.com/apache/calcite/blob/master/site/README.md">site/README.md</a>. Ensure the announcement,
+instructions in <a href="https://github.com/apache/calcite/blob/main/site/README.md">site/README.md</a>. Ensure the announcement,
 javadoc, and release note appear correctly and then publish the site following the instructions
-in the same file. Rebase the <code class="highlighter-rouge">site</code> branch with <code class="highlighter-rouge">master</code> (e.g., <code class="highlighter-rouge">git checkout site &amp;&amp; git rebase master</code>);
-at this point there shouldn’t be any commits in <code class="highlighter-rouge">site</code> that are not in <code class="highlighter-rouge">master</code>, so the rebase is
+in the same file. Rebase the <code class="language-plaintext highlighter-rouge">site</code> branch with <code class="language-plaintext highlighter-rouge">main</code> (e.g., <code class="language-plaintext highlighter-rouge">git checkout site &amp;&amp; git rebase main</code>);
+at this point there shouldn’t be any commits in <code class="language-plaintext highlighter-rouge">site</code> that are not in <code class="language-plaintext highlighter-rouge">main</code>, so the rebase is
 essentially a noop.</p>
 
 <p>In JIRA, search for
 <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20CALCITE%20and%20fixVersion%20%3D%201.5.0%20and%20status%20%3D%20Resolved%20and%20resolution%20%3D%20Fixed">all issues resolved in this release</a>,
-and do a bulk update(choose the <code class="highlighter-rouge">transition issues</code> option) changing their status to “Closed”,
+and do a bulk update(choose the <code class="language-plaintext highlighter-rouge">transition issues</code> option) changing their status to “Closed”,
 with a change comment
 “Resolved in release X.Y.Z (YYYY-MM-DD)”
 (fill in release number and date appropriately).
@@ -1100,22 +1095,22 @@
 a new version (e.g., X.Y+1.Z) for the next release.</p>
 
 <p>After 24 hours, announce the release by sending an email to
-<a href="https://mail-archives.apache.org/mod_mbox/www-announce/">announce@apache.org</a> using an <code class="highlighter-rouge">@apache.org</code>
+<a href="https://mail-archives.apache.org/mod_mbox/www-announce/">announce@apache.org</a> using an <code class="language-plaintext highlighter-rouge">@apache.org</code>
 address. You can use
 <a href="https://mail-archives.apache.org/mod_mbox/www-announce/201906.mbox/%3CCA%2BEpF8tcJcZ41rVuwJODJmyRy-qAxZUQm9OxKsoDi07c2SKs_A%40mail.gmail.com%3E">the 1.20.0 announcement</a>
 as a template. Be sure to include a brief description of the project.</p>
 
-<p>Increase the <code class="highlighter-rouge">calcite.version</code> value in <code class="highlighter-rouge">/gradle.properties</code>, commit and push
+<p>Increase the <code class="language-plaintext highlighter-rouge">calcite.version</code> value in <code class="language-plaintext highlighter-rouge">/gradle.properties</code>, commit and push
 the change with the message “Prepare for next development iteration”
 (see <a href="https://github.com/apache/calcite/commit/ed1470a3ea53a78c667354a5ec066425364eca73">ed1470a</a> as a reference)</p>
 
-<p>Re-open the <code class="highlighter-rouge">master</code> branch. Send an email to <a href="mailto:dev@calcite.apache.org">dev@calcite.apache.org</a> notifying
-that <code class="highlighter-rouge">master</code> code freeze is over and commits can resume.</p>
+<p>Re-open the <code class="language-plaintext highlighter-rouge">main</code> branch. Send an email to <a href="mailto:dev@calcite.apache.org">dev@calcite.apache.org</a> notifying
+that <code class="language-plaintext highlighter-rouge">main</code> code freeze is over and commits can resume.</p>
 
 <h2 id="publish-the-web-site">Publishing the web site</h2>
 
 <p>See instructions in
-<a href="https://github.com/apache/calcite/blob/master/site/README.md">site/README.md</a>.</p>
+<a href="https://github.com/apache/calcite/blob/main/site/README.md">site/README.md</a>.</p>
 
           
 
@@ -1436,7 +1431,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/index.html b/docs/index.html
index 12439da..a7434f5 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Background</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -94,21 +94,21 @@
 point it at some data.</p>
 
 <figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="kd">static</span> <span class="kd">class</span> <span class="nc">HrSchema</span> <span class="o">{</span>
-  <span class="kd">public</span> <span class="kd">final</span> <span class="n">Employee</span><span class="o">[]</span> <span class="n">emps</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
-  <span class="kd">public</span> <span class="kd">final</span> <span class="n">Department</span><span class="o">[]</span> <span class="n">depts</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
+  <span class="kd">public</span> <span class="kd">final</span> <span class="nc">Employee</span><span class="o">[]</span> <span class="n">emps</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
+  <span class="kd">public</span> <span class="kd">final</span> <span class="nc">Department</span><span class="o">[]</span> <span class="n">depts</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
 <span class="o">}</span>
-<span class="n">Class</span><span class="o">.</span><span class="na">forName</span><span class="o">(</span><span class="s">"org.apache.calcite.jdbc.Driver"</span><span class="o">);</span>
-<span class="n">Properties</span> <span class="n">info</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Properties</span><span class="o">();</span>
+<span class="nc">Class</span><span class="o">.</span><span class="na">forName</span><span class="o">(</span><span class="s">"org.apache.calcite.jdbc.Driver"</span><span class="o">);</span>
+<span class="nc">Properties</span> <span class="n">info</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Properties</span><span class="o">();</span>
 <span class="n">info</span><span class="o">.</span><span class="na">setProperty</span><span class="o">(</span><span class="s">"lex"</span><span class="o">,</span> <span class="s">"JAVA"</span><span class="o">);</span>
-<span class="n">Connection</span> <span class="n">connection</span> <span class="o">=</span>
-    <span class="n">DriverManager</span><span class="o">.</span><span class="na">getConnection</span><span class="o">(</span><span class="s">"jdbc:calcite:"</span><span class="o">,</span> <span class="n">info</span><span class="o">);</span>
-<span class="n">CalciteConnection</span> <span class="n">calciteConnection</span> <span class="o">=</span>
-    <span class="n">connection</span><span class="o">.</span><span class="na">unwrap</span><span class="o">(</span><span class="n">CalciteConnection</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
-<span class="n">SchemaPlus</span> <span class="n">rootSchema</span> <span class="o">=</span> <span class="n">calciteConnection</span><span class="o">.</span><span class="na">getRootSchema</span><span class="o">();</span>
-<span class="n">Schema</span> <span class="n">schema</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ReflectiveSchema</span><span class="o">(</span><span class="k">new</span> <span class="n">HrSchema</span><span class="o">());</span>
+<span class="nc">Connection</span> <span class="n">connection</span> <span class="o">=</span>
+    <span class="nc">DriverManager</span><span class="o">.</span><span class="na">getConnection</span><span class="o">(</span><span class="s">"jdbc:calcite:"</span><span class="o">,</span> <span class="n">info</span><span class="o">);</span>
+<span class="nc">CalciteConnection</span> <span class="n">calciteConnection</span> <span class="o">=</span>
+    <span class="n">connection</span><span class="o">.</span><span class="na">unwrap</span><span class="o">(</span><span class="nc">CalciteConnection</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
+<span class="nc">SchemaPlus</span> <span class="n">rootSchema</span> <span class="o">=</span> <span class="n">calciteConnection</span><span class="o">.</span><span class="na">getRootSchema</span><span class="o">();</span>
+<span class="nc">Schema</span> <span class="n">schema</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">ReflectiveSchema</span><span class="o">(</span><span class="k">new</span> <span class="nc">HrSchema</span><span class="o">());</span>
 <span class="n">rootSchema</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="s">"hr"</span><span class="o">,</span> <span class="n">schema</span><span class="o">);</span>
-<span class="n">Statement</span> <span class="n">statement</span> <span class="o">=</span> <span class="n">calciteConnection</span><span class="o">.</span><span class="na">createStatement</span><span class="o">();</span>
-<span class="n">ResultSet</span> <span class="n">resultSet</span> <span class="o">=</span> <span class="n">statement</span><span class="o">.</span><span class="na">executeQuery</span><span class="o">(</span>
+<span class="nc">Statement</span> <span class="n">statement</span> <span class="o">=</span> <span class="n">calciteConnection</span><span class="o">.</span><span class="na">createStatement</span><span class="o">();</span>
+<span class="nc">ResultSet</span> <span class="n">resultSet</span> <span class="o">=</span> <span class="n">statement</span><span class="o">.</span><span class="na">executeQuery</span><span class="o">(</span>
     <span class="s">"select d.deptno, min(e.empid)\n"</span>
     <span class="o">+</span> <span class="s">"from hr.emps as e\n"</span>
     <span class="o">+</span> <span class="s">"join hr.depts as d\n"</span>
@@ -121,32 +121,32 @@
 <span class="n">connection</span><span class="o">.</span><span class="na">close</span><span class="o">();</span></code></pre></figure>
 
 <p>Where is the database? There is no database. The connection is
-completely empty until <code class="highlighter-rouge">new ReflectiveSchema</code> registers a Java
-object as a schema and its collection fields <code class="highlighter-rouge">emps</code> and <code class="highlighter-rouge">depts</code> as
+completely empty until <code class="language-plaintext highlighter-rouge">new ReflectiveSchema</code> registers a Java
+object as a schema and its collection fields <code class="language-plaintext highlighter-rouge">emps</code> and <code class="language-plaintext highlighter-rouge">depts</code> as
 tables.</p>
 
 <p>Calcite does not want to own data; it does not even have a favorite data
 format. This example used in-memory data sets, and processed them
-using operators such as <code class="highlighter-rouge">groupBy</code> and <code class="highlighter-rouge">join</code> from the linq4j
+using operators such as <code class="language-plaintext highlighter-rouge">groupBy</code> and <code class="language-plaintext highlighter-rouge">join</code> from the linq4j
 library. But Calcite can also process data in other data formats, such
 as JDBC. In the first example, replace</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="n">Schema</span> <span class="n">schema</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ReflectiveSchema</span><span class="o">(</span><span class="k">new</span> <span class="n">HrSchema</span><span class="o">());</span></code></pre></figure>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">Schema</span> <span class="n">schema</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">ReflectiveSchema</span><span class="o">(</span><span class="k">new</span> <span class="nc">HrSchema</span><span class="o">());</span></code></pre></figure>
 
 <p>with</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="n">Class</span><span class="o">.</span><span class="na">forName</span><span class="o">(</span><span class="s">"com.mysql.jdbc.Driver"</span><span class="o">);</span>
-<span class="n">BasicDataSource</span> <span class="n">dataSource</span> <span class="o">=</span> <span class="k">new</span> <span class="n">BasicDataSource</span><span class="o">();</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">Class</span><span class="o">.</span><span class="na">forName</span><span class="o">(</span><span class="s">"com.mysql.jdbc.Driver"</span><span class="o">);</span>
+<span class="nc">BasicDataSource</span> <span class="n">dataSource</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">BasicDataSource</span><span class="o">();</span>
 <span class="n">dataSource</span><span class="o">.</span><span class="na">setUrl</span><span class="o">(</span><span class="s">"jdbc:mysql://localhost"</span><span class="o">);</span>
 <span class="n">dataSource</span><span class="o">.</span><span class="na">setUsername</span><span class="o">(</span><span class="s">"username"</span><span class="o">);</span>
 <span class="n">dataSource</span><span class="o">.</span><span class="na">setPassword</span><span class="o">(</span><span class="s">"password"</span><span class="o">);</span>
-<span class="n">Schema</span> <span class="n">schema</span> <span class="o">=</span> <span class="n">JdbcSchema</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">rootSchema</span><span class="o">,</span> <span class="s">"hr"</span><span class="o">,</span> <span class="n">dataSource</span><span class="o">,</span>
+<span class="nc">Schema</span> <span class="n">schema</span> <span class="o">=</span> <span class="nc">JdbcSchema</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">rootSchema</span><span class="o">,</span> <span class="s">"hr"</span><span class="o">,</span> <span class="n">dataSource</span><span class="o">,</span>
     <span class="kc">null</span><span class="o">,</span> <span class="s">"name"</span><span class="o">);</span></code></pre></figure>
 
 <p>and Calcite will execute the same query in JDBC. To the application,
 the data and API are the same, but behind the scenes the
 implementation is very different. Calcite uses optimizer rules to push
-the <code class="highlighter-rouge">JOIN</code> and <code class="highlighter-rouge">GROUP BY</code> operations to the source database.</p>
+the <code class="language-plaintext highlighter-rouge">JOIN</code> and <code class="language-plaintext highlighter-rouge">GROUP BY</code> operations to the source database.</p>
 
 <p>In-memory and JDBC are just two familiar examples. Calcite can handle
 any data source and data format. To add a data source, you need to
@@ -472,7 +472,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/innodb_adapter.html b/docs/innodb_adapter.html
index 7f2c61a..567a1c9 100644
--- a/docs/innodb_adapter.html
+++ b/docs/innodb_adapter.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>InnoDB adapter</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -86,12 +86,12 @@
 
 <p>Calcite’s InnoDB adapter allows you to query the data based on InnoDB
 data files directly as illustrated below, data files are also known as
-<code class="highlighter-rouge">.ibd</code> files. It leverages the
+<code class="language-plaintext highlighter-rouge">.ibd</code> files. It leverages the
 <a href="https://github.com/alibaba/innodb-java-reader">innodb-java-reader</a>. This
 adapter is different from JDBC adapter which maps a schema in a JDBC
 data source and requires a MySQL server to serve response.</p>
 
-<p>With <code class="highlighter-rouge">.ibd</code> files and the corresponding DDLs, the InnoDB adapter acts
+<p>With <code class="language-plaintext highlighter-rouge">.ibd</code> files and the corresponding DDLs, the InnoDB adapter acts
 as a simple “MySQL server”: it accepts SQL queries and attempts to
 compile each query based on InnoDB file access APIs provided by
 <a href="https://github.com/alibaba/innodb-java-reader">innodb-java-reader</a>.
@@ -129,22 +129,22 @@
 a MySQL “scott” database:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"scott"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="nl">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"scott"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"scott"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.innodb.InnodbSchemaFactory"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"sqlFilePath"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="s2">"/path/scott.sql"</span><span class="w"> </span><span class="p">],</span><span class="w">
-        </span><span class="s2">"ibdDataFileBasePath"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/usr/local/mysql/data/scott"</span><span class="w">
+      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"scott"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.innodb.InnodbSchemaFactory"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="nl">"sqlFilePath"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="s2">"/path/scott.sql"</span><span class="w"> </span><span class="p">],</span><span class="w">
+        </span><span class="nl">"ibdDataFileBasePath"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/usr/local/mysql/data/scott"</span><span class="w">
       </span><span class="p">}</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">sqlFilePath</code> is a list of DDL files, you can generate table
+<p><code class="language-plaintext highlighter-rouge">sqlFilePath</code> is a list of DDL files, you can generate table
 definitions by executing `mysqldump -d -u<username> -p<password> -h</password></username></p>
 <hostname> <dbname>` in command-line.
 
@@ -739,7 +739,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/kafka_adapter.html b/docs/kafka_adapter.html
index fb8821c..ff411d3 100644
--- a/docs/kafka_adapter.html
+++ b/docs/kafka_adapter.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Kafka adapter</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -91,23 +91,23 @@
 <p>A basic example of a model file is given below:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"KAFKA"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="nl">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"KAFKA"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"KAFKA"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"tables"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"KAFKA"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"tables"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
         </span><span class="p">{</span><span class="w">
-          </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"TABLE_NAME"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.kafka.KafkaTableFactory"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"row.converter"</span><span class="p">:</span><span class="w"> </span><span class="s2">"com.example.CustKafkaRowConverter"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-            </span><span class="s2">"bootstrap.servers"</span><span class="p">:</span><span class="w"> </span><span class="s2">"host1:port,host2:port"</span><span class="p">,</span><span class="w">
-            </span><span class="s2">"topic.name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"kafka.topic.name"</span><span class="p">,</span><span class="w">
-            </span><span class="s2">"consumer.params"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-              </span><span class="s2">"key.deserializer"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.kafka.common.serialization.ByteArrayDeserializer"</span><span class="p">,</span><span class="w">
-              </span><span class="s2">"value.deserializer"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.kafka.common.serialization.ByteArrayDeserializer"</span><span class="w">
+          </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"TABLE_NAME"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.kafka.KafkaTableFactory"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"row.converter"</span><span class="p">:</span><span class="w"> </span><span class="s2">"com.example.CustKafkaRowConverter"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+            </span><span class="nl">"bootstrap.servers"</span><span class="p">:</span><span class="w"> </span><span class="s2">"host1:port,host2:port"</span><span class="p">,</span><span class="w">
+            </span><span class="nl">"topic.name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"kafka.topic.name"</span><span class="p">,</span><span class="w">
+            </span><span class="nl">"consumer.params"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+              </span><span class="nl">"key.deserializer"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.kafka.common.serialization.ByteArrayDeserializer"</span><span class="p">,</span><span class="w">
+              </span><span class="nl">"value.deserializer"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.kafka.common.serialization.ByteArrayDeserializer"</span><span class="w">
             </span><span class="p">}</span><span class="w">
           </span><span class="p">}</span><span class="w">
         </span><span class="p">}</span><span class="w">
@@ -121,22 +121,22 @@
 <ol>
   <li>
     <p>As Kafka message is schemaless, a <a href="/javadocAggregate/org/apache/calcite/adapter/kafka/KafkaRowConverter.html">KafkaRowConverter</a>
- is required to specify row schema explicitly(with parameter <code class="highlighter-rouge">row.converter</code>), and
+ is required to specify row schema explicitly(with parameter <code class="language-plaintext highlighter-rouge">row.converter</code>), and
  how to decode Kafka message to Calcite row. <a href="/javadocAggregate/org/apache/calcite/adapter/kafka/KafkaRowConverterImpl.html">KafkaRowConverterImpl</a>
  is used if not provided;</p>
   </li>
   <li>
-    <p>More consumer settings can be added in parameter <code class="highlighter-rouge">consumer.params</code>;</p>
+    <p>More consumer settings can be added in parameter <code class="language-plaintext highlighter-rouge">consumer.params</code>;</p>
   </li>
 </ol>
 
-<p>Assuming this file is stored as <code class="highlighter-rouge">kafka.model.json</code>, you can connect to Kafka via
-<a href="https://github.com/julianhyde/sqlline"><code class="highlighter-rouge">sqlline</code></a> as follows:</p>
+<p>Assuming this file is stored as <code class="language-plaintext highlighter-rouge">kafka.model.json</code>, you can connect to Kafka via
+<a href="https://github.com/julianhyde/sqlline"><code class="language-plaintext highlighter-rouge">sqlline</code></a> as follows:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlline
 sqlline&gt; <span class="o">!</span>connect jdbc:calcite:model<span class="o">=</span>kafka.model.json admin admin</code></pre></figure>
 
-<p><code class="highlighter-rouge">sqlline</code> will now accept SQL queries which access your Kafka topics.</p>
+<p><code class="language-plaintext highlighter-rouge">sqlline</code> will now accept SQL queries which access your Kafka topics.</p>
 
 <p>With the Kafka table configured in the above model. We can run a simple query to fetch messages:</p>
 
@@ -151,7 +151,7 @@
 
 <p>Kafka table is a streaming table, which runs continuously.</p>
 
-<p>If you want the query to end quickly, add <code class="highlighter-rouge">LIMIT</code> as follows:</p>
+<p>If you want the query to end quickly, add <code class="language-plaintext highlighter-rouge">LIMIT</code> as follows:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">sqlline</span><span class="o">&gt;</span> <span class="k">SELECT</span> <span class="n">STREAM</span> <span class="o">*</span>
          <span class="k">FROM</span> <span class="n">KAFKA</span><span class="p">.</span><span class="k">TABLE_NAME</span>
@@ -467,7 +467,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/lattice.html b/docs/lattice.html
index c9783c9..ea94170 100644
--- a/docs/lattice.html
+++ b/docs/lattice.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Lattices</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -193,38 +193,38 @@
 <p>Create a model that includes a lattice:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
-    </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"jdbc"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"jdbcUser"</span><span class="p">:</span><span class="w"> </span><span class="s2">"FOODMART"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"jdbcPassword"</span><span class="p">:</span><span class="w"> </span><span class="s2">"FOODMART"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"jdbcUrl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"jdbc:hsqldb:res:foodmart"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"jdbcSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="w">
+  </span><span class="nl">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
+    </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"jdbc"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"jdbcUser"</span><span class="p">:</span><span class="w"> </span><span class="s2">"FOODMART"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"jdbcPassword"</span><span class="p">:</span><span class="w"> </span><span class="s2">"FOODMART"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"jdbcUrl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"jdbc:hsqldb:res:foodmart"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"jdbcSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="w">
   </span><span class="p">},</span><span class="w">
   </span><span class="p">{</span><span class="w">
-    </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"adhoc"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"lattices"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"star"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"sql"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+    </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"adhoc"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"lattices"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
+      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"star"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"sql"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
         </span><span class="s2">"select 1 from </span><span class="se">\"</span><span class="s2">foodmart</span><span class="se">\"</span><span class="s2">.</span><span class="se">\"</span><span class="s2">sales_fact_1997</span><span class="se">\"</span><span class="s2"> as </span><span class="se">\"</span><span class="s2">s</span><span class="se">\"</span><span class="s2">"</span><span class="p">,</span><span class="w">
         </span><span class="s2">"join </span><span class="se">\"</span><span class="s2">foodmart</span><span class="se">\"</span><span class="s2">.</span><span class="se">\"</span><span class="s2">product</span><span class="se">\"</span><span class="s2"> as </span><span class="se">\"</span><span class="s2">p</span><span class="se">\"</span><span class="s2"> using (</span><span class="se">\"</span><span class="s2">product_id</span><span class="se">\"</span><span class="s2">)"</span><span class="p">,</span><span class="w">
         </span><span class="s2">"join </span><span class="se">\"</span><span class="s2">foodmart</span><span class="se">\"</span><span class="s2">.</span><span class="se">\"</span><span class="s2">time_by_day</span><span class="se">\"</span><span class="s2"> as </span><span class="se">\"</span><span class="s2">t</span><span class="se">\"</span><span class="s2"> using (</span><span class="se">\"</span><span class="s2">time_id</span><span class="se">\"</span><span class="s2">)"</span><span class="p">,</span><span class="w">
         </span><span class="s2">"join </span><span class="se">\"</span><span class="s2">foodmart</span><span class="se">\"</span><span class="s2">.</span><span class="se">\"</span><span class="s2">product_class</span><span class="se">\"</span><span class="s2"> as </span><span class="se">\"</span><span class="s2">pc</span><span class="se">\"</span><span class="s2"> on </span><span class="se">\"</span><span class="s2">p</span><span class="se">\"</span><span class="s2">.</span><span class="se">\"</span><span class="s2">product_class_id</span><span class="se">\"</span><span class="s2"> = </span><span class="se">\"</span><span class="s2">pc</span><span class="se">\"</span><span class="s2">.</span><span class="se">\"</span><span class="s2">product_class_id</span><span class="se">\"</span><span class="s2">"</span><span class="w">
       </span><span class="p">],</span><span class="w">
-      </span><span class="s2">"auto"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"algorithm"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"rowCountEstimate"</span><span class="p">:</span><span class="w"> </span><span class="mi">86837</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"defaultMeasures"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"agg"</span><span class="p">:</span><span class="w"> </span><span class="s2">"count"</span><span class="w">
+      </span><span class="nl">"auto"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"algorithm"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"rowCountEstimate"</span><span class="p">:</span><span class="w"> </span><span class="mi">86837</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"defaultMeasures"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="nl">"agg"</span><span class="p">:</span><span class="w"> </span><span class="s2">"count"</span><span class="w">
       </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
     </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
   </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <p>This is a cut-down version of
-<a href="https://github.com/apache/calcite/blob/master/core/src/test/resources/hsqldb-foodmart-lattice-model.json">hsqldb-foodmart-lattice-model.json</a>
+<a href="https://github.com/apache/calcite/blob/main/core/src/test/resources/hsqldb-foodmart-lattice-model.json">hsqldb-foodmart-lattice-model.json</a>
 that does not include the “tiles” attribute, because we are going to generate
 tiles automatically. Let’s log into sqlline and connect to this schema:</p>
 
@@ -265,14 +265,14 @@
 <span class="o">+</span><span class="c1">--------------------------------------------------------------------------------+</span>
 <span class="o">|</span> <span class="n">PLAN</span>                                                                           <span class="o">|</span>
 <span class="o">+</span><span class="c1">--------------------------------------------------------------------------------+</span>
-<span class="o">|</span> <span class="n">EnumerableCalc</span><span class="p">(</span><span class="n">expr</span><span class="o">#</span><span class="mi">0</span><span class="p">..</span><span class="mi">2</span><span class="o">=</span><span class="p">[</span><span class="err">{</span><span class="n">inputs</span><span class="err">}</span><span class="p">],</span> <span class="n">the_year</span><span class="o">=</span><span class="p">[</span><span class="err">$</span><span class="n">t1</span><span class="p">],</span> <span class="n">the_month</span><span class="o">=</span><span class="p">[</span><span class="err">$</span><span class="n">t0</span><span class="p">],</span> <span class="k">C</span><span class="o">=</span><span class="p">[</span><span class="err">$</span><span class="n">t2</span><span class="p">])</span> <span class="o">|</span>
-<span class="o">|</span>   <span class="n">EnumerableAggregate</span><span class="p">(</span><span class="k">group</span><span class="o">=</span><span class="p">[</span><span class="err">{</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="err">}</span><span class="p">],</span> <span class="k">C</span><span class="o">=</span><span class="p">[</span><span class="err">$</span><span class="n">SUM0</span><span class="p">(</span><span class="err">$</span><span class="mi">7</span><span class="p">)])</span>                           <span class="o">|</span>
-<span class="o">|</span>     <span class="n">EnumerableTableScan</span><span class="p">(</span><span class="k">table</span><span class="o">=</span><span class="p">[[</span><span class="n">adhoc</span><span class="p">,</span> <span class="n">m</span><span class="err">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span><span class="p">]])</span>        <span class="o">|</span>
+<span class="o">|</span> <span class="n">EnumerableCalc</span><span class="p">(</span><span class="n">expr</span><span class="o">#</span><span class="mi">0</span><span class="p">..</span><span class="mi">2</span><span class="o">=</span><span class="p">[{</span><span class="n">inputs</span><span class="p">}],</span> <span class="n">the_year</span><span class="o">=</span><span class="p">[</span><span class="err">$</span><span class="n">t1</span><span class="p">],</span> <span class="n">the_month</span><span class="o">=</span><span class="p">[</span><span class="err">$</span><span class="n">t0</span><span class="p">],</span> <span class="k">C</span><span class="o">=</span><span class="p">[</span><span class="err">$</span><span class="n">t2</span><span class="p">])</span> <span class="o">|</span>
+<span class="o">|</span>   <span class="n">EnumerableAggregate</span><span class="p">(</span><span class="k">group</span><span class="o">=</span><span class="p">[{</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">}],</span> <span class="k">C</span><span class="o">=</span><span class="p">[</span><span class="err">$</span><span class="n">SUM0</span><span class="p">(</span><span class="err">$</span><span class="mi">7</span><span class="p">)])</span>                           <span class="o">|</span>
+<span class="o">|</span>     <span class="n">EnumerableTableScan</span><span class="p">(</span><span class="k">table</span><span class="o">=</span><span class="p">[[</span><span class="n">adhoc</span><span class="p">,</span> <span class="n">m</span><span class="p">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="p">}]])</span>        <span class="o">|</span>
 <span class="o">+</span><span class="c1">--------------------------------------------------------------------------------+</span></code></pre></figure>
 
 <p>The query gives the right answer, but the plan is somewhat surprising.
-It doesn’t read the <code class="highlighter-rouge">sales_fact_1997</code> or <code class="highlighter-rouge">time_by_day</code> tables, but instead
-reads from a table called <code class="highlighter-rouge">m{16, 17, 27, 31, 32, 36, 37}</code>. This is one of the
+It doesn’t read the <code class="language-plaintext highlighter-rouge">sales_fact_1997</code> or <code class="language-plaintext highlighter-rouge">time_by_day</code> tables, but instead
+reads from a table called <code class="language-plaintext highlighter-rouge">m{16, 17, 27, 31, 32, 36, 37}</code>. This is one of the
 tiles created at the start of the connection.</p>
 
 <p>It’s a real table, and you can even query it directly. It has only 120 rows,
@@ -282,14 +282,14 @@
 <span class="o">+</span><span class="c1">-------------+-------------------------------+--------------------+-----------+-----------------+</span>
 <span class="o">|</span> <span class="n">TABLE_SCHEM</span> <span class="o">|</span> <span class="k">TABLE_NAME</span>                    <span class="o">|</span> <span class="k">COLUMN_NAME</span>        <span class="o">|</span> <span class="n">DATA_TYPE</span> <span class="o">|</span> <span class="n">TYPE_NAME</span>       <span class="o">|</span>
 <span class="o">+</span><span class="c1">-------------+-------------------------------+--------------------+-----------+-----------------+</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span> <span class="o">|</span> <span class="n">recyclable_package</span> <span class="o">|</span> <span class="mi">16</span>        <span class="o">|</span> <span class="n">BOOLEAN</span>         <span class="o">|</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span> <span class="o">|</span> <span class="n">low_fat</span>            <span class="o">|</span> <span class="mi">16</span>        <span class="o">|</span> <span class="n">BOOLEAN</span>         <span class="o">|</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span> <span class="o">|</span> <span class="n">product_family</span>     <span class="o">|</span> <span class="mi">12</span>        <span class="o">|</span> <span class="n">VARCHAR</span><span class="p">(</span><span class="mi">30</span><span class="p">)</span>     <span class="o">|</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span> <span class="o">|</span> <span class="n">the_month</span>          <span class="o">|</span> <span class="mi">12</span>        <span class="o">|</span> <span class="n">VARCHAR</span><span class="p">(</span><span class="mi">30</span><span class="p">)</span>     <span class="o">|</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span> <span class="o">|</span> <span class="n">the_year</span>           <span class="o">|</span> <span class="mi">5</span>         <span class="o">|</span> <span class="n">SMALLINT</span>        <span class="o">|</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span> <span class="o">|</span> <span class="n">quarter</span>            <span class="o">|</span> <span class="mi">12</span>        <span class="o">|</span> <span class="n">VARCHAR</span><span class="p">(</span><span class="mi">30</span><span class="p">)</span>     <span class="o">|</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span> <span class="o">|</span> <span class="n">fiscal_period</span>      <span class="o">|</span> <span class="mi">12</span>        <span class="o">|</span> <span class="n">VARCHAR</span><span class="p">(</span><span class="mi">30</span><span class="p">)</span>     <span class="o">|</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span> <span class="o">|</span> <span class="n">m0</span>                 <span class="o">|</span> <span class="o">-</span><span class="mi">5</span>        <span class="o">|</span> <span class="n">BIGINT</span> <span class="k">NOT</span> <span class="k">NULL</span> <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span> <span class="o">|</span> <span class="n">recyclable_package</span> <span class="o">|</span> <span class="mi">16</span>        <span class="o">|</span> <span class="nb">BOOLEAN</span>         <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span> <span class="o">|</span> <span class="n">low_fat</span>            <span class="o">|</span> <span class="mi">16</span>        <span class="o">|</span> <span class="nb">BOOLEAN</span>         <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span> <span class="o">|</span> <span class="n">product_family</span>     <span class="o">|</span> <span class="mi">12</span>        <span class="o">|</span> <span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">30</span><span class="p">)</span>     <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span> <span class="o">|</span> <span class="n">the_month</span>          <span class="o">|</span> <span class="mi">12</span>        <span class="o">|</span> <span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">30</span><span class="p">)</span>     <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span> <span class="o">|</span> <span class="n">the_year</span>           <span class="o">|</span> <span class="mi">5</span>         <span class="o">|</span> <span class="nb">SMALLINT</span>        <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span> <span class="o">|</span> <span class="n">quarter</span>            <span class="o">|</span> <span class="mi">12</span>        <span class="o">|</span> <span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">30</span><span class="p">)</span>     <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span> <span class="o">|</span> <span class="n">fiscal_period</span>      <span class="o">|</span> <span class="mi">12</span>        <span class="o">|</span> <span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">30</span><span class="p">)</span>     <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span> <span class="o">|</span> <span class="n">m0</span>                 <span class="o">|</span> <span class="o">-</span><span class="mi">5</span>        <span class="o">|</span> <span class="nb">BIGINT</span> <span class="k">NOT</span> <span class="k">NULL</span> <span class="o">|</span>
 <span class="o">+</span><span class="c1">-------------+-------------------------------+--------------------+-----------+-----------------+</span>
 
 <span class="n">sqlline</span><span class="o">&gt;</span> <span class="k">select</span> <span class="k">count</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="k">as</span> <span class="k">c</span>
@@ -302,19 +302,19 @@
 <span class="mi">1</span> <span class="k">row</span> <span class="n">selected</span> <span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">12</span> <span class="n">seconds</span><span class="p">)</span></code></pre></figure>
 
 <p>Let’s list the tables, and you will see several more tiles. There are also
-tables of the <code class="highlighter-rouge">foodmart</code> schema, and the system tables <code class="highlighter-rouge">TABLES</code> and <code class="highlighter-rouge">COLUMNS</code>,
-and the lattice itself, which appears as a table called <code class="highlighter-rouge">star</code>.</p>
+tables of the <code class="language-plaintext highlighter-rouge">foodmart</code> schema, and the system tables <code class="language-plaintext highlighter-rouge">TABLES</code> and <code class="language-plaintext highlighter-rouge">COLUMNS</code>,
+and the lattice itself, which appears as a table called <code class="language-plaintext highlighter-rouge">star</code>.</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">sqlline</span><span class="o">&gt;</span> <span class="o">!</span><span class="n">tables</span>
 <span class="o">+</span><span class="c1">-------------+-------------------------------+--------------+</span>
 <span class="o">|</span> <span class="n">TABLE_SCHEM</span> <span class="o">|</span> <span class="k">TABLE_NAME</span>                    <span class="o">|</span> <span class="n">TABLE_TYPE</span>   <span class="o">|</span>
 <span class="o">+</span><span class="c1">-------------+-------------------------------+--------------+</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">18</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span>         <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">19</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span> <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">4</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span>       <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">4</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span>       <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">7</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">19</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span>      <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
-<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="err">{</span><span class="mi">7</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">37</span><span class="err">}</span>  <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">18</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span>         <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">19</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">36</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span> <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">4</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span>       <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">4</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span>       <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">7</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">19</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span>      <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
+<span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">m</span><span class="p">{</span><span class="mi">7</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">37</span><span class="p">}</span>  <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
 <span class="o">|</span> <span class="n">adhoc</span>       <span class="o">|</span> <span class="n">star</span>                          <span class="o">|</span> <span class="n">STAR</span>         <span class="o">|</span>
 <span class="o">|</span> <span class="n">foodmart</span>    <span class="o">|</span> <span class="n">customer</span>                      <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
 <span class="o">|</span> <span class="n">foodmart</span>    <span class="o">|</span> <span class="n">product</span>                       <span class="o">|</span> <span class="k">TABLE</span>        <span class="o">|</span>
@@ -331,8 +331,8 @@
 <h2 id="statistics">Statistics</h2>
 
 <p>The algorithm that chooses which tiles of a lattice to materialize depends on
-a lot of statistics. It needs to know <code class="highlighter-rouge">select count(distinct a, b, c) from star</code>
-for each combination of columns (<code class="highlighter-rouge">a, b, c</code>) it is considering materializing. As
+a lot of statistics. It needs to know <code class="language-plaintext highlighter-rouge">select count(distinct a, b, c) from star</code>
+for each combination of columns (<code class="language-plaintext highlighter-rouge">a, b, c</code>) it is considering materializing. As
 a result the algorithm takes a long time on schemas with many rows and columns.</p>
 
 <p>We are working on a
@@ -345,26 +345,26 @@
 But what if you have not defined a lattice?</p>
 
 <p>Enter the Lattice Suggester, which builds lattices based on incoming queries.
-Create a model with a schema that has <code class="highlighter-rouge">"autoLattice": true</code>:</p>
+Create a model with a schema that has <code class="language-plaintext highlighter-rouge">"autoLattice": true</code>:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
-    </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"jdbc"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"jdbcUser"</span><span class="p">:</span><span class="w"> </span><span class="s2">"FOODMART"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"jdbcPassword"</span><span class="p">:</span><span class="w"> </span><span class="s2">"FOODMART"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"jdbcUrl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"jdbc:hsqldb:res:foodmart"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"jdbcSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="w">
+  </span><span class="nl">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
+    </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"jdbc"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"jdbcUser"</span><span class="p">:</span><span class="w"> </span><span class="s2">"FOODMART"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"jdbcPassword"</span><span class="p">:</span><span class="w"> </span><span class="s2">"FOODMART"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"jdbcUrl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"jdbc:hsqldb:res:foodmart"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"jdbcSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="w">
   </span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="w">
-    </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"adhoc"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"autoLattice"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
+    </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"adhoc"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"autoLattice"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
   </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <p>This is a cut-down version of
-<a href="https://github.com/apache/calcite/blob/master/core/src/test/resources/hsqldb-foodmart-lattice-model.json">hsqldb-foodmart-lattice-model.json</a></p>
+<a href="https://github.com/apache/calcite/blob/main/core/src/test/resources/hsqldb-foodmart-lattice-model.json">hsqldb-foodmart-lattice-model.json</a></p>
 
 <p>As you run queries, Calcite will start to build lattices based on those
 queries. Each lattice is based on a particular fact table. As it sees more
@@ -702,7 +702,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/materialized_views.html b/docs/materialized_views.html
index 8743c34..cbb7dbe 100644
--- a/docs/materialized_views.html
+++ b/docs/materialized_views.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Materialized Views</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -133,20 +133,20 @@
 <h4 id="substitution-via-rules-transformation">Substitution via rules transformation</h4>
 
 <p>The first approach is based on view substitution.
-<code class="highlighter-rouge">SubstitutionVisitor</code> and its extension <code class="highlighter-rouge">MaterializedViewSubstitutionVisitor</code> aim to substitute part of the relational algebra tree with an equivalent expression which makes use of a materialized view. The scan over the materialized view and the materialized view definition plan are registered with the planner. Afterwards, transformation rules that try to unify expressions in the plan are triggered. Expressions do not need to be equivalent to be replaced: the visitor might add a residual predicate on top of the expression if needed.</p>
+<code class="language-plaintext highlighter-rouge">SubstitutionVisitor</code> and its extension <code class="language-plaintext highlighter-rouge">MaterializedViewSubstitutionVisitor</code> aim to substitute part of the relational algebra tree with an equivalent expression which makes use of a materialized view. The scan over the materialized view and the materialized view definition plan are registered with the planner. Afterwards, transformation rules that try to unify expressions in the plan are triggered. Expressions do not need to be equivalent to be replaced: the visitor might add a residual predicate on top of the expression if needed.</p>
 
-<p>The following example is taken from the documentation of <code class="highlighter-rouge">SubstitutionVisitor</code>:</p>
+<p>The following example is taken from the documentation of <code class="language-plaintext highlighter-rouge">SubstitutionVisitor</code>:</p>
 
 <ul>
-  <li>Query: <code class="highlighter-rouge">SELECT a, c FROM t WHERE x = 5 AND b = 4</code>
+  <li>Query: <code class="language-plaintext highlighter-rouge">SELECT a, c FROM t WHERE x = 5 AND b = 4</code>
 </li>
-  <li>Target (materialized view definition): <code class="highlighter-rouge">SELECT a, b, c FROM t WHERE x = 5</code>
+  <li>Target (materialized view definition): <code class="language-plaintext highlighter-rouge">SELECT a, b, c FROM t WHERE x = 5</code>
 </li>
-  <li>Result: <code class="highlighter-rouge">SELECT a, c FROM mv WHERE b = 4</code>
+  <li>Result: <code class="language-plaintext highlighter-rouge">SELECT a, c FROM mv WHERE b = 4</code>
 </li>
 </ul>
 
-<p>Note that <code class="highlighter-rouge">result</code> uses the materialized view table <code class="highlighter-rouge">mv</code> and a simplified condition <code class="highlighter-rouge">b = 4</code>.</p>
+<p>Note that <code class="language-plaintext highlighter-rouge">result</code> uses the materialized view table <code class="language-plaintext highlighter-rouge">mv</code> and a simplified condition <code class="language-plaintext highlighter-rouge">b = 4</code>.</p>
 
 <p>While this approach can accomplish a large number of rewritings, it has some limitations. Since the rule relies on transformation rules to create the equivalence between expressions in the query and the materialized view, it might need to enumerate exhaustively all possible equivalent rewritings for a given expression to find a materialized view substitution. However, this is not scalable in the presence of complex
 views, e.g., views with an arbitrary number of join operators.</p>
@@ -155,7 +155,7 @@
 
 <p>In turn, an alternative rule that attempts to match queries to views by extracting some structural information about the expression to replace has been proposed.</p>
 
-<p><code class="highlighter-rouge">MaterializedViewRule</code> builds on the ideas presented in [<a href="#ref-gl01">GL01</a>] and introduces some additional extensions.
+<p><code class="language-plaintext highlighter-rouge">MaterializedViewRule</code> builds on the ideas presented in [<a href="#ref-gl01">GL01</a>] and introduces some additional extensions.
 The rule can rewrite expressions containing arbitrary chains of Join, Filter, and Project operators.
 Additionally, the rule can rewrite expressions rooted at an Aggregate operator, rolling aggregations up if necessary. In turn, it can also produce rewritings using Union operators if the query can be partially answered from a view.</p>
 
@@ -163,24 +163,24 @@
 
 <h5 id="rewriting-coverage">Rewriting coverage</h5>
 
-<p>Let us illustrate with some examples the coverage of the view rewriting algorithm implemented in <code class="highlighter-rouge">MaterializedViewRule</code>. The examples are based on the following database schema.</p>
+<p>Let us illustrate with some examples the coverage of the view rewriting algorithm implemented in <code class="language-plaintext highlighter-rouge">MaterializedViewRule</code>. The examples are based on the following database schema.</p>
 
 <div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">depts</span><span class="p">(</span>
-  <span class="n">deptno</span> <span class="n">INT</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
-  <span class="n">deptname</span> <span class="n">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">),</span>
+  <span class="n">deptno</span> <span class="nb">INT</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
+  <span class="n">deptname</span> <span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">),</span>
   <span class="k">PRIMARY</span> <span class="k">KEY</span> <span class="p">(</span><span class="n">deptno</span><span class="p">)</span>
 <span class="p">);</span>
 <span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">locations</span><span class="p">(</span>
-  <span class="n">locationid</span> <span class="n">INT</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
-  <span class="k">state</span> <span class="n">CHAR</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span>
+  <span class="n">locationid</span> <span class="nb">INT</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
+  <span class="k">state</span> <span class="nb">CHAR</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span>
   <span class="k">PRIMARY</span> <span class="k">KEY</span> <span class="p">(</span><span class="n">locationid</span><span class="p">)</span>
 <span class="p">);</span>
 <span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">emps</span><span class="p">(</span>
-  <span class="n">empid</span> <span class="n">INT</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
-  <span class="n">deptno</span> <span class="n">INT</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
-  <span class="n">locationid</span> <span class="n">INT</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
-  <span class="n">empname</span> <span class="n">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
-  <span class="n">salary</span> <span class="n">DECIMAL</span> <span class="p">(</span><span class="mi">18</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span>
+  <span class="n">empid</span> <span class="nb">INT</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
+  <span class="n">deptno</span> <span class="nb">INT</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
+  <span class="n">locationid</span> <span class="nb">INT</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
+  <span class="n">empname</span> <span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
+  <span class="n">salary</span> <span class="nb">DECIMAL</span> <span class="p">(</span><span class="mi">18</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span>
   <span class="k">PRIMARY</span> <span class="k">KEY</span> <span class="p">(</span><span class="n">empid</span><span class="p">),</span>
   <span class="k">FOREIGN</span> <span class="k">KEY</span> <span class="p">(</span><span class="n">deptno</span><span class="p">)</span> <span class="k">REFERENCES</span> <span class="n">depts</span><span class="p">(</span><span class="n">deptno</span><span class="p">),</span>
   <span class="k">FOREIGN</span> <span class="k">KEY</span> <span class="p">(</span><span class="n">locationid</span><span class="p">)</span> <span class="k">REFERENCES</span> <span class="n">locations</span><span class="p">(</span><span class="n">locationid</span><span class="p">)</span>
@@ -731,7 +731,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/model.html b/docs/model.html
index 8f970f5..53e61e4 100644
--- a/docs/model.html
+++ b/docs/model.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>JSON/YAML models</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -81,7 +81,7 @@
 <p>Calcite models can be represented as JSON/YAML files.
 This page describes the structure of those files.</p>
 
-<p>Models can also be built programmatically using the <code class="highlighter-rouge">Schema</code> SPI.</p>
+<p>Models can also be built programmatically using the <code class="language-plaintext highlighter-rouge">Schema</code> SPI.</p>
 
 <h2 id="elements">Elements</h2>
 
@@ -90,37 +90,37 @@
 <h4 id="json">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">version</span><span class="p">:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
-  </span><span class="err">defaultSchema</span><span class="p">:</span><span class="w"> </span><span class="err">'mongo'</span><span class="p">,</span><span class="w">
-  </span><span class="err">schemas</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">Schema...</span><span class="w"> </span><span class="p">]</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span class="err">'mongo'</span><span class="p">,</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">Schema...</span><span class="w"> </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <h4 id="yaml">YAML</h4>
 
-<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="na">version</span><span class="pi">:</span> <span class="s">1.0</span>
+<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="na">version</span><span class="pi">:</span> <span class="m">1.0</span>
 <span class="na">defaultSchema</span><span class="pi">:</span> <span class="s">mongo</span>
 <span class="na">schemas</span><span class="pi">:</span>
 <span class="pi">-</span> <span class="pi">[</span><span class="nv">Schema...</span><span class="pi">]</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">version</code> (required string) must have value <code class="highlighter-rouge">1.0</code>.</p>
+<p><code class="language-plaintext highlighter-rouge">version</code> (required string) must have value <code class="language-plaintext highlighter-rouge">1.0</code>.</p>
 
-<p><code class="highlighter-rouge">defaultSchema</code> (optional string). If specified, it is
+<p><code class="language-plaintext highlighter-rouge">defaultSchema</code> (optional string). If specified, it is
 the name (case-sensitive) of a schema defined in this model, and will
 become the default schema for connections to Calcite that use this model.</p>
 
-<p><code class="highlighter-rouge">schemas</code> (optional list of <a href="#schema">Schema</a> elements).</p>
+<p><code class="language-plaintext highlighter-rouge">schemas</code> (optional list of <a href="#schema">Schema</a> elements).</p>
 
 <h3 id="schema">Schema</h3>
 
-<p>Occurs within <code class="highlighter-rouge">root.schemas</code>.</p>
+<p>Occurs within <code class="language-plaintext highlighter-rouge">root.schemas</code>.</p>
 
 <h4 id="json-1">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="p">,</span><span class="w">
-  </span><span class="err">path</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="err">'lib'</span><span class="p">],</span><span class="w">
-  </span><span class="err">cache</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
-  </span><span class="err">materializations</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">Materialization...</span><span class="w"> </span><span class="p">]</span><span class="w">
+  </span><span class="err">name:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="p">,</span><span class="w">
+  </span><span class="err">path:</span><span class="w"> </span><span class="p">[</span><span class="err">'lib'</span><span class="p">],</span><span class="w">
+  </span><span class="err">cache:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
+  </span><span class="err">materializations:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">Materialization...</span><span class="w"> </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <h4 id="yaml-1">YAML</h4>
@@ -132,30 +132,30 @@
 <span class="na">materializations</span><span class="pi">:</span>
 <span class="pi">-</span> <span class="pi">[</span> <span class="nv">Materialization...</span> <span class="pi">]</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">name</code> (required string) is the name of the schema.</p>
+<p><code class="language-plaintext highlighter-rouge">name</code> (required string) is the name of the schema.</p>
 
-<p><code class="highlighter-rouge">type</code> (optional string, default <code class="highlighter-rouge">map</code>) indicates sub-type. Values are:</p>
+<p><code class="language-plaintext highlighter-rouge">type</code> (optional string, default <code class="language-plaintext highlighter-rouge">map</code>) indicates sub-type. Values are:</p>
 
 <ul>
   <li>
-<code class="highlighter-rouge">map</code> for <a href="#map-schema">Map Schema</a>
+<code class="language-plaintext highlighter-rouge">map</code> for <a href="#map-schema">Map Schema</a>
 </li>
   <li>
-<code class="highlighter-rouge">custom</code> for <a href="#custom-schema">Custom Schema</a>
+<code class="language-plaintext highlighter-rouge">custom</code> for <a href="#custom-schema">Custom Schema</a>
 </li>
   <li>
-<code class="highlighter-rouge">jdbc</code> for <a href="#jdbc-schema">JDBC Schema</a>
+<code class="language-plaintext highlighter-rouge">jdbc</code> for <a href="#jdbc-schema">JDBC Schema</a>
 </li>
 </ul>
 
-<p><code class="highlighter-rouge">path</code> (optional list) is the SQL path that is used to
+<p><code class="language-plaintext highlighter-rouge">path</code> (optional list) is the SQL path that is used to
 resolve functions used in this schema. If specified it must be a list,
 and each element of the list must be either a string or a list of
 strings. For example,</p>
 
 <h4 id="json-2">JSON</h4>
 
-<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="w">  </span><span class="err">path</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">[</span><span class="err">'usr'</span><span class="p">,</span><span class="w"> </span><span class="err">'lib'</span><span class="p">],</span><span class="w"> </span><span class="err">'lib'</span><span class="w"> </span><span class="p">]</span></code></pre></figure>
+<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="w">  </span><span class="err">path:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">[</span><span class="err">'usr'</span><span class="p">,</span><span class="w"> </span><span class="err">'lib'</span><span class="p">],</span><span class="w"> </span><span class="err">'lib'</span><span class="w"> </span><span class="p">]</span></code></pre></figure>
 
 <h4 id="yaml-2">YAML</h4>
 
@@ -167,22 +167,22 @@
 schema ‘/lib’. Most schemas are at the top level, and for these you can use a
 string.</p>
 
-<p><code class="highlighter-rouge">materializations</code> (optional list of
+<p><code class="language-plaintext highlighter-rouge">materializations</code> (optional list of
 <a href="#materialization">Materialization</a>) defines the tables
 in this schema that are materializations of queries.</p>
 
-<p><code class="highlighter-rouge">cache</code> (optional boolean, default true) tells Calcite whether to
+<p><code class="language-plaintext highlighter-rouge">cache</code> (optional boolean, default true) tells Calcite whether to
 cache metadata (tables, functions and sub-schemas) generated
 by this schema.</p>
 
 <ul>
   <li>
-    <p>If <code class="highlighter-rouge">false</code>, Calcite will go back to the schema each time it needs
+    <p>If <code class="language-plaintext highlighter-rouge">false</code>, Calcite will go back to the schema each time it needs
 metadata, for example, each time it needs a list of tables in order to
 validate a query against the schema.</p>
   </li>
   <li>
-    <p>If <code class="highlighter-rouge">true</code>, Calcite will cache the metadata the first time it reads
+    <p>If <code class="language-plaintext highlighter-rouge">true</code>, Calcite will cache the metadata the first time it reads
 it. This can lead to better performance, especially if name-matching is
 case-insensitive.</p>
   </li>
@@ -190,7 +190,7 @@
 
 <p>However, it also leads to the problem of cache staleness.
 A particular schema implementation can override the
-<code class="highlighter-rouge">Schema.contentsHaveChangedSince</code> method to tell Calcite
+<code class="language-plaintext highlighter-rouge">Schema.contentsHaveChangedSince</code> method to tell Calcite
 when it should consider its cache to be out of date.</p>
 
 <p>Tables, functions, types, and sub-schemas explicitly created in a schema are
@@ -199,16 +199,16 @@
 
 <h3 id="map-schema">Map Schema</h3>
 
-<p>Like base class <a href="#schema">Schema</a>, occurs within <code class="highlighter-rouge">root.schemas</code>.</p>
+<p>Like base class <a href="#schema">Schema</a>, occurs within <code class="language-plaintext highlighter-rouge">root.schemas</code>.</p>
 
 <h4 id="json-3">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="p">,</span><span class="w">
-  </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'map'</span><span class="p">,</span><span class="w">
-  </span><span class="err">tables</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">Table...</span><span class="w"> </span><span class="p">],</span><span class="w">
-  </span><span class="err">functions</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">Function...</span><span class="w"> </span><span class="p">],</span><span class="w">
-  </span><span class="err">types</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">Type...</span><span class="w"> </span><span class="p">]</span><span class="w">
+  </span><span class="err">name:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="p">,</span><span class="w">
+  </span><span class="err">type:</span><span class="w"> </span><span class="err">'map'</span><span class="p">,</span><span class="w">
+  </span><span class="err">tables:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">Table...</span><span class="w"> </span><span class="p">],</span><span class="w">
+  </span><span class="err">functions:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">Function...</span><span class="w"> </span><span class="p">],</span><span class="w">
+  </span><span class="err">types:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">Type...</span><span class="w"> </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <h4 id="yaml-3">YAML</h4>
@@ -222,30 +222,30 @@
 <span class="na">types</span><span class="pi">:</span>
 <span class="pi">-</span> <span class="pi">[</span> <span class="nv">Type...</span> <span class="pi">]</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">name</code>, <code class="highlighter-rouge">type</code>, <code class="highlighter-rouge">path</code>, <code class="highlighter-rouge">cache</code>, <code class="highlighter-rouge">materializations</code> inherited from
+<p><code class="language-plaintext highlighter-rouge">name</code>, <code class="language-plaintext highlighter-rouge">type</code>, <code class="language-plaintext highlighter-rouge">path</code>, <code class="language-plaintext highlighter-rouge">cache</code>, <code class="language-plaintext highlighter-rouge">materializations</code> inherited from
 <a href="#schema">Schema</a>.</p>
 
-<p><code class="highlighter-rouge">tables</code> (optional list of <a href="#table">Table</a> elements)
+<p><code class="language-plaintext highlighter-rouge">tables</code> (optional list of <a href="#table">Table</a> elements)
 defines the tables in this schema.</p>
 
-<p><code class="highlighter-rouge">functions</code> (optional list of <a href="#function">Function</a> elements)
+<p><code class="language-plaintext highlighter-rouge">functions</code> (optional list of <a href="#function">Function</a> elements)
 defines the functions in this schema.</p>
 
-<p><code class="highlighter-rouge">types</code> defines the types in this schema.</p>
+<p><code class="language-plaintext highlighter-rouge">types</code> defines the types in this schema.</p>
 
 <h3 id="custom-schema">Custom Schema</h3>
 
-<p>Like base class <a href="#schema">Schema</a>, occurs within <code class="highlighter-rouge">root.schemas</code>.</p>
+<p>Like base class <a href="#schema">Schema</a>, occurs within <code class="language-plaintext highlighter-rouge">root.schemas</code>.</p>
 
 <h4 id="json-4">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'mongo'</span><span class="p">,</span><span class="w">
-  </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
-  </span><span class="err">factory</span><span class="p">:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.mongodb.MongoSchemaFactory'</span><span class="p">,</span><span class="w">
-  </span><span class="err">operand</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-    </span><span class="err">host</span><span class="p">:</span><span class="w"> </span><span class="err">'localhost'</span><span class="p">,</span><span class="w">
-    </span><span class="err">database</span><span class="p">:</span><span class="w"> </span><span class="err">'test'</span><span class="w">
+  </span><span class="err">name:</span><span class="w"> </span><span class="err">'mongo'</span><span class="p">,</span><span class="w">
+  </span><span class="err">type:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
+  </span><span class="err">factory:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.mongodb.MongoSchemaFactory'</span><span class="p">,</span><span class="w">
+  </span><span class="err">operand:</span><span class="w"> </span><span class="p">{</span><span class="w">
+    </span><span class="err">host:</span><span class="w"> </span><span class="err">'localhost'</span><span class="p">,</span><span class="w">
+    </span><span class="err">database:</span><span class="w"> </span><span class="err">'test'</span><span class="w">
   </span><span class="p">}</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
@@ -258,31 +258,31 @@
   <span class="na">host</span><span class="pi">:</span> <span class="s">localhost</span>
   <span class="na">database</span><span class="pi">:</span> <span class="s">test</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">name</code>, <code class="highlighter-rouge">type</code>, <code class="highlighter-rouge">path</code>, <code class="highlighter-rouge">cache</code>, <code class="highlighter-rouge">materializations</code> inherited from
+<p><code class="language-plaintext highlighter-rouge">name</code>, <code class="language-plaintext highlighter-rouge">type</code>, <code class="language-plaintext highlighter-rouge">path</code>, <code class="language-plaintext highlighter-rouge">cache</code>, <code class="language-plaintext highlighter-rouge">materializations</code> inherited from
 <a href="#schema">Schema</a>.</p>
 
-<p><code class="highlighter-rouge">factory</code> (required string) is the name of the factory class for this
+<p><code class="language-plaintext highlighter-rouge">factory</code> (required string) is the name of the factory class for this
 schema. Must implement interface
 <a href="/javadocAggregate/org/apache/calcite/schema/SchemaFactory.html">org.apache.calcite.schema.SchemaFactory</a>
 and have a public default constructor.</p>
 
-<p><code class="highlighter-rouge">operand</code> (optional map) contains attributes to be passed to the
+<p><code class="language-plaintext highlighter-rouge">operand</code> (optional map) contains attributes to be passed to the
 factory.</p>
 
 <h3 id="jdbc-schema">JDBC Schema</h3>
 
-<p>Like base class <a href="#schema">Schema</a>, occurs within <code class="highlighter-rouge">root.schemas</code>.</p>
+<p>Like base class <a href="#schema">Schema</a>, occurs within <code class="language-plaintext highlighter-rouge">root.schemas</code>.</p>
 <h4 id="json-5">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="p">,</span><span class="w">
-  </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'jdbc'</span><span class="p">,</span><span class="w">
-  </span><span class="err">jdbcDriver</span><span class="p">:</span><span class="w"> </span><span class="err">TODO</span><span class="p">,</span><span class="w">
-  </span><span class="err">jdbcUrl</span><span class="p">:</span><span class="w"> </span><span class="err">TODO</span><span class="p">,</span><span class="w">
-  </span><span class="err">jdbcUser</span><span class="p">:</span><span class="w"> </span><span class="err">TODO</span><span class="p">,</span><span class="w">
-  </span><span class="err">jdbcPassword</span><span class="p">:</span><span class="w"> </span><span class="err">TODO</span><span class="p">,</span><span class="w">
-  </span><span class="err">jdbcCatalog</span><span class="p">:</span><span class="w"> </span><span class="err">TODO</span><span class="p">,</span><span class="w">
-  </span><span class="err">jdbcSchema</span><span class="p">:</span><span class="w"> </span><span class="err">TODO</span><span class="w">
+  </span><span class="err">name:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="p">,</span><span class="w">
+  </span><span class="err">type:</span><span class="w"> </span><span class="err">'jdbc'</span><span class="p">,</span><span class="w">
+  </span><span class="err">jdbcDriver:</span><span class="w"> </span><span class="err">TODO</span><span class="p">,</span><span class="w">
+  </span><span class="err">jdbcUrl:</span><span class="w"> </span><span class="err">TODO</span><span class="p">,</span><span class="w">
+  </span><span class="err">jdbcUser:</span><span class="w"> </span><span class="err">TODO</span><span class="p">,</span><span class="w">
+  </span><span class="err">jdbcPassword:</span><span class="w"> </span><span class="err">TODO</span><span class="p">,</span><span class="w">
+  </span><span class="err">jdbcCatalog:</span><span class="w"> </span><span class="err">TODO</span><span class="p">,</span><span class="w">
+  </span><span class="err">jdbcSchema:</span><span class="w"> </span><span class="err">TODO</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <h4 id="yaml-5">YAML</h4>
@@ -296,35 +296,35 @@
 <span class="na">jdbcCatalog</span><span class="pi">:</span> <span class="s">TODO</span>
 <span class="na">jdbcSchema</span><span class="pi">:</span> <span class="s">TODO</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">name</code>, <code class="highlighter-rouge">type</code>, <code class="highlighter-rouge">path</code>, <code class="highlighter-rouge">cache</code>, <code class="highlighter-rouge">materializations</code> inherited from
+<p><code class="language-plaintext highlighter-rouge">name</code>, <code class="language-plaintext highlighter-rouge">type</code>, <code class="language-plaintext highlighter-rouge">path</code>, <code class="language-plaintext highlighter-rouge">cache</code>, <code class="language-plaintext highlighter-rouge">materializations</code> inherited from
 <a href="#schema">Schema</a>.</p>
 
-<p><code class="highlighter-rouge">jdbcDriver</code> (optional string) is the name of the JDBC driver class. If not
+<p><code class="language-plaintext highlighter-rouge">jdbcDriver</code> (optional string) is the name of the JDBC driver class. If not
 specified, uses whichever class the JDBC DriverManager chooses.</p>
 
-<p><code class="highlighter-rouge">jdbcUrl</code> (optional string) is the JDBC connect string, for example
+<p><code class="language-plaintext highlighter-rouge">jdbcUrl</code> (optional string) is the JDBC connect string, for example
 “jdbc:mysql://localhost/foodmart”.</p>
 
-<p><code class="highlighter-rouge">jdbcUser</code> (optional string) is the JDBC user name.</p>
+<p><code class="language-plaintext highlighter-rouge">jdbcUser</code> (optional string) is the JDBC user name.</p>
 
-<p><code class="highlighter-rouge">jdbcPassword</code> (optional string) is the JDBC password.</p>
+<p><code class="language-plaintext highlighter-rouge">jdbcPassword</code> (optional string) is the JDBC password.</p>
 
-<p><code class="highlighter-rouge">jdbcCatalog</code> (optional string) is the name of the initial catalog in the JDBC
+<p><code class="language-plaintext highlighter-rouge">jdbcCatalog</code> (optional string) is the name of the initial catalog in the JDBC
 data source.</p>
 
-<p><code class="highlighter-rouge">jdbcSchema</code> (optional string) is the name of the initial schema in the JDBC
+<p><code class="language-plaintext highlighter-rouge">jdbcSchema</code> (optional string) is the name of the initial schema in the JDBC
 data source.</p>
 
 <h3 id="materialization">Materialization</h3>
 
-<p>Occurs within <code class="highlighter-rouge">root.schemas.materializations</code>.</p>
+<p>Occurs within <code class="language-plaintext highlighter-rouge">root.schemas.materializations</code>.</p>
 
 <h4 id="json-6">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">view</span><span class="p">:</span><span class="w"> </span><span class="err">'V'</span><span class="p">,</span><span class="w">
-  </span><span class="err">table</span><span class="p">:</span><span class="w"> </span><span class="err">'T'</span><span class="p">,</span><span class="w">
-  </span><span class="err">sql</span><span class="p">:</span><span class="w"> </span><span class="err">'select</span><span class="w"> </span><span class="err">deptno</span><span class="p">,</span><span class="w"> </span><span class="err">count(*)</span><span class="w"> </span><span class="err">as</span><span class="w"> </span><span class="err">c</span><span class="p">,</span><span class="w"> </span><span class="err">sum(sal)</span><span class="w"> </span><span class="err">as</span><span class="w"> </span><span class="err">s</span><span class="w"> </span><span class="err">from</span><span class="w"> </span><span class="err">emp</span><span class="w"> </span><span class="err">group</span><span class="w"> </span><span class="err">by</span><span class="w"> </span><span class="err">deptno'</span><span class="w">
+  </span><span class="err">view:</span><span class="w"> </span><span class="err">'V'</span><span class="p">,</span><span class="w">
+  </span><span class="err">table:</span><span class="w"> </span><span class="err">'T'</span><span class="p">,</span><span class="w">
+  </span><span class="err">sql:</span><span class="w"> </span><span class="err">'select</span><span class="w"> </span><span class="err">deptno</span><span class="p">,</span><span class="w"> </span><span class="err">count(*)</span><span class="w"> </span><span class="err">as</span><span class="w"> </span><span class="err">c</span><span class="p">,</span><span class="w"> </span><span class="err">sum(sal)</span><span class="w"> </span><span class="err">as</span><span class="w"> </span><span class="err">s</span><span class="w"> </span><span class="err">from</span><span class="w"> </span><span class="err">emp</span><span class="w"> </span><span class="err">group</span><span class="w"> </span><span class="err">by</span><span class="w"> </span><span class="err">deptno'</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <h4 id="yaml-6">YAML</h4>
@@ -333,25 +333,25 @@
 <span class="na">table</span><span class="pi">:</span> <span class="s">T</span>
 <span class="na">sql</span><span class="pi">:</span> <span class="s">select deptno, count(*) as c, sum(sal) as s from emp group by deptno</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">view</code> (optional string) is the name of the view; null means that the table
+<p><code class="language-plaintext highlighter-rouge">view</code> (optional string) is the name of the view; null means that the table
 already exists and is populated with the correct data.</p>
 
-<p><code class="highlighter-rouge">table</code> (required string) is the name of the table that materializes the data in
-the query. If <code class="highlighter-rouge">view</code> is not null, the table might not exist, and if it does not,
+<p><code class="language-plaintext highlighter-rouge">table</code> (required string) is the name of the table that materializes the data in
+the query. If <code class="language-plaintext highlighter-rouge">view</code> is not null, the table might not exist, and if it does not,
 Calcite will create and populate an in-memory table.</p>
 
-<p><code class="highlighter-rouge">sql</code> (optional string, or list of strings that will be concatenated as a
+<p><code class="language-plaintext highlighter-rouge">sql</code> (optional string, or list of strings that will be concatenated as a
  multi-line string) is the SQL definition of the materialization.</p>
 
 <h3 id="table">Table</h3>
 
-<p>Occurs within <code class="highlighter-rouge">root.schemas.tables</code>.</p>
+<p>Occurs within <code class="language-plaintext highlighter-rouge">root.schemas.tables</code>.</p>
 
 <h4 id="json-7">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'sales_fact'</span><span class="p">,</span><span class="w">
-  </span><span class="err">columns</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">Column...</span><span class="w"> </span><span class="p">]</span><span class="w">
+  </span><span class="err">name:</span><span class="w"> </span><span class="err">'sales_fact'</span><span class="p">,</span><span class="w">
+  </span><span class="err">columns:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">Column...</span><span class="w"> </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <h4 id="yaml-7">YAML</h4>
@@ -360,33 +360,33 @@
 <span class="na">columns</span><span class="pi">:</span>
   <span class="pi">[</span> <span class="nv">Column...</span> <span class="pi">]</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">name</code> (required string) is the name of this table. Must be unique within the schema.</p>
+<p><code class="language-plaintext highlighter-rouge">name</code> (required string) is the name of this table. Must be unique within the schema.</p>
 
-<p><code class="highlighter-rouge">type</code> (optional string, default <code class="highlighter-rouge">custom</code>) indicates sub-type. Values are:</p>
+<p><code class="language-plaintext highlighter-rouge">type</code> (optional string, default <code class="language-plaintext highlighter-rouge">custom</code>) indicates sub-type. Values are:</p>
 
 <ul>
   <li>
-<code class="highlighter-rouge">custom</code> for <a href="#custom-table">Custom Table</a>
+<code class="language-plaintext highlighter-rouge">custom</code> for <a href="#custom-table">Custom Table</a>
 </li>
   <li>
-<code class="highlighter-rouge">view</code> for <a href="#view">View</a>
+<code class="language-plaintext highlighter-rouge">view</code> for <a href="#view">View</a>
 </li>
 </ul>
 
-<p><code class="highlighter-rouge">columns</code> (list of <a href="#column">Column</a> elements, required for
+<p><code class="language-plaintext highlighter-rouge">columns</code> (list of <a href="#column">Column</a> elements, required for
 some kinds of table, optional for others such as View)</p>
 
 <h3 id="view">View</h3>
 
-<p>Like base class <a href="#table">Table</a>, occurs within <code class="highlighter-rouge">root.schemas.tables</code>.</p>
+<p>Like base class <a href="#table">Table</a>, occurs within <code class="language-plaintext highlighter-rouge">root.schemas.tables</code>.</p>
 
 <h4 id="json-8">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'female_emps'</span><span class="p">,</span><span class="w">
-  </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'view'</span><span class="p">,</span><span class="w">
-  </span><span class="err">sql</span><span class="p">:</span><span class="w"> </span><span class="s2">"select * from emps where gender = 'F'"</span><span class="p">,</span><span class="w">
-  </span><span class="err">modifiable</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
+  </span><span class="err">name:</span><span class="w"> </span><span class="err">'female_emps'</span><span class="p">,</span><span class="w">
+  </span><span class="err">type:</span><span class="w"> </span><span class="err">'view'</span><span class="p">,</span><span class="w">
+  </span><span class="err">sql:</span><span class="w"> </span><span class="s2">"select * from emps where gender = 'F'"</span><span class="p">,</span><span class="w">
+  </span><span class="err">modifiable:</span><span class="w"> </span><span class="kc">true</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <h4 id="yaml-8">YAML</h4>
@@ -396,15 +396,15 @@
 <span class="na">sql</span><span class="pi">:</span> <span class="s">select * from emps where gender = 'F'</span>
 <span class="na">modifiable</span><span class="pi">:</span> <span class="no">true</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">name</code>, <code class="highlighter-rouge">type</code>, <code class="highlighter-rouge">columns</code> inherited from <a href="#table">Table</a>.</p>
+<p><code class="language-plaintext highlighter-rouge">name</code>, <code class="language-plaintext highlighter-rouge">type</code>, <code class="language-plaintext highlighter-rouge">columns</code> inherited from <a href="#table">Table</a>.</p>
 
-<p><code class="highlighter-rouge">sql</code> (required string, or list of strings that will be concatenated as a
+<p><code class="language-plaintext highlighter-rouge">sql</code> (required string, or list of strings that will be concatenated as a
  multi-line string) is the SQL definition of the view.</p>
 
-<p><code class="highlighter-rouge">path</code> (optional list) is the SQL path to resolve the query. If not
+<p><code class="language-plaintext highlighter-rouge">path</code> (optional list) is the SQL path to resolve the query. If not
 specified, defaults to the current schema.</p>
 
-<p><code class="highlighter-rouge">modifiable</code> (optional boolean) is whether the view is modifiable.
+<p><code class="language-plaintext highlighter-rouge">modifiable</code> (optional boolean) is whether the view is modifiable.
 If null or not specified, Calcite deduces whether the view is modifiable.</p>
 
 <p>A view is modifiable if contains only SELECT, FROM, WHERE (no JOIN, aggregation
@@ -412,39 +412,39 @@
 
 <ul>
   <li>is specified once in the SELECT clause; or</li>
-  <li>occurs in the WHERE clause with a <code class="highlighter-rouge">column = literal</code> predicate; or</li>
+  <li>occurs in the WHERE clause with a <code class="language-plaintext highlighter-rouge">column = literal</code> predicate; or</li>
   <li>is nullable.</li>
 </ul>
 
 <p>The second clause allows Calcite to automatically provide the correct value for
-hidden columns. It is useful in multi-tenant environments, where the <code class="highlighter-rouge">tenantId</code>
+hidden columns. It is useful in multi-tenant environments, where the <code class="language-plaintext highlighter-rouge">tenantId</code>
 column is hidden, mandatory (NOT NULL), and has a constant value for a
 particular view.</p>
 
 <p>Errors regarding modifiable views:</p>
 
 <ul>
-  <li>If a view is marked <code class="highlighter-rouge">modifiable: true</code> and is not modifiable, Calcite throws
+  <li>If a view is marked <code class="language-plaintext highlighter-rouge">modifiable: true</code> and is not modifiable, Calcite throws
 an error while reading the schema.</li>
   <li>If you submit an INSERT, UPDATE or UPSERT command to a non-modifiable view,
 Calcite throws an error when validating the statement.</li>
   <li>If a DML statement creates a row that would not appear in the view
-(for example, a row in <code class="highlighter-rouge">female_emps</code>, above, with <code class="highlighter-rouge">gender = 'M'</code>),
+(for example, a row in <code class="language-plaintext highlighter-rouge">female_emps</code>, above, with <code class="language-plaintext highlighter-rouge">gender = 'M'</code>),
 Calcite throws an error when executing the statement.</li>
 </ul>
 
 <h3 id="custom-table">Custom Table</h3>
 
-<p>Like base class <a href="#table">Table</a>, occurs within <code class="highlighter-rouge">root.schemas.tables</code>.</p>
+<p>Like base class <a href="#table">Table</a>, occurs within <code class="language-plaintext highlighter-rouge">root.schemas.tables</code>.</p>
 
 <h4 id="json-9">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'female_emps'</span><span class="p">,</span><span class="w">
-  </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
-  </span><span class="err">factory</span><span class="p">:</span><span class="w"> </span><span class="err">'TODO'</span><span class="p">,</span><span class="w">
-  </span><span class="err">operand</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-    </span><span class="err">todo</span><span class="p">:</span><span class="w"> </span><span class="err">'TODO'</span><span class="w">
+  </span><span class="err">name:</span><span class="w"> </span><span class="err">'female_emps'</span><span class="p">,</span><span class="w">
+  </span><span class="err">type:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
+  </span><span class="err">factory:</span><span class="w"> </span><span class="err">'TODO'</span><span class="p">,</span><span class="w">
+  </span><span class="err">operand:</span><span class="w"> </span><span class="p">{</span><span class="w">
+    </span><span class="err">todo:</span><span class="w"> </span><span class="err">'TODO'</span><span class="w">
   </span><span class="p">}</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
@@ -456,27 +456,27 @@
 <span class="na">operand</span><span class="pi">:</span>
   <span class="na">todo</span><span class="pi">:</span> <span class="s">TODO</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">name</code>, <code class="highlighter-rouge">type</code>, <code class="highlighter-rouge">columns</code> inherited from <a href="#table">Table</a>.</p>
+<p><code class="language-plaintext highlighter-rouge">name</code>, <code class="language-plaintext highlighter-rouge">type</code>, <code class="language-plaintext highlighter-rouge">columns</code> inherited from <a href="#table">Table</a>.</p>
 
-<p><code class="highlighter-rouge">factory</code> (required string) is the name of the factory class for this
+<p><code class="language-plaintext highlighter-rouge">factory</code> (required string) is the name of the factory class for this
 table. Must implement interface
 <a href="/javadocAggregate/org/apache/calcite/schema/TableFactory.html">org.apache.calcite.schema.TableFactory</a>
 and have a public default constructor.</p>
 
-<p><code class="highlighter-rouge">operand</code> (optional map) contains attributes to be passed to the
+<p><code class="language-plaintext highlighter-rouge">operand</code> (optional map) contains attributes to be passed to the
 factory.</p>
 
 <h3 id="stream">Stream</h3>
 
 <p>Information about whether a table allows streaming.</p>
 
-<p>Occurs within <code class="highlighter-rouge">root.schemas.tables.stream</code>.</p>
+<p>Occurs within <code class="language-plaintext highlighter-rouge">root.schemas.tables.stream</code>.</p>
 
 <h4 id="json-10">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">stream</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
-  </span><span class="err">history</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
+  </span><span class="err">stream:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
+  </span><span class="err">history:</span><span class="w"> </span><span class="kc">false</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <h4 id="yaml-10">YAML</h4>
@@ -484,38 +484,38 @@
 <figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="na">stream</span><span class="pi">:</span> <span class="no">true</span>
 <span class="na">history</span><span class="pi">:</span> <span class="no">false</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">stream</code> (optional; default true) is whether the table allows streaming.</p>
+<p><code class="language-plaintext highlighter-rouge">stream</code> (optional; default true) is whether the table allows streaming.</p>
 
-<p><code class="highlighter-rouge">history</code> (optional; default false) is whether the history of the stream is
+<p><code class="language-plaintext highlighter-rouge">history</code> (optional; default false) is whether the history of the stream is
 available.</p>
 
 <h3 id="column">Column</h3>
 
-<p>Occurs within <code class="highlighter-rouge">root.schemas.tables.columns</code>.</p>
+<p>Occurs within <code class="language-plaintext highlighter-rouge">root.schemas.tables.columns</code>.</p>
 
 <h4 id="json-11">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'empno'</span><span class="w">
+  </span><span class="err">name:</span><span class="w"> </span><span class="err">'empno'</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <h4 id="yaml-11">YAML</h4>
 
 <figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="na">name</span><span class="pi">:</span> <span class="s">empno</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">name</code> (required string) is the name of this column.</p>
+<p><code class="language-plaintext highlighter-rouge">name</code> (required string) is the name of this column.</p>
 
 <h3 id="function">Function</h3>
 
-<p>Occurs within <code class="highlighter-rouge">root.schemas.functions</code>.</p>
+<p>Occurs within <code class="language-plaintext highlighter-rouge">root.schemas.functions</code>.</p>
 
 <h4 id="json-12">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'MY_PLUS'</span><span class="p">,</span><span class="w">
-  </span><span class="err">className</span><span class="p">:</span><span class="w"> </span><span class="err">'com.example.functions.MyPlusFunction'</span><span class="p">,</span><span class="w">
-  </span><span class="err">methodName</span><span class="p">:</span><span class="w"> </span><span class="err">'apply'</span><span class="p">,</span><span class="w">
-  </span><span class="err">path</span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="w">
+  </span><span class="err">name:</span><span class="w"> </span><span class="err">'MY_PLUS'</span><span class="p">,</span><span class="w">
+  </span><span class="err">className:</span><span class="w"> </span><span class="err">'com.example.functions.MyPlusFunction'</span><span class="p">,</span><span class="w">
+  </span><span class="err">methodName:</span><span class="w"> </span><span class="err">'apply'</span><span class="p">,</span><span class="w">
+  </span><span class="err">path:</span><span class="w"> </span><span class="p">[]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <h4 id="yaml-12">YAML</h4>
@@ -525,41 +525,41 @@
 <span class="na">methodName</span><span class="pi">:</span> <span class="s">apply</span>
 <span class="na">path</span><span class="pi">:</span> <span class="pi">{}</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">name</code> (required string) is the name of this function.</p>
+<p><code class="language-plaintext highlighter-rouge">name</code> (required string) is the name of this function.</p>
 
-<p><code class="highlighter-rouge">className</code> (required string) is the name of the class that implements this
+<p><code class="language-plaintext highlighter-rouge">className</code> (required string) is the name of the class that implements this
 function.</p>
 
-<p><code class="highlighter-rouge">methodName</code> (optional string) is the name of the method that implements this
+<p><code class="language-plaintext highlighter-rouge">methodName</code> (optional string) is the name of the method that implements this
 function.</p>
 
-<p>If <code class="highlighter-rouge">methodName</code> is specified, the method must exist (case-sensitive) and Calcite
+<p>If <code class="language-plaintext highlighter-rouge">methodName</code> is specified, the method must exist (case-sensitive) and Calcite
 will create a scalar function. The method may be static or non-static, but
 if non-static, the class must have a public constructor with no parameters.</p>
 
-<p>If <code class="highlighter-rouge">methodName</code> is “*”, Calcite creates a function for every method
+<p>If <code class="language-plaintext highlighter-rouge">methodName</code> is “*”, Calcite creates a function for every method
 in the class.</p>
 
-<p>If <code class="highlighter-rouge">methodName</code> is not specified, Calcite looks for a method called “eval”, and
+<p>If <code class="language-plaintext highlighter-rouge">methodName</code> is not specified, Calcite looks for a method called “eval”, and
 if found, creates a table macro or scalar function.
 It also looks for methods “init”, “add”, “merge”, “result”, and
 if found, creates an aggregate function.</p>
 
-<p><code class="highlighter-rouge">path</code> (optional list of string) is the path for resolving this function.</p>
+<p><code class="language-plaintext highlighter-rouge">path</code> (optional list of string) is the path for resolving this function.</p>
 
 <h3 id="type">Type</h3>
 
-<p>Occurs within <code class="highlighter-rouge">root.schemas.types</code>.</p>
+<p>Occurs within <code class="language-plaintext highlighter-rouge">root.schemas.types</code>.</p>
 
 <h4 id="json-13">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'mytype</span><span class="mi">1</span><span class="err">'</span><span class="p">,</span><span class="w">
-  </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'BIGINT'</span><span class="p">,</span><span class="w">
-  </span><span class="err">attributes</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="err">name:</span><span class="w"> </span><span class="err">'mytype</span><span class="mi">1</span><span class="err">'</span><span class="p">,</span><span class="w">
+  </span><span class="err">type:</span><span class="w"> </span><span class="err">'BIGINT'</span><span class="p">,</span><span class="w">
+  </span><span class="err">attributes:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'f</span><span class="mi">1</span><span class="err">'</span><span class="p">,</span><span class="w">
-      </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'BIGINT'</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span class="err">'f</span><span class="mi">1</span><span class="err">'</span><span class="p">,</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span class="err">'BIGINT'</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
@@ -572,45 +572,45 @@
 <span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">f1</span>
   <span class="na">type</span><span class="pi">:</span> <span class="s">BIGINT</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">name</code> (required string) is the name of this type.</p>
+<p><code class="language-plaintext highlighter-rouge">name</code> (required string) is the name of this type.</p>
 
-<p><code class="highlighter-rouge">type</code> (optional) is the SQL type.</p>
+<p><code class="language-plaintext highlighter-rouge">type</code> (optional) is the SQL type.</p>
 
-<p><code class="highlighter-rouge">attributes</code> (optional) is the attribute list of this type.
-If <code class="highlighter-rouge">attributes</code> and <code class="highlighter-rouge">type</code> both exist at the same level,
-<code class="highlighter-rouge">type</code> takes precedence.</p>
+<p><code class="language-plaintext highlighter-rouge">attributes</code> (optional) is the attribute list of this type.
+If <code class="language-plaintext highlighter-rouge">attributes</code> and <code class="language-plaintext highlighter-rouge">type</code> both exist at the same level,
+<code class="language-plaintext highlighter-rouge">type</code> takes precedence.</p>
 
 <h3 id="lattice">Lattice</h3>
 
-<p>Occurs within <code class="highlighter-rouge">root.schemas.lattices</code>.</p>
+<p>Occurs within <code class="language-plaintext highlighter-rouge">root.schemas.lattices</code>.</p>
 
 <h4 id="json-14">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'star'</span><span class="p">,</span><span class="w">
-  </span><span class="err">sql</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="err">name:</span><span class="w"> </span><span class="err">'star'</span><span class="p">,</span><span class="w">
+  </span><span class="err">sql:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="err">'select</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="err">from</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="err">.</span><span class="s2">"sales_fact_1997"</span><span class="w"> </span><span class="err">as</span><span class="w"> </span><span class="s2">"s"</span><span class="err">'</span><span class="p">,</span><span class="w">
     </span><span class="err">'join</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="err">.</span><span class="s2">"product"</span><span class="w"> </span><span class="err">as</span><span class="w"> </span><span class="s2">"p"</span><span class="w"> </span><span class="err">using</span><span class="w"> </span><span class="err">(</span><span class="s2">"product_id"</span><span class="err">)'</span><span class="p">,</span><span class="w">
     </span><span class="err">'join</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="err">.</span><span class="s2">"time_by_day"</span><span class="w"> </span><span class="err">as</span><span class="w"> </span><span class="s2">"t"</span><span class="w"> </span><span class="err">using</span><span class="w"> </span><span class="err">(</span><span class="s2">"time_id"</span><span class="err">)'</span><span class="p">,</span><span class="w">
     </span><span class="err">'join</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="err">.</span><span class="s2">"product_class"</span><span class="w"> </span><span class="err">as</span><span class="w"> </span><span class="s2">"pc"</span><span class="w"> </span><span class="err">on</span><span class="w"> </span><span class="s2">"p"</span><span class="err">.</span><span class="s2">"product_class_id"</span><span class="w"> </span><span class="err">=</span><span class="w"> </span><span class="s2">"pc"</span><span class="err">.</span><span class="s2">"product_class_id"</span><span class="err">'</span><span class="w">
   </span><span class="p">],</span><span class="w">
-  </span><span class="err">auto</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
-  </span><span class="err">algorithm</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
-  </span><span class="err">algorithmMaxMillis</span><span class="p">:</span><span class="w"> </span><span class="mi">10000</span><span class="p">,</span><span class="w">
-  </span><span class="err">rowCountEstimate</span><span class="p">:</span><span class="w"> </span><span class="mi">86837</span><span class="p">,</span><span class="w">
-  </span><span class="err">defaultMeasures</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
-    </span><span class="err">agg</span><span class="p">:</span><span class="w"> </span><span class="err">'count'</span><span class="w">
+  </span><span class="err">auto:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">
+  </span><span class="err">algorithm:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">
+  </span><span class="err">algorithmMaxMillis:</span><span class="w"> </span><span class="mi">10000</span><span class="p">,</span><span class="w">
+  </span><span class="err">rowCountEstimate:</span><span class="w"> </span><span class="mi">86837</span><span class="p">,</span><span class="w">
+  </span><span class="err">defaultMeasures:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
+    </span><span class="err">agg:</span><span class="w"> </span><span class="err">'count'</span><span class="w">
   </span><span class="p">}</span><span class="w"> </span><span class="p">],</span><span class="w">
-  </span><span class="err">tiles</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
-    </span><span class="err">dimensions</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">'the_year'</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="err">'t'</span><span class="p">,</span><span class="w"> </span><span class="err">'quarter'</span><span class="p">]</span><span class="w"> </span><span class="p">],</span><span class="w">
-    </span><span class="err">measures</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
-      </span><span class="err">agg</span><span class="p">:</span><span class="w"> </span><span class="err">'sum'</span><span class="p">,</span><span class="w">
-      </span><span class="err">args</span><span class="p">:</span><span class="w"> </span><span class="err">'unit_sales'</span><span class="w">
+  </span><span class="err">tiles:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
+    </span><span class="err">dimensions:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">'the_year'</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="err">'t'</span><span class="p">,</span><span class="w"> </span><span class="err">'quarter'</span><span class="p">]</span><span class="w"> </span><span class="p">],</span><span class="w">
+    </span><span class="err">measures:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
+      </span><span class="err">agg:</span><span class="w"> </span><span class="err">'sum'</span><span class="p">,</span><span class="w">
+      </span><span class="err">args:</span><span class="w"> </span><span class="err">'unit_sales'</span><span class="w">
     </span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="w">
-      </span><span class="err">agg</span><span class="p">:</span><span class="w"> </span><span class="err">'sum'</span><span class="p">,</span><span class="w">
-      </span><span class="err">args</span><span class="p">:</span><span class="w"> </span><span class="err">'store_sales'</span><span class="w">
+      </span><span class="err">agg:</span><span class="w"> </span><span class="err">'sum'</span><span class="p">,</span><span class="w">
+      </span><span class="err">args:</span><span class="w"> </span><span class="err">'store_sales'</span><span class="w">
     </span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="w">
-      </span><span class="err">agg</span><span class="p">:</span><span class="w"> </span><span class="err">'count'</span><span class="w">
+      </span><span class="err">agg:</span><span class="w"> </span><span class="err">'count'</span><span class="w">
     </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
   </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
@@ -619,14 +619,14 @@
 
 <figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="na">name</span><span class="pi">:</span> <span class="s">star</span>
 <span class="na">sql</span><span class="pi">:</span> <span class="pi">&gt;</span>
-  <span class="no">select 1 from "foodmart"."sales_fact_1997" as "s"',</span>
-  <span class="no">join "foodmart"."product" as "p" using ("product_id")',</span>
-  <span class="no">join "foodmart"."time_by_day" as "t" using ("time_id")',</span>
-  <span class="no">join "foodmart"."product_class" as "pc" on "p"."product_class_id" = "pc"."product_class_id"</span>
+  <span class="s">select 1 from "foodmart"."sales_fact_1997" as "s"',</span>
+  <span class="s">join "foodmart"."product" as "p" using ("product_id")',</span>
+  <span class="s">join "foodmart"."time_by_day" as "t" using ("time_id")',</span>
+  <span class="s">join "foodmart"."product_class" as "pc" on "p"."product_class_id" = "pc"."product_class_id"</span>
 <span class="na">auto</span><span class="pi">:</span> <span class="no">false</span>
 <span class="na">algorithm</span><span class="pi">:</span> <span class="no">true</span>
-<span class="na">algorithmMaxMillis</span><span class="pi">:</span> <span class="s">10000</span>
-<span class="na">rowCountEstimate</span><span class="pi">:</span> <span class="s">86837</span>
+<span class="na">algorithmMaxMillis</span><span class="pi">:</span> <span class="m">10000</span>
+<span class="na">rowCountEstimate</span><span class="pi">:</span> <span class="m">86837</span>
 <span class="na">defaultMeasures</span><span class="pi">:</span>
 <span class="pi">-</span> <span class="na">agg</span><span class="pi">:</span> <span class="s">count</span>
 <span class="na">tiles</span><span class="pi">:</span>
@@ -638,49 +638,49 @@
     <span class="na">args</span><span class="pi">:</span> <span class="s">store_sales</span>
   <span class="pi">-</span> <span class="na">agg</span><span class="pi">:</span> <span class="s1">'</span><span class="s">count'</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">name</code> (required string) is the name of this lattice.</p>
+<p><code class="language-plaintext highlighter-rouge">name</code> (required string) is the name of this lattice.</p>
 
-<p><code class="highlighter-rouge">sql</code> (required string, or list of strings that will be concatenated as a
+<p><code class="language-plaintext highlighter-rouge">sql</code> (required string, or list of strings that will be concatenated as a
 multi-line string) is the SQL statement that defines the fact table, dimension
 tables, and join paths for this lattice.</p>
 
-<p><code class="highlighter-rouge">auto</code> (optional boolean, default true) is whether to materialize tiles on need
+<p><code class="language-plaintext highlighter-rouge">auto</code> (optional boolean, default true) is whether to materialize tiles on need
 as queries are executed.</p>
 
-<p><code class="highlighter-rouge">algorithm</code> (optional boolean, default false) is whether to use an optimization
+<p><code class="language-plaintext highlighter-rouge">algorithm</code> (optional boolean, default false) is whether to use an optimization
 algorithm to suggest and populate an initial set of tiles.</p>
 
-<p><code class="highlighter-rouge">algorithmMaxMillis</code> (optional long, default -1, meaning no limit) is the
+<p><code class="language-plaintext highlighter-rouge">algorithmMaxMillis</code> (optional long, default -1, meaning no limit) is the
 maximum number of milliseconds for which to run the algorithm. After this point,
 takes the best result the algorithm has come up with so far.</p>
 
-<p><code class="highlighter-rouge">rowCountEstimate</code> (optional double, default 1000.0) estimated number of rows in
+<p><code class="language-plaintext highlighter-rouge">rowCountEstimate</code> (optional double, default 1000.0) estimated number of rows in
 the lattice</p>
 
-<p><code class="highlighter-rouge">tiles</code> (optional list of <a href="#tile">Tile</a> elements) is a list of
+<p><code class="language-plaintext highlighter-rouge">tiles</code> (optional list of <a href="#tile">Tile</a> elements) is a list of
 materialized aggregates to create up front.</p>
 
-<p><code class="highlighter-rouge">defaultMeasures</code>  (optional list of <a href="#measure">Measure</a> elements)
+<p><code class="language-plaintext highlighter-rouge">defaultMeasures</code>  (optional list of <a href="#measure">Measure</a> elements)
 is a list of measures that a tile should have by default.
-Any tile defined in <code class="highlighter-rouge">tiles</code> can still define its own measures, including
+Any tile defined in <code class="language-plaintext highlighter-rouge">tiles</code> can still define its own measures, including
 measures not on this list. If not specified, the default list of measures is
 just ‘count(*)’:</p>
 
 <h4 id="json-15">JSON</h4>
 
-<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'count'</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="p">]</span></code></pre></figure>
+<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="err">name:</span><span class="w"> </span><span class="err">'count'</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="p">]</span></code></pre></figure>
 
 <h4 id="yaml-15">YAML</h4>
 
 <figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="na">name</span><span class="pi">:</span> <span class="s">count</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">statisticProvider</code> (optional name of a class that implements
+<p><code class="language-plaintext highlighter-rouge">statisticProvider</code> (optional name of a class that implements
 <a href="/javadocAggregate/org/apache/calcite/materialize/LatticeStatisticProvider.html">org.apache.calcite.materialize.LatticeStatisticProvider</a>)
 provides estimates of the number of distinct values in each column.</p>
 
 <p>You can use a class name, or a class plus a static field. Example:</p>
 
-<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="w">  </span><span class="s2">"statisticProvider"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.materialize.Lattices#CACHING_SQL_STATISTIC_PROVIDER"</span></code></pre></figure>
+<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="w">  </span><span class="nl">"statisticProvider"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.materialize.Lattices#CACHING_SQL_STATISTIC_PROVIDER"</span></code></pre></figure>
 
 <p>If not set, Calcite will generate and execute a SQL query to find the real
 value, and cache the results.</p>
@@ -689,18 +689,18 @@
 
 <h3 id="tile">Tile</h3>
 
-<p>Occurs within <code class="highlighter-rouge">root.schemas.lattices.tiles</code>.</p>
+<p>Occurs within <code class="language-plaintext highlighter-rouge">root.schemas.lattices.tiles</code>.</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">dimensions</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">'the_year'</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="err">'t'</span><span class="p">,</span><span class="w"> </span><span class="err">'quarter'</span><span class="p">]</span><span class="w"> </span><span class="p">],</span><span class="w">
-  </span><span class="err">measures</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
-    </span><span class="err">agg</span><span class="p">:</span><span class="w"> </span><span class="err">'sum'</span><span class="p">,</span><span class="w">
-    </span><span class="err">args</span><span class="p">:</span><span class="w"> </span><span class="err">'unit_sales'</span><span class="w">
+  </span><span class="err">dimensions:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">'the_year'</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="err">'t'</span><span class="p">,</span><span class="w"> </span><span class="err">'quarter'</span><span class="p">]</span><span class="w"> </span><span class="p">],</span><span class="w">
+  </span><span class="err">measures:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
+    </span><span class="err">agg:</span><span class="w"> </span><span class="err">'sum'</span><span class="p">,</span><span class="w">
+    </span><span class="err">args:</span><span class="w"> </span><span class="err">'unit_sales'</span><span class="w">
   </span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="w">
-    </span><span class="err">agg</span><span class="p">:</span><span class="w"> </span><span class="err">'sum'</span><span class="p">,</span><span class="w">
-    </span><span class="err">args</span><span class="p">:</span><span class="w"> </span><span class="err">'store_sales'</span><span class="w">
+    </span><span class="err">agg:</span><span class="w"> </span><span class="err">'sum'</span><span class="p">,</span><span class="w">
+    </span><span class="err">args:</span><span class="w"> </span><span class="err">'store_sales'</span><span class="w">
   </span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="w">
-    </span><span class="err">agg</span><span class="p">:</span><span class="w"> </span><span class="err">'count'</span><span class="w">
+    </span><span class="err">agg:</span><span class="w"> </span><span class="err">'count'</span><span class="w">
   </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
@@ -714,27 +714,27 @@
   <span class="na">args</span><span class="pi">:</span> <span class="s">store_sales</span>
 <span class="pi">-</span> <span class="na">agg</span><span class="pi">:</span> <span class="s">count</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">dimensions</code> (list of strings or string lists, required, but may be empty)
+<p><code class="language-plaintext highlighter-rouge">dimensions</code> (list of strings or string lists, required, but may be empty)
 defines the dimensionality of this tile.
-Each dimension is a column from the lattice, like a <code class="highlighter-rouge">GROUP BY</code> clause.
+Each dimension is a column from the lattice, like a <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause.
 Each element can be either a string
 (the unique label of the column within the lattice)
 or a string list (a pair consisting of a table alias and a column name).</p>
 
-<p><code class="highlighter-rouge">measures</code> (optional list of <a href="#measure">Measure</a> elements) is a list
+<p><code class="language-plaintext highlighter-rouge">measures</code> (optional list of <a href="#measure">Measure</a> elements) is a list
 of aggregate functions applied to arguments. If not specified, uses the
 lattice’s default measure list.</p>
 
 <h3 id="measure">Measure</h3>
 
-<p>Occurs within <code class="highlighter-rouge">root.schemas.lattices.defaultMeasures</code>
-and <code class="highlighter-rouge">root.schemas.lattices.tiles.measures</code>.</p>
+<p>Occurs within <code class="language-plaintext highlighter-rouge">root.schemas.lattices.defaultMeasures</code>
+and <code class="language-plaintext highlighter-rouge">root.schemas.lattices.tiles.measures</code>.</p>
 
 <h4 id="json-16">JSON</h4>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">agg</span><span class="p">:</span><span class="w"> </span><span class="err">'sum'</span><span class="p">,</span><span class="w">
-  </span><span class="err">args</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">'unit_sales'</span><span class="w"> </span><span class="p">]</span><span class="w">
+  </span><span class="err">agg:</span><span class="w"> </span><span class="err">'sum'</span><span class="p">,</span><span class="w">
+  </span><span class="err">args:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">'unit_sales'</span><span class="w"> </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <h4 id="yaml-17">YAML</h4>
@@ -742,10 +742,10 @@
 <figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="na">agg</span><span class="pi">:</span> <span class="s">sum</span>
 <span class="na">args</span><span class="pi">:</span> <span class="s">unit_sales</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">agg</code> is the name of an aggregate function (usually ‘count’, ‘sum’, ‘min’,
+<p><code class="language-plaintext highlighter-rouge">agg</code> is the name of an aggregate function (usually ‘count’, ‘sum’, ‘min’,
 ‘max’).</p>
 
-<p><code class="highlighter-rouge">args</code> (optional) is a column label (string), or list of zero or more column
+<p><code class="language-plaintext highlighter-rouge">args</code> (optional) is a column label (string), or list of zero or more column
 labels</p>
 
 <p>Valid values are:</p>
@@ -1082,7 +1082,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/os_adapter.html b/docs/os_adapter.html
index 2f944f9..33f0aad 100644
--- a/docs/os_adapter.html
+++ b/docs/os_adapter.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>OS adapter and sqlsh</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -86,7 +86,7 @@
 <p>It aims to solve similar problems that have traditionally been solved using UNIX
 command pipelines, but with the power and type-safety of SQL.</p>
 
-<p>The adapter also includes a wrapper called <code class="highlighter-rouge">sqlsh</code> that allows you to execute
+<p>The adapter also includes a wrapper called <code class="language-plaintext highlighter-rouge">sqlsh</code> that allows you to execute
 commands from your favorite shell.</p>
 
 <h1 id="security-warning">Security warning</h1>
@@ -104,9 +104,9 @@
 <ul>
   <li>These commands only work on Linux and macOS (not Windows, even with Cygwin);</li>
   <li>
-<code class="highlighter-rouge">vmstat</code> has very different columns between Linux and macOS;</li>
+<code class="language-plaintext highlighter-rouge">vmstat</code> has very different columns between Linux and macOS;</li>
   <li>
-<code class="highlighter-rouge">files</code> and <code class="highlighter-rouge">ps</code> have the same column names but semantics differ;</li>
+<code class="language-plaintext highlighter-rouge">files</code> and <code class="language-plaintext highlighter-rouge">ps</code> have the same column names but semantics differ;</li>
   <li>Other commands work largely the same.</li>
 </ul>
 
@@ -114,7 +114,7 @@
 
 <p>Every bash hacker knows that to find the 3 largest files you type</p>
 
-<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>find <span class="nb">.</span> <span class="nt">-type</span> f <span class="nt">-print0</span> | xargs <span class="nt">-0</span> <span class="nb">ls</span> <span class="nt">-l</span>  | sort <span class="nt">-nr</span> <span class="nt">-k</span> 5 | head <span class="nt">-3</span>
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>find <span class="nb">.</span> <span class="nt">-type</span> f <span class="nt">-print0</span> | xargs <span class="nt">-0</span> <span class="nb">ls</span> <span class="nt">-l</span>  | <span class="nb">sort</span> <span class="nt">-nr</span> <span class="nt">-k</span> 5 | <span class="nb">head</span> <span class="nt">-3</span>
 <span class="nt">-rw-r--r--</span> 1 jhyde jhyde 194877 Jul 16 16:10 ./validate/SqlValidatorImpl.java
 <span class="nt">-rw-r--r--</span> 1 jhyde jhyde  73826 Jul  4 21:51 ./fun/SqlStdOperatorTable.java
 <span class="nt">-rw-r--r--</span> 1 jhyde jhyde  39214 Jul  4 21:51 ./type/SqlTypeUtil.java</code></pre></figure>
@@ -122,7 +122,7 @@
 <p>This actually a pipeline of relational operations, each tuple represented
 by line of space-separated fields. What if we were able to access the list of
 files as a relation and use it in a SQL query? And what if we could easily
-execute that SQL query from the shell? This is what <code class="highlighter-rouge">sqlsh</code> does:</p>
+execute that SQL query from the shell? This is what <code class="language-plaintext highlighter-rouge">sqlsh</code> does:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>sqlsh <span class="k">select </span>size, path from files where <span class="nb">type</span> <span class="o">=</span> <span class="se">\'</span>f<span class="se">\'</span> order by size desc limit 3
 194877 validate/SqlValidatorImpl.java
@@ -131,13 +131,13 @@
 
 <h1 id="sqlsh">sqlsh</h1>
 
-<p><code class="highlighter-rouge">sqlsh</code> launches a connection to Calcite whose default schema is the OS adapter.</p>
+<p><code class="language-plaintext highlighter-rouge">sqlsh</code> launches a connection to Calcite whose default schema is the OS adapter.</p>
 
 <p>It uses the JAVA lexical mode, which means that unquoted table and column names
 remain in the case that they were written. This is consistent with how shells like
 bash behave.</p>
 
-<p>Shell meta-characters such as <code class="highlighter-rouge">*</code>, <code class="highlighter-rouge">&gt;</code>, <code class="highlighter-rouge">&lt;</code>, <code class="highlighter-rouge">(</code>, and <code class="highlighter-rouge">)</code> have to be treated with
+<p>Shell meta-characters such as <code class="language-plaintext highlighter-rouge">*</code>, <code class="language-plaintext highlighter-rouge">&gt;</code>, <code class="language-plaintext highlighter-rouge">&lt;</code>, <code class="language-plaintext highlighter-rouge">(</code>, and <code class="language-plaintext highlighter-rouge">)</code> have to be treated with
 care. Often adding a back-slash will suffice.</p>
 
 <h1 id="tables-and-commands">Tables and commands</h1>
@@ -146,17 +146,17 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">du</code> - Disk usage (based on <code class="highlighter-rouge">du</code> command)</li>
+<code class="language-plaintext highlighter-rouge">du</code> - Disk usage (based on <code class="language-plaintext highlighter-rouge">du</code> command)</li>
   <li>
-<code class="highlighter-rouge">ps</code> - Processes (based on <code class="highlighter-rouge">ps</code> command)</li>
+<code class="language-plaintext highlighter-rouge">ps</code> - Processes (based on <code class="language-plaintext highlighter-rouge">ps</code> command)</li>
   <li>
-<code class="highlighter-rouge">stdin</code> - Standard input</li>
+<code class="language-plaintext highlighter-rouge">stdin</code> - Standard input</li>
   <li>
-<code class="highlighter-rouge">files</code> - Files (based on the <code class="highlighter-rouge">find</code> command)</li>
+<code class="language-plaintext highlighter-rouge">files</code> - Files (based on the <code class="language-plaintext highlighter-rouge">find</code> command)</li>
   <li>
-<code class="highlighter-rouge">git_commits</code> - Git commits (based on <code class="highlighter-rouge">git log</code>)</li>
+<code class="language-plaintext highlighter-rouge">git_commits</code> - Git commits (based on <code class="language-plaintext highlighter-rouge">git log</code>)</li>
   <li>
-<code class="highlighter-rouge">vmstat</code> - Virtual memory (based on <code class="highlighter-rouge">vmstat</code> command)</li>
+<code class="language-plaintext highlighter-rouge">vmstat</code> - Virtual memory (based on <code class="language-plaintext highlighter-rouge">vmstat</code> command)</li>
 </ul>
 
 <p>Most tables are implemented as views on top of table functions.</p>
@@ -165,27 +165,27 @@
 
 <h2 id="example-du">Example: du</h2>
 
-<p>How many class files, and what is their total size? In <code class="highlighter-rouge">bash</code>:</p>
+<p>How many class files, and what is their total size? In <code class="language-plaintext highlighter-rouge">bash</code>:</p>
 
-<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>du <span class="nt">-ka</span> <span class="nb">.</span> | <span class="nb">grep</span> <span class="s1">'\.class$'</span> | awk <span class="s1">'{size+=$1} END {print FNR, size}'</span>
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span><span class="nb">du</span> <span class="nt">-ka</span> <span class="nb">.</span> | <span class="nb">grep</span> <span class="s1">'\.class$'</span> | <span class="nb">awk</span> <span class="s1">'{size+=$1} END {print FNR, size}'</span>
 4416 27960</code></pre></figure>
 
-<p>In <code class="highlighter-rouge">sqlsh</code>:</p>
+<p>In <code class="language-plaintext highlighter-rouge">sqlsh</code>:</p>
 
-<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>sqlsh <span class="k">select </span>count<span class="se">\(\*\)</span>, sum<span class="se">\(</span>size_k<span class="se">\)</span> from du where path like <span class="se">\'</span>%.class<span class="se">\'</span>
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>sqlsh <span class="k">select </span>count<span class="se">\(\*\)</span>, <span class="nb">sum</span><span class="se">\(</span>size_k<span class="se">\)</span> from <span class="nb">du </span>where path like <span class="se">\'</span>%.class<span class="se">\'</span>
 4416 27960</code></pre></figure>
 
-<p>The back-slashes are necessary because <code class="highlighter-rouge">(</code>, <code class="highlighter-rouge">*</code>, <code class="highlighter-rouge">)</code>, and <code class="highlighter-rouge">'</code> are shell meta-characters.</p>
+<p>The back-slashes are necessary because <code class="language-plaintext highlighter-rouge">(</code>, <code class="language-plaintext highlighter-rouge">*</code>, <code class="language-plaintext highlighter-rouge">)</code>, and <code class="language-plaintext highlighter-rouge">'</code> are shell meta-characters.</p>
 
 <h2 id="example-files">Example: files</h2>
 
-<p>How many files and directories? In <code class="highlighter-rouge">bash</code>, you would use <code class="highlighter-rouge">find</code>:</p>
+<p>How many files and directories? In <code class="language-plaintext highlighter-rouge">bash</code>, you would use <code class="language-plaintext highlighter-rouge">find</code>:</p>
 
-<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>find <span class="nb">.</span> <span class="nt">-printf</span> <span class="s2">"%Y %p</span><span class="se">\n</span><span class="s2">"</span> | <span class="nb">grep</span> <span class="s1">'/test/'</span> | cut <span class="nt">-d</span><span class="s1">' '</span> <span class="nt">-f1</span> | sort | uniq <span class="nt">-c</span>
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>find <span class="nb">.</span> <span class="nt">-printf</span> <span class="s2">"%Y %p</span><span class="se">\n</span><span class="s2">"</span> | <span class="nb">grep</span> <span class="s1">'/test/'</span> | <span class="nb">cut</span> <span class="nt">-d</span><span class="s1">' '</span> <span class="nt">-f1</span> | <span class="nb">sort</span> | <span class="nb">uniq</span> <span class="nt">-c</span>
     143 d
    1336 f</code></pre></figure>
 
-<p>In <code class="highlighter-rouge">sqlsh</code>, use the <code class="highlighter-rouge">files</code> table:</p>
+<p>In <code class="language-plaintext highlighter-rouge">sqlsh</code>, use the <code class="language-plaintext highlighter-rouge">files</code> table:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>sqlsh <span class="k">select </span><span class="nb">type</span>, count<span class="se">\(\*\)</span> from files where path like <span class="se">\'</span>%/test/%<span class="se">\'</span> group by <span class="nb">type
 </span>d 143
@@ -193,7 +193,7 @@
 
 <h2 id="example-ps">Example: ps</h2>
 
-<p>Which users have processes running? In <code class="highlighter-rouge">sqlsh</code>:</p>
+<p>Which users have processes running? In <code class="language-plaintext highlighter-rouge">sqlsh</code>:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>sqlsh <span class="k">select </span>distinct ps.<span class="se">\`</span>user<span class="se">\`</span> from ps
 avahi
@@ -203,13 +203,13 @@
 nobody
 daemon</code></pre></figure>
 
-<p>The <code class="highlighter-rouge">ps.</code> qualifier and back-quotes are necessary because USER is a SQL reserved word.</p>
+<p>The <code class="language-plaintext highlighter-rouge">ps.</code> qualifier and back-quotes are necessary because USER is a SQL reserved word.</p>
 
-<p>Now a ‘top N’ problem: Which three users have the most processes? In <code class="highlighter-rouge">bash</code>:</p>
+<p>Now a ‘top N’ problem: Which three users have the most processes? In <code class="language-plaintext highlighter-rouge">bash</code>:</p>
 
-<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>ps aux | awk <span class="s1">'{print $1}'</span> | sort | uniq <span class="nt">-c</span> | sort <span class="nt">-nr</span> | head <span class="nt">-3</span></code></pre></figure>
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>ps aux | <span class="nb">awk</span> <span class="s1">'{print $1}'</span> | <span class="nb">sort</span> | <span class="nb">uniq</span> <span class="nt">-c</span> | <span class="nb">sort</span> <span class="nt">-nr</span> | <span class="nb">head</span> <span class="nt">-3</span></code></pre></figure>
 
-<p>In <code class="highlighter-rouge">sqlsh</code>:</p>
+<p>In <code class="language-plaintext highlighter-rouge">sqlsh</code>:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlsh <span class="k">select </span>count<span class="se">\(\*\)</span>, ps.<span class="se">\`</span>user<span class="se">\`</span> from ps group by ps.<span class="se">\`</span>user<span class="se">\`</span> order by 1 desc limit 3
 185 root
@@ -230,17 +230,17 @@
 
 <h2 id="example-explain">Example: explain</h2>
 
-<p>To find out what columns a table has, use <code class="highlighter-rouge">explain</code>:</p>
+<p>To find out what columns a table has, use <code class="language-plaintext highlighter-rouge">explain</code>:</p>
 
-<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>sqlsh explain plan with <span class="nb">type </span><span class="k">for select</span> <span class="se">\*</span> from du
-size_k BIGINT NOT NULL,
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>sqlsh explain plan with <span class="nb">type </span><span class="k">for select</span> <span class="se">\*</span> from <span class="nb">du
+</span>size_k BIGINT NOT NULL,
 path VARCHAR NOT NULL,
 size_b BIGINT NOT NULL</code></pre></figure>
 
 <h2 id="example-git">Example: git</h2>
 
 <p>How many commits and distinct authors per year?
-The <code class="highlighter-rouge">git_commits</code> table is based upon the <code class="highlighter-rouge">git log</code> command.</p>
+The <code class="language-plaintext highlighter-rouge">git_commits</code> table is based upon the <code class="language-plaintext highlighter-rouge">git log</code> command.</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash">./sqlsh <span class="k">select </span>floor<span class="se">\(</span>commit_timestamp to year<span class="se">\)</span> as y, count<span class="se">\(\*\)</span>, count<span class="se">\(</span>distinct author<span class="se">\)</span> from git_commits group by y order by 1
 2012-01-01 00:00:00 180 6
@@ -250,7 +250,7 @@
 2016-01-01 00:00:00 465 67
 2017-01-01 00:00:00 279 53</code></pre></figure>
 
-<p>Note that <code class="highlighter-rouge">group by y</code> is possible because <code class="highlighter-rouge">sqlsh</code> uses Calcite’s
+<p>Note that <code class="language-plaintext highlighter-rouge">group by y</code> is possible because <code class="language-plaintext highlighter-rouge">sqlsh</code> uses Calcite’s
 <a href="/javadocAggregate/org/apache/calcite/sql/validate/SqlConformance.html#isGroupByAlias--">lenient mode</a>.</p>
 
 <h2 id="example-stdin">Example: stdin</h2>
@@ -261,7 +261,7 @@
      1  cats
      2  and dogs</code></pre></figure>
 
-<p>In <code class="highlighter-rouge">sqlsh</code>:</p>
+<p>In <code class="language-plaintext highlighter-rouge">sqlsh</code>:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span><span class="o">(</span><span class="nb">echo </span>cats<span class="p">;</span> <span class="nb">echo </span>and dogs<span class="o">)</span> | ./sqlsh <span class="k">select</span> <span class="se">\*</span> from stdin
 1 cats
@@ -269,9 +269,9 @@
 
 <h2 id="example-output-format">Example: output format</h2>
 
-<p>The <code class="highlighter-rouge">-o</code> option controls output format.</p>
+<p>The <code class="language-plaintext highlighter-rouge">-o</code> option controls output format.</p>
 
-<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlsh <span class="nt">-o</span> mysql <span class="k">select </span>min<span class="se">\(</span>size_k<span class="se">\)</span>, max<span class="se">\(</span>size_k<span class="se">\)</span> from du
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlsh <span class="nt">-o</span> mysql <span class="k">select </span>min<span class="se">\(</span>size_k<span class="se">\)</span>, max<span class="se">\(</span>size_k<span class="se">\)</span> from <span class="nb">du</span>
 +--------+--------+
 | EXPR<span class="nv">$0</span> | EXPR<span class="nv">$1</span> |
 +--------+--------+
@@ -281,7 +281,7 @@
 
 <h2 id="example-jps">Example: jps</h2>
 
-<p>provides a display of all current java process pids In <code class="highlighter-rouge">sqlsh</code>:</p>
+<p>provides a display of all current java process pids In <code class="language-plaintext highlighter-rouge">sqlsh</code>:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlsh <span class="k">select </span>distinct jps.<span class="se">\`</span>pid<span class="se">\`</span>, jps.<span class="se">\`</span>info<span class="se">\`</span> from jps
 +--------+---------------------+
@@ -313,16 +313,16 @@
 <ul>
   <li>Allow ‘-‘and ‘.’ in unquoted table names (to match typical file names)</li>
   <li>Allow ordinal field references, for example ‘$3’. This would help for files
-that do not have named fields, for instance <code class="highlighter-rouge">stdin</code>, but you could use them
+that do not have named fields, for instance <code class="language-plaintext highlighter-rouge">stdin</code>, but you could use them
 even if fields have names. Also ‘$0’ to mean the whole input line.</li>
-  <li>Use the file adapter, e.g. <code class="highlighter-rouge">select * from file.scott.emp</code> would use the
-<a href="file_adapter.html">file adapter</a> to open the file <code class="highlighter-rouge">scott/emp.csv</code>
+  <li>Use the file adapter, e.g. <code class="language-plaintext highlighter-rouge">select * from file.scott.emp</code> would use the
+<a href="file_adapter.html">file adapter</a> to open the file <code class="language-plaintext highlighter-rouge">scott/emp.csv</code>
 </li>
   <li>More tables based on git, e.g. branches, tags, files changed in each commit</li>
   <li>
-<code class="highlighter-rouge">wc</code> function, e.g. <code class="highlighter-rouge">select path, lineCount from git_ls_files cross apply wc(path)</code>
+<code class="language-plaintext highlighter-rouge">wc</code> function, e.g. <code class="language-plaintext highlighter-rouge">select path, lineCount from git_ls_files cross apply wc(path)</code>
 </li>
-  <li>Move <code class="highlighter-rouge">sqlsh</code> command, or at least the java code underneath it,
+  <li>Move <code class="language-plaintext highlighter-rouge">sqlsh</code> command, or at least the java code underneath it,
 into <a href="https://github.com/julianhyde/sqlline">sqlline</a>
 </li>
 </ul>
@@ -636,7 +636,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/pig_adapter.html b/docs/pig_adapter.html
index f8a702c..aef9759 100644
--- a/docs/pig_adapter.html
+++ b/docs/pig_adapter.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Pig adapter</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -90,27 +90,27 @@
 as follows.</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SALES"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
-    </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"PIG"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.pig.PigSchemaFactory"</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"tables"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"t"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.pig.PigTableFactory"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"file"</span><span class="p">:</span><span class="w"> </span><span class="s2">"data.txt"</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"columns"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"tc0"</span><span class="p">,</span><span class="w"> </span><span class="s2">"tc1"</span><span class="p">]</span><span class="w">
+  </span><span class="nl">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SALES"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
+    </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"PIG"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.pig.PigSchemaFactory"</span><span class="p">,</span><span class="w">
+    </span><span class="nl">"tables"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">{</span><span class="w">
+      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"t"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.pig.PigTableFactory"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="nl">"file"</span><span class="p">:</span><span class="w"> </span><span class="s2">"data.txt"</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"columns"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"tc0"</span><span class="p">,</span><span class="w"> </span><span class="s2">"tc1"</span><span class="p">]</span><span class="w">
       </span><span class="p">}</span><span class="w">
     </span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"s"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.pig.PigTableFactory"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"file"</span><span class="p">:</span><span class="w"> </span><span class="s2">"data2.txt"</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"columns"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"sc0"</span><span class="p">,</span><span class="w"> </span><span class="s2">"sc1"</span><span class="p">]</span><span class="w">
+      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"s"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.pig.PigTableFactory"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="nl">"file"</span><span class="p">:</span><span class="w"> </span><span class="s2">"data2.txt"</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"columns"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"sc0"</span><span class="p">,</span><span class="w"> </span><span class="s2">"sc1"</span><span class="p">]</span><span class="w">
       </span><span class="p">}</span><span class="w">
     </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
   </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
@@ -448,7 +448,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/powered_by.html b/docs/powered_by.html
index 9cef8c9..93b82e1 100644
--- a/docs/powered_by.html
+++ b/docs/powered_by.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Powered by Calcite</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -104,7 +104,7 @@
 </ul>
 
 <p>Is your company or project powered by Calcite?
-<a href="https://github.com/apache/calcite/blob/master/site/_docs/powered_by.md">Add it to this page</a>
+<a href="https://github.com/apache/calcite/blob/main/site/_docs/powered_by.md">Add it to this page</a>
 and then use the “powered by Apache Calcite” logo
 (<a href="/img/pb-calcite-140.png">140 px</a>
 or <a href="/img/pb-calcite-240.png">240 px</a>)
@@ -540,7 +540,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/redis_adapter.html b/docs/redis_adapter.html
index 0e6dafe..cc2696b 100644
--- a/docs/redis_adapter.html
+++ b/docs/redis_adapter.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Redis adapter</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -83,7 +83,7 @@
 <p>Calcite’s Redis adapter allows you to query data in Redis using SQL, combining it with data in other Calcite schemas.</p>
 
 <p>The Redis adapter allows querying of live data stored in Redis. Each Redis key-value pair is presented as a single row. Rows can be broken down into cells by using table definition files.
-Redis <code class="highlighter-rouge">string</code> ,<code class="highlighter-rouge">hash</code>, <code class="highlighter-rouge">sets</code>, <code class="highlighter-rouge">zsets</code>, <code class="highlighter-rouge">list</code> value types are supported;</p>
+Redis <code class="language-plaintext highlighter-rouge">string</code> ,<code class="language-plaintext highlighter-rouge">hash</code>, <code class="language-plaintext highlighter-rouge">sets</code>, <code class="language-plaintext highlighter-rouge">zsets</code>, <code class="language-plaintext highlighter-rouge">list</code> value types are supported;</p>
 
 <p>First, we need a <a href="/docs/model.html">model definition</a>.
 The model gives Calcite the necessary parameters to create an instance of the Redis adapter.</p>
@@ -91,79 +91,79 @@
 <p>A basic example of a model file is given below:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
-  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="nl">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
+  </span><span class="nl">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.redis.RedisSchemaFactory"</span><span class="p">,</span><span class="w">
-      </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"host"</span><span class="p">:</span><span class="w"> </span><span class="s2">"localhost"</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"port"</span><span class="p">:</span><span class="w"> </span><span class="mi">6379</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"database"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
-        </span><span class="s2">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">""</span><span class="w">
+      </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"foodmart"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.redis.RedisSchemaFactory"</span><span class="p">,</span><span class="w">
+      </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="nl">"host"</span><span class="p">:</span><span class="w"> </span><span class="s2">"localhost"</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"port"</span><span class="p">:</span><span class="w"> </span><span class="mi">6379</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"database"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w">
+        </span><span class="nl">"password"</span><span class="p">:</span><span class="w"> </span><span class="s2">""</span><span class="w">
       </span><span class="p">},</span><span class="w">
-      </span><span class="s2">"tables"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+      </span><span class="nl">"tables"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
         </span><span class="p">{</span><span class="w">
-          </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"json_01"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.redis.RedisTableFactory"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-            </span><span class="s2">"dataFormat"</span><span class="p">:</span><span class="w"> </span><span class="s2">"json"</span><span class="p">,</span><span class="w">
-            </span><span class="s2">"fields"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+          </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"json_01"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.redis.RedisTableFactory"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+            </span><span class="nl">"dataFormat"</span><span class="p">:</span><span class="w"> </span><span class="s2">"json"</span><span class="p">,</span><span class="w">
+            </span><span class="nl">"fields"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
               </span><span class="p">{</span><span class="w">
-                </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"DEPTNO"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"varchar"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="s2">"DEPTNO"</span><span class="w">
+                </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"DEPTNO"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"varchar"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="s2">"DEPTNO"</span><span class="w">
               </span><span class="p">},</span><span class="w">
               </span><span class="p">{</span><span class="w">
-                </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"NAME"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"varchar"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="s2">"NAME"</span><span class="w">
+                </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"NAME"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"varchar"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="s2">"NAME"</span><span class="w">
               </span><span class="p">}</span><span class="w">
             </span><span class="p">]</span><span class="w">
           </span><span class="p">}</span><span class="w">
         </span><span class="p">},</span><span class="w">
         </span><span class="p">{</span><span class="w">
-          </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"raw_01"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.redis.RedisTableFactory"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-            </span><span class="s2">"dataFormat"</span><span class="p">:</span><span class="w"> </span><span class="s2">"raw"</span><span class="p">,</span><span class="w">
-            </span><span class="s2">"fields"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+          </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"raw_01"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.redis.RedisTableFactory"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+            </span><span class="nl">"dataFormat"</span><span class="p">:</span><span class="w"> </span><span class="s2">"raw"</span><span class="p">,</span><span class="w">
+            </span><span class="nl">"fields"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
               </span><span class="p">{</span><span class="w">
-                </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"id"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"varchar"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="s2">"id"</span><span class="w">
+                </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"id"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"varchar"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="s2">"id"</span><span class="w">
               </span><span class="p">},</span><span class="w">
               </span><span class="p">{</span><span class="w">
-                </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"city"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"varchar"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="s2">"city"</span><span class="w">
+                </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"city"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"varchar"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="s2">"city"</span><span class="w">
               </span><span class="p">},</span><span class="w">
               </span><span class="p">{</span><span class="w">
-                </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pop"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"int"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pop"</span><span class="w">
+                </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pop"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"int"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pop"</span><span class="w">
               </span><span class="p">}</span><span class="w">
             </span><span class="p">]</span><span class="w">
           </span><span class="p">}</span><span class="w">
         </span><span class="p">},</span><span class="w">
         </span><span class="p">{</span><span class="w">
-          </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"csv_01"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.redis.RedisTableFactory"</span><span class="p">,</span><span class="w">
-          </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-            </span><span class="s2">"dataFormat"</span><span class="p">:</span><span class="w"> </span><span class="s2">"csv"</span><span class="p">,</span><span class="w">
-            </span><span class="s2">"keyDelimiter"</span><span class="p">:</span><span class="w"> </span><span class="s2">":"</span><span class="p">,</span><span class="w">
-            </span><span class="s2">"fields"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+          </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"csv_01"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.redis.RedisTableFactory"</span><span class="p">,</span><span class="w">
+          </span><span class="nl">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+            </span><span class="nl">"dataFormat"</span><span class="p">:</span><span class="w"> </span><span class="s2">"csv"</span><span class="p">,</span><span class="w">
+            </span><span class="nl">"keyDelimiter"</span><span class="p">:</span><span class="w"> </span><span class="s2">":"</span><span class="p">,</span><span class="w">
+            </span><span class="nl">"fields"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
               </span><span class="p">{</span><span class="w">
-                </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"EMPNO"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"varchar"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w">
+                </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"EMPNO"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"varchar"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="w">
               </span><span class="p">},</span><span class="w">
               </span><span class="p">{</span><span class="w">
-                </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"NAME"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"varchar"</span><span class="p">,</span><span class="w">
-                </span><span class="s2">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="w">
+                </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"NAME"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"varchar"</span><span class="p">,</span><span class="w">
+                </span><span class="nl">"mapping"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="w">
               </span><span class="p">}</span><span class="w">
             </span><span class="p">]</span><span class="w">
           </span><span class="p">}</span><span class="w">
@@ -173,9 +173,9 @@
   </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
-<p>This file is stored as <a href="https://github.com/apache/calcite/blob/master/redis/src/test/resources/redis-mix-model.json"><code class="highlighter-rouge">redis/src/test/resources/redis-mix-model.json</code></a>,
+<p>This file is stored as <a href="https://github.com/apache/calcite/blob/main/redis/src/test/resources/redis-mix-model.json"><code class="language-plaintext highlighter-rouge">redis/src/test/resources/redis-mix-model.json</code></a>,
 so you can connect to Redis via
-<a href="https://github.com/julianhyde/sqlline"><code class="highlighter-rouge">sqlline</code></a>
+<a href="https://github.com/julianhyde/sqlline"><code class="language-plaintext highlighter-rouge">sqlline</code></a>
 as follows:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash">From the model above, you can see the schema information of the table. You need to start a Redis service before the query, When the <span class="nb">source </span>code build is executed, a redis service is started to load the following <span class="nb">test </span>data.<span class="sb">`</span>redis/src/test/resources/start.sh<span class="sb">`</span> is used to start this service.<span class="sb">`</span>redis/src/test/resources/stop.sh<span class="sb">`</span> is used to stop this service.
@@ -189,7 +189,7 @@
 |           | foodmart    | json_01    | TABLE        |         |          |            |           |                           |                |
 |           | foodmart    | raw_01     | TABLE        |         |          |            |           |                           |                |
 +-----------+-------------+------------+--------------+---------+----------+------------+-----------+---------------------------+----------------+
-sqlline&gt; Select a.DEPTNO, b.NAME from <span class="s2">"csv_01"</span> a left join <span class="s2">"json_02"</span> b on a.DEPTNO<span class="o">=</span>b.DEPTNO<span class="p">;</span>
+sqlline&gt; Select a.DEPTNO, b.NAME from <span class="s2">"csv_01"</span> a left <span class="nb">join</span> <span class="s2">"json_02"</span> b on a.DEPTNO<span class="o">=</span>b.DEPTNO<span class="p">;</span>
 +--------+----------+
 | DEPTNO |   NAME   |
 +--------+----------+
@@ -197,21 +197,21 @@
 +--------+----------+
 1 row selected <span class="o">(</span>3.304 seconds<span class="o">)</span></code></pre></figure>
 
-<p>This query shows the result of the join query in a CSV format table <code class="highlighter-rouge">csv_01</code> and a JSON format table <code class="highlighter-rouge">json_02</code>.</p>
+<p>This query shows the result of the join query in a CSV format table <code class="language-plaintext highlighter-rouge">csv_01</code> and a JSON format table <code class="language-plaintext highlighter-rouge">json_02</code>.</p>
 
 <p>Here are a few details about the fields:</p>
 
-<p>The <code class="highlighter-rouge">keyDelimiter</code> is used to split the value, the default is a colon, and the split value is used to map the field column. This only works for the CSV format.</p>
+<p>The <code class="language-plaintext highlighter-rouge">keyDelimiter</code> is used to split the value, the default is a colon, and the split value is used to map the field column. This only works for the CSV format.</p>
 
-<p>The <code class="highlighter-rouge">format</code> key is used to specify the format of the data in Redis. Currently, it supports: <code class="highlighter-rouge">"csv"</code>, <code class="highlighter-rouge">"json"</code>, and <code class="highlighter-rouge">"raw"</code>. The <code class="highlighter-rouge">"raw"</code> format keeps the original Redis key and value intact and only one field key is used for the query. The details are not described below.</p>
+<p>The <code class="language-plaintext highlighter-rouge">format</code> key is used to specify the format of the data in Redis. Currently, it supports: <code class="language-plaintext highlighter-rouge">"csv"</code>, <code class="language-plaintext highlighter-rouge">"json"</code>, and <code class="language-plaintext highlighter-rouge">"raw"</code>. The <code class="language-plaintext highlighter-rouge">"raw"</code> format keeps the original Redis key and value intact and only one field key is used for the query. The details are not described below.</p>
 
-<p>The function of <code class="highlighter-rouge">mapping</code> is to map the columns of Redis to the underlying data. Since there is no concept of columns in Redis, the specific mapping method varies according to the format. For example, with <code class="highlighter-rouge">"csv"</code>, we know that the CSV data will be formed after being parsed. The corresponding column mapping uses the index (subscript) of the underlying array. In the example above, <code class="highlighter-rouge">EMPNO</code> is mapped to index 0, <code class="highlighter-rouge">NAME</code> is mapped to index 1 and so on.</p>
+<p>The function of <code class="language-plaintext highlighter-rouge">mapping</code> is to map the columns of Redis to the underlying data. Since there is no concept of columns in Redis, the specific mapping method varies according to the format. For example, with <code class="language-plaintext highlighter-rouge">"csv"</code>, we know that the CSV data will be formed after being parsed. The corresponding column mapping uses the index (subscript) of the underlying array. In the example above, <code class="language-plaintext highlighter-rouge">EMPNO</code> is mapped to index 0, <code class="language-plaintext highlighter-rouge">NAME</code> is mapped to index 1 and so on.</p>
 
 <p>Currently the Redis adapter supports three formats: raw, JSON, and CSV.</p>
 
 <h2 id="example-raw">Example: raw</h2>
 
-<p>The raw format maintains the original Redis key-value format with only one column <code class="highlighter-rouge">key</code>:</p>
+<p>The raw format maintains the original Redis key-value format with only one column <code class="language-plaintext highlighter-rouge">key</code>:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash">127.0.0.1:6379&gt; LPUSH raw_02 <span class="s2">"book1"</span>
 sqlline&gt; <span class="k">select</span> <span class="k">*</span> from <span class="s2">"raw_02"</span><span class="p">;</span>
@@ -261,7 +261,7 @@
 
 <h2 id="example-csv">Example: CSV</h2>
 
-<p>The CSV format parses a Redis string value and combines the mapping in fields into multiple columns. The default separator is <code class="highlighter-rouge">:</code>.</p>
+<p>The CSV format parses a Redis string value and combines the mapping in fields into multiple columns. The default separator is <code class="language-plaintext highlighter-rouge">:</code>.</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash">127.0.0.1:6379&gt; LPUSH csv_02 <span class="s2">"10:Sales"</span></code></pre></figure>
 
@@ -608,7 +608,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/reference.html b/docs/reference.html
index 450740e..dcf28aa 100644
--- a/docs/reference.html
+++ b/docs/reference.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>SQL language</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -155,28 +155,28 @@
       <span class="k">statement</span> <span class="p">[</span> <span class="s1">';'</span> <span class="k">statement</span> <span class="p">]</span><span class="o">*</span> <span class="p">[</span> <span class="s1">';'</span> <span class="p">]</span>
 
 <span class="n">setStatement</span><span class="p">:</span>
-      <span class="p">[</span> <span class="k">ALTER</span> <span class="err">{</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="err">}</span> <span class="p">]</span> <span class="k">SET</span> <span class="n">identifier</span> <span class="s1">'='</span> <span class="n">expression</span>
+      <span class="p">[</span> <span class="k">ALTER</span> <span class="p">{</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="p">}</span> <span class="p">]</span> <span class="k">SET</span> <span class="n">identifier</span> <span class="s1">'='</span> <span class="n">expression</span>
 
 <span class="n">resetStatement</span><span class="p">:</span>
-      <span class="p">[</span> <span class="k">ALTER</span> <span class="err">{</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="err">}</span> <span class="p">]</span> <span class="k">RESET</span> <span class="n">identifier</span>
-  <span class="o">|</span>   <span class="p">[</span> <span class="k">ALTER</span> <span class="err">{</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="err">}</span> <span class="p">]</span> <span class="k">RESET</span> <span class="k">ALL</span>
+      <span class="p">[</span> <span class="k">ALTER</span> <span class="p">{</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="p">}</span> <span class="p">]</span> <span class="k">RESET</span> <span class="n">identifier</span>
+  <span class="o">|</span>   <span class="p">[</span> <span class="k">ALTER</span> <span class="p">{</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="p">}</span> <span class="p">]</span> <span class="k">RESET</span> <span class="k">ALL</span>
 
 <span class="k">explain</span><span class="p">:</span>
       <span class="k">EXPLAIN</span> <span class="n">PLAN</span>
       <span class="p">[</span> <span class="k">WITH</span> <span class="k">TYPE</span> <span class="o">|</span> <span class="k">WITH</span> <span class="k">IMPLEMENTATION</span> <span class="o">|</span> <span class="k">WITHOUT</span> <span class="k">IMPLEMENTATION</span> <span class="p">]</span>
       <span class="p">[</span> <span class="k">EXCLUDING</span> <span class="n">ATTRIBUTES</span> <span class="o">|</span> <span class="k">INCLUDING</span> <span class="p">[</span> <span class="k">ALL</span> <span class="p">]</span> <span class="n">ATTRIBUTES</span> <span class="p">]</span>
       <span class="p">[</span> <span class="k">AS</span> <span class="n">JSON</span> <span class="o">|</span> <span class="k">AS</span> <span class="n">XML</span> <span class="o">|</span> <span class="k">AS</span> <span class="n">DOT</span> <span class="p">]</span>
-      <span class="k">FOR</span> <span class="err">{</span> <span class="n">query</span> <span class="o">|</span> <span class="k">insert</span> <span class="o">|</span> <span class="k">update</span> <span class="o">|</span> <span class="n">merge</span> <span class="o">|</span> <span class="k">delete</span> <span class="err">}</span>
+      <span class="k">FOR</span> <span class="p">{</span> <span class="n">query</span> <span class="o">|</span> <span class="k">insert</span> <span class="o">|</span> <span class="k">update</span> <span class="o">|</span> <span class="n">merge</span> <span class="o">|</span> <span class="k">delete</span> <span class="p">}</span>
 
 <span class="k">describe</span><span class="p">:</span>
       <span class="k">DESCRIBE</span> <span class="k">DATABASE</span> <span class="n">databaseName</span>
   <span class="o">|</span>   <span class="k">DESCRIBE</span> <span class="k">CATALOG</span> <span class="p">[</span> <span class="n">databaseName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">catalogName</span>
   <span class="o">|</span>   <span class="k">DESCRIBE</span> <span class="k">SCHEMA</span> <span class="p">[</span> <span class="p">[</span> <span class="n">databaseName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">catalogName</span> <span class="p">]</span> <span class="p">.</span> <span class="n">schemaName</span>
   <span class="o">|</span>   <span class="k">DESCRIBE</span> <span class="p">[</span> <span class="k">TABLE</span> <span class="p">]</span> <span class="p">[</span> <span class="p">[</span> <span class="p">[</span> <span class="n">databaseName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">catalogName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">schemaName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">tableName</span> <span class="p">[</span> <span class="n">columnName</span> <span class="p">]</span>
-  <span class="o">|</span>   <span class="k">DESCRIBE</span> <span class="p">[</span> <span class="k">STATEMENT</span> <span class="p">]</span> <span class="err">{</span> <span class="n">query</span> <span class="o">|</span> <span class="k">insert</span> <span class="o">|</span> <span class="k">update</span> <span class="o">|</span> <span class="n">merge</span> <span class="o">|</span> <span class="k">delete</span> <span class="err">}</span>
+  <span class="o">|</span>   <span class="k">DESCRIBE</span> <span class="p">[</span> <span class="k">STATEMENT</span> <span class="p">]</span> <span class="p">{</span> <span class="n">query</span> <span class="o">|</span> <span class="k">insert</span> <span class="o">|</span> <span class="k">update</span> <span class="o">|</span> <span class="n">merge</span> <span class="o">|</span> <span class="k">delete</span> <span class="p">}</span>
 
 <span class="k">insert</span><span class="p">:</span>
-      <span class="err">{</span> <span class="k">INSERT</span> <span class="o">|</span> <span class="n">UPSERT</span> <span class="err">}</span> <span class="k">INTO</span> <span class="n">tablePrimary</span>
+      <span class="p">{</span> <span class="k">INSERT</span> <span class="o">|</span> <span class="n">UPSERT</span> <span class="p">}</span> <span class="k">INTO</span> <span class="n">tablePrimary</span>
       <span class="p">[</span> <span class="s1">'('</span> <span class="k">column</span> <span class="p">[,</span> <span class="k">column</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
       <span class="n">query</span>
 
@@ -202,18 +202,18 @@
 <span class="n">query</span><span class="p">:</span>
       <span class="k">values</span>
   <span class="o">|</span>   <span class="k">WITH</span> <span class="n">withItem</span> <span class="p">[</span> <span class="p">,</span> <span class="n">withItem</span> <span class="p">]</span><span class="o">*</span> <span class="n">query</span>
-  <span class="o">|</span>   <span class="err">{</span>
+  <span class="o">|</span>   <span class="p">{</span>
           <span class="k">select</span>
       <span class="o">|</span>   <span class="n">selectWithoutFrom</span>
       <span class="o">|</span>   <span class="n">query</span> <span class="k">UNION</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="n">query</span>
       <span class="o">|</span>   <span class="n">query</span> <span class="k">EXCEPT</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="n">query</span>
       <span class="o">|</span>   <span class="n">query</span> <span class="n">MINUS</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="n">query</span>
       <span class="o">|</span>   <span class="n">query</span> <span class="k">INTERSECT</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="n">query</span>
-      <span class="err">}</span>
+      <span class="p">}</span>
       <span class="p">[</span> <span class="k">ORDER</span> <span class="k">BY</span> <span class="n">orderItem</span> <span class="p">[,</span> <span class="n">orderItem</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
-      <span class="p">[</span> <span class="k">LIMIT</span> <span class="p">[</span> <span class="k">start</span><span class="p">,</span> <span class="p">]</span> <span class="err">{</span> <span class="k">count</span> <span class="o">|</span> <span class="k">ALL</span> <span class="err">}</span> <span class="p">]</span>
-      <span class="p">[</span> <span class="k">OFFSET</span> <span class="k">start</span> <span class="err">{</span> <span class="k">ROW</span> <span class="o">|</span> <span class="k">ROWS</span> <span class="err">}</span> <span class="p">]</span>
-      <span class="p">[</span> <span class="k">FETCH</span> <span class="err">{</span> <span class="k">FIRST</span> <span class="o">|</span> <span class="k">NEXT</span> <span class="err">}</span> <span class="p">[</span> <span class="k">count</span> <span class="p">]</span> <span class="err">{</span> <span class="k">ROW</span> <span class="o">|</span> <span class="k">ROWS</span> <span class="err">}</span> <span class="k">ONLY</span> <span class="p">]</span>
+      <span class="p">[</span> <span class="k">LIMIT</span> <span class="p">[</span> <span class="k">start</span><span class="p">,</span> <span class="p">]</span> <span class="p">{</span> <span class="k">count</span> <span class="o">|</span> <span class="k">ALL</span> <span class="p">}</span> <span class="p">]</span>
+      <span class="p">[</span> <span class="k">OFFSET</span> <span class="k">start</span> <span class="p">{</span> <span class="k">ROW</span> <span class="o">|</span> <span class="k">ROWS</span> <span class="p">}</span> <span class="p">]</span>
+      <span class="p">[</span> <span class="k">FETCH</span> <span class="p">{</span> <span class="k">FIRST</span> <span class="o">|</span> <span class="k">NEXT</span> <span class="p">}</span> <span class="p">[</span> <span class="k">count</span> <span class="p">]</span> <span class="p">{</span> <span class="k">ROW</span> <span class="o">|</span> <span class="k">ROWS</span> <span class="p">}</span> <span class="k">ONLY</span> <span class="p">]</span>
 
 <span class="n">withItem</span><span class="p">:</span>
       <span class="n">name</span>
@@ -225,16 +225,16 @@
 
 <span class="k">select</span><span class="p">:</span>
       <span class="k">SELECT</span> <span class="p">[</span> <span class="n">hintComment</span> <span class="p">]</span> <span class="p">[</span> <span class="n">STREAM</span> <span class="p">]</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span>
-          <span class="err">{</span> <span class="o">*</span> <span class="o">|</span> <span class="n">projectItem</span> <span class="p">[,</span> <span class="n">projectItem</span> <span class="p">]</span><span class="o">*</span> <span class="err">}</span>
+          <span class="p">{</span> <span class="o">*</span> <span class="o">|</span> <span class="n">projectItem</span> <span class="p">[,</span> <span class="n">projectItem</span> <span class="p">]</span><span class="o">*</span> <span class="p">}</span>
       <span class="k">FROM</span> <span class="n">tableExpression</span>
       <span class="p">[</span> <span class="k">WHERE</span> <span class="n">booleanExpression</span> <span class="p">]</span>
-      <span class="p">[</span> <span class="k">GROUP</span> <span class="k">BY</span> <span class="err">{</span> <span class="n">groupItem</span> <span class="p">[,</span> <span class="n">groupItem</span> <span class="p">]</span><span class="o">*</span> <span class="err">}</span> <span class="p">]</span>
+      <span class="p">[</span> <span class="k">GROUP</span> <span class="k">BY</span> <span class="p">{</span> <span class="n">groupItem</span> <span class="p">[,</span> <span class="n">groupItem</span> <span class="p">]</span><span class="o">*</span> <span class="p">}</span> <span class="p">]</span>
       <span class="p">[</span> <span class="k">HAVING</span> <span class="n">booleanExpression</span> <span class="p">]</span>
-      <span class="p">[</span> <span class="n">WINDOW</span> <span class="n">windowName</span> <span class="k">AS</span> <span class="n">windowSpec</span> <span class="p">[,</span> <span class="n">windowName</span> <span class="k">AS</span> <span class="n">windowSpec</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
+      <span class="p">[</span> <span class="k">WINDOW</span> <span class="n">windowName</span> <span class="k">AS</span> <span class="n">windowSpec</span> <span class="p">[,</span> <span class="n">windowName</span> <span class="k">AS</span> <span class="n">windowSpec</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
 
 <span class="n">selectWithoutFrom</span><span class="p">:</span>
       <span class="k">SELECT</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span>
-          <span class="err">{</span> <span class="o">*</span> <span class="o">|</span> <span class="n">projectItem</span> <span class="p">[,</span> <span class="n">projectItem</span> <span class="p">]</span><span class="o">*</span> <span class="err">}</span>
+          <span class="p">{</span> <span class="o">*</span> <span class="o">|</span> <span class="n">projectItem</span> <span class="p">[,</span> <span class="n">projectItem</span> <span class="p">]</span><span class="o">*</span> <span class="p">}</span>
 
 <span class="n">projectItem</span><span class="p">:</span>
       <span class="n">expression</span> <span class="p">[</span> <span class="p">[</span> <span class="k">AS</span> <span class="p">]</span> <span class="n">columnAlias</span> <span class="p">]</span>
@@ -242,7 +242,7 @@
 
 <span class="n">tableExpression</span><span class="p">:</span>
       <span class="n">tableReference</span> <span class="p">[,</span> <span class="n">tableReference</span> <span class="p">]</span><span class="o">*</span>
-  <span class="o">|</span>   <span class="n">tableExpression</span> <span class="p">[</span> <span class="k">NATURAL</span> <span class="p">]</span> <span class="p">[</span> <span class="err">{</span> <span class="k">LEFT</span> <span class="o">|</span> <span class="k">RIGHT</span> <span class="o">|</span> <span class="k">FULL</span> <span class="err">}</span> <span class="p">[</span> <span class="k">OUTER</span> <span class="p">]</span> <span class="p">]</span> <span class="k">JOIN</span> <span class="n">tableExpression</span> <span class="p">[</span> <span class="n">joinCondition</span> <span class="p">]</span>
+  <span class="o">|</span>   <span class="n">tableExpression</span> <span class="p">[</span> <span class="k">NATURAL</span> <span class="p">]</span> <span class="p">[</span> <span class="p">{</span> <span class="k">LEFT</span> <span class="o">|</span> <span class="k">RIGHT</span> <span class="o">|</span> <span class="k">FULL</span> <span class="p">}</span> <span class="p">[</span> <span class="k">OUTER</span> <span class="p">]</span> <span class="p">]</span> <span class="k">JOIN</span> <span class="n">tableExpression</span> <span class="p">[</span> <span class="n">joinCondition</span> <span class="p">]</span>
   <span class="o">|</span>   <span class="n">tableExpression</span> <span class="k">CROSS</span> <span class="k">JOIN</span> <span class="n">tableExpression</span>
   <span class="o">|</span>   <span class="n">tableExpression</span> <span class="p">[</span> <span class="k">CROSS</span> <span class="o">|</span> <span class="k">OUTER</span> <span class="p">]</span> <span class="n">APPLY</span> <span class="n">tableExpression</span>
 
@@ -339,7 +339,7 @@
   <span class="o">|</span>   <span class="k">ROLLUP</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
   <span class="o">|</span>   <span class="k">GROUPING</span> <span class="k">SETS</span> <span class="s1">'('</span> <span class="n">groupItem</span> <span class="p">[,</span> <span class="n">groupItem</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
 
-<span class="n">window</span><span class="p">:</span>
+<span class="k">window</span><span class="p">:</span>
       <span class="n">windowName</span>
   <span class="o">|</span>   <span class="n">windowSpec</span>
 
@@ -347,10 +347,10 @@
       <span class="s1">'('</span>
       <span class="p">[</span> <span class="n">windowName</span> <span class="p">]</span>
       <span class="p">[</span> <span class="k">ORDER</span> <span class="k">BY</span> <span class="n">orderItem</span> <span class="p">[,</span> <span class="n">orderItem</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
-      <span class="p">[</span> <span class="n">PARTITION</span> <span class="k">BY</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
+      <span class="p">[</span> <span class="k">PARTITION</span> <span class="k">BY</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
       <span class="p">[</span>
-          <span class="n">RANGE</span> <span class="n">numericOrIntervalExpression</span> <span class="err">{</span> <span class="n">PRECEDING</span> <span class="o">|</span> <span class="n">FOLLOWING</span> <span class="err">}</span>
-      <span class="o">|</span>   <span class="k">ROWS</span> <span class="n">numericExpression</span> <span class="err">{</span> <span class="n">PRECEDING</span> <span class="o">|</span> <span class="n">FOLLOWING</span> <span class="err">}</span>
+          <span class="k">RANGE</span> <span class="n">numericOrIntervalExpression</span> <span class="p">{</span> <span class="k">PRECEDING</span> <span class="o">|</span> <span class="k">FOLLOWING</span> <span class="p">}</span>
+      <span class="o">|</span>   <span class="k">ROWS</span> <span class="n">numericExpression</span> <span class="p">{</span> <span class="k">PRECEDING</span> <span class="o">|</span> <span class="k">FOLLOWING</span> <span class="p">}</span>
       <span class="p">]</span>
       <span class="s1">')'</span></code></pre></figure>
 
@@ -1108,11 +1108,11 @@
 only contain letters, digits, and underscores. They are implicitly
 converted to upper case.</p>
 
-<p>Quoted identifiers, such as <code class="highlighter-rouge">"Employee Name"</code>, start and end with
+<p>Quoted identifiers, such as <code class="language-plaintext highlighter-rouge">"Employee Name"</code>, start and end with
 double quotes.  They may contain virtually any character, including
 spaces and other punctuation.  If you wish to include a double quote
 in an identifier, use another double quote to escape it, like this:
-<code class="highlighter-rouge">"An employee called ""Fred""."</code>.</p>
+<code class="language-plaintext highlighter-rouge">"An employee called ""Fred""."</code>.</p>
 
 <p>In Calcite, matching identifiers to the name of the referenced object is
 case-sensitive.  But remember that unquoted identifiers are implicitly
@@ -1239,7 +1239,7 @@
 <p>Where:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">timeUnit</span><span class="p">:</span>
-  <span class="n">MILLENNIUM</span> <span class="o">|</span> <span class="n">CENTURY</span> <span class="o">|</span> <span class="n">DECADE</span> <span class="o">|</span> <span class="k">YEAR</span> <span class="o">|</span> <span class="n">QUARTER</span> <span class="o">|</span> <span class="k">MONTH</span> <span class="o">|</span> <span class="n">WEEK</span> <span class="o">|</span> <span class="n">DOY</span> <span class="o">|</span> <span class="n">DOW</span> <span class="o">|</span> <span class="k">DAY</span> <span class="o">|</span> <span class="n">HOUR</span> <span class="o">|</span> <span class="k">MINUTE</span> <span class="o">|</span> <span class="k">SECOND</span> <span class="o">|</span> <span class="n">EPOCH</span></code></pre></figure>
+  <span class="n">MILLENNIUM</span> <span class="o">|</span> <span class="n">CENTURY</span> <span class="o">|</span> <span class="n">DECADE</span> <span class="o">|</span> <span class="nb">YEAR</span> <span class="o">|</span> <span class="n">QUARTER</span> <span class="o">|</span> <span class="k">MONTH</span> <span class="o">|</span> <span class="n">WEEK</span> <span class="o">|</span> <span class="n">DOY</span> <span class="o">|</span> <span class="n">DOW</span> <span class="o">|</span> <span class="k">DAY</span> <span class="o">|</span> <span class="n">HOUR</span> <span class="o">|</span> <span class="k">MINUTE</span> <span class="o">|</span> <span class="k">SECOND</span> <span class="o">|</span> <span class="n">EPOCH</span></code></pre></figure>
 
 <p>Note:</p>
 
@@ -1309,7 +1309,7 @@
 <p>Note:</p>
 
 <ul>
-  <li>Every <code class="highlighter-rouge">ROW</code> column type can have an optional [ NULL | NOT NULL ] suffix
+  <li>Every <code class="language-plaintext highlighter-rouge">ROW</code> column type can have an optional [ NULL | NOT NULL ] suffix
 to indicate if this column type is nullable, default is not nullable.</li>
 </ul>
 
@@ -1320,8 +1320,8 @@
 or binary strings encoded as
 <a href="https://en.wikipedia.org/wiki/Well-known_binary">well-known binary (WKB)</a>.</p>
 
-<p>Where you would use a literal, apply the <code class="highlighter-rouge">ST_GeomFromText</code> function,
-for example <code class="highlighter-rouge">ST_GeomFromText('POINT (30 10)')</code>.</p>
+<p>Where you would use a literal, apply the <code class="language-plaintext highlighter-rouge">ST_GeomFromText</code> function,
+for example <code class="language-plaintext highlighter-rouge">ST_GeomFromText('POINT (30 10)')</code>.</p>
 
 <div class="scroll-table-style"><table>
   <thead>
@@ -1469,7 +1469,7 @@
   </tbody>
 </table></div>
 
-<p>Note that <code class="highlighter-rouge">::</code>,<code class="highlighter-rouge">&lt;=&gt;</code> is dialect-specific, but is shown in this table for
+<p>Note that <code class="language-plaintext highlighter-rouge">::</code>,<code class="language-plaintext highlighter-rouge">&lt;=&gt;</code> is dialect-specific, but is shown in this table for
 completeness.</p>
 
 <h3 id="comparison-operators">Comparison operators</h3>
@@ -1585,7 +1585,7 @@
     </tr>
     <tr>
       <td style="text-align: left">value comparison ANY (sub-query)</td>
-      <td style="text-align: left">Synonym for <code class="highlighter-rouge">SOME</code>
+      <td style="text-align: left">Synonym for <code class="language-plaintext highlighter-rouge">SOME</code>
 </td>
     </tr>
     <tr>
@@ -2001,52 +2001,52 @@
     </tr>
     <tr>
       <td style="text-align: left">YEAR(date)</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(YEAR FROM date)</code>. Returns an integer.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(YEAR FROM date)</code>. Returns an integer.</td>
     </tr>
     <tr>
       <td style="text-align: left">QUARTER(date)</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(QUARTER FROM date)</code>. Returns an integer between 1 and 4.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(QUARTER FROM date)</code>. Returns an integer between 1 and 4.</td>
     </tr>
     <tr>
       <td style="text-align: left">MONTH(date)</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(MONTH FROM date)</code>. Returns an integer between 1 and 12.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(MONTH FROM date)</code>. Returns an integer between 1 and 12.</td>
     </tr>
     <tr>
       <td style="text-align: left">WEEK(date)</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(WEEK FROM date)</code>. Returns an integer between 1 and 53.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(WEEK FROM date)</code>. Returns an integer between 1 and 53.</td>
     </tr>
     <tr>
       <td style="text-align: left">DAYOFYEAR(date)</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(DOY FROM date)</code>. Returns an integer between 1 and 366.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(DOY FROM date)</code>. Returns an integer between 1 and 366.</td>
     </tr>
     <tr>
       <td style="text-align: left">DAYOFMONTH(date)</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(DAY FROM date)</code>. Returns an integer between 1 and 31.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(DAY FROM date)</code>. Returns an integer between 1 and 31.</td>
     </tr>
     <tr>
       <td style="text-align: left">DAYOFWEEK(date)</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(DOW FROM date)</code>. Returns an integer between 1 and 7.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(DOW FROM date)</code>. Returns an integer between 1 and 7.</td>
     </tr>
     <tr>
       <td style="text-align: left">HOUR(date)</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(HOUR FROM date)</code>. Returns an integer between 0 and 23.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(HOUR FROM date)</code>. Returns an integer between 0 and 23.</td>
     </tr>
     <tr>
       <td style="text-align: left">MINUTE(date)</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(MINUTE FROM date)</code>. Returns an integer between 0 and 59.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(MINUTE FROM date)</code>. Returns an integer between 0 and 59.</td>
     </tr>
     <tr>
       <td style="text-align: left">SECOND(date)</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(SECOND FROM date)</code>. Returns an integer between 0 and 59.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(SECOND FROM date)</code>. Returns an integer between 0 and 59.</td>
     </tr>
     <tr>
       <td style="text-align: left">TIMESTAMPADD(timeUnit, integer, datetime)</td>
-      <td style="text-align: left">Returns <em>datetime</em> with an interval of (signed) <em>integer</em> <em>timeUnit</em>s added. Equivalent to <code class="highlighter-rouge">datetime + INTERVAL 'integer' timeUnit</code>
+      <td style="text-align: left">Returns <em>datetime</em> with an interval of (signed) <em>integer</em> <em>timeUnit</em>s added. Equivalent to <code class="language-plaintext highlighter-rouge">datetime + INTERVAL 'integer' timeUnit</code>
 </td>
     </tr>
     <tr>
       <td style="text-align: left">TIMESTAMPDIFF(timeUnit, datetime, datetime2)</td>
-      <td style="text-align: left">Returns the (signed) number of <em>timeUnit</em> intervals between <em>datetime</em> and <em>datetime2</em>. Equivalent to <code class="highlighter-rouge">(datetime2 - datetime) timeUnit</code>
+      <td style="text-align: left">Returns the (signed) number of <em>timeUnit</em> intervals between <em>datetime</em> and <em>datetime2</em>. Equivalent to <code class="language-plaintext highlighter-rouge">(datetime2 - datetime) timeUnit</code>
 </td>
     </tr>
     <tr>
@@ -2056,8 +2056,8 @@
   </tbody>
 </table></div>
 
-<p>Calls to niladic functions such as <code class="highlighter-rouge">CURRENT_DATE</code> do not accept parentheses in
-standard SQL. Calls with parentheses, such as <code class="highlighter-rouge">CURRENT_DATE()</code> are accepted in certain
+<p>Calls to niladic functions such as <code class="language-plaintext highlighter-rouge">CURRENT_DATE</code> do not accept parentheses in
+standard SQL. Calls with parentheses, such as <code class="language-plaintext highlighter-rouge">CURRENT_DATE()</code> are accepted in certain
 <a href="/javadocAggregate/org/apache/calcite/sql/validate/SqlConformance.html#allowNiladicParentheses--">conformance levels</a>.</p>
 
 <p>Not implemented:</p>
@@ -2187,24 +2187,24 @@
   <span class="o">|</span>   <span class="n">compoundIdentifier</span>
 
 <span class="n">sqlTypeName</span><span class="p">:</span>
-      <span class="n">char</span> <span class="p">[</span> <span class="k">precision</span> <span class="p">]</span> <span class="p">[</span> <span class="n">charSet</span> <span class="p">]</span>
-  <span class="o">|</span>   <span class="n">varchar</span> <span class="p">[</span> <span class="k">precision</span> <span class="p">]</span> <span class="p">[</span> <span class="n">charSet</span> <span class="p">]</span>
-  <span class="o">|</span>   <span class="n">DATE</span>
-  <span class="o">|</span>   <span class="n">time</span>
-  <span class="o">|</span>   <span class="k">timestamp</span>
+      <span class="nb">char</span> <span class="p">[</span> <span class="nb">precision</span> <span class="p">]</span> <span class="p">[</span> <span class="n">charSet</span> <span class="p">]</span>
+  <span class="o">|</span>   <span class="nb">varchar</span> <span class="p">[</span> <span class="nb">precision</span> <span class="p">]</span> <span class="p">[</span> <span class="n">charSet</span> <span class="p">]</span>
+  <span class="o">|</span>   <span class="nb">DATE</span>
+  <span class="o">|</span>   <span class="nb">time</span>
+  <span class="o">|</span>   <span class="nb">timestamp</span>
   <span class="o">|</span>   <span class="n">GEOMETRY</span>
-  <span class="o">|</span>   <span class="n">decimal</span> <span class="p">[</span> <span class="k">precision</span> <span class="p">[,</span> <span class="k">scale</span><span class="p">]</span> <span class="p">]</span>
-  <span class="o">|</span>   <span class="n">BOOLEAN</span>
-  <span class="o">|</span>   <span class="n">integer</span>
-  <span class="o">|</span>   <span class="n">BINARY</span> <span class="p">[</span> <span class="k">precision</span> <span class="p">]</span>
-  <span class="o">|</span>   <span class="n">varbinary</span> <span class="p">[</span> <span class="k">precision</span> <span class="p">]</span>
-  <span class="o">|</span>   <span class="n">TINYINT</span>
-  <span class="o">|</span>   <span class="n">SMALLINT</span>
-  <span class="o">|</span>   <span class="n">BIGINT</span>
-  <span class="o">|</span>   <span class="n">REAL</span>
-  <span class="o">|</span>   <span class="n">double</span>
-  <span class="o">|</span>   <span class="n">FLOAT</span>
-  <span class="o">|</span>   <span class="k">ANY</span> <span class="p">[</span> <span class="k">precision</span> <span class="p">[,</span> <span class="k">scale</span><span class="p">]</span> <span class="p">]</span>
+  <span class="o">|</span>   <span class="nb">decimal</span> <span class="p">[</span> <span class="nb">precision</span> <span class="p">[,</span> <span class="k">scale</span><span class="p">]</span> <span class="p">]</span>
+  <span class="o">|</span>   <span class="nb">BOOLEAN</span>
+  <span class="o">|</span>   <span class="nb">integer</span>
+  <span class="o">|</span>   <span class="nb">BINARY</span> <span class="p">[</span> <span class="nb">precision</span> <span class="p">]</span>
+  <span class="o">|</span>   <span class="nb">varbinary</span> <span class="p">[</span> <span class="nb">precision</span> <span class="p">]</span>
+  <span class="o">|</span>   <span class="nb">TINYINT</span>
+  <span class="o">|</span>   <span class="nb">SMALLINT</span>
+  <span class="o">|</span>   <span class="nb">BIGINT</span>
+  <span class="o">|</span>   <span class="nb">REAL</span>
+  <span class="o">|</span>   <span class="nb">double</span>
+  <span class="o">|</span>   <span class="nb">FLOAT</span>
+  <span class="o">|</span>   <span class="k">ANY</span> <span class="p">[</span> <span class="nb">precision</span> <span class="p">[,</span> <span class="k">scale</span><span class="p">]</span> <span class="p">]</span>
 
 <span class="n">collectionsTypeName</span><span class="p">:</span>
       <span class="n">ARRAY</span> <span class="o">|</span> <span class="n">MULTISET</span>
@@ -2215,36 +2215,36 @@
       <span class="p">[</span> <span class="p">,</span> <span class="n">fieldName2</span> <span class="n">fieldType2</span> <span class="p">[</span> <span class="k">NULL</span> <span class="o">|</span> <span class="k">NOT</span> <span class="k">NULL</span> <span class="p">]</span> <span class="p">]</span><span class="o">*</span>
       <span class="s1">')'</span>
 
-<span class="n">char</span><span class="p">:</span>
-      <span class="n">CHARACTER</span> <span class="o">|</span> <span class="n">CHAR</span>
+<span class="nb">char</span><span class="p">:</span>
+      <span class="nb">CHARACTER</span> <span class="o">|</span> <span class="nb">CHAR</span>
 
-<span class="n">varchar</span><span class="p">:</span>
-      <span class="n">char</span> <span class="n">VARYING</span> <span class="o">|</span> <span class="n">VARCHAR</span>
+<span class="nb">varchar</span><span class="p">:</span>
+      <span class="nb">char</span> <span class="nb">VARYING</span> <span class="o">|</span> <span class="nb">VARCHAR</span>
 
-<span class="n">decimal</span><span class="p">:</span>
-      <span class="n">DECIMAL</span> <span class="o">|</span> <span class="n">DEC</span> <span class="o">|</span> <span class="n">NUMERIC</span>
+<span class="nb">decimal</span><span class="p">:</span>
+      <span class="nb">DECIMAL</span> <span class="o">|</span> <span class="nb">DEC</span> <span class="o">|</span> <span class="nb">NUMERIC</span>
 
-<span class="n">integer</span><span class="p">:</span>
-      <span class="n">INTEGER</span> <span class="o">|</span> <span class="n">INT</span>
+<span class="nb">integer</span><span class="p">:</span>
+      <span class="nb">INTEGER</span> <span class="o">|</span> <span class="nb">INT</span>
 
-<span class="n">varbinary</span><span class="p">:</span>
-      <span class="n">BINARY</span> <span class="n">VARYING</span> <span class="o">|</span> <span class="n">VARBINARY</span>
+<span class="nb">varbinary</span><span class="p">:</span>
+      <span class="nb">BINARY</span> <span class="nb">VARYING</span> <span class="o">|</span> <span class="nb">VARBINARY</span>
 
-<span class="n">double</span><span class="p">:</span>
-      <span class="n">DOUBLE</span> <span class="p">[</span> <span class="k">PRECISION</span> <span class="p">]</span>
+<span class="nb">double</span><span class="p">:</span>
+      <span class="nb">DOUBLE</span> <span class="p">[</span> <span class="nb">PRECISION</span> <span class="p">]</span>
 
-<span class="n">time</span><span class="p">:</span>
-      <span class="n">TIME</span> <span class="p">[</span> <span class="k">precision</span> <span class="p">]</span> <span class="p">[</span> <span class="n">timeZone</span> <span class="p">]</span>
+<span class="nb">time</span><span class="p">:</span>
+      <span class="nb">TIME</span> <span class="p">[</span> <span class="nb">precision</span> <span class="p">]</span> <span class="p">[</span> <span class="n">timeZone</span> <span class="p">]</span>
 
-<span class="k">timestamp</span><span class="p">:</span>
-      <span class="k">TIMESTAMP</span> <span class="p">[</span> <span class="k">precision</span> <span class="p">]</span> <span class="p">[</span> <span class="n">timeZone</span> <span class="p">]</span>
+<span class="nb">timestamp</span><span class="p">:</span>
+      <span class="nb">TIMESTAMP</span> <span class="p">[</span> <span class="nb">precision</span> <span class="p">]</span> <span class="p">[</span> <span class="n">timeZone</span> <span class="p">]</span>
 
 <span class="n">charSet</span><span class="p">:</span>
-      <span class="n">CHARACTER</span> <span class="k">SET</span> <span class="n">charSetName</span>
+      <span class="nb">CHARACTER</span> <span class="k">SET</span> <span class="n">charSetName</span>
 
 <span class="n">timeZone</span><span class="p">:</span>
-      <span class="k">WITHOUT</span> <span class="n">TIME</span> <span class="k">ZONE</span>
-  <span class="o">|</span>   <span class="k">WITH</span> <span class="k">LOCAL</span> <span class="n">TIME</span> <span class="k">ZONE</span></code></pre></figure>
+      <span class="k">WITHOUT</span> <span class="nb">TIME</span> <span class="k">ZONE</span>
+  <span class="o">|</span>   <span class="k">WITH</span> <span class="k">LOCAL</span> <span class="nb">TIME</span> <span class="k">ZONE</span></code></pre></figure>
 
 <h4 id="implicit-type-conversion">Implicit Type Conversion</h4>
 
@@ -2554,30 +2554,30 @@
 <h5 id="conversion-contexts-and-strategies">Conversion Contexts and Strategies</h5>
 
 <ul>
-  <li>Set operation (<code class="highlighter-rouge">UNION</code>, <code class="highlighter-rouge">EXCEPT</code>, <code class="highlighter-rouge">INTERSECT</code>): compare every branch
+  <li>Set operation (<code class="language-plaintext highlighter-rouge">UNION</code>, <code class="language-plaintext highlighter-rouge">EXCEPT</code>, <code class="language-plaintext highlighter-rouge">INTERSECT</code>): compare every branch
 row data type and find the common type of each fields pair;</li>
-  <li>Binary arithmetic expression (<code class="highlighter-rouge">+</code>, <code class="highlighter-rouge">-</code>, <code class="highlighter-rouge">&amp;</code>, <code class="highlighter-rouge">^</code>, <code class="highlighter-rouge">/</code>, <code class="highlighter-rouge">%</code>): promote
+  <li>Binary arithmetic expression (<code class="language-plaintext highlighter-rouge">+</code>, <code class="language-plaintext highlighter-rouge">-</code>, <code class="language-plaintext highlighter-rouge">&amp;</code>, <code class="language-plaintext highlighter-rouge">^</code>, <code class="language-plaintext highlighter-rouge">/</code>, <code class="language-plaintext highlighter-rouge">%</code>): promote
 string operand to data type of the other numeric operand;</li>
-  <li>Binary comparison (<code class="highlighter-rouge">=</code>, <code class="highlighter-rouge">&lt;</code>, <code class="highlighter-rouge">&lt;=</code>, <code class="highlighter-rouge">&lt;&gt;</code>, <code class="highlighter-rouge">&gt;</code>, <code class="highlighter-rouge">&gt;=</code>):
-if operands are <code class="highlighter-rouge">STRING</code> and <code class="highlighter-rouge">TIMESTAMP</code>, promote to <code class="highlighter-rouge">TIMESTAMP</code>;
-make <code class="highlighter-rouge">1 = true</code> and <code class="highlighter-rouge">0 = false</code> always evaluate to <code class="highlighter-rouge">TRUE</code>;
+  <li>Binary comparison (<code class="language-plaintext highlighter-rouge">=</code>, <code class="language-plaintext highlighter-rouge">&lt;</code>, <code class="language-plaintext highlighter-rouge">&lt;=</code>, <code class="language-plaintext highlighter-rouge">&lt;&gt;</code>, <code class="language-plaintext highlighter-rouge">&gt;</code>, <code class="language-plaintext highlighter-rouge">&gt;=</code>):
+if operands are <code class="language-plaintext highlighter-rouge">STRING</code> and <code class="language-plaintext highlighter-rouge">TIMESTAMP</code>, promote to <code class="language-plaintext highlighter-rouge">TIMESTAMP</code>;
+make <code class="language-plaintext highlighter-rouge">1 = true</code> and <code class="language-plaintext highlighter-rouge">0 = false</code> always evaluate to <code class="language-plaintext highlighter-rouge">TRUE</code>;
 if there is numeric type operand, find common type for both operands.</li>
   <li>
-<code class="highlighter-rouge">IN</code> sub-query: compare type of LHS and RHS, and find the common type;
+<code class="language-plaintext highlighter-rouge">IN</code> sub-query: compare type of LHS and RHS, and find the common type;
 if it is struct type, find wider type for every field;</li>
   <li>
-<code class="highlighter-rouge">IN</code> expression list: compare every expression to find the common type;</li>
+<code class="language-plaintext highlighter-rouge">IN</code> expression list: compare every expression to find the common type;</li>
   <li>
-<code class="highlighter-rouge">CASE WHEN</code> expression or <code class="highlighter-rouge">COALESCE</code>: find the common wider type of the <code class="highlighter-rouge">THEN</code>
-and <code class="highlighter-rouge">ELSE</code> operands;</li>
-  <li>Character + <code class="highlighter-rouge">INTERVAL</code> or character - <code class="highlighter-rouge">INTERVAL</code>: promote character to
-<code class="highlighter-rouge">TIMESTAMP</code>;</li>
+<code class="language-plaintext highlighter-rouge">CASE WHEN</code> expression or <code class="language-plaintext highlighter-rouge">COALESCE</code>: find the common wider type of the <code class="language-plaintext highlighter-rouge">THEN</code>
+and <code class="language-plaintext highlighter-rouge">ELSE</code> operands;</li>
+  <li>Character + <code class="language-plaintext highlighter-rouge">INTERVAL</code> or character - <code class="language-plaintext highlighter-rouge">INTERVAL</code>: promote character to
+<code class="language-plaintext highlighter-rouge">TIMESTAMP</code>;</li>
   <li>Built-in function: look up the type families registered in the checker,
 find the family default type if checker rules allow it;</li>
   <li>User-defined function (UDF): coerce based on the declared argument types
-of the <code class="highlighter-rouge">eval()</code> method;</li>
+of the <code class="language-plaintext highlighter-rouge">eval()</code> method;</li>
   <li>
-<code class="highlighter-rouge">INSERT</code> and <code class="highlighter-rouge">UPDATE</code>: coerce a source field to counterpart target table
+<code class="language-plaintext highlighter-rouge">INSERT</code> and <code class="language-plaintext highlighter-rouge">UPDATE</code>: coerce a source field to counterpart target table
 field’s type if the two fields differ with type name or precision(scale).</li>
 </ul>
 
@@ -2586,30 +2586,30 @@
 <p>Implicit type coercion of following cases are ignored:</p>
 
 <ul>
-  <li>One of the type is <code class="highlighter-rouge">ANY</code>;</li>
-  <li>Type coercion within <code class="highlighter-rouge">CHARACTER</code> types are always ignored,
-i.e. from <code class="highlighter-rouge">CHAR(20)</code> to <code class="highlighter-rouge">VARCHAR(30)</code>;</li>
+  <li>One of the type is <code class="language-plaintext highlighter-rouge">ANY</code>;</li>
+  <li>Type coercion within <code class="language-plaintext highlighter-rouge">CHARACTER</code> types are always ignored,
+i.e. from <code class="language-plaintext highlighter-rouge">CHAR(20)</code> to <code class="language-plaintext highlighter-rouge">VARCHAR(30)</code>;</li>
   <li>Type coercion from a numeric to another with higher precedence is ignored,
-i.e. from <code class="highlighter-rouge">INT</code> to <code class="highlighter-rouge">LONG</code>.</li>
+i.e. from <code class="language-plaintext highlighter-rouge">INT</code> to <code class="language-plaintext highlighter-rouge">LONG</code>.</li>
 </ul>
 
 <h5 id="strategies-for-finding-common-type">Strategies for Finding Common Type</h5>
 
 <ul>
   <li>If the operator has expected data types, just take them as the
-desired one. (e.g. the UDF would have <code class="highlighter-rouge">eval()</code> method which has
+desired one. (e.g. the UDF would have <code class="language-plaintext highlighter-rouge">eval()</code> method which has
 reflection argument types);</li>
   <li>If there is no expected data type but the data type families are
 registered, try to coerce the arguments to the family’s default data
-type, i.e. the String family will have a <code class="highlighter-rouge">VARCHAR</code> type;</li>
+type, i.e. the String family will have a <code class="language-plaintext highlighter-rouge">VARCHAR</code> type;</li>
   <li>If neither expected data type nor families are specified, try to
-find the tightest common type of the node types, i.e. <code class="highlighter-rouge">INTEGER</code> and
-<code class="highlighter-rouge">DOUBLE</code> will return <code class="highlighter-rouge">DOUBLE</code>, the numeric precision does not lose
+find the tightest common type of the node types, i.e. <code class="language-plaintext highlighter-rouge">INTEGER</code> and
+<code class="language-plaintext highlighter-rouge">DOUBLE</code> will return <code class="language-plaintext highlighter-rouge">DOUBLE</code>, the numeric precision does not lose
 for this case;</li>
   <li>If no tightest common type is found, try to find a wider type,
-i.e. <code class="highlighter-rouge">VARCHAR</code> and <code class="highlighter-rouge">INTEGER</code> will return <code class="highlighter-rouge">INTEGER</code>,
+i.e. <code class="language-plaintext highlighter-rouge">VARCHAR</code> and <code class="language-plaintext highlighter-rouge">INTEGER</code> will return <code class="language-plaintext highlighter-rouge">INTEGER</code>,
 we allow some precision loss when widening decimal to fractional,
-or promote to <code class="highlighter-rouge">VARCHAR</code> type.</li>
+or promote to <code class="language-plaintext highlighter-rouge">VARCHAR</code> type.</li>
 </ul>
 
 <h3 id="value-constructors">Value constructors</h3>
@@ -2872,10 +2872,10 @@
 <p>Where <em>period1</em> and <em>period2</em> are period expressions:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">period</span><span class="p">:</span>
-      <span class="p">(</span><span class="n">datetime</span><span class="p">,</span> <span class="n">datetime</span><span class="p">)</span>
-  <span class="o">|</span>   <span class="p">(</span><span class="n">datetime</span><span class="p">,</span> <span class="n">interval</span><span class="p">)</span>
-  <span class="o">|</span>   <span class="n">PERIOD</span> <span class="p">(</span><span class="n">datetime</span><span class="p">,</span> <span class="n">datetime</span><span class="p">)</span>
-  <span class="o">|</span>   <span class="n">PERIOD</span> <span class="p">(</span><span class="n">datetime</span><span class="p">,</span> <span class="n">interval</span><span class="p">)</span></code></pre></figure>
+      <span class="p">(</span><span class="nb">datetime</span><span class="p">,</span> <span class="nb">datetime</span><span class="p">)</span>
+  <span class="o">|</span>   <span class="p">(</span><span class="nb">datetime</span><span class="p">,</span> <span class="n">interval</span><span class="p">)</span>
+  <span class="o">|</span>   <span class="n">PERIOD</span> <span class="p">(</span><span class="nb">datetime</span><span class="p">,</span> <span class="nb">datetime</span><span class="p">)</span>
+  <span class="o">|</span>   <span class="n">PERIOD</span> <span class="p">(</span><span class="nb">datetime</span><span class="p">,</span> <span class="n">interval</span><span class="p">)</span></code></pre></figure>
 
 <h3 id="jdbc-function-escape">JDBC function escape</h3>
 
@@ -3100,58 +3100,58 @@
   <tbody>
     <tr>
       <td style="text-align: left">{fn CURDATE()}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">CURRENT_DATE</code>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">CURRENT_DATE</code>
 </td>
     </tr>
     <tr>
       <td style="text-align: left">{fn CURTIME()}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">LOCALTIME</code>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">LOCALTIME</code>
 </td>
     </tr>
     <tr>
       <td style="text-align: left">{fn NOW()}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">LOCALTIMESTAMP</code>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">LOCALTIMESTAMP</code>
 </td>
     </tr>
     <tr>
       <td style="text-align: left">{fn YEAR(date)}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(YEAR FROM date)</code>. Returns an integer.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(YEAR FROM date)</code>. Returns an integer.</td>
     </tr>
     <tr>
       <td style="text-align: left">{fn QUARTER(date)}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(QUARTER FROM date)</code>. Returns an integer between 1 and 4.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(QUARTER FROM date)</code>. Returns an integer between 1 and 4.</td>
     </tr>
     <tr>
       <td style="text-align: left">{fn MONTH(date)}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(MONTH FROM date)</code>. Returns an integer between 1 and 12.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(MONTH FROM date)</code>. Returns an integer between 1 and 12.</td>
     </tr>
     <tr>
       <td style="text-align: left">{fn WEEK(date)}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(WEEK FROM date)</code>. Returns an integer between 1 and 53.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(WEEK FROM date)</code>. Returns an integer between 1 and 53.</td>
     </tr>
     <tr>
       <td style="text-align: left">{fn DAYOFYEAR(date)}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(DOY FROM date)</code>. Returns an integer between 1 and 366.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(DOY FROM date)</code>. Returns an integer between 1 and 366.</td>
     </tr>
     <tr>
       <td style="text-align: left">{fn DAYOFMONTH(date)}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(DAY FROM date)</code>. Returns an integer between 1 and 31.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(DAY FROM date)</code>. Returns an integer between 1 and 31.</td>
     </tr>
     <tr>
       <td style="text-align: left">{fn DAYOFWEEK(date)}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(DOW FROM date)</code>. Returns an integer between 1 and 7.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(DOW FROM date)</code>. Returns an integer between 1 and 7.</td>
     </tr>
     <tr>
       <td style="text-align: left">{fn HOUR(date)}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(HOUR FROM date)</code>. Returns an integer between 0 and 23.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(HOUR FROM date)</code>. Returns an integer between 0 and 23.</td>
     </tr>
     <tr>
       <td style="text-align: left">{fn MINUTE(date)}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(MINUTE FROM date)</code>. Returns an integer between 0 and 59.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(MINUTE FROM date)</code>. Returns an integer between 0 and 59.</td>
     </tr>
     <tr>
       <td style="text-align: left">{fn SECOND(date)}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">EXTRACT(SECOND FROM date)</code>. Returns an integer between 0 and 59.</td>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">EXTRACT(SECOND FROM date)</code>. Returns an integer between 0 and 59.</td>
     </tr>
     <tr>
       <td style="text-align: left">{fn TIMESTAMPADD(timeUnit, count, datetime)}</td>
@@ -3176,7 +3176,7 @@
   <tbody>
     <tr>
       <td style="text-align: left">{fn DATABASE()}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">CURRENT_CATALOG</code>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">CURRENT_CATALOG</code>
 </td>
     </tr>
     <tr>
@@ -3185,7 +3185,7 @@
     </tr>
     <tr>
       <td style="text-align: left">{fn USER()}</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">CURRENT_USER</code>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">CURRENT_USER</code>
 </td>
     </tr>
   </tbody>
@@ -3223,21 +3223,21 @@
 <p>where <em>agg</em> is one of the operators in the following table, or a user-defined
 aggregate function.</p>
 
-<p>If <code class="highlighter-rouge">FILTER</code> is present, the aggregate function only considers rows for which
+<p>If <code class="language-plaintext highlighter-rouge">FILTER</code> is present, the aggregate function only considers rows for which
 <em>condition</em> evaluates to TRUE.</p>
 
-<p>If <code class="highlighter-rouge">DISTINCT</code> is present, duplicate argument values are eliminated before being
+<p>If <code class="language-plaintext highlighter-rouge">DISTINCT</code> is present, duplicate argument values are eliminated before being
 passed to the aggregate function.</p>
 
-<p>If <code class="highlighter-rouge">WITHIN DISTINCT</code> is present, argument values are made distinct within
+<p>If <code class="language-plaintext highlighter-rouge">WITHIN DISTINCT</code> is present, argument values are made distinct within
 each value of specified keys before being passed to the aggregate function.</p>
 
-<p>If <code class="highlighter-rouge">WITHIN GROUP</code> is present, the aggregate function sorts the input rows
-according to the <code class="highlighter-rouge">ORDER BY</code> clause inside <code class="highlighter-rouge">WITHIN GROUP</code> before aggregating
-values. <code class="highlighter-rouge">WITHIN GROUP</code> is only allowed for hypothetical set functions (<code class="highlighter-rouge">RANK</code>,
-<code class="highlighter-rouge">DENSE_RANK</code>, <code class="highlighter-rouge">PERCENT_RANK</code> and <code class="highlighter-rouge">CUME_DIST</code>), inverse distribution functions
-(<code class="highlighter-rouge">PERCENTILE_CONT</code> and <code class="highlighter-rouge">PERCENTILE_DISC</code>) and collection functions (<code class="highlighter-rouge">COLLECT</code>
-and <code class="highlighter-rouge">LISTAGG</code>).</p>
+<p>If <code class="language-plaintext highlighter-rouge">WITHIN GROUP</code> is present, the aggregate function sorts the input rows
+according to the <code class="language-plaintext highlighter-rouge">ORDER BY</code> clause inside <code class="language-plaintext highlighter-rouge">WITHIN GROUP</code> before aggregating
+values. <code class="language-plaintext highlighter-rouge">WITHIN GROUP</code> is only allowed for hypothetical set functions (<code class="language-plaintext highlighter-rouge">RANK</code>,
+<code class="language-plaintext highlighter-rouge">DENSE_RANK</code>, <code class="language-plaintext highlighter-rouge">PERCENT_RANK</code> and <code class="language-plaintext highlighter-rouge">CUME_DIST</code>), inverse distribution functions
+(<code class="language-plaintext highlighter-rouge">PERCENTILE_CONT</code> and <code class="language-plaintext highlighter-rouge">PERCENTILE_DISC</code>) and collection functions (<code class="language-plaintext highlighter-rouge">COLLECT</code>
+and <code class="language-plaintext highlighter-rouge">LISTAGG</code>).</p>
 
 <div class="scroll-table-style"><table>
   <thead>
@@ -3337,7 +3337,7 @@
     </tr>
     <tr>
       <td style="text-align: left">STDDEV( [ ALL | DISTINCT ] numeric)</td>
-      <td style="text-align: left">Synonym for <code class="highlighter-rouge">STDDEV_SAMP</code>
+      <td style="text-align: left">Synonym for <code class="language-plaintext highlighter-rouge">STDDEV_SAMP</code>
 </td>
     </tr>
     <tr>
@@ -3376,7 +3376,7 @@
 
 <h4 id="ordered-set-aggregate-functions">Ordered-Set Aggregate Functions</h4>
 
-<p>The syntax is as for <em>aggregateCall</em>, except that <code class="highlighter-rouge">WITHIN GROUP</code> is
+<p>The syntax is as for <em>aggregateCall</em>, except that <code class="language-plaintext highlighter-rouge">WITHIN GROUP</code> is
 required.</p>
 
 <p>In the following:</p>
@@ -3415,15 +3415,15 @@
       <span class="p">[</span> <span class="n">RESPECT</span> <span class="n">NULLS</span> <span class="o">|</span> <span class="k">IGNORE</span> <span class="n">NULLS</span> <span class="p">]</span>
       <span class="p">[</span> <span class="n">WITHIN</span> <span class="k">GROUP</span> <span class="s1">'('</span> <span class="k">ORDER</span> <span class="k">BY</span> <span class="n">orderItem</span> <span class="p">[,</span> <span class="n">orderItem</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
       <span class="p">[</span> <span class="n">FILTER</span> <span class="s1">'('</span> <span class="k">WHERE</span> <span class="n">condition</span> <span class="s1">')'</span> <span class="p">]</span>
-      <span class="n">OVER</span> <span class="n">window</span>
+      <span class="n">OVER</span> <span class="k">window</span>
   <span class="o">|</span>   <span class="n">agg</span> <span class="s1">'('</span> <span class="s1">'*'</span> <span class="s1">')'</span>
       <span class="p">[</span> <span class="n">FILTER</span>  <span class="s1">'('</span> <span class="k">WHERE</span> <span class="n">condition</span> <span class="s1">')'</span> <span class="p">]</span>
-      <span class="n">OVER</span> <span class="n">window</span></code></pre></figure>
+      <span class="n">OVER</span> <span class="k">window</span></code></pre></figure>
 
 <p>where <em>agg</em> is one of the operators in the following table, or a user-defined
 aggregate function.</p>
 
-<p><code class="highlighter-rouge">DISTINCT</code>, <code class="highlighter-rouge">FILTER</code> and <code class="highlighter-rouge">WITHIN GROUP</code> are as described for aggregate
+<p><code class="language-plaintext highlighter-rouge">DISTINCT</code>, <code class="language-plaintext highlighter-rouge">FILTER</code> and <code class="language-plaintext highlighter-rouge">WITHIN GROUP</code> are as described for aggregate
 functions.</p>
 
 <div class="scroll-table-style"><table>
@@ -3505,9 +3505,9 @@
 <p>Note:</p>
 
 <ul>
-  <li>You may specify null treatment (<code class="highlighter-rouge">IGNORE NULLS</code>, <code class="highlighter-rouge">RESPECT NULLS</code>) for
-<code class="highlighter-rouge">FIRST_VALUE</code>, <code class="highlighter-rouge">LAST_VALUE</code>, <code class="highlighter-rouge">NTH_VALUE</code>, <code class="highlighter-rouge">LEAD</code> and <code class="highlighter-rouge">LAG</code> functions. The
-syntax handled by the parser, but only <code class="highlighter-rouge">RESPECT NULLS</code> is implemented at
+  <li>You may specify null treatment (<code class="language-plaintext highlighter-rouge">IGNORE NULLS</code>, <code class="language-plaintext highlighter-rouge">RESPECT NULLS</code>) for
+<code class="language-plaintext highlighter-rouge">FIRST_VALUE</code>, <code class="language-plaintext highlighter-rouge">LAST_VALUE</code>, <code class="language-plaintext highlighter-rouge">NTH_VALUE</code>, <code class="language-plaintext highlighter-rouge">LEAD</code> and <code class="language-plaintext highlighter-rouge">LAG</code> functions. The
+syntax handled by the parser, but only <code class="language-plaintext highlighter-rouge">RESPECT NULLS</code> is implemented at
 runtime.</li>
 </ul>
 
@@ -3540,7 +3540,7 @@
     </tr>
     <tr>
       <td style="text-align: left">GROUPING_ID(expression [, expression ]*)</td>
-      <td style="text-align: left">Synonym for <code class="highlighter-rouge">GROUPING</code>
+      <td style="text-align: left">Synonym for <code class="language-plaintext highlighter-rouge">GROUPING</code>
 </td>
     </tr>
   </tbody>
@@ -3565,7 +3565,7 @@
 
 <h3 id="table-functions">Table functions</h3>
 
-<p>Table functions occur in the <code class="highlighter-rouge">FROM</code> clause.</p>
+<p>Table functions occur in the <code class="language-plaintext highlighter-rouge">FROM</code> clause.</p>
 
 <h4 id="tumble">TUMBLE</h4>
 
@@ -3605,8 +3605,8 @@
     <span class="n">TIMECOL</span> <span class="o">=&gt;</span> <span class="k">DESCRIPTOR</span><span class="p">(</span><span class="n">rowtime</span><span class="p">),</span>
     <span class="k">SIZE</span> <span class="o">=&gt;</span> <span class="n">INTERVAL</span> <span class="s1">'1'</span> <span class="k">MINUTE</span><span class="p">));</span></code></pre></figure>
 
-<p>applies a tumbling window with a one minute range to rows from the <code class="highlighter-rouge">orders</code>
-table. <code class="highlighter-rouge">rowtime</code> is the watermarked column of the <code class="highlighter-rouge">orders</code> table that informs
+<p>applies a tumbling window with a one minute range to rows from the <code class="language-plaintext highlighter-rouge">orders</code>
+table. <code class="language-plaintext highlighter-rouge">rowtime</code> is the watermarked column of the <code class="language-plaintext highlighter-rouge">orders</code> table that informs
 whether data is complete.</p>
 
 <h4 id="hop">HOP</h4>
@@ -3647,8 +3647,8 @@
     <span class="n">SLIDE</span> <span class="o">=&gt;</span> <span class="n">INTERVAL</span> <span class="s1">'2'</span> <span class="k">MINUTE</span><span class="p">,</span>
     <span class="k">SIZE</span> <span class="o">=&gt;</span> <span class="n">INTERVAL</span> <span class="s1">'5'</span> <span class="k">MINUTE</span><span class="p">));</span></code></pre></figure>
 
-<p>applies hopping with 5-minute interval size on rows from table <code class="highlighter-rouge">orders</code>
-and shifting every 2 minutes. <code class="highlighter-rouge">rowtime</code> is the watermarked column of table
+<p>applies hopping with 5-minute interval size on rows from table <code class="language-plaintext highlighter-rouge">orders</code>
+and shifting every 2 minutes. <code class="language-plaintext highlighter-rouge">rowtime</code> is the watermarked column of table
 orders that tells data completeness.</p>
 
 <h4 id="session">SESSION</h4>
@@ -3689,24 +3689,24 @@
     <span class="k">KEY</span> <span class="o">=&gt;</span> <span class="k">DESCRIPTOR</span><span class="p">(</span><span class="n">product</span><span class="p">),</span>
     <span class="k">SIZE</span> <span class="o">=&gt;</span> <span class="n">INTERVAL</span> <span class="s1">'20'</span> <span class="k">MINUTE</span><span class="p">));</span></code></pre></figure>
 
-<p>applies a session with 20-minute inactive gap on rows from table <code class="highlighter-rouge">orders</code>.
-<code class="highlighter-rouge">rowtime</code> is the watermarked column of table orders that tells data
+<p>applies a session with 20-minute inactive gap on rows from table <code class="language-plaintext highlighter-rouge">orders</code>.
+<code class="language-plaintext highlighter-rouge">rowtime</code> is the watermarked column of table orders that tells data
 completeness. Session is applied per product.</p>
 
-<p><strong>Note</strong>: The <code class="highlighter-rouge">Tumble</code>, <code class="highlighter-rouge">Hop</code> and <code class="highlighter-rouge">Session</code> window table functions assign
+<p><strong>Note</strong>: The <code class="language-plaintext highlighter-rouge">Tumble</code>, <code class="language-plaintext highlighter-rouge">Hop</code> and <code class="language-plaintext highlighter-rouge">Session</code> window table functions assign
 each row in the original table to a window. The output table has all
-the same columns as the original table plus two additional columns <code class="highlighter-rouge">window_start</code>
-and <code class="highlighter-rouge">window_end</code>, which represent the start and end of the window interval, respectively.</p>
+the same columns as the original table plus two additional columns <code class="language-plaintext highlighter-rouge">window_start</code>
+and <code class="language-plaintext highlighter-rouge">window_end</code>, which represent the start and end of the window interval, respectively.</p>
 
 <h3 id="grouped-window-functions">Grouped window functions</h3>
 <p><strong>warning</strong>: grouped window functions are deprecated.</p>
 
-<p>Grouped window functions occur in the <code class="highlighter-rouge">GROUP BY</code> clause and define a key value
+<p>Grouped window functions occur in the <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause and define a key value
 that represents a window containing several rows.</p>
 
 <p>In some window functions, a row may belong to more than one window.
 For example, if a query is grouped using
-<code class="highlighter-rouge">HOP(t, INTERVAL '2' HOUR, INTERVAL '1' HOUR)</code>, a row with timestamp ‘10:15:00’
+<code class="language-plaintext highlighter-rouge">HOP(t, INTERVAL '2' HOUR, INTERVAL '1' HOUR)</code>, a row with timestamp ‘10:15:00’
  will occur in both the 10:00 - 11:00 and 11:00 - 12:00 totals.</p>
 
 <div class="scroll-table-style"><table>
@@ -3750,27 +3750,27 @@
   <tbody>
     <tr>
       <td style="text-align: left">HOP_END(expression, slide, size [, time ])</td>
-      <td style="text-align: left">Returns the value of <em>expression</em> at the end of the window defined by a <code class="highlighter-rouge">HOP</code> function call</td>
+      <td style="text-align: left">Returns the value of <em>expression</em> at the end of the window defined by a <code class="language-plaintext highlighter-rouge">HOP</code> function call</td>
     </tr>
     <tr>
       <td style="text-align: left">HOP_START(expression, slide, size [, time ])</td>
-      <td style="text-align: left">Returns the value of <em>expression</em> at the beginning of the window defined by a <code class="highlighter-rouge">HOP</code> function call</td>
+      <td style="text-align: left">Returns the value of <em>expression</em> at the beginning of the window defined by a <code class="language-plaintext highlighter-rouge">HOP</code> function call</td>
     </tr>
     <tr>
       <td style="text-align: left">SESSION_END(expression, interval [, time])</td>
-      <td style="text-align: left">Returns the value of <em>expression</em> at the end of the window defined by a <code class="highlighter-rouge">SESSION</code> function call</td>
+      <td style="text-align: left">Returns the value of <em>expression</em> at the end of the window defined by a <code class="language-plaintext highlighter-rouge">SESSION</code> function call</td>
     </tr>
     <tr>
       <td style="text-align: left">SESSION_START(expression, interval [, time])</td>
-      <td style="text-align: left">Returns the value of <em>expression</em> at the beginning of the window defined by a <code class="highlighter-rouge">SESSION</code> function call</td>
+      <td style="text-align: left">Returns the value of <em>expression</em> at the beginning of the window defined by a <code class="language-plaintext highlighter-rouge">SESSION</code> function call</td>
     </tr>
     <tr>
       <td style="text-align: left">TUMBLE_END(expression, interval [, time ])</td>
-      <td style="text-align: left">Returns the value of <em>expression</em> at the end of the window defined by a <code class="highlighter-rouge">TUMBLE</code> function call</td>
+      <td style="text-align: left">Returns the value of <em>expression</em> at the end of the window defined by a <code class="language-plaintext highlighter-rouge">TUMBLE</code> function call</td>
     </tr>
     <tr>
       <td style="text-align: left">TUMBLE_START(expression, interval [, time ])</td>
-      <td style="text-align: left">Returns the value of <em>expression</em> at the beginning of the window defined by a <code class="highlighter-rouge">TUMBLE</code> function call</td>
+      <td style="text-align: left">Returns the value of <em>expression</em> at the beginning of the window defined by a <code class="language-plaintext highlighter-rouge">TUMBLE</code> function call</td>
     </tr>
   </tbody>
 </table></div>
@@ -3826,7 +3826,7 @@
     <tr>
       <td style="text-align: left">p</td>
       <td style="text-align: left">ST_AsText(geom)</td>
-      <td style="text-align: left">Synonym for <code class="highlighter-rouge">ST_AsWKT</code>
+      <td style="text-align: left">Synonym for <code class="language-plaintext highlighter-rouge">ST_AsWKT</code>
 </td>
     </tr>
     <tr>
@@ -3934,7 +3934,7 @@
     <tr>
       <td style="text-align: left">p</td>
       <td style="text-align: left">ST_MakePoint(x, y [, z ])</td>
-      <td style="text-align: left">Synonym for <code class="highlighter-rouge">ST_Point</code>
+      <td style="text-align: left">Synonym for <code class="language-plaintext highlighter-rouge">ST_Point</code>
 </td>
     </tr>
     <tr>
@@ -4060,7 +4060,7 @@
   <li>ST_NPoints(geom) Returns the number of points in <em>geom</em>
 </li>
   <li>ST_NumGeometries(geom) Returns the number of geometries in <em>geom</em> (1 if it is not a GEOMETRYCOLLECTION)</li>
-  <li>ST_NumInteriorRing(geom) Synonym for <code class="highlighter-rouge">ST_NumInteriorRings</code>
+  <li>ST_NumInteriorRing(geom) Synonym for <code class="language-plaintext highlighter-rouge">ST_NumInteriorRings</code>
 </li>
   <li>ST_NumInteriorRings(geom) Returns the number of interior rings of <em>geom</em>
 </li>
@@ -4240,7 +4240,7 @@
   </tbody>
 </table></div>
 
-<p>See also: the <code class="highlighter-rouge">ST_Union</code> aggregate function.</p>
+<p>See also: the <code class="language-plaintext highlighter-rouge">ST_Union</code> aggregate function.</p>
 
 <p>Not implemented:</p>
 
@@ -4426,7 +4426,7 @@
 
 <ul>
   <li>ST_Accum(geom) Accumulates <em>geom</em> into a GEOMETRYCOLLECTION (or MULTIPOINT, MULTILINESTRING or MULTIPOLYGON if possible)</li>
-  <li>ST_Collect(geom) Synonym for <code class="highlighter-rouge">ST_Accum</code>
+  <li>ST_Collect(geom) Synonym for <code class="language-plaintext highlighter-rouge">ST_Accum</code>
 </li>
   <li>ST_Union(geom) Computes the union of geometries</li>
 </ul>
@@ -4439,7 +4439,7 @@
   <li>
 <em>jsonValue</em> is a character string containing a JSON value;</li>
   <li>
-<em>path</em> is a character string containing a JSON path expression; mode flag <code class="highlighter-rouge">strict</code> or <code class="highlighter-rouge">lax</code> should be specified in the beginning of <em>path</em>.</li>
+<em>path</em> is a character string containing a JSON path expression; mode flag <code class="language-plaintext highlighter-rouge">strict</code> or <code class="language-plaintext highlighter-rouge">lax</code> should be specified in the beginning of <em>path</em>.</li>
 </ul>
 
 <h4 id="query-functions">Query Functions</h4>
@@ -4472,17 +4472,17 @@
 <p>Note:</p>
 
 <ul>
-  <li>The <code class="highlighter-rouge">ON ERROR</code> and <code class="highlighter-rouge">ON EMPTY</code> clauses define the fallback
+  <li>The <code class="language-plaintext highlighter-rouge">ON ERROR</code> and <code class="language-plaintext highlighter-rouge">ON EMPTY</code> clauses define the fallback
 behavior of the function when an error is thrown or a null value
 is about to be returned.</li>
-  <li>The <code class="highlighter-rouge">ARRAY WRAPPER</code> clause defines how to represent a JSON array result
-in <code class="highlighter-rouge">JSON_QUERY</code> function. The following examples compare the wrapper
+  <li>The <code class="language-plaintext highlighter-rouge">ARRAY WRAPPER</code> clause defines how to represent a JSON array result
+in <code class="language-plaintext highlighter-rouge">JSON_QUERY</code> function. The following examples compare the wrapper
 behaviors.</li>
 </ul>
 
 <p>Example Data:</p>
 
-<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="s2">"a"</span><span class="p">:</span><span class="w"> </span><span class="s2">"[1,2]"</span><span class="p">,</span><span class="w"> </span><span class="s2">"b"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">],</span><span class="w"> </span><span class="s2">"c"</span><span class="p">:</span><span class="w"> </span><span class="s2">"hi"</span><span class="p">}</span></code></pre></figure>
+<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="nl">"a"</span><span class="p">:</span><span class="w"> </span><span class="s2">"[1,2]"</span><span class="p">,</span><span class="w"> </span><span class="nl">"b"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">],</span><span class="w"> </span><span class="nl">"c"</span><span class="p">:</span><span class="w"> </span><span class="s2">"hi"</span><span class="p">}</span></code></pre></figure>
 
 <p>Comparison:</p>
 
@@ -4572,15 +4572,15 @@
 <p>Note:</p>
 
 <ul>
-  <li>The flag <code class="highlighter-rouge">FORMAT JSON</code> indicates the value is formatted as JSON
-character string. When <code class="highlighter-rouge">FORMAT JSON</code> is used, the value should be
+  <li>The flag <code class="language-plaintext highlighter-rouge">FORMAT JSON</code> indicates the value is formatted as JSON
+character string. When <code class="language-plaintext highlighter-rouge">FORMAT JSON</code> is used, the value should be
 de-parse from JSON character string to a SQL structured value.</li>
   <li>
-<code class="highlighter-rouge">ON NULL</code> clause defines how the JSON output represents null
-values. The default null behavior of <code class="highlighter-rouge">JSON_OBJECT</code> and
-<code class="highlighter-rouge">JSON_OBJECTAGG</code> is <code class="highlighter-rouge">NULL ON NULL</code>, and for <code class="highlighter-rouge">JSON_ARRAY</code> and
-<code class="highlighter-rouge">JSON_ARRAYAGG</code> it is <code class="highlighter-rouge">ABSENT ON NULL</code>.</li>
-  <li>If <code class="highlighter-rouge">ORDER BY</code> clause is provided, <code class="highlighter-rouge">JSON_ARRAYAGG</code> sorts the
+<code class="language-plaintext highlighter-rouge">ON NULL</code> clause defines how the JSON output represents null
+values. The default null behavior of <code class="language-plaintext highlighter-rouge">JSON_OBJECT</code> and
+<code class="language-plaintext highlighter-rouge">JSON_OBJECTAGG</code> is <code class="language-plaintext highlighter-rouge">NULL ON NULL</code>, and for <code class="language-plaintext highlighter-rouge">JSON_ARRAY</code> and
+<code class="language-plaintext highlighter-rouge">JSON_ARRAYAGG</code> it is <code class="language-plaintext highlighter-rouge">ABSENT ON NULL</code>.</li>
+  <li>If <code class="language-plaintext highlighter-rouge">ORDER BY</code> clause is provided, <code class="language-plaintext highlighter-rouge">JSON_ARRAYAGG</code> sorts the
 input rows into the specified order before performing aggregation.</li>
 </ul>
 
@@ -4670,19 +4670,19 @@
     <tr>
       <td style="text-align: left">m</td>
       <td style="text-align: left">expr1 &lt;=&gt; expr2</td>
-      <td style="text-align: left">Whether two values are equal, treating null values as the same, and it’s similar to <code class="highlighter-rouge">IS NOT DISTINCT FROM</code>
+      <td style="text-align: left">Whether two values are equal, treating null values as the same, and it’s similar to <code class="language-plaintext highlighter-rouge">IS NOT DISTINCT FROM</code>
 </td>
     </tr>
     <tr>
       <td style="text-align: left">b</td>
       <td style="text-align: left">ARRAY_CONCAT(array [, array ]*)</td>
-      <td style="text-align: left">Concatenates one or more arrays. If any input argument is <code class="highlighter-rouge">NULL</code> the function returns <code class="highlighter-rouge">NULL</code>
+      <td style="text-align: left">Concatenates one or more arrays. If any input argument is <code class="language-plaintext highlighter-rouge">NULL</code> the function returns <code class="language-plaintext highlighter-rouge">NULL</code>
 </td>
     </tr>
     <tr>
       <td style="text-align: left">b</td>
       <td style="text-align: left">ARRAY_LENGTH(array)</td>
-      <td style="text-align: left">Synonym for <code class="highlighter-rouge">CARDINALITY</code>
+      <td style="text-align: left">Synonym for <code class="language-plaintext highlighter-rouge">CARDINALITY</code>
 </td>
     </tr>
     <tr>
@@ -4737,7 +4737,7 @@
     <tr>
       <td style="text-align: left">b</td>
       <td style="text-align: left">DATE(string)</td>
-      <td style="text-align: left">Equivalent to <code class="highlighter-rouge">CAST(string AS DATE)</code>
+      <td style="text-align: left">Equivalent to <code class="language-plaintext highlighter-rouge">CAST(string AS DATE)</code>
 </td>
     </tr>
     <tr>
@@ -4753,7 +4753,7 @@
     <tr>
       <td style="text-align: left">p</td>
       <td style="text-align: left">DIFFERENCE(string, string)</td>
-      <td style="text-align: left">Returns a measure of the similarity of two strings, namely the number of character positions that their <code class="highlighter-rouge">SOUNDEX</code> values have in common: 4 if the <code class="highlighter-rouge">SOUNDEX</code> values are same and 0 if the <code class="highlighter-rouge">SOUNDEX</code> values are totally different</td>
+      <td style="text-align: left">Returns a measure of the similarity of two strings, namely the number of character positions that their <code class="language-plaintext highlighter-rouge">SOUNDEX</code> values have in common: 4 if the <code class="language-plaintext highlighter-rouge">SOUNDEX</code> values are same and 0 if the <code class="language-plaintext highlighter-rouge">SOUNDEX</code> values are totally different</td>
     </tr>
     <tr>
       <td style="text-align: left">o</td>
@@ -4783,12 +4783,12 @@
     <tr>
       <td style="text-align: left">p</td>
       <td style="text-align: left">string1 ILIKE string2 [ ESCAPE string3 ]</td>
-      <td style="text-align: left">Whether <em>string1</em> matches pattern <em>string2</em>, ignoring case (similar to <code class="highlighter-rouge">LIKE</code>)</td>
+      <td style="text-align: left">Whether <em>string1</em> matches pattern <em>string2</em>, ignoring case (similar to <code class="language-plaintext highlighter-rouge">LIKE</code>)</td>
     </tr>
     <tr>
       <td style="text-align: left">p</td>
       <td style="text-align: left">string1 NOT ILIKE string2 [ ESCAPE string3 ]</td>
-      <td style="text-align: left">Whether <em>string1</em> does not match pattern <em>string2</em>, ignoring case (similar to <code class="highlighter-rouge">NOT LIKE</code>)</td>
+      <td style="text-align: left">Whether <em>string1</em> does not match pattern <em>string2</em>, ignoring case (similar to <code class="language-plaintext highlighter-rouge">NOT LIKE</code>)</td>
     </tr>
     <tr>
       <td style="text-align: left">m</td>
@@ -4897,12 +4897,12 @@
     <tr>
       <td style="text-align: left">h s</td>
       <td style="text-align: left">string1 RLIKE string2</td>
-      <td style="text-align: left">Whether <em>string1</em> matches regex pattern <em>string2</em> (similar to <code class="highlighter-rouge">LIKE</code>, but uses Java regex)</td>
+      <td style="text-align: left">Whether <em>string1</em> matches regex pattern <em>string2</em> (similar to <code class="language-plaintext highlighter-rouge">LIKE</code>, but uses Java regex)</td>
     </tr>
     <tr>
       <td style="text-align: left">h s</td>
       <td style="text-align: left">string1 NOT RLIKE string2</td>
-      <td style="text-align: left">Whether <em>string1</em> does not match regex pattern <em>string2</em> (similar to <code class="highlighter-rouge">NOT LIKE</code>, but uses Java regex)</td>
+      <td style="text-align: left">Whether <em>string1</em> does not match regex pattern <em>string2</em> (similar to <code class="language-plaintext highlighter-rouge">NOT LIKE</code>, but uses Java regex)</td>
     </tr>
     <tr>
       <td style="text-align: left">o</td>
@@ -5010,11 +5010,11 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">JSON_TYPE</code> / <code class="highlighter-rouge">JSON_DEPTH</code> / <code class="highlighter-rouge">JSON_PRETTY</code> / <code class="highlighter-rouge">JSON_STORAGE_SIZE</code> return null if the argument is null</li>
+<code class="language-plaintext highlighter-rouge">JSON_TYPE</code> / <code class="language-plaintext highlighter-rouge">JSON_DEPTH</code> / <code class="language-plaintext highlighter-rouge">JSON_PRETTY</code> / <code class="language-plaintext highlighter-rouge">JSON_STORAGE_SIZE</code> return null if the argument is null</li>
   <li>
-<code class="highlighter-rouge">JSON_LENGTH</code> / <code class="highlighter-rouge">JSON_KEYS</code> / <code class="highlighter-rouge">JSON_REMOVE</code> return null if the first argument is null</li>
+<code class="language-plaintext highlighter-rouge">JSON_LENGTH</code> / <code class="language-plaintext highlighter-rouge">JSON_KEYS</code> / <code class="language-plaintext highlighter-rouge">JSON_REMOVE</code> return null if the first argument is null</li>
   <li>
-<code class="highlighter-rouge">JSON_TYPE</code> generally returns an upper-case string flag indicating the type of the JSON input. Currently supported supported type flags are:
+<code class="language-plaintext highlighter-rouge">JSON_TYPE</code> generally returns an upper-case string flag indicating the type of the JSON input. Currently supported supported type flags are:
     <ul>
       <li>INTEGER</li>
       <li>STRING</li>
@@ -5029,7 +5029,7 @@
     </ul>
   </li>
   <li>
-<code class="highlighter-rouge">JSON_DEPTH</code> defines a JSON value’s depth as follows:
+<code class="language-plaintext highlighter-rouge">JSON_DEPTH</code> defines a JSON value’s depth as follows:
     <ul>
       <li>An empty array, empty object, or scalar value has depth 1;</li>
       <li>A non-empty array containing only elements of depth 1 or non-empty object containing only member values of depth 1 has depth 2;</li>
@@ -5037,7 +5037,7 @@
     </ul>
   </li>
   <li>
-<code class="highlighter-rouge">JSON_LENGTH</code> defines a JSON value’s length as follows:
+<code class="language-plaintext highlighter-rouge">JSON_LENGTH</code> defines a JSON value’s length as follows:
     <ul>
       <li>A scalar value has length 1;</li>
       <li>The length of array or object is the number of elements is contains.</li>
@@ -5069,43 +5069,43 @@
     <tr>
       <td style="text-align: left">p</td>
       <td style="text-align: left">BOOL_AND(condition)</td>
-      <td style="text-align: left">Synonym for <code class="highlighter-rouge">EVERY</code>
+      <td style="text-align: left">Synonym for <code class="language-plaintext highlighter-rouge">EVERY</code>
 </td>
     </tr>
     <tr>
       <td style="text-align: left">p</td>
       <td style="text-align: left">BOOL_OR(condition)</td>
-      <td style="text-align: left">Synonym for <code class="highlighter-rouge">SOME</code>
+      <td style="text-align: left">Synonym for <code class="language-plaintext highlighter-rouge">SOME</code>
 </td>
     </tr>
     <tr>
       <td style="text-align: left">b</td>
       <td style="text-align: left">COUNTIF(condition)</td>
-      <td style="text-align: left">Returns the number of rows for which <em>condition</em> is TRUE; equivalent to <code class="highlighter-rouge">COUNT(*) FILTER (WHERE condition)</code>
+      <td style="text-align: left">Returns the number of rows for which <em>condition</em> is TRUE; equivalent to <code class="language-plaintext highlighter-rouge">COUNT(*) FILTER (WHERE condition)</code>
 </td>
     </tr>
     <tr>
       <td style="text-align: left">m</td>
       <td style="text-align: left">GROUP_CONCAT( [ ALL | DISTINCT ] value [, value ]* [ ORDER BY orderItem [, orderItem ]* ] [ SEPARATOR separator ] )</td>
-      <td style="text-align: left">MySQL-specific variant of <code class="highlighter-rouge">LISTAGG</code>
+      <td style="text-align: left">MySQL-specific variant of <code class="language-plaintext highlighter-rouge">LISTAGG</code>
 </td>
     </tr>
     <tr>
       <td style="text-align: left">b</td>
       <td style="text-align: left">LOGICAL_AND(condition)</td>
-      <td style="text-align: left">Synonym for <code class="highlighter-rouge">EVERY</code>
+      <td style="text-align: left">Synonym for <code class="language-plaintext highlighter-rouge">EVERY</code>
 </td>
     </tr>
     <tr>
       <td style="text-align: left">b</td>
       <td style="text-align: left">LOGICAL_OR(condition)</td>
-      <td style="text-align: left">Synonym for <code class="highlighter-rouge">SOME</code>
+      <td style="text-align: left">Synonym for <code class="language-plaintext highlighter-rouge">SOME</code>
 </td>
     </tr>
     <tr>
       <td style="text-align: left">b p</td>
       <td style="text-align: left">STRING_AGG( [ ALL | DISTINCT ] value [, separator] [ ORDER BY orderItem [, orderItem ]* ] )</td>
-      <td style="text-align: left">Synonym for <code class="highlighter-rouge">LISTAGG</code>
+      <td style="text-align: left">Synonym for <code class="language-plaintext highlighter-rouge">LISTAGG</code>
 </td>
     </tr>
   </tbody>
@@ -5381,9 +5381,9 @@
 <p>To implement a <em>scalar function</em>, there are 3 options:</p>
 
 <ul>
-  <li>Create a class with a public static <code class="highlighter-rouge">eval</code> method,
+  <li>Create a class with a public static <code class="language-plaintext highlighter-rouge">eval</code> method,
 and register the class;</li>
-  <li>Create a class with a public non-static <code class="highlighter-rouge">eval</code> method,
+  <li>Create a class with a public non-static <code class="language-plaintext highlighter-rouge">eval</code> method,
 and a public constructor with no arguments,
 and register the class;</li>
   <li>Create a class with one or more public static methods,
@@ -5393,14 +5393,14 @@
 <p>To implement an <em>aggregate function</em>, there are 2 options:</p>
 
 <ul>
-  <li>Create a class with public static <code class="highlighter-rouge">init</code>, <code class="highlighter-rouge">add</code> and <code class="highlighter-rouge">result</code> methods,
+  <li>Create a class with public static <code class="language-plaintext highlighter-rouge">init</code>, <code class="language-plaintext highlighter-rouge">add</code> and <code class="language-plaintext highlighter-rouge">result</code> methods,
 and register the class;</li>
-  <li>Create a class with public non-static <code class="highlighter-rouge">init</code>, <code class="highlighter-rouge">add</code> and <code class="highlighter-rouge">result</code> methods,
+  <li>Create a class with public non-static <code class="language-plaintext highlighter-rouge">init</code>, <code class="language-plaintext highlighter-rouge">add</code> and <code class="language-plaintext highlighter-rouge">result</code> methods,
 and a  public constructor with no arguments,
 and register the class.</li>
 </ul>
 
-<p>Optionally, add a public <code class="highlighter-rouge">merge</code> method to the class; this allows Calcite to
+<p>Optionally, add a public <code class="language-plaintext highlighter-rouge">merge</code> method to the class; this allows Calcite to
 generate code that merges sub-totals.</p>
 
 <p>Optionally, make your class implement the
@@ -5411,12 +5411,12 @@
 <p>To implement a <em>table function</em>, there are 3 options:</p>
 
 <ul>
-  <li>Create a class with a static <code class="highlighter-rouge">eval</code> method that returns
+  <li>Create a class with a static <code class="language-plaintext highlighter-rouge">eval</code> method that returns
 <a href="/javadocAggregate/org/apache/calcite/schema/ScannableTable.html">ScannableTable</a>
 or
 <a href="/javadocAggregate/org/apache/calcite/schema/QueryableTable.html">QueryableTable</a>,
 and register the class;</li>
-  <li>Create a class with a non-static <code class="highlighter-rouge">eval</code> method that returns
+  <li>Create a class with a non-static <code class="language-plaintext highlighter-rouge">eval</code> method that returns
 <a href="/javadocAggregate/org/apache/calcite/schema/ScannableTable.html">ScannableTable</a>
 or
 <a href="/javadocAggregate/org/apache/calcite/schema/QueryableTable.html">QueryableTable</a>,
@@ -5431,10 +5431,10 @@
 <p>To implement a <em>table macro</em>, there are 3 options:</p>
 
 <ul>
-  <li>Create a class with a static <code class="highlighter-rouge">eval</code> method that returns
+  <li>Create a class with a static <code class="language-plaintext highlighter-rouge">eval</code> method that returns
 <a href="/javadocAggregate/org/apache/calcite/schema/TranslatableTable.html">TranslatableTable</a>,
 and register the class;</li>
-  <li>Create a class with a non-static <code class="highlighter-rouge">eval</code> method that returns
+  <li>Create a class with a non-static <code class="language-plaintext highlighter-rouge">eval</code> method that returns
 <a href="/javadocAggregate/org/apache/calcite/schema/TranslatableTable.html">TranslatableTable</a>,
 and register the class;</li>
   <li>Create a class with one or more public static methods that return
@@ -5458,44 +5458,44 @@
 and to define parameters which are optional (that is, have a default value
 that is used if they are not specified).</p>
 
-<p>Suppose you have a function <code class="highlighter-rouge">f</code>, declared as in the following pseudo syntax:</p>
+<p>Suppose you have a function <code class="language-plaintext highlighter-rouge">f</code>, declared as in the following pseudo syntax:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">FUNCTION</span> <span class="n">f</span><span class="p">(</span>
-  <span class="n">INTEGER</span> <span class="n">a</span><span class="p">,</span>
-  <span class="n">INTEGER</span> <span class="n">b</span> <span class="k">DEFAULT</span> <span class="k">NULL</span><span class="p">,</span>
-  <span class="n">INTEGER</span> <span class="k">c</span><span class="p">,</span>
-  <span class="n">INTEGER</span> <span class="n">d</span> <span class="k">DEFAULT</span> <span class="k">NULL</span><span class="p">,</span>
-  <span class="n">INTEGER</span> <span class="n">e</span> <span class="k">DEFAULT</span> <span class="k">NULL</span><span class="p">)</span> <span class="k">RETURNS</span> <span class="n">INTEGER</span></code></pre></figure>
+  <span class="nb">INTEGER</span> <span class="n">a</span><span class="p">,</span>
+  <span class="nb">INTEGER</span> <span class="n">b</span> <span class="k">DEFAULT</span> <span class="k">NULL</span><span class="p">,</span>
+  <span class="nb">INTEGER</span> <span class="k">c</span><span class="p">,</span>
+  <span class="nb">INTEGER</span> <span class="n">d</span> <span class="k">DEFAULT</span> <span class="k">NULL</span><span class="p">,</span>
+  <span class="nb">INTEGER</span> <span class="n">e</span> <span class="k">DEFAULT</span> <span class="k">NULL</span><span class="p">)</span> <span class="k">RETURNS</span> <span class="nb">INTEGER</span></code></pre></figure>
 
-<p>All of the function’s parameters have names, and parameters <code class="highlighter-rouge">b</code>, <code class="highlighter-rouge">d</code> and <code class="highlighter-rouge">e</code>
-have a default value of <code class="highlighter-rouge">NULL</code> and are therefore optional.
-(In Calcite, <code class="highlighter-rouge">NULL</code> is the only allowable default value for optional parameters;
+<p>All of the function’s parameters have names, and parameters <code class="language-plaintext highlighter-rouge">b</code>, <code class="language-plaintext highlighter-rouge">d</code> and <code class="language-plaintext highlighter-rouge">e</code>
+have a default value of <code class="language-plaintext highlighter-rouge">NULL</code> and are therefore optional.
+(In Calcite, <code class="language-plaintext highlighter-rouge">NULL</code> is the only allowable default value for optional parameters;
 this may change
 <a href="https://issues.apache.org/jira/browse/CALCITE-947">in future</a>.)</p>
 
 <p>When calling a function with optional parameters,
-you can omit optional arguments at the end of the list, or use the <code class="highlighter-rouge">DEFAULT</code>
+you can omit optional arguments at the end of the list, or use the <code class="language-plaintext highlighter-rouge">DEFAULT</code>
 keyword for any optional arguments.
 Here are some examples:</p>
 
 <ul>
   <li>
-<code class="highlighter-rouge">f(1, 2, 3, 4, 5)</code> provides a value to each parameter, in order;</li>
+<code class="language-plaintext highlighter-rouge">f(1, 2, 3, 4, 5)</code> provides a value to each parameter, in order;</li>
   <li>
-<code class="highlighter-rouge">f(1, 2, 3, 4)</code> omits <code class="highlighter-rouge">e</code>, which gets its default value, <code class="highlighter-rouge">NULL</code>;</li>
+<code class="language-plaintext highlighter-rouge">f(1, 2, 3, 4)</code> omits <code class="language-plaintext highlighter-rouge">e</code>, which gets its default value, <code class="language-plaintext highlighter-rouge">NULL</code>;</li>
   <li>
-<code class="highlighter-rouge">f(1, DEFAULT, 3)</code> omits <code class="highlighter-rouge">d</code> and <code class="highlighter-rouge">e</code>,
-and specifies to use the default value of <code class="highlighter-rouge">b</code>;</li>
+<code class="language-plaintext highlighter-rouge">f(1, DEFAULT, 3)</code> omits <code class="language-plaintext highlighter-rouge">d</code> and <code class="language-plaintext highlighter-rouge">e</code>,
+and specifies to use the default value of <code class="language-plaintext highlighter-rouge">b</code>;</li>
   <li>
-<code class="highlighter-rouge">f(1, DEFAULT, 3, DEFAULT, DEFAULT)</code> has the same effect as the previous
+<code class="language-plaintext highlighter-rouge">f(1, DEFAULT, 3, DEFAULT, DEFAULT)</code> has the same effect as the previous
 example;</li>
   <li>
-<code class="highlighter-rouge">f(1, 2)</code> is not legal, because <code class="highlighter-rouge">c</code> is not optional;</li>
+<code class="language-plaintext highlighter-rouge">f(1, 2)</code> is not legal, because <code class="language-plaintext highlighter-rouge">c</code> is not optional;</li>
   <li>
-<code class="highlighter-rouge">f(1, 2, DEFAULT, 4)</code> is not legal, because <code class="highlighter-rouge">c</code> is not optional.</li>
+<code class="language-plaintext highlighter-rouge">f(1, 2, DEFAULT, 4)</code> is not legal, because <code class="language-plaintext highlighter-rouge">c</code> is not optional.</li>
 </ul>
 
-<p>You can specify arguments by name using the <code class="highlighter-rouge">=&gt;</code> syntax.
+<p>You can specify arguments by name using the <code class="language-plaintext highlighter-rouge">=&gt;</code> syntax.
 If one argument is named, they all must be.
 Arguments may be in any other, but must not specify any argument more than once,
 and you need to provide a value for every parameter which is not optional.
@@ -5503,10 +5503,10 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">f(c =&gt; 3, d =&gt; 1, a =&gt; 0)</code> is equivalent to <code class="highlighter-rouge">f(0, NULL, 3, 1, NULL)</code>;</li>
+<code class="language-plaintext highlighter-rouge">f(c =&gt; 3, d =&gt; 1, a =&gt; 0)</code> is equivalent to <code class="language-plaintext highlighter-rouge">f(0, NULL, 3, 1, NULL)</code>;</li>
   <li>
-<code class="highlighter-rouge">f(c =&gt; 3, d =&gt; 1)</code> is not legal, because you have not specified a value for
-<code class="highlighter-rouge">a</code> and <code class="highlighter-rouge">a</code> is not optional.</li>
+<code class="language-plaintext highlighter-rouge">f(c =&gt; 3, d =&gt; 1)</code> is not legal, because you have not specified a value for
+<code class="language-plaintext highlighter-rouge">a</code> and <code class="language-plaintext highlighter-rouge">a</code> is not optional.</li>
 </ul>
 
 <h3 id="sql-hints">SQL Hints</h3>
@@ -5516,8 +5516,8 @@
 
 <ul>
   <li>Planner enforcers: there’s no perfect planner, so it makes sense to implement hints to
-allow user better control the execution. For instance: “never merge this subquery with others” (<code class="highlighter-rouge">/*+ no_merge */</code>);
-“treat those tables as leading ones” (<code class="highlighter-rouge">/*+ leading */</code>) to affect join ordering, etc;</li>
+allow user better control the execution. For instance: “never merge this subquery with others” (<code class="language-plaintext highlighter-rouge">/*+ no_merge */</code>);
+“treat those tables as leading ones” (<code class="language-plaintext highlighter-rouge">/*+ leading */</code>) to affect join ordering, etc;</li>
   <li>Append meta data/statistics: some statistics like “table index for scan” or “skew info of some shuffle keys”
 are somehow dynamic for the query, it would be very convenient to config them with hints because
 our planning metadata from the planner is very often not very accurate;</li>
@@ -5532,7 +5532,7 @@
 <p>Calcite supports hints in two locations:</p>
 
 <ul>
-  <li>Query Hint: right after the <code class="highlighter-rouge">SELECT</code> keyword;</li>
+  <li>Query Hint: right after the <code class="language-plaintext highlighter-rouge">SELECT</code> keyword;</li>
   <li>Table Hint: right after the referenced table name.</li>
 </ul>
 
@@ -5573,7 +5573,7 @@
 <ul>
   <li>The parser support for the syntax above;</li>
   <li>
-<code class="highlighter-rouge">RelHint</code> to represent a hint item;</li>
+<code class="language-plaintext highlighter-rouge">RelHint</code> to represent a hint item;</li>
   <li>Mechanism to propagate the hints, during sql-to-rel conversion and planner planning.</li>
 </ul>
 
@@ -5581,7 +5581,7 @@
 
 <h3 id="match_recognize">MATCH_RECOGNIZE</h3>
 
-<p><code class="highlighter-rouge">MATCH_RECOGNIZE</code> is a SQL extension for recognizing sequences of
+<p><code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> is a SQL extension for recognizing sequences of
 events in complex event processing (CEP).</p>
 
 <p>It is experimental in Calcite, and yet not fully implemented.</p>
@@ -5590,7 +5590,7 @@
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">matchRecognize</span><span class="p">:</span>
       <span class="n">MATCH_RECOGNIZE</span> <span class="s1">'('</span>
-      <span class="p">[</span> <span class="n">PARTITION</span> <span class="k">BY</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
+      <span class="p">[</span> <span class="k">PARTITION</span> <span class="k">BY</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
       <span class="p">[</span> <span class="k">ORDER</span> <span class="k">BY</span> <span class="n">orderItem</span> <span class="p">[,</span> <span class="n">orderItem</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
       <span class="p">[</span> <span class="n">MEASURES</span> <span class="n">measureColumn</span> <span class="p">[,</span> <span class="n">measureColumn</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
       <span class="p">[</span> <span class="n">ONE</span> <span class="k">ROW</span> <span class="n">PER</span> <span class="k">MATCH</span> <span class="o">|</span> <span class="k">ALL</span> <span class="k">ROWS</span> <span class="n">PER</span> <span class="k">MATCH</span> <span class="p">]</span>
@@ -5638,7 +5638,7 @@
   <span class="o">|</span>   <span class="s1">'+?'</span>
   <span class="o">|</span>   <span class="s1">'?'</span>
   <span class="o">|</span>   <span class="s1">'??'</span>
-  <span class="o">|</span>   <span class="s1">'{'</span> <span class="err">{</span> <span class="p">[</span> <span class="n">minRepeat</span> <span class="p">],</span> <span class="p">[</span> <span class="n">maxRepeat</span> <span class="p">]</span> <span class="err">}</span> <span class="s1">'}'</span> <span class="p">[</span><span class="s1">'?'</span><span class="p">]</span>
+  <span class="o">|</span>   <span class="s1">'{'</span> <span class="p">{</span> <span class="p">[</span> <span class="n">minRepeat</span> <span class="p">],</span> <span class="p">[</span> <span class="n">maxRepeat</span> <span class="p">]</span> <span class="p">}</span> <span class="s1">'}'</span> <span class="p">[</span><span class="s1">'?'</span><span class="p">]</span>
   <span class="o">|</span>   <span class="s1">'{'</span> <span class="n">repeat</span> <span class="s1">'}'</span>
 
 <span class="n">intervalLiteral</span><span class="p">:</span>
@@ -5650,8 +5650,8 @@
 <h3 id="ddl-extensions">DDL Extensions</h3>
 
 <p>DDL extensions are only available in the calcite-server module.
-To enable, include <code class="highlighter-rouge">calcite-server.jar</code> in your class path, and add
-<code class="highlighter-rouge">parserFactory=org.apache.calcite.sql.parser.ddl.SqlDdlParserImpl#FACTORY</code>
+To enable, include <code class="language-plaintext highlighter-rouge">calcite-server.jar</code> in your class path, and add
+<code class="language-plaintext highlighter-rouge">parserFactory=org.apache.calcite.sql.parser.ddl.SqlDdlParserImpl#FACTORY</code>
 to the JDBC connect string (see connect string property
 <a href="/javadocAggregate/org/apache/calcite/config/CalciteConnectionProperty.html#PARSER_FACTORY">parserFactory</a>).</p>
 
@@ -5692,10 +5692,10 @@
 
 <span class="n">createTypeStatement</span><span class="p">:</span>
       <span class="k">CREATE</span> <span class="p">[</span> <span class="k">OR</span> <span class="k">REPLACE</span> <span class="p">]</span> <span class="k">TYPE</span> <span class="n">name</span> <span class="k">AS</span>
-      <span class="err">{</span>
+      <span class="p">{</span>
           <span class="n">baseType</span>
       <span class="o">|</span>   <span class="s1">'('</span> <span class="n">attributeDef</span> <span class="p">[,</span> <span class="n">attributeDef</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
-      <span class="err">}</span>
+      <span class="p">}</span>
 
 <span class="n">attributeDef</span><span class="p">:</span>
       <span class="n">attributeName</span> <span class="k">type</span>
@@ -5711,7 +5711,7 @@
 <span class="n">columnGenerator</span><span class="p">:</span>
       <span class="k">DEFAULT</span> <span class="n">expression</span>
   <span class="o">|</span>   <span class="p">[</span> <span class="k">GENERATED</span> <span class="n">ALWAYS</span> <span class="p">]</span> <span class="k">AS</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="s1">')'</span>
-      <span class="err">{</span> <span class="n">VIRTUAL</span> <span class="o">|</span> <span class="n">STORED</span> <span class="err">}</span>
+      <span class="p">{</span> <span class="n">VIRTUAL</span> <span class="o">|</span> <span class="n">STORED</span> <span class="p">}</span>
 
 <span class="n">columnConstraint</span><span class="p">:</span>
       <span class="p">[</span> <span class="k">CONSTRAINT</span> <span class="n">name</span> <span class="p">]</span>
@@ -5719,11 +5719,11 @@
 
 <span class="n">tableConstraint</span><span class="p">:</span>
       <span class="p">[</span> <span class="k">CONSTRAINT</span> <span class="n">name</span> <span class="p">]</span>
-      <span class="err">{</span>
+      <span class="p">{</span>
           <span class="k">CHECK</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="s1">')'</span>
       <span class="o">|</span>   <span class="k">PRIMARY</span> <span class="k">KEY</span> <span class="s1">'('</span> <span class="n">columnName</span> <span class="p">[,</span> <span class="n">columnName</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
       <span class="o">|</span>   <span class="k">UNIQUE</span> <span class="s1">'('</span> <span class="n">columnName</span> <span class="p">[,</span> <span class="n">columnName</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
-      <span class="err">}</span>
+      <span class="p">}</span>
 
 <span class="n">createViewStatement</span><span class="p">:</span>
       <span class="k">CREATE</span> <span class="p">[</span> <span class="k">OR</span> <span class="k">REPLACE</span> <span class="p">]</span> <span class="k">VIEW</span> <span class="n">name</span>
@@ -5741,7 +5741,7 @@
       <span class="p">[</span> <span class="k">USING</span>  <span class="n">usingFile</span> <span class="p">[,</span> <span class="n">usingFile</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
 
 <span class="n">usingFile</span><span class="p">:</span>
-      <span class="err">{</span> <span class="n">JAR</span> <span class="o">|</span> <span class="n">FILE</span> <span class="o">|</span> <span class="n">ARCHIVE</span> <span class="err">}</span> <span class="n">filePathLiteral</span>
+      <span class="p">{</span> <span class="n">JAR</span> <span class="o">|</span> <span class="n">FILE</span> <span class="o">|</span> <span class="n">ARCHIVE</span> <span class="p">}</span> <span class="n">filePathLiteral</span>
 
 <span class="n">dropSchemaStatement</span><span class="p">:</span>
       <span class="k">DROP</span> <span class="k">SCHEMA</span> <span class="p">[</span> <span class="n">IF</span> <span class="k">EXISTS</span> <span class="p">]</span> <span class="n">name</span>
@@ -5768,8 +5768,8 @@
 <em>tableElement</em>s, or you can omit the data type of any <em>tableElement</em>, in which
 case it just renames the underlying column.</p>
 
-<p>In <em>columnGenerator</em>, if you do not specify <code class="highlighter-rouge">VIRTUAL</code> or <code class="highlighter-rouge">STORED</code> for a
-generated column, <code class="highlighter-rouge">VIRTUAL</code> is the default.</p>
+<p>In <em>columnGenerator</em>, if you do not specify <code class="language-plaintext highlighter-rouge">VIRTUAL</code> or <code class="language-plaintext highlighter-rouge">STORED</code> for a
+generated column, <code class="language-plaintext highlighter-rouge">VIRTUAL</code> is the default.</p>
 
 <p>In <em>createFunctionStatement</em> and <em>usingFile</em>, <em>classNameLiteral</em>
 and <em>filePathLiteral</em> are character literals.</p>
@@ -5783,12 +5783,12 @@
 instances of the object type are created; that is, objects of that type are
 instantiated. Each object can hold different values.</p>
 
-<p>For example, we can declare types <code class="highlighter-rouge">address_typ</code> and <code class="highlighter-rouge">employee_typ</code>:</p>
+<p>For example, we can declare types <code class="language-plaintext highlighter-rouge">address_typ</code> and <code class="language-plaintext highlighter-rouge">employee_typ</code>:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">CREATE</span> <span class="k">TYPE</span> <span class="n">address_typ</span> <span class="k">AS</span> <span class="k">OBJECT</span> <span class="p">(</span>
    <span class="n">street</span>          <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">30</span><span class="p">),</span>
    <span class="n">city</span>            <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">20</span><span class="p">),</span>
-   <span class="k">state</span>           <span class="n">CHAR</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span>
+   <span class="k">state</span>           <span class="nb">CHAR</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span>
    <span class="n">postal_code</span>     <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">6</span><span class="p">));</span>
 
 <span class="k">CREATE</span> <span class="k">TYPE</span> <span class="n">employee_typ</span> <span class="k">AS</span> <span class="k">OBJECT</span> <span class="p">(</span>
@@ -5797,7 +5797,7 @@
   <span class="n">last_name</span>         <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">25</span><span class="p">),</span>
   <span class="n">email</span>             <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">25</span><span class="p">),</span>
   <span class="n">phone_number</span>      <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">20</span><span class="p">),</span>
-  <span class="n">hire_date</span>         <span class="n">DATE</span><span class="p">,</span>
+  <span class="n">hire_date</span>         <span class="nb">DATE</span><span class="p">,</span>
   <span class="n">job_id</span>            <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">10</span><span class="p">),</span>
   <span class="n">salary</span>            <span class="n">NUMBER</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span>
   <span class="n">commission_pct</span>    <span class="n">NUMBER</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span>
@@ -6125,7 +6125,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/spatial.html b/docs/spatial.html
index 65c69ca..9545906 100644
--- a/docs/spatial.html
+++ b/docs/spatial.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Spatial</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -105,11 +105,11 @@
 
 <ul>
   <li>A <a href="reference.html#data-types">GEOMETRY</a> data type and
-<a href="reference.html#spatial-types">sub-types</a> including <code class="highlighter-rouge">POINT</code>, <code class="highlighter-rouge">LINESTRING</code>
-and <code class="highlighter-rouge">POLYGON</code>
+<a href="reference.html#spatial-types">sub-types</a> including <code class="language-plaintext highlighter-rouge">POINT</code>, <code class="language-plaintext highlighter-rouge">LINESTRING</code>
+and <code class="language-plaintext highlighter-rouge">POLYGON</code>
 </li>
   <li>
-<a href="reference.html#spatial-functions">Spatial functions</a> (prefixed <code class="highlighter-rouge">ST_</code>;
+<a href="reference.html#spatial-functions">Spatial functions</a> (prefixed <code class="language-plaintext highlighter-rouge">ST_</code>;
 we have implemented about 35 of the 150 in the OpenGIS specification)</li>
 </ul>
 
@@ -117,9 +117,9 @@
 
 <h2 id="enabling-spatial-support">Enabling spatial support</h2>
 
-<p>Though the <code class="highlighter-rouge">GEOMETRY</code> data type is built-in, the functions are not enabled by
-default. You need to add <code class="highlighter-rouge">fun=spatial</code> to the JDBC connect string to enable
-the functions. For example, <code class="highlighter-rouge">sqlline</code>:</p>
+<p>Though the <code class="language-plaintext highlighter-rouge">GEOMETRY</code> data type is built-in, the functions are not enabled by
+default. You need to add <code class="language-plaintext highlighter-rouge">fun=spatial</code> to the JDBC connect string to enable
+the functions. For example, <code class="language-plaintext highlighter-rouge">sqlline</code>:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="err">$</span> <span class="p">.</span><span class="o">/</span><span class="n">sqlline</span>
 <span class="o">&gt;</span> <span class="o">!</span><span class="k">connect</span> <span class="n">jdbc</span><span class="p">:</span><span class="n">calcite</span><span class="p">:</span><span class="n">fun</span><span class="o">=</span><span class="n">spatial</span> <span class="nv">"sa"</span> <span class="nv">""</span>
@@ -127,7 +127,7 @@
 <span class="o">+</span><span class="c1">-------------------------------+</span>
 <span class="o">|</span> <span class="n">EXPR</span><span class="err">$</span><span class="mi">0</span>                        <span class="o">|</span>
 <span class="o">+</span><span class="c1">-------------------------------+</span>
-<span class="o">|</span> <span class="err">{</span><span class="nv">"x"</span><span class="p">:</span><span class="o">-</span><span class="mi">71</span><span class="p">.</span><span class="mi">064544</span><span class="p">,</span><span class="nv">"y"</span><span class="p">:</span><span class="mi">42</span><span class="p">.</span><span class="mi">28787</span><span class="err">}</span> <span class="o">|</span>
+<span class="o">|</span> <span class="p">{</span><span class="nv">"x"</span><span class="p">:</span><span class="o">-</span><span class="mi">71</span><span class="p">.</span><span class="mi">064544</span><span class="p">,</span><span class="nv">"y"</span><span class="p">:</span><span class="mi">42</span><span class="p">.</span><span class="mi">28787</span><span class="p">}</span> <span class="o">|</span>
 <span class="o">+</span><span class="c1">-------------------------------+</span>
 <span class="mi">1</span> <span class="k">row</span> <span class="n">selected</span> <span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">323</span> <span class="n">seconds</span><span class="p">)</span></code></pre></figure>
 
@@ -136,7 +136,7 @@
 <p>One class of rewrites uses
 <a href="https://en.wikipedia.org/wiki/Hilbert_curve">Hilbert space-filling curves</a>.
 Suppose that a table
-has columns <code class="highlighter-rouge">x</code> and <code class="highlighter-rouge">y</code> denoting the position of a point and also a column <code class="highlighter-rouge">h</code>
+has columns <code class="language-plaintext highlighter-rouge">x</code> and <code class="language-plaintext highlighter-rouge">y</code> denoting the position of a point and also a column <code class="language-plaintext highlighter-rouge">h</code>
 denoting the distance of that point along a curve. Then a predicate involving
 distance of (x, y) from a fixed point can be translated into a predicate
 involving ranges of h.</p>
@@ -144,18 +144,18 @@
 <p>Suppose we have a table with the locations of restaurants:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">Restaurants</span> <span class="p">(</span>
-  <span class="n">INT</span> <span class="n">id</span> <span class="k">NOT</span> <span class="k">NULL</span> <span class="k">PRIMARY</span> <span class="k">KEY</span><span class="p">,</span>
-  <span class="n">VARCHAR</span><span class="p">(</span><span class="mi">30</span><span class="p">)</span> <span class="n">name</span><span class="p">,</span>
-  <span class="n">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span> <span class="n">cuisine</span><span class="p">,</span>
-  <span class="n">INT</span> <span class="n">x</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
-  <span class="n">INT</span> <span class="n">y</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
-  <span class="n">INT</span> <span class="n">h</span>  <span class="k">NOT</span> <span class="k">NULL</span> <span class="n">DERIVED</span> <span class="p">(</span><span class="n">ST_Hilbert</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)))</span>
+  <span class="nb">INT</span> <span class="n">id</span> <span class="k">NOT</span> <span class="k">NULL</span> <span class="k">PRIMARY</span> <span class="k">KEY</span><span class="p">,</span>
+  <span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">30</span><span class="p">)</span> <span class="n">name</span><span class="p">,</span>
+  <span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span> <span class="n">cuisine</span><span class="p">,</span>
+  <span class="nb">INT</span> <span class="n">x</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
+  <span class="nb">INT</span> <span class="n">y</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
+  <span class="nb">INT</span> <span class="n">h</span>  <span class="k">NOT</span> <span class="k">NULL</span> <span class="n">DERIVED</span> <span class="p">(</span><span class="n">ST_Hilbert</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)))</span>
 <span class="n">SORT</span> <span class="k">KEY</span> <span class="p">(</span><span class="n">h</span><span class="p">);</span></code></pre></figure>
 
-<p>The optimizer requires that <code class="highlighter-rouge">h</code> is the position on the Hilbert curve of
-point (<code class="highlighter-rouge">x</code>, <code class="highlighter-rouge">y</code>), and also requires that the table is sorted on <code class="highlighter-rouge">h</code>.
-The <code class="highlighter-rouge">DERIVED</code> and <code class="highlighter-rouge">SORT KEY</code> clauses in the DDL syntax are invented for the
-purposes of this example, but a clustered table with a <code class="highlighter-rouge">CHECK</code> constraint
+<p>The optimizer requires that <code class="language-plaintext highlighter-rouge">h</code> is the position on the Hilbert curve of
+point (<code class="language-plaintext highlighter-rouge">x</code>, <code class="language-plaintext highlighter-rouge">y</code>), and also requires that the table is sorted on <code class="language-plaintext highlighter-rouge">h</code>.
+The <code class="language-plaintext highlighter-rouge">DERIVED</code> and <code class="language-plaintext highlighter-rouge">SORT KEY</code> clauses in the DDL syntax are invented for the
+purposes of this example, but a clustered table with a <code class="language-plaintext highlighter-rouge">CHECK</code> constraint
 would work just as well.</p>
 
 <p>The query</p>
@@ -179,9 +179,9 @@
     <span class="k">OR</span> <span class="n">h</span> <span class="k">BETWEEN</span> <span class="mi">33033</span> <span class="k">AND</span> <span class="mi">33035</span><span class="p">)</span>
 <span class="k">AND</span> <span class="n">ST_DWithin</span><span class="p">(</span><span class="n">ST_Point</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">),</span> <span class="n">ST_Point</span><span class="p">(</span><span class="mi">10</span><span class="p">.</span><span class="mi">0</span><span class="p">,</span> <span class="mi">20</span><span class="p">.</span><span class="mi">0</span><span class="p">),</span> <span class="mi">6</span><span class="p">)</span></code></pre></figure>
 
-<p>The rewritten query contains a collection of ranges on <code class="highlighter-rouge">h</code> followed by the
-original <code class="highlighter-rouge">ST_DWithin</code> predicate. The range predicates are evaluated first and
-are very fast because the table is sorted on <code class="highlighter-rouge">h</code>.</p>
+<p>The rewritten query contains a collection of ranges on <code class="language-plaintext highlighter-rouge">h</code> followed by the
+original <code class="language-plaintext highlighter-rouge">ST_DWithin</code> predicate. The range predicates are evaluated first and
+are very fast because the table is sorted on <code class="language-plaintext highlighter-rouge">h</code>.</p>
 
 <p>Here is the full set of transformations:</p>
 
@@ -217,7 +217,7 @@
   </tbody>
 </table></div>
 
-<p>In the above, <code class="highlighter-rouge">a</code> and <code class="highlighter-rouge">b</code> are variables, <code class="highlighter-rouge">X</code>, <code class="highlighter-rouge">X2</code>, <code class="highlighter-rouge">Y</code>, <code class="highlighter-rouge">Y2</code>, <code class="highlighter-rouge">D</code> and <code class="highlighter-rouge">G</code> are
+<p>In the above, <code class="language-plaintext highlighter-rouge">a</code> and <code class="language-plaintext highlighter-rouge">b</code> are variables, <code class="language-plaintext highlighter-rouge">X</code>, <code class="language-plaintext highlighter-rouge">X2</code>, <code class="language-plaintext highlighter-rouge">Y</code>, <code class="language-plaintext highlighter-rouge">Y2</code>, <code class="language-plaintext highlighter-rouge">D</code> and <code class="language-plaintext highlighter-rouge">G</code> are
 constants.</p>
 
 <p>Many rewrites are inexact: there are some points where the predicate would
@@ -528,7 +528,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/stream.html b/docs/stream.html
index c18835f..946e322 100644
--- a/docs/stream.html
+++ b/docs/stream.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Streaming</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -140,7 +140,7 @@
   <li>Lots of existing tools can generate standard SQL.</li>
 </ul>
 
-<p>If you don’t use the <code class="highlighter-rouge">STREAM</code> keyword, you are back in regular
+<p>If you don’t use the <code class="language-plaintext highlighter-rouge">STREAM</code> keyword, you are back in regular
 standard SQL.</p>
 
 <h2 id="an-example-schema">An example schema</h2>
@@ -149,11 +149,11 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">Orders (rowtime, productId, orderId, units)</code> - a stream and a table</li>
+<code class="language-plaintext highlighter-rouge">Orders (rowtime, productId, orderId, units)</code> - a stream and a table</li>
   <li>
-<code class="highlighter-rouge">Products (rowtime, productId, name)</code> - a table</li>
+<code class="language-plaintext highlighter-rouge">Products (rowtime, productId, name)</code> - a table</li>
   <li>
-<code class="highlighter-rouge">Shipments (rowtime, orderId)</code> - a stream</li>
+<code class="language-plaintext highlighter-rouge">Shipments (rowtime, orderId)</code> - a stream</li>
 </ul>
 
 <h2 id="a-simple-query">A simple query</h2>
@@ -174,13 +174,13 @@
  <span class="mi">11</span><span class="p">:</span><span class="mi">09</span><span class="p">:</span><span class="mi">30</span> <span class="o">|</span>        <span class="mi">40</span> <span class="o">|</span>      <span class="mi">11</span> <span class="o">|</span>    <span class="mi">12</span>
  <span class="mi">11</span><span class="p">:</span><span class="mi">24</span><span class="p">:</span><span class="mi">11</span> <span class="o">|</span>        <span class="mi">10</span> <span class="o">|</span>      <span class="mi">12</span> <span class="o">|</span>     <span class="mi">4</span></code></pre></figure>
 
-<p>This query reads all columns and rows from the <code class="highlighter-rouge">Orders</code> stream.
+<p>This query reads all columns and rows from the <code class="language-plaintext highlighter-rouge">Orders</code> stream.
 Like any streaming query, it never terminates. It outputs a record whenever
-a record arrives in <code class="highlighter-rouge">Orders</code>.</p>
+a record arrives in <code class="language-plaintext highlighter-rouge">Orders</code>.</p>
 
-<p>Type <code class="highlighter-rouge">Control-C</code> to terminate the query.</p>
+<p>Type <code class="language-plaintext highlighter-rouge">Control-C</code> to terminate the query.</p>
 
-<p>The <code class="highlighter-rouge">STREAM</code> keyword is the main extension in streaming SQL. It tells the
+<p>The <code class="language-plaintext highlighter-rouge">STREAM</code> keyword is the main extension in streaming SQL. It tells the
 system that you are interested in incoming orders, not existing ones. The query</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="o">*</span>
@@ -199,7 +199,7 @@
 call it a <em>relational</em> query, as opposed to <em>streaming</em>. It has traditional
 SQL semantics.</p>
 
-<p><code class="highlighter-rouge">Orders</code> is special, in that it has both a stream and a table. If you try to run
+<p><code class="language-plaintext highlighter-rouge">Orders</code> is special, in that it has both a stream and a table. If you try to run
 a streaming query on a table, or a relational query on a stream, Calcite gives
 an error:</p>
 
@@ -213,7 +213,7 @@
 
 <h1 id="filtering-rows">Filtering rows</h1>
 
-<p>Just as in regular SQL, you use a <code class="highlighter-rouge">WHERE</code> clause to filter rows:</p>
+<p>Just as in regular SQL, you use a <code class="language-plaintext highlighter-rouge">WHERE</code> clause to filter rows:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">STREAM</span> <span class="o">*</span>
 <span class="k">FROM</span> <span class="n">Orders</span>
@@ -229,7 +229,7 @@
 
 <h1 id="projecting-expressions">Projecting expressions</h1>
 
-<p>Use expressions in the <code class="highlighter-rouge">SELECT</code> clause to choose which columns to return or
+<p>Use expressions in the <code class="language-plaintext highlighter-rouge">SELECT</code> clause to choose which columns to return or
 compute expressions:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">STREAM</span> <span class="n">rowtime</span><span class="p">,</span>
@@ -249,9 +249,9 @@
  <span class="mi">11</span><span class="p">:</span><span class="mi">09</span><span class="p">:</span><span class="mi">30</span> <span class="o">|</span> <span class="n">An</span> <span class="k">order</span> <span class="k">for</span> <span class="mi">12</span> <span class="n">units</span> <span class="k">of</span> <span class="n">product</span> <span class="o">#</span><span class="mi">40</span>
  <span class="mi">11</span><span class="p">:</span><span class="mi">24</span><span class="p">:</span><span class="mi">11</span> <span class="o">|</span> <span class="n">An</span> <span class="k">order</span> <span class="k">by</span> <span class="mi">4</span> <span class="n">units</span> <span class="k">of</span> <span class="n">product</span> <span class="o">#</span><span class="mi">10</span></code></pre></figure>
 
-<p>We recommend that you always include the <code class="highlighter-rouge">rowtime</code> column in the <code class="highlighter-rouge">SELECT</code>
+<p>We recommend that you always include the <code class="language-plaintext highlighter-rouge">rowtime</code> column in the <code class="language-plaintext highlighter-rouge">SELECT</code>
 clause. Having a sorted timestamp in each stream and streaming query makes it
-possible to do advanced calculations later, such as <code class="highlighter-rouge">GROUP BY</code> and <code class="highlighter-rouge">JOIN</code>.</p>
+possible to do advanced calculations later, such as <code class="language-plaintext highlighter-rouge">GROUP BY</code> and <code class="language-plaintext highlighter-rouge">JOIN</code>.</p>
 
 <h1 id="tumbling-windows">Tumbling windows</h1>
 
@@ -279,7 +279,7 @@
 <p><img src="/img/window-types.png" alt="Window types"></p>
 
 <p>First we’ll look a <em>tumbling window</em>, which is defined by a streaming
-<code class="highlighter-rouge">GROUP BY</code>. Here is an example:</p>
+<code class="language-plaintext highlighter-rouge">GROUP BY</code>. Here is an example:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">STREAM</span> <span class="n">CEIL</span><span class="p">(</span><span class="n">rowtime</span> <span class="k">TO</span> <span class="n">HOUR</span><span class="p">)</span> <span class="k">AS</span> <span class="n">rowtime</span><span class="p">,</span>
   <span class="n">productId</span><span class="p">,</span>
@@ -297,14 +297,14 @@
  <span class="mi">12</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span> <span class="o">|</span>        <span class="mi">40</span> <span class="o">|</span>       <span class="mi">1</span> <span class="o">|</span>    <span class="mi">12</span></code></pre></figure>
 
 <p>The result is a stream. At 11 o’clock, Calcite emits a sub-total for every
-<code class="highlighter-rouge">productId</code> that had an order since 10 o’clock, timestamped 11 o’clock.
+<code class="language-plaintext highlighter-rouge">productId</code> that had an order since 10 o’clock, timestamped 11 o’clock.
 At 12 o’clock, it will emit
 the orders that occurred between 11:00 and 12:00. Each input row contributes to
 only one output row.</p>
 
 <p>How did Calcite know that the 10:00:00 sub-totals were complete at 11:00:00,
-so that it could emit them? It knows that <code class="highlighter-rouge">rowtime</code> is increasing, and it knows
-that <code class="highlighter-rouge">CEIL(rowtime TO HOUR)</code> is also increasing. So, once it has seen a row
+so that it could emit them? It knows that <code class="language-plaintext highlighter-rouge">rowtime</code> is increasing, and it knows
+that <code class="language-plaintext highlighter-rouge">CEIL(rowtime TO HOUR)</code> is also increasing. So, once it has seen a row
 at or after 11:00:00, it will never see a row that will contribute to a 10:00:00
 total.</p>
 
@@ -316,7 +316,7 @@
 to declare that a particular value will never be seen again, then
 the column or expression is said to be <em>quasi-monotonic</em>.</p>
 
-<p>Without a monotonic or quasi-monotonic expression in the <code class="highlighter-rouge">GROUP BY</code> clause,
+<p>Without a monotonic or quasi-monotonic expression in the <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause,
 Calcite is
 not able to make progress, and it will not allow the query:</p>
 
@@ -332,7 +332,7 @@
 The monotonicity is
 enforced when records enter the stream and assumed by queries that read from
 that stream. We recommend that you give each stream a timestamp column called
-<code class="highlighter-rouge">rowtime</code>, but you can declare others to be monotonic, <code class="highlighter-rouge">orderId</code>, for example.</p>
+<code class="language-plaintext highlighter-rouge">rowtime</code>, but you can declare others to be monotonic, <code class="language-plaintext highlighter-rouge">orderId</code>, for example.</p>
 
 <p>We discuss punctuation, watermarks, and other ways of making progress
 <a href="#punctuation">below</a>.</p>
@@ -341,7 +341,7 @@
 
 <p>The previous example of tumbling windows was easy to write because the window
 was one hour. For intervals that are not a whole time unit, say 2 hours or
-2 hours and 17 minutes, you cannot use <code class="highlighter-rouge">CEIL</code>, and the expression gets more
+2 hours and 17 minutes, you cannot use <code class="language-plaintext highlighter-rouge">CEIL</code>, and the expression gets more
 complicated.</p>
 
 <p>Calcite supports an alternative syntax for tumbling windows:</p>
@@ -361,24 +361,24 @@
  <span class="mi">12</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span> <span class="o">|</span>        <span class="mi">10</span> <span class="o">|</span>       <span class="mi">3</span> <span class="o">|</span>    <span class="mi">11</span>
  <span class="mi">12</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span> <span class="o">|</span>        <span class="mi">40</span> <span class="o">|</span>       <span class="mi">1</span> <span class="o">|</span>    <span class="mi">12</span></code></pre></figure>
 
-<p>As you can see, it returns the same results as the previous query. The <code class="highlighter-rouge">TUMBLE</code>
+<p>As you can see, it returns the same results as the previous query. The <code class="language-plaintext highlighter-rouge">TUMBLE</code>
 function returns a grouping key that is the same for all the rows that will end
-up in a given summary row; the <code class="highlighter-rouge">TUMBLE_END</code> function takes the same arguments
+up in a given summary row; the <code class="language-plaintext highlighter-rouge">TUMBLE_END</code> function takes the same arguments
 and returns the time at which that window ends;
-there is also a <code class="highlighter-rouge">TUMBLE_START</code> function.</p>
+there is also a <code class="language-plaintext highlighter-rouge">TUMBLE_START</code> function.</p>
 
-<p><code class="highlighter-rouge">TUMBLE</code> has an optional parameter to align the window.
+<p><code class="language-plaintext highlighter-rouge">TUMBLE</code> has an optional parameter to align the window.
 In the following example,
 we use a 30 minute interval and 0:12 as the alignment time,
 so the query emits summaries at 12 and 42 minutes past each hour:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">STREAM</span>
-  <span class="n">TUMBLE_END</span><span class="p">(</span><span class="n">rowtime</span><span class="p">,</span> <span class="n">INTERVAL</span> <span class="s1">'30'</span> <span class="k">MINUTE</span><span class="p">,</span> <span class="n">TIME</span> <span class="s1">'0:12'</span><span class="p">)</span> <span class="k">AS</span> <span class="n">rowtime</span><span class="p">,</span>
+  <span class="n">TUMBLE_END</span><span class="p">(</span><span class="n">rowtime</span><span class="p">,</span> <span class="n">INTERVAL</span> <span class="s1">'30'</span> <span class="k">MINUTE</span><span class="p">,</span> <span class="nb">TIME</span> <span class="s1">'0:12'</span><span class="p">)</span> <span class="k">AS</span> <span class="n">rowtime</span><span class="p">,</span>
   <span class="n">productId</span><span class="p">,</span>
   <span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="k">AS</span> <span class="k">c</span><span class="p">,</span>
   <span class="k">SUM</span><span class="p">(</span><span class="n">units</span><span class="p">)</span> <span class="k">AS</span> <span class="n">units</span>
 <span class="k">FROM</span> <span class="n">Orders</span>
-<span class="k">GROUP</span> <span class="k">BY</span> <span class="n">TUMBLE</span><span class="p">(</span><span class="n">rowtime</span><span class="p">,</span> <span class="n">INTERVAL</span> <span class="s1">'30'</span> <span class="k">MINUTE</span><span class="p">,</span> <span class="n">TIME</span> <span class="s1">'0:12'</span><span class="p">),</span>
+<span class="k">GROUP</span> <span class="k">BY</span> <span class="n">TUMBLE</span><span class="p">(</span><span class="n">rowtime</span><span class="p">,</span> <span class="n">INTERVAL</span> <span class="s1">'30'</span> <span class="k">MINUTE</span><span class="p">,</span> <span class="nb">TIME</span> <span class="s1">'0:12'</span><span class="p">),</span>
   <span class="n">productId</span><span class="p">;</span>
 
   <span class="n">rowtime</span> <span class="o">|</span> <span class="n">productId</span> <span class="o">|</span>       <span class="k">c</span> <span class="o">|</span> <span class="n">units</span>
@@ -413,18 +413,18 @@
  <span class="mi">12</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span> <span class="o">|</span>        <span class="mi">8</span> <span class="o">|</span>    <span class="mi">50</span></code></pre></figure>
 
 <p>In this query, because the retain period is 3 times the emit period, every input
-row contributes to exactly 3 output rows. Imagine that the <code class="highlighter-rouge">HOP</code> function
+row contributes to exactly 3 output rows. Imagine that the <code class="language-plaintext highlighter-rouge">HOP</code> function
 generates a collection of group keys for incoming row, and places its values
 in the accumulators of each of those group keys. For example,
-<code class="highlighter-rouge">HOP(10:18:00, INTERVAL '1' HOUR, INTERVAL '3')</code> generates 3 periods</p>
+<code class="language-plaintext highlighter-rouge">HOP(10:18:00, INTERVAL '1' HOUR, INTERVAL '3')</code> generates 3 periods</p>
 
-<p><code class="highlighter-rouge">[08:00, 09:00)
+<p><code class="language-plaintext highlighter-rouge">[08:00, 09:00)
 [09:00, 10:00)
 [10:00, 11:00)
 </code></p>
 
 <p>This raises the possibility of allowing user-defined partitioning functions
-for users who are not happy with the built-in functions <code class="highlighter-rouge">HOP</code> and <code class="highlighter-rouge">TUMBLE</code>.</p>
+for users who are not happy with the built-in functions <code class="language-plaintext highlighter-rouge">HOP</code> and <code class="language-plaintext highlighter-rouge">TUMBLE</code>.</p>
 
 <p>We can build complex complex expressions such as an exponentially decaying
 moving average:</p>
@@ -440,8 +440,8 @@
 <p>Emits:</p>
 
 <ul>
-  <li>a row at <code class="highlighter-rouge">11:00:00</code> containing rows in <code class="highlighter-rouge">[10:00:00, 11:00:00)</code>;</li>
-  <li>a row at <code class="highlighter-rouge">11:00:01</code> containing rows in <code class="highlighter-rouge">[10:00:01, 11:00:01)</code>.</li>
+  <li>a row at <code class="language-plaintext highlighter-rouge">11:00:00</code> containing rows in <code class="language-plaintext highlighter-rouge">[10:00:00, 11:00:00)</code>;</li>
+  <li>a row at <code class="language-plaintext highlighter-rouge">11:00:01</code> containing rows in <code class="language-plaintext highlighter-rouge">[10:00:01, 11:00:01)</code>.</li>
 </ul>
 
 <p>The expression weighs recent orders more heavily than older orders.
@@ -449,32 +449,32 @@
 virtually no effect on the accuracy of the result (but use more memory
 and compute).</p>
 
-<p>Note that we use <code class="highlighter-rouge">HOP_START</code> inside an aggregate function (<code class="highlighter-rouge">SUM</code>) because it
+<p>Note that we use <code class="language-plaintext highlighter-rouge">HOP_START</code> inside an aggregate function (<code class="language-plaintext highlighter-rouge">SUM</code>) because it
 is a value that is constant for all rows within a sub-total. This
-would not be allowed for typical aggregate functions (<code class="highlighter-rouge">SUM</code>, <code class="highlighter-rouge">COUNT</code>
+would not be allowed for typical aggregate functions (<code class="language-plaintext highlighter-rouge">SUM</code>, <code class="language-plaintext highlighter-rouge">COUNT</code>
 etc.).</p>
 
-<p>If you are familiar with <code class="highlighter-rouge">GROUPING SETS</code>, you may notice that partitioning
-functions can be seen as a generalization of <code class="highlighter-rouge">GROUPING SETS</code>, in that they
+<p>If you are familiar with <code class="language-plaintext highlighter-rouge">GROUPING SETS</code>, you may notice that partitioning
+functions can be seen as a generalization of <code class="language-plaintext highlighter-rouge">GROUPING SETS</code>, in that they
 allow an input row to contribute to multiple sub-totals.
-The auxiliary functions for <code class="highlighter-rouge">GROUPING SETS</code>,
-such as <code class="highlighter-rouge">GROUPING()</code> and <code class="highlighter-rouge">GROUP_ID</code>,
+The auxiliary functions for <code class="language-plaintext highlighter-rouge">GROUPING SETS</code>,
+such as <code class="language-plaintext highlighter-rouge">GROUPING()</code> and <code class="language-plaintext highlighter-rouge">GROUP_ID</code>,
 can be used inside aggregate functions, so it is not surprising that
-<code class="highlighter-rouge">HOP_START</code> and <code class="highlighter-rouge">HOP_END</code> can be used in the same way.</p>
+<code class="language-plaintext highlighter-rouge">HOP_START</code> and <code class="language-plaintext highlighter-rouge">HOP_END</code> can be used in the same way.</p>
 
 <h1 id="grouping-sets">GROUPING SETS</h1>
 
-<p><code class="highlighter-rouge">GROUPING SETS</code> is valid for a streaming query provided that every
+<p><code class="language-plaintext highlighter-rouge">GROUPING SETS</code> is valid for a streaming query provided that every
 grouping set contains a monotonic or quasi-monotonic expression.</p>
 
-<p><code class="highlighter-rouge">CUBE</code> and <code class="highlighter-rouge">ROLLUP</code> are not valid for streaming query, because they will
+<p><code class="language-plaintext highlighter-rouge">CUBE</code> and <code class="language-plaintext highlighter-rouge">ROLLUP</code> are not valid for streaming query, because they will
 produce at least one grouping set that aggregates everything (like
-<code class="highlighter-rouge">GROUP BY ()</code>).</p>
+<code class="language-plaintext highlighter-rouge">GROUP BY ()</code>).</p>
 
 <h1 id="filtering-after-aggregation">Filtering after aggregation</h1>
 
-<p>As in standard SQL, you can apply a <code class="highlighter-rouge">HAVING</code> clause to filter rows emitted by
-a streaming <code class="highlighter-rouge">GROUP BY</code>:</p>
+<p>As in standard SQL, you can apply a <code class="language-plaintext highlighter-rouge">HAVING</code> clause to filter rows emitted by
+a streaming <code class="language-plaintext highlighter-rouge">GROUP BY</code>:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">STREAM</span> <span class="n">TUMBLE_END</span><span class="p">(</span><span class="n">rowtime</span><span class="p">,</span> <span class="n">INTERVAL</span> <span class="s1">'1'</span> <span class="n">HOUR</span><span class="p">)</span> <span class="k">AS</span> <span class="n">rowtime</span><span class="p">,</span>
   <span class="n">productId</span>
@@ -490,7 +490,7 @@
 
 <h1 id="sub-queries-views-and-sqls-closure-property">Sub-queries, views and SQL’s closure property</h1>
 
-<p>The previous <code class="highlighter-rouge">HAVING</code> query can be expressed using a <code class="highlighter-rouge">WHERE</code> clause on a
+<p>The previous <code class="language-plaintext highlighter-rouge">HAVING</code> query can be expressed using a <code class="language-plaintext highlighter-rouge">WHERE</code> clause on a
 sub-query:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">STREAM</span> <span class="n">rowtime</span><span class="p">,</span> <span class="n">productId</span>
@@ -509,15 +509,15 @@
  <span class="mi">11</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span> <span class="o">|</span>        <span class="mi">10</span>
  <span class="mi">11</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span> <span class="o">|</span>        <span class="mi">40</span></code></pre></figure>
 
-<p><code class="highlighter-rouge">HAVING</code> was introduced in the early days of SQL, when a way was needed to
-perform a filter <em>after</em> aggregation. (Recall that <code class="highlighter-rouge">WHERE</code> filters rows before
-they enter the <code class="highlighter-rouge">GROUP BY</code> clause.)</p>
+<p><code class="language-plaintext highlighter-rouge">HAVING</code> was introduced in the early days of SQL, when a way was needed to
+perform a filter <em>after</em> aggregation. (Recall that <code class="language-plaintext highlighter-rouge">WHERE</code> filters rows before
+they enter the <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause.)</p>
 
 <p>Since then, SQL has become a mathematically closed language, which means that
 any operation you can perform on a table can also perform on a query.</p>
 
 <p>The <em>closure property</em> of SQL is extremely powerful. Not only does it render
-<code class="highlighter-rouge">HAVING</code> obsolete (or, at least, reduce it to syntactic sugar), it makes views
+<code class="language-plaintext highlighter-rouge">HAVING</code> obsolete (or, at least, reduce it to syntactic sugar), it makes views
 possible:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">CREATE</span> <span class="k">VIEW</span> <span class="n">HourlyOrderTotals</span> <span class="p">(</span><span class="n">rowtime</span><span class="p">,</span> <span class="n">productId</span><span class="p">,</span> <span class="k">c</span><span class="p">,</span> <span class="n">su</span><span class="p">)</span> <span class="k">AS</span>
@@ -538,7 +538,7 @@
  <span class="mi">11</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span> <span class="o">|</span>        <span class="mi">10</span>
  <span class="mi">11</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span> <span class="o">|</span>        <span class="mi">40</span></code></pre></figure>
 
-<p>Sub-queries in the <code class="highlighter-rouge">FROM</code> clause are sometimes referred to as “inline views”,
+<p>Sub-queries in the <code class="language-plaintext highlighter-rouge">FROM</code> clause are sometimes referred to as “inline views”,
 but really, they are more fundamental than views. Views are just a convenient
 way to carve your SQL into manageable chunks by giving the pieces names and
 storing them in the metadata repository.</p>
@@ -548,7 +548,7 @@
 operators all running continuously, and often those pipelines get quite long.
 Nested queries and views help to express and manage those pipelines.</p>
 
-<p>And, by the way, a <code class="highlighter-rouge">WITH</code> clause can accomplish the same as a sub-query or
+<p>And, by the way, a <code class="language-plaintext highlighter-rouge">WITH</code> clause can accomplish the same as a sub-query or
 a view:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">WITH</span> <span class="n">HourlyOrderTotals</span> <span class="p">(</span><span class="n">rowtime</span><span class="p">,</span> <span class="n">productId</span><span class="p">,</span> <span class="k">c</span><span class="p">,</span> <span class="n">su</span><span class="p">)</span> <span class="k">AS</span> <span class="p">(</span>
@@ -570,10 +570,10 @@
 
 <h1 id="converting-between-streams-and-relations">Converting between streams and relations</h1>
 
-<p>Look back at the definition of the <code class="highlighter-rouge">HourlyOrderTotals</code> view.
+<p>Look back at the definition of the <code class="language-plaintext highlighter-rouge">HourlyOrderTotals</code> view.
 Is the view a stream or a relation?</p>
 
-<p>It does not contain the <code class="highlighter-rouge">STREAM</code> keyword, so it is a relation.
+<p>It does not contain the <code class="language-plaintext highlighter-rouge">STREAM</code> keyword, so it is a relation.
 However, it is a relation that can be converted into a stream.</p>
 
 <p>You can use it in both relational and streaming queries:</p>
@@ -593,9 +593,9 @@
 <p>This approach is not limited to views and sub-queries.
 Following the approach set out in CQL [<a href="#ref1">1</a>], every query
 in streaming SQL is defined as a relational query and converted to a stream
-using the <code class="highlighter-rouge">STREAM</code> keyword in the top-most <code class="highlighter-rouge">SELECT</code>.</p>
+using the <code class="language-plaintext highlighter-rouge">STREAM</code> keyword in the top-most <code class="language-plaintext highlighter-rouge">SELECT</code>.</p>
 
-<p>If the <code class="highlighter-rouge">STREAM</code> keyword is present in sub-queries or view definitions, it has no
+<p>If the <code class="language-plaintext highlighter-rouge">STREAM</code> keyword is present in sub-queries or view definitions, it has no
 effect.</p>
 
 <p>At query preparation time, Calcite figures out whether the relations referenced
@@ -615,7 +615,7 @@
 
 <p><img src="/img/pie-chart.png" alt="Pie chart"></p>
 
-<p>But the <code class="highlighter-rouge">Orders</code> stream only contains a few records, not an hour’s summary.
+<p>But the <code class="language-plaintext highlighter-rouge">Orders</code> stream only contains a few records, not an hour’s summary.
 We need to run a relational query on the history of the stream:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">productId</span><span class="p">,</span> <span class="k">count</span><span class="p">(</span><span class="o">*</span><span class="p">)</span>
@@ -623,7 +623,7 @@
 <span class="k">WHERE</span> <span class="n">rowtime</span> <span class="k">BETWEEN</span> <span class="k">current_timestamp</span> <span class="o">-</span> <span class="n">INTERVAL</span> <span class="s1">'1'</span> <span class="n">HOUR</span>
               <span class="k">AND</span> <span class="k">current_timestamp</span><span class="p">;</span></code></pre></figure>
 
-<p>If the history of the <code class="highlighter-rouge">Orders</code> stream is being spooled to the <code class="highlighter-rouge">Orders</code> table,
+<p>If the history of the <code class="language-plaintext highlighter-rouge">Orders</code> stream is being spooled to the <code class="language-plaintext highlighter-rouge">Orders</code> table,
 we can answer the query, albeit at a high cost. Better, if we can tell the
 system to materialize one hour summary into a table,
 maintain it continuously as the stream flows,
@@ -631,10 +631,10 @@
 
 <h1 id="sorting">Sorting</h1>
 
-<p>The story for <code class="highlighter-rouge">ORDER BY</code> is similar to <code class="highlighter-rouge">GROUP BY</code>.
+<p>The story for <code class="language-plaintext highlighter-rouge">ORDER BY</code> is similar to <code class="language-plaintext highlighter-rouge">GROUP BY</code>.
 The syntax looks like regular SQL, but Calcite must be sure that it can deliver
 timely results. It therefore requires a monotonic expression on the leading edge
-of your <code class="highlighter-rouge">ORDER BY</code> key.</p>
+of your <code class="language-plaintext highlighter-rouge">ORDER BY</code> key.</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">STREAM</span> <span class="n">CEIL</span><span class="p">(</span><span class="n">rowtime</span> <span class="k">TO</span> <span class="n">hour</span><span class="p">)</span> <span class="k">AS</span> <span class="n">rowtime</span><span class="p">,</span> <span class="n">productId</span><span class="p">,</span> <span class="n">orderId</span><span class="p">,</span> <span class="n">units</span>
 <span class="k">FROM</span> <span class="n">Orders</span>
@@ -672,11 +672,11 @@
  <span class="mi">11</span><span class="p">:</span><span class="mi">04</span><span class="p">:</span><span class="mi">00</span> <span class="o">|</span>        <span class="mi">10</span> <span class="o">|</span>      <span class="mi">10</span> <span class="o">|</span>     <span class="mi">1</span>
  <span class="mi">11</span><span class="p">:</span><span class="mi">24</span><span class="p">:</span><span class="mi">11</span> <span class="o">|</span>        <span class="mi">10</span> <span class="o">|</span>      <span class="mi">12</span> <span class="o">|</span>     <span class="mi">4</span></code></pre></figure>
 
-<p>The rows with <code class="highlighter-rouge">productId</code> = 30 are apparently out of order, probably because
-the <code class="highlighter-rouge">Orders</code> stream was partitioned on <code class="highlighter-rouge">productId</code> and the partitioned streams
+<p>The rows with <code class="language-plaintext highlighter-rouge">productId</code> = 30 are apparently out of order, probably because
+the <code class="language-plaintext highlighter-rouge">Orders</code> stream was partitioned on <code class="language-plaintext highlighter-rouge">productId</code> and the partitioned streams
 sent their data at different times.</p>
 
-<p>If you require a particular ordering, add an explicit <code class="highlighter-rouge">ORDER BY</code>:</p>
+<p>If you require a particular ordering, add an explicit <code class="language-plaintext highlighter-rouge">ORDER BY</code>:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">STREAM</span> <span class="o">*</span>
 <span class="k">FROM</span> <span class="n">Orders</span>
@@ -696,16 +696,16 @@
  <span class="mi">11</span><span class="p">:</span><span class="mi">04</span><span class="p">:</span><span class="mi">00</span> <span class="o">|</span>        <span class="mi">10</span> <span class="o">|</span>      <span class="mi">10</span> <span class="o">|</span>     <span class="mi">1</span>
  <span class="mi">11</span><span class="p">:</span><span class="mi">24</span><span class="p">:</span><span class="mi">11</span> <span class="o">|</span>        <span class="mi">10</span> <span class="o">|</span>      <span class="mi">12</span> <span class="o">|</span>     <span class="mi">4</span></code></pre></figure>
 
-<p>Calcite will probably implement the <code class="highlighter-rouge">UNION ALL</code> by merging using <code class="highlighter-rouge">rowtime</code>,
+<p>Calcite will probably implement the <code class="language-plaintext highlighter-rouge">UNION ALL</code> by merging using <code class="language-plaintext highlighter-rouge">rowtime</code>,
 which is only slightly less efficient.</p>
 
-<p>You only need to add an <code class="highlighter-rouge">ORDER BY</code> to the outermost query. If you need to,
-say, perform <code class="highlighter-rouge">GROUP BY</code> after a <code class="highlighter-rouge">UNION ALL</code>, Calcite will add an <code class="highlighter-rouge">ORDER BY</code>
+<p>You only need to add an <code class="language-plaintext highlighter-rouge">ORDER BY</code> to the outermost query. If you need to,
+say, perform <code class="language-plaintext highlighter-rouge">GROUP BY</code> after a <code class="language-plaintext highlighter-rouge">UNION ALL</code>, Calcite will add an <code class="language-plaintext highlighter-rouge">ORDER BY</code>
 implicitly, in order to make the GROUP BY algorithm possible.</p>
 
 <h1 id="table-constructor">Table constructor</h1>
 
-<p>The <code class="highlighter-rouge">VALUES</code> clause creates an inline table with a given set of rows.</p>
+<p>The <code class="language-plaintext highlighter-rouge">VALUES</code> clause creates an inline table with a given set of rows.</p>
 
 <p>Streaming is disallowed. The set of rows never changes, and therefore a stream
 would never return any rows.</p>
@@ -717,7 +717,7 @@
 <h1 id="sliding-windows">Sliding windows</h1>
 
 <p>Standard SQL features so-called “analytic functions” that can be used in the
-<code class="highlighter-rouge">SELECT</code> clause. Unlike <code class="highlighter-rouge">GROUP BY</code>, these do not collapse records. For each
+<code class="language-plaintext highlighter-rouge">SELECT</code> clause. Unlike <code class="language-plaintext highlighter-rouge">GROUP BY</code>, these do not collapse records. For each
 record that goes in, one record comes out. But the aggregate function is based
 on a window of many rows.</p>
 
@@ -726,11 +726,11 @@
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">STREAM</span> <span class="n">rowtime</span><span class="p">,</span>
   <span class="n">productId</span><span class="p">,</span>
   <span class="n">units</span><span class="p">,</span>
-  <span class="k">SUM</span><span class="p">(</span><span class="n">units</span><span class="p">)</span> <span class="n">OVER</span> <span class="p">(</span><span class="k">ORDER</span> <span class="k">BY</span> <span class="n">rowtime</span> <span class="n">RANGE</span> <span class="n">INTERVAL</span> <span class="s1">'1'</span> <span class="n">HOUR</span> <span class="n">PRECEDING</span><span class="p">)</span> <span class="n">unitsLastHour</span>
+  <span class="k">SUM</span><span class="p">(</span><span class="n">units</span><span class="p">)</span> <span class="n">OVER</span> <span class="p">(</span><span class="k">ORDER</span> <span class="k">BY</span> <span class="n">rowtime</span> <span class="k">RANGE</span> <span class="n">INTERVAL</span> <span class="s1">'1'</span> <span class="n">HOUR</span> <span class="k">PRECEDING</span><span class="p">)</span> <span class="n">unitsLastHour</span>
 <span class="k">FROM</span> <span class="n">Orders</span><span class="p">;</span></code></pre></figure>
 
 <p>The feature packs a lot of power with little effort. You can have multiple
-functions in the <code class="highlighter-rouge">SELECT</code> clause, based on multiple window specifications.</p>
+functions in the <code class="language-plaintext highlighter-rouge">SELECT</code> clause, based on multiple window specifications.</p>
 
 <p>The following example returns orders whose average order size over the last
 10 minutes is greater than the average order size for the last week.</p>
@@ -740,17 +740,17 @@
   <span class="k">SELECT</span> <span class="n">STREAM</span> <span class="n">rowtime</span><span class="p">,</span>
     <span class="n">productId</span><span class="p">,</span>
     <span class="n">units</span><span class="p">,</span>
-    <span class="k">AVG</span><span class="p">(</span><span class="n">units</span><span class="p">)</span> <span class="n">OVER</span> <span class="n">product</span> <span class="p">(</span><span class="n">RANGE</span> <span class="n">INTERVAL</span> <span class="s1">'10'</span> <span class="k">MINUTE</span> <span class="n">PRECEDING</span><span class="p">)</span> <span class="k">AS</span> <span class="n">m10</span><span class="p">,</span>
-    <span class="k">AVG</span><span class="p">(</span><span class="n">units</span><span class="p">)</span> <span class="n">OVER</span> <span class="n">product</span> <span class="p">(</span><span class="n">RANGE</span> <span class="n">INTERVAL</span> <span class="s1">'7'</span> <span class="k">DAY</span> <span class="n">PRECEDING</span><span class="p">)</span> <span class="k">AS</span> <span class="n">d7</span>
+    <span class="k">AVG</span><span class="p">(</span><span class="n">units</span><span class="p">)</span> <span class="n">OVER</span> <span class="n">product</span> <span class="p">(</span><span class="k">RANGE</span> <span class="n">INTERVAL</span> <span class="s1">'10'</span> <span class="k">MINUTE</span> <span class="k">PRECEDING</span><span class="p">)</span> <span class="k">AS</span> <span class="n">m10</span><span class="p">,</span>
+    <span class="k">AVG</span><span class="p">(</span><span class="n">units</span><span class="p">)</span> <span class="n">OVER</span> <span class="n">product</span> <span class="p">(</span><span class="k">RANGE</span> <span class="n">INTERVAL</span> <span class="s1">'7'</span> <span class="k">DAY</span> <span class="k">PRECEDING</span><span class="p">)</span> <span class="k">AS</span> <span class="n">d7</span>
   <span class="k">FROM</span> <span class="n">Orders</span>
-  <span class="n">WINDOW</span> <span class="n">product</span> <span class="k">AS</span> <span class="p">(</span>
+  <span class="k">WINDOW</span> <span class="n">product</span> <span class="k">AS</span> <span class="p">(</span>
     <span class="k">ORDER</span> <span class="k">BY</span> <span class="n">rowtime</span>
-    <span class="n">PARTITION</span> <span class="k">BY</span> <span class="n">productId</span><span class="p">))</span>
+    <span class="k">PARTITION</span> <span class="k">BY</span> <span class="n">productId</span><span class="p">))</span>
 <span class="k">WHERE</span> <span class="n">m10</span> <span class="o">&gt;</span> <span class="n">d7</span><span class="p">;</span></code></pre></figure>
 
 <p>For conciseness, here we use a syntax where you partially define a window
-using a <code class="highlighter-rouge">WINDOW</code> clause and then refine the window in each <code class="highlighter-rouge">OVER</code> clause.
-You could also define all windows in the <code class="highlighter-rouge">WINDOW</code> clause, or all windows inline,
+using a <code class="language-plaintext highlighter-rouge">WINDOW</code> clause and then refine the window in each <code class="language-plaintext highlighter-rouge">OVER</code> clause.
+You could also define all windows in the <code class="language-plaintext highlighter-rouge">WINDOW</code> clause, or all windows inline,
 if you wish.</p>
 
 <p>But the real power goes beyond syntax. Behind the scenes, this query is
@@ -764,7 +764,7 @@
   <li>You can define windows based on row count.</li>
   <li>The window can reference rows that have not yet arrived.
 (The stream will wait until they have arrived).</li>
-  <li>You can compute order-dependent functions such as <code class="highlighter-rouge">RANK</code> and median.</li>
+  <li>You can compute order-dependent functions such as <code class="language-plaintext highlighter-rouge">RANK</code> and median.</li>
 </ul>
 
 <h1 id="cascading-windows">Cascading windows</h1>
@@ -777,13 +777,13 @@
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">STREAM</span> <span class="n">rowtime</span><span class="p">,</span>
   <span class="n">productId</span><span class="p">,</span>
   <span class="n">units</span><span class="p">,</span>
-  <span class="k">SUM</span><span class="p">(</span><span class="n">units</span><span class="p">)</span> <span class="n">OVER</span> <span class="p">(</span><span class="n">PARTITION</span> <span class="k">BY</span> <span class="n">FLOOR</span><span class="p">(</span><span class="n">rowtime</span> <span class="k">TO</span> <span class="n">HOUR</span><span class="p">))</span> <span class="k">AS</span> <span class="n">unitsSinceTopOfHour</span>
+  <span class="k">SUM</span><span class="p">(</span><span class="n">units</span><span class="p">)</span> <span class="n">OVER</span> <span class="p">(</span><span class="k">PARTITION</span> <span class="k">BY</span> <span class="n">FLOOR</span><span class="p">(</span><span class="n">rowtime</span> <span class="k">TO</span> <span class="n">HOUR</span><span class="p">))</span> <span class="k">AS</span> <span class="n">unitsSinceTopOfHour</span>
 <span class="k">FROM</span> <span class="n">Orders</span><span class="p">;</span></code></pre></figure>
 
 <p>It looks similar to a sliding window query, but the monotonic
-expression occurs within the <code class="highlighter-rouge">PARTITION BY</code> clause of the window. As
+expression occurs within the <code class="language-plaintext highlighter-rouge">PARTITION BY</code> clause of the window. As
 the rowtime moves from from 10:59:59 to 11:00:00,
-<code class="highlighter-rouge">FLOOR(rowtime TO HOUR)</code> changes from 10:00:00 to 11:00:00,
+<code class="language-plaintext highlighter-rouge">FLOOR(rowtime TO HOUR)</code> changes from 10:00:00 to 11:00:00,
 and therefore a new partition starts.
 The first row to arrive in the new hour will start a
 new total; the second row will have a total that consists of two rows,
@@ -827,7 +827,7 @@
 placed after 11:00 should reflect the new price.</p>
 
 <p>One way to implement this is to have a table that keeps every version
-with a start and end effective date, <code class="highlighter-rouge">ProductVersions</code> in the following
+with a start and end effective date, <code class="language-plaintext highlighter-rouge">ProductVersions</code> in the following
 example:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">STREAM</span> <span class="o">*</span>
@@ -849,9 +849,9 @@
 
 <p>The other way to implement this is to use a database with temporal support
 (the ability to find the contents of the database as it was at any moment
-in the past), and the system needs to know that the <code class="highlighter-rouge">rowtime</code> column of
-the <code class="highlighter-rouge">Orders</code> stream corresponds to the transaction timestamp of the
-<code class="highlighter-rouge">Products</code> table.</p>
+in the past), and the system needs to know that the <code class="language-plaintext highlighter-rouge">rowtime</code> column of
+the <code class="language-plaintext highlighter-rouge">Orders</code> stream corresponds to the transaction timestamp of the
+<code class="language-plaintext highlighter-rouge">Products</code> table.</p>
 
 <p>For many applications, it is not worth the cost and effort of temporal
 support or a versioned table. It is acceptable to the application that
@@ -889,8 +889,8 @@
 <h1 id="dml">DML</h1>
 
 <p>It’s not only queries that make sense against streams;
-it also makes sense to run DML statements (<code class="highlighter-rouge">INSERT</code>, <code class="highlighter-rouge">UPDATE</code>, <code class="highlighter-rouge">DELETE</code>,
-and also their rarer cousins <code class="highlighter-rouge">UPSERT</code> and <code class="highlighter-rouge">REPLACE</code>) against streams.</p>
+it also makes sense to run DML statements (<code class="language-plaintext highlighter-rouge">INSERT</code>, <code class="language-plaintext highlighter-rouge">UPDATE</code>, <code class="language-plaintext highlighter-rouge">DELETE</code>,
+and also their rarer cousins <code class="language-plaintext highlighter-rouge">UPSERT</code> and <code class="language-plaintext highlighter-rouge">REPLACE</code>) against streams.</p>
 
 <p>DML is useful because it allows you do materialize streams
 or tables based on streams,
@@ -903,30 +903,30 @@
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">CREATE</span> <span class="k">VIEW</span> <span class="n">LargeOrders</span> <span class="k">AS</span>
 <span class="k">SELECT</span> <span class="n">STREAM</span> <span class="o">*</span> <span class="k">FROM</span> <span class="n">Orders</span> <span class="k">WHERE</span> <span class="n">units</span> <span class="o">&gt;</span> <span class="mi">1000</span><span class="p">;</span></code></pre></figure>
 
-<p>or a standing <code class="highlighter-rouge">INSERT</code> statement:</p>
+<p>or a standing <code class="language-plaintext highlighter-rouge">INSERT</code> statement:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">INSERT</span> <span class="k">INTO</span> <span class="n">LargeOrders</span>
 <span class="k">SELECT</span> <span class="n">STREAM</span> <span class="o">*</span> <span class="k">FROM</span> <span class="n">Orders</span> <span class="k">WHERE</span> <span class="n">units</span> <span class="o">&gt;</span> <span class="mi">1000</span><span class="p">;</span></code></pre></figure>
 
 <p>These look similar, and in both cases the next step(s) in the pipeline
-can read from <code class="highlighter-rouge">LargeOrders</code> without worrying how it was populated.
-There is a difference in efficiency: the <code class="highlighter-rouge">INSERT</code> statement does the
+can read from <code class="language-plaintext highlighter-rouge">LargeOrders</code> without worrying how it was populated.
+There is a difference in efficiency: the <code class="language-plaintext highlighter-rouge">INSERT</code> statement does the
 same work no matter how many consumers there are; the view does work
 proportional to the number of consumers, and in particular, does no
 work if there are no consumers.</p>
 
 <p>Other forms of DML make sense for streams. For example, the following
-standing <code class="highlighter-rouge">UPSERT</code> statement maintains a table that materializes a summary
+standing <code class="language-plaintext highlighter-rouge">UPSERT</code> statement maintains a table that materializes a summary
 of the last hour of orders:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">UPSERT</span> <span class="k">INTO</span> <span class="n">OrdersSummary</span>
 <span class="k">SELECT</span> <span class="n">STREAM</span> <span class="n">productId</span><span class="p">,</span>
   <span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="n">OVER</span> <span class="n">lastHour</span> <span class="k">AS</span> <span class="k">c</span>
 <span class="k">FROM</span> <span class="n">Orders</span>
-<span class="n">WINDOW</span> <span class="n">lastHour</span> <span class="k">AS</span> <span class="p">(</span>
-  <span class="n">PARTITION</span> <span class="k">BY</span> <span class="n">productId</span>
+<span class="k">WINDOW</span> <span class="n">lastHour</span> <span class="k">AS</span> <span class="p">(</span>
+  <span class="k">PARTITION</span> <span class="k">BY</span> <span class="n">productId</span>
   <span class="k">ORDER</span> <span class="k">BY</span> <span class="n">rowtime</span>
-  <span class="n">RANGE</span> <span class="n">INTERVAL</span> <span class="s1">'1'</span> <span class="n">HOUR</span> <span class="n">PRECEDING</span><span class="p">)</span></code></pre></figure>
+  <span class="k">RANGE</span> <span class="n">INTERVAL</span> <span class="s1">'1'</span> <span class="n">HOUR</span> <span class="k">PRECEDING</span><span class="p">)</span></code></pre></figure>
 
 <h1 id="punctuation">Punctuation</h1>
 
@@ -979,12 +979,12 @@
 <h2 id="implemented">Implemented</h2>
 
 <ul>
-  <li>Streaming <code class="highlighter-rouge">SELECT</code>, <code class="highlighter-rouge">WHERE</code>, <code class="highlighter-rouge">GROUP BY</code>, <code class="highlighter-rouge">HAVING</code>, <code class="highlighter-rouge">UNION ALL</code>, <code class="highlighter-rouge">ORDER BY</code>
+  <li>Streaming <code class="language-plaintext highlighter-rouge">SELECT</code>, <code class="language-plaintext highlighter-rouge">WHERE</code>, <code class="language-plaintext highlighter-rouge">GROUP BY</code>, <code class="language-plaintext highlighter-rouge">HAVING</code>, <code class="language-plaintext highlighter-rouge">UNION ALL</code>, <code class="language-plaintext highlighter-rouge">ORDER BY</code>
 </li>
   <li>
-<code class="highlighter-rouge">FLOOR</code> and <code class="highlighter-rouge">CEIL</code> functions</li>
+<code class="language-plaintext highlighter-rouge">FLOOR</code> and <code class="language-plaintext highlighter-rouge">CEIL</code> functions</li>
   <li>Monotonicity</li>
-  <li>Streaming <code class="highlighter-rouge">VALUES</code> is disallowed</li>
+  <li>Streaming <code class="language-plaintext highlighter-rouge">VALUES</code> is disallowed</li>
 </ul>
 
 <h2 id="not-implemented">Not implemented</h2>
@@ -995,39 +995,39 @@
 negative cases) and the TCK tests it.</p>
 
 <ul>
-  <li>Stream-to-stream <code class="highlighter-rouge">JOIN</code>
+  <li>Stream-to-stream <code class="language-plaintext highlighter-rouge">JOIN</code>
 </li>
-  <li>Stream-to-table <code class="highlighter-rouge">JOIN</code>
+  <li>Stream-to-table <code class="language-plaintext highlighter-rouge">JOIN</code>
 </li>
   <li>Stream on view</li>
-  <li>Streaming <code class="highlighter-rouge">UNION ALL</code> with <code class="highlighter-rouge">ORDER BY</code> (merge)</li>
+  <li>Streaming <code class="language-plaintext highlighter-rouge">UNION ALL</code> with <code class="language-plaintext highlighter-rouge">ORDER BY</code> (merge)</li>
   <li>Relational query on stream</li>
   <li>Streaming windowed aggregation (sliding and cascading windows)</li>
-  <li>Check that <code class="highlighter-rouge">STREAM</code> in sub-queries and views is ignored</li>
-  <li>Check that streaming <code class="highlighter-rouge">ORDER BY</code> cannot have <code class="highlighter-rouge">OFFSET</code> or <code class="highlighter-rouge">LIMIT</code>
+  <li>Check that <code class="language-plaintext highlighter-rouge">STREAM</code> in sub-queries and views is ignored</li>
+  <li>Check that streaming <code class="language-plaintext highlighter-rouge">ORDER BY</code> cannot have <code class="language-plaintext highlighter-rouge">OFFSET</code> or <code class="language-plaintext highlighter-rouge">LIMIT</code>
 </li>
   <li>Limited history; at run time, check that there is sufficient history
 to run the query.</li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-1096">Quasi-monotonicity</a></li>
   <li>
-<code class="highlighter-rouge">HOP</code> and <code class="highlighter-rouge">TUMBLE</code> (and auxiliary <code class="highlighter-rouge">HOP_START</code>, <code class="highlighter-rouge">HOP_END</code>,
-<code class="highlighter-rouge">TUMBLE_START</code>, <code class="highlighter-rouge">TUMBLE_END</code>) functions</li>
+<code class="language-plaintext highlighter-rouge">HOP</code> and <code class="language-plaintext highlighter-rouge">TUMBLE</code> (and auxiliary <code class="language-plaintext highlighter-rouge">HOP_START</code>, <code class="language-plaintext highlighter-rouge">HOP_END</code>,
+<code class="language-plaintext highlighter-rouge">TUMBLE_START</code>, <code class="language-plaintext highlighter-rouge">TUMBLE_END</code>) functions</li>
 </ul>
 
 <h2 id="to-do-in-this-document">To do in this document</h2>
 
 <ul>
-  <li>Re-visit whether you can stream <code class="highlighter-rouge">VALUES</code>
+  <li>Re-visit whether you can stream <code class="language-plaintext highlighter-rouge">VALUES</code>
 </li>
   <li>
-<code class="highlighter-rouge">OVER</code> clause to define window on stream</li>
-  <li>Consider whether to allow <code class="highlighter-rouge">CUBE</code> and <code class="highlighter-rouge">ROLLUP</code> in streaming queries,
+<code class="language-plaintext highlighter-rouge">OVER</code> clause to define window on stream</li>
+  <li>Consider whether to allow <code class="language-plaintext highlighter-rouge">CUBE</code> and <code class="language-plaintext highlighter-rouge">ROLLUP</code> in streaming queries,
 with an understanding that some levels of aggregation will never complete
 (because they have no monotonic expressions) and thus will never be emitted.</li>
-  <li>Fix the <code class="highlighter-rouge">UPSERT</code> example to remove records for products that have not
+  <li>Fix the <code class="language-plaintext highlighter-rouge">UPSERT</code> example to remove records for products that have not
 occurred in the last hour.</li>
   <li>DML that outputs to multiple streams; perhaps an extension to the standard
-<code class="highlighter-rouge">REPLACE</code> statement.</li>
+<code class="language-plaintext highlighter-rouge">REPLACE</code> statement.</li>
 </ul>
 
 <h1 id="functions">Functions</h1>
@@ -1039,10 +1039,10 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">FLOOR(dateTime TO intervalType)</code> rounds a date, time or timestamp value
+<code class="language-plaintext highlighter-rouge">FLOOR(dateTime TO intervalType)</code> rounds a date, time or timestamp value
 down to a given interval type</li>
   <li>
-<code class="highlighter-rouge">CEIL(dateTime TO intervalType)</code> rounds a date, time or timestamp value
+<code class="language-plaintext highlighter-rouge">CEIL(dateTime TO intervalType)</code> rounds a date, time or timestamp value
 up to a given interval type</li>
 </ul>
 
@@ -1050,24 +1050,24 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">HOP(t, emit, retain)</code> returns a collection of group keys for a row
+<code class="language-plaintext highlighter-rouge">HOP(t, emit, retain)</code> returns a collection of group keys for a row
 to be part of a hopping window</li>
   <li>
-<code class="highlighter-rouge">HOP(t, emit, retain, align)</code> returns a collection of group keys for a row
+<code class="language-plaintext highlighter-rouge">HOP(t, emit, retain, align)</code> returns a collection of group keys for a row
 to be part of a hopping window with a given alignment</li>
   <li>
-<code class="highlighter-rouge">TUMBLE(t, emit)</code> returns a group key for a row
+<code class="language-plaintext highlighter-rouge">TUMBLE(t, emit)</code> returns a group key for a row
 to be part of a tumbling window</li>
   <li>
-<code class="highlighter-rouge">TUMBLE(t, emit, align)</code> returns a group key for a row
+<code class="language-plaintext highlighter-rouge">TUMBLE(t, emit, align)</code> returns a group key for a row
 to be part of a tumbling window with a given alignment</li>
 </ul>
 
-<p><code class="highlighter-rouge">TUMBLE(t, e)</code> is equivalent to <code class="highlighter-rouge">TUMBLE(t, e, TIME '00:00:00')</code>.</p>
+<p><code class="language-plaintext highlighter-rouge">TUMBLE(t, e)</code> is equivalent to <code class="language-plaintext highlighter-rouge">TUMBLE(t, e, TIME '00:00:00')</code>.</p>
 
-<p><code class="highlighter-rouge">TUMBLE(t, e, a)</code> is equivalent to <code class="highlighter-rouge">HOP(t, e, e, a)</code>.</p>
+<p><code class="language-plaintext highlighter-rouge">TUMBLE(t, e, a)</code> is equivalent to <code class="language-plaintext highlighter-rouge">HOP(t, e, e, a)</code>.</p>
 
-<p><code class="highlighter-rouge">HOP(t, e, r)</code> is equivalent to <code class="highlighter-rouge">HOP(t, e, r, TIME '00:00:00')</code>.</p>
+<p><code class="language-plaintext highlighter-rouge">HOP(t, e, r)</code> is equivalent to <code class="language-plaintext highlighter-rouge">HOP(t, e, r, TIME '00:00:00')</code>.</p>
 
 <h1 id="references">References</h1>
 
@@ -1383,7 +1383,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/docs/tutorial.html b/docs/tutorial.html
index 6bf6e3c..50476fb 100644
--- a/docs/tutorial.html
+++ b/docs/tutorial.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Tutorial</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -126,7 +126,7 @@
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>./sqlline
 sqlline&gt; <span class="o">!</span>connect jdbc:calcite:model<span class="o">=</span>src/test/resources/model.json admin admin</code></pre></figure>
 
-<p>(If you are running Windows, the command is <code class="highlighter-rouge">sqlline.bat</code>.)</p>
+<p>(If you are running Windows, the command is <code class="language-plaintext highlighter-rouge">sqlline.bat</code>.)</p>
 
 <p>Execute a metadata query:</p>
 
@@ -215,15 +215,15 @@
 format. Here is the model:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">version</span><span class="p">:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
-  </span><span class="err">defaultSchema</span><span class="p">:</span><span class="w"> </span><span class="err">'SALES'</span><span class="p">,</span><span class="w">
-  </span><span class="err">schemas</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span class="err">'SALES'</span><span class="p">,</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'SALES'</span><span class="p">,</span><span class="w">
-      </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
-      </span><span class="err">factory</span><span class="p">:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.csv.CsvSchemaFactory'</span><span class="p">,</span><span class="w">
-      </span><span class="err">operand</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="err">directory</span><span class="p">:</span><span class="w"> </span><span class="err">'sales'</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span class="err">'SALES'</span><span class="p">,</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.csv.CsvSchemaFactory'</span><span class="p">,</span><span class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="err">directory:</span><span class="w"> </span><span class="err">'sales'</span><span class="w">
       </span><span class="p">}</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">]</span><span class="w">
@@ -231,22 +231,22 @@
 
 <p>The model defines a single schema called ‘SALES’. The schema is
 powered by a plugin class,
-<a href="https://github.com/apache/calcite/blob/master/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvSchemaFactory.java">org.apache.calcite.adapter.csv.CsvSchemaFactory</a>,
+<a href="https://github.com/apache/calcite/blob/main/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvSchemaFactory.java">org.apache.calcite.adapter.csv.CsvSchemaFactory</a>,
 which is part of the
 calcite-example-csv project and implements the Calcite interface
 <a href="/javadocAggregate/org/apache/calcite/schema/SchemaFactory.html">SchemaFactory</a>.
 Its <code>create</code> method instantiates a
 schema, passing in the <code>directory</code> argument from the model file:</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="n">Schema</span> <span class="nf">create</span><span class="o">(</span><span class="n">SchemaPlus</span> <span class="n">parentSchema</span><span class="o">,</span> <span class="n">String</span> <span class="n">name</span><span class="o">,</span>
-    <span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Object</span><span class="o">&gt;</span> <span class="n">operand</span><span class="o">)</span> <span class="o">{</span>
-  <span class="n">String</span> <span class="n">directory</span> <span class="o">=</span> <span class="o">(</span><span class="n">String</span><span class="o">)</span> <span class="n">operand</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"directory"</span><span class="o">);</span>
-  <span class="n">String</span> <span class="n">flavorName</span> <span class="o">=</span> <span class="o">(</span><span class="n">String</span><span class="o">)</span> <span class="n">operand</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"flavor"</span><span class="o">);</span>
-  <span class="n">CsvTable</span><span class="o">.</span><span class="na">Flavor</span> <span class="n">flavor</span><span class="o">;</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="nc">Schema</span> <span class="nf">create</span><span class="o">(</span><span class="nc">SchemaPlus</span> <span class="n">parentSchema</span><span class="o">,</span> <span class="nc">String</span> <span class="n">name</span><span class="o">,</span>
+    <span class="nc">Map</span><span class="o">&lt;</span><span class="nc">String</span><span class="o">,</span> <span class="nc">Object</span><span class="o">&gt;</span> <span class="n">operand</span><span class="o">)</span> <span class="o">{</span>
+  <span class="nc">String</span> <span class="n">directory</span> <span class="o">=</span> <span class="o">(</span><span class="nc">String</span><span class="o">)</span> <span class="n">operand</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"directory"</span><span class="o">);</span>
+  <span class="nc">String</span> <span class="n">flavorName</span> <span class="o">=</span> <span class="o">(</span><span class="nc">String</span><span class="o">)</span> <span class="n">operand</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"flavor"</span><span class="o">);</span>
+  <span class="nc">CsvTable</span><span class="o">.</span><span class="na">Flavor</span> <span class="n">flavor</span><span class="o">;</span>
   <span class="k">if</span> <span class="o">(</span><span class="n">flavorName</span> <span class="o">==</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
-    <span class="n">flavor</span> <span class="o">=</span> <span class="n">CsvTable</span><span class="o">.</span><span class="na">Flavor</span><span class="o">.</span><span class="na">SCANNABLE</span><span class="o">;</span>
+    <span class="n">flavor</span> <span class="o">=</span> <span class="nc">CsvTable</span><span class="o">.</span><span class="na">Flavor</span><span class="o">.</span><span class="na">SCANNABLE</span><span class="o">;</span>
   <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
-    <span class="n">flavor</span> <span class="o">=</span> <span class="n">CsvTable</span><span class="o">.</span><span class="na">Flavor</span><span class="o">.</span><span class="na">valueOf</span><span class="o">(</span><span class="n">flavorName</span><span class="o">.</span><span class="na">toUpperCase</span><span class="o">());</span>
+    <span class="n">flavor</span> <span class="o">=</span> <span class="nc">CsvTable</span><span class="o">.</span><span class="na">Flavor</span><span class="o">.</span><span class="na">valueOf</span><span class="o">(</span><span class="n">flavorName</span><span class="o">.</span><span class="na">toUpperCase</span><span class="o">());</span>
   <span class="o">}</span>
   <span class="k">return</span> <span class="k">new</span> <span class="nf">CsvSchema</span><span class="o">(</span>
       <span class="k">new</span> <span class="nf">File</span><span class="o">(</span><span class="n">directory</span><span class="o">),</span>
@@ -255,7 +255,7 @@
 
 <p>Driven by the model, the schema factory instantiates a single schema
 called ‘SALES’.  The schema is an instance of
-<a href="https://github.com/apache/calcite/blob/master/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvSchema.java">org.apache.calcite.adapter.csv.CsvSchema</a>
+<a href="https://github.com/apache/calcite/blob/main/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvSchema.java">org.apache.calcite.adapter.csv.CsvSchema</a>
 and implements the Calcite interface
 <a href="/javadocAggregate/org/apache/calcite/schema/Schema.html">Schema</a>.</p>
 
@@ -264,47 +264,47 @@
 not support them.) The tables implement Calcite’s
 <a href="/javadocAggregate/org/apache/calcite/schema/Table.html">Table</a>
 interface. <code>CsvSchema</code> produces tables that are instances of
-<a href="https://github.com/apache/calcite/blob/master/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTable.java">CsvTable</a>
+<a href="https://github.com/apache/calcite/blob/main/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTable.java">CsvTable</a>
 and its sub-classes.</p>
 
 <p>Here is the relevant code from <code>CsvSchema</code>, overriding the
 <code><a href="/javadocAggregate/org/apache/calcite/schema/impl/AbstractSchema.html#getTableMap()">getTableMap()</a></code>
 method in the <code>AbstractSchema</code> base class.</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">protected</span> <span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Table</span><span class="o">&gt;</span> <span class="nf">getTableMap</span><span class="o">()</span> <span class="o">{</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">protected</span> <span class="nc">Map</span><span class="o">&lt;</span><span class="nc">String</span><span class="o">,</span> <span class="nc">Table</span><span class="o">&gt;</span> <span class="nf">getTableMap</span><span class="o">()</span> <span class="o">{</span>
   <span class="c1">// Look for files in the directory ending in ".csv", ".csv.gz", ".json",</span>
   <span class="c1">// ".json.gz".</span>
-  <span class="n">File</span><span class="o">[]</span> <span class="n">files</span> <span class="o">=</span> <span class="n">directoryFile</span><span class="o">.</span><span class="na">listFiles</span><span class="o">(</span>
+  <span class="nc">File</span><span class="o">[]</span> <span class="n">files</span> <span class="o">=</span> <span class="n">directoryFile</span><span class="o">.</span><span class="na">listFiles</span><span class="o">(</span>
       <span class="k">new</span> <span class="nf">FilenameFilter</span><span class="o">()</span> <span class="o">{</span>
-        <span class="kd">public</span> <span class="kt">boolean</span> <span class="nf">accept</span><span class="o">(</span><span class="n">File</span> <span class="n">dir</span><span class="o">,</span> <span class="n">String</span> <span class="n">name</span><span class="o">)</span> <span class="o">{</span>
-          <span class="kd">final</span> <span class="n">String</span> <span class="n">nameSansGz</span> <span class="o">=</span> <span class="n">trim</span><span class="o">(</span><span class="n">name</span><span class="o">,</span> <span class="s">".gz"</span><span class="o">);</span>
+        <span class="kd">public</span> <span class="kt">boolean</span> <span class="nf">accept</span><span class="o">(</span><span class="nc">File</span> <span class="n">dir</span><span class="o">,</span> <span class="nc">String</span> <span class="n">name</span><span class="o">)</span> <span class="o">{</span>
+          <span class="kd">final</span> <span class="nc">String</span> <span class="n">nameSansGz</span> <span class="o">=</span> <span class="n">trim</span><span class="o">(</span><span class="n">name</span><span class="o">,</span> <span class="s">".gz"</span><span class="o">);</span>
           <span class="k">return</span> <span class="n">nameSansGz</span><span class="o">.</span><span class="na">endsWith</span><span class="o">(</span><span class="s">".csv"</span><span class="o">)</span>
               <span class="o">||</span> <span class="n">nameSansGz</span><span class="o">.</span><span class="na">endsWith</span><span class="o">(</span><span class="s">".json"</span><span class="o">);</span>
         <span class="o">}</span>
       <span class="o">});</span>
   <span class="k">if</span> <span class="o">(</span><span class="n">files</span> <span class="o">==</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
-    <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"directory "</span> <span class="o">+</span> <span class="n">directoryFile</span> <span class="o">+</span> <span class="s">" not found"</span><span class="o">);</span>
-    <span class="n">files</span> <span class="o">=</span> <span class="k">new</span> <span class="n">File</span><span class="o">[</span><span class="mi">0</span><span class="o">];</span>
+    <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"directory "</span> <span class="o">+</span> <span class="n">directoryFile</span> <span class="o">+</span> <span class="s">" not found"</span><span class="o">);</span>
+    <span class="n">files</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">File</span><span class="o">[</span><span class="mi">0</span><span class="o">];</span>
   <span class="o">}</span>
   <span class="c1">// Build a map from table name to table; each file becomes a table.</span>
-  <span class="kd">final</span> <span class="n">ImmutableMap</span><span class="o">.</span><span class="na">Builder</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Table</span><span class="o">&gt;</span> <span class="n">builder</span> <span class="o">=</span> <span class="n">ImmutableMap</span><span class="o">.</span><span class="na">builder</span><span class="o">();</span>
-  <span class="k">for</span> <span class="o">(</span><span class="n">File</span> <span class="n">file</span> <span class="o">:</span> <span class="n">files</span><span class="o">)</span> <span class="o">{</span>
-    <span class="n">String</span> <span class="n">tableName</span> <span class="o">=</span> <span class="n">trim</span><span class="o">(</span><span class="n">file</span><span class="o">.</span><span class="na">getName</span><span class="o">(),</span> <span class="s">".gz"</span><span class="o">);</span>
-    <span class="kd">final</span> <span class="n">String</span> <span class="n">tableNameSansJson</span> <span class="o">=</span> <span class="n">trimOrNull</span><span class="o">(</span><span class="n">tableName</span><span class="o">,</span> <span class="s">".json"</span><span class="o">);</span>
+  <span class="kd">final</span> <span class="nc">ImmutableMap</span><span class="o">.</span><span class="na">Builder</span><span class="o">&lt;</span><span class="nc">String</span><span class="o">,</span> <span class="nc">Table</span><span class="o">&gt;</span> <span class="n">builder</span> <span class="o">=</span> <span class="nc">ImmutableMap</span><span class="o">.</span><span class="na">builder</span><span class="o">();</span>
+  <span class="k">for</span> <span class="o">(</span><span class="nc">File</span> <span class="n">file</span> <span class="o">:</span> <span class="n">files</span><span class="o">)</span> <span class="o">{</span>
+    <span class="nc">String</span> <span class="n">tableName</span> <span class="o">=</span> <span class="n">trim</span><span class="o">(</span><span class="n">file</span><span class="o">.</span><span class="na">getName</span><span class="o">(),</span> <span class="s">".gz"</span><span class="o">);</span>
+    <span class="kd">final</span> <span class="nc">String</span> <span class="n">tableNameSansJson</span> <span class="o">=</span> <span class="n">trimOrNull</span><span class="o">(</span><span class="n">tableName</span><span class="o">,</span> <span class="s">".json"</span><span class="o">);</span>
     <span class="k">if</span> <span class="o">(</span><span class="n">tableNameSansJson</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
-      <span class="n">JsonTable</span> <span class="n">table</span> <span class="o">=</span> <span class="k">new</span> <span class="n">JsonTable</span><span class="o">(</span><span class="n">file</span><span class="o">);</span>
+      <span class="nc">JsonTable</span> <span class="n">table</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">JsonTable</span><span class="o">(</span><span class="n">file</span><span class="o">);</span>
       <span class="n">builder</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="n">tableNameSansJson</span><span class="o">,</span> <span class="n">table</span><span class="o">);</span>
       <span class="k">continue</span><span class="o">;</span>
     <span class="o">}</span>
     <span class="n">tableName</span> <span class="o">=</span> <span class="n">trim</span><span class="o">(</span><span class="n">tableName</span><span class="o">,</span> <span class="s">".csv"</span><span class="o">);</span>
-    <span class="kd">final</span> <span class="n">Table</span> <span class="n">table</span> <span class="o">=</span> <span class="n">createTable</span><span class="o">(</span><span class="n">file</span><span class="o">);</span>
+    <span class="kd">final</span> <span class="nc">Table</span> <span class="n">table</span> <span class="o">=</span> <span class="n">createTable</span><span class="o">(</span><span class="n">file</span><span class="o">);</span>
     <span class="n">builder</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="n">tableName</span><span class="o">,</span> <span class="n">table</span><span class="o">);</span>
   <span class="o">}</span>
   <span class="k">return</span> <span class="n">builder</span><span class="o">.</span><span class="na">build</span><span class="o">();</span>
 <span class="o">}</span>
 
 <span class="cm">/** Creates different sub-type of table based on the "flavor" attribute. */</span>
-<span class="kd">private</span> <span class="n">Table</span> <span class="nf">createTable</span><span class="o">(</span><span class="n">File</span> <span class="n">file</span><span class="o">)</span> <span class="o">{</span>
+<span class="kd">private</span> <span class="nc">Table</span> <span class="nf">createTable</span><span class="o">(</span><span class="nc">File</span> <span class="n">file</span><span class="o">)</span> <span class="o">{</span>
   <span class="k">switch</span> <span class="o">(</span><span class="n">flavor</span><span class="o">)</span> <span class="o">{</span>
   <span class="k">case</span> <span class="nl">TRANSLATABLE:</span>
     <span class="k">return</span> <span class="k">new</span> <span class="nf">CsvTranslatableTable</span><span class="o">(</span><span class="n">file</span><span class="o">,</span> <span class="kc">null</span><span class="o">);</span>
@@ -344,21 +344,21 @@
 <p>Here is a schema that defines a view:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">version</span><span class="p">:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
-  </span><span class="err">defaultSchema</span><span class="p">:</span><span class="w"> </span><span class="err">'SALES'</span><span class="p">,</span><span class="w">
-  </span><span class="err">schemas</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span class="err">'SALES'</span><span class="p">,</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'SALES'</span><span class="p">,</span><span class="w">
-      </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
-      </span><span class="err">factory</span><span class="p">:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.csv.CsvSchemaFactory'</span><span class="p">,</span><span class="w">
-      </span><span class="err">operand</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="err">directory</span><span class="p">:</span><span class="w"> </span><span class="err">'sales'</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span class="err">'SALES'</span><span class="p">,</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.csv.CsvSchemaFactory'</span><span class="p">,</span><span class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="err">directory:</span><span class="w"> </span><span class="err">'sales'</span><span class="w">
       </span><span class="p">},</span><span class="w">
-      </span><span class="err">tables</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+      </span><span class="err">tables:</span><span class="w"> </span><span class="p">[</span><span class="w">
         </span><span class="p">{</span><span class="w">
-          </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'FEMALE_EMPS'</span><span class="p">,</span><span class="w">
-          </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'view'</span><span class="p">,</span><span class="w">
-          </span><span class="err">sql</span><span class="p">:</span><span class="w"> </span><span class="err">'SELECT</span><span class="w"> </span><span class="err">*</span><span class="w"> </span><span class="err">FROM</span><span class="w"> </span><span class="err">emps</span><span class="w"> </span><span class="err">WHERE</span><span class="w"> </span><span class="err">gender</span><span class="w"> </span><span class="err">=</span><span class="w"> </span><span class="err">\'F\''</span><span class="w">
+          </span><span class="err">name:</span><span class="w"> </span><span class="err">'FEMALE_EMPS'</span><span class="p">,</span><span class="w">
+          </span><span class="err">type:</span><span class="w"> </span><span class="err">'view'</span><span class="p">,</span><span class="w">
+          </span><span class="err">sql:</span><span class="w"> </span><span class="err">'SELECT</span><span class="w"> </span><span class="err">*</span><span class="w"> </span><span class="err">FROM</span><span class="w"> </span><span class="err">emps</span><span class="w"> </span><span class="err">WHERE</span><span class="w"> </span><span class="err">gender</span><span class="w"> </span><span class="err">=</span><span class="w"> </span><span class="err">\'F\''</span><span class="w">
         </span><span class="p">}</span><span class="w">
       </span><span class="p">]</span><span class="w">
     </span><span class="p">}</span><span class="w">
@@ -375,9 +375,9 @@
 supply a list of lines rather than a single string:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'FEMALE_EMPS'</span><span class="p">,</span><span class="w">
-  </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'view'</span><span class="p">,</span><span class="w">
-  </span><span class="err">sql</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="err">name:</span><span class="w"> </span><span class="err">'FEMALE_EMPS'</span><span class="p">,</span><span class="w">
+  </span><span class="err">type:</span><span class="w"> </span><span class="err">'view'</span><span class="p">,</span><span class="w">
+  </span><span class="err">sql:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="err">'SELECT</span><span class="w"> </span><span class="err">*</span><span class="w"> </span><span class="err">FROM</span><span class="w"> </span><span class="err">emps'</span><span class="p">,</span><span class="w">
     </span><span class="err">'WHERE</span><span class="w"> </span><span class="err">gender</span><span class="w"> </span><span class="err">=</span><span class="w"> </span><span class="err">\'F\''</span><span class="w">
   </span><span class="p">]</span><span class="w">
@@ -400,19 +400,19 @@
 <p>There is an example in <code>model-with-custom-table.json</code>:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">version</span><span class="p">:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
-  </span><span class="err">defaultSchema</span><span class="p">:</span><span class="w"> </span><span class="err">'CUSTOM_TABLE'</span><span class="p">,</span><span class="w">
-  </span><span class="err">schemas</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span class="err">'CUSTOM_TABLE'</span><span class="p">,</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'CUSTOM_TABLE'</span><span class="p">,</span><span class="w">
-      </span><span class="err">tables</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span class="err">'CUSTOM_TABLE'</span><span class="p">,</span><span class="w">
+      </span><span class="err">tables:</span><span class="w"> </span><span class="p">[</span><span class="w">
         </span><span class="p">{</span><span class="w">
-          </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'EMPS'</span><span class="p">,</span><span class="w">
-          </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
-          </span><span class="err">factory</span><span class="p">:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.csv.CsvTableFactory'</span><span class="p">,</span><span class="w">
-          </span><span class="err">operand</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-            </span><span class="err">file</span><span class="p">:</span><span class="w"> </span><span class="err">'sales/EMPS.csv.gz'</span><span class="p">,</span><span class="w">
-            </span><span class="err">flavor</span><span class="p">:</span><span class="w"> </span><span class="s2">"scannable"</span><span class="w">
+          </span><span class="err">name:</span><span class="w"> </span><span class="err">'EMPS'</span><span class="p">,</span><span class="w">
+          </span><span class="err">type:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
+          </span><span class="err">factory:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.csv.CsvTableFactory'</span><span class="p">,</span><span class="w">
+          </span><span class="err">operand:</span><span class="w"> </span><span class="p">{</span><span class="w">
+            </span><span class="err">file:</span><span class="w"> </span><span class="err">'sales/EMPS.csv.gz'</span><span class="p">,</span><span class="w">
+            </span><span class="err">flavor:</span><span class="w"> </span><span class="s2">"scannable"</span><span class="w">
           </span><span class="p">}</span><span class="w">
         </span><span class="p">}</span><span class="w">
       </span><span class="p">]</span><span class="w">
@@ -435,18 +435,18 @@
 <span class="o">+</span><span class="c1">--------+--------+</span></code></pre></figure>
 
 <p>The schema is a regular one, and contains a custom table powered by
-<a href="https://github.com/apache/calcite/blob/master/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTableFactory.java">org.apache.calcite.adapter.csv.CsvTableFactory</a>,
+<a href="https://github.com/apache/calcite/blob/main/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTableFactory.java">org.apache.calcite.adapter.csv.CsvTableFactory</a>,
 which implements the Calcite interface
 <a href="/javadocAggregate/org/apache/calcite/schema/TableFactory.html">TableFactory</a>.
 Its <code>create</code> method instantiates a <code>CsvScannableTable</code>,
 passing in the <code>file</code> argument from the model file:</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="n">CsvTable</span> <span class="nf">create</span><span class="o">(</span><span class="n">SchemaPlus</span> <span class="n">schema</span><span class="o">,</span> <span class="n">String</span> <span class="n">name</span><span class="o">,</span>
-    <span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Object</span><span class="o">&gt;</span> <span class="n">map</span><span class="o">,</span> <span class="n">RelDataType</span> <span class="n">rowType</span><span class="o">)</span> <span class="o">{</span>
-  <span class="n">String</span> <span class="n">fileName</span> <span class="o">=</span> <span class="o">(</span><span class="n">String</span><span class="o">)</span> <span class="n">map</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"file"</span><span class="o">);</span>
-  <span class="kd">final</span> <span class="n">File</span> <span class="n">file</span> <span class="o">=</span> <span class="k">new</span> <span class="n">File</span><span class="o">(</span><span class="n">fileName</span><span class="o">);</span>
-  <span class="kd">final</span> <span class="n">RelProtoDataType</span> <span class="n">protoRowType</span> <span class="o">=</span>
-      <span class="n">rowType</span> <span class="o">!=</span> <span class="kc">null</span> <span class="o">?</span> <span class="n">RelDataTypeImpl</span><span class="o">.</span><span class="na">proto</span><span class="o">(</span><span class="n">rowType</span><span class="o">)</span> <span class="o">:</span> <span class="kc">null</span><span class="o">;</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="nc">CsvTable</span> <span class="nf">create</span><span class="o">(</span><span class="nc">SchemaPlus</span> <span class="n">schema</span><span class="o">,</span> <span class="nc">String</span> <span class="n">name</span><span class="o">,</span>
+    <span class="nc">Map</span><span class="o">&lt;</span><span class="nc">String</span><span class="o">,</span> <span class="nc">Object</span><span class="o">&gt;</span> <span class="n">map</span><span class="o">,</span> <span class="nc">RelDataType</span> <span class="n">rowType</span><span class="o">)</span> <span class="o">{</span>
+  <span class="nc">String</span> <span class="n">fileName</span> <span class="o">=</span> <span class="o">(</span><span class="nc">String</span><span class="o">)</span> <span class="n">map</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"file"</span><span class="o">);</span>
+  <span class="kd">final</span> <span class="nc">File</span> <span class="n">file</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">File</span><span class="o">(</span><span class="n">fileName</span><span class="o">);</span>
+  <span class="kd">final</span> <span class="nc">RelProtoDataType</span> <span class="n">protoRowType</span> <span class="o">=</span>
+      <span class="n">rowType</span> <span class="o">!=</span> <span class="kc">null</span> <span class="o">?</span> <span class="nc">RelDataTypeImpl</span><span class="o">.</span><span class="na">proto</span><span class="o">(</span><span class="n">rowType</span><span class="o">)</span> <span class="o">:</span> <span class="kc">null</span><span class="o">;</span>
   <span class="k">return</span> <span class="k">new</span> <span class="nf">CsvScannableTable</span><span class="o">(</span><span class="n">file</span><span class="o">,</span> <span class="n">protoRowType</span><span class="o">);</span>
 <span class="o">}</span></code></pre></figure>
 
@@ -463,15 +463,15 @@
 
 <h2 id="comments-in-models">Comments in models</h2>
 
-<p>Models can include comments using <code class="highlighter-rouge">/* ... */</code> and <code class="highlighter-rouge">//</code> syntax:</p>
+<p>Models can include comments using <code class="language-plaintext highlighter-rouge">/* ... */</code> and <code class="language-plaintext highlighter-rouge">//</code> syntax:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">version</span><span class="p">:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
   </span><span class="err">/*</span><span class="w"> </span><span class="err">Multi-line</span><span class="w">
      </span><span class="err">comment.</span><span class="w"> </span><span class="err">*/</span><span class="w">
-  </span><span class="err">defaultSchema</span><span class="p">:</span><span class="w"> </span><span class="err">'CUSTOM_TABLE'</span><span class="p">,</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span class="err">'CUSTOM_TABLE'</span><span class="p">,</span><span class="w">
   </span><span class="err">//</span><span class="w"> </span><span class="err">Single-line</span><span class="w"> </span><span class="err">comment.</span><span class="w">
-  </span><span class="err">schemas</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="err">..</span><span class="w">
   </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
@@ -505,7 +505,7 @@
 <span class="o">+</span><span class="c1">-----------------------------------------------------+</span>
 <span class="o">|</span> <span class="n">PLAN</span>                                                <span class="o">|</span>
 <span class="o">+</span><span class="c1">-----------------------------------------------------+</span>
-<span class="o">|</span> <span class="n">EnumerableCalc</span><span class="p">(</span><span class="n">expr</span><span class="o">#</span><span class="mi">0</span><span class="p">..</span><span class="mi">9</span><span class="o">=</span><span class="p">[</span><span class="err">{</span><span class="n">inputs</span><span class="err">}</span><span class="p">],</span> <span class="n">NAME</span><span class="o">=</span><span class="p">[</span><span class="err">$</span><span class="n">t1</span><span class="p">])</span>    <span class="o">|</span>
+<span class="o">|</span> <span class="n">EnumerableCalc</span><span class="p">(</span><span class="n">expr</span><span class="o">#</span><span class="mi">0</span><span class="p">..</span><span class="mi">9</span><span class="o">=</span><span class="p">[{</span><span class="n">inputs</span><span class="p">}],</span> <span class="n">NAME</span><span class="o">=</span><span class="p">[</span><span class="err">$</span><span class="n">t1</span><span class="p">])</span>    <span class="o">|</span>
 <span class="o">|</span>   <span class="n">EnumerableTableScan</span><span class="p">(</span><span class="k">table</span><span class="o">=</span><span class="p">[[</span><span class="n">SALES</span><span class="p">,</span> <span class="n">EMPS</span><span class="p">]])</span>        <span class="o">|</span>
 <span class="o">+</span><span class="c1">-----------------------------------------------------+</span>
 <span class="n">sqlline</span><span class="o">&gt;</span> <span class="o">!</span><span class="k">connect</span> <span class="n">jdbc</span><span class="p">:</span><span class="n">calcite</span><span class="p">:</span><span class="n">model</span><span class="o">=</span><span class="n">src</span><span class="o">/</span><span class="n">test</span><span class="o">/</span><span class="n">resources</span><span class="o">/</span><span class="n">smart</span><span class="p">.</span><span class="n">json</span> <span class="k">admin</span> <span class="k">admin</span>
@@ -519,18 +519,18 @@
 <p>What causes the difference in plan? Let’s follow the trail of evidence. In the
 <code>smart.json</code> model file, there is just one extra line:</p>
 
-<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="err">flavor</span><span class="p">:</span><span class="w"> </span><span class="s2">"translatable"</span></code></pre></figure>
+<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="err">flavor:</span><span class="w"> </span><span class="s2">"translatable"</span></code></pre></figure>
 
 <p>This causes a <code>CsvSchema</code> to be created with
 <code>flavor = TRANSLATABLE</code>,
 and its <code>createTable</code> method creates instances of
-<a href="https://github.com/apache/calcite/blob/master/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTranslatableTable.java">CsvTranslatableTable</a>
+<a href="https://github.com/apache/calcite/blob/main/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTranslatableTable.java">CsvTranslatableTable</a>
 rather than a <code>CsvScannableTable</code>.</p>
 
 <p><code>CsvTranslatableTable</code> implements the
 <code><a href="/javadocAggregate/org/apache/calcite/schema/TranslatableTable.html#toRel()">TranslatableTable.toRel()</a></code>
 method to create
-<a href="https://github.com/apache/calcite/blob/master/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTableScan.java">CsvTableScan</a>.
+<a href="https://github.com/apache/calcite/blob/main/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTableScan.java">CsvTableScan</a>.
 Table scans are the leaves of a query operator tree.
 The usual implementation is
 <code><a href="/javadocAggregate/org/apache/calcite/adapter/enumerable/EnumerableTableScan.html">EnumerableTableScan</a></code>,
@@ -539,15 +539,15 @@
 <p>Here is the rule in its entirety:</p>
 
 <figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">CsvProjectTableScanRule</span>
-    <span class="kd">extends</span> <span class="n">RelRule</span><span class="o">&lt;</span><span class="n">CsvProjectTableScanRule</span><span class="o">.</span><span class="na">Config</span><span class="o">&gt;</span> <span class="o">{</span>
+    <span class="kd">extends</span> <span class="nc">RelRule</span><span class="o">&lt;</span><span class="nc">CsvProjectTableScanRule</span><span class="o">.</span><span class="na">Config</span><span class="o">&gt;</span> <span class="o">{</span>
   <span class="cm">/** Creates a CsvProjectTableScanRule. */</span>
-  <span class="kd">protected</span> <span class="nf">CsvProjectTableScanRule</span><span class="o">(</span><span class="n">Config</span> <span class="n">config</span><span class="o">)</span> <span class="o">{</span>
+  <span class="kd">protected</span> <span class="nf">CsvProjectTableScanRule</span><span class="o">(</span><span class="nc">Config</span> <span class="n">config</span><span class="o">)</span> <span class="o">{</span>
     <span class="kd">super</span><span class="o">(</span><span class="n">config</span><span class="o">);</span>
   <span class="o">}</span>
 
-  <span class="nd">@Override</span> <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onMatch</span><span class="o">(</span><span class="n">RelOptRuleCall</span> <span class="n">call</span><span class="o">)</span> <span class="o">{</span>
-    <span class="kd">final</span> <span class="n">LogicalProject</span> <span class="n">project</span> <span class="o">=</span> <span class="n">call</span><span class="o">.</span><span class="na">rel</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
-    <span class="kd">final</span> <span class="n">CsvTableScan</span> <span class="n">scan</span> <span class="o">=</span> <span class="n">call</span><span class="o">.</span><span class="na">rel</span><span class="o">(</span><span class="mi">1</span><span class="o">);</span>
+  <span class="nd">@Override</span> <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onMatch</span><span class="o">(</span><span class="nc">RelOptRuleCall</span> <span class="n">call</span><span class="o">)</span> <span class="o">{</span>
+    <span class="kd">final</span> <span class="nc">LogicalProject</span> <span class="n">project</span> <span class="o">=</span> <span class="n">call</span><span class="o">.</span><span class="na">rel</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
+    <span class="kd">final</span> <span class="nc">CsvTableScan</span> <span class="n">scan</span> <span class="o">=</span> <span class="n">call</span><span class="o">.</span><span class="na">rel</span><span class="o">(</span><span class="mi">1</span><span class="o">);</span>
     <span class="kt">int</span><span class="o">[]</span> <span class="n">fields</span> <span class="o">=</span> <span class="n">getProjectFields</span><span class="o">(</span><span class="n">project</span><span class="o">.</span><span class="na">getProjects</span><span class="o">());</span>
     <span class="k">if</span> <span class="o">(</span><span class="n">fields</span> <span class="o">==</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
       <span class="c1">// Project contains expressions more complex than just field references.</span>
@@ -561,12 +561,12 @@
             <span class="n">fields</span><span class="o">));</span>
   <span class="o">}</span>
 
-  <span class="kd">private</span> <span class="kt">int</span><span class="o">[]</span> <span class="nf">getProjectFields</span><span class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span class="n">RexNode</span><span class="o">&gt;</span> <span class="n">exps</span><span class="o">)</span> <span class="o">{</span>
+  <span class="kd">private</span> <span class="kt">int</span><span class="o">[]</span> <span class="nf">getProjectFields</span><span class="o">(</span><span class="nc">List</span><span class="o">&lt;</span><span class="nc">RexNode</span><span class="o">&gt;</span> <span class="n">exps</span><span class="o">)</span> <span class="o">{</span>
     <span class="kd">final</span> <span class="kt">int</span><span class="o">[]</span> <span class="n">fields</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">int</span><span class="o">[</span><span class="n">exps</span><span class="o">.</span><span class="na">size</span><span class="o">()];</span>
     <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">exps</span><span class="o">.</span><span class="na">size</span><span class="o">();</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
-      <span class="kd">final</span> <span class="n">RexNode</span> <span class="n">exp</span> <span class="o">=</span> <span class="n">exps</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">i</span><span class="o">);</span>
-      <span class="k">if</span> <span class="o">(</span><span class="n">exp</span> <span class="k">instanceof</span> <span class="n">RexInputRef</span><span class="o">)</span> <span class="o">{</span>
-        <span class="n">fields</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">=</span> <span class="o">((</span><span class="n">RexInputRef</span><span class="o">)</span> <span class="n">exp</span><span class="o">).</span><span class="na">getIndex</span><span class="o">();</span>
+      <span class="kd">final</span> <span class="nc">RexNode</span> <span class="n">exp</span> <span class="o">=</span> <span class="n">exps</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">i</span><span class="o">);</span>
+      <span class="k">if</span> <span class="o">(</span><span class="n">exp</span> <span class="k">instanceof</span> <span class="nc">RexInputRef</span><span class="o">)</span> <span class="o">{</span>
+        <span class="n">fields</span><span class="o">[</span><span class="n">i</span><span class="o">]</span> <span class="o">=</span> <span class="o">((</span><span class="nc">RexInputRef</span><span class="o">)</span> <span class="n">exp</span><span class="o">).</span><span class="na">getIndex</span><span class="o">();</span>
       <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
         <span class="k">return</span> <span class="kc">null</span><span class="o">;</span> <span class="c1">// not a simple projection</span>
       <span class="o">}</span>
@@ -575,33 +575,33 @@
   <span class="o">}</span>
 
   <span class="cm">/** Rule configuration. */</span>
-  <span class="kd">public</span> <span class="kd">interface</span> <span class="nc">Config</span> <span class="kd">extends</span> <span class="n">RelRule</span><span class="o">.</span><span class="na">Config</span> <span class="o">{</span>
-    <span class="n">Config</span> <span class="n">DEFAULT</span> <span class="o">=</span> <span class="n">EMPTY</span>
+  <span class="kd">public</span> <span class="kd">interface</span> <span class="nc">Config</span> <span class="kd">extends</span> <span class="nc">RelRule</span><span class="o">.</span><span class="na">Config</span> <span class="o">{</span>
+    <span class="nc">Config</span> <span class="no">DEFAULT</span> <span class="o">=</span> <span class="no">EMPTY</span>
         <span class="o">.</span><span class="na">withOperandSupplier</span><span class="o">(</span><span class="n">b0</span> <span class="o">-&gt;</span>
-            <span class="n">b0</span><span class="o">.</span><span class="na">operand</span><span class="o">(</span><span class="n">LogicalProject</span><span class="o">.</span><span class="na">class</span><span class="o">).</span><span class="na">oneInput</span><span class="o">(</span><span class="n">b1</span> <span class="o">-&gt;</span>
-                <span class="n">b1</span><span class="o">.</span><span class="na">operand</span><span class="o">(</span><span class="n">CsvTableScan</span><span class="o">.</span><span class="na">class</span><span class="o">).</span><span class="na">noInputs</span><span class="o">()))</span>
-        <span class="o">.</span><span class="na">as</span><span class="o">(</span><span class="n">Config</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
+            <span class="n">b0</span><span class="o">.</span><span class="na">operand</span><span class="o">(</span><span class="nc">LogicalProject</span><span class="o">.</span><span class="na">class</span><span class="o">).</span><span class="na">oneInput</span><span class="o">(</span><span class="n">b1</span> <span class="o">-&gt;</span>
+                <span class="n">b1</span><span class="o">.</span><span class="na">operand</span><span class="o">(</span><span class="nc">CsvTableScan</span><span class="o">.</span><span class="na">class</span><span class="o">).</span><span class="na">noInputs</span><span class="o">()))</span>
+        <span class="o">.</span><span class="na">as</span><span class="o">(</span><span class="nc">Config</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
 
-    <span class="nd">@Override</span> <span class="k">default</span> <span class="n">CsvProjectTableScanRule</span> <span class="nf">toRule</span><span class="o">()</span> <span class="o">{</span>
+    <span class="nd">@Override</span> <span class="k">default</span> <span class="nc">CsvProjectTableScanRule</span> <span class="nf">toRule</span><span class="o">()</span> <span class="o">{</span>
       <span class="k">return</span> <span class="k">new</span> <span class="nf">CsvProjectTableScanRule</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
     <span class="o">}</span>
 <span class="o">}</span></code></pre></figure>
 
-<p>The default instance of the rule resides in the <code class="highlighter-rouge">CsvRules</code> holder class:</p>
+<p>The default instance of the rule resides in the <code class="language-plaintext highlighter-rouge">CsvRules</code> holder class:</p>
 
 <figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="kd">abstract</span> <span class="kd">class</span> <span class="nc">CsvRules</span> <span class="o">{</span>
-  <span class="kd">public</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">CsvProjectTableScanRule</span> <span class="n">PROJECT_SCAN</span> <span class="o">=</span>
-      <span class="n">CsvProjectTableScanRule</span><span class="o">.</span><span class="na">Config</span><span class="o">.</span><span class="na">DEFAULT</span><span class="o">.</span><span class="na">toRule</span><span class="o">();</span>
+  <span class="kd">public</span> <span class="kd">static</span> <span class="kd">final</span> <span class="nc">CsvProjectTableScanRule</span> <span class="no">PROJECT_SCAN</span> <span class="o">=</span>
+      <span class="nc">CsvProjectTableScanRule</span><span class="o">.</span><span class="na">Config</span><span class="o">.</span><span class="na">DEFAULT</span><span class="o">.</span><span class="na">toRule</span><span class="o">();</span>
 <span class="o">}</span></code></pre></figure>
 
-<p>The call to the <code class="highlighter-rouge">withOperandSupplier</code> method in the default configuration
-(the <code class="highlighter-rouge">DEFAULT</code> field in <code class="highlighter-rouge">interface Config</code>) declares the pattern of relational
+<p>The call to the <code class="language-plaintext highlighter-rouge">withOperandSupplier</code> method in the default configuration
+(the <code class="language-plaintext highlighter-rouge">DEFAULT</code> field in <code class="language-plaintext highlighter-rouge">interface Config</code>) declares the pattern of relational
 expressions that will cause the rule to fire. The planner will invoke the rule
-if it sees a <code class="highlighter-rouge">LogicalProject</code> whose sole input is a <code class="highlighter-rouge">CsvTableScan</code> with no
+if it sees a <code class="language-plaintext highlighter-rouge">LogicalProject</code> whose sole input is a <code class="language-plaintext highlighter-rouge">CsvTableScan</code> with no
 inputs.</p>
 
 <p>Variants of the rule are possible. For example, a different rule instance
-might instead match a <code class="highlighter-rouge">EnumerableProject</code> on a <code class="highlighter-rouge">CsvTableScan</code>.</p>
+might instead match a <code class="language-plaintext highlighter-rouge">EnumerableProject</code> on a <code class="language-plaintext highlighter-rouge">CsvTableScan</code>.</p>
 
 <p>The <code>onMatch</code> method generates a new relational expression and calls
 <code><a href="/javadocAggregate/org/apache/calcite/plan/RelOptRuleCall.html#transformTo(org.apache.calcite.rel.RelNode)">RelOptRuleCall.transformTo()</a></code>
@@ -649,18 +649,18 @@
 <p>For example, this schema reads from a MySQL “foodmart” database:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">version</span><span class="p">:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
-  </span><span class="err">defaultSchema</span><span class="p">:</span><span class="w"> </span><span class="err">'FOODMART'</span><span class="p">,</span><span class="w">
-  </span><span class="err">schemas</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span class="err">'FOODMART'</span><span class="p">,</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'FOODMART'</span><span class="p">,</span><span class="w">
-      </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
-      </span><span class="err">factory</span><span class="p">:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.jdbc.JdbcSchema$Factory'</span><span class="p">,</span><span class="w">
-      </span><span class="err">operand</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="err">jdbcDriver</span><span class="p">:</span><span class="w"> </span><span class="err">'com.mysql.jdbc.Driver'</span><span class="p">,</span><span class="w">
-        </span><span class="err">jdbcUrl</span><span class="p">:</span><span class="w"> </span><span class="err">'jdbc</span><span class="p">:</span><span class="err">mysql</span><span class="p">:</span><span class="err">//localhost/foodmart'</span><span class="p">,</span><span class="w">
-        </span><span class="err">jdbcUser</span><span class="p">:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="p">,</span><span class="w">
-        </span><span class="err">jdbcPassword</span><span class="p">:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span class="err">'FOODMART'</span><span class="p">,</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.jdbc.JdbcSchema$Factory'</span><span class="p">,</span><span class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="err">jdbcDriver:</span><span class="w"> </span><span class="err">'com.mysql.jdbc.Driver'</span><span class="p">,</span><span class="w">
+        </span><span class="err">jdbcUrl:</span><span class="w"> </span><span class="err">'jdbc:mysql://localhost/foodmart'</span><span class="p">,</span><span class="w">
+        </span><span class="err">jdbcUser:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="p">,</span><span class="w">
+        </span><span class="err">jdbcPassword:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="w">
       </span><span class="p">}</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">]</span><span class="w">
@@ -692,18 +692,18 @@
 “foodmart” database:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">version</span><span class="p">:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
-  </span><span class="err">defaultSchema</span><span class="p">:</span><span class="w"> </span><span class="err">'FOODMART_CLONE'</span><span class="p">,</span><span class="w">
-  </span><span class="err">schemas</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span class="err">'FOODMART_CLONE'</span><span class="p">,</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'FOODMART_CLONE'</span><span class="p">,</span><span class="w">
-      </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
-      </span><span class="err">factory</span><span class="p">:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.clone.CloneSchema$Factory'</span><span class="p">,</span><span class="w">
-      </span><span class="err">operand</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="err">jdbcDriver</span><span class="p">:</span><span class="w"> </span><span class="err">'com.mysql.jdbc.Driver'</span><span class="p">,</span><span class="w">
-        </span><span class="err">jdbcUrl</span><span class="p">:</span><span class="w"> </span><span class="err">'jdbc</span><span class="p">:</span><span class="err">mysql</span><span class="p">:</span><span class="err">//localhost/foodmart'</span><span class="p">,</span><span class="w">
-        </span><span class="err">jdbcUser</span><span class="p">:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="p">,</span><span class="w">
-        </span><span class="err">jdbcPassword</span><span class="p">:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span class="err">'FOODMART_CLONE'</span><span class="p">,</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.clone.CloneSchema$Factory'</span><span class="p">,</span><span class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="err">jdbcDriver:</span><span class="w"> </span><span class="err">'com.mysql.jdbc.Driver'</span><span class="p">,</span><span class="w">
+        </span><span class="err">jdbcUrl:</span><span class="w"> </span><span class="err">'jdbc:mysql://localhost/foodmart'</span><span class="p">,</span><span class="w">
+        </span><span class="err">jdbcUser:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="p">,</span><span class="w">
+        </span><span class="err">jdbcPassword:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="w">
       </span><span class="p">}</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">]</span><span class="w">
@@ -714,26 +714,26 @@
 defined earlier in the model, like this:</p>
 
 <figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
-  </span><span class="err">version</span><span class="p">:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
-  </span><span class="err">defaultSchema</span><span class="p">:</span><span class="w"> </span><span class="err">'FOODMART_CLONE'</span><span class="p">,</span><span class="w">
-  </span><span class="err">schemas</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+  </span><span class="err">version:</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</span><span class="p">,</span><span class="w">
+  </span><span class="err">defaultSchema:</span><span class="w"> </span><span class="err">'FOODMART_CLONE'</span><span class="p">,</span><span class="w">
+  </span><span class="err">schemas:</span><span class="w"> </span><span class="p">[</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'FOODMART'</span><span class="p">,</span><span class="w">
-      </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
-      </span><span class="err">factory</span><span class="p">:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.jdbc.JdbcSchema$Factory'</span><span class="p">,</span><span class="w">
-      </span><span class="err">operand</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="err">jdbcDriver</span><span class="p">:</span><span class="w"> </span><span class="err">'com.mysql.jdbc.Driver'</span><span class="p">,</span><span class="w">
-        </span><span class="err">jdbcUrl</span><span class="p">:</span><span class="w"> </span><span class="err">'jdbc</span><span class="p">:</span><span class="err">mysql</span><span class="p">:</span><span class="err">//localhost/foodmart'</span><span class="p">,</span><span class="w">
-        </span><span class="err">jdbcUser</span><span class="p">:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="p">,</span><span class="w">
-        </span><span class="err">jdbcPassword</span><span class="p">:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span class="err">'FOODMART'</span><span class="p">,</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.jdbc.JdbcSchema$Factory'</span><span class="p">,</span><span class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="err">jdbcDriver:</span><span class="w"> </span><span class="err">'com.mysql.jdbc.Driver'</span><span class="p">,</span><span class="w">
+        </span><span class="err">jdbcUrl:</span><span class="w"> </span><span class="err">'jdbc:mysql://localhost/foodmart'</span><span class="p">,</span><span class="w">
+        </span><span class="err">jdbcUser:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="p">,</span><span class="w">
+        </span><span class="err">jdbcPassword:</span><span class="w"> </span><span class="err">'foodmart'</span><span class="w">
       </span><span class="p">}</span><span class="w">
     </span><span class="p">},</span><span class="w">
     </span><span class="p">{</span><span class="w">
-      </span><span class="err">name</span><span class="p">:</span><span class="w"> </span><span class="err">'FOODMART_CLONE'</span><span class="p">,</span><span class="w">
-      </span><span class="err">type</span><span class="p">:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
-      </span><span class="err">factory</span><span class="p">:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.clone.CloneSchema$Factory'</span><span class="p">,</span><span class="w">
-      </span><span class="err">operand</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="err">source</span><span class="p">:</span><span class="w"> </span><span class="err">'FOODMART'</span><span class="w">
+      </span><span class="err">name:</span><span class="w"> </span><span class="err">'FOODMART_CLONE'</span><span class="p">,</span><span class="w">
+      </span><span class="err">type:</span><span class="w"> </span><span class="err">'custom'</span><span class="p">,</span><span class="w">
+      </span><span class="err">factory:</span><span class="w"> </span><span class="err">'org.apache.calcite.adapter.clone.CloneSchema$Factory'</span><span class="p">,</span><span class="w">
+      </span><span class="err">operand:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="err">source:</span><span class="w"> </span><span class="err">'FOODMART'</span><span class="w">
       </span><span class="p">}</span><span class="w">
     </span><span class="p">}</span><span class="w">
   </span><span class="p">]</span><span class="w">
@@ -1033,7 +1033,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/downloads/index.html b/downloads/index.html
index 1a5b273..9517dc4 100644
--- a/downloads/index.html
+++ b/downloads/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Downloads</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -361,7 +361,7 @@
 
 <h1 id="maven-artifacts">Maven artifacts</h1>
 
-<p>Add the following to the dependencies section of your <code class="highlighter-rouge">pom.xml</code> file:</p>
+<p>Add the following to the dependencies section of your <code class="language-plaintext highlighter-rouge">pom.xml</code> file:</p>
 
 <figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt">&lt;dependencies&gt;</span>
   <span class="nt">&lt;dependency&gt;</span>
@@ -371,8 +371,8 @@
   <span class="nt">&lt;/dependency&gt;</span>
 <span class="nt">&lt;/dependencies&gt;</span></code></pre></figure>
 
-<p>Also include <code class="highlighter-rouge">&lt;dependency&gt;</code> elements for any extension modules you
-need: <code class="highlighter-rouge">calcite-mongodb</code>, <code class="highlighter-rouge">calcite-spark</code>, <code class="highlighter-rouge">calcite-splunk</code>, and so
+<p>Also include <code class="language-plaintext highlighter-rouge">&lt;dependency&gt;</code> elements for any extension modules you
+need: <code class="language-plaintext highlighter-rouge">calcite-mongodb</code>, <code class="language-plaintext highlighter-rouge">calcite-spark</code>, <code class="language-plaintext highlighter-rouge">calcite-splunk</code>, and so
 forth.</p>
 
       </article>
@@ -396,7 +396,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/index.html b/index.html
index 46de778..355b68d 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,7 @@
   <meta charset="UTF-8">
   <title>Apache Calcite &bull; Dynamic data management framework</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -147,7 +147,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache&nbsp;License&nbsp;v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2014/08/19/release-0.9.0-incubating/index.html b/news/2014/08/19/release-0.9.0-incubating/index.html
index c2c2e89..2c10f19 100644
--- a/news/2014/08/19/release-0.9.0-incubating/index.html
+++ b/news/2014/08/19/release-0.9.0-incubating/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 0.9.0 Incubating</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -247,7 +247,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2014/10/02/release-0.9.1-incubating/index.html b/news/2014/10/02/release-0.9.1-incubating/index.html
index 154fe8f..e5590d4 100644
--- a/news/2014/10/02/release-0.9.1-incubating/index.html
+++ b/news/2014/10/02/release-0.9.1-incubating/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 0.9.1 Incubating</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -247,7 +247,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2014/11/05/release-0.9.2-incubating/index.html b/news/2014/11/05/release-0.9.2-incubating/index.html
index 655c19e..acac943 100644
--- a/news/2014/11/05/release-0.9.2-incubating/index.html
+++ b/news/2014/11/05/release-0.9.2-incubating/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 0.9.2 Incubating</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -250,7 +250,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2015/01/31/release-1.0.0-incubating/index.html b/news/2015/01/31/release-1.0.0-incubating/index.html
index 6d750c6..1dadf5e 100644
--- a/news/2015/01/31/release-1.0.0-incubating/index.html
+++ b/news/2015/01/31/release-1.0.0-incubating/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.0.0 Incubating</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -138,13 +138,13 @@
 
 <p>Calcite’s first major release.</p>
 
-<p>Since the previous release we have re-organized the into the <code class="highlighter-rouge">org.apache.calcite</code>
+<p>Since the previous release we have re-organized the into the <code class="language-plaintext highlighter-rouge">org.apache.calcite</code>
 namespace. To make migration of your code easier, we have described the
 <a href="https://issues.apache.org/jira/secure/attachment/12681620/mapping.txt">mapping from old to new class names</a>
 as an attachment to
 [<a href="https://issues.apache.org/jira/browse/CALCITE-296">CALCITE-296</a>].</p>
 
-<p>The release adds SQL support for <code class="highlighter-rouge">GROUPING SETS</code>, <code class="highlighter-rouge">EXTEND</code>, <code class="highlighter-rouge">UPSERT</code> and sequences;
+<p>The release adds SQL support for <code class="language-plaintext highlighter-rouge">GROUPING SETS</code>, <code class="language-plaintext highlighter-rouge">EXTEND</code>, <code class="language-plaintext highlighter-rouge">UPSERT</code> and sequences;
 a remote JDBC driver;
 improvements to the planner engine and built-in planner rules;
 improvements to the algorithms that implement the relational algebra,
@@ -260,7 +260,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2015/03/13/release-1.1.0-incubating/index.html b/news/2015/03/13/release-1.1.0-incubating/index.html
index 7c973f6..f1e7857 100644
--- a/news/2015/03/13/release-1.1.0-incubating/index.html
+++ b/news/2015/03/13/release-1.1.0-incubating/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.1.0 Incubating</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -138,7 +138,7 @@
 
 <p>This Calcite release makes it possible to exploit physical properties
 of relational expressions to produce more efficient plans, introducing
-collation and distribution as traits, <code class="highlighter-rouge">Exchange</code> relational operator,
+collation and distribution as traits, <code class="language-plaintext highlighter-rouge">Exchange</code> relational operator,
 and several new forms of metadata.</p>
 
 <p>We add experimental support for streaming SQL.</p>
@@ -146,8 +146,8 @@
 <p>This release drops support for JDK 1.6; Calcite now requires 1.7 or
 later.</p>
 
-<p>We have introduced static <code class="highlighter-rouge">create</code> methods for many sub-classes of
-<code class="highlighter-rouge">RelNode</code>. We strongly suggest that you use these rather than
+<p>We have introduced static <code class="language-plaintext highlighter-rouge">create</code> methods for many sub-classes of
+<code class="language-plaintext highlighter-rouge">RelNode</code>. We strongly suggest that you use these rather than
 calling constructors directly.</p>
 
     
@@ -259,7 +259,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2015/04/07/release-1.2.0-incubating/index.html b/news/2015/04/07/release-1.2.0-incubating/index.html
index f607170..55a976b 100644
--- a/news/2015/04/07/release-1.2.0-incubating/index.html
+++ b/news/2015/04/07/release-1.2.0-incubating/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.2.0 Incubating</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -139,7 +139,7 @@
 <p>A short release, less than a month after 1.1.</p>
 
 <p>There have been many changes to Avatica, hugely improving its coverage of the
-JDBC API and overall robustness. A new provider, <code class="highlighter-rouge">JdbcMeta</code>, allows
+JDBC API and overall robustness. A new provider, <code class="language-plaintext highlighter-rouge">JdbcMeta</code>, allows
 you to remote an existing JDBC driver.</p>
 
 <p>[<a href="https://issues.apache.org/jira/browse/CALCITE-606">CALCITE-606</a>]
@@ -259,7 +259,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2015/04/24/new-committers/index.html b/news/2015/04/24/new-committers/index.html
index 56a1cd5..998abad 100644
--- a/news/2015/04/24/new-committers/index.html
+++ b/news/2015/04/24/new-committers/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Calcite adds 5 committers</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -253,7 +253,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2015/05/30/release-1.3.0-incubating/index.html b/news/2015/05/30/release-1.3.0-incubating/index.html
index 440d12d..13db40f 100644
--- a/news/2015/05/30/release-1.3.0-incubating/index.html
+++ b/news/2015/05/30/release-1.3.0-incubating/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.3.0 Incubating</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -251,7 +251,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2015/06/05/algebra-builder/index.html b/news/2015/06/05/algebra-builder/index.html
index cec2b3b..772ffb4 100644
--- a/news/2015/06/05/algebra-builder/index.html
+++ b/news/2015/06/05/algebra-builder/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Algebra builder</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -147,19 +147,19 @@
 
 <p>For example,</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="n">FrameworkConfig</span> <span class="n">config</span><span class="o">;</span>
-<span class="kd">final</span> <span class="n">RelBuilder</span> <span class="n">builder</span> <span class="o">=</span> <span class="n">RelBuilder</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">config</span><span class="o">);</span>
-<span class="kd">final</span> <span class="n">RelNode</span> <span class="n">node</span> <span class="o">=</span> <span class="n">builder</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="nc">FrameworkConfig</span> <span class="n">config</span><span class="o">;</span>
+<span class="kd">final</span> <span class="nc">RelBuilder</span> <span class="n">builder</span> <span class="o">=</span> <span class="nc">RelBuilder</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">config</span><span class="o">);</span>
+<span class="kd">final</span> <span class="nc">RelNode</span> <span class="n">node</span> <span class="o">=</span> <span class="n">builder</span>
   <span class="o">.</span><span class="na">scan</span><span class="o">(</span><span class="s">"EMP"</span><span class="o">)</span>
   <span class="o">.</span><span class="na">aggregate</span><span class="o">(</span><span class="n">builder</span><span class="o">.</span><span class="na">groupKey</span><span class="o">(</span><span class="s">"DEPTNO"</span><span class="o">),</span>
       <span class="n">builder</span><span class="o">.</span><span class="na">count</span><span class="o">(</span><span class="kc">false</span><span class="o">,</span> <span class="s">"C"</span><span class="o">),</span>
       <span class="n">builder</span><span class="o">.</span><span class="na">sum</span><span class="o">(</span><span class="kc">false</span><span class="o">,</span> <span class="s">"S"</span><span class="o">,</span> <span class="n">builder</span><span class="o">.</span><span class="na">field</span><span class="o">(</span><span class="s">"SAL"</span><span class="o">)))</span>
   <span class="o">.</span><span class="na">filter</span><span class="o">(</span>
-      <span class="n">builder</span><span class="o">.</span><span class="na">call</span><span class="o">(</span><span class="n">SqlStdOperatorTable</span><span class="o">.</span><span class="na">GREATER_THAN</span><span class="o">,</span>
+      <span class="n">builder</span><span class="o">.</span><span class="na">call</span><span class="o">(</span><span class="nc">SqlStdOperatorTable</span><span class="o">.</span><span class="na">GREATER_THAN</span><span class="o">,</span>
           <span class="n">builder</span><span class="o">.</span><span class="na">field</span><span class="o">(</span><span class="s">"C"</span><span class="o">),</span>
           <span class="n">builder</span><span class="o">.</span><span class="na">literal</span><span class="o">(</span><span class="mi">10</span><span class="o">)))</span>
   <span class="o">.</span><span class="na">build</span><span class="o">();</span>
-<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">RelOptUtil</span><span class="o">.</span><span class="na">toString</span><span class="o">(</span><span class="n">node</span><span class="o">));</span></code></pre></figure>
+<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">RelOptUtil</span><span class="o">.</span><span class="na">toString</span><span class="o">(</span><span class="n">node</span><span class="o">));</span></code></pre></figure>
 
 <p>creates the algebra</p>
 
@@ -298,7 +298,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2015/07/31/xldb-best-lightning-talk/index.html b/news/2015/07/31/xldb-best-lightning-talk/index.html
index 59b18db..df57248 100644
--- a/news/2015/07/31/xldb-best-lightning-talk/index.html
+++ b/news/2015/07/31/xldb-best-lightning-talk/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>XLDB 2015 best lightning talk</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -258,7 +258,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2015/09/02/release-1.4.0-incubating/index.html b/news/2015/09/02/release-1.4.0-incubating/index.html
index 9edff73..397877d 100644
--- a/news/2015/09/02/release-1.4.0-incubating/index.html
+++ b/news/2015/09/02/release-1.4.0-incubating/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.4.0 Incubating</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -257,7 +257,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2015/10/22/calcite-graduates/index.html b/news/2015/10/22/calcite-graduates/index.html
index 6f6f9fd..ee05f4b 100644
--- a/news/2015/10/22/calcite-graduates/index.html
+++ b/news/2015/10/22/calcite-graduates/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Calcite Graduates</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -279,7 +279,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2015/11/08/new-committers/index.html b/news/2015/11/08/new-committers/index.html
index 32b1662..381048d 100644
--- a/news/2015/11/08/new-committers/index.html
+++ b/news/2015/11/08/new-committers/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Calcite adds 2 committers</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -250,7 +250,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2015/11/10/release-1.5.0/index.html b/news/2015/11/10/release-1.5.0/index.html
index fc5c4e5..c50b95f 100644
--- a/news/2015/11/10/release-1.5.0/index.html
+++ b/news/2015/11/10/release-1.5.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.5.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -251,7 +251,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2016/01/22/release-1.6.0/index.html b/news/2016/01/22/release-1.6.0/index.html
index 9872cfd..0add6c0 100644
--- a/news/2016/01/22/release-1.6.0/index.html
+++ b/news/2016/01/22/release-1.6.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.6.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -141,7 +141,7 @@
 couple of features make it easier to handle complex queries.</p>
 
 <p>[<a href="https://issues.apache.org/jira/browse/CALCITE-816">CALCITE-816</a>]
-allows you to represent sub-queries (<code class="highlighter-rouge">EXISTS</code>, <code class="highlighter-rouge">IN</code> and scalar) as
+allows you to represent sub-queries (<code class="language-plaintext highlighter-rouge">EXISTS</code>, <code class="language-plaintext highlighter-rouge">IN</code> and scalar) as
 <a href="/javadocAggregate/org/apache/calcite/rex/RexSubQuery.html">RexSubQuery</a>,
 a kind of expression in the relational algebra. Until
 now, the sql-to-rel converter was burdened with expanding sub-queries,
@@ -157,10 +157,10 @@
 expression’s output rows. From the predicates we can deduce which
 columns are constant, and following
 [<a href="https://issues.apache.org/jira/browse/CALCITE-1023">CALCITE-1023</a>]
-we can now remove constant columns from <code class="highlighter-rouge">GROUP BY</code> keys.</p>
+we can now remove constant columns from <code class="language-plaintext highlighter-rouge">GROUP BY</code> keys.</p>
 
 <p>Metadata is often computed recursively, and it is hard to safely and
-efficiently calculate metadata on a graph of <code class="highlighter-rouge">RelNode</code>s that is large,
+efficiently calculate metadata on a graph of <code class="language-plaintext highlighter-rouge">RelNode</code>s that is large,
 frequently cyclic, and constantly changing.
 [<a href="https://issues.apache.org/jira/browse/CALCITE-794">CALCITE-794</a>]
 introduces a context to each metadata call. That context can detect
@@ -277,7 +277,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2016/02/17/elser-pmc/index.html b/news/2016/02/17/elser-pmc/index.html
index fd3100f..156ebcc 100644
--- a/news/2016/02/17/elser-pmc/index.html
+++ b/news/2016/02/17/elser-pmc/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Calcite appoints Josh Elser to PMC</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -250,7 +250,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2016/02/17/streaming-sql-talk/index.html b/news/2016/02/17/streaming-sql-talk/index.html
index 54b84ca..fa53b70 100644
--- a/news/2016/02/17/streaming-sql-talk/index.html
+++ b/news/2016/02/17/streaming-sql-talk/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Streaming SQL in Samza</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -259,7 +259,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2016/03/22/cassandra-adapter/index.html b/news/2016/03/22/cassandra-adapter/index.html
index 7eb4d4e..35a597d 100644
--- a/news/2016/03/22/cassandra-adapter/index.html
+++ b/news/2016/03/22/cassandra-adapter/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Cassandra Adapter</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -260,7 +260,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2016/03/22/release-1.7.0/index.html b/news/2016/03/22/release-1.7.0/index.html
index 1021b52..9706361 100644
--- a/news/2016/03/22/release-1.7.0/index.html
+++ b/news/2016/03/22/release-1.7.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.7.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -155,13 +155,13 @@
 
 <p>This release adds an
 <a href="https://issues.apache.org/jira/browse/CALCITE-1066">Oracle-compatibility mode</a>.
-If you add <code class="highlighter-rouge">fun=oracle</code> to your JDBC connect string, you get all of
+If you add <code class="language-plaintext highlighter-rouge">fun=oracle</code> to your JDBC connect string, you get all of
 the standard operators and functions plus Oracle-specific functions
-<code class="highlighter-rouge">DECODE</code>, <code class="highlighter-rouge">NVL</code>, <code class="highlighter-rouge">LTRIM</code>, <code class="highlighter-rouge">RTRIM</code>, <code class="highlighter-rouge">GREATEST</code> and <code class="highlighter-rouge">LEAST</code>. We look
+<code class="language-plaintext highlighter-rouge">DECODE</code>, <code class="language-plaintext highlighter-rouge">NVL</code>, <code class="language-plaintext highlighter-rouge">LTRIM</code>, <code class="language-plaintext highlighter-rouge">RTRIM</code>, <code class="language-plaintext highlighter-rouge">GREATEST</code> and <code class="language-plaintext highlighter-rouge">LEAST</code>. We look
 forward to adding more functions, and compatibility modes for other
 databases, in future releases.</p>
 
-<p>We’ve replaced our use of JUL (<code class="highlighter-rouge">java.util.logging</code>)
+<p>We’ve replaced our use of JUL (<code class="language-plaintext highlighter-rouge">java.util.logging</code>)
 with <a href="https://slf4j.org/">SLF4J</a>. SLF4J provides an API which Calcite can use
 independent of the logging implementation. This ultimately provides additional
 flexibility to users, allowing them to configure Calcite’s logging within their
@@ -169,9 +169,9 @@
 [<a href="https://issues.apache.org/jira/browse/CALCITE-669">CALCITE-669</a>].</p>
 
 <p>For users experienced with configuring JUL in Calcite previously, there are some
-differences as some the JUL logging levels do not exist in SLF4J: <code class="highlighter-rouge">FINE</code>,
-<code class="highlighter-rouge">FINER</code>, and <code class="highlighter-rouge">FINEST</code>, specifically. To deal with this, <code class="highlighter-rouge">FINE</code> was mapped
-to SLF4J’s <code class="highlighter-rouge">DEBUG</code> level, while <code class="highlighter-rouge">FINER</code> and <code class="highlighter-rouge">FINEST</code> were mapped to SLF4J’s <code class="highlighter-rouge">TRACE</code>.</p>
+differences as some the JUL logging levels do not exist in SLF4J: <code class="language-plaintext highlighter-rouge">FINE</code>,
+<code class="language-plaintext highlighter-rouge">FINER</code>, and <code class="language-plaintext highlighter-rouge">FINEST</code>, specifically. To deal with this, <code class="language-plaintext highlighter-rouge">FINE</code> was mapped
+to SLF4J’s <code class="language-plaintext highlighter-rouge">DEBUG</code> level, while <code class="language-plaintext highlighter-rouge">FINER</code> and <code class="language-plaintext highlighter-rouge">FINEST</code> were mapped to SLF4J’s <code class="language-plaintext highlighter-rouge">TRACE</code>.</p>
 
     
     <p>See the <a href="/docs/history.html#v1-7-0">release notes</a>;
@@ -282,7 +282,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2016/06/13/release-1.8.0/index.html b/news/2016/06/13/release-1.8.0/index.html
index 5af4e8a..6d843fd 100644
--- a/news/2016/06/13/release-1.8.0/index.html
+++ b/news/2016/06/13/release-1.8.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.8.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -146,7 +146,7 @@
 It is also now easier to
 <a href="https://issues.apache.org/jira/browse/CALCITE-1259">make a JDBC connection based upon a single adapter</a>.</p>
 
-<p>There are several new SQL features: <code class="highlighter-rouge">UNNEST</code> with
+<p>There are several new SQL features: <code class="language-plaintext highlighter-rouge">UNNEST</code> with
 <a href="https://issues.apache.org/jira/browse/CALCITE-855">multiple arguments</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-1250">MAP arguments</a>
 and <a href="https://issues.apache.org/jira/browse/CALCITE-1225">with a JOIN</a>;
@@ -156,7 +156,7 @@
 
 <p>We also added support for
 <a href="https://issues.apache.org/jira/browse/CALCITE-1120">SELECT without FROM</a>
-(equivalent to the <code class="highlighter-rouge">VALUES</code> clause, and widely used in MySQL and PostgreSQL),
+(equivalent to the <code class="language-plaintext highlighter-rouge">VALUES</code> clause, and widely used in MySQL and PostgreSQL),
 and added a
 <a href="/docs/adapter.html#jdbc-connect-string-parameters">conformance</a>
 parameter to allow you to selectively enable this and other SQL features.</p>
@@ -273,7 +273,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2016/09/22/release-1.9.0/index.html b/news/2016/09/22/release-1.9.0/index.html
index b0c3245..8cf9a31 100644
--- a/news/2016/09/22/release-1.9.0/index.html
+++ b/news/2016/09/22/release-1.9.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.9.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -148,14 +148,14 @@
 which demonstrates the good reception of the adapter by that community.</p>
 
 <p>We have added new SQL features too, e.g.,
-<a href="https://issues.apache.org/jira/browse/CALCITE-1309">support for <code class="highlighter-rouge">LATERAL TABLE</code></a>.
+<a href="https://issues.apache.org/jira/browse/CALCITE-1309">support for <code class="language-plaintext highlighter-rouge">LATERAL TABLE</code></a>.
 There are multiple interesting extensions to the planner rules that should contribute to
 obtain better plans, such as
 <a href="https://issues.apache.org/jira/browse/CALCITE-1288">avoiding doing the same join twice</a>
-in the presence of <code class="highlighter-rouge">COUNT DISTINCT</code>, or being able to
+in the presence of <code class="language-plaintext highlighter-rouge">COUNT DISTINCT</code>, or being able to
 <a href="https://issues.apache.org/jira/browse/CALCITE-1220">simplify the expressions</a>
 in the plan further. In addition, we implemented a rule to
-<a href="https://issues.apache.org/jira/browse/CALCITE-1334">convert predicates on <code class="highlighter-rouge">EXTRACT</code> function calls into date ranges</a>.
+<a href="https://issues.apache.org/jira/browse/CALCITE-1334">convert predicates on <code class="language-plaintext highlighter-rouge">EXTRACT</code> function calls into date ranges</a>.
 The rule is not specific to Druid; however, in principle, it will be useful to identify
 filter conditions on the time dimension of Druid data sources.</p>
 
@@ -271,7 +271,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2016/10/12/release-1.10.0/index.html b/news/2016/10/12/release-1.10.0/index.html
index 83ef0d6..e0be21b 100644
--- a/news/2016/10/12/release-1.10.0/index.html
+++ b/news/2016/10/12/release-1.10.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.10.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -254,7 +254,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2017/01/09/release-1.11.0/index.html b/news/2017/01/09/release-1.11.0/index.html
index 3267717..49da3c4 100644
--- a/news/2017/01/09/release-1.11.0/index.html
+++ b/news/2017/01/09/release-1.11.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.11.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -148,8 +148,8 @@
 <p>Several adapters have improvements:</p>
 
 <ul>
-  <li>The JDBC adapter can now push down DML (<code class="highlighter-rouge">INSERT</code>, <code class="highlighter-rouge">UPDATE</code>, <code class="highlighter-rouge">DELETE</code>),
-windowed aggregates (<code class="highlighter-rouge">OVER</code>), <code class="highlighter-rouge">IS NULL</code> and <code class="highlighter-rouge">IS NOT NULL</code> operators.</li>
+  <li>The JDBC adapter can now push down DML (<code class="language-plaintext highlighter-rouge">INSERT</code>, <code class="language-plaintext highlighter-rouge">UPDATE</code>, <code class="language-plaintext highlighter-rouge">DELETE</code>),
+windowed aggregates (<code class="language-plaintext highlighter-rouge">OVER</code>), <code class="language-plaintext highlighter-rouge">IS NULL</code> and <code class="language-plaintext highlighter-rouge">IS NOT NULL</code> operators.</li>
   <li>The Cassandra adapter now supports authentication.</li>
   <li>Several key bug-fixes in the Druid adapter.</li>
 </ul>
@@ -164,25 +164,25 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">CROSS APPLY</code> and <code class="highlighter-rouge">OUTER APPLY</code>;</li>
+<code class="language-plaintext highlighter-rouge">CROSS APPLY</code> and <code class="language-plaintext highlighter-rouge">OUTER APPLY</code>;</li>
   <li>
-<code class="highlighter-rouge">MINUS</code> as a synonym for <code class="highlighter-rouge">EXCEPT</code>;</li>
-  <li>an <code class="highlighter-rouge">AS JSON</code> option for the <code class="highlighter-rouge">EXPLAIN</code> command;</li>
-  <li>compound identifiers in the target list of <code class="highlighter-rouge">INSERT</code>, allowing you to
+<code class="language-plaintext highlighter-rouge">MINUS</code> as a synonym for <code class="language-plaintext highlighter-rouge">EXCEPT</code>;</li>
+  <li>an <code class="language-plaintext highlighter-rouge">AS JSON</code> option for the <code class="language-plaintext highlighter-rouge">EXPLAIN</code> command;</li>
+  <li>compound identifiers in the target list of <code class="language-plaintext highlighter-rouge">INSERT</code>, allowing you to
 insert into individual fields of record-valued columns (or column
 families if you are using the Apache Phoenix adapter).</li>
 </ul>
 
-<p>A variety of new and extended built-in functions: <code class="highlighter-rouge">CONVERT</code>, <code class="highlighter-rouge">LTRIM</code>,
-<code class="highlighter-rouge">RTRIM</code>, 3-parameter <code class="highlighter-rouge">LOCATE</code> and <code class="highlighter-rouge">POSITION</code>, <code class="highlighter-rouge">RAND</code>, <code class="highlighter-rouge">RAND_INTEGER</code>,
-and <code class="highlighter-rouge">SUBSTRING</code> applied to binary types.</p>
+<p>A variety of new and extended built-in functions: <code class="language-plaintext highlighter-rouge">CONVERT</code>, <code class="language-plaintext highlighter-rouge">LTRIM</code>,
+<code class="language-plaintext highlighter-rouge">RTRIM</code>, 3-parameter <code class="language-plaintext highlighter-rouge">LOCATE</code> and <code class="language-plaintext highlighter-rouge">POSITION</code>, <code class="language-plaintext highlighter-rouge">RAND</code>, <code class="language-plaintext highlighter-rouge">RAND_INTEGER</code>,
+and <code class="language-plaintext highlighter-rouge">SUBSTRING</code> applied to binary types.</p>
 
 <p>There are minor but potentially breaking API changes in
 [<a href="https://issues.apache.org/jira/browse/CALCITE-1519">CALCITE-1519</a>]
-(interface <code class="highlighter-rouge">SubqueryConverter</code> becomes <code class="highlighter-rouge">SubQueryConverter</code> and some
+(interface <code class="language-plaintext highlighter-rouge">SubqueryConverter</code> becomes <code class="language-plaintext highlighter-rouge">SubQueryConverter</code> and some
 similar changes in the case of classes and methods) and
 [<a href="https://issues.apache.org/jira/browse/CALCITE-1530">CALCITE-1530</a>]
-(rename <code class="highlighter-rouge">Shuttle</code> to <code class="highlighter-rouge">Visitor</code>, and create a new class <code class="highlighter-rouge">Visitor&lt;R&gt;</code>).
+(rename <code class="language-plaintext highlighter-rouge">Shuttle</code> to <code class="language-plaintext highlighter-rouge">Visitor</code>, and create a new class <code class="language-plaintext highlighter-rouge">Visitor&lt;R&gt;</code>).
 See the cases for more details.</p>
 
     
@@ -294,7 +294,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2017/03/24/release-1.12.0/index.html b/news/2017/03/24/release-1.12.0/index.html
index e163cb2..fc9a29d 100644
--- a/news/2017/03/24/release-1.12.0/index.html
+++ b/news/2017/03/24/release-1.12.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.12.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -155,7 +155,7 @@
   <li>The <a href="https://issues.apache.org/jira/browse/CALCITE-884">File adapter</a>
 can read files of various formats (such as CSV, JSON, zipped files,
 and HTML) over various protocols (including file and HTTP). If
-reading HTML files, it can extract data from nested <code class="highlighter-rouge">&lt;TABLE&gt;</code>
+reading HTML files, it can extract data from nested <code class="language-plaintext highlighter-rouge">&lt;TABLE&gt;</code>
 elements.</li>
   <li>The <a href="https://issues.apache.org/jira/browse/CALCITE-1598">Pig adapter</a>
 provides a SQL interface to <a href="https://pig.apache.org/">Apache Pig</a>.</li>
@@ -177,14 +177,14 @@
 
 <ul>
   <li>
-<code class="highlighter-rouge">HOP</code>, <code class="highlighter-rouge">TUMBLE</code> and <code class="highlighter-rouge">SESSION</code> functions in the <code class="highlighter-rouge">GROUP BY</code> clause
+<code class="language-plaintext highlighter-rouge">HOP</code>, <code class="language-plaintext highlighter-rouge">TUMBLE</code> and <code class="language-plaintext highlighter-rouge">SESSION</code> functions in the <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause
 allow you to aggregate over window types (especially useful for
 streaming queries);</li>
-  <li>Experimental support for the <code class="highlighter-rouge">MATCH_RECOGNIZE</code> clause for
+  <li>Experimental support for the <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> clause for
 Complex-Event Processing (CEP);</li>
-  <li>New <code class="highlighter-rouge">YEAR</code>, <code class="highlighter-rouge">MONTH</code>, <code class="highlighter-rouge">WEEK</code>, <code class="highlighter-rouge">DAYOFYEAR</code>, <code class="highlighter-rouge">DAYOFMONTH</code>, <code class="highlighter-rouge">DAYOFWEEK</code>,
-<code class="highlighter-rouge">HOUR</code>, <code class="highlighter-rouge">MINUTE</code>, <code class="highlighter-rouge">SECOND</code>, <code class="highlighter-rouge">DATABASE</code>, <code class="highlighter-rouge">IFNULL</code>, and <code class="highlighter-rouge">USER</code>
-functions to comply with the ODBC/JDBC standard. Also, <code class="highlighter-rouge">EXTRACT</code> now
+  <li>New <code class="language-plaintext highlighter-rouge">YEAR</code>, <code class="language-plaintext highlighter-rouge">MONTH</code>, <code class="language-plaintext highlighter-rouge">WEEK</code>, <code class="language-plaintext highlighter-rouge">DAYOFYEAR</code>, <code class="language-plaintext highlighter-rouge">DAYOFMONTH</code>, <code class="language-plaintext highlighter-rouge">DAYOFWEEK</code>,
+<code class="language-plaintext highlighter-rouge">HOUR</code>, <code class="language-plaintext highlighter-rouge">MINUTE</code>, <code class="language-plaintext highlighter-rouge">SECOND</code>, <code class="language-plaintext highlighter-rouge">DATABASE</code>, <code class="language-plaintext highlighter-rouge">IFNULL</code>, and <code class="language-plaintext highlighter-rouge">USER</code>
+functions to comply with the ODBC/JDBC standard. Also, <code class="language-plaintext highlighter-rouge">EXTRACT</code> now
 allows the corresponding time-unit arguments.</li>
 </ul>
 
@@ -297,7 +297,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2017/03/31/new-avatica-repository/index.html b/news/2017/03/31/new-avatica-repository/index.html
index e6c133f..8bad525 100644
--- a/news/2017/03/31/new-avatica-repository/index.html
+++ b/news/2017/03/31/new-avatica-repository/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>New Avatica Repository</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -255,7 +255,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2017/06/26/release-1.13.0/index.html b/news/2017/06/26/release-1.13.0/index.html
index 58acede..e9e72a4 100644
--- a/news/2017/06/26/release-1.13.0/index.html
+++ b/news/2017/06/26/release-1.13.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.13.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -154,7 +154,7 @@
 should prove useful for data processing systems relying on Calcite.</p>
 
 <p>In this release, we have also completed the work to
-<a href="https://issues.apache.org/jira/browse/CALCITE-1570">support the <code class="highlighter-rouge">MATCH_RECOGNIZE</code> clause</a>
+<a href="https://issues.apache.org/jira/browse/CALCITE-1570">support the <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> clause</a>
 used in complex-event processing (CEP).</p>
 
 <p>In addition, more progress has been made for the different adapters.
@@ -272,7 +272,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2017/10/02/release-1.14.0/index.html b/news/2017/10/02/release-1.14.0/index.html
index 5e60b3f..279cfc9 100644
--- a/news/2017/10/02/release-1.14.0/index.html
+++ b/news/2017/10/02/release-1.14.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.14.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -142,13 +142,13 @@
 
 <p>This release comes three months after 1.13.0. It includes 68 resolved issues with many improvements and bug fixes.
 This release brings some big new features.
-The <code class="highlighter-rouge">GEOMETRY</code> data type was added along with 35 associated functions as the start of support for Simple Feature Access.
+The <code class="language-plaintext highlighter-rouge">GEOMETRY</code> data type was added along with 35 associated functions as the start of support for Simple Feature Access.
 There are also two new adapters.</p>
 
 <p>Firstly, the Elasticsearch 5 adapter which now exists in parallel with the previous Elasticsearch 2 adapter.
 Additionally there is now an <a href="/docs/os_adapter.html">OS adapter</a> which exposes operating system metrics as relational tables.
-<code class="highlighter-rouge">ThetaSketch</code> and <code class="highlighter-rouge">HyperUnique</code> support has also been added to the Druid adapter.
-Several minor improvements are added as well including improved <code class="highlighter-rouge">MATCH_RECOGNIZE</code> support, quantified comparison predicates, and <code class="highlighter-rouge">ARRAY</code> and <code class="highlighter-rouge">MULTISET</code> support for UDFs.</p>
+<code class="language-plaintext highlighter-rouge">ThetaSketch</code> and <code class="language-plaintext highlighter-rouge">HyperUnique</code> support has also been added to the Druid adapter.
+Several minor improvements are added as well including improved <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> support, quantified comparison predicates, and <code class="language-plaintext highlighter-rouge">ARRAY</code> and <code class="language-plaintext highlighter-rouge">MULTISET</code> support for UDFs.</p>
 
     
     <p>See the <a href="/docs/history.html#v1-14-0">release notes</a>;
@@ -259,7 +259,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2017/12/11/release-1.15.0/index.html b/news/2017/12/11/release-1.15.0/index.html
index b57748d..fc01fb4 100644
--- a/news/2017/12/11/release-1.15.0/index.html
+++ b/news/2017/12/11/release-1.15.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.15.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -150,7 +150,7 @@
 We know that DDL syntax is a matter of taste, so we added the extensions to a
 <em>new “server” module</em>, leaving the “core” parser unchanged;</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2061">CALCITE-2061</a>]
-allows <em>dynamic parameters</em> in the <code class="highlighter-rouge">LIMIT</code> and <code class="highlighter-rouge">OFFSET</code> and clauses;</li>
+allows <em>dynamic parameters</em> in the <code class="language-plaintext highlighter-rouge">LIMIT</code> and <code class="language-plaintext highlighter-rouge">OFFSET</code> and clauses;</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1913">CALCITE-1913</a>]
 refactors the JDBC adapter to make it easier to <em>plug in a new SQL dialect</em>;</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1616">CALCITE-1616</a>]
@@ -278,7 +278,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2018/03/19/release-1.16.0/index.html b/news/2018/03/19/release-1.16.0/index.html
index 4aa4b1a..e7d7f30 100644
--- a/news/2018/03/19/release-1.16.0/index.html
+++ b/news/2018/03/19/release-1.16.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.16.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -152,7 +152,7 @@
 <a href="https://issues.apache.org/jira/browse/CALCITE-2059">read data from Apache Geode</a>
 was added in this release. In addition, more progress has been made for the existing adapters,
 e.g., the Druid adapter can generate
-<a href="https://issues.apache.org/jira/browse/CALCITE-2077"><code class="highlighter-rouge">SCAN</code> queries rather than <code class="highlighter-rouge">SELECT</code> queries</a>
+<a href="https://issues.apache.org/jira/browse/CALCITE-2077"><code class="language-plaintext highlighter-rouge">SCAN</code> queries rather than <code class="language-plaintext highlighter-rouge">SELECT</code> queries</a>
 for more efficient execution and it can push
 <a href="https://issues.apache.org/jira/browse/CALCITE-2170">more work to Druid using its new expressions capabilities</a>,
 and the JDBC adapter now <a href="https://issues.apache.org/jira/browse/CALCITE-2128">supports the SQL dialect used by Jethro Data</a>.</li>
@@ -270,7 +270,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2018/07/20/release-1.17.0/index.html b/news/2018/07/20/release-1.17.0/index.html
index e778810..bfe3ee1 100644
--- a/news/2018/07/20/release-1.17.0/index.html
+++ b/news/2018/07/20/release-1.17.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.17.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -261,7 +261,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2018/12/21/release-1.18.0/index.html b/news/2018/12/21/release-1.18.0/index.html
index 7b3c69d..804c615 100644
--- a/news/2018/12/21/release-1.18.0/index.html
+++ b/news/2018/12/21/release-1.18.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.18.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -260,7 +260,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2019/03/25/release-1.19.0/index.html b/news/2019/03/25/release-1.19.0/index.html
index 5194b45..7c62a1f 100644
--- a/news/2019/03/25/release-1.19.0/index.html
+++ b/news/2019/03/25/release-1.19.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.19.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -251,7 +251,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2019/06/24/release-1.20.0/index.html b/news/2019/06/24/release-1.20.0/index.html
index 81b913c..14bca18 100644
--- a/news/2019/06/24/release-1.20.0/index.html
+++ b/news/2019/06/24/release-1.20.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.20.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -252,7 +252,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2019/09/11/release-1.21.0/index.html b/news/2019/09/11/release-1.21.0/index.html
index e1cb894..1c44eaa 100644
--- a/news/2019/09/11/release-1.21.0/index.html
+++ b/news/2019/09/11/release-1.21.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.21.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -150,16 +150,16 @@
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2302">CALCITE-2302</a>);</li>
   <li>allows transformations of Pig Latin scripts into algebraic plans
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3122">CALCITE-3122</a>);</li>
-  <li>provides an implementation for the main features of <code class="highlighter-rouge">MATCH_RECOGNIZE</code> in the
-<code class="highlighter-rouge">Enumerable</code> convention
+  <li>provides an implementation for the main features of <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> in the
+<code class="language-plaintext highlighter-rouge">Enumerable</code> convention
 (<a href="https://issues.apache.org/jira/browse/CALCITE-1935">CALCITE-1935</a>);</li>
-  <li>supports correlated <code class="highlighter-rouge">ANY</code>/<code class="highlighter-rouge">SOME</code>/<code class="highlighter-rouge">ALL</code> sub-queries
+  <li>supports correlated <code class="language-plaintext highlighter-rouge">ANY</code>/<code class="language-plaintext highlighter-rouge">SOME</code>/<code class="language-plaintext highlighter-rouge">ALL</code> sub-queries
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3031">CALCITE-3031</a>);</li>
-  <li>introduces anonymous types based on <code class="highlighter-rouge">ROW</code>, <code class="highlighter-rouge">ARRAY</code>, and nested collection
+  <li>introduces anonymous types based on <code class="language-plaintext highlighter-rouge">ROW</code>, <code class="language-plaintext highlighter-rouge">ARRAY</code>, and nested collection
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3233">CALCITE-3233</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3231">CALCITE-3231</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3250">CALCITE-3250</a>);</li>
-  <li>brings new join algorithms for the <code class="highlighter-rouge">Enumerable</code> convention
+  <li>brings new join algorithms for the <code class="language-plaintext highlighter-rouge">Enumerable</code> convention
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2979">CALCITE-2979</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-2973">CALCITE-2973</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3284">CALCITE-3284</a>).</li>
@@ -274,7 +274,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2020/03/05/release-1.22.0/index.html b/news/2020/03/05/release-1.22.0/index.html
index 97d0ca4..87804c3 100644
--- a/news/2020/03/05/release-1.22.0/index.html
+++ b/news/2020/03/05/release-1.22.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.22.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -145,16 +145,16 @@
 <ul>
   <li>Supports SQL hints for different kind of relational expressions (<a href="https://issues.apache.org/jira/browse/CALCITE-482">CALCITE-482</a>)</li>
   <li>A new Redis adaptor (<a href="https://issues.apache.org/jira/browse/CALCITE-3510">CALCITE-3510</a>)</li>
-  <li>More Oracle and MySQL functions are supported, i.e. Oracle <code class="highlighter-rouge">XML</code> function (<a href="https://issues.apache.org/jira/browse/CALCITE-3579">CALCITE-3579</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3580">CALCITE-3580</a>), MySQL math functions (<a href="https://issues.apache.org/jira/browse/CALCITE-3684">CALCITE-3684</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3695">CALCITE-3695</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3707">CALCITE-3707</a>)</li>
+  <li>More Oracle and MySQL functions are supported, i.e. Oracle <code class="language-plaintext highlighter-rouge">XML</code> function (<a href="https://issues.apache.org/jira/browse/CALCITE-3579">CALCITE-3579</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3580">CALCITE-3580</a>), MySQL math functions (<a href="https://issues.apache.org/jira/browse/CALCITE-3684">CALCITE-3684</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3695">CALCITE-3695</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3707">CALCITE-3707</a>)</li>
 </ul>
 
 <p>We have also fixed some important bugs:</p>
 <ul>
-  <li>The metadata cache is fixed for rare cases that <code class="highlighter-rouge">RelSet</code>s are merging (<a href="https://issues.apache.org/jira/browse/CALCITE-2018">CALCITE-2018</a>)</li>
-  <li>The <code class="highlighter-rouge">GROUP_ID</code> now returns correct results (<a href="https://issues.apache.org/jira/browse/CALCITE-1824">CALCITE-1824</a>)</li>
+  <li>The metadata cache is fixed for rare cases that <code class="language-plaintext highlighter-rouge">RelSet</code>s are merging (<a href="https://issues.apache.org/jira/browse/CALCITE-2018">CALCITE-2018</a>)</li>
+  <li>The <code class="language-plaintext highlighter-rouge">GROUP_ID</code> now returns correct results (<a href="https://issues.apache.org/jira/browse/CALCITE-1824">CALCITE-1824</a>)</li>
   <li>
-<code class="highlighter-rouge">CORRELATE</code> row count estimation has been fixed, it is always 1 before (<a href="https://issues.apache.org/jira/browse/CALCITE-3711">CALCITE-3711</a>)</li>
-  <li>The modulus precision inference of <code class="highlighter-rouge">DECIMAL</code>s has been fixed (<a href="https://issues.apache.org/jira/browse/CALCITE-3435">CALCITE-3435</a>)</li>
+<code class="language-plaintext highlighter-rouge">CORRELATE</code> row count estimation has been fixed, it is always 1 before (<a href="https://issues.apache.org/jira/browse/CALCITE-3711">CALCITE-3711</a>)</li>
+  <li>The modulus precision inference of <code class="language-plaintext highlighter-rouge">DECIMAL</code>s has been fixed (<a href="https://issues.apache.org/jira/browse/CALCITE-3435">CALCITE-3435</a>)</li>
 </ul>
 
     
@@ -266,7 +266,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2020/05/23/release-1.23.0/index.html b/news/2020/05/23/release-1.23.0/index.html
index 1d00f05..706fb1c 100644
--- a/news/2020/05/23/release-1.23.0/index.html
+++ b/news/2020/05/23/release-1.23.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.23.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -149,13 +149,13 @@
 <ul>
   <li>Supports top down trait request and trait enforcement without abstract converter
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3896">CALCITE-3896</a>)</li>
-  <li>Improves <code class="highlighter-rouge">VolcanoPlanner</code> performance by removing rule match and subset importance
+  <li>Improves <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> performance by removing rule match and subset importance
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3753">CALCITE-3753</a>)</li>
-  <li>Improves <code class="highlighter-rouge">VolcanoPlanner</code> performance when abstract converter is enabled
+  <li>Improves <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> performance when abstract converter is enabled
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2970">CALCITE-2970</a>)</li>
   <li>Supports ClickHouse dialect
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2157">CALCITE-2157</a>)</li>
-  <li>Supports <code class="highlighter-rouge">SESSION</code> and <code class="highlighter-rouge">HOP</code> Table function
+  <li>Supports <code class="language-plaintext highlighter-rouge">SESSION</code> and <code class="language-plaintext highlighter-rouge">HOP</code> Table function
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3780">CALCITE-3780</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3737">CALCITE-3737</a>)</li>
 </ul>
@@ -269,7 +269,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2020/07/23/release-1.24.0/index.html b/news/2020/07/23/release-1.24.0/index.html
index f33d285..b17af10 100644
--- a/news/2020/07/23/release-1.24.0/index.html
+++ b/news/2020/07/23/release-1.24.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.24.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -147,7 +147,7 @@
 <ul>
   <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-3916">top-down rule applying and upper bound space pruning</a>
 </li>
-  <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-4000">OFFSET</a> parameter in <code class="highlighter-rouge">TUMBLE/HOP</code>
+  <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-4000">OFFSET</a> parameter in <code class="language-plaintext highlighter-rouge">TUMBLE/HOP</code>
 table functions</li>
   <li>A new <a href="https://issues.apache.org/jira/browse/CALCITE-3724">Presto dialect implementation</a>
 </li>
@@ -265,7 +265,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2020/08/22/release-1.25.0/index.html b/news/2020/08/22/release-1.25.0/index.html
index 0cf0484..c4fe1ab 100644
--- a/news/2020/08/22/release-1.25.0/index.html
+++ b/news/2020/08/22/release-1.25.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.25.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -147,7 +147,7 @@
 <ul>
   <li>
 <a href="https://issues.apache.org/jira/browse/CALCITE-4134">Interval Expressions</a>
-(e.g. <code class="highlighter-rouge">INTERVAL '1' HOUR</code>, <code class="highlighter-rouge">INTERVAL -'1:2' HOUR TO MINUTE</code>)</li>
+(e.g. <code class="language-plaintext highlighter-rouge">INTERVAL '1' HOUR</code>, <code class="language-plaintext highlighter-rouge">INTERVAL -'1:2' HOUR TO MINUTE</code>)</li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-4080">Character Literals as Aliases</a></li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-3923">Refactor How Planner Rules are Parameterized</a></li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-2160">Spacial Functions</a></li>
@@ -262,7 +262,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2020/10/06/release-1.26.0/index.html b/news/2020/10/06/release-1.26.0/index.html
index 4da9910..4c1d763 100644
--- a/news/2020/10/06/release-1.26.0/index.html
+++ b/news/2020/10/06/release-1.26.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.26.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -140,9 +140,9 @@
 is pleased to announce
 <a href="/docs/history.html#v1-26-0">Apache Calcite release 1.26.0</a>.</p>
 
-<p><strong>Warning:</strong> Calcite 1.26.0 has <strong>severe</strong> issues with <code class="highlighter-rouge">RexNode</code> simplification caused by <code class="highlighter-rouge">SEARCH operator</code> (
+<p><strong>Warning:</strong> Calcite 1.26.0 has <strong>severe</strong> issues with <code class="language-plaintext highlighter-rouge">RexNode</code> simplification caused by <code class="language-plaintext highlighter-rouge">SEARCH operator</code> (
 wrong data from query optimization like in <a href="https://issues.apache.org/jira/browse/CALCITE-4325">CALCITE-4325</a>,
-<a href="https://issues.apache.org/jira/browse/CALCITE-4352">CALCITE-4352</a>, <code class="highlighter-rouge">NullPointerException</code>),
+<a href="https://issues.apache.org/jira/browse/CALCITE-4352">CALCITE-4352</a>, <code class="language-plaintext highlighter-rouge">NullPointerException</code>),
 so use 1.26.0 for development only, and beware that Calcite 1.26.0 might corrupt your data.</p>
 
 <p>This release comes about two months after 1.25.0 and includes more than 70 resolved
@@ -265,7 +265,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2021/01/11/meetup/index.html b/news/2021/01/11/meetup/index.html
index 2080b2c..379f47e 100644
--- a/news/2021/01/11/meetup/index.html
+++ b/news/2021/01/11/meetup/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Calcite Online Meetup January 2021</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -254,7 +254,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2021/06/03/release-1.27.0/index.html b/news/2021/06/03/release-1.27.0/index.html
index fb35b8c..e843d72 100644
--- a/news/2021/06/03/release-1.27.0/index.html
+++ b/news/2021/06/03/release-1.27.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.27.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -264,7 +264,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2021/10/19/release-1.28.0/index.html b/news/2021/10/19/release-1.28.0/index.html
index e64a780..78f85c7 100644
--- a/news/2021/10/19/release-1.28.0/index.html
+++ b/news/2021/10/19/release-1.28.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.28.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -165,7 +165,7 @@
 <p>In 1.28, Calcite converted the recently introduced
 <a href="https://issues.apache.org/jira/browse/CALCITE-3328">configuration system</a>
 from an internal system based on
-<a href="https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/util/ImmutableBeans.java">ImmutableBeans</a>
+<a href="https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/util/ImmutableBeans.java">ImmutableBeans</a>
 to instead use the <a href="https://immutables.github.io/">Immutables</a>
 annotation processor. This library brings a large number of additional
 features that should make value-type classes in Calcite easier to
@@ -179,43 +179,43 @@
 changes needed to be made:</p>
 <ul>
   <li>The
-<a href="https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/plan/RelRule.java#L125">RelRule.Config.EMPTY</a>
+<a href="https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/plan/RelRule.java#L125">RelRule.Config.EMPTY</a>
 field is now deprecated. To create a new configuration subclass, you
 can either use your preferred interface-implementation based
 construction or you can leverage Immutables. To do the latter,
 <a href="https://immutables.github.io/getstarted.html">configure your project</a>
 to use the Immutables annotation processor and annotate your
 subclass with the
-<a href="https://immutables.github.io/immutable.html#value"><code class="highlighter-rouge">@Value.Immutable</code></a>
+<a href="https://immutables.github.io/immutable.html#value"><code class="language-plaintext highlighter-rouge">@Value.Immutable</code></a>
 annotation.</li>
-  <li>Where <code class="highlighter-rouge">RelRule.Config</code> subclasses were nested 2+ classes deep, the
+  <li>Where <code class="language-plaintext highlighter-rouge">RelRule.Config</code> subclasses were nested 2+ classes deep, the
 interfaces have been marked deprecated and are superceded by new,
 uniquely named interfaces. The original Configs extend the new
 uniquely named interfaces. Subclassing these work as before and the
 existing rule signatures accept any previously implemented Config
 implementations. However, this is a breaking change if a user stored
-an instance of the <code class="highlighter-rouge">DEFAULT</code> object using the Config class name (as
-the <code class="highlighter-rouge">DEFAULT</code> instance now only implements the uniquely named
+an instance of the <code class="language-plaintext highlighter-rouge">DEFAULT</code> object using the Config class name (as
+the <code class="language-plaintext highlighter-rouge">DEFAULT</code> instance now only implements the uniquely named
 interface).</li>
-  <li>The <code class="highlighter-rouge">RelRule.Config.as()</code> method should only be used for safe
+  <li>The <code class="language-plaintext highlighter-rouge">RelRule.Config.as()</code> method should only be used for safe
 downcasts. Before, it could do arbitrary casts. The exception is
-that arbitrary <code class="highlighter-rouge">as()</code> will continue to work when using the
-deprecated <code class="highlighter-rouge">RelRule.Config.EMPTY</code> field. In most cases, this should
-be a non-breaking change. However, all Calcite-defined <code class="highlighter-rouge">DEFAULT</code>
+that arbitrary <code class="language-plaintext highlighter-rouge">as()</code> will continue to work when using the
+deprecated <code class="language-plaintext highlighter-rouge">RelRule.Config.EMPTY</code> field. In most cases, this should
+be a non-breaking change. However, all Calcite-defined <code class="language-plaintext highlighter-rouge">DEFAULT</code>
 rule config instances use Immutables. As such, if one had previously
-subclassed a <code class="highlighter-rouge">RelRule.Config</code> subclass and then used the <code class="highlighter-rouge">DEFAULT</code>
-instance from that subclass, the <code class="highlighter-rouge">as()</code> call will no longer work to
-coerce the <code class="highlighter-rouge">DEFAULT</code> instance into a arbitrary subclass. In essence,
-outside the <code class="highlighter-rouge">EMPTY</code> use, <code class="highlighter-rouge">as()</code> is now only safe to do if a Java
+subclassed a <code class="language-plaintext highlighter-rouge">RelRule.Config</code> subclass and then used the <code class="language-plaintext highlighter-rouge">DEFAULT</code>
+instance from that subclass, the <code class="language-plaintext highlighter-rouge">as()</code> call will no longer work to
+coerce the <code class="language-plaintext highlighter-rouge">DEFAULT</code> instance into a arbitrary subclass. In essence,
+outside the <code class="language-plaintext highlighter-rouge">EMPTY</code> use, <code class="language-plaintext highlighter-rouge">as()</code> is now only safe to do if a Java
 cast is also safe.</li>
   <li>
-<code class="highlighter-rouge">ExchangeRemoveConstantKeysRule.Config</code> and
-<code class="highlighter-rouge">ValuesReduceRule.Config</code> now declare concrete bounds for their
+<code class="language-plaintext highlighter-rouge">ExchangeRemoveConstantKeysRule.Config</code> and
+<code class="language-plaintext highlighter-rouge">ValuesReduceRule.Config</code> now declare concrete bounds for their
 matchHandler configuration. This is a breaking change if one did not
 use the Rule as a bounding variable.</li>
   <li>Collections used in Immutables value classes will be converted to
 Immutable collection types even if the passed in parameter is
-mutable (such as an <code class="highlighter-rouge">ArrayList</code>). As such, consumers of those
+mutable (such as an <code class="language-plaintext highlighter-rouge">ArrayList</code>). As such, consumers of those
 configuration properties cannot mutate the returned collections.</li>
 </ul>
 
@@ -328,7 +328,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2021/12/25/release-1.29.0/index.html b/news/2021/12/25/release-1.29.0/index.html
index 25bad7d..1f7ee66 100644
--- a/news/2021/12/25/release-1.29.0/index.html
+++ b/news/2021/12/25/release-1.29.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.29.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -256,7 +256,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/2022/03/19/release-1.30.0/index.html b/news/2022/03/19/release-1.30.0/index.html
index d81202d..a68a85d 100644
--- a/news/2022/03/19/release-1.30.0/index.html
+++ b/news/2022/03/19/release-1.30.0/index.html
@@ -5,7 +5,7 @@
   <meta charset="UTF-8">
   <title>Release 1.30.0</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -262,7 +262,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache License v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/index.html b/news/index.html
index d68e148..83bee5e 100644
--- a/news/index.html
+++ b/news/index.html
@@ -4,7 +4,7 @@
   <meta charset="UTF-8">
   <title>News</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -277,7 +277,7 @@
 <p>In 1.28, Calcite converted the recently introduced
 <a href="https://issues.apache.org/jira/browse/CALCITE-3328">configuration system</a>
 from an internal system based on
-<a href="https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/util/ImmutableBeans.java">ImmutableBeans</a>
+<a href="https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/util/ImmutableBeans.java">ImmutableBeans</a>
 to instead use the <a href="https://immutables.github.io/">Immutables</a>
 annotation processor. This library brings a large number of additional
 features that should make value-type classes in Calcite easier to
@@ -291,42 +291,42 @@
 changes needed to be made:</p>
 <ul>
   <li>The
-<a href="https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/plan/RelRule.java#L125">RelRule.Config.EMPTY</a>
+<a href="https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/plan/RelRule.java#L125">RelRule.Config.EMPTY</a>
 field is now deprecated. To create a new configuration subclass, you
 can either use your preferred interface-implementation based
 construction or you can leverage Immutables. To do the latter,
 <a href="https://immutables.github.io/getstarted.html">configure your project</a>
 to use the Immutables annotation processor and annotate your
 subclass with the
-<a href="https://immutables.github.io/immutable.html#value"><code class="highlighter-rouge">@Value.Immutable</code></a>
+<a href="https://immutables.github.io/immutable.html#value"><code class="language-plaintext highlighter-rouge">@Value.Immutable</code></a>
 annotation.</li>
-  <li>Where <code class="highlighter-rouge">RelRule.Config</code> subclasses were nested 2+ classes deep, the
+  <li>Where <code class="language-plaintext highlighter-rouge">RelRule.Config</code> subclasses were nested 2+ classes deep, the
 interfaces have been marked deprecated and are superceded by new,
 uniquely named interfaces. The original Configs extend the new
 uniquely named interfaces. Subclassing these work as before and the
 existing rule signatures accept any previously implemented Config
 implementations. However, this is a breaking change if a user stored
-an instance of the <code class="highlighter-rouge">DEFAULT</code> object using the Config class name (as
-the <code class="highlighter-rouge">DEFAULT</code> instance now only implements the uniquely named
+an instance of the <code class="language-plaintext highlighter-rouge">DEFAULT</code> object using the Config class name (as
+the <code class="language-plaintext highlighter-rouge">DEFAULT</code> instance now only implements the uniquely named
 interface).</li>
-  <li>The <code class="highlighter-rouge">RelRule.Config.as()</code> method should only be used for safe
+  <li>The <code class="language-plaintext highlighter-rouge">RelRule.Config.as()</code> method should only be used for safe
 downcasts. Before, it could do arbitrary casts. The exception is
-that arbitrary <code class="highlighter-rouge">as()</code> will continue to work when using the
-deprecated <code class="highlighter-rouge">RelRule.Config.EMPTY</code> field. In most cases, this should
-be a non-breaking change. However, all Calcite-defined <code class="highlighter-rouge">DEFAULT</code>
+that arbitrary <code class="language-plaintext highlighter-rouge">as()</code> will continue to work when using the
+deprecated <code class="language-plaintext highlighter-rouge">RelRule.Config.EMPTY</code> field. In most cases, this should
+be a non-breaking change. However, all Calcite-defined <code class="language-plaintext highlighter-rouge">DEFAULT</code>
 rule config instances use Immutables. As such, if one had previously
-subclassed a <code class="highlighter-rouge">RelRule.Config</code> subclass and then used the <code class="highlighter-rouge">DEFAULT</code>
-instance from that subclass, the <code class="highlighter-rouge">as()</code> call will no longer work to
-coerce the <code class="highlighter-rouge">DEFAULT</code> instance into a arbitrary subclass. In essence,
-outside the <code class="highlighter-rouge">EMPTY</code> use, <code class="highlighter-rouge">as()</code> is now only safe to do if a Java
+subclassed a <code class="language-plaintext highlighter-rouge">RelRule.Config</code> subclass and then used the <code class="language-plaintext highlighter-rouge">DEFAULT</code>
+instance from that subclass, the <code class="language-plaintext highlighter-rouge">as()</code> call will no longer work to
+coerce the <code class="language-plaintext highlighter-rouge">DEFAULT</code> instance into a arbitrary subclass. In essence,
+outside the <code class="language-plaintext highlighter-rouge">EMPTY</code> use, <code class="language-plaintext highlighter-rouge">as()</code> is now only safe to do if a Java
 cast is also safe.</li>
-  <li><code class="highlighter-rouge">ExchangeRemoveConstantKeysRule.Config</code> and
-<code class="highlighter-rouge">ValuesReduceRule.Config</code> now declare concrete bounds for their
+  <li><code class="language-plaintext highlighter-rouge">ExchangeRemoveConstantKeysRule.Config</code> and
+<code class="language-plaintext highlighter-rouge">ValuesReduceRule.Config</code> now declare concrete bounds for their
 matchHandler configuration. This is a breaking change if one did not
 use the Rule as a bounding variable.</li>
   <li>Collections used in Immutables value classes will be converted to
 Immutable collection types even if the passed in parameter is
-mutable (such as an <code class="highlighter-rouge">ArrayList</code>). As such, consumers of those
+mutable (such as an <code class="language-plaintext highlighter-rouge">ArrayList</code>). As such, consumers of those
 configuration properties cannot mutate the returned collections.</li>
 </ul>
 
@@ -479,9 +479,9 @@
 is pleased to announce
 <a href="/docs/history.html#v1-26-0">Apache Calcite release 1.26.0</a>.</p>
 
-<p><strong>Warning:</strong> Calcite 1.26.0 has <strong>severe</strong> issues with <code class="highlighter-rouge">RexNode</code> simplification caused by <code class="highlighter-rouge">SEARCH operator</code> (
+<p><strong>Warning:</strong> Calcite 1.26.0 has <strong>severe</strong> issues with <code class="language-plaintext highlighter-rouge">RexNode</code> simplification caused by <code class="language-plaintext highlighter-rouge">SEARCH operator</code> (
 wrong data from query optimization like in <a href="https://issues.apache.org/jira/browse/CALCITE-4325">CALCITE-4325</a>,
-<a href="https://issues.apache.org/jira/browse/CALCITE-4352">CALCITE-4352</a>, <code class="highlighter-rouge">NullPointerException</code>),
+<a href="https://issues.apache.org/jira/browse/CALCITE-4352">CALCITE-4352</a>, <code class="language-plaintext highlighter-rouge">NullPointerException</code>),
 so use 1.26.0 for development only, and beware that Calcite 1.26.0 might corrupt your data.</p>
 
 <p>This release comes about two months after 1.25.0 and includes more than 70 resolved
@@ -544,7 +544,7 @@
 
 <ul>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-4134">Interval Expressions</a>
-(e.g. <code class="highlighter-rouge">INTERVAL '1' HOUR</code>, <code class="highlighter-rouge">INTERVAL -'1:2' HOUR TO MINUTE</code>)</li>
+(e.g. <code class="language-plaintext highlighter-rouge">INTERVAL '1' HOUR</code>, <code class="language-plaintext highlighter-rouge">INTERVAL -'1:2' HOUR TO MINUTE</code>)</li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-4080">Character Literals as Aliases</a></li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-3923">Refactor How Planner Rules are Parameterized</a></li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-2160">Spacial Functions</a></li>
@@ -599,7 +599,7 @@
 
 <ul>
   <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-3916">top-down rule applying and upper bound space pruning</a></li>
-  <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-4000">OFFSET</a> parameter in <code class="highlighter-rouge">TUMBLE/HOP</code>
+  <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-4000">OFFSET</a> parameter in <code class="language-plaintext highlighter-rouge">TUMBLE/HOP</code>
 table functions</li>
   <li>A new <a href="https://issues.apache.org/jira/browse/CALCITE-3724">Presto dialect implementation</a></li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-4087">Hoist</a>, a utility to replace literals in a
@@ -658,13 +658,13 @@
 <ul>
   <li>Supports top down trait request and trait enforcement without abstract converter
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3896">CALCITE-3896</a>)</li>
-  <li>Improves <code class="highlighter-rouge">VolcanoPlanner</code> performance by removing rule match and subset importance
+  <li>Improves <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> performance by removing rule match and subset importance
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3753">CALCITE-3753</a>)</li>
-  <li>Improves <code class="highlighter-rouge">VolcanoPlanner</code> performance when abstract converter is enabled
+  <li>Improves <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> performance when abstract converter is enabled
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2970">CALCITE-2970</a>)</li>
   <li>Supports ClickHouse dialect
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2157">CALCITE-2157</a>)</li>
-  <li>Supports <code class="highlighter-rouge">SESSION</code> and <code class="highlighter-rouge">HOP</code> Table function
+  <li>Supports <code class="language-plaintext highlighter-rouge">SESSION</code> and <code class="language-plaintext highlighter-rouge">HOP</code> Table function
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3780">CALCITE-3780</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3737">CALCITE-3737</a>)</li>
 </ul>
@@ -717,15 +717,15 @@
 <ul>
   <li>Supports SQL hints for different kind of relational expressions (<a href="https://issues.apache.org/jira/browse/CALCITE-482">CALCITE-482</a>)</li>
   <li>A new Redis adaptor (<a href="https://issues.apache.org/jira/browse/CALCITE-3510">CALCITE-3510</a>)</li>
-  <li>More Oracle and MySQL functions are supported, i.e. Oracle <code class="highlighter-rouge">XML</code> function (<a href="https://issues.apache.org/jira/browse/CALCITE-3579">CALCITE-3579</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3580">CALCITE-3580</a>), MySQL math functions (<a href="https://issues.apache.org/jira/browse/CALCITE-3684">CALCITE-3684</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3695">CALCITE-3695</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3707">CALCITE-3707</a>)</li>
+  <li>More Oracle and MySQL functions are supported, i.e. Oracle <code class="language-plaintext highlighter-rouge">XML</code> function (<a href="https://issues.apache.org/jira/browse/CALCITE-3579">CALCITE-3579</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3580">CALCITE-3580</a>), MySQL math functions (<a href="https://issues.apache.org/jira/browse/CALCITE-3684">CALCITE-3684</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3695">CALCITE-3695</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3707">CALCITE-3707</a>)</li>
 </ul>
 
 <p>We have also fixed some important bugs:</p>
 <ul>
-  <li>The metadata cache is fixed for rare cases that <code class="highlighter-rouge">RelSet</code>s are merging (<a href="https://issues.apache.org/jira/browse/CALCITE-2018">CALCITE-2018</a>)</li>
-  <li>The <code class="highlighter-rouge">GROUP_ID</code> now returns correct results (<a href="https://issues.apache.org/jira/browse/CALCITE-1824">CALCITE-1824</a>)</li>
-  <li><code class="highlighter-rouge">CORRELATE</code> row count estimation has been fixed, it is always 1 before (<a href="https://issues.apache.org/jira/browse/CALCITE-3711">CALCITE-3711</a>)</li>
-  <li>The modulus precision inference of <code class="highlighter-rouge">DECIMAL</code>s has been fixed (<a href="https://issues.apache.org/jira/browse/CALCITE-3435">CALCITE-3435</a>)</li>
+  <li>The metadata cache is fixed for rare cases that <code class="language-plaintext highlighter-rouge">RelSet</code>s are merging (<a href="https://issues.apache.org/jira/browse/CALCITE-2018">CALCITE-2018</a>)</li>
+  <li>The <code class="language-plaintext highlighter-rouge">GROUP_ID</code> now returns correct results (<a href="https://issues.apache.org/jira/browse/CALCITE-1824">CALCITE-1824</a>)</li>
+  <li><code class="language-plaintext highlighter-rouge">CORRELATE</code> row count estimation has been fixed, it is always 1 before (<a href="https://issues.apache.org/jira/browse/CALCITE-3711">CALCITE-3711</a>)</li>
+  <li>The modulus precision inference of <code class="language-plaintext highlighter-rouge">DECIMAL</code>s has been fixed (<a href="https://issues.apache.org/jira/browse/CALCITE-3435">CALCITE-3435</a>)</li>
 </ul>
 
     
@@ -781,16 +781,16 @@
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2302">CALCITE-2302</a>);</li>
   <li>allows transformations of Pig Latin scripts into algebraic plans
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3122">CALCITE-3122</a>);</li>
-  <li>provides an implementation for the main features of <code class="highlighter-rouge">MATCH_RECOGNIZE</code> in the
-<code class="highlighter-rouge">Enumerable</code> convention
+  <li>provides an implementation for the main features of <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> in the
+<code class="language-plaintext highlighter-rouge">Enumerable</code> convention
 (<a href="https://issues.apache.org/jira/browse/CALCITE-1935">CALCITE-1935</a>);</li>
-  <li>supports correlated <code class="highlighter-rouge">ANY</code>/<code class="highlighter-rouge">SOME</code>/<code class="highlighter-rouge">ALL</code> sub-queries
+  <li>supports correlated <code class="language-plaintext highlighter-rouge">ANY</code>/<code class="language-plaintext highlighter-rouge">SOME</code>/<code class="language-plaintext highlighter-rouge">ALL</code> sub-queries
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3031">CALCITE-3031</a>);</li>
-  <li>introduces anonymous types based on <code class="highlighter-rouge">ROW</code>, <code class="highlighter-rouge">ARRAY</code>, and nested collection
+  <li>introduces anonymous types based on <code class="language-plaintext highlighter-rouge">ROW</code>, <code class="language-plaintext highlighter-rouge">ARRAY</code>, and nested collection
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3233">CALCITE-3233</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3231">CALCITE-3231</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3250">CALCITE-3250</a>);</li>
-  <li>brings new join algorithms for the <code class="highlighter-rouge">Enumerable</code> convention
+  <li>brings new join algorithms for the <code class="language-plaintext highlighter-rouge">Enumerable</code> convention
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2979">CALCITE-2979</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-2973">CALCITE-2973</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3284">CALCITE-3284</a>).</li>
@@ -1050,7 +1050,7 @@
 <a href="https://issues.apache.org/jira/browse/CALCITE-2059">read data from Apache Geode</a>
 was added in this release. In addition, more progress has been made for the existing adapters,
 e.g., the Druid adapter can generate
-<a href="https://issues.apache.org/jira/browse/CALCITE-2077"><code class="highlighter-rouge">SCAN</code> queries rather than <code class="highlighter-rouge">SELECT</code> queries</a>
+<a href="https://issues.apache.org/jira/browse/CALCITE-2077"><code class="language-plaintext highlighter-rouge">SCAN</code> queries rather than <code class="language-plaintext highlighter-rouge">SELECT</code> queries</a>
 for more efficient execution and it can push
 <a href="https://issues.apache.org/jira/browse/CALCITE-2170">more work to Druid using its new expressions capabilities</a>,
 and the JDBC adapter now <a href="https://issues.apache.org/jira/browse/CALCITE-2128">supports the SQL dialect used by Jethro Data</a>.</li>
@@ -1112,7 +1112,7 @@
 We know that DDL syntax is a matter of taste, so we added the extensions to a
 <em>new “server” module</em>, leaving the “core” parser unchanged;</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2061">CALCITE-2061</a>]
-allows <em>dynamic parameters</em> in the <code class="highlighter-rouge">LIMIT</code> and <code class="highlighter-rouge">OFFSET</code> and clauses;</li>
+allows <em>dynamic parameters</em> in the <code class="language-plaintext highlighter-rouge">LIMIT</code> and <code class="language-plaintext highlighter-rouge">OFFSET</code> and clauses;</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1913">CALCITE-1913</a>]
 refactors the JDBC adapter to make it easier to <em>plug in a new SQL dialect</em>;</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1616">CALCITE-1616</a>]
@@ -1176,13 +1176,13 @@
 
 <p>This release comes three months after 1.13.0. It includes 68 resolved issues with many improvements and bug fixes.
 This release brings some big new features.
-The <code class="highlighter-rouge">GEOMETRY</code> data type was added along with 35 associated functions as the start of support for Simple Feature Access.
+The <code class="language-plaintext highlighter-rouge">GEOMETRY</code> data type was added along with 35 associated functions as the start of support for Simple Feature Access.
 There are also two new adapters.</p>
 
 <p>Firstly, the Elasticsearch 5 adapter which now exists in parallel with the previous Elasticsearch 2 adapter.
 Additionally there is now an <a href="/docs/os_adapter.html">OS adapter</a> which exposes operating system metrics as relational tables.
-<code class="highlighter-rouge">ThetaSketch</code> and <code class="highlighter-rouge">HyperUnique</code> support has also been added to the Druid adapter.
-Several minor improvements are added as well including improved <code class="highlighter-rouge">MATCH_RECOGNIZE</code> support, quantified comparison predicates, and <code class="highlighter-rouge">ARRAY</code> and <code class="highlighter-rouge">MULTISET</code> support for UDFs.</p>
+<code class="language-plaintext highlighter-rouge">ThetaSketch</code> and <code class="language-plaintext highlighter-rouge">HyperUnique</code> support has also been added to the Druid adapter.
+Several minor improvements are added as well including improved <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> support, quantified comparison predicates, and <code class="language-plaintext highlighter-rouge">ARRAY</code> and <code class="language-plaintext highlighter-rouge">MULTISET</code> support for UDFs.</p>
 
     
     <p>See the <a href="/docs/history.html#v1-14-0">release notes</a>;
@@ -1241,7 +1241,7 @@
 should prove useful for data processing systems relying on Calcite.</p>
 
 <p>In this release, we have also completed the work to
-<a href="https://issues.apache.org/jira/browse/CALCITE-1570">support the <code class="highlighter-rouge">MATCH_RECOGNIZE</code> clause</a>
+<a href="https://issues.apache.org/jira/browse/CALCITE-1570">support the <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> clause</a>
 used in complex-event processing (CEP).</p>
 
 <p>In addition, more progress has been made for the different adapters.
@@ -1357,7 +1357,7 @@
   <li>The <a href="https://issues.apache.org/jira/browse/CALCITE-884">File adapter</a>
 can read files of various formats (such as CSV, JSON, zipped files,
 and HTML) over various protocols (including file and HTTP). If
-reading HTML files, it can extract data from nested <code class="highlighter-rouge">&lt;TABLE&gt;</code>
+reading HTML files, it can extract data from nested <code class="language-plaintext highlighter-rouge">&lt;TABLE&gt;</code>
 elements.</li>
   <li>The <a href="https://issues.apache.org/jira/browse/CALCITE-1598">Pig adapter</a>
 provides a SQL interface to <a href="https://pig.apache.org/">Apache Pig</a>.</li>
@@ -1378,14 +1378,14 @@
 <p>New SQL syntax and functions:</p>
 
 <ul>
-  <li><code class="highlighter-rouge">HOP</code>, <code class="highlighter-rouge">TUMBLE</code> and <code class="highlighter-rouge">SESSION</code> functions in the <code class="highlighter-rouge">GROUP BY</code> clause
+  <li><code class="language-plaintext highlighter-rouge">HOP</code>, <code class="language-plaintext highlighter-rouge">TUMBLE</code> and <code class="language-plaintext highlighter-rouge">SESSION</code> functions in the <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause
 allow you to aggregate over window types (especially useful for
 streaming queries);</li>
-  <li>Experimental support for the <code class="highlighter-rouge">MATCH_RECOGNIZE</code> clause for
+  <li>Experimental support for the <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> clause for
 Complex-Event Processing (CEP);</li>
-  <li>New <code class="highlighter-rouge">YEAR</code>, <code class="highlighter-rouge">MONTH</code>, <code class="highlighter-rouge">WEEK</code>, <code class="highlighter-rouge">DAYOFYEAR</code>, <code class="highlighter-rouge">DAYOFMONTH</code>, <code class="highlighter-rouge">DAYOFWEEK</code>,
-<code class="highlighter-rouge">HOUR</code>, <code class="highlighter-rouge">MINUTE</code>, <code class="highlighter-rouge">SECOND</code>, <code class="highlighter-rouge">DATABASE</code>, <code class="highlighter-rouge">IFNULL</code>, and <code class="highlighter-rouge">USER</code>
-functions to comply with the ODBC/JDBC standard. Also, <code class="highlighter-rouge">EXTRACT</code> now
+  <li>New <code class="language-plaintext highlighter-rouge">YEAR</code>, <code class="language-plaintext highlighter-rouge">MONTH</code>, <code class="language-plaintext highlighter-rouge">WEEK</code>, <code class="language-plaintext highlighter-rouge">DAYOFYEAR</code>, <code class="language-plaintext highlighter-rouge">DAYOFMONTH</code>, <code class="language-plaintext highlighter-rouge">DAYOFWEEK</code>,
+<code class="language-plaintext highlighter-rouge">HOUR</code>, <code class="language-plaintext highlighter-rouge">MINUTE</code>, <code class="language-plaintext highlighter-rouge">SECOND</code>, <code class="language-plaintext highlighter-rouge">DATABASE</code>, <code class="language-plaintext highlighter-rouge">IFNULL</code>, and <code class="language-plaintext highlighter-rouge">USER</code>
+functions to comply with the ODBC/JDBC standard. Also, <code class="language-plaintext highlighter-rouge">EXTRACT</code> now
 allows the corresponding time-unit arguments.</li>
 </ul>
 
@@ -1440,8 +1440,8 @@
 <p>Several adapters have improvements:</p>
 
 <ul>
-  <li>The JDBC adapter can now push down DML (<code class="highlighter-rouge">INSERT</code>, <code class="highlighter-rouge">UPDATE</code>, <code class="highlighter-rouge">DELETE</code>),
-windowed aggregates (<code class="highlighter-rouge">OVER</code>), <code class="highlighter-rouge">IS NULL</code> and <code class="highlighter-rouge">IS NOT NULL</code> operators.</li>
+  <li>The JDBC adapter can now push down DML (<code class="language-plaintext highlighter-rouge">INSERT</code>, <code class="language-plaintext highlighter-rouge">UPDATE</code>, <code class="language-plaintext highlighter-rouge">DELETE</code>),
+windowed aggregates (<code class="language-plaintext highlighter-rouge">OVER</code>), <code class="language-plaintext highlighter-rouge">IS NULL</code> and <code class="language-plaintext highlighter-rouge">IS NOT NULL</code> operators.</li>
   <li>The Cassandra adapter now supports authentication.</li>
   <li>Several key bug-fixes in the Druid adapter.</li>
 </ul>
@@ -1455,24 +1455,24 @@
 <p>New SQL syntax:</p>
 
 <ul>
-  <li><code class="highlighter-rouge">CROSS APPLY</code> and <code class="highlighter-rouge">OUTER APPLY</code>;</li>
-  <li><code class="highlighter-rouge">MINUS</code> as a synonym for <code class="highlighter-rouge">EXCEPT</code>;</li>
-  <li>an <code class="highlighter-rouge">AS JSON</code> option for the <code class="highlighter-rouge">EXPLAIN</code> command;</li>
-  <li>compound identifiers in the target list of <code class="highlighter-rouge">INSERT</code>, allowing you to
+  <li><code class="language-plaintext highlighter-rouge">CROSS APPLY</code> and <code class="language-plaintext highlighter-rouge">OUTER APPLY</code>;</li>
+  <li><code class="language-plaintext highlighter-rouge">MINUS</code> as a synonym for <code class="language-plaintext highlighter-rouge">EXCEPT</code>;</li>
+  <li>an <code class="language-plaintext highlighter-rouge">AS JSON</code> option for the <code class="language-plaintext highlighter-rouge">EXPLAIN</code> command;</li>
+  <li>compound identifiers in the target list of <code class="language-plaintext highlighter-rouge">INSERT</code>, allowing you to
 insert into individual fields of record-valued columns (or column
 families if you are using the Apache Phoenix adapter).</li>
 </ul>
 
-<p>A variety of new and extended built-in functions: <code class="highlighter-rouge">CONVERT</code>, <code class="highlighter-rouge">LTRIM</code>,
-<code class="highlighter-rouge">RTRIM</code>, 3-parameter <code class="highlighter-rouge">LOCATE</code> and <code class="highlighter-rouge">POSITION</code>, <code class="highlighter-rouge">RAND</code>, <code class="highlighter-rouge">RAND_INTEGER</code>,
-and <code class="highlighter-rouge">SUBSTRING</code> applied to binary types.</p>
+<p>A variety of new and extended built-in functions: <code class="language-plaintext highlighter-rouge">CONVERT</code>, <code class="language-plaintext highlighter-rouge">LTRIM</code>,
+<code class="language-plaintext highlighter-rouge">RTRIM</code>, 3-parameter <code class="language-plaintext highlighter-rouge">LOCATE</code> and <code class="language-plaintext highlighter-rouge">POSITION</code>, <code class="language-plaintext highlighter-rouge">RAND</code>, <code class="language-plaintext highlighter-rouge">RAND_INTEGER</code>,
+and <code class="language-plaintext highlighter-rouge">SUBSTRING</code> applied to binary types.</p>
 
 <p>There are minor but potentially breaking API changes in
 [<a href="https://issues.apache.org/jira/browse/CALCITE-1519">CALCITE-1519</a>]
-(interface <code class="highlighter-rouge">SubqueryConverter</code> becomes <code class="highlighter-rouge">SubQueryConverter</code> and some
+(interface <code class="language-plaintext highlighter-rouge">SubqueryConverter</code> becomes <code class="language-plaintext highlighter-rouge">SubQueryConverter</code> and some
 similar changes in the case of classes and methods) and
 [<a href="https://issues.apache.org/jira/browse/CALCITE-1530">CALCITE-1530</a>]
-(rename <code class="highlighter-rouge">Shuttle</code> to <code class="highlighter-rouge">Visitor</code>, and create a new class <code class="highlighter-rouge">Visitor&lt;R&gt;</code>).
+(rename <code class="language-plaintext highlighter-rouge">Shuttle</code> to <code class="language-plaintext highlighter-rouge">Visitor</code>, and create a new class <code class="language-plaintext highlighter-rouge">Visitor&lt;R&gt;</code>).
 See the cases for more details.</p>
 
     
@@ -1574,14 +1574,14 @@
 which demonstrates the good reception of the adapter by that community.</p>
 
 <p>We have added new SQL features too, e.g.,
-<a href="https://issues.apache.org/jira/browse/CALCITE-1309">support for <code class="highlighter-rouge">LATERAL TABLE</code></a>.
+<a href="https://issues.apache.org/jira/browse/CALCITE-1309">support for <code class="language-plaintext highlighter-rouge">LATERAL TABLE</code></a>.
 There are multiple interesting extensions to the planner rules that should contribute to
 obtain better plans, such as
 <a href="https://issues.apache.org/jira/browse/CALCITE-1288">avoiding doing the same join twice</a>
-in the presence of <code class="highlighter-rouge">COUNT DISTINCT</code>, or being able to
+in the presence of <code class="language-plaintext highlighter-rouge">COUNT DISTINCT</code>, or being able to
 <a href="https://issues.apache.org/jira/browse/CALCITE-1220">simplify the expressions</a>
 in the plan further. In addition, we implemented a rule to
-<a href="https://issues.apache.org/jira/browse/CALCITE-1334">convert predicates on <code class="highlighter-rouge">EXTRACT</code> function calls into date ranges</a>.
+<a href="https://issues.apache.org/jira/browse/CALCITE-1334">convert predicates on <code class="language-plaintext highlighter-rouge">EXTRACT</code> function calls into date ranges</a>.
 The rule is not specific to Druid; however, in principle, it will be useful to identify
 filter conditions on the time dimension of Druid data sources.</p>
 
@@ -1637,7 +1637,7 @@
 It is also now easier to
 <a href="https://issues.apache.org/jira/browse/CALCITE-1259">make a JDBC connection based upon a single adapter</a>.</p>
 
-<p>There are several new SQL features: <code class="highlighter-rouge">UNNEST</code> with
+<p>There are several new SQL features: <code class="language-plaintext highlighter-rouge">UNNEST</code> with
 <a href="https://issues.apache.org/jira/browse/CALCITE-855">multiple arguments</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-1250">MAP arguments</a>
 and <a href="https://issues.apache.org/jira/browse/CALCITE-1225">with a JOIN</a>;
@@ -1647,7 +1647,7 @@
 
 <p>We also added support for
 <a href="https://issues.apache.org/jira/browse/CALCITE-1120">SELECT without FROM</a>
-(equivalent to the <code class="highlighter-rouge">VALUES</code> clause, and widely used in MySQL and PostgreSQL),
+(equivalent to the <code class="language-plaintext highlighter-rouge">VALUES</code> clause, and widely used in MySQL and PostgreSQL),
 and added a
 <a href="/docs/adapter.html#jdbc-connect-string-parameters">conformance</a>
 parameter to allow you to selectively enable this and other SQL features.</p>
@@ -1767,13 +1767,13 @@
 
 <p>This release adds an
 <a href="https://issues.apache.org/jira/browse/CALCITE-1066">Oracle-compatibility mode</a>.
-If you add <code class="highlighter-rouge">fun=oracle</code> to your JDBC connect string, you get all of
+If you add <code class="language-plaintext highlighter-rouge">fun=oracle</code> to your JDBC connect string, you get all of
 the standard operators and functions plus Oracle-specific functions
-<code class="highlighter-rouge">DECODE</code>, <code class="highlighter-rouge">NVL</code>, <code class="highlighter-rouge">LTRIM</code>, <code class="highlighter-rouge">RTRIM</code>, <code class="highlighter-rouge">GREATEST</code> and <code class="highlighter-rouge">LEAST</code>. We look
+<code class="language-plaintext highlighter-rouge">DECODE</code>, <code class="language-plaintext highlighter-rouge">NVL</code>, <code class="language-plaintext highlighter-rouge">LTRIM</code>, <code class="language-plaintext highlighter-rouge">RTRIM</code>, <code class="language-plaintext highlighter-rouge">GREATEST</code> and <code class="language-plaintext highlighter-rouge">LEAST</code>. We look
 forward to adding more functions, and compatibility modes for other
 databases, in future releases.</p>
 
-<p>We’ve replaced our use of JUL (<code class="highlighter-rouge">java.util.logging</code>)
+<p>We’ve replaced our use of JUL (<code class="language-plaintext highlighter-rouge">java.util.logging</code>)
 with <a href="https://slf4j.org/">SLF4J</a>. SLF4J provides an API which Calcite can use
 independent of the logging implementation. This ultimately provides additional
 flexibility to users, allowing them to configure Calcite’s logging within their
@@ -1781,9 +1781,9 @@
 [<a href="https://issues.apache.org/jira/browse/CALCITE-669">CALCITE-669</a>].</p>
 
 <p>For users experienced with configuring JUL in Calcite previously, there are some
-differences as some the JUL logging levels do not exist in SLF4J: <code class="highlighter-rouge">FINE</code>,
-<code class="highlighter-rouge">FINER</code>, and <code class="highlighter-rouge">FINEST</code>, specifically. To deal with this, <code class="highlighter-rouge">FINE</code> was mapped
-to SLF4J’s <code class="highlighter-rouge">DEBUG</code> level, while <code class="highlighter-rouge">FINER</code> and <code class="highlighter-rouge">FINEST</code> were mapped to SLF4J’s <code class="highlighter-rouge">TRACE</code>.</p>
+differences as some the JUL logging levels do not exist in SLF4J: <code class="language-plaintext highlighter-rouge">FINE</code>,
+<code class="language-plaintext highlighter-rouge">FINER</code>, and <code class="language-plaintext highlighter-rouge">FINEST</code>, specifically. To deal with this, <code class="language-plaintext highlighter-rouge">FINE</code> was mapped
+to SLF4J’s <code class="language-plaintext highlighter-rouge">DEBUG</code> level, while <code class="language-plaintext highlighter-rouge">FINER</code> and <code class="language-plaintext highlighter-rouge">FINEST</code> were mapped to SLF4J’s <code class="language-plaintext highlighter-rouge">TRACE</code>.</p>
 
     
     <p>See the <a href="/docs/history.html#v1-7-0">release notes</a>;
@@ -1926,7 +1926,7 @@
 couple of features make it easier to handle complex queries.</p>
 
 <p>[<a href="https://issues.apache.org/jira/browse/CALCITE-816">CALCITE-816</a>]
-allows you to represent sub-queries (<code class="highlighter-rouge">EXISTS</code>, <code class="highlighter-rouge">IN</code> and scalar) as
+allows you to represent sub-queries (<code class="language-plaintext highlighter-rouge">EXISTS</code>, <code class="language-plaintext highlighter-rouge">IN</code> and scalar) as
 <a href="/javadocAggregate/org/apache/calcite/rex/RexSubQuery.html">RexSubQuery</a>,
 a kind of expression in the relational algebra. Until
 now, the sql-to-rel converter was burdened with expanding sub-queries,
@@ -1942,10 +1942,10 @@
 expression’s output rows. From the predicates we can deduce which
 columns are constant, and following
 [<a href="https://issues.apache.org/jira/browse/CALCITE-1023">CALCITE-1023</a>]
-we can now remove constant columns from <code class="highlighter-rouge">GROUP BY</code> keys.</p>
+we can now remove constant columns from <code class="language-plaintext highlighter-rouge">GROUP BY</code> keys.</p>
 
 <p>Metadata is often computed recursively, and it is hard to safely and
-efficiently calculate metadata on a graph of <code class="highlighter-rouge">RelNode</code>s that is large,
+efficiently calculate metadata on a graph of <code class="language-plaintext highlighter-rouge">RelNode</code>s that is large,
 frequently cyclic, and constantly changing.
 [<a href="https://issues.apache.org/jira/browse/CALCITE-794">CALCITE-794</a>]
 introduces a context to each metadata call. That context can detect
@@ -2268,19 +2268,19 @@
 
 <p>For example,</p>
 
-<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="n">FrameworkConfig</span> <span class="n">config</span><span class="o">;</span>
-<span class="kd">final</span> <span class="n">RelBuilder</span> <span class="n">builder</span> <span class="o">=</span> <span class="n">RelBuilder</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">config</span><span class="o">);</span>
-<span class="kd">final</span> <span class="n">RelNode</span> <span class="n">node</span> <span class="o">=</span> <span class="n">builder</span>
+<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">final</span> <span class="nc">FrameworkConfig</span> <span class="n">config</span><span class="o">;</span>
+<span class="kd">final</span> <span class="nc">RelBuilder</span> <span class="n">builder</span> <span class="o">=</span> <span class="nc">RelBuilder</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">config</span><span class="o">);</span>
+<span class="kd">final</span> <span class="nc">RelNode</span> <span class="n">node</span> <span class="o">=</span> <span class="n">builder</span>
   <span class="o">.</span><span class="na">scan</span><span class="o">(</span><span class="s">"EMP"</span><span class="o">)</span>
   <span class="o">.</span><span class="na">aggregate</span><span class="o">(</span><span class="n">builder</span><span class="o">.</span><span class="na">groupKey</span><span class="o">(</span><span class="s">"DEPTNO"</span><span class="o">),</span>
       <span class="n">builder</span><span class="o">.</span><span class="na">count</span><span class="o">(</span><span class="kc">false</span><span class="o">,</span> <span class="s">"C"</span><span class="o">),</span>
       <span class="n">builder</span><span class="o">.</span><span class="na">sum</span><span class="o">(</span><span class="kc">false</span><span class="o">,</span> <span class="s">"S"</span><span class="o">,</span> <span class="n">builder</span><span class="o">.</span><span class="na">field</span><span class="o">(</span><span class="s">"SAL"</span><span class="o">)))</span>
   <span class="o">.</span><span class="na">filter</span><span class="o">(</span>
-      <span class="n">builder</span><span class="o">.</span><span class="na">call</span><span class="o">(</span><span class="n">SqlStdOperatorTable</span><span class="o">.</span><span class="na">GREATER_THAN</span><span class="o">,</span>
+      <span class="n">builder</span><span class="o">.</span><span class="na">call</span><span class="o">(</span><span class="nc">SqlStdOperatorTable</span><span class="o">.</span><span class="na">GREATER_THAN</span><span class="o">,</span>
           <span class="n">builder</span><span class="o">.</span><span class="na">field</span><span class="o">(</span><span class="s">"C"</span><span class="o">),</span>
           <span class="n">builder</span><span class="o">.</span><span class="na">literal</span><span class="o">(</span><span class="mi">10</span><span class="o">)))</span>
   <span class="o">.</span><span class="na">build</span><span class="o">();</span>
-<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">RelOptUtil</span><span class="o">.</span><span class="na">toString</span><span class="o">(</span><span class="n">node</span><span class="o">));</span></code></pre></figure>
+<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">RelOptUtil</span><span class="o">.</span><span class="na">toString</span><span class="o">(</span><span class="n">node</span><span class="o">));</span></code></pre></figure>
 
 <p>creates the algebra</p>
 
@@ -2444,7 +2444,7 @@
 <p>A short release, less than a month after 1.1.</p>
 
 <p>There have been many changes to Avatica, hugely improving its coverage of the
-JDBC API and overall robustness. A new provider, <code class="highlighter-rouge">JdbcMeta</code>, allows
+JDBC API and overall robustness. A new provider, <code class="language-plaintext highlighter-rouge">JdbcMeta</code>, allows
 you to remote an existing JDBC driver.</p>
 
 <p>[<a href="https://issues.apache.org/jira/browse/CALCITE-606">CALCITE-606</a>]
@@ -2496,7 +2496,7 @@
 
 <p>This Calcite release makes it possible to exploit physical properties
 of relational expressions to produce more efficient plans, introducing
-collation and distribution as traits, <code class="highlighter-rouge">Exchange</code> relational operator,
+collation and distribution as traits, <code class="language-plaintext highlighter-rouge">Exchange</code> relational operator,
 and several new forms of metadata.</p>
 
 <p>We add experimental support for streaming SQL.</p>
@@ -2504,8 +2504,8 @@
 <p>This release drops support for JDK 1.6; Calcite now requires 1.7 or
 later.</p>
 
-<p>We have introduced static <code class="highlighter-rouge">create</code> methods for many sub-classes of
-<code class="highlighter-rouge">RelNode</code>. We strongly suggest that you use these rather than
+<p>We have introduced static <code class="language-plaintext highlighter-rouge">create</code> methods for many sub-classes of
+<code class="language-plaintext highlighter-rouge">RelNode</code>. We strongly suggest that you use these rather than
 calling constructors directly.</p>
 
     
@@ -2549,13 +2549,13 @@
 
 <p>Calcite’s first major release.</p>
 
-<p>Since the previous release we have re-organized the into the <code class="highlighter-rouge">org.apache.calcite</code>
+<p>Since the previous release we have re-organized the into the <code class="language-plaintext highlighter-rouge">org.apache.calcite</code>
 namespace. To make migration of your code easier, we have described the
 <a href="https://issues.apache.org/jira/secure/attachment/12681620/mapping.txt">mapping from old to new class names</a>
 as an attachment to
 [<a href="https://issues.apache.org/jira/browse/CALCITE-296">CALCITE-296</a>].</p>
 
-<p>The release adds SQL support for <code class="highlighter-rouge">GROUPING SETS</code>, <code class="highlighter-rouge">EXTEND</code>, <code class="highlighter-rouge">UPSERT</code> and sequences;
+<p>The release adds SQL support for <code class="language-plaintext highlighter-rouge">GROUPING SETS</code>, <code class="language-plaintext highlighter-rouge">EXTEND</code>, <code class="language-plaintext highlighter-rouge">UPSERT</code> and sequences;
 a remote JDBC driver;
 improvements to the planner engine and built-in planner rules;
 improvements to the algorithms that implement the relational algebra,
@@ -2808,7 +2808,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache&nbsp;License&nbsp;v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>
 
diff --git a/news/releases/index.html b/news/releases/index.html
index 93ccca1..2ae064d 100644
--- a/news/releases/index.html
+++ b/news/releases/index.html
@@ -4,7 +4,7 @@
   <meta charset="UTF-8">
   <title>Releases</title>
   <meta name="viewport" content="width=device-width,initial-scale=1">
-  <meta name="generator" content="Jekyll v3.7.3">
+  <meta name="generator" content="Jekyll v4.2.2">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
   <link rel="stylesheet" href="/css/screen.css">
   <link rel="icon" type="image/x-icon" href="/favicon.ico">
@@ -277,7 +277,7 @@
 <p>In 1.28, Calcite converted the recently introduced
 <a href="https://issues.apache.org/jira/browse/CALCITE-3328">configuration system</a>
 from an internal system based on
-<a href="https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/util/ImmutableBeans.java">ImmutableBeans</a>
+<a href="https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/util/ImmutableBeans.java">ImmutableBeans</a>
 to instead use the <a href="https://immutables.github.io/">Immutables</a>
 annotation processor. This library brings a large number of additional
 features that should make value-type classes in Calcite easier to
@@ -291,42 +291,42 @@
 changes needed to be made:</p>
 <ul>
   <li>The
-<a href="https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/plan/RelRule.java#L125">RelRule.Config.EMPTY</a>
+<a href="https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/plan/RelRule.java#L125">RelRule.Config.EMPTY</a>
 field is now deprecated. To create a new configuration subclass, you
 can either use your preferred interface-implementation based
 construction or you can leverage Immutables. To do the latter,
 <a href="https://immutables.github.io/getstarted.html">configure your project</a>
 to use the Immutables annotation processor and annotate your
 subclass with the
-<a href="https://immutables.github.io/immutable.html#value"><code class="highlighter-rouge">@Value.Immutable</code></a>
+<a href="https://immutables.github.io/immutable.html#value"><code class="language-plaintext highlighter-rouge">@Value.Immutable</code></a>
 annotation.</li>
-  <li>Where <code class="highlighter-rouge">RelRule.Config</code> subclasses were nested 2+ classes deep, the
+  <li>Where <code class="language-plaintext highlighter-rouge">RelRule.Config</code> subclasses were nested 2+ classes deep, the
 interfaces have been marked deprecated and are superceded by new,
 uniquely named interfaces. The original Configs extend the new
 uniquely named interfaces. Subclassing these work as before and the
 existing rule signatures accept any previously implemented Config
 implementations. However, this is a breaking change if a user stored
-an instance of the <code class="highlighter-rouge">DEFAULT</code> object using the Config class name (as
-the <code class="highlighter-rouge">DEFAULT</code> instance now only implements the uniquely named
+an instance of the <code class="language-plaintext highlighter-rouge">DEFAULT</code> object using the Config class name (as
+the <code class="language-plaintext highlighter-rouge">DEFAULT</code> instance now only implements the uniquely named
 interface).</li>
-  <li>The <code class="highlighter-rouge">RelRule.Config.as()</code> method should only be used for safe
+  <li>The <code class="language-plaintext highlighter-rouge">RelRule.Config.as()</code> method should only be used for safe
 downcasts. Before, it could do arbitrary casts. The exception is
-that arbitrary <code class="highlighter-rouge">as()</code> will continue to work when using the
-deprecated <code class="highlighter-rouge">RelRule.Config.EMPTY</code> field. In most cases, this should
-be a non-breaking change. However, all Calcite-defined <code class="highlighter-rouge">DEFAULT</code>
+that arbitrary <code class="language-plaintext highlighter-rouge">as()</code> will continue to work when using the
+deprecated <code class="language-plaintext highlighter-rouge">RelRule.Config.EMPTY</code> field. In most cases, this should
+be a non-breaking change. However, all Calcite-defined <code class="language-plaintext highlighter-rouge">DEFAULT</code>
 rule config instances use Immutables. As such, if one had previously
-subclassed a <code class="highlighter-rouge">RelRule.Config</code> subclass and then used the <code class="highlighter-rouge">DEFAULT</code>
-instance from that subclass, the <code class="highlighter-rouge">as()</code> call will no longer work to
-coerce the <code class="highlighter-rouge">DEFAULT</code> instance into a arbitrary subclass. In essence,
-outside the <code class="highlighter-rouge">EMPTY</code> use, <code class="highlighter-rouge">as()</code> is now only safe to do if a Java
+subclassed a <code class="language-plaintext highlighter-rouge">RelRule.Config</code> subclass and then used the <code class="language-plaintext highlighter-rouge">DEFAULT</code>
+instance from that subclass, the <code class="language-plaintext highlighter-rouge">as()</code> call will no longer work to
+coerce the <code class="language-plaintext highlighter-rouge">DEFAULT</code> instance into a arbitrary subclass. In essence,
+outside the <code class="language-plaintext highlighter-rouge">EMPTY</code> use, <code class="language-plaintext highlighter-rouge">as()</code> is now only safe to do if a Java
 cast is also safe.</li>
-  <li><code class="highlighter-rouge">ExchangeRemoveConstantKeysRule.Config</code> and
-<code class="highlighter-rouge">ValuesReduceRule.Config</code> now declare concrete bounds for their
+  <li><code class="language-plaintext highlighter-rouge">ExchangeRemoveConstantKeysRule.Config</code> and
+<code class="language-plaintext highlighter-rouge">ValuesReduceRule.Config</code> now declare concrete bounds for their
 matchHandler configuration. This is a breaking change if one did not
 use the Rule as a bounding variable.</li>
   <li>Collections used in Immutables value classes will be converted to
 Immutable collection types even if the passed in parameter is
-mutable (such as an <code class="highlighter-rouge">ArrayList</code>). As such, consumers of those
+mutable (such as an <code class="language-plaintext highlighter-rouge">ArrayList</code>). As such, consumers of those
 configuration properties cannot mutate the returned collections.</li>
 </ul>
 
@@ -431,9 +431,9 @@
 is pleased to announce
 <a href="/docs/history.html#v1-26-0">Apache Calcite release 1.26.0</a>.</p>
 
-<p><strong>Warning:</strong> Calcite 1.26.0 has <strong>severe</strong> issues with <code class="highlighter-rouge">RexNode</code> simplification caused by <code class="highlighter-rouge">SEARCH operator</code> (
+<p><strong>Warning:</strong> Calcite 1.26.0 has <strong>severe</strong> issues with <code class="language-plaintext highlighter-rouge">RexNode</code> simplification caused by <code class="language-plaintext highlighter-rouge">SEARCH operator</code> (
 wrong data from query optimization like in <a href="https://issues.apache.org/jira/browse/CALCITE-4325">CALCITE-4325</a>,
-<a href="https://issues.apache.org/jira/browse/CALCITE-4352">CALCITE-4352</a>, <code class="highlighter-rouge">NullPointerException</code>),
+<a href="https://issues.apache.org/jira/browse/CALCITE-4352">CALCITE-4352</a>, <code class="language-plaintext highlighter-rouge">NullPointerException</code>),
 so use 1.26.0 for development only, and beware that Calcite 1.26.0 might corrupt your data.</p>
 
 <p>This release comes about two months after 1.25.0 and includes more than 70 resolved
@@ -496,7 +496,7 @@
 
 <ul>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-4134">Interval Expressions</a>
-(e.g. <code class="highlighter-rouge">INTERVAL '1' HOUR</code>, <code class="highlighter-rouge">INTERVAL -'1:2' HOUR TO MINUTE</code>)</li>
+(e.g. <code class="language-plaintext highlighter-rouge">INTERVAL '1' HOUR</code>, <code class="language-plaintext highlighter-rouge">INTERVAL -'1:2' HOUR TO MINUTE</code>)</li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-4080">Character Literals as Aliases</a></li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-3923">Refactor How Planner Rules are Parameterized</a></li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-2160">Spacial Functions</a></li>
@@ -551,7 +551,7 @@
 
 <ul>
   <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-3916">top-down rule applying and upper bound space pruning</a></li>
-  <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-4000">OFFSET</a> parameter in <code class="highlighter-rouge">TUMBLE/HOP</code>
+  <li>Support <a href="https://issues.apache.org/jira/browse/CALCITE-4000">OFFSET</a> parameter in <code class="language-plaintext highlighter-rouge">TUMBLE/HOP</code>
 table functions</li>
   <li>A new <a href="https://issues.apache.org/jira/browse/CALCITE-3724">Presto dialect implementation</a></li>
   <li><a href="https://issues.apache.org/jira/browse/CALCITE-4087">Hoist</a>, a utility to replace literals in a
@@ -610,13 +610,13 @@
 <ul>
   <li>Supports top down trait request and trait enforcement without abstract converter
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3896">CALCITE-3896</a>)</li>
-  <li>Improves <code class="highlighter-rouge">VolcanoPlanner</code> performance by removing rule match and subset importance
+  <li>Improves <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> performance by removing rule match and subset importance
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3753">CALCITE-3753</a>)</li>
-  <li>Improves <code class="highlighter-rouge">VolcanoPlanner</code> performance when abstract converter is enabled
+  <li>Improves <code class="language-plaintext highlighter-rouge">VolcanoPlanner</code> performance when abstract converter is enabled
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2970">CALCITE-2970</a>)</li>
   <li>Supports ClickHouse dialect
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2157">CALCITE-2157</a>)</li>
-  <li>Supports <code class="highlighter-rouge">SESSION</code> and <code class="highlighter-rouge">HOP</code> Table function
+  <li>Supports <code class="language-plaintext highlighter-rouge">SESSION</code> and <code class="language-plaintext highlighter-rouge">HOP</code> Table function
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3780">CALCITE-3780</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3737">CALCITE-3737</a>)</li>
 </ul>
@@ -669,15 +669,15 @@
 <ul>
   <li>Supports SQL hints for different kind of relational expressions (<a href="https://issues.apache.org/jira/browse/CALCITE-482">CALCITE-482</a>)</li>
   <li>A new Redis adaptor (<a href="https://issues.apache.org/jira/browse/CALCITE-3510">CALCITE-3510</a>)</li>
-  <li>More Oracle and MySQL functions are supported, i.e. Oracle <code class="highlighter-rouge">XML</code> function (<a href="https://issues.apache.org/jira/browse/CALCITE-3579">CALCITE-3579</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3580">CALCITE-3580</a>), MySQL math functions (<a href="https://issues.apache.org/jira/browse/CALCITE-3684">CALCITE-3684</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3695">CALCITE-3695</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3707">CALCITE-3707</a>)</li>
+  <li>More Oracle and MySQL functions are supported, i.e. Oracle <code class="language-plaintext highlighter-rouge">XML</code> function (<a href="https://issues.apache.org/jira/browse/CALCITE-3579">CALCITE-3579</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3580">CALCITE-3580</a>), MySQL math functions (<a href="https://issues.apache.org/jira/browse/CALCITE-3684">CALCITE-3684</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3695">CALCITE-3695</a>, <a href="https://issues.apache.org/jira/browse/CALCITE-3707">CALCITE-3707</a>)</li>
 </ul>
 
 <p>We have also fixed some important bugs:</p>
 <ul>
-  <li>The metadata cache is fixed for rare cases that <code class="highlighter-rouge">RelSet</code>s are merging (<a href="https://issues.apache.org/jira/browse/CALCITE-2018">CALCITE-2018</a>)</li>
-  <li>The <code class="highlighter-rouge">GROUP_ID</code> now returns correct results (<a href="https://issues.apache.org/jira/browse/CALCITE-1824">CALCITE-1824</a>)</li>
-  <li><code class="highlighter-rouge">CORRELATE</code> row count estimation has been fixed, it is always 1 before (<a href="https://issues.apache.org/jira/browse/CALCITE-3711">CALCITE-3711</a>)</li>
-  <li>The modulus precision inference of <code class="highlighter-rouge">DECIMAL</code>s has been fixed (<a href="https://issues.apache.org/jira/browse/CALCITE-3435">CALCITE-3435</a>)</li>
+  <li>The metadata cache is fixed for rare cases that <code class="language-plaintext highlighter-rouge">RelSet</code>s are merging (<a href="https://issues.apache.org/jira/browse/CALCITE-2018">CALCITE-2018</a>)</li>
+  <li>The <code class="language-plaintext highlighter-rouge">GROUP_ID</code> now returns correct results (<a href="https://issues.apache.org/jira/browse/CALCITE-1824">CALCITE-1824</a>)</li>
+  <li><code class="language-plaintext highlighter-rouge">CORRELATE</code> row count estimation has been fixed, it is always 1 before (<a href="https://issues.apache.org/jira/browse/CALCITE-3711">CALCITE-3711</a>)</li>
+  <li>The modulus precision inference of <code class="language-plaintext highlighter-rouge">DECIMAL</code>s has been fixed (<a href="https://issues.apache.org/jira/browse/CALCITE-3435">CALCITE-3435</a>)</li>
 </ul>
 
     
@@ -733,16 +733,16 @@
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2302">CALCITE-2302</a>);</li>
   <li>allows transformations of Pig Latin scripts into algebraic plans
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3122">CALCITE-3122</a>);</li>
-  <li>provides an implementation for the main features of <code class="highlighter-rouge">MATCH_RECOGNIZE</code> in the
-<code class="highlighter-rouge">Enumerable</code> convention
+  <li>provides an implementation for the main features of <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> in the
+<code class="language-plaintext highlighter-rouge">Enumerable</code> convention
 (<a href="https://issues.apache.org/jira/browse/CALCITE-1935">CALCITE-1935</a>);</li>
-  <li>supports correlated <code class="highlighter-rouge">ANY</code>/<code class="highlighter-rouge">SOME</code>/<code class="highlighter-rouge">ALL</code> sub-queries
+  <li>supports correlated <code class="language-plaintext highlighter-rouge">ANY</code>/<code class="language-plaintext highlighter-rouge">SOME</code>/<code class="language-plaintext highlighter-rouge">ALL</code> sub-queries
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3031">CALCITE-3031</a>);</li>
-  <li>introduces anonymous types based on <code class="highlighter-rouge">ROW</code>, <code class="highlighter-rouge">ARRAY</code>, and nested collection
+  <li>introduces anonymous types based on <code class="language-plaintext highlighter-rouge">ROW</code>, <code class="language-plaintext highlighter-rouge">ARRAY</code>, and nested collection
 (<a href="https://issues.apache.org/jira/browse/CALCITE-3233">CALCITE-3233</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3231">CALCITE-3231</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3250">CALCITE-3250</a>);</li>
-  <li>brings new join algorithms for the <code class="highlighter-rouge">Enumerable</code> convention
+  <li>brings new join algorithms for the <code class="language-plaintext highlighter-rouge">Enumerable</code> convention
 (<a href="https://issues.apache.org/jira/browse/CALCITE-2979">CALCITE-2979</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-2973">CALCITE-2973</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-3284">CALCITE-3284</a>).</li>
@@ -1002,7 +1002,7 @@
 <a href="https://issues.apache.org/jira/browse/CALCITE-2059">read data from Apache Geode</a>
 was added in this release. In addition, more progress has been made for the existing adapters,
 e.g., the Druid adapter can generate
-<a href="https://issues.apache.org/jira/browse/CALCITE-2077"><code class="highlighter-rouge">SCAN</code> queries rather than <code class="highlighter-rouge">SELECT</code> queries</a>
+<a href="https://issues.apache.org/jira/browse/CALCITE-2077"><code class="language-plaintext highlighter-rouge">SCAN</code> queries rather than <code class="language-plaintext highlighter-rouge">SELECT</code> queries</a>
 for more efficient execution and it can push
 <a href="https://issues.apache.org/jira/browse/CALCITE-2170">more work to Druid using its new expressions capabilities</a>,
 and the JDBC adapter now <a href="https://issues.apache.org/jira/browse/CALCITE-2128">supports the SQL dialect used by Jethro Data</a>.</li>
@@ -1064,7 +1064,7 @@
 We know that DDL syntax is a matter of taste, so we added the extensions to a
 <em>new “server” module</em>, leaving the “core” parser unchanged;</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2061">CALCITE-2061</a>]
-allows <em>dynamic parameters</em> in the <code class="highlighter-rouge">LIMIT</code> and <code class="highlighter-rouge">OFFSET</code> and clauses;</li>
+allows <em>dynamic parameters</em> in the <code class="language-plaintext highlighter-rouge">LIMIT</code> and <code class="language-plaintext highlighter-rouge">OFFSET</code> and clauses;</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1913">CALCITE-1913</a>]
 refactors the JDBC adapter to make it easier to <em>plug in a new SQL dialect</em>;</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1616">CALCITE-1616</a>]
@@ -1128,13 +1128,13 @@
 
 <p>This release comes three months after 1.13.0. It includes 68 resolved issues with many improvements and bug fixes.
 This release brings some big new features.
-The <code class="highlighter-rouge">GEOMETRY</code> data type was added along with 35 associated functions as the start of support for Simple Feature Access.
+The <code class="language-plaintext highlighter-rouge">GEOMETRY</code> data type was added along with 35 associated functions as the start of support for Simple Feature Access.
 There are also two new adapters.</p>
 
 <p>Firstly, the Elasticsearch 5 adapter which now exists in parallel with the previous Elasticsearch 2 adapter.
 Additionally there is now an <a href="/docs/os_adapter.html">OS adapter</a> which exposes operating system metrics as relational tables.
-<code class="highlighter-rouge">ThetaSketch</code> and <code class="highlighter-rouge">HyperUnique</code> support has also been added to the Druid adapter.
-Several minor improvements are added as well including improved <code class="highlighter-rouge">MATCH_RECOGNIZE</code> support, quantified comparison predicates, and <code class="highlighter-rouge">ARRAY</code> and <code class="highlighter-rouge">MULTISET</code> support for UDFs.</p>
+<code class="language-plaintext highlighter-rouge">ThetaSketch</code> and <code class="language-plaintext highlighter-rouge">HyperUnique</code> support has also been added to the Druid adapter.
+Several minor improvements are added as well including improved <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> support, quantified comparison predicates, and <code class="language-plaintext highlighter-rouge">ARRAY</code> and <code class="language-plaintext highlighter-rouge">MULTISET</code> support for UDFs.</p>
 
     
     <p>See the <a href="/docs/history.html#v1-14-0">release notes</a>;
@@ -1193,7 +1193,7 @@
 should prove useful for data processing systems relying on Calcite.</p>
 
 <p>In this release, we have also completed the work to
-<a href="https://issues.apache.org/jira/browse/CALCITE-1570">support the <code class="highlighter-rouge">MATCH_RECOGNIZE</code> clause</a>
+<a href="https://issues.apache.org/jira/browse/CALCITE-1570">support the <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> clause</a>
 used in complex-event processing (CEP).</p>
 
 <p>In addition, more progress has been made for the different adapters.
@@ -1260,7 +1260,7 @@
   <li>The <a href="https://issues.apache.org/jira/browse/CALCITE-884">File adapter</a>
 can read files of various formats (such as CSV, JSON, zipped files,
 and HTML) over various protocols (including file and HTTP). If
-reading HTML files, it can extract data from nested <code class="highlighter-rouge">&lt;TABLE&gt;</code>
+reading HTML files, it can extract data from nested <code class="language-plaintext highlighter-rouge">&lt;TABLE&gt;</code>
 elements.</li>
   <li>The <a href="https://issues.apache.org/jira/browse/CALCITE-1598">Pig adapter</a>
 provides a SQL interface to <a href="https://pig.apache.org/">Apache Pig</a>.</li>
@@ -1281,14 +1281,14 @@
 <p>New SQL syntax and functions:</p>
 
 <ul>
-  <li><code class="highlighter-rouge">HOP</code>, <code class="highlighter-rouge">TUMBLE</code> and <code class="highlighter-rouge">SESSION</code> functions in the <code class="highlighter-rouge">GROUP BY</code> clause
+  <li><code class="language-plaintext highlighter-rouge">HOP</code>, <code class="language-plaintext highlighter-rouge">TUMBLE</code> and <code class="language-plaintext highlighter-rouge">SESSION</code> functions in the <code class="language-plaintext highlighter-rouge">GROUP BY</code> clause
 allow you to aggregate over window types (especially useful for
 streaming queries);</li>
-  <li>Experimental support for the <code class="highlighter-rouge">MATCH_RECOGNIZE</code> clause for
+  <li>Experimental support for the <code class="language-plaintext highlighter-rouge">MATCH_RECOGNIZE</code> clause for
 Complex-Event Processing (CEP);</li>
-  <li>New <code class="highlighter-rouge">YEAR</code>, <code class="highlighter-rouge">MONTH</code>, <code class="highlighter-rouge">WEEK</code>, <code class="highlighter-rouge">DAYOFYEAR</code>, <code class="highlighter-rouge">DAYOFMONTH</code>, <code class="highlighter-rouge">DAYOFWEEK</code>,
-<code class="highlighter-rouge">HOUR</code>, <code class="highlighter-rouge">MINUTE</code>, <code class="highlighter-rouge">SECOND</code>, <code class="highlighter-rouge">DATABASE</code>, <code class="highlighter-rouge">IFNULL</code>, and <code class="highlighter-rouge">USER</code>
-functions to comply with the ODBC/JDBC standard. Also, <code class="highlighter-rouge">EXTRACT</code> now
+  <li>New <code class="language-plaintext highlighter-rouge">YEAR</code>, <code class="language-plaintext highlighter-rouge">MONTH</code>, <code class="language-plaintext highlighter-rouge">WEEK</code>, <code class="language-plaintext highlighter-rouge">DAYOFYEAR</code>, <code class="language-plaintext highlighter-rouge">DAYOFMONTH</code>, <code class="language-plaintext highlighter-rouge">DAYOFWEEK</code>,
+<code class="language-plaintext highlighter-rouge">HOUR</code>, <code class="language-plaintext highlighter-rouge">MINUTE</code>, <code class="language-plaintext highlighter-rouge">SECOND</code>, <code class="language-plaintext highlighter-rouge">DATABASE</code>, <code class="language-plaintext highlighter-rouge">IFNULL</code>, and <code class="language-plaintext highlighter-rouge">USER</code>
+functions to comply with the ODBC/JDBC standard. Also, <code class="language-plaintext highlighter-rouge">EXTRACT</code> now
 allows the corresponding time-unit arguments.</li>
 </ul>
 
@@ -1343,8 +1343,8 @@
 <p>Several adapters have improvements:</p>
 
 <ul>
-  <li>The JDBC adapter can now push down DML (<code class="highlighter-rouge">INSERT</code>, <code class="highlighter-rouge">UPDATE</code>, <code class="highlighter-rouge">DELETE</code>),
-windowed aggregates (<code class="highlighter-rouge">OVER</code>), <code class="highlighter-rouge">IS NULL</code> and <code class="highlighter-rouge">IS NOT NULL</code> operators.</li>
+  <li>The JDBC adapter can now push down DML (<code class="language-plaintext highlighter-rouge">INSERT</code>, <code class="language-plaintext highlighter-rouge">UPDATE</code>, <code class="language-plaintext highlighter-rouge">DELETE</code>),
+windowed aggregates (<code class="language-plaintext highlighter-rouge">OVER</code>), <code class="language-plaintext highlighter-rouge">IS NULL</code> and <code class="language-plaintext highlighter-rouge">IS NOT NULL</code> operators.</li>
   <li>The Cassandra adapter now supports authentication.</li>
   <li>Several key bug-fixes in the Druid adapter.</li>
 </ul>
@@ -1358,24 +1358,24 @@
 <p>New SQL syntax:</p>
 
 <ul>
-  <li><code class="highlighter-rouge">CROSS APPLY</code> and <code class="highlighter-rouge">OUTER APPLY</code>;</li>
-  <li><code class="highlighter-rouge">MINUS</code> as a synonym for <code class="highlighter-rouge">EXCEPT</code>;</li>
-  <li>an <code class="highlighter-rouge">AS JSON</code> option for the <code class="highlighter-rouge">EXPLAIN</code> command;</li>
-  <li>compound identifiers in the target list of <code class="highlighter-rouge">INSERT</code>, allowing you to
+  <li><code class="language-plaintext highlighter-rouge">CROSS APPLY</code> and <code class="language-plaintext highlighter-rouge">OUTER APPLY</code>;</li>
+  <li><code class="language-plaintext highlighter-rouge">MINUS</code> as a synonym for <code class="language-plaintext highlighter-rouge">EXCEPT</code>;</li>
+  <li>an <code class="language-plaintext highlighter-rouge">AS JSON</code> option for the <code class="language-plaintext highlighter-rouge">EXPLAIN</code> command;</li>
+  <li>compound identifiers in the target list of <code class="language-plaintext highlighter-rouge">INSERT</code>, allowing you to
 insert into individual fields of record-valued columns (or column
 families if you are using the Apache Phoenix adapter).</li>
 </ul>
 
-<p>A variety of new and extended built-in functions: <code class="highlighter-rouge">CONVERT</code>, <code class="highlighter-rouge">LTRIM</code>,
-<code class="highlighter-rouge">RTRIM</code>, 3-parameter <code class="highlighter-rouge">LOCATE</code> and <code class="highlighter-rouge">POSITION</code>, <code class="highlighter-rouge">RAND</code>, <code class="highlighter-rouge">RAND_INTEGER</code>,
-and <code class="highlighter-rouge">SUBSTRING</code> applied to binary types.</p>
+<p>A variety of new and extended built-in functions: <code class="language-plaintext highlighter-rouge">CONVERT</code>, <code class="language-plaintext highlighter-rouge">LTRIM</code>,
+<code class="language-plaintext highlighter-rouge">RTRIM</code>, 3-parameter <code class="language-plaintext highlighter-rouge">LOCATE</code> and <code class="language-plaintext highlighter-rouge">POSITION</code>, <code class="language-plaintext highlighter-rouge">RAND</code>, <code class="language-plaintext highlighter-rouge">RAND_INTEGER</code>,
+and <code class="language-plaintext highlighter-rouge">SUBSTRING</code> applied to binary types.</p>
 
 <p>There are minor but potentially breaking API changes in
 [<a href="https://issues.apache.org/jira/browse/CALCITE-1519">CALCITE-1519</a>]
-(interface <code class="highlighter-rouge">SubqueryConverter</code> becomes <code class="highlighter-rouge">SubQueryConverter</code> and some
+(interface <code class="language-plaintext highlighter-rouge">SubqueryConverter</code> becomes <code class="language-plaintext highlighter-rouge">SubQueryConverter</code> and some
 similar changes in the case of classes and methods) and
 [<a href="https://issues.apache.org/jira/browse/CALCITE-1530">CALCITE-1530</a>]
-(rename <code class="highlighter-rouge">Shuttle</code> to <code class="highlighter-rouge">Visitor</code>, and create a new class <code class="highlighter-rouge">Visitor&lt;R&gt;</code>).
+(rename <code class="language-plaintext highlighter-rouge">Shuttle</code> to <code class="language-plaintext highlighter-rouge">Visitor</code>, and create a new class <code class="language-plaintext highlighter-rouge">Visitor&lt;R&gt;</code>).
 See the cases for more details.</p>
 
     
@@ -1477,14 +1477,14 @@
 which demonstrates the good reception of the adapter by that community.</p>
 
 <p>We have added new SQL features too, e.g.,
-<a href="https://issues.apache.org/jira/browse/CALCITE-1309">support for <code class="highlighter-rouge">LATERAL TABLE</code></a>.
+<a href="https://issues.apache.org/jira/browse/CALCITE-1309">support for <code class="language-plaintext highlighter-rouge">LATERAL TABLE</code></a>.
 There are multiple interesting extensions to the planner rules that should contribute to
 obtain better plans, such as
 <a href="https://issues.apache.org/jira/browse/CALCITE-1288">avoiding doing the same join twice</a>
-in the presence of <code class="highlighter-rouge">COUNT DISTINCT</code>, or being able to
+in the presence of <code class="language-plaintext highlighter-rouge">COUNT DISTINCT</code>, or being able to
 <a href="https://issues.apache.org/jira/browse/CALCITE-1220">simplify the expressions</a>
 in the plan further. In addition, we implemented a rule to
-<a href="https://issues.apache.org/jira/browse/CALCITE-1334">convert predicates on <code class="highlighter-rouge">EXTRACT</code> function calls into date ranges</a>.
+<a href="https://issues.apache.org/jira/browse/CALCITE-1334">convert predicates on <code class="language-plaintext highlighter-rouge">EXTRACT</code> function calls into date ranges</a>.
 The rule is not specific to Druid; however, in principle, it will be useful to identify
 filter conditions on the time dimension of Druid data sources.</p>
 
@@ -1540,7 +1540,7 @@
 It is also now easier to
 <a href="https://issues.apache.org/jira/browse/CALCITE-1259">make a JDBC connection based upon a single adapter</a>.</p>
 
-<p>There are several new SQL features: <code class="highlighter-rouge">UNNEST</code> with
+<p>There are several new SQL features: <code class="language-plaintext highlighter-rouge">UNNEST</code> with
 <a href="https://issues.apache.org/jira/browse/CALCITE-855">multiple arguments</a>,
 <a href="https://issues.apache.org/jira/browse/CALCITE-1250">MAP arguments</a>
 and <a href="https://issues.apache.org/jira/browse/CALCITE-1225">with a JOIN</a>;
@@ -1550,7 +1550,7 @@
 
 <p>We also added support for
 <a href="https://issues.apache.org/jira/browse/CALCITE-1120">SELECT without FROM</a>
-(equivalent to the <code class="highlighter-rouge">VALUES</code> clause, and widely used in MySQL and PostgreSQL),
+(equivalent to the <code class="language-plaintext highlighter-rouge">VALUES</code> clause, and widely used in MySQL and PostgreSQL),
 and added a
 <a href="/docs/adapter.html#jdbc-connect-string-parameters">conformance</a>
 parameter to allow you to selectively enable this and other SQL features.</p>
@@ -1616,13 +1616,13 @@
 
 <p>This release adds an
 <a href="https://issues.apache.org/jira/browse/CALCITE-1066">Oracle-compatibility mode</a>.
-If you add <code class="highlighter-rouge">fun=oracle</code> to your JDBC connect string, you get all of
+If you add <code class="language-plaintext highlighter-rouge">fun=oracle</code> to your JDBC connect string, you get all of
 the standard operators and functions plus Oracle-specific functions
-<code class="highlighter-rouge">DECODE</code>, <code class="highlighter-rouge">NVL</code>, <code class="highlighter-rouge">LTRIM</code>, <code class="highlighter-rouge">RTRIM</code>, <code class="highlighter-rouge">GREATEST</code> and <code class="highlighter-rouge">LEAST</code>. We look
+<code class="language-plaintext highlighter-rouge">DECODE</code>, <code class="language-plaintext highlighter-rouge">NVL</code>, <code class="language-plaintext highlighter-rouge">LTRIM</code>, <code class="language-plaintext highlighter-rouge">RTRIM</code>, <code class="language-plaintext highlighter-rouge">GREATEST</code> and <code class="language-plaintext highlighter-rouge">LEAST</code>. We look
 forward to adding more functions, and compatibility modes for other
 databases, in future releases.</p>
 
-<p>We’ve replaced our use of JUL (<code class="highlighter-rouge">java.util.logging</code>)
+<p>We’ve replaced our use of JUL (<code class="language-plaintext highlighter-rouge">java.util.logging</code>)
 with <a href="https://slf4j.org/">SLF4J</a>. SLF4J provides an API which Calcite can use
 independent of the logging implementation. This ultimately provides additional
 flexibility to users, allowing them to configure Calcite’s logging within their
@@ -1630,9 +1630,9 @@
 [<a href="https://issues.apache.org/jira/browse/CALCITE-669">CALCITE-669</a>].</p>
 
 <p>For users experienced with configuring JUL in Calcite previously, there are some
-differences as some the JUL logging levels do not exist in SLF4J: <code class="highlighter-rouge">FINE</code>,
-<code class="highlighter-rouge">FINER</code>, and <code class="highlighter-rouge">FINEST</code>, specifically. To deal with this, <code class="highlighter-rouge">FINE</code> was mapped
-to SLF4J’s <code class="highlighter-rouge">DEBUG</code> level, while <code class="highlighter-rouge">FINER</code> and <code class="highlighter-rouge">FINEST</code> were mapped to SLF4J’s <code class="highlighter-rouge">TRACE</code>.</p>
+differences as some the JUL logging levels do not exist in SLF4J: <code class="language-plaintext highlighter-rouge">FINE</code>,
+<code class="language-plaintext highlighter-rouge">FINER</code>, and <code class="language-plaintext highlighter-rouge">FINEST</code>, specifically. To deal with this, <code class="language-plaintext highlighter-rouge">FINE</code> was mapped
+to SLF4J’s <code class="language-plaintext highlighter-rouge">DEBUG</code> level, while <code class="language-plaintext highlighter-rouge">FINER</code> and <code class="language-plaintext highlighter-rouge">FINEST</code> were mapped to SLF4J’s <code class="language-plaintext highlighter-rouge">TRACE</code>.</p>
 
     
     <p>See the <a href="/docs/history.html#v1-7-0">release notes</a>;
@@ -1678,7 +1678,7 @@
 couple of features make it easier to handle complex queries.</p>
 
 <p>[<a href="https://issues.apache.org/jira/browse/CALCITE-816">CALCITE-816</a>]
-allows you to represent sub-queries (<code class="highlighter-rouge">EXISTS</code>, <code class="highlighter-rouge">IN</code> and scalar) as
+allows you to represent sub-queries (<code class="language-plaintext highlighter-rouge">EXISTS</code>, <code class="language-plaintext highlighter-rouge">IN</code> and scalar) as
 <a href="/javadocAggregate/org/apache/calcite/rex/RexSubQuery.html">RexSubQuery</a>,
 a kind of expression in the relational algebra. Until
 now, the sql-to-rel converter was burdened with expanding sub-queries,
@@ -1694,10 +1694,10 @@
 expression’s output rows. From the predicates we can deduce which
 columns are constant, and following
 [<a href="https://issues.apache.org/jira/browse/CALCITE-1023">CALCITE-1023</a>]
-we can now remove constant columns from <code class="highlighter-rouge">GROUP BY</code> keys.</p>
+we can now remove constant columns from <code class="language-plaintext highlighter-rouge">GROUP BY</code> keys.</p>
 
 <p>Metadata is often computed recursively, and it is hard to safely and
-efficiently calculate metadata on a graph of <code class="highlighter-rouge">RelNode</code>s that is large,
+efficiently calculate metadata on a graph of <code class="language-plaintext highlighter-rouge">RelNode</code>s that is large,
 frequently cyclic, and constantly changing.
 [<a href="https://issues.apache.org/jira/browse/CALCITE-794">CALCITE-794</a>]
 introduces a context to each metadata call. That context can detect
@@ -1888,7 +1888,7 @@
 <p>A short release, less than a month after 1.1.</p>
 
 <p>There have been many changes to Avatica, hugely improving its coverage of the
-JDBC API and overall robustness. A new provider, <code class="highlighter-rouge">JdbcMeta</code>, allows
+JDBC API and overall robustness. A new provider, <code class="language-plaintext highlighter-rouge">JdbcMeta</code>, allows
 you to remote an existing JDBC driver.</p>
 
 <p>[<a href="https://issues.apache.org/jira/browse/CALCITE-606">CALCITE-606</a>]
@@ -1940,7 +1940,7 @@
 
 <p>This Calcite release makes it possible to exploit physical properties
 of relational expressions to produce more efficient plans, introducing
-collation and distribution as traits, <code class="highlighter-rouge">Exchange</code> relational operator,
+collation and distribution as traits, <code class="language-plaintext highlighter-rouge">Exchange</code> relational operator,
 and several new forms of metadata.</p>
 
 <p>We add experimental support for streaming SQL.</p>
@@ -1948,8 +1948,8 @@
 <p>This release drops support for JDK 1.6; Calcite now requires 1.7 or
 later.</p>
 
-<p>We have introduced static <code class="highlighter-rouge">create</code> methods for many sub-classes of
-<code class="highlighter-rouge">RelNode</code>. We strongly suggest that you use these rather than
+<p>We have introduced static <code class="language-plaintext highlighter-rouge">create</code> methods for many sub-classes of
+<code class="language-plaintext highlighter-rouge">RelNode</code>. We strongly suggest that you use these rather than
 calling constructors directly.</p>
 
     
@@ -1993,13 +1993,13 @@
 
 <p>Calcite’s first major release.</p>
 
-<p>Since the previous release we have re-organized the into the <code class="highlighter-rouge">org.apache.calcite</code>
+<p>Since the previous release we have re-organized the into the <code class="language-plaintext highlighter-rouge">org.apache.calcite</code>
 namespace. To make migration of your code easier, we have described the
 <a href="https://issues.apache.org/jira/secure/attachment/12681620/mapping.txt">mapping from old to new class names</a>
 as an attachment to
 [<a href="https://issues.apache.org/jira/browse/CALCITE-296">CALCITE-296</a>].</p>
 
-<p>The release adds SQL support for <code class="highlighter-rouge">GROUPING SETS</code>, <code class="highlighter-rouge">EXTEND</code>, <code class="highlighter-rouge">UPSERT</code> and sequences;
+<p>The release adds SQL support for <code class="language-plaintext highlighter-rouge">GROUPING SETS</code>, <code class="language-plaintext highlighter-rouge">EXTEND</code>, <code class="language-plaintext highlighter-rouge">UPSERT</code> and sequences;
 a remote JDBC driver;
 improvements to the planner engine and built-in planner rules;
 improvements to the algorithms that implement the relational algebra,
@@ -2243,7 +2243,11 @@
      under the terms of
      the <a href="https://www.apache.org/licenses/">
      Apache&nbsp;License&nbsp;v2</a>. Apache Calcite and its logo are
-     trademarks of the Apache Software Foundation.</p>
+     trademarks of the Apache Software Foundation.
+  </p>
+  <p>
+      <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
+  </p>
   </div>
 </footer>