Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into add_iceberg_partitions
Browse files Browse the repository at this point in the history
  • Loading branch information
jayakasadev committed Jan 29, 2025
2 parents c947797 + 08bdf27 commit a2dbe7d
Show file tree
Hide file tree
Showing 18 changed files with 415 additions and 147 deletions.
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

27 changes: 10 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,18 @@

<div align="center">

### 🌊 Reimagine real-time data engineering.
### 🌊 Ride the Wave of Real-Time Data.

</div>

<p align="center">&nbsp;&nbsp;&nbsp;📚&nbsp;
<a
href="https://docs.risingwave.com/"
target="_blank"
><b>Documentation</b></a>&nbsp;&nbsp;&nbsp;🚀&nbsp;
<a
href="https://risingwave.com/slack"
target="_blank"
>
<b>Slack Community</b>
</a>
<p align="center">
<a href="https://docs.risingwave.com/">Docs</a> | <a href="https://docs.risingwave.com/get-started/rw-benchmarks-stream-processing">Benchmarks</a> | <a href="https://docs.risingwave.com/demos/overview">Demos</a>
</p>

<p align="center">

<div align="center">
<a
href="https://risingwave.com/slack"
href="https://go.risingwave.com/slack"
target="_blank"
>
<img alt="Slack" src="https://badgen.net/badge/Slack/Join%20RisingWave/0abd59?icon=slack" />
Expand All @@ -46,11 +39,11 @@
</a>
</div>
RisingWave is a Postgres-compatible SQL database engineered to provide the <i><b>simplest</b></i> and <i><b>most cost-efficient</b></i> approach for <b>processing</b>, <b>analyzing</b>, and <b>managing</b> real-time event streaming data.
RisingWave is the world's most advanced streaming database engineered to provide the <i><b>simplest</b></i> and <i><b>most cost-efficient</b></i> approach for <b>processing</b>, <b>analyzing</b>, and <b>managing</b> real-time event streaming data. It provides both a Postgres-compatible [SQL interface](https://docs.risingwave.com/sql/overview) and a DataFrame-style [Python interface](https://docs.risingwave.com/python-sdk/intro).

RisingWave can <b>ingest</b> millions of events per second, continuously <b>join and analyze</b> live data streams with historical tables, <b>serve</b> ad-hoc queries in real-time, and <b>deliver</b> fresh, consistent results wherever needed.
RisingWave can <b>ingest</b> millions of events per second, continuously <b>join and analyze</b> live data streams with historical tables, <b>serve</b> ad-hoc queries at low latency, and <b>deliver</b> fresh, consistent results wherever needed.

![RisingWave](./docs/dev/src/images/architecture_20240908.png)
![RisingWave](./docs/dev/src/images/architecture_20250127.png)

## Try it out in 60 seconds

Expand Down
Binary file added docs/dev/src/images/architecture_20250127.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
43 changes: 43 additions & 0 deletions e2e_test/batch/join/asof_join.slt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
statement ok
SET RW_IMPLICIT_FLUSH TO true;

statement ok
create table t1 (v1 int, v2 int, v3 int primary key);

statement ok
create table t2 (v1 int, v2 int, v3 int primary key);

statement ok
insert into t1 values (1, 2, 3), (2, 3, 4), (1, 2, 9);

statement ok
insert into t2 values (1, NULL, 8), (1, 3, 4), (1, 2, 5), (1, 2, 6);

# asof inner join
query IIIIII
SELECT t1.v1 t1_v1, t1.v2 t1_v2, t1.v3 t1_v3, t2.v1 t2_v1, t2.v2 t2_v2, t2.v3 t2_v3 FROM t1 ASOF JOIN t2 ON t1.v1 = t2.v1 and t1.v2 < t2.v2 order by t1.v1, t1.v3;
----
1 2 3 1 3 4
1 2 9 1 3 4

# asof left join
query IIIIII
SELECT t1.v1 t1_v1, t1.v2 t1_v2, t1.v3 t1_v3, t2.v1 t2_v1, t2.v2 t2_v2, t2.v3 t2_v3 FROM t1 ASOF LEFT JOIN t2 ON t1.v1 = t2.v1 and t1.v2 < t2.v2 order by t1.v1, t1.v3;
----
1 2 3 1 3 4
1 2 9 1 3 4
2 3 4 NULL NULL NULL

# asof left join
query IIIIII
SELECT t1.v1 t1_v1, t1.v2 t1_v2, t1.v3 t1_v3, t2.v1 t2_v1, t2.v2 t2_v2, t2.v3 t2_v3 FROM t1 ASOF LEFT JOIN t2 ON t1.v1 = t2.v1 and t1.v2 > t2.v2 order by t1.v1, t1.v3;
----
1 2 3 NULL NULL NULL
1 2 9 NULL NULL NULL
2 3 4 NULL NULL NULL

statement ok
drop table t1;

statement ok
drop table t2;
1 change: 1 addition & 0 deletions proto/batch_plan.proto
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,7 @@ message HashJoinNode {
// Null safe means it treats `null = null` as true.
// Each key pair can be null safe independently. (left_key, right_key, null_safe)
repeated bool null_safe = 6;
optional plan_common.AsOfJoinDesc asof_desc = 7;
}

message SortMergeJoinNode {
Expand Down
1 change: 1 addition & 0 deletions src/batch/executors/benches/hash_join.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ fn create_hash_join_executor(
"HashJoinExecutor".into(),
CHUNK_SIZE,
None,
None,
BatchSpillMetrics::for_test(),
ShutdownToken::empty(),
MemoryContext::none(),
Expand Down
Loading

0 comments on commit a2dbe7d

Please sign in to comment.