0

I'm trying to figure out how to use AWS S3 Select, everything seems pretty straight forward, but the following query just doesn't want to work:
select r.value from S3Object[*].outputs.private_subnets r
the above returns Invalid Path component.

This is the JSON I'm working with:

{
    "outputs": {
        "private_subnets": {
            "value": [
                "subnet-1",
                "subnet-2",
                "subnet-3"
            ],
            "type": [
                "tuple",
                [
                    "string",
                    "string",
                    "string"
                ]
            ]
        },
        "public_subnets": {
            "value": [
                "subnet-1",
                "subnet-2",
                "subnet-3"
            ],
            "type": [
                "tuple",
                [
                    "string",
                    "string",
                    "string"
                ]
            ]
        },
        "vpc_id": {
            "value": "vpc-123",
            "type": "string"
        }
    }
}

I just don't understand the error, is value a special word in SQL?
Here's what I've tried so far:
select r from S3Object[*].outputs.private_subnets r:

{
    "r": {
        "value": [
            "subnet-1",
            "subnet-2",
            "subnet-3"
        ],
        "type": [
            "tuple",
            [
                "string",
                "string",
                "string"
            ]
        ]
    }
}

select r.type from S3Object[*].outputs.private_subnets r:

{
    "type": [
        "tuple",
        [
            "string",
            "string",
            "string"
        ]
    ]
}

So I just don't understand what's the problem with value.

Alex Zel
  • 660
  • 2
  • 12
  • 27

1 Answers1

2

You are unable to select this because "value" is a reserved keyword. https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference-keyword-list.html . This can be escaped using double quotes around the value.

Sandeep Rao
  • 1,749
  • 6
  • 23
  • 41