We import "github.com/pkg/errors" in the code, and actually put
the "github.com/pingcap/errors" there in the vendor path.
That's a dirty hack, and prevent the introduce of Go module.
The newly added label is `sql_type`, it has value: `general` and `internal`,
users can use this label to filter metrics they have interest.
Also, add keyword `[INTERNAL]` for restricted SQL printed in slow log for
convenient identification.
goroutine pool was introduced to handle stack copy cost, Go1.11 has
many optimizations for stack copy, after upgrading to Go1.1, goroutine
pool is not necessary any more.
Thank you for working on TiDB! Please read TiDB's [CONTRIBUTING](https://github.com/pingcap/tidb/blob/master/CONTRIBUTING.md) document **BEFORE** filing this PR.
## What have you changed? (mandatory)
During coprocessor dag task, it first uses timezone `name`, if non-empty, to get legitimate timezone variable. To achieve this, we need to push down such data into tikv which leads to change the logic of building pushdown request. The logic I mentioned mainly resides in `executor` package.
I change `timeZoneOffset` to `zone` and add second return parameter `name string`. The intentioned of doing this to adopt the convention of `time` package.
For the same purpose, I change `GetTimeZone` to `Location`. As you can see, in `time` package, timezone was bind to `Location`.
## What are the type of the changes (mandatory)?
- Bug fix (non-breaking change which fixes an issue)
## How has this PR been tested (mandatory)?
unit-test
integration-test will be added shortly
Decide whether a executor support streaming, TableScan/IndexScan/Selection support it.
If a coprocessor request need some operations like aggregation or topn, it's meanless
to use streaming for the request.