Columns and types
VARCHAR
- ticker
TIMESTAMP
- executionDate
DOUBLE
- splitFrom
- splitTo
Current logical schema for lake.stock_splits
Inspect the complete lake.stock_splits schema
| Column | Type |
|---|---|
| ticker | VARCHAR |
| executionDate | TIMESTAMP |
| splitFrom | DOUBLE |
| splitTo | DOUBLE |
No matching rows. Clear the filter to see all records.
Current logical schema for lake.stock_splits
Query lake.stock_splits using the column names and types below. The query validator and engine use this logical catalog; a field absent from an older shard returns typed NULL.
What this table contains
Split events per ticker: execution date and the from/to ratio.
Inspect recorded split event ratios
Query example, not executed here. The dates and filters define the proposed research scope; returned rows and current coverage must be checked in your workspace.
The ratio records a split event; it does not instruct you to adjust an already adjusted closing series again. Use unadjustedClose when a calculation specifically needs the pre-adjustment price basis.
SELECT ticker, executionDate, splitFrom, splitTo
FROM lake.stock_splits
WHERE ticker = 'AAPL'
AND executionDate >= TIMESTAMP '2020-01-01'
AND executionDate < TIMESTAMP '2021-01-01'
ORDER BY executionDate
LIMIT 20;Submit the stock_splits example and read back its parts
Run the exact SQL through the Python SDK
Save this page's SQL as query.sql and the runner below as query.py. Use a registered key with lake scope from Developers. The runner submits the displayed stock_splits query once, saves its operation, waits on that same ID, saves the returned manifest and downloads its Parquet parts.
This submission has not been executed for the reference page. Inspect the SQL, dates and resource limits before running it. Reuse the request key only for this identical SQL and limits; use a new key when changing them.
python3 -m pip install nexustrade==1.42.0
export NEXUSTRADE_API_KEY="YOUR_LAKE_SCOPED_KEY"
python3 query.py
import json
from pathlib import Path
from nexustrade import NexusTradeClient
# Save the SQL displayed on this page as query.sql.
sql = Path("query.sql").read_text()
client = NexusTradeClient.from_environment()
operation = client.create_lake_query(
{"query": sql, "limits": {"timeoutSeconds": 30, "maxRows": 50,
"maxResultBytes": 1048576}},
idempotency_key="reference-stock_splits-20261012-v1",
)
Path("query-operation.json").write_text(json.dumps(operation, indent=2))
finished = client.wait_for_lake_query(operation["id"])
if finished["status"] != "completed":
raise RuntimeError(finished)
manifest = client.get_lake_query_manifest(operation["id"])["result"]
Path("query-manifest.json").write_text(json.dumps(manifest, indent=2))
print(json.dumps(manifest, indent=2))
for part in manifest["parts"]:
Path(f"query-{part['part']}.parquet").write_bytes(
client.download_lake_query_part(operation["id"], part["part"], max_bytes=1048576)
)
Coverage and timing
Inspect source coverage and timing before using the rows
Split events per ticker: execution date and the from/to ratio.
Do NOT re-apply these onto `sec_daily_ohlc.closingPrice` — that series is already split-adjusted, so applying the ratio again double-counts. Use this table to reason about split events themselves, or alongside `unadjustedClose`.
No comments yet.