[coverage] Conformance findings: CLOUDFETCH-012

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

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
52/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Calme
Stack technique
sql, typescript
Domaine
api, backend

Piste de recherche

Commencez par le test xfail du PR de couverture pour CLOUDFETCH-012 et par les chemins du driver qui gèrent les options de executeStatement et databricks.cloudfetch.enabled. Comparez le comportement attendu avec le PR de référence 225, puis suivez les requêtes ExecuteStatement et CreateSession de SEA/kernel. C’est terminé lorsque le contrat est respecté : INLINE et ARROW_STREAM sont utilisés, can_cloud_download est absent, au moins une ligne est renvoyée et il y a zéro appel à cloud_download.

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

Description

Summary

Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-nodejs. Each finding is committed as an expected-failure (xfail) test in the coverage PR — the test asserts the CORRECT (post-fix) behavior and stays red until THIS driver (databricks/databricks-sql-nodejs) is fixed, then flips green as a tripwire.

Findings

  • CLOUDFETCH-012 [sea]: SEA/kernel path silently ignores CloudFetch-disable: both per-statement useCloudFetch:false (driver logs "no-op on kernel") and the connection-level databricks.cloudfetch.enabled=false extraParameter are dropped, so ExecuteStatement still sends disposition=INLINE_OR_EXTERNAL_LINKS instead of INLINE
    • failing test: CLOUDFETCH-012 — cloudfetch disabled: disposition=INLINE, no can_cloud_download conf, 0 cloud downloads [sea] (see the coverage PR diff under tests/)
  • CLOUDFETCH-012: SEA/kernel path silently ignores CloudFetch-disable: both per-statement executeStatement(sql, {useCloudFetch:false}) (driver logs "no-op on kernel") and the connection-level databricks.cloudfetch.enabled=false extraParameter are dropped, so ExecuteStatement still sends disposition=INLINE_OR_EXTERNAL_LINKS instead of INLINE and callers who disable CloudFetch keep receiving external links

Reproduce & Expected

CLOUDFETCH-012 — Validates that when CloudFetch is disabled, no CloudFetch activity occurs and results are fetched via the driver's inline result path instead.

Reproduce:

  • Execute query with CloudFetch disabled

Expected (per the shared spec):

  • completes without an exception
  • result has at least 1 row(s)
  • [thrift] ExecuteStatement request canDownloadResult == False
  • [thrift] exactly 0 cloud_download call(s)
  • [sea] ExecuteStatement request disposition == 'INLINE'
  • [sea] ExecuteStatement request format == 'ARROW_STREAM'
  • [sea] CreateSession request session_confs.can_cloud_download is absent
  • [sea] exactly 0 cloud_download call(s)
  • full assertion contract:
result:
- no_exception: true
- row_count_min: 1
- result_not_null_with_data: true
protocol:
  thrift:
  - request_field:
      method: ExecuteStatement
      path: canDownloadResult
      equals: false
  - call_min:
      method: FetchResults
      min: 1
  - call_count:
      method: cloud_download
      expected: 0
  sea:
  - request_field:
      operation: ExecuteStatement
      path: disposition
      equals: INLINE
  - request_field:
      operation: ExecuteStatement
      path: format
      equals: ARROW_STREAM
  - request_field:
      operation: CreateSession
      path: session_confs.can_cloud_download
      present: false
  - call_count:
      method: cloud_download
      expected: 0

Context

Langage dominant
TypeScript
Étoiles
36
Forks
50
Merge moyen
13 h 46 min
PR mergées (30 j)
9

Guide de contribution

Ouvrir le guide de contribution

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-nodejs

Toutes les issues de databricks/databricks-sql-nodejs

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

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