---
title: "Pixeltable June 2026 Release Highlights"
date: "2026-07-22"
author: "Pixeltable Team"
tags:
  - Release
  - Pixeltable
  - Changelog
  - SQL
  - Production AI
description: "v0.6.6 adds import_sql() for SQLAlchemy queries, Table.compute() to run computed columns without storing the row, and retires data sharing."
url: "https://www.pixeltable.com/blog/pixeltable-june-2026-release-highlights"
---

# Pixeltable June 2026 Release Highlights

We're happy to share our latest releases from June. This post goes into detail on v0.6.6. For v0.6.1 through v0.6.5, see the [May/June roundup](/blog/pixeltable-may-june-2026-release-highlights).

 
Install with:

 
```bash
pip install -U pixeltable
```

 
And a quick celebration before the release notes: our [YouTube channel](https://www.youtube.com/@PixeltableHQ) just crossed 20,000 subscribers. That is a big one for us. Thank you if you helped get us there. If you have not subscribed yet, [please do](https://www.youtube.com/@PixeltableHQ). We share build walkthroughs and release demos there.

 
The full change list for v0.6.6 is in the [Pixeltable changelog](https://docs.pixeltable.com/changelog/changelog) and the [GitHub compare view](https://github.com/pixeltable/pixeltable/compare/v0.6.5...v0.6.6).

 
## Import SQL rows into a Pixeltable table

 
Facts often live in Postgres. Bytes live in S3. Someone wants a model to use both. The awkward part is getting the SQL rows into the same place as the media without a hand-written sync script.

 
`import_sql()` loads a SQLAlchemy table or query into a Pixeltable table. It creates the table by default, or appends to a compatible one. The import infers the schema. A schema override can treat an image URL as an image column when the inferred type is wrong. Computed columns can then run on the image while the other source fields stay on the row.

 
```python
import pixeltable as pxt
from pixeltable.io.sql import import_sql

t = import_sql(
 products, # SQLAlchemy Table or select()
 engine,
 'app/products',
 schema_overrides={'image_url': pxt.Image},
)
```

 
Sources: [SQL import/export cookbook](https://docs.pixeltable.com/howto/cookbooks/data/data-export-sql) · [#1324](https://github.com/pixeltable/pixeltable/pull/1324)

 
If you need labels out to analytics afterward, `export_iceberg()` already shipped earlier ([#1301](https://github.com/pixeltable/pixeltable/pull/1301)). See the [Iceberg export guide](/blog/export-iceberg-lakehouse-bridge-pixeltable) and the [analytics export cookbook](https://docs.pixeltable.com/howto/cookbooks/data/data-export-analytics).

 
## Compute without persisting

 
Sometimes you want the filled-in row without keeping it. A dry run. A "try it" endpoint. A review step before anyone hits insert. `Table.compute()` takes the same input shape as `insert()`, runs the computed columns, and returns the results. Nothing is written to the table.

 
```python
import pixeltable as pxt
import pixeltable.functions as pxtf

t = pxt.create_table('demo.prompts', {'prompt': pxt.String}, if_exists='ignore')

messages = [{'role': 'user', 'content': t.prompt}]
t.add_computed_column(
 output=pxtf.openai.chat_completions(
 messages=messages,
 model='gpt-4o-mini',
 ),
 if_exists='ignore',
)
t.add_computed_column(
 response=t.output.choices[0].message.content,
 if_exists='ignore',
)

# Same schema rules as insert(); nothing is persisted
rows = t.compute([{'prompt': 'hello'}])
print(rows[0]['response'])
```

 
Want that over HTTP? `FastAPIRouter.add_compute_route()` is the same idea as `add_insert_route()`, except no row is stored.

 
```python
import fastapi
import pixeltable as pxt
from pixeltable.serving import FastAPIRouter

t = pxt.get_table('demo.prompts')

app = fastapi.FastAPI()
router = FastAPIRouter()
router.add_compute_route(
 t, path='/preview', inputs=['prompt'], outputs=['prompt', 'response']
)
app.include_router(router)
# POST /preview {"prompt": "..."} → computed fields; table unchanged
```

 
Sources: [Compute without persisting](https://docs.pixeltable.com/howto/deployment/serving#compute-without-persisting) · [#1366](https://github.com/pixeltable/pixeltable/pull/1366)

 
## We retired data sharing

 
We retired data sharing in this release. That includes `pxt.publish()`, `pxt.replicate()`, and the related push and pull APIs. If you want an early preview of what we are building to supersede it, [reach out to the team](/contact).

 
Sources: [#1414](https://github.com/pixeltable/pixeltable/pull/1414)

 
## What's next?

 
Follow us on [LinkedIn](https://www.linkedin.com/company/pixeltablehq/) for the July highlights, including [class-based table schemas](https://github.com/pixeltable/pixeltable/pull/1434), [Meta's SAM 3 for prompted segmentation](https://github.com/pixeltable/pixeltable/pull/1336), and [cleaner column APIs for agents](https://github.com/pixeltable/pixeltable/pull/1453).