Skip to content

Commit 1095906

Browse files
authored
Merge pull request #1 from NotHimmel/main
Rebrand for IvorySQL distribution: ivy_mooncake
2 parents b7c67e0 + 3a47a46 commit 1095906

12 files changed

Lines changed: 41 additions & 62 deletions

‎.gitmodules‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
[submodule "duckdb_mooncake"]
2-
path = duckdb_mooncake
3-
url = https://github.com/Mooncake-Labs/duckdb_mooncake.git
4-
[submodule "moonlink"]
5-
path = moonlink
6-
url = https://github.com/Mooncake-Labs/moonlink.git
7-
[submodule "pg_duckdb"]
8-
path = pg_duckdb
9-
url = https://github.com/duckdb/pg_duckdb.git
1+
[submodule "ivy_moonlink"]
2+
path = ivy_moonlink
3+
url = https://github.com/IvorySQL/ivy_moonlink.git
4+
[submodule "ivy_duckdb"]
5+
path = ivy_duckdb
6+
url = https://github.com/IvorySQL/ivy_duckdb.git
7+
[submodule "ivy_duckdb_mooncake"]
8+
path = ivy_duckdb_mooncake
9+
url = https://github.com/IvorySQL/ivy_duckdb_mooncake.git

‎.vscode/c_cpp_properties.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
{
55
"name": "Dev Container",
66
"includePath": [
7-
"${workspaceFolder}/pg_duckdb/**",
7+
"${workspaceFolder}/ivy_duckdb/**",
88
"/home/vscode/.pgrx/18.*/src/**"
99
]
1010
}

‎Cargo.toml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ pg18 = ["pgrx/pg18"]
2121

2222
[dependencies]
2323
bincode = "2"
24-
moonlink_rpc.path = "moonlink/src/moonlink_rpc"
25-
moonlink_service = { path = "moonlink/src/moonlink_service", optional = true }
24+
moonlink_rpc.path = "ivy_moonlink/src/moonlink_rpc"
25+
moonlink_service = { path = "ivy_moonlink/src/moonlink_service", optional = true }
2626
native-tls = "0.2"
2727
pgrx = "0.16.1"
2828
postgres.git = "https://github.com/Mooncake-Labs/rust-postgres.git"

‎Dockerfile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ RUN cargo install --locked cargo-pgrx@0.16.1 \
1919
WORKDIR pg_mooncake
2020

2121
COPY Cargo.toml Makefile pg_mooncake.control .
22-
COPY moonlink moonlink
22+
COPY ivy_moonlink ivy_moonlink
2323
COPY src src
2424

2525
RUN make package

‎Makefile‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ PG_VERSION ?= pg18
22
export PG_CONFIG := $(shell cargo pgrx info pg-config $(PG_VERSION))
33
MAKEFLAGS += --no-print-directory
44

5-
.PHONY: help clean duckdb_mooncake format install package pg_duckdb run test
5+
.PHONY: help clean ivy_duckdb_mooncake format install package ivy_duckdb run test
66

77
help:
88
@echo "Usage: make <COMMAND> [OPTIONS]"
99
@echo ""
1010
@echo "Commands:"
1111
@echo " run Build and run pg_mooncake for development"
1212
@echo " install Build and install pg_mooncake"
13-
@echo " pg_duckdb Build and install pg_duckdb"
13+
@echo " ivy_duckdb Build and install ivy_duckdb"
1414
@echo " package Build an installation package for release"
1515
@echo " format Format the codebase"
1616
@echo " test Run all tests"
@@ -22,8 +22,8 @@ help:
2222
clean:
2323
@cargo clean
2424

25-
duckdb_mooncake:
26-
@$(MAKE) -C duckdb_mooncake GEN=ninja OVERRIDE_GIT_DESCRIBE=v1.4.1
25+
ivy_duckdb_mooncake:
26+
@$(MAKE) -C ivy_duckdb_mooncake GEN=ninja OVERRIDE_GIT_DESCRIBE=v1.4.1
2727

