Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions ci/nightly/pipeline.template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3026,6 +3026,16 @@ steps:
- group: Language
key: language-tests
steps:
- id: adbc
label: Arrow ADBC driver
depends_on: build-aarch64
timeout_in_minutes: 30
plugins:
- ./ci/plugins/mzcompose:
composition: adbc
agents:
queue: hetzner-aarch64-4cpu-8gb

- id: lang-csharp
label: ":csharp:"
depends_on: build-aarch64
Expand Down
2 changes: 2 additions & 0 deletions console/types/materialize.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4019,6 +4019,7 @@ export interface MzTypePgMetadata {
id: Generated<string>;
typinput: Generated<number>;
typreceive: Generated<number>;
typsend: Generated<number>;
}

export interface MzTypes {
Expand Down Expand Up @@ -4260,6 +4261,7 @@ export interface PgTypeAllDatabases {
typowner: number;
typreceive: number;
typrelid: number;
typsend: string;
typtype: string;
typtypmod: number;
}
Expand Down
16 changes: 14 additions & 2 deletions doc/user/content/manage/terraform/get-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,9 +152,21 @@ export MZ_PASSWORD=<password>
export MZ_HOST=<host>
```

{{< warning >}}
`MZ_HOST` is intended for use with Self-Managed Materialize. If `MZ_HOST` is set,
the provider connects directly to that host, using `MZ_USERNAME` and
`MZ_PASSWORD`, instead of connecting through Materialize Cloud.

If you leave `MZ_HOST` exported and then run Terraform against Materialize
Cloud, the provider uses your self-managed settings instead, which usually
results in an `invalid password` error.

Unset `MZ_HOST` before working with Materialize Cloud.
{{< /warning >}}

```hcl
provider "materialize" {
# Configuration will be read from MZ_HOST, MZ_PORT, MZ_USER,
# Configuration will be read from MZ_HOST, MZ_PORT, MZ_USERNAME,
# MZ_DATABASE, MZ_PASSWORD, MZ_SSLMODE environment variables
}
```
Expand Down Expand Up @@ -189,7 +201,7 @@ provider "materialize" {
|-----------|-------------|---------------------|---------|
| `host` | Materialize host address | `MZ_HOST` | - |
| `port` | Materialize port | `MZ_PORT` | `6875` |
| `username` | Database username | `MZ_USER` | `materialize` |
| `username` | Database username | `MZ_USERNAME` | `materialize` |
| `database` | Database name | `MZ_DATABASE` | `materialize` |
| `password` | Database password | `MZ_PASSWORD` | - |
| `sslmode` | SSL mode (`disable`, `require`, `verify-ca`, `verify-full`) | `MZ_SSLMODE` | `require` |
Expand Down
85 changes: 28 additions & 57 deletions doc/user/content/support.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,24 @@ aliases:

Whether you're building, scaling, or debugging, we're here to help.

{{< note >}}
We're retiring access to Slack and Microsoft Teams workspaces. We've introduced the messenger app to streamline and scale how users engage with support — starting with AI-first assistance and seamless escalation paths when needed.
{{< /note >}}

## Materialize Support

We offer multiple support pathways depending on your platform and plan:
We offer multiple support pathways depending on your platform and plan.

### Support chat

### Messenger App
Our support chat is available directly on:

You can reach us directly from:
- **materialize.com**
- **Materialize Console** (for Cloud customers)

Our messenger now features Matty, our AI-powered support agent. Matty can help
The support chat features Matty, our AI-powered support agent. Matty can help
answer questions, suggest documentation, and assist with troubleshooting. You
can also submit a request to **Talk to a human**. Just look for the messenger
widget on the bottom right.
can also submit a request to **Talk to a human**. Just look for the support chat
icon {{% icons/support-chat %}} in the bottom-right corner.

**Don’t see the chat icon?** Make sure cookies are enabled for
**materialize.com**, then refresh the page.

{{< tip >}}
If you are an SLA Supported Customer who is experiencing an [**urgent** issue](#urgent-issues-for-sla-supported-customers-only),
Expand All @@ -37,7 +37,7 @@ you can use the **Report Production Outage** option for fastest response.

### Email

You can also email us your questions at `support@materialize.com`. For
You can also email us your questions at `support@materialize.com`. If you are a
Materialize Cloud SLA Supported Customer, email from your Materialize login
email address.

Expand All @@ -47,67 +47,38 @@ Connect with other users, share ideas, and get informal help from the [Materiali

## Urgent Issues (For SLA Supported Customers Only)

If you are an SLA Supported Customer who is experiencing an **urgent** issue,
If you are an SLA Supported Customer who is experiencing an **urgent** issue:

- Use the [messenger's](#messenger-app) **Report Production Outage** option for
fastest response.
- Use the **Report Production Outage** option in the [support
chat](#support-chat) for the fastest response.

- Alternatively, you can email `support@materialize.com`. To ensure priority
handling, include **urgent** in the subject line.

- For Materialize Cloud SLA Supported Customer, email from your Materialize
login email address.
- If you are a Materialize Cloud SLA Supported Customer, email from your
Materialize login email address.

Use the following definitions to determine what priority to assign to
your support ticket:

<table style="margin-top: 1em; margin-bottom: 1em;">
<thead>
<tr>
<th>Priority</th>
<th style="min-width: 150px">Response time</th>
<th>Definition</th>
</tr>
</thead>
<tbody>
<tr>
<td>Urgent</td>
<td>Refer to your support contract</td>
<td>
<strong>Critical severity error:</strong> an Error in the Platform that: (a) renders the Platform completely inoperative, or (b) makes Customer's use of material features of the Platform impossible, with no alternative available.
</td>
</tr>
<tr>
<td>High</td>
<td>Refer to your support contract</td>
<td>
<strong>High severity error:</strong> an Error in the Platform that (a) has a high impact to key portions of the Platform, or (b) seriously impairs Customer's use of material features of the Platform and Customer cannot reasonably circumvent or avoid the Error on a temporary basis without the expenditure of significant time or effort.
</td>
</tr>
<tr>
<td>Normal</td>
<td>Refer to your support contract</td>
<td>
<strong>Medium severity error:</strong> an Error that has a medium-to-low impact on the Platform, but Customer can still access and use some functionality of the Platform.
</td>
</tr>
<tr>
<td>Low</td>
<td>Refer to your support contract</td>
<td>
<strong>Low severity error:</strong> an Error that has low-to-no impact on Customer's access to and use of the Platform.
</td>
</tr>
</tbody>
</table>
| Priority | Response time | Definition |
|----------|---------------|------------|
| Urgent | Refer to your support contract | **Critical severity error:** an Error in the Platform that: (a) renders the Platform completely inoperative, or (b) makes Customer's use of material features of the Platform impossible, with no alternative available. |
| High | Refer to your support contract | **High severity error:** an Error in the Platform that (a) has a high impact to key portions of the Platform, or (b) seriously impairs Customer's use of material features of the Platform and Customer cannot reasonably circumvent or avoid the Error on a temporary basis without the expenditure of significant time or effort. |
| Normal | Refer to your support contract | **Medium severity error:** an Error that has a medium-to-low impact on the Platform, but Customer can still access and use some functionality of the Platform. |
| Low | Refer to your support contract | **Low severity error:** an Error that has low-to-no impact on Customer's access to and use of the Platform. |

## Share your feedback

Have ideas to improve Materialize? Use the messenger to start a conversation — you'll be guided to submit feature requests or report bugs. Your input goes straight to our Product and Engineering teams.
Have ideas to improve Materialize? Use the [support chat](#support-chat) to open
a ticket with support. Your input goes straight to our Product and Engineering
teams.

## Questions about your support plan?

We tailor support experiences based on your workspace and plan. To learn more about what's available to your team, reach out via the messenger or email us.
We tailor support experiences based on your workspace and plan. To learn more
about what's available to your team, reach out via the [support
chat](#support-chat) or email us.

## Checking Materialize Cloud service status

Expand Down
2 changes: 1 addition & 1 deletion doc/user/data/self_managed/self_managed_editions_table.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ rows:
"Enterprise Edition": |
[Per terms of your license](https://materialize.com/self-managed/enterprise-license/)
"Community Edition": |
[Community slack or messenger app](/support/)
[Community slack or support chat](/support/)
- "Feature": "**License**"
"Enterprise Edition": |
[Enterprise License - Contact Us](https://materialize.com/self-managed/enterprise-license/)
Expand Down
4 changes: 4 additions & 0 deletions doc/user/layouts/shortcodes/icons/support-chat.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{{- /* Resolve the src like render-image.html does, so the image works under
any baseURL (production /docs, PR previews, self-managed versions). */ -}}
{{- $parentPath := partial "relative-link.html" . -}}
<img src="{{ $parentPath }}{{ "/images/messenger-widget.png" | relURL }}" alt="Materialize support chat icon" style="height: 1.4em; vertical-align: text-bottom;">
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
| --- | --- | --- |
| **Maximum Usage Limits (Memory)** | None | 24 GiB |
| **Maximum Usage Limits (Disk)** | None | 48 GiB |
| **[Support](/support/)** | [Per terms of your license] | [Community slack or messenger app](/support/) |
| **[Support](/support/)** | [Per terms of your license] | [Community slack or support chat](/support/) |
| **License** | [Paid Enterprise License - Contact Us] | [BSL/Privacy Policy] |

[Per terms of your license]: https://materialize.com/self-managed/enterprise-license/
Expand Down
Binary file added doc/user/static/images/messenger-widget.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 13 additions & 1 deletion misc/python/materialize/mzcompose/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,19 @@ def get_variable_system_parameters(
"true",
["true", "false"],
),
VariableSystemParameter(
"enable_upsert_paged_spill",
"true",
["true", "false"],
),
# On by default so CI exercises the chunked stash flavor, which is
# off in production while it earns trust. Only meaningful when
# enable_upsert_v2 is true.
VariableSystemParameter(
"enable_upsert_chunked_stash",
"true",
["true", "false"],
),
VariableSystemParameter(
"enable_upsert_v2",
"false",
Expand Down Expand Up @@ -648,7 +661,6 @@ def get_default_system_parameters(
"column_paged_batcher_spill_worker_count",
"column_paged_batcher_eager_backing",
"column_paged_batcher_pool_rss_target_fraction",
"enable_upsert_paged_spill",
"enable_lgalloc_eager_reclamation",
"lgalloc_background_interval",
"lgalloc_file_growth_dampener",
Expand Down
1 change: 1 addition & 0 deletions misc/python/materialize/parallel_workload/action.py
Original file line number Diff line number Diff line change
Expand Up @@ -3138,6 +3138,7 @@ def __init__(
"0.02",
]
self.flags_with_values["enable_upsert_paged_spill"] = BOOLEAN_FLAG_VALUES
self.flags_with_values["enable_upsert_chunked_stash"] = BOOLEAN_FLAG_VALUES
self.flags_with_values["column_chunk_compress_min_depth"] = [
"0", # compress every spilled body
"1", # the default: fresh chunks store uncompressed
Expand Down
26 changes: 21 additions & 5 deletions src/adapter/src/catalog.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3059,6 +3059,7 @@ mod tests {
array: u32,
input: u32,
receive: u32,
send: u32,
}

struct PgOper {
Expand Down Expand Up @@ -3098,7 +3099,7 @@ mod tests {
let pg_type: BTreeMap<_, _> = query(
&client,
sql!(
"SELECT oid, typname, typtype::text, typelem, typarray, typinput::oid, typreceive::oid as typreceive FROM pg_type"
"SELECT oid, typname, typtype::text, typelem, typarray, typinput::oid, typreceive::oid as typreceive, typsend::oid as typsend FROM pg_type"
),
&[],
)
Expand All @@ -3114,6 +3115,7 @@ mod tests {
array: row.get("typarray"),
input: row.get("typinput"),
receive: row.get("typreceive"),
send: row.get("typsend"),
};
(oid, pg_type)
})
Expand Down Expand Up @@ -3205,10 +3207,15 @@ mod tests {
ty.oid, pg_ty.name, ty.name,
);

let (typinput_oid, typreceive_oid) = match &ty.details.pg_metadata {
None => (0, 0),
Some(pgmeta) => (pgmeta.typinput_oid, pgmeta.typreceive_oid),
};
let (typinput_oid, typreceive_oid, typsend_oid) =
match &ty.details.pg_metadata {
None => (0, 0, 0),
Some(pgmeta) => (
pgmeta.typinput_oid,
pgmeta.typreceive_oid,
pgmeta.typsend_oid,
),
};
assert_eq!(
typinput_oid, pg_ty.input,
"type {} has typinput OID {:?} in mz but {:?} in pg",
Expand All @@ -3219,6 +3226,15 @@ mod tests {
"type {} has typreceive OID {:?} in mz but {:?} in pg",
ty.name, typreceive_oid, pg_ty.receive,
);
// Unlike typinput and typreceive below, typsend is not also
// checked against `func_oids`. Nothing resolves a typsend OID
// to a name, so the corresponding `*send` functions are
// deliberately not registered as builtins.
assert_eq!(
typsend_oid, pg_ty.send,
"type {} has typsend OID {:?} in mz but {:?} in pg",
ty.name, typsend_oid, pg_ty.send,
);
if typinput_oid != 0 {
assert!(
func_oids.contains(&typinput_oid),
Expand Down
1 change: 1 addition & 0 deletions src/adapter/src/catalog/builtin_table_updates.rs
Original file line number Diff line number Diff line change
Expand Up @@ -575,6 +575,7 @@ impl CatalogState {
Datum::String(&id.to_string()),
Datum::UInt32(pg_metadata.typinput_oid),
Datum::UInt32(pg_metadata.typreceive_oid),
Datum::UInt32(pg_metadata.typsend_oid),
]),
diff,
));
Expand Down
9 changes: 9 additions & 0 deletions src/adapter/src/catalog/open/builtin_schema_migration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,15 @@ static MIGRATIONS: LazyLock<Vec<MigrationStep>> = LazyLock::new(|| {
MZ_INTERNAL_SCHEMA,
"mz_kafka_source_tables",
),
// `mz_type_pg_metadata` gained a trailing `typsend` column. See the NOTE
// above: this version must stay at the workspace's current dev version
// until the change ships.
MigrationStep::replacement(
"26.40.0-dev.0",
CatalogItemType::Table,
MZ_INTERNAL_SCHEMA,
"mz_type_pg_metadata",
),
// Converting the connection-detail builtin tables to materialized views
// changes their catalog fingerprint, so each needs an explicit
// replacement step.
Expand Down
Loading
Loading