Skip to content

Commit

Permalink
Merge branch 'current' into mwong-hover-images
Browse files Browse the repository at this point in the history
  • Loading branch information
mirnawong1 authored Jan 22, 2024
2 parents eb22883 + 4c84b81 commit 84ea04e
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ authors: [euan_johnston]

hide_table_of_contents: false

date: 2023-01-15
date: 2024-01-15
is_featured: false
---

Expand Down
3 changes: 3 additions & 0 deletions website/docs/docs/core/connect-data-platform/profiles.yml.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ This section identifies the parts of your `profiles.yml` that aren't specific to
[fail_fast](/reference/global-configs/failing-fast): <true | false>
[use_experimental_parser](/reference/global-configs/parsing): <true | false>
[static_parser](/reference/global-configs/parsing): <true | false>
[cache_selected_only](/reference/global-configs/cache): <true | false>
[printer_width](/reference/global-configs/print-output#printer-width): <integer>
[log_format](/reference/global-configs/logs): <text | json | default>

<profile-name>:
target: <target-name> # this is the default target
Expand Down
3 changes: 1 addition & 2 deletions website/docs/reference/node-selection/syntax.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,6 @@ If both the flag and env var are provided, the flag takes precedence.

#### Notes:
- The `--state` artifacts must be of schema versions that are compatible with the currently running dbt version.
- The path to state artifacts can be set via the `--state` flag or `DBT_ARTIFACT_STATE_PATH` environment variable. If both the flag and env var are provided, the flag takes precedence.
- These are powerful, complex features. Read about [known caveats and limitations](/reference/node-selection/state-comparison-caveats) to state comparison.

### The "result" status
Expand All @@ -174,7 +173,7 @@ The following dbt commands produce `run_results.json` artifacts whose results ca
After issuing one of the above commands, you can reference the results by adding a selector to a subsequent command as follows:

```bash
# You can also set the DBT_ARTIFACT_STATE_PATH environment variable instead of the --state flag.
# You can also set the DBT_STATE environment variable instead of the --state flag.
dbt run --select "result:<status> --defer --state path/to/prod/artifacts"
```

Expand Down
34 changes: 33 additions & 1 deletion website/docs/reference/resource-properties/freshness.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,38 @@ A freshness block is used to define the acceptable amount of time between the mo

In the `freshness` block, one or both of `warn_after` and `error_after` can be provided. If neither is provided, then dbt will not calculate freshness snapshots for the tables in this source.

<VersionBlock firstVersion="1.7">

In most cases, the `loaded_at_field` is required. Some adapters support calculating source freshness from the warehouse metadata tables and can exclude the `loaded_at_field`.

If a source has a `freshness:` block, dbt will attempt to calculate freshness for that source:
- If a `loaded_at_field` is provided, dbt will calculate freshness via a select query (behavior prior to v1.7).
- If a `loaded_at_field` is _not_ provided, dbt will calculate freshness via warehouse metadata tables when possible (new in v1.7 on supported adapters).

Currently, calculating freshness from warehouse metadata tables is supported on:
- [Snowflake](/reference/resource-configs/snowflake-configs)

Support is coming soon to the following adapters:
- [Redshift](/reference/resource-configs/redshift-configs)
- [BigQuery](/reference/resource-configs/bigquery-configs)
- [Spark](/reference/resource-configs/spark-configs)

Freshness blocks are applied hierarchically:
- a `freshness` and `loaded_at_field` property added to a source will be applied to all all tables defined in that source
- a `freshness` and `loaded_at_field` property added to a source _table_ will override any properties applied to the source.

This is useful when all of the tables in a source have the same `loaded_at_field`, as is often the case.

To exclude a source from freshness calculations, you have two options:
- Don't add a `freshness:` block.
- Explicitly set `freshness: null`.

## loaded_at_field
(Optional on adapters that support pulling freshness from warehouse metadata tables, required otherwise.)
</VersionBlock>

<VersionBlock lastVersion="1.6">

Additionally, the `loaded_at_field` is required to calculate freshness for a table. If a `loaded_at_field` is not provided, then dbt will not calculate freshness for the table.

Freshness blocks are applied hierarchically:
Expand All @@ -47,7 +79,7 @@ This is useful when all of the tables in a source have the same `loaded_at_field

## loaded_at_field
(Required)

</VersionBlock>
A column name (or expression) that returns a timestamp indicating freshness.

If using a date field, you may have to cast it to a timestamp:
Expand Down
56 changes: 36 additions & 20 deletions website/src/components/detailsToggle/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,49 @@ import styles from './styles.module.css';

function detailsToggle({ children, alt_header = null }) {
const [isOn, setOn] = useState(false);
const [hoverActive, setHoverActive] = useState(true);
const [isScrolling, setIsScrolling] = useState(false); // New state to track scrolling
const [hoverTimeout, setHoverTimeout] = useState(null);

const handleToggleClick = () => {
setHoverActive(true); // Disable hover when clicked
setOn(current => !current); // Toggle the current state
};

const handleMouseEnter = () => {
if (isOn) return; // Ignore hover if already open
setHoverActive(true); // Enable hover
const timeout = setTimeout(() => {
if (hoverActive) setOn(true);
}, 500);
setHoverTimeout(timeout);
};

const handleMouseLeave = () => {
if (!isOn) {
};

const handleMouseEnter = () => {
if (isOn || isScrolling) return; // Ignore hover if already open or if scrolling
const timeout = setTimeout(() => {
if (!isScrolling) setOn(true);
}, 700); //
setHoverTimeout(timeout);
};

const handleMouseLeave = () => {
if (!isOn) {
clearTimeout(hoverTimeout);
setOn(false);
}
};
}
};

const handleScroll = () => {
setIsScrolling(true);
clearTimeout(hoverTimeout);
setOn(false);

// Reset scrolling state after a delay
setTimeout(() => {
setIsScrolling(false);
}, 800);
};

useEffect(() => {
window.addEventListener('scroll', handleScroll);
return () => {
window.removeEventListener('scroll', handleScroll);
};
}, []);

useEffect(() => {
return () => clearTimeout(hoverTimeout);
}, [hoverTimeout]);
useEffect(() => {
return () => clearTimeout(hoverTimeout);
}, [hoverTimeout]);

return (
<div className='detailsToggle'>
Expand Down

0 comments on commit 84ea04e

Please sign in to comment.