influxdata / influxdb

Scalable datastore for metrics, events, and real-time analytics
https://influxdata.com
Apache License 2.0
28.98k stars 3.56k forks source link

Flakey Test: FluxEndToEnd #15450

Open desa opened 5 years ago

desa commented 5 years ago

Test had repeatedly flaked during UI changes.

https://circleci.com/gh/influxdata/influxdb/65341?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link

Failed
=== RUN   TestFluxEndToEnd
ts=2019-10-17T14:37:12.511392Z lvl=info msg="Welcome to InfluxDB" log_id=0IYYGNkl000 version= commit= build_date=
ts=2019-10-17T14:37:12.616784Z lvl=info msg="Resources opened" log_id=0IYYGNkl000 service=bolt path=/tmp/217361176/influxd.bolt
ts=2019-10-17T14:37:12.627383Z lvl=info msg="Opening Series File (start)" log_id=0IYYGNkl000 service=storage-engine service=series-file op_name=series_file_open path=/tmp/217361176/engine/_series op_event=start
ts=2019-10-17T14:37:12.713995Z lvl=info msg="Opening Series File (end)" log_id=0IYYGNkl000 service=storage-engine service=series-file op_name=series_file_open path=/tmp/217361176/engine/_series op_event=end op_elapsed=86.632ms
ts=2019-10-17T14:37:12.720430Z lvl=info msg="Index opened" log_id=0IYYGNkl000 service=storage-engine index=tsi partitions=8
ts=2019-10-17T14:37:12.722346Z lvl=info msg="Reloaded WAL" log_id=0IYYGNkl000 service=storage-engine path=/tmp/217361176/engine/wal duration=0.087ms
ts=2019-10-17T14:37:12.722482Z lvl=info msg=Starting log_id=0IYYGNkl000 service=storage-engine component=retention_enforcer check_interval=1h
ts=2019-10-17T14:37:12.729892Z lvl=info msg="Starting query controller" log_id=0IYYGNkl000 service=storage-reads concurrency_quota=10 initial_memory_bytes_quota_per_query=9223372036854775807 memory_bytes_quota_per_query=9223372036854775807 max_memory_bytes=0 queue_size=10
ts=2019-10-17T14:37:12.894971Z lvl=debug msg=Ticked log_id=0IYYGNkl000 svc=taskd/scheduler now=1571323032 tasks_affected=0
ts=2019-10-17T14:37:13.094750Z lvl=debug msg=Ticked log_id=0IYYGNkl000 svc=taskd/scheduler now=1571323033 tasks_affected=0
ts=2019-10-17T14:37:13.296187Z lvl=info msg=Listening log_id=0IYYGNkl000 service=http transport=http addr=127.0.0.1:0 port=41391
ts=2019-10-17T14:37:14.094741Z lvl=debug msg=Ticked log_id=0IYYGNkl000 svc=taskd/scheduler now=1571323034 tasks_affected=0
ts=2019-10-17T14:37:15.094773Z lvl=debug msg=Ticked log_id=0IYYGNkl000 svc=taskd/scheduler now=1571323035 tasks_affected=0
ts=2019-10-17T14:37:16.094724Z lvl=debug msg=Ticked log_id=0IYYGNkl000 svc=taskd/scheduler now=1571323036 tasks_affected=0
--- FAIL: TestFluxEndToEnd (236.11s)
==================
WARNING: DATA RACE
Write at 0x00c001895618 by goroutine 83:
  github.com/influxdata/influxdb/tsdb/tsm1.(*entry).add()
      /go/src/github.com/influxdata/influxdb/tsdb/tsm1/cache_entry.go:78 +0x2fa
  github.com/influxdata/influxdb/tsdb/tsm1.(*partition).write()
      /go/src/github.com/influxdata/influxdb/tsdb/tsm1/ring.go:223 +0x3d6
  github.com/influxdata/influxdb/tsdb/tsm1.(*ring).write()
      /go/src/github.com/influxdata/influxdb/tsdb/tsm1/ring.go:81 +0xec
  github.com/influxdata/influxdb/tsdb/tsm1.(*Cache).WriteMulti()
      /go/src/github.com/influxdata/influxdb/tsdb/tsm1/cache.go:134 +0x3bc
  github.com/influxdata/influxdb/tsdb/tsm1.(*Engine).WriteValues()
      /go/src/github.com/influxdata/influxdb/tsdb/tsm1/engine.go:617 +0x9a
  github.com/influxdata/influxdb/storage.(*Engine).writePointsLocked()
      /go/src/github.com/influxdata/influxdb/storage/engine.go:548 +0x11d
  github.com/influxdata/influxdb/storage.(*Engine).WritePoints()
      /go/src/github.com/influxdata/influxdb/storage/engine.go:520 +0x1eec
  github.com/influxdata/influxdb/storage.(*BufferedPointsWriter).Flush()
      /go/src/github.com/influxdata/influxdb/storage/points_writer.go:64 +0x13f
  github.com/influxdata/influxdb/query/stdlib/influxdata/influxdb.(*ToTransformation).Finish()
      /go/src/github.com/influxdata/influxdb/query/stdlib/influxdata/influxdb/to.go:460 +0xea
  github.com/influxdata/flux/execute.processMessage()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/execute/transport.go:205 +0x4b6
  github.com/influxdata/flux/execute.(*consecutiveTransport).processMessages()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/execute/transport.go:156 +0x107
  github.com/influxdata/flux/execute.(*consecutiveTransport).processMessages-fm()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/execute/transport.go:151 +0x4b
  github.com/influxdata/flux/execute.(*poolDispatcher).run()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/execute/dispatcher.go:132 +0x7a
  github.com/influxdata/flux/execute.(*poolDispatcher).Start.func1()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/execute/dispatcher.go:86 +0xa2

Previous read at 0x00c001895618 by goroutine 108:
  github.com/influxdata/influxdb/tsdb/tsm1.(*Engine).tagValuesNoPredicate.func2()
      /go/src/github.com/influxdata/influxdb/tsdb/tsm1/engine_schema.go:117 +0x2ff
  github.com/influxdata/influxdb/tsdb/tsm1.(*ring).applySerial()
      /go/src/github.com/influxdata/influxdb/tsdb/tsm1/ring.go:175 +0x143
  github.com/influxdata/influxdb/tsdb/tsm1.(*Cache).ApplyEntryFn()
      /go/src/github.com/influxdata/influxdb/tsdb/tsm1/cache.go:471 +0x7f
  github.com/influxdata/influxdb/tsdb/tsm1.(*Engine).tagValuesNoPredicate()
      /go/src/github.com/influxdata/influxdb/tsdb/tsm1/engine_schema.go:100 +0x398
  github.com/influxdata/influxdb/tsdb/tsm1.(*Engine).TagValues()
      /go/src/github.com/influxdata/influxdb/tsdb/tsm1/engine_schema.go:36 +0x2c8
  github.com/influxdata/influxdb/storage.(*Engine).TagValues()
      /go/src/github.com/influxdata/influxdb/storage/engine_schema.go:37 +0x173
  github.com/influxdata/influxdb/storage/readservice.(*store).TagValues()
      /go/src/github.com/influxdata/influxdb/storage/readservice/store.go:149 +0x450
  github.com/influxdata/influxdb/storage/reads.(*tagValuesIterator).Do()
      /go/src/github.com/influxdata/influxdb/storage/reads/reader.go:611 +0x3f8
  github.com/influxdata/influxdb/query/stdlib/influxdata/influxdb.(*Source).processTables()
      /go/src/github.com/influxdata/influxdb/query/stdlib/influxdata/influxdb/source.go:67 +0x106
  github.com/influxdata/influxdb/query/stdlib/influxdata/influxdb.(*readTagValuesSource).run()
      /go/src/github.com/influxdata/influxdb/query/stdlib/influxdata/influxdb/source.go:412 +0x214
  github.com/influxdata/influxdb/query/stdlib/influxdata/influxdb.(*Source).Run()
      /go/src/github.com/influxdata/influxdb/query/stdlib/influxdata/influxdb/source.go:48 +0x184
  github.com/influxdata/influxdb/query/stdlib/influxdata/influxdb.(*readTagValuesSource).Run()
      <autogenerated>:1 +0x57
  github.com/influxdata/flux/execute.(*executionState).do.func1()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/execute/executor.go:275 +0xaa

Goroutine 83 (running) created at:
  github.com/influxdata/flux/execute.(*poolDispatcher).Start()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/execute/dispatcher.go:63 +0x8b
  github.com/influxdata/flux/execute.(*executionState).do()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/execute/executor.go:288 +0x209
  github.com/influxdata/flux/execute.(*executor).Execute()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/execute/executor.go:75 +0x11b
  github.com/influxdata/flux/lang.(*Program).Start()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/lang/compiler.go:251 +0x395
  github.com/influxdata/flux/lang.(*AstProgram).Start()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/lang/compiler.go:361 +0x401
  github.com/influxdata/influxdb/query/control.(*Controller).executeQuery()
      /go/src/github.com/influxdata/influxdb/query/control/controller.go:417 +0x198
  github.com/influxdata/influxdb/query/control.(*Controller).processQueryQueue()
      /go/src/github.com/influxdata/influxdb/query/control/controller.go:380 +0x5c
  github.com/influxdata/influxdb/query/control.New.func1()
      /go/src/github.com/influxdata/influxdb/query/control/controller.go:189 +0x68

Goroutine 108 (finished) created at:
  github.com/influxdata/flux/execute.(*executionState).do()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/execute/executor.go:250 +0x158
  github.com/influxdata/flux/execute.(*executor).Execute()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/execute/executor.go:75 +0x11b
  github.com/influxdata/flux/lang.(*Program).Start()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/lang/compiler.go:251 +0x395
  github.com/influxdata/flux/lang.(*AstProgram).Start()
      /go/pkg/mod/github.com/influxdata/flux@v0.50.0/lang/compiler.go:361 +0x401
  github.com/influxdata/influxdb/query/control.(*Controller).executeQuery()
      /go/src/github.com/influxdata/influxdb/query/control/controller.go:417 +0x198
  github.com/influxdata/influxdb/query/control.(*Controller).processQueryQueue()
      /go/src/github.com/influxdata/influxdb/query/control/controller.go:380 +0x5c
  github.com/influxdata/influxdb/query/control.New.func1()
      /go/src/github.com/influxdata/influxdb/query/control/controller.go:189 +0x68
