diff --git a/0.20.0/get-started/release-notes/change-log/index.html b/0.20.0/get-started/release-notes/change-log/index.html
index f5e9ae06..7479e15a 100644
--- a/0.20.0/get-started/release-notes/change-log/index.html
+++ b/0.20.0/get-started/release-notes/change-log/index.html
@@ -2777,6 +2777,9 @@
Added
[#2223] [clickbech] Avoid creating tables for simple COUNT(*)
queries @joocer
[#2228] Push LIMIT
to Iceberg @joocer
[#2215] Create connector capability for colum statistics @joocer
+[#2234] Capture column and relation statistics @joocer
+[#2241] Initial implementation of correlated filtering @joocer
+[#2238] Create row-estimates for multi-file datasets @joocer
Fixed
diff --git a/0.20.0/sitemap.xml b/0.20.0/sitemap.xml
index 1a782d9c..54fb9aae 100644
--- a/0.20.0/sitemap.xml
+++ b/0.20.0/sitemap.xml
@@ -2,278 +2,278 @@
https://opteryx.dev/0.20.0/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/thankyou/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/code-of-conduct/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/contributing/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/etiquette/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/project-goals/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/internals/binder/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/internals/joins/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/internals/optimization-strategies/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/internals/overview/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/internals/project-structure/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/internals/query-engine/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/internals/storage-engine/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/internals/implementations/memory_pool/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/internals/implementations/storage_io/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/set-up-guides/debian/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/set-up-guides/macos/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/topics/debug_logging/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/topics/dependencies/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/contributing/topics/testing/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/command-line-guide/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/configuration-guide/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/deployment-guide/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/get-started/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/overview/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/performance-monitoring/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/python-client/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/schema-evolution/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/security/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/ecosystem/hadro/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/ecosystem/mabel/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/ecosystem/mesos/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/ecosystem/orso/orso/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/external-standards/clickbench/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/external-standards/information-schema/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/external-standards/pep249/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/external-standards/sql92/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/external-standards/tpch/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/guides/_command-line-opteryx/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/guides/_gcp-and-opteryx/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/guides/_sqlite-and-opteryx/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/guides/bigquery-and-opteryx/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/guides/convert-csv-to-parquet/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/guides/execute-sql-on-csv/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/guides/mysql-and-opteryx/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/guides/pandas-and-opteryx/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/guides/polars-and-opteryx/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/guides/postgres-and-opteryx/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/guides/using-opteryx-with-jupyter/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/release-notes/change-log/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/get-started/release-notes/notices/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/adv-engine-configuration/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/adv-information-schema/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/adv-null-semantics/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/adv-query-optimization/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/adv-sample-data/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/adv-temp-tables/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/adv-time-travel/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/adv-working-with-ips/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/adv-working-with-lists/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/adv-working-with-structs/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/adv-working-with-timestamps/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/aggregates/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/data-types/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/expressions/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/functions/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/introduction/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/joins/
- 2025-01-13
+ 2025-01-14
https://opteryx.dev/0.20.0/sql-reference/statements/
- 2025-01-13
+ 2025-01-14
\ No newline at end of file
diff --git a/0.20.0/sitemap.xml.gz b/0.20.0/sitemap.xml.gz
index d6939fa3..9c6f0d09 100644
Binary files a/0.20.0/sitemap.xml.gz and b/0.20.0/sitemap.xml.gz differ
diff --git a/0.20.0/termynal.css b/0.20.0/termynal.css
index 75db531c..f5bf9759 100644
--- a/0.20.0/termynal.css
+++ b/0.20.0/termynal.css
@@ -1,133 +1,126 @@
-/**
- * termynal.js
- *
- * @author Ines Montani
- * @version 0.0.1
- * @license MIT
- */
-
:root {
- --color-bg: #252a33;
- --color-text: #eee;
- --color-text-subtle: #a2a2a2;
-}
-
-[data-termynal] {
- max-width: 100%;
- overflow-x: auto;
- background: var(--color-bg);
- color: var(--color-text);
- font-size: 15px;
- font-family: 'Roboto Mono', 'Fira Mono', Consolas, Menlo, Monaco, 'Courier New', Courier, monospace;
- border-radius: 4px;
- padding: 75px 45px 35px;
- position: relative;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-[data-termynal][data-ty-macos]:before {
- content: '';
- position: absolute;
- top: 15px;
- left: 15px;
- display: inline-block;
- width: 15px;
- height: 15px;
- border-radius: 50%;
- /* A little hack to display the window buttons in one pseudo element. */
- background: #d9515d;
- -webkit-box-shadow: 25px 0 0 #f4c025, 50px 0 0 #3ec930;
- box-shadow: 25px 0 0 #f4c025, 50px 0 0 #3ec930;
-}
-
-[data-termynal][data-ty-windows]:before {
- content: '';
- position: absolute;
- top: 15px;
- right: 15px;
- display: inline-block;
- width: 15px;
- height: 15px;
- /* A little hack to display the window buttons in one pseudo element. */
- background: #d9515d;
- -webkit-box-shadow: -25px 0 0 #e6e6e6, -50px 0 0 #e6e6e6;
- box-shadow: -25px 0 0 #e6e6e6, -50px 0 0 #e6e6e6;
-}
-
-[data-termynal]:after {
- content: 'bash';
- position: absolute;
- color: var(--color-text-subtle);
- top: 5px;
- left: 0;
- width: 100%;
- text-align: center;
-}
-
-[data-termynal][data-ty-title]:after {
- content: attr(data-ty-title);
-}
-
-a[data-terminal-control] {
- text-align: right;
- display: block;
- color: #aebbff;
-}
-
-[data-ty] {
- display: block;
- line-height: 2;
- white-space: pre;
-}
-
-[data-ty]:before {
- /* Set up defaults and ensure empty lines are displayed. */
- content: '';
- display: inline-block;
- vertical-align: middle;
-}
-
-[data-ty="input"]:before,
-[data-ty-prompt]:before {
- margin-right: 0.75em;
- color: var(--color-text-subtle);
-}
-
-[data-ty="input"]:before {
- content: '$';
-}
-
-[data-ty][data-ty-prompt]:before {
- content: attr(data-ty-prompt);
-}
-
-[data-ty-cursor]:after {
- content: attr(data-ty-cursor);
- font-family: monospace;
- margin-left: 0.5em;
- -webkit-animation: blink 1s infinite;
- animation: blink 1s infinite;
-}
-
-
-/* Cursor animation */
-
-@-webkit-keyframes blink {
- 50% {
- opacity: 0;
- }
-}
-
-@keyframes blink {
- 50% {
- opacity: 0;
- }
-}
-
-
-.termynal-comment {
- color: #4a968f;
- font-style: italic;
- display: block;
-}
+ --color-bg: #252a33;
+ --color-text: #eee;
+ --color-text-subtle: #a2a2a2;
+ }
+
+ [data-termynal] {
+ max-width: 100%;
+ overflow-x: auto;
+ background: var(--color-bg);
+ color: var(--color-text);
+ font-size: 15px;
+ font-family: 'Roboto Mono', 'Fira Mono', Consolas, Menlo, Monaco, 'Courier New', Courier, monospace;
+ border-radius: 4px;
+ padding: 75px 45px 35px;
+ position: relative;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+
+ [data-termynal][data-ty-macos]:before {
+ content: '';
+ position: absolute;
+ top: 15px;
+ left: 15px;
+ display: inline-block;
+ width: 15px;
+ height: 15px;
+ border-radius: 50%;
+ /* A little hack to display the window buttons in one pseudo element. */
+ background: #d9515d;
+ -webkit-box-shadow: 25px 0 0 #f4c025, 50px 0 0 #3ec930;
+ box-shadow: 25px 0 0 #f4c025, 50px 0 0 #3ec930;
+ }
+
+ [data-termynal][data-ty-windows]:before {
+ content: '';
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ display: inline-block;
+ width: 15px;
+ height: 15px;
+ /* A little hack to display the window buttons in one pseudo element. */
+ background: #d9515d;
+ -webkit-box-shadow: -25px 0 0 #e6e6e6, -50px 0 0 #e6e6e6;
+ box-shadow: -25px 0 0 #e6e6e6, -50px 0 0 #e6e6e6;
+ }
+
+ [data-termynal]:after {
+ content: 'bash';
+ position: absolute;
+ color: var(--color-text-subtle);
+ top: 5px;
+ left: 0;
+ width: 100%;
+ text-align: center;
+ }
+
+ [data-termynal][data-ty-title]:after {
+ content: attr(data-ty-title);
+ }
+
+ button[data-terminal-control] {
+ float: right;
+ text-align: right;
+ display: block;
+ color: #aebbff;
+ background: none !important;
+ border: none;
+ padding: 0 !important;
+ cursor: pointer;
+ }
+
+ [data-ty] {
+ display: block;
+ line-height: 2;
+ white-space: pre;
+ }
+
+ [data-ty]:before {
+ /* Set up defaults and ensure empty lines are displayed. */
+ content: '';
+ display: inline-block;
+ vertical-align: middle;
+ }
+
+ [data-ty="input"]:before,
+ [data-ty-prompt]:before {
+ margin-right: 0.75em;
+ color: var(--color-text-subtle);
+ }
+
+ [data-ty="input"]:before {
+ content: '$';
+ }
+
+ [data-ty][data-ty-prompt]:before {
+ content: attr(data-ty-prompt);
+ }
+
+ [data-ty-cursor]:after {
+ content: attr(data-ty-cursor);
+ font-family: monospace;
+ margin-left: 0.5em;
+ -webkit-animation: blink 1s infinite;
+ animation: blink 1s infinite;
+ }
+
+ @-webkit-keyframes blink {
+ 50% {
+ opacity: 0;
+ }
+ }
+
+ @keyframes blink {
+ 50% {
+ opacity: 0;
+ }
+ }
+
+ .termynal-comment {
+ color: #4a968f;
+ font-style: italic;
+ display: block;
+ }
\ No newline at end of file
diff --git a/0.20.0/termynal.js b/0.20.0/termynal.js
index c28512af..9b821746 100644
--- a/0.20.0/termynal.js
+++ b/0.20.0/termynal.js
@@ -1,16 +1,5 @@
-/**
- * termynal.js
- * A lightweight, modern and extensible animated terminal window, using
- * async/await.
- *
- * @author Ines Montani
- * @version 0.0.1
- * @license MIT
- */
-
'use strict';
-/** Generate a terminal widget. */
class Termynal {
/**
* Construct the widget's settings.
@@ -22,7 +11,7 @@ class Termynal {
* @param {number} options.lineDelay - Delay between each line, in ms.
* @param {number} options.progressLength - Number of characters displayed as progress bar.
* @param {string} options.progressChar – Character to use for progress bar, defaults to █.
- * @param {number} options.progressPercent - Max percent of progress.
+ * @param {number} options.progressPercent - Max percent of progress.
* @param {string} options.cursor – Character to use for cursor, defaults to ▋.
* @param {Object[]} lineData - Dynamically loaded line data objects.
* @param {boolean} options.noInit - Don't initialise the animation.
@@ -40,7 +29,7 @@ class Termynal {
|| parseFloat(this.container.getAttribute(`${this.pfx}-progressLength`)) || 40;
this.progressChar = options.progressChar
|| this.container.getAttribute(`${this.pfx}-progressChar`) || '█';
- this.progressPercent = options.progressPercent
+ this.progressPercent = options.progressPercent
|| parseFloat(this.container.getAttribute(`${this.pfx}-progressPercent`)) || 100;
this.cursor = options.cursor
|| this.container.getAttribute(`${this.pfx}-cursor`) || '▋';
@@ -127,27 +116,25 @@ class Termynal {
}
generateRestart() {
- const restart = document.createElement('a')
+ const restart = document.createElement('button')
restart.onclick = (e) => {
e.preventDefault()
this.container.innerHTML = ''
this.init()
}
- restart.href = '#'
restart.setAttribute('data-terminal-control', '')
restart.innerHTML = "restart ↻"
return restart
}
generateFinish() {
- const finish = document.createElement('a')
+ const finish = document.createElement('button')
finish.onclick = (e) => {
e.preventDefault()
this.lineDelay = 0
this.typeDelay = 0
this.startDelay = 0
}
- finish.href = '#'
finish.setAttribute('data-terminal-control', '')
finish.innerHTML = "fast →"
this.finishElement = finish
@@ -190,8 +177,8 @@ class Termynal {
const progressChar = line.getAttribute(`${this.pfx}-progressChar`)
|| this.progressChar;
const chars = progressChar.repeat(progressLength);
- const progressPercent = line.getAttribute(`${this.pfx}-progressPercent`)
- || this.progressPercent;
+ const progressPercent = line.getAttribute(`${this.pfx}-progressPercent`)
+ || this.progressPercent;
line.textContent = '';
this.container.appendChild(line);
@@ -199,9 +186,9 @@ class Termynal {
await this._wait(this.typeDelay);
const percent = Math.round(i / chars.length * 100);
line.textContent = `${chars.slice(0, i)} ${percent}%`;
- if (percent>progressPercent) {
- break;
- }
+ if (percent > progressPercent) {
+ break;
+ }
}
}
@@ -264,12 +251,12 @@ if (document.currentScript.hasAttribute('data-termynal-container')) {
}
-(function(){
+(function () {
document
- .querySelectorAll('.termy')
- .forEach(node => {
- new Termynal(node, {
- lineDelay: 500
+ .querySelectorAll('.termy')
+ .forEach(node => {
+ new Termynal(node, {
+ lineDelay: 500
+ });
});
- });
})()