2828
format:
2929
@cargo fmt
@@ -35,10 +35,10 @@ install:
3535
package:
3636
@cargo pgrx package
3737

38-
pg_duckdb:
39-
@$(MAKE) -C pg_duckdb install -j$(shell nproc)
38+
ivy_duckdb:
39+
@$(MAKE) -C ivy_duckdb install -j$(shell nproc)
4040

41-
run: pg_duckdb
41+
run: ivy_duckdb
4242
@cargo pgrx run
4343

4444
test:

‎README.md‎

Lines changed: 18 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,44 @@
11
<div align=center>
2-
<h1 align=center>pg_mooncake 🥮</h1>
3-
<h4 align=center>Real-time analytics on Postgres tables</h4>
2+
<h1 align=center>ivy_mooncake 🥮</h1>
3+
<h4 align=center>Real-time analytics on Postgres tables (IvorySQL distribution)</h4>
44

55
[![][docs-shield]][docs-link]
66
[![][license-shield]][license-link]
7-
[![][slack-shield]][slack-link]
8-
[![][x-shield]][x-link]
97
</div>
108

119
## Overview
1210

13-
**pg_mooncake** is a Postgres extension that creates a columnstore mirror of your Postgres tables in [Iceberg][iceberg-link], enabling fast analytics queries with sub-second freshness:
11+
**ivy_mooncake** is the IvorySQL distribution of [pg_mooncake][upstream-link], a Postgres extension that creates a columnstore mirror of your Postgres tables in [Iceberg][iceberg-link], enabling fast analytics queries with sub-second freshness:
1412
- **Real-time ingestion** powered by [moonlink][moonlink-link] for streaming and batched INSERT/UPDATE/DELETE.
1513
- **Fast analytics** accelerated by [DuckDB][pgduckdb-link], ranking top 10 on [ClickBench][clickbench-link].
1614
- **Postgres-native** allowing you to query a columnstore table just like a regular Postgres table.
1715
- **Iceberg-native** making your data readily accessible by other query engines.
1816

19-
## Installation
20-
21-
### Option 1: Docker
22-
23-
For new users, we recommend using the Docker image to get started quickly:
24-
```bash
25-
docker run --name mooncake --rm -e POSTGRES_PASSWORD=password mooncakelabs/pg_mooncake
26-
```
17+
This fork tracks IvorySQL-maintained branches of `pg_duckdb`, `moonlink`, and `duckdb_mooncake` (`ivy_duckdb`, `ivy_moonlink`, `ivy_duckdb_mooncake`). The repository name is `ivy_mooncake`, but the extension it installs is unchanged — `pg_mooncake` — so SQL-side compatibility with upstream is preserved.
2718

28-
This will start Postgres with pg_mooncake preinstalled. You can then connect to it using `psql` with the default user `postgres`:
29-
```bash
30-
docker exec -it mooncake psql -U postgres
31-
```
32-
33-
### Option 2: From Source
19+
## Installation
3420

35-
To build pg_mooncake, first install [Rust][rust-install], [pgrx][pgrx-install], and [the build tools for DuckDB][duckdb-install].
21+
To build ivy_mooncake, first install [Rust][rust-install], [pgrx][pgrx-install], and [the build tools for DuckDB][duckdb-install].
3622

37-
Then, clone the repository:
23+
Then, clone the repository with submodules:
3824
```bash
39-
git clone --recurse-submodules https://github.com/Mooncake-Labs/pg_mooncake.git
25+
git clone --recurse-submodules https://github.com/IvorySQL/ivy_mooncake.git
4026
```
4127

4228
To build and install for Postgres versions 14-18, run:
4329
```bash
4430
cargo pgrx init --pg18=$(which pg_config) # Replace with your Postgres version
45-
make pg_duckdb # Skip if pg_duckdb is already installed
31+
make ivy_duckdb # Skip if ivy_duckdb is already installed
4632
make install PG_VERSION=pg18
4733
```
4834