==================
jacobmarble commented 5 years ago

From Ben:

I think we need to read lock the entry in this loop:

https://github.com/influxdata/influxdb/blob/4fbf843f5bd965079d49dfc034f63da6a2acd211/tsdb/tsm1/ring.go#L171-L179

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 4 years ago

This issue has been automatically closed because it has not had recent activity. Please reopen if this issue is still important to you. Thank you for your contributions.

danxmoran commented 3 years ago

Looks like the read-lock suggested above was added at some point, I haven't seen the data race failure in the past few moths. I have seen other flaky failures in TestFluxEndToEnd; using this issue to track fixing those.

Most recently:

Failed
=== RUN   TestFluxEndToEnd/date/quarter_time
ts=2020-12-23T21:44:48.301000Z lvl=debug msg="user find by ID" log_id=0RGOo0fG000 store=new took=0.098ms
ts=2020-12-23T21:44:48.301836Z lvl=debug msg="org find by ID" log_id=0RGOo0fG000 store=new took=0.134ms
ts=2020-12-23T21:44:48.302204Z lvl=debug msg="bucket create" log_id=0RGOo0fG000 store=new took=0.505ms
ts=2020-12-23T21:44:48.307668Z lvl=debug msg="Bucket created" log_id=0RGOo0fG000 handler=bucket bucket="&{96252a2d91a2b92e 75d315fdd0385bf5 user TestFluxEndToEnd/date/quarter_time   0s {2020-12-23 21:44:48.302012343 +0000 UTC 2020-12-23 21:44:48.302013192 +0000 UTC}}"
ts=2020-12-23T21:44:48.308979Z lvl=debug msg=Request log_id=0RGOo0fG000 service=http method=POST host=127.0.0.1:34909 path=/api/v2/buckets query= proto=HTTP/1.1 status_code=201 response_size=605 content_length=-1 referrer= remote=127.0.0.1:46272 user_agent=Go-http-client took=9.419ms body="{\"orgID\":\"75d315fdd0385bf5\",\"type\":\"user\",\"name\":\"TestFluxEndToEnd/date/quarter_time\",\"retentionRules\":[],\"createdAt\":\"0001-01-01T00:00:00Z\",\"updatedAt\":\"0001-01-01T00:00:00Z\"}\n"
ts=2020-12-23T21:44:48.351102Z lvl=debug msg="user find by ID" log_id=0RGOo0fG000 store=new took=0.123ms
ts=2020-12-23T21:44:48.379719Z lvl=debug msg="org find" log_id=0RGOo0fG000 store=new took=0.155ms
ts=2020-12-23T21:44:48.439672Z lvl=debug msg="org find" log_id=0RGOo0fG000 store=new took=0.183ms
ts=2020-12-23T21:44:48.440121Z lvl=debug msg="bucket find" log_id=0RGOo0fG000 store=new took=0.189ms
ts=2020-12-23T21:44:51.794836Z lvl=debug msg=Request log_id=0RGOo0fG000 service=http method=POST host=127.0.0.1:34909 path=/api/v2/query query="orgID=75d315fdd0385bf5" proto=HTTP/1.1 status_code=200 response_size=353 content_length=30134 referrer= remote=127.0.0.1:46272 user_agent=Go-http-client took=3444.999ms body="{\"type\":\"flux\",\"query\":\"\",\"ast\":{\"type\":\"Package\",\"package\":\"main\",\"files\":[{\"type\":\"File\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":1,\"column\":1},\"end\":{\"line\":52,\"column\":102},\"source\":\"package date_test\\n\\nimport \\\"testing\\\"\\nimport \\\"date\\\"\\n\\noption now = () =\\u003e (2030-01-01T00:00:00Z)\\n\\ninData = \\\"\\n#datatype,string,long,dateTime:RFC3339,string,string,double\\n#group,false,false,false,true,true,false\\n#default,_result,,,,,\\n,result,table,_time,_measurement,_field,_value\\n,,0,2018-01-22T19:53:00Z,_m,FF,1\\n,,0,2018-02-22T19:53:10Z,_m,FF,1\\n,,0,2018-03-22T19:53:20Z,_m,FF,1\\n,,0,2018-04-22T19:53:30Z,_m,FF,1\\n,,0,2018-05-22T19:53:40Z,_m,FF,1\\n,,0,2018-06-22T19:53:50Z,_m,FF,1\\n,,1,2018-07-22T19:53:00Z,_m,QQ,1\\n,,1,2018-08-22T19:53:10Z,_m,QQ,1\\n,,1,2018-09-22T19:53:20Z,_m,QQ,1\\n,,1,2018-10-22T19:53:30Z,_m,QQ,1\\n,,1,2018-11-22T19:53:40Z,_m,QQ,1\\n,,1,2018-12-22T19:53:50Z,_m,QQ,1\\n\\\"\\n\\noutData = \\\"\\n#group,false,false,true,true,true,true,false,false\\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,dateTime:RFC3339,long\\n#default,_result,,,,,,,\\n,result,table,_start,_stop,_field,_measurement,_time,_value\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-01-22T19:53:00Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-02-22T19:53:10Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-03-22T19:53:20Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-04-22T19:53:30Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-05-22T19:53:40Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-06-22T19:53:50Z,2\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-07-22T19:53:00Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-08-22T19:53:10Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-09-22T19:53:20Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-10-22T19:53:30Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-11-22T19:53:40Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-12-22T19:53:50Z,4\\n\\\"\\n\\nt_time_quarter = (table=\\u003c-) =\\u003e\\n\\t(table\\n\\t    |\\u003e range(start: 2018-01-01T00:00:00Z)\\n\\t\\t|\\u003e map(fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)})))\\n\\ntest _time_quarter = () =\\u003e\\n\\t({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_time_quarter})\"},\"name\":\"quarter_time_test.flux\",\"metadata\":\"parser-type=rust\",\"package\":{\"type\":\"PackageClause\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":1,\"column\":1},\"end\":{\"line\":1,\"column\":18},\"source\":\"package date_test\"},\"name\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":1,\"column\":9},\"end\":{\"line\":1,\"column\":18},\"source\":\"date_test\"},\"name\":\"main\"}},\"imports\":[{\"type\":\"ImportDeclaration\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":3,\"column\":1},\"end\":{\"line\":3,\"column\":17},\"source\":\"import \\\"testing\\\"\"},\"as\":null,\"path\":{\"type\":\"StringLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":3,\"column\":8},\"end\":{\"line\":3,\"column\":17},\"source\":\"\\\"testing\\\"\"},\"value\":\"testing\"}},{\"type\":\"ImportDeclaration\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":4,\"column\":1},\"end\":{\"line\":4,\"column\":14},\"source\":\"import \\\"date\\\"\"},\"as\":null,\"path\":{\"type\":\"StringLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":4,\"column\":8},\"end\":{\"line\":4,\"column\":14},\"source\":\"\\\"date\\\"\"},\"value\":\"date\"}}],\"body\":[{\"type\":\"OptionStatement\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":6,\"column\":1},\"end\":{\"line\":6,\"column\":42},\"source\":\"option now = () =\\u003e (2030-01-01T00:00:00Z)\"},\"assignment\":{\"type\":\"VariableAssignment\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":6,\"column\":8},\"end\":{\"line\":6,\"column\":42},\"source\":\"now = () =\\u003e (2030-01-01T00:00:00Z)\"},\"id\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":6,\"column\":8},\"end\":{\"line\":6,\"column\":11},\"source\":\"now\"},\"name\":\"now\"},\"init\":{\"type\":\"FunctionExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":6,\"column\":14},\"end\":{\"line\":6,\"column\":42},\"source\":\"() =\\u003e (2030-01-01T00:00:00Z)\"},\"params\":[],\"body\":{\"type\":\"ParenExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":6,\"column\":20},\"end\":{\"line\":6,\"column\":42},\"source\":\"(2030-01-01T00:00:00Z)\"},\"expression\":{\"type\":\"DateTimeLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":6,\"column\":21},\"end\":{\"line\":6,\"column\":41},\"source\":\"2030-01-01T00:00:00Z\"},\"value\":\"2030-01-01T00:00:00Z\"}}}}},{\"type\":\"VariableAssignment\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":8,\"column\":1},\"end\":{\"line\":25,\"column\":2},\"source\":\"inData = \\\"\\n#datatype,string,long,dateTime:RFC3339,string,string,double\\n#group,false,false,false,true,true,false\\n#default,_result,,,,,\\n,result,table,_time,_measurement,_field,_value\\n,,0,2018-01-22T19:53:00Z,_m,FF,1\\n,,0,2018-02-22T19:53:10Z,_m,FF,1\\n,,0,2018-03-22T19:53:20Z,_m,FF,1\\n,,0,2018-04-22T19:53:30Z,_m,FF,1\\n,,0,2018-05-22T19:53:40Z,_m,FF,1\\n,,0,2018-06-22T19:53:50Z,_m,FF,1\\n,,1,2018-07-22T19:53:00Z,_m,QQ,1\\n,,1,2018-08-22T19:53:10Z,_m,QQ,1\\n,,1,2018-09-22T19:53:20Z,_m,QQ,1\\n,,1,2018-10-22T19:53:30Z,_m,QQ,1\\n,,1,2018-11-22T19:53:40Z,_m,QQ,1\\n,,1,2018-12-22T19:53:50Z,_m,QQ,1\\n\\\"\"},\"id\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":8,\"column\":1},\"end\":{\"line\":8,\"column\":7},\"source\":\"inData\"},\"name\":\"inData\"},\"init\":{\"type\":\"StringLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":8,\"column\":10},\"end\":{\"line\":25,\"column\":2},\"source\":\"\\\"\\n#datatype,string,long,dateTime:RFC3339,string,string,double\\n#group,false,false,false,true,true,false\\n#default,_result,,,,,\\n,result,table,_time,_measurement,_field,_value\\n,,0,2018-01-22T19:53:00Z,_m,FF,1\\n,,0,2018-02-22T19:53:10Z,_m,FF,1\\n,,0,2018-03-22T19:53:20Z,_m,FF,1\\n,,0,2018-04-22T19:53:30Z,_m,FF,1\\n,,0,2018-05-22T19:53:40Z,_m,FF,1\\n,,0,2018-06-22T19:53:50Z,_m,FF,1\\n,,1,2018-07-22T19:53:00Z,_m,QQ,1\\n,,1,2018-08-22T19:53:10Z,_m,QQ,1\\n,,1,2018-09-22T19:53:20Z,_m,QQ,1\\n,,1,2018-10-22T19:53:30Z,_m,QQ,1\\n,,1,2018-11-22T19:53:40Z,_m,QQ,1\\n,,1,2018-12-22T19:53:50Z,_m,QQ,1\\n\\\"\"},\"value\":\"\\n#datatype,string,long,dateTime:RFC3339,string,string,double\\n#group,false,false,false,true,true,false\\n#default,_result,,,,,\\n,result,table,_time,_measurement,_field,_value\\n,,0,2018-01-22T19:53:00Z,_m,FF,1\\n,,0,2018-02-22T19:53:10Z,_m,FF,1\\n,,0,2018-03-22T19:53:20Z,_m,FF,1\\n,,0,2018-04-22T19:53:30Z,_m,FF,1\\n,,0,2018-05-22T19:53:40Z,_m,FF,1\\n,,0,2018-06-22T19:53:50Z,_m,FF,1\\n,,1,2018-07-22T19:53:00Z,_m,QQ,1\\n,,1,2018-08-22T19:53:10Z,_m,QQ,1\\n,,1,2018-09-22T19:53:20Z,_m,QQ,1\\n,,1,2018-10-22T19:53:30Z,_m,QQ,1\\n,,1,2018-11-22T19:53:40Z,_m,QQ,1\\n,,1,2018-12-22T19:53:50Z,_m,QQ,1\\n\"}},{\"type\":\"VariableAssignment\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":27,\"column\":1},\"end\":{\"line\":44,\"column\":2},\"source\":\"outData = \\\"\\n#group,false,false,true,true,true,true,false,false\\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,dateTime:RFC3339,long\\n#default,_result,,,,,,,\\n,result,table,_start,_stop,_field,_measurement,_time,_value\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-01-22T19:53:00Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-02-22T19:53:10Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-03-22T19:53:20Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-04-22T19:53:30Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-05-22T19:53:40Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-06-22T19:53:50Z,2\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-07-22T19:53:00Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-08-22T19:53:10Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-09-22T19:53:20Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-10-22T19:53:30Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-11-22T19:53:40Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-12-22T19:53:50Z,4\\n\\\"\"},\"id\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":27,\"column\":1},\"end\":{\"line\":27,\"column\":8},\"source\":\"outData\"},\"name\":\"outData\"},\"init\":{\"type\":\"StringLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":27,\"column\":11},\"end\":{\"line\":44,\"column\":2},\"source\":\"\\\"\\n#group,false,false,true,true,true,true,false,false\\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,dateTime:RFC3339,long\\n#default,_result,,,,,,,\\n,result,table,_start,_stop,_field,_measurement,_time,_value\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-01-22T19:53:00Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-02-22T19:53:10Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-03-22T19:53:20Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-04-22T19:53:30Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-05-22T19:53:40Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-06-22T19:53:50Z,2\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-07-22T19:53:00Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-08-22T19:53:10Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-09-22T19:53:20Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-10-22T19:53:30Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-11-22T19:53:40Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-12-22T19:53:50Z,4\\n\\\"\"},\"value\":\"\\n#group,false,false,true,true,true,true,false,false\\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,dateTime:RFC3339,long\\n#default,_result,,,,,,,\\n,result,table,_start,_stop,_field,_measurement,_time,_value\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-01-22T19:53:00Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-02-22T19:53:10Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-03-22T19:53:20Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-04-22T19:53:30Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-05-22T19:53:40Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-06-22T19:53:50Z,2\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-07-22T19:53:00Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-08-22T19:53:10Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-09-22T19:53:20Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-10-22T19:53:30Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-11-22T19:53:40Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-12-22T19:53:50Z,4\\n\"}},{\"type\":\"VariableAssignment\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":46,\"column\":1},\"end\":{\"line\":49,\"column\":66},\"source\":\"t_time_quarter = (table=\\u003c-) =\\u003e\\n\\t(table\\n\\t    |\\u003e range(start: 2018-01-01T00:00:00Z)\\n\\t\\t|\\u003e map(fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)})))\"},\"id\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":46,\"column\":1},\"end\":{\"line\":46,\"column\":15},\"source\":\"t_time_quarter\"},\"name\":\"t_time_quarter\"},\"init\":{\"type\":\"FunctionExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":46,\"column\":18},\"end\":{\"line\":49,\"column\":66},\"source\":\"(table=\\u003c-) =\\u003e\\n\\t(table\\n\\t    |\\u003e range(start: 2018-01-01T00:00:00Z)\\n\\t\\t|\\u003e map(fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)})))\"},\"params\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":46,\"column\":19},\"end\":{\"line\":46,\"column\":27},\"source\":\"table=\\u003c-\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":46,\"column\":19},\"end\":{\"line\":46,\"column\":24},\"source\":\"table\"},\"name\":\"table\"},\"value\":{\"type\":\"PipeLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":46,\"column\":25},\"end\":{\"line\":46,\"column\":27},\"source\":\"\\u003c-\"}}}],\"body\":{\"type\":\"ParenExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":49,\"column\":66},\"source\":\"(table\\n\\t    |\\u003e range(start: 2018-01-01T00:00:00Z)\\n\\t\\t|\\u003e map(fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)})))\"},\"expression\":{\"type\":\"PipeExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":47,\"column\":3},\"end\":{\"line\":49,\"column\":65},\"source\":\"table\\n\\t    |\\u003e range(start: 2018-01-01T00:00:00Z)\\n\\t\\t|\\u003e map(fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)}))\"},\"argument\":{\"type\":\"PipeExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":47,\"column\":3},\"end\":{\"line\":48,\"column\":43},\"source\":\"table\\n\\t    |\\u003e range(start: 2018-01-01T00:00:00Z)\"},\"argument\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":47,\"column\":3},\"end\":{\"line\":47,\"column\":8},\"source\":\"table\"},\"name\":\"table\"},\"call\":{\"type\":\"CallExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":48,\"column\":9},\"end\":{\"line\":48,\"column\":43},\"source\":\"range(start: 2018-01-01T00:00:00Z)\"},\"callee\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":48,\"column\":9},\"end\":{\"line\":48,\"column\":14},\"source\":\"range\"},\"name\":\"range\"},\"arguments\":[{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":48,\"column\":15},\"end\":{\"line\":48,\"column\":42},\"source\":\"start: 2018-01-01T00:00:00Z\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":48,\"column\":15},\"end\":{\"line\":48,\"column\":42},\"source\":\"start: 2018-01-01T00:00:00Z\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":48,\"column\":15},\"end\":{\"line\":48,\"column\":20},\"source\":\"start\"},\"name\":\"start\"},\"value\":{\"type\":\"DateTimeLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":48,\"column\":22},\"end\":{\"line\":48,\"column\":42},\"source\":\"2018-01-01T00:00:00Z\"},\"value\":\"2018-01-01T00:00:00Z\"}}]}]}},\"call\":{\"type\":\"CallExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":6},\"end\":{\"line\":49,\"column\":65},\"source\":\"map(fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)}))\"},\"callee\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":6},\"end\":{\"line\":49,\"column\":9},\"source\":\"map\"},\"name\":\"map\"},\"arguments\":[{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":10},\"end\":{\"line\":49,\"column\":64},\"source\":\"fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)})\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":10},\"end\":{\"line\":49,\"column\":64},\"source\":\"fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)})\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":10},\"end\":{\"line\":49,\"column\":12},\"source\":\"fn\"},\"name\":\"fn\"},\"value\":{\"type\":\"FunctionExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":14},\"end\":{\"line\":49,\"column\":64},\"source\":\"(r) =\\u003e ({r with _value: date.quarter(t: r._time)})\"},\"params\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":15},\"end\":{\"line\":49,\"column\":16},\"source\":\"r\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":15},\"end\":{\"line\":49,\"column\":16},\"source\":\"r\"},\"name\":\"r\"},\"value\":null}],\"body\":{\"type\":\"ParenExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":21},\"end\":{\"line\":49,\"column\":64},\"source\":\"({r with _value: date.quarter(t: r._time)})\"},\"expression\":{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":22},\"end\":{\"line\":49,\"column\":63},\"source\":\"{r with _value: date.quarter(t: r._time)}\"},\"with\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":23},\"end\":{\"line\":49,\"column\":24},\"source\":\"r\"},\"name\":\"r\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":30},\"end\":{\"line\":49,\"column\":62},\"source\":\"_value: date.quarter(t: r._time)\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":30},\"end\":{\"line\":49,\"column\":36},\"source\":\"_value\"},\"name\":\"_value\"},\"value\":{\"type\":\"CallExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":38},\"end\":{\"line\":49,\"column\":62},\"source\":\"date.quarter(t: r._time)\"},\"callee\":{\"type\":\"MemberExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":38},\"end\":{\"line\":49,\"column\":50},\"source\":\"date.quarter\"},\"object\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":38},\"end\":{\"line\":49,\"column\":42},\"source\":\"date\"},\"name\":\"date\"},\"property\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":43},\"end\":{\"line\":49,\"column\":50},\"source\":\"quarter\"},\"name\":\"quarter\"}},\"arguments\":[{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":51},\"end\":{\"line\":49,\"column\":61},\"source\":\"t: r._time\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":51},\"end\":{\"line\":49,\"column\":61},\"source\":\"t: r._time\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":51},\"end\":{\"line\":49,\"column\":52},\"source\":\"t\"},\"name\":\"t\"},\"value\":{\"type\":\"MemberExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":54},\"end\":{\"line\":49,\"column\":61},\"source\":\"r._time\"},\"object\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":54},\"end\":{\"line\":49,\"column\":55},\"source\":\"r\"},\"name\":\"r\"},\"property\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":56},\"end\":{\"line\":49,\"column\":61},\"source\":\"_time\"},\"name\":\"_time\"}}}]}]}}]}}}}]}]}}}}},{\"type\":\"TestStatement\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":51,\"column\":1},\"end\":{\"line\":52,\"column\":102},\"source\":\"test _time_quarter = () =\\u003e\\n\\t({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_time_quarter})\"},\"assignment\":{\"type\":\"VariableAssignment\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":51,\"column\":6},\"end\":{\"line\":52,\"column\":102},\"source\":\"_time_quarter = () =\\u003e\\n\\t({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_time_quarter})\"},\"id\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":51,\"column\":6},\"end\":{\"line\":51,\"column\":19},\"source\":\"_time_quarter\"},\"name\":\"_time_quarter\"},\"init\":{\"type\":\"FunctionExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":51,\"column\":22},\"end\":{\"line\":52,\"column\":102},\"source\":\"() =\\u003e\\n\\t({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_time_quarter})\"},\"params\":[],\"body\":{\"type\":\"ParenExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":2},\"end\":{\"line\":52,\"column\":102},\"source\":\"({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_time_quarter})\"},\"expression\":{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":3},\"end\":{\"line\":52,\"column\":101},\"source\":\"{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_time_quarter}\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":4},\"end\":{\"line\":52,\"column\":43},\"source\":\"input: testing.loadStorage(csv: inData)\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":4},\"end\":{\"line\":52,\"column\":9},\"source\":\"input\"},\"name\":\"input\"},\"value\":{\"type\":\"CallExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":11},\"end\":{\"line\":52,\"column\":43},\"source\":\"testing.loadStorage(csv: inData)\"},\"callee\":{\"type\":\"MemberExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":11},\"end\":{\"line\":52,\"column\":30},\"source\":\"testing.loadStorage\"},\"object\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":11},\"end\":{\"line\":52,\"column\":18},\"source\":\"testing\"},\"name\":\"testing\"},\"property\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":19},\"end\":{\"line\":52,\"column\":30},\"source\":\"loadStorage\"},\"name\":\"loadStorage\"}},\"arguments\":[{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":31},\"end\":{\"line\":52,\"column\":42},\"source\":\"csv: inData\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":31},\"end\":{\"line\":52,\"column\":42},\"source\":\"csv: inData\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":31},\"end\":{\"line\":52,\"column\":34},\"source\":\"csv\"},\"name\":\"csv\"},\"value\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":36},\"end\":{\"line\":52,\"column\":42},\"source\":\"inData\"},\"name\":\"inData\"}}]}]}},{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":45},\"end\":{\"line\":52,\"column\":80},\"source\":\"want: testing.loadMem(csv: outData)\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":45},\"end\":{\"line\":52,\"column\":49},\"source\":\"want\"},\"name\":\"want\"},\"value\":{\"type\":\"CallExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":51},\"end\":{\"line\":52,\"column\":80},\"source\":\"testing.loadMem(csv: outData)\"},\"callee\":{\"type\":\"MemberExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":51},\"end\":{\"line\":52,\"column\":66},\"source\":\"testing.loadMem\"},\"object\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":51},\"end\":{\"line\":52,\"column\":58},\"source\":\"testing\"},\"name\":\"testing\"},\"property\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":59},\"end\":{\"line\":52,\"column\":66},\"source\":\"loadMem\"},\"name\":\"loadMem\"}},\"arguments\":[{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":67},\"end\":{\"line\":52,\"column\":79},\"source\":\"csv: outData\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":67},\"end\":{\"line\":52,\"column\":79},\"source\":\"csv: outData\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":67},\"end\":{\"line\":52,\"column\":70},\"source\":\"csv\"},\"name\":\"csv\"},\"value\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":72},\"end\":{\"line\":52,\"column\":79},\"source\":\"outData\"},\"name\":\"outData\"}}]}]}},{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":82},\"end\":{\"line\":52,\"column\":100},\"source\":\"fn: t_time_quarter\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":82},\"end\":{\"line\":52,\"column\":84},\"source\":\"fn\"},\"name\":\"fn\"},\"value\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":86},\"end\":{\"line\":52,\"column\":100},\"source\":\"t_time_quarter\"},\"name\":\"t_time_quarter\"}}]}}}}}]},{\"type\":\"File\",\"location\":{\"start\":{\"line\":2,\"column\":1},\"end\":{\"line\":7,\"column\":2},\"source\":\"import \\\"testing\\\"\\nimport c \\\"csv\\\"\\n\\noption testing.loadStorage = (csv) =\\u003e {\\n\\treturn c.from(csv: csv) |\\u003e to(bucket: bucket, org: org)\\n}\"},\"metadata\":\"parser-type=rust\",\"package\":null,\"imports\":[{\"type\":\"ImportDeclaration\",\"location\":{\"start\":{\"line\":2,\"column\":1},\"end\":{\"line\":2,\"column\":17},\"source\":\"import \\\"testing\\\"\"},\"as\":null,\"path\":{\"type\":\"StringLiteral\",\"location\":{\"start\":{\"line\":2,\"column\":8},\"end\":{\"line\":2,\"column\":17},\"source\":\"\\\"testing\\\"\"},\"value\":\"testing\"}},{\"type\":\"ImportDeclaration\",\"location\":{\"start\":{\"line\":3,\"column\":1},\"end\":{\"line\":3,\"column\":15},\"source\":\"import c \\\"csv\\\"\"},\"as\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":3,\"column\":8},\"end\":{\"line\":3,\"column\":9},\"source\":\"c\"},\"name\":\"c\"},\"path\":{\"type\":\"StringLiteral\",\"location\":{\"start\":{\"line\":3,\"column\":10},\"end\":{\"line\":3,\"column\":15},\"source\":\"\\\"csv\\\"\"},\"value\":\"csv\"}}],\"body\":[{\"type\":\"OptionStatement\",\"assignment\":{\"type\":\"VariableAssignment\",\"id\":{\"type\":\"Identifier\",\"name\":\"bucket\"},\"init\":{\"type\":\"StringLiteral\",\"value\":\"TestFluxEndToEnd/date/quarter_time\"}}},{\"type\":\"OptionStatement\",\"assignment\":{\"type\":\"VariableAssignment\",\"id\":{\"type\":\"Identifier\",\"name\":\"org\"},\"init\":{\"type\":\"StringLiteral\",\"value\":\"ORG\"}}},{\"type\":\"OptionStatement\",\"location\":{\"start\":{\"line\":5,\"column\":1},\"end\":{\"line\":7,\"column\":2},\"source\":\"option testing.loadStorage = (csv) =\\u003e {\\n\\treturn c.from(csv: csv) |\\u003e to(bucket: bucket, org: org)\\n}\"},\"assignment\":{\"type\":\"MemberAssignment\",\"location\":{\"start\":{\"line\":5,\"column\":8},\"end\":{\"line\":7,\"column\":2},\"source\":\"testing.loadStorage = (csv) =\\u003e {\\n\\treturn c.from(csv: csv) |\\u003e to(bucket: bucket, org: org)\\n}\"},\"member\":{\"type\":\"MemberExpression\",\"location\":{\"start\":{\"line\":5,\"column\":8},\"end\":{\"line\":5,\"column\":27},\"source\":\"testing.loadStorage\"},\"object\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":5,\"column\":8},\"end\":{\"line\":5,\"column\":15},\"source\":\"testing\"},\"name\":\"testing\"},\"property\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":5,\"column\":16},\"end\":{\"line\":5,\"column\":27},\"source\":\"loadStorage\"},\"name\":\"loadStorage\"}},\"init\":{\"type\":\"FunctionExpression\",\"location\":{\"start\":{\"line\":5,\"column\":30},\"end\":{\"line\":7,\"column\":2},\"source\":\"(csv) =\\u003e {\\n\\treturn c.from(csv: csv) |\\u003e to(bucket: bucket, org: org)\\n}\"},\"params\":[{\"type\":\"Property\",\"location\":{\"start\":{\"line\":5,\"column\":31},\"end\":{\"line\":5,\"column\":34},\"source\":\"csv\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":5,\"column\":31},\"end\":{\"line\":5,\"column\":34},\"source\":\"csv\"},\"name\":\"csv\"},\"value\":null}],\"body\":{\"type\":\"Block\",\"location\":{\"start\":{\"line\":5,\"column\":39},\"end\":{\"line\":7,\"column\":2},\"source\":\"{\\n\\treturn c.from(csv: csv) |\\u003e to(bucket: bucket, org: org)\\n}\"},\"body\":[{\"type\":\"ReturnStatement\",\"location\":{\"start\":{\"line\":6,\"column\":2},\"end\":{\"line\":6,\"column\":57},\"source\":\"return c.from(csv: csv) |\\u003e to(bucket: bucket, org: org)\"},\"argument\":{\"type\":\"PipeExpression\",\"location\":{\"start\":{\"line\":6,\"column\":9},\"end\":{\"line\":6,\"column\":57},\"source\":\"c.from(csv: csv) |\\u003e to(bucket: bucket, org: org)\"},\"argument\":{\"type\":\"CallExpression\",\"location\":{\"start\":{\"line\":6,\"column\":9},\"end\":{\"line\":6,\"column\":25},\"source\":\"c.from(csv: csv)\"},\"callee\":{\"type\":\"MemberExpression\",\"location\":{\"start\":{\"line\":6,\"column\":9},\"end\":{\"line\":6,\"column\":15},\"source\":\"c.from\"},\"object\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":6,\"column\":9},\"end\":{\"line\":6,\"column\":10},\"source\":\"c\"},\"name\":\"c\"},\"property\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":6,\"column\":11},\"end\":{\"line\":6,\"column\":15},\"source\":\"from\"},\"name\":\"from\"}},\"arguments\":[{\"type\":\"ObjectExpression\",\"location\":{\"start\":{\"line\":6,\"column\":16},\"end\":{\"line\":6,\"column\":24},\"source\":\"csv: csv\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"start\":{\"line\":6,\"column\":16},\"end\":{\"line\":6,\"column\":24},\"source\":\"csv: csv\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":6,\"column\":16},\"end\":{\"line\":6,\"column\":19},\"source\":\"csv\"},\"name\":\"csv\"},\"value\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":6,\"column\":21},\"end\":{\"line\":6,\"column\":24},\"source\":\"csv\"},\"name\":\"csv\"}}]}]},\"call\":{\"type\":\"CallExpression\",\"location\":{\"start\":{\"line\":6,\"column\":29},\"end\":{\"line\":6,\"column\":57},\"source\":\"to(bucket: bucket, org: org)\"},\"callee\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":6,\"column\":29},\"end\":{\"line\":6,\"column\":31},\"source\":\"to\"},\"name\":\"to\"},\"arguments\":[{\"type\":\"ObjectExpression\",\"location\":{\"start\":{\"line\":6,\"column\":32},\"end\":{\"line\":6,\"column\":56},\"source\":\"bucket: bucket, org: org\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"start\":{\"line\":6,\"column\":32},\"end\":{\"line\":6,\"column\":46},\"source\":\"bucket: bucket\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":6,\"column\":32},\"end\":{\"line\":6,\"column\":38},\"source\":\"bucket\"},\"name\":\"bucket\"},\"value\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":6,\"column\":40},\"end\":{\"line\":6,\"column\":46},\"source\":\"bucket\"},\"name\":\"bucket\"}},{\"type\":\"Property\",\"location\":{\"start\":{\"line\":6,\"column\":48},\"end\":{\"line\":6,\"column\":56},\"source\":\"org: org\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":6,\"column\":48},\"end\":{\"line\":6,\"column\":51},\"source\":\"org\"},\"name\":\"org\"},\"value\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":6,\"column\":53},\"end\":{\"line\":6,\"column\":56},\"source\":\"org\"},\"name\":\"org\"}}]}]}}}]}}}}]},{\"type\":\"File\",\"package\":null,\"imports\":[{\"type\":\"ImportDeclaration\",\"as\":null,\"path\":{\"type\":\"StringLiteral\",\"value\":\"testing\"}}],\"body\":[{\"type\":\"ExpressionStatement\",\"expression\":{\"type\":\"CallExpression\",\"callee\":{\"type\":\"MemberExpression\",\"object\":{\"type\":\"Identifier\",\"name\":\"testing\"},\"property\":{\"type\":\"StringLiteral\",\"value\":\"inspect\"}},\"arguments\":[{\"type\":\"ObjectExpression\",\"properties\":[{\"type\":\"Property\",\"key\":{\"type\":\"Identifier\",\"name\":\"case\"},\"value\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":51,\"column\":6},\"end\":{\"line\":51,\"column\":19},\"source\":\"_time_quarter\"},\"name\":\"_time_quarter\"}}]}]}}]}]},\"dialect\":{\"header\":true,\"delimiter\":\"\\u0000\",\"commentPrefix\":\"#\",\"dateTimeFormat\":\"RFC3339\",\"annotations\":[\"datatype\",\"group\",\"default\"]},\"now\":\"0001-01-01T00:00:00Z\",\"PreferNoContent\":false,\"PreferNoContentWithError\":false}\n"
ts=2020-12-23T21:44:51.841619Z lvl=debug msg="user find by ID" log_id=0RGOo0fG000 store=new took=0.101ms
ts=2020-12-23T21:44:51.853325Z lvl=debug msg="org find" log_id=0RGOo0fG000 store=new took=0.156ms
ts=2020-12-23T21:44:51.934030Z lvl=debug msg="bucket find" log_id=0RGOo0fG000 store=new took=0.241ms
ts=2020-12-23T21:44:51.978832Z lvl=debug msg=Request log_id=0RGOo0fG000 service=http method=POST host=127.0.0.1:34909 path=/api/v2/query query="orgID=75d315fdd0385bf5" proto=HTTP/1.1 status_code=200 response_size=406 content_length=28327 referrer= remote=127.0.0.1:46272 user_agent=Go-http-client took=138.425ms body="{\"type\":\"flux\",\"query\":\"\",\"ast\":{\"type\":\"Package\",\"package\":\"main\",\"files\":[{\"type\":\"File\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":1,\"column\":1},\"end\":{\"line\":52,\"column\":102},\"source\":\"package date_test\\n\\nimport \\\"testing\\\"\\nimport \\\"date\\\"\\n\\noption now = () =\\u003e (2030-01-01T00:00:00Z)\\n\\ninData = \\\"\\n#datatype,string,long,dateTime:RFC3339,string,string,double\\n#group,false,false,false,true,true,false\\n#default,_result,,,,,\\n,result,table,_time,_measurement,_field,_value\\n,,0,2018-01-22T19:53:00Z,_m,FF,1\\n,,0,2018-02-22T19:53:10Z,_m,FF,1\\n,,0,2018-03-22T19:53:20Z,_m,FF,1\\n,,0,2018-04-22T19:53:30Z,_m,FF,1\\n,,0,2018-05-22T19:53:40Z,_m,FF,1\\n,,0,2018-06-22T19:53:50Z,_m,FF,1\\n,,1,2018-07-22T19:53:00Z,_m,QQ,1\\n,,1,2018-08-22T19:53:10Z,_m,QQ,1\\n,,1,2018-09-22T19:53:20Z,_m,QQ,1\\n,,1,2018-10-22T19:53:30Z,_m,QQ,1\\n,,1,2018-11-22T19:53:40Z,_m,QQ,1\\n,,1,2018-12-22T19:53:50Z,_m,QQ,1\\n\\\"\\n\\noutData = \\\"\\n#group,false,false,true,true,true,true,false,false\\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,dateTime:RFC3339,long\\n#default,_result,,,,,,,\\n,result,table,_start,_stop,_field,_measurement,_time,_value\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-01-22T19:53:00Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-02-22T19:53:10Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-03-22T19:53:20Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-04-22T19:53:30Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-05-22T19:53:40Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-06-22T19:53:50Z,2\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-07-22T19:53:00Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-08-22T19:53:10Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-09-22T19:53:20Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-10-22T19:53:30Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-11-22T19:53:40Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-12-22T19:53:50Z,4\\n\\\"\\n\\nt_time_quarter = (table=\\u003c-) =\\u003e\\n\\t(table\\n\\t    |\\u003e range(start: 2018-01-01T00:00:00Z)\\n\\t\\t|\\u003e map(fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)})))\\n\\ntest _time_quarter = () =\\u003e\\n\\t({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_time_quarter})\"},\"name\":\"quarter_time_test.flux\",\"metadata\":\"parser-type=rust\",\"package\":{\"type\":\"PackageClause\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":1,\"column\":1},\"end\":{\"line\":1,\"column\":18},\"source\":\"package date_test\"},\"name\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":1,\"column\":9},\"end\":{\"line\":1,\"column\":18},\"source\":\"date_test\"},\"name\":\"main\"}},\"imports\":[{\"type\":\"ImportDeclaration\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":3,\"column\":1},\"end\":{\"line\":3,\"column\":17},\"source\":\"import \\\"testing\\\"\"},\"as\":null,\"path\":{\"type\":\"StringLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":3,\"column\":8},\"end\":{\"line\":3,\"column\":17},\"source\":\"\\\"testing\\\"\"},\"value\":\"testing\"}},{\"type\":\"ImportDeclaration\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":4,\"column\":1},\"end\":{\"line\":4,\"column\":14},\"source\":\"import \\\"date\\\"\"},\"as\":null,\"path\":{\"type\":\"StringLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":4,\"column\":8},\"end\":{\"line\":4,\"column\":14},\"source\":\"\\\"date\\\"\"},\"value\":\"date\"}}],\"body\":[{\"type\":\"OptionStatement\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":6,\"column\":1},\"end\":{\"line\":6,\"column\":42},\"source\":\"option now = () =\\u003e (2030-01-01T00:00:00Z)\"},\"assignment\":{\"type\":\"VariableAssignment\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":6,\"column\":8},\"end\":{\"line\":6,\"column\":42},\"source\":\"now = () =\\u003e (2030-01-01T00:00:00Z)\"},\"id\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":6,\"column\":8},\"end\":{\"line\":6,\"column\":11},\"source\":\"now\"},\"name\":\"now\"},\"init\":{\"type\":\"FunctionExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":6,\"column\":14},\"end\":{\"line\":6,\"column\":42},\"source\":\"() =\\u003e (2030-01-01T00:00:00Z)\"},\"params\":[],\"body\":{\"type\":\"ParenExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":6,\"column\":20},\"end\":{\"line\":6,\"column\":42},\"source\":\"(2030-01-01T00:00:00Z)\"},\"expression\":{\"type\":\"DateTimeLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":6,\"column\":21},\"end\":{\"line\":6,\"column\":41},\"source\":\"2030-01-01T00:00:00Z\"},\"value\":\"2030-01-01T00:00:00Z\"}}}}},{\"type\":\"VariableAssignment\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":8,\"column\":1},\"end\":{\"line\":25,\"column\":2},\"source\":\"inData = \\\"\\n#datatype,string,long,dateTime:RFC3339,string,string,double\\n#group,false,false,false,true,true,false\\n#default,_result,,,,,\\n,result,table,_time,_measurement,_field,_value\\n,,0,2018-01-22T19:53:00Z,_m,FF,1\\n,,0,2018-02-22T19:53:10Z,_m,FF,1\\n,,0,2018-03-22T19:53:20Z,_m,FF,1\\n,,0,2018-04-22T19:53:30Z,_m,FF,1\\n,,0,2018-05-22T19:53:40Z,_m,FF,1\\n,,0,2018-06-22T19:53:50Z,_m,FF,1\\n,,1,2018-07-22T19:53:00Z,_m,QQ,1\\n,,1,2018-08-22T19:53:10Z,_m,QQ,1\\n,,1,2018-09-22T19:53:20Z,_m,QQ,1\\n,,1,2018-10-22T19:53:30Z,_m,QQ,1\\n,,1,2018-11-22T19:53:40Z,_m,QQ,1\\n,,1,2018-12-22T19:53:50Z,_m,QQ,1\\n\\\"\"},\"id\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":8,\"column\":1},\"end\":{\"line\":8,\"column\":7},\"source\":\"inData\"},\"name\":\"inData\"},\"init\":{\"type\":\"StringLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":8,\"column\":10},\"end\":{\"line\":25,\"column\":2},\"source\":\"\\\"\\n#datatype,string,long,dateTime:RFC3339,string,string,double\\n#group,false,false,false,true,true,false\\n#default,_result,,,,,\\n,result,table,_time,_measurement,_field,_value\\n,,0,2018-01-22T19:53:00Z,_m,FF,1\\n,,0,2018-02-22T19:53:10Z,_m,FF,1\\n,,0,2018-03-22T19:53:20Z,_m,FF,1\\n,,0,2018-04-22T19:53:30Z,_m,FF,1\\n,,0,2018-05-22T19:53:40Z,_m,FF,1\\n,,0,2018-06-22T19:53:50Z,_m,FF,1\\n,,1,2018-07-22T19:53:00Z,_m,QQ,1\\n,,1,2018-08-22T19:53:10Z,_m,QQ,1\\n,,1,2018-09-22T19:53:20Z,_m,QQ,1\\n,,1,2018-10-22T19:53:30Z,_m,QQ,1\\n,,1,2018-11-22T19:53:40Z,_m,QQ,1\\n,,1,2018-12-22T19:53:50Z,_m,QQ,1\\n\\\"\"},\"value\":\"\\n#datatype,string,long,dateTime:RFC3339,string,string,double\\n#group,false,false,false,true,true,false\\n#default,_result,,,,,\\n,result,table,_time,_measurement,_field,_value\\n,,0,2018-01-22T19:53:00Z,_m,FF,1\\n,,0,2018-02-22T19:53:10Z,_m,FF,1\\n,,0,2018-03-22T19:53:20Z,_m,FF,1\\n,,0,2018-04-22T19:53:30Z,_m,FF,1\\n,,0,2018-05-22T19:53:40Z,_m,FF,1\\n,,0,2018-06-22T19:53:50Z,_m,FF,1\\n,,1,2018-07-22T19:53:00Z,_m,QQ,1\\n,,1,2018-08-22T19:53:10Z,_m,QQ,1\\n,,1,2018-09-22T19:53:20Z,_m,QQ,1\\n,,1,2018-10-22T19:53:30Z,_m,QQ,1\\n,,1,2018-11-22T19:53:40Z,_m,QQ,1\\n,,1,2018-12-22T19:53:50Z,_m,QQ,1\\n\"}},{\"type\":\"VariableAssignment\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":27,\"column\":1},\"end\":{\"line\":44,\"column\":2},\"source\":\"outData = \\\"\\n#group,false,false,true,true,true,true,false,false\\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,dateTime:RFC3339,long\\n#default,_result,,,,,,,\\n,result,table,_start,_stop,_field,_measurement,_time,_value\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-01-22T19:53:00Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-02-22T19:53:10Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-03-22T19:53:20Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-04-22T19:53:30Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-05-22T19:53:40Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-06-22T19:53:50Z,2\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-07-22T19:53:00Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-08-22T19:53:10Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-09-22T19:53:20Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-10-22T19:53:30Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-11-22T19:53:40Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-12-22T19:53:50Z,4\\n\\\"\"},\"id\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":27,\"column\":1},\"end\":{\"line\":27,\"column\":8},\"source\":\"outData\"},\"name\":\"outData\"},\"init\":{\"type\":\"StringLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":27,\"column\":11},\"end\":{\"line\":44,\"column\":2},\"source\":\"\\\"\\n#group,false,false,true,true,true,true,false,false\\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,dateTime:RFC3339,long\\n#default,_result,,,,,,,\\n,result,table,_start,_stop,_field,_measurement,_time,_value\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-01-22T19:53:00Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-02-22T19:53:10Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-03-22T19:53:20Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-04-22T19:53:30Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-05-22T19:53:40Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-06-22T19:53:50Z,2\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-07-22T19:53:00Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-08-22T19:53:10Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-09-22T19:53:20Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-10-22T19:53:30Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-11-22T19:53:40Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-12-22T19:53:50Z,4\\n\\\"\"},\"value\":\"\\n#group,false,false,true,true,true,true,false,false\\n#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,dateTime:RFC3339,long\\n#default,_result,,,,,,,\\n,result,table,_start,_stop,_field,_measurement,_time,_value\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-01-22T19:53:00Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-02-22T19:53:10Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-03-22T19:53:20Z,1\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-04-22T19:53:30Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-05-22T19:53:40Z,2\\n,,0,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,FF,_m,2018-06-22T19:53:50Z,2\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-07-22T19:53:00Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-08-22T19:53:10Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-09-22T19:53:20Z,3\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-10-22T19:53:30Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-11-22T19:53:40Z,4\\n,,1,2018-01-01T00:00:00Z,2030-01-01T00:00:00Z,QQ,_m,2018-12-22T19:53:50Z,4\\n\"}},{\"type\":\"VariableAssignment\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":46,\"column\":1},\"end\":{\"line\":49,\"column\":66},\"source\":\"t_time_quarter = (table=\\u003c-) =\\u003e\\n\\t(table\\n\\t    |\\u003e range(start: 2018-01-01T00:00:00Z)\\n\\t\\t|\\u003e map(fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)})))\"},\"id\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":46,\"column\":1},\"end\":{\"line\":46,\"column\":15},\"source\":\"t_time_quarter\"},\"name\":\"t_time_quarter\"},\"init\":{\"type\":\"FunctionExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":46,\"column\":18},\"end\":{\"line\":49,\"column\":66},\"source\":\"(table=\\u003c-) =\\u003e\\n\\t(table\\n\\t    |\\u003e range(start: 2018-01-01T00:00:00Z)\\n\\t\\t|\\u003e map(fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)})))\"},\"params\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":46,\"column\":19},\"end\":{\"line\":46,\"column\":27},\"source\":\"table=\\u003c-\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":46,\"column\":19},\"end\":{\"line\":46,\"column\":24},\"source\":\"table\"},\"name\":\"table\"},\"value\":{\"type\":\"PipeLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":46,\"column\":25},\"end\":{\"line\":46,\"column\":27},\"source\":\"\\u003c-\"}}}],\"body\":{\"type\":\"ParenExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":47,\"column\":2},\"end\":{\"line\":49,\"column\":66},\"source\":\"(table\\n\\t    |\\u003e range(start: 2018-01-01T00:00:00Z)\\n\\t\\t|\\u003e map(fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)})))\"},\"expression\":{\"type\":\"PipeExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":47,\"column\":3},\"end\":{\"line\":49,\"column\":65},\"source\":\"table\\n\\t    |\\u003e range(start: 2018-01-01T00:00:00Z)\\n\\t\\t|\\u003e map(fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)}))\"},\"argument\":{\"type\":\"PipeExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":47,\"column\":3},\"end\":{\"line\":48,\"column\":43},\"source\":\"table\\n\\t    |\\u003e range(start: 2018-01-01T00:00:00Z)\"},\"argument\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":47,\"column\":3},\"end\":{\"line\":47,\"column\":8},\"source\":\"table\"},\"name\":\"table\"},\"call\":{\"type\":\"CallExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":48,\"column\":9},\"end\":{\"line\":48,\"column\":43},\"source\":\"range(start: 2018-01-01T00:00:00Z)\"},\"callee\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":48,\"column\":9},\"end\":{\"line\":48,\"column\":14},\"source\":\"range\"},\"name\":\"range\"},\"arguments\":[{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":48,\"column\":15},\"end\":{\"line\":48,\"column\":42},\"source\":\"start: 2018-01-01T00:00:00Z\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":48,\"column\":15},\"end\":{\"line\":48,\"column\":42},\"source\":\"start: 2018-01-01T00:00:00Z\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":48,\"column\":15},\"end\":{\"line\":48,\"column\":20},\"source\":\"start\"},\"name\":\"start\"},\"value\":{\"type\":\"DateTimeLiteral\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":48,\"column\":22},\"end\":{\"line\":48,\"column\":42},\"source\":\"2018-01-01T00:00:00Z\"},\"value\":\"2018-01-01T00:00:00Z\"}}]}]}},\"call\":{\"type\":\"CallExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":6},\"end\":{\"line\":49,\"column\":65},\"source\":\"map(fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)}))\"},\"callee\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":6},\"end\":{\"line\":49,\"column\":9},\"source\":\"map\"},\"name\":\"map\"},\"arguments\":[{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":10},\"end\":{\"line\":49,\"column\":64},\"source\":\"fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)})\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":10},\"end\":{\"line\":49,\"column\":64},\"source\":\"fn: (r) =\\u003e ({r with _value: date.quarter(t: r._time)})\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":10},\"end\":{\"line\":49,\"column\":12},\"source\":\"fn\"},\"name\":\"fn\"},\"value\":{\"type\":\"FunctionExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":14},\"end\":{\"line\":49,\"column\":64},\"source\":\"(r) =\\u003e ({r with _value: date.quarter(t: r._time)})\"},\"params\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":15},\"end\":{\"line\":49,\"column\":16},\"source\":\"r\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":15},\"end\":{\"line\":49,\"column\":16},\"source\":\"r\"},\"name\":\"r\"},\"value\":null}],\"body\":{\"type\":\"ParenExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":21},\"end\":{\"line\":49,\"column\":64},\"source\":\"({r with _value: date.quarter(t: r._time)})\"},\"expression\":{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":22},\"end\":{\"line\":49,\"column\":63},\"source\":\"{r with _value: date.quarter(t: r._time)}\"},\"with\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":23},\"end\":{\"line\":49,\"column\":24},\"source\":\"r\"},\"name\":\"r\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":30},\"end\":{\"line\":49,\"column\":62},\"source\":\"_value: date.quarter(t: r._time)\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":30},\"end\":{\"line\":49,\"column\":36},\"source\":\"_value\"},\"name\":\"_value\"},\"value\":{\"type\":\"CallExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":38},\"end\":{\"line\":49,\"column\":62},\"source\":\"date.quarter(t: r._time)\"},\"callee\":{\"type\":\"MemberExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":38},\"end\":{\"line\":49,\"column\":50},\"source\":\"date.quarter\"},\"object\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":38},\"end\":{\"line\":49,\"column\":42},\"source\":\"date\"},\"name\":\"date\"},\"property\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":43},\"end\":{\"line\":49,\"column\":50},\"source\":\"quarter\"},\"name\":\"quarter\"}},\"arguments\":[{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":51},\"end\":{\"line\":49,\"column\":61},\"source\":\"t: r._time\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":51},\"end\":{\"line\":49,\"column\":61},\"source\":\"t: r._time\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":51},\"end\":{\"line\":49,\"column\":52},\"source\":\"t\"},\"name\":\"t\"},\"value\":{\"type\":\"MemberExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":54},\"end\":{\"line\":49,\"column\":61},\"source\":\"r._time\"},\"object\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":54},\"end\":{\"line\":49,\"column\":55},\"source\":\"r\"},\"name\":\"r\"},\"property\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":49,\"column\":56},\"end\":{\"line\":49,\"column\":61},\"source\":\"_time\"},\"name\":\"_time\"}}}]}]}}]}}}}]}]}}}}},{\"type\":\"TestStatement\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":51,\"column\":1},\"end\":{\"line\":52,\"column\":102},\"source\":\"test _time_quarter = () =\\u003e\\n\\t({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_time_quarter})\"},\"assignment\":{\"type\":\"VariableAssignment\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":51,\"column\":6},\"end\":{\"line\":52,\"column\":102},\"source\":\"_time_quarter = () =\\u003e\\n\\t({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_time_quarter})\"},\"id\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":51,\"column\":6},\"end\":{\"line\":51,\"column\":19},\"source\":\"_time_quarter\"},\"name\":\"_time_quarter\"},\"init\":{\"type\":\"FunctionExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":51,\"column\":22},\"end\":{\"line\":52,\"column\":102},\"source\":\"() =\\u003e\\n\\t({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_time_quarter})\"},\"params\":[],\"body\":{\"type\":\"ParenExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":2},\"end\":{\"line\":52,\"column\":102},\"source\":\"({input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_time_quarter})\"},\"expression\":{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":3},\"end\":{\"line\":52,\"column\":101},\"source\":\"{input: testing.loadStorage(csv: inData), want: testing.loadMem(csv: outData), fn: t_time_quarter}\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":4},\"end\":{\"line\":52,\"column\":43},\"source\":\"input: testing.loadStorage(csv: inData)\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":4},\"end\":{\"line\":52,\"column\":9},\"source\":\"input\"},\"name\":\"input\"},\"value\":{\"type\":\"CallExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":11},\"end\":{\"line\":52,\"column\":43},\"source\":\"testing.loadStorage(csv: inData)\"},\"callee\":{\"type\":\"MemberExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":11},\"end\":{\"line\":52,\"column\":30},\"source\":\"testing.loadStorage\"},\"object\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":11},\"end\":{\"line\":52,\"column\":18},\"source\":\"testing\"},\"name\":\"testing\"},\"property\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":19},\"end\":{\"line\":52,\"column\":30},\"source\":\"loadStorage\"},\"name\":\"loadStorage\"}},\"arguments\":[{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":31},\"end\":{\"line\":52,\"column\":42},\"source\":\"csv: inData\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":31},\"end\":{\"line\":52,\"column\":42},\"source\":\"csv: inData\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":31},\"end\":{\"line\":52,\"column\":34},\"source\":\"csv\"},\"name\":\"csv\"},\"value\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":36},\"end\":{\"line\":52,\"column\":42},\"source\":\"inData\"},\"name\":\"inData\"}}]}]}},{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":45},\"end\":{\"line\":52,\"column\":80},\"source\":\"want: testing.loadMem(csv: outData)\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":45},\"end\":{\"line\":52,\"column\":49},\"source\":\"want\"},\"name\":\"want\"},\"value\":{\"type\":\"CallExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":51},\"end\":{\"line\":52,\"column\":80},\"source\":\"testing.loadMem(csv: outData)\"},\"callee\":{\"type\":\"MemberExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":51},\"end\":{\"line\":52,\"column\":66},\"source\":\"testing.loadMem\"},\"object\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":51},\"end\":{\"line\":52,\"column\":58},\"source\":\"testing\"},\"name\":\"testing\"},\"property\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":59},\"end\":{\"line\":52,\"column\":66},\"source\":\"loadMem\"},\"name\":\"loadMem\"}},\"arguments\":[{\"type\":\"ObjectExpression\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":67},\"end\":{\"line\":52,\"column\":79},\"source\":\"csv: outData\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":67},\"end\":{\"line\":52,\"column\":79},\"source\":\"csv: outData\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":67},\"end\":{\"line\":52,\"column\":70},\"source\":\"csv\"},\"name\":\"csv\"},\"value\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":72},\"end\":{\"line\":52,\"column\":79},\"source\":\"outData\"},\"name\":\"outData\"}}]}]}},{\"type\":\"Property\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":82},\"end\":{\"line\":52,\"column\":100},\"source\":\"fn: t_time_quarter\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":82},\"end\":{\"line\":52,\"column\":84},\"source\":\"fn\"},\"name\":\"fn\"},\"value\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":52,\"column\":86},\"end\":{\"line\":52,\"column\":100},\"source\":\"t_time_quarter\"},\"name\":\"t_time_quarter\"}}]}}}}}]},{\"type\":\"File\",\"location\":{\"start\":{\"line\":2,\"column\":1},\"end\":{\"line\":7,\"column\":2},\"source\":\"import \\\"testing\\\"\\nimport c \\\"csv\\\"\\n\\noption testing.loadStorage = (csv) =\\u003e {\\n\\treturn from(bucket: bucket)\\n}\"},\"metadata\":\"parser-type=rust\",\"package\":null,\"imports\":[{\"type\":\"ImportDeclaration\",\"location\":{\"start\":{\"line\":2,\"column\":1},\"end\":{\"line\":2,\"column\":17},\"source\":\"import \\\"testing\\\"\"},\"as\":null,\"path\":{\"type\":\"StringLiteral\",\"location\":{\"start\":{\"line\":2,\"column\":8},\"end\":{\"line\":2,\"column\":17},\"source\":\"\\\"testing\\\"\"},\"value\":\"testing\"}},{\"type\":\"ImportDeclaration\",\"location\":{\"start\":{\"line\":3,\"column\":1},\"end\":{\"line\":3,\"column\":15},\"source\":\"import c \\\"csv\\\"\"},\"as\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":3,\"column\":8},\"end\":{\"line\":3,\"column\":9},\"source\":\"c\"},\"name\":\"c\"},\"path\":{\"type\":\"StringLiteral\",\"location\":{\"start\":{\"line\":3,\"column\":10},\"end\":{\"line\":3,\"column\":15},\"source\":\"\\\"csv\\\"\"},\"value\":\"csv\"}}],\"body\":[{\"type\":\"OptionStatement\",\"assignment\":{\"type\":\"VariableAssignment\",\"id\":{\"type\":\"Identifier\",\"name\":\"bucket\"},\"init\":{\"type\":\"StringLiteral\",\"value\":\"TestFluxEndToEnd/date/quarter_time\"}}},{\"type\":\"OptionStatement\",\"assignment\":{\"type\":\"VariableAssignment\",\"id\":{\"type\":\"Identifier\",\"name\":\"org\"},\"init\":{\"type\":\"StringLiteral\",\"value\":\"ORG\"}}},{\"type\":\"OptionStatement\",\"location\":{\"start\":{\"line\":5,\"column\":1},\"end\":{\"line\":7,\"column\":2},\"source\":\"option testing.loadStorage = (csv) =\\u003e {\\n\\treturn from(bucket: bucket)\\n}\"},\"assignment\":{\"type\":\"MemberAssignment\",\"location\":{\"start\":{\"line\":5,\"column\":8},\"end\":{\"line\":7,\"column\":2},\"source\":\"testing.loadStorage = (csv) =\\u003e {\\n\\treturn from(bucket: bucket)\\n}\"},\"member\":{\"type\":\"MemberExpression\",\"location\":{\"start\":{\"line\":5,\"column\":8},\"end\":{\"line\":5,\"column\":27},\"source\":\"testing.loadStorage\"},\"object\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":5,\"column\":8},\"end\":{\"line\":5,\"column\":15},\"source\":\"testing\"},\"name\":\"testing\"},\"property\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":5,\"column\":16},\"end\":{\"line\":5,\"column\":27},\"source\":\"loadStorage\"},\"name\":\"loadStorage\"}},\"init\":{\"type\":\"FunctionExpression\",\"location\":{\"start\":{\"line\":5,\"column\":30},\"end\":{\"line\":7,\"column\":2},\"source\":\"(csv) =\\u003e {\\n\\treturn from(bucket: bucket)\\n}\"},\"params\":[{\"type\":\"Property\",\"location\":{\"start\":{\"line\":5,\"column\":31},\"end\":{\"line\":5,\"column\":34},\"source\":\"csv\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":5,\"column\":31},\"end\":{\"line\":5,\"column\":34},\"source\":\"csv\"},\"name\":\"csv\"},\"value\":null}],\"body\":{\"type\":\"Block\",\"location\":{\"start\":{\"line\":5,\"column\":39},\"end\":{\"line\":7,\"column\":2},\"source\":\"{\\n\\treturn from(bucket: bucket)\\n}\"},\"body\":[{\"type\":\"ReturnStatement\",\"location\":{\"start\":{\"line\":6,\"column\":2},\"end\":{\"line\":6,\"column\":29},\"source\":\"return from(bucket: bucket)\"},\"argument\":{\"type\":\"CallExpression\",\"location\":{\"start\":{\"line\":6,\"column\":9},\"end\":{\"line\":6,\"column\":29},\"source\":\"from(bucket: bucket)\"},\"callee\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":6,\"column\":9},\"end\":{\"line\":6,\"column\":13},\"source\":\"from\"},\"name\":\"from\"},\"arguments\":[{\"type\":\"ObjectExpression\",\"location\":{\"start\":{\"line\":6,\"column\":14},\"end\":{\"line\":6,\"column\":28},\"source\":\"bucket: bucket\"},\"properties\":[{\"type\":\"Property\",\"location\":{\"start\":{\"line\":6,\"column\":14},\"end\":{\"line\":6,\"column\":28},\"source\":\"bucket: bucket\"},\"key\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":6,\"column\":14},\"end\":{\"line\":6,\"column\":20},\"source\":\"bucket\"},\"name\":\"bucket\"},\"value\":{\"type\":\"Identifier\",\"location\":{\"start\":{\"line\":6,\"column\":22},\"end\":{\"line\":6,\"column\":28},\"source\":\"bucket\"},\"name\":\"bucket\"}}]}]}}]}}}}]},{\"type\":\"File\",\"package\":null,\"imports\":[{\"type\":\"ImportDeclaration\",\"as\":null,\"path\":{\"type\":\"StringLiteral\",\"value\":\"testing\"}}],\"body\":[{\"type\":\"ExpressionStatement\",\"expression\":{\"type\":\"CallExpression\",\"callee\":{\"type\":\"MemberExpression\",\"object\":{\"type\":\"Identifier\",\"name\":\"testing\"},\"property\":{\"type\":\"StringLiteral\",\"value\":\"inspect\"}},\"arguments\":[{\"type\":\"ObjectExpression\",\"properties\":[{\"type\":\"Property\",\"key\":{\"type\":\"Identifier\",\"name\":\"case\"},\"value\":{\"type\":\"Identifier\",\"location\":{\"file\":\"quarter_time_test.flux\",\"start\":{\"line\":51,\"column\":6},\"end\":{\"line\":51,\"column\":19},\"source\":\"_time_quarter\"},\"name\":\"_time_quarter\"}}]}]}}]}]},\"dialect\":{\"header\":true,\"delimiter\":\"\\u0000\",\"commentPrefix\":\"#\",\"dateTimeFormat\":\"RFC3339\",\"annotations\":[\"datatype\",\"group\",\"default\"]},\"now\":\"0001-01-01T00:00:00Z\",\"PreferNoContent\":false,\"PreferNoContentWithError\":false}\n"
    end_to_end_test.go:240: diff table was not empty
    end_to_end_test.go:233: Result: diff
    end_to_end_test.go:233: Table: keys: [_start, _stop, _field, _measurement]
    end_to_end_test.go:233:                    _start:time                      _stop:time           _field:string     _measurement:string            _diff:string                      _time:time                  _value:int  
    end_to_end_test.go:233: ------------------------------  ------------------------------  ----------------------  ----------------------  ----------------------  ------------------------------  --------------------------  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      FF                      _m                       -  2018-03-22T19:53:20.000000000Z                           1  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      FF                      _m                       +  2018-04-22T19:53:30.000000000Z                           2  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      FF                      _m                       -  2018-04-22T19:53:30.000000000Z                           2  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      FF                      _m                       +  2018-05-22T19:53:40.000000000Z                           2  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      FF                      _m                       -  2018-05-22T19:53:40.000000000Z                           2  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      FF                      _m                       +  2018-06-22T19:53:50.000000000Z                           2  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      FF                      _m                       -  2018-06-22T19:53:50.000000000Z                           2  
    end_to_end_test.go:233: Result: want
    end_to_end_test.go:233: Table: keys: [_start, _stop, _field, _measurement]
    end_to_end_test.go:233:                    _start:time                      _stop:time           _field:string     _measurement:string                      _time:time                  _value:int  
    end_to_end_test.go:233: ------------------------------  ------------------------------  ----------------------  ----------------------  ------------------------------  --------------------------  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      FF                      _m  2018-01-22T19:53:00.000000000Z                           1  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      FF                      _m  2018-02-22T19:53:10.000000000Z                           1  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      FF                      _m  2018-03-22T19:53:20.000000000Z                           1  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      FF                      _m  2018-04-22T19:53:30.000000000Z                           2  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      FF                      _m  2018-05-22T19:53:40.000000000Z                           2  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      FF                      _m  2018-06-22T19:53:50.000000000Z                           2  
    end_to_end_test.go:233: Table: keys: [_start, _stop, _field, _measurement]
    end_to_end_test.go:233:                    _start:time                      _stop:time           _field:string     _measurement:string                      _time:time                  _value:int  
    end_to_end_test.go:233: ------------------------------  ------------------------------  ----------------------  ----------------------  ------------------------------  --------------------------  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      QQ                      _m  2018-07-22T19:53:00.000000000Z                           3  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      QQ                      _m  2018-08-22T19:53:10.000000000Z                           3  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      QQ                      _m  2018-09-22T19:53:20.000000000Z                           3  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      QQ                      _m  2018-10-22T19:53:30.000000000Z                           4  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      QQ                      _m  2018-11-22T19:53:40.000000000Z                           4  
    end_to_end_test.go:233: 2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z                      QQ                      _m  2018-12-22T19:53:50.000000000Z                           4  
    end_to_end_test.go:233: Result: got
    end_to_end_test.go:233: Table: keys: [_field, _measurement, _start, _stop]
    end_to_end_test.go:233:          _field:string     _measurement:string                     _start:time                      _stop:time                      _time:time                  _value:int  
    end_to_end_test.go:233: ----------------------  ----------------------  ------------------------------  ------------------------------  ------------------------------  --------------------------  
    end_to_end_test.go:233:                     FF                      _m  2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z  2018-01-22T19:53:00.000000000Z                           1  
    end_to_end_test.go:233:                     FF                      _m  2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z  2018-02-22T19:53:10.000000000Z                           1  
    end_to_end_test.go:233:                     FF                      _m  2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z  2018-04-22T19:53:30.000000000Z                           2  
    end_to_end_test.go:233:                     FF                      _m  2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z  2018-05-22T19:53:40.000000000Z                           2  
    end_to_end_test.go:233:                     FF                      _m  2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z  2018-06-22T19:53:50.000000000Z                           2  
    end_to_end_test.go:233: Table: keys: [_field, _measurement, _start, _stop]
    end_to_end_test.go:233:          _field:string     _measurement:string                     _start:time                      _stop:time                      _time:time                  _value:int  
    end_to_end_test.go:233: ----------------------  ----------------------  ------------------------------  ------------------------------  ------------------------------  --------------------------  
    end_to_end_test.go:233:                     QQ                      _m  2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z  2018-07-22T19:53:00.000000000Z                           3  
    end_to_end_test.go:233:                     QQ                      _m  2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z  2018-08-22T19:53:10.000000000Z                           3  
    end_to_end_test.go:233:                     QQ                      _m  2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z  2018-09-22T19:53:20.000000000Z                           3  
    end_to_end_test.go:233:                     QQ                      _m  2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z  2018-10-22T19:53:30.000000000Z                           4  
    end_to_end_test.go:233:                     QQ                      _m  2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z  2018-11-22T19:53:40.000000000Z                           4  
    end_to_end_test.go:233:                     QQ                      _m  2018-01-01T00:00:00.000000000Z  2030-01-01T00:00:00.000000000Z  2018-12-22T19:53:50.000000000Z                           4  
