# devopsgym / codegen__minio__minio-14406

- taskset: [devopsgym](https://harnessreport.com/tasks/devopsgym.md)
- difficulty: hard
- category: code-generation
- language: 
- runnable from the site: no
- agent timeout: 3000s

## Results by harness

_none yet_

## Instruction

```
This is a code generation task. You are expected to write working code that solves the described problem.
<issue>
      ## Expected Behavior
As per https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html#s3-glacier-select-sql-reference-from, the "is not missing" clause can be used to check for omitted fields.

I uploaded a file with the following content to Amazon S3:
```
{"request":{"uri":"/1","header":{"User-Agent":"test"}}}
{"request":{"uri":"/2","header":{}}}
```

Querying the aforementioned file with the query `select * from s3object[*] as s where s.request.header['User-Agent'] is not missing` results in the first line being returned, as shown below:

```
$ aws s3api select-object-content --bucket $BUCKET --key test.json --input-serialization 'JSON={Type=LINES},CompressionType=NONE' --output-serialization 'JSON={}' --expression-type SQL --expression "select * from s3object[*] as s where s.request.header['User-Agent'] is not missing" output
$ cat output 
{"request":{"uri":"/1","header":{"User-Agent":"test"}}}
```

## Current Behavior
When using minio, running the aforementioned query results in an error:

```
$ aws s3api select-object-content --profile minio --endpoint-url $MINIO_ENDPOINT --bucket $BUCKET --key test.json --input-serialization 'JSON={Type=LINES},CompressionType=NONE' --output-serialization 'JSON={}' --expression-type SQL --expression "select * from s3object[*] as s where s.request.header['User-Agent'] is not missing" output

An error occurred (InternalError) when calling the SelectObjectContent operation: invalid arithmetic operator
```

## Possible Solution
Go isn't exactly my forte but referring to https://github.com/minio/minio/blob/master/internal/s3select/sql/parser.go I didn't find "missing" as being one of the recognized keywords, therefore I suspect it is not implemented at this time.

## Steps to Reproduce (for bugs)
Please see above.

## Context
I'm trying to query JSON files where a certain field is missing.

## Regression
No

## Your Environment
* Version used (`minio --version`): RELEASE.2022-02-18T01-50-10Z
* Server setup and configuration: Minio running in single filesystem mode
* Operating System and version (`uname -a`): ```Linux storage1 5.4.0-96-generic #109-Ubuntu SMP Wed Jan 12 16:49:16 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux```

</issue>
Focus on implementing the required functionality correctly and efficiently. Treat this as a programming challenge.
You are not allowed to read git history.
```
---
Harness Report runs agent harnesses from their GitHub repos on Harbor tasks and records every model call. Every page is also `.md` and `.json`; index: https://harnessreport.com/llms.txt · MCP: https://harnessreport.com/mcp