49-
Finally, add pg_mooncake to `shared_preload_libraries` in your `postgresql.conf` file and enable logical replication:
35+
Finally, add `pg_mooncake` to `shared_preload_libraries` in your `postgresql.conf` file and enable logical replication:
5036
```ini
5137
duckdb.allow_community_extensions = true
5238
shared_preload_libraries = 'pg_duckdb,pg_mooncake'
5339
wal_level = logical
5440
```
5541

56-
For a complete walkthrough, refer to our [Dockerfile][dockerfile-link].
57-
5842
## Quick Start
5943

6044
First, create the pg_mooncake extension:
@@ -91,26 +75,21 @@ Finally, query `trades_iceberg` to see that it reflects the up-to-date state of
9175
SELECT avg(price) FROM trades_iceberg WHERE symbol = 'AMZN';
9276
```
9377

94-
## Contributing
78+
Note: The repository is renamed to `ivy_mooncake` only at the GitHub-fork level. Inside the repo, the extension, the cdylib, and all SQL-level identifiers (`pg_mooncake` extension, `mooncake.*` schema, `USING mooncake` access method, `INSTALL mooncake FROM community`) are intentionally unchanged from upstream so SQL written against `pg_mooncake` continues to work.
79+
80+
## Upstream
9581

96-
pg_mooncake is an open-source project maintained by [Mooncake Labs][mooncake-link] and licensed under the [MIT License][license-link]. We'd love your help to make it even better! Join [our Slack][slack-link], participate in [discussions][discussions-link], open [issues][issues-link] to report bugs or suggest features, contribute code and documentation, or help us improve the project in any way. All contributions are welcome! 🥮
82+
ivy_mooncake is a fork of [Mooncake-Labs/pg_mooncake][upstream-link] under the [MIT License][license-link].
9783

9884
[clickbench-link]: https://www.mooncake.dev/blog/clickbench-v0.1
99-
[discussions-link]: https://github.com/Mooncake-Labs/pg_mooncake/discussions
100-
[dockerfile-link]: https://github.com/Mooncake-Labs/pg_mooncake/blob/main/Dockerfile
10185
[docs-link]: https://docs.mooncake.dev/
10286
[docs-shield]: https://img.shields.io/badge/docs-mooncake?logo=readthedocs&logoColor=white
10387
[duckdb-install]: https://duckdb.org/docs/stable/dev/building/overview.html#prerequisites
10488
[iceberg-link]: https://iceberg.apache.org/
105-
[issues-link]: https://github.com/Mooncake-Labs/pg_mooncake/issues
106-
[license-link]: https://github.com/Mooncake-Labs/pg_mooncake/blob/main/LICENSE
89+
[license-link]: ./LICENSE
10790
[license-shield]: https://img.shields.io/badge/License-MIT-blue
108-
[mooncake-link]: https://mooncake.dev/
109-
[moonlink-link]: https://github.com/Mooncake-Labs/moonlink
110-
[pgduckdb-link]: https://github.com/duckdb/pg_duckdb
91+
[moonlink-link]: https://github.com/IvorySQL/ivy_moonlink
92+
[pgduckdb-link]: https://github.com/IvorySQL/ivy_duckdb
11193
[pgrx-install]: https://github.com/pgcentralfoundation/pgrx?tab=readme-ov-file#getting-started
11294
[rust-install]: https://www.rust-lang.org/tools/install
113-
[slack-link]: https://join.slack.com/t/mooncake-devs/shared_invite/zt-2sepjh5hv-rb9jUtfYZ9bvbxTCUrsEEA
114-
[slack-shield]: https://img.shields.io/badge/Mooncake%20Devs-purple?logo=slack
115-
[x-link]: https://x.com/mooncakelabs
116-
[x-shield]: https://img.shields.io/twitter/url?label=%40mooncakelabs&url=https%3A%2F%2Fx.com%2Fmooncakelabs
95+
[upstream-link]: https://github.com/Mooncake-Labs/pg_mooncake

‎ivy_duckdb‎

Submodule ivy_duckdb added at b0c10ca

‎ivy_moonlink‎

Submodule ivy_moonlink added at 9a5af42

‎moonlink‎

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)