ArrowIPCStreamIterator.SchemaBytes() returns zero bytes after a cold start

Ouverte
#312 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@jasonlin45 y travaille déjà.

Depuis le 4/3/2026.

  • #327 par @jasonlin45 — ouverte

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
38/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
go, sql
Domaine
databases

Piste de recherche

Commencez par ArrowIPCStreamIterator.SchemaBytes() et le chemin GetArrowIPCStreams décrit dans le reproducer. Réexécutez l’exemple avec un Databricks SQL Warehouse arrêté, comparez-le avec un warehouse actif et suivez la manière dont la réponse SELECT 1 fournit les données de schéma. C’est terminé lorsque SchemaBytes() renvoie des octets de schéma non vides après le chemin de démarrage à froid du warehouse.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Context

Given an Databricks SQL Warehouse that is currently stopped and this code:

	driverCntor, driverErr := dbsql.NewConnector(options...)
	if driverErr != nil {
		return driverErr
	}

	conn, connErr := driverCntor.Connect(ctx)
	if connErr != nil {
		return connErr
	}

	ctx := context.Background()
	rows, queryErr := conn.(driver.QueryerContext).QueryContext(ctx, "SELECT 1", []driver.NamedValue{})
	if queryErr != nil {
		return queryErr
	}
	defer rows.Close()

	ipcStreamIt, ipcStreamErr := rows.(dbsqlrows.Rows).GetArrowIPCStreams(ctx)
	if ipcStreamErr != nil {
		return ipcStreamErr
	}
	defer ipcStreamIt.Close()

	schemaBytes, schemaErr := ipcStreamIt.SchemaBytes()
	if schemaErr != nil {
		return schemaErr
	}

	if len(schemaBytes) == 0 {
		return fmt.Errorf("no schema bytes")
	}

Expected result

No error

Actual result

Error: no schema bytes

Notes

  • This only happens when the Databricks SQL Warehouse is stopped
  • When the Databricks SQL Warehouse is active, schemaBytes contains correct data
Langage dominant
Go
Étoiles
53
Forks
69
Merge moyen
2 j 12 h
PR mergées (30 j)
16

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de databricks/databricks-sql-go

Toutes les issues de databricks/databricks-sql-go

Issues similaires

Plus d'issues Go

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.