ts=2020-12-23T21:44:51.992604Z lvl=debug msg="user find by ID" log_id=0RGOo0fG000 store=new took=0.097ms
ts=2020-12-23T21:44:51.993119Z lvl=debug msg="bucket find by ID" log_id=0RGOo0fG000 store=new took=0.174ms
ts=2020-12-23T21:44:51.993442Z lvl=debug msg="bucket find by ID" log_id=0RGOo0fG000 store=new took=0.158ms
ts=2020-12-23T21:44:51.993736Z lvl=debug msg="bucket find by ID" log_id=0RGOo0fG000 store=new took=0.143ms
ts=2020-12-23T21:44:52.144794Z lvl=debug msg="urm find" log_id=0RGOo0fG000 store=new took=0.427ms
ts=2020-12-23T21:44:52.148004Z lvl=debug msg="bucket delete" log_id=0RGOo0fG000 store=new took=4.254ms
ts=2020-12-23T21:44:52.148464Z lvl=debug msg="Bucket deleted" log_id=0RGOo0fG000 handler=bucket bucketID=96252a2d91a2b92e
ts=2020-12-23T21:44:52.150539Z lvl=debug msg=Request log_id=0RGOo0fG000 service=http method=DELETE host=127.0.0.1:34909 path=/api/v2/buckets/96252a2d91a2b92e query= proto=HTTP/1.1 status_code=204 response_size=0 content_length=0 referrer= remote=127.0.0.1:46272 user_agent=Go-http-client took=158.981ms body=
        --- FAIL: TestFluxEndToEnd/date/quarter_time (3.85s)