Skip to content

Add nullable boolean attribute to column type#6

Merged
pahjbo merged 2 commits into
mainfrom
copilot/add-nullability-boolean-attribute
Mar 18, 2026
Merged

Add nullable boolean attribute to column type#6
pahjbo merged 2 commits into
mainfrom
copilot/add-nullability-boolean-attribute

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 17, 2026

TAP schema had no way to describe column nullability, which is required by VOSI tables and defined in VO-DML.

Changes

  • tapschema.vodsl — Added optional nullable attribute to the column otype:

    nullable: ivoa:boolean @? "indicates whether the column may have null values";
    
  • tapschema.vo-dml.xml — Added corresponding column.nullable attribute element (minOccurs=0).

  • tap2VOSI.xsl — Emits <flag>nullable</flag> when nullable=true; suppresses output otherwise (per VODataService spec). nullable added to the column template XPath selection.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • repo.dev.uksrc.org
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.xml/javax.xml.namespace=ALL-UNNAMED -XX:MaxMetaspaceSize=384m -XX:&#43;HeapDumpOnOutOfMemoryError -Xms256m -Xmx512m -Dfile.encoding=UTF-8 -Duser.country -Duser.language=en (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>column nullability</issue_title>
<issue_description>tapschema does not have a way of describing whether a column is nullable - this concept is required by VOSI tables and is of course described by VO-DML</issue_description>

Comments on the Issue (you are @copilot in this section)

@pahjbo A Boolean attribute should be added into the VODSL definition

📍 Connect Copilot coding agent with Jira, Azure Boards or Linear to delegate work to Copilot in one click without leaving your project management tool.

Co-authored-by: pahjbo <273267+pahjbo@users.noreply.github.com>
Copilot AI changed the title [WIP] Add column nullability to VODSL definition Add nullable boolean attribute to column type Mar 17, 2026
Copilot AI requested a review from pahjbo March 17, 2026 20:16
Copy link
Copy Markdown
Member

@pahjbo pahjbo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is ready for merging

@pahjbo pahjbo marked this pull request as ready for review March 18, 2026 08:24
Copilot AI review requested due to automatic review settings March 18, 2026 08:24
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds support for representing TAP schema column nullability in the TAPSchema data model and ensures it can be emitted into VOSI Tables output, aligning the model with VO-DML and VODataService expectations.

Changes:

  • Add optional nullable boolean to the column object type in tapschema.vodsl.
  • Add corresponding column.nullable attribute (0..1 multiplicity) to the VO-DML XML model.
  • Update tap2VOSI.xsl to emit <flag>nullable</flag> only when nullable=true.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
src/main/vodsl/tapschema.vodsl Introduces optional column.nullable attribute at the VODSL model level.
src/main/vo-dml/tapschema.vo-dml.xml Mirrors the new attribute in the VO-DML XML with minOccurs=0.
src/main/resources/tap2VOSI.xsl Emits the VOSI nullable flag when the input column is marked nullable.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/main/resources/tap2VOSI.xsl
Comment thread src/main/resources/tap2VOSI.xsl
@pahjbo pahjbo merged commit d1952a0 into main Mar 18, 2026
5 of 6 checks passed
@pahjbo pahjbo deleted the copilot/add-nullability-boolean-attribute branch March 18, 2026 09:56
Copilot AI requested a review from pahjbo March 18, 2026 09:57
Copilot stopped work on behalf of pahjbo due to an error March 18, 2026 09:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

column nullability

3 